You are on page 1of 15

UNIVERSIDADE CATÓLICA DE MOÇAMBIQUE

FACULDADE DE GESTÃO DE RECURSOS FLORESTAIS E


FAUNÍSTICOS

Licenciatura em Contabilidade e Auditoria, 2º Ano

INVESTIGACÃO OPERACIONAL

TRABAÇHO DO INDIVIDUAL

TEMA: Método Simplex

Discente:
Stelio Vicente Bernardo

Docente:
Dr. Assuaste Momade

Lichinga, setembro de 2022

1
TEMA: Método Simplex

Discente:

Stelio Vicente Bernardo

Docente:

Dr. Assuaste Momade

Lichinga, setembro de 2022

2
Índice
I. Introdução............................................................................................................................1
1.1.1. Objetivos geral.............................................................................................................1
1.2. Objetivos específicos.......................................................................................................1
1.3. Metodologia.....................................................................................................................1
II. Fundamentos Teóricos Do Simplex.................................................................................2
2.1.1. Algoritmo primal simplex............................................................................................3
2.1.2. A Visão Geral do Algoritmo........................................................................................3
2.1.3. Critério de Inviabilidade do Problema.........................................................................4
2.1.4. Visão geral do método algoritmo.................................................................................5
2.1.5. Critérios de melhoria de uma solução básica...............................................................5
III. Quadro simplex e exemplos numéricos...........................................................................6
3.1.1. O Caso em que a Base Viável Inicial não Está Disponível..........................................6
3.1.2. Método de duas fases...................................................................................................7
IV. Casos especiais para o simplex........................................................................................8
4.1.1. Degeneração e Ciclagem..............................................................................................8
4.1.2. O problema de soluções ilimitadas...............................................................................9
4.1.3. Caso de soluções múltiplas........................................................................................10
V. Conclusão.......................................................................................................................10
VI. Referencias bibliográficas..............................................................................................11

3
I. Introdução

O presente trabalho aborda um tema que diz respeito ao método Simplex que por sua vez é
um processo iterativo que permite melhorar a solução da função objetivo em cada etapa. O
processo finaliza quando não é possível continuar melhorando este valor, ou seja, quando se
obtenha a solução ótima (o maior ou menor valor possível, segundo o caso, para que todas as
restrições sejam satisfeitas).

Por outro lado é um algoritmo iterativo que procura fornecer solução para problemas de
programação linear, através da pesquisa dos vértices do conjunto de soluções viáveis, em cada
iteração, visando a otimização de uma função matemática denominada função objetivo. O
método explora o fato de o máximo ou mínimo da função objetivo ocorrer em um dos vértices
desse conjunto de soluções.

Segundo Maros (2003), o método dual simplex tem atraído considerável interesse, devido à
importante aplicação nos métodos de otimização linear inteiro misto, os quais resolvem uma
sequência de problemas de otimização linear, com característica de que uma solução básica
dual factível de boa qualidade é sempre disponível para o problema seguinte da sequência.
Segundo Bixby (2001), testes computacionais mostram que o desempenho do método dual
simplex pode ser superior ao método primal simplex.

I.1.1. Objetivos geral

O objetivo do presente trabalho é estabelecer uma visão geral sobre o método simples.

I.2. Objetivos específicos


 Conceituar o método simplex assim como o algoritmo primal;

 Trazer alguns exemplos referentes ao método;

 Identificar alguns e outros métodos que fazem parte desse modelo.

I.3. Metodologia
Para a elaboração deste trabalho, segui os preceitos do estudo exploratório, por meio de uma
pesquisa bibliográfica, que, segundo Gil (2008), “é desenvolvida a partir de material já
elaborado, constituído de livros e artigos científicos.” (p.50).

1
II. Fundamentos Teóricos Do Simplex

Goldbarg, Marco Cesar (2005), no contexto da teoria do simplex:

O simplex é um algoritmo genericamente, podemos entender por algoritmo qualquer estratégia


para solucionar problemas; contudo, seremos mais precisos, reservando para a palavra algoritmo
um conceito diferente de procedimento. Diremos que: Um procedimento é uma sequência finita
de instruções. e que: Um algoritmo é um procedimento que termina em um número finito de
operações (passos). O simplex é um algoritmo que se utiliza de um ferramental baseado na
Álgebra Linear para determinar, por um método iterativo, a solução ótima de um Problema de
Programação Linear (PPL) (p.92).

Sua concepção básica é simples e, por isso mesmo, eficiente. Em linhas bastante gerais, o
algoritmo parte de uma solução viável do sistema de equações que constituem as restrições do
PPL, solução essa normalmente extrema (vértice). A partir dessa solução inicial vai
identificando novas soluções viáveis de valor igual ou melhor que a corrente. O algoritmo,
portanto, possui um critério de escolha que permite encontrar sempre novos e melhores
vértices da envoltório convexa do problema, e um outro critério que consegue determinar se o
vértice escolhido é ou não um vértice ótimo. Antes de desenvolvermos o algoritmo
propriamente dito é necessário recordar alguns conceitos matemáticos que serão utilizados
pelo método.

O Método Simplex é uma técnica utilizada para se determinar, numericamente, a solução


ótima de um modelo de Programação Linear. Será desenvolvido inicialmente para Problemas
de Programação Linear, na forma padrão, mas com as seguintes características para o sistema
linear de equações:

i) Todas as variáveis são não-negativas:


ii) ii) Todos os bi’ são não-negativos;
iii) iii) Todas as equações iniciais do sistema são do tipo “ ≤ “. Assim, na forma padrão,
só encontra-se variáveis de folga.

Será necessário considerar que o método Simplex trabalha apenas com restrições do problema
cujas desigualdades sejam do tipo "≤" (menor ou igual) e seus coeficientes independentes
sejam maiores ou iguais a 0. Portanto, é preciso padronizar as restrições para atender aos
2
requisitos antes de iniciar o algoritmo Simplex. Caso apareçam, depois deste processo,
restrições do tipo "≥" (maior ou igual) ou "=" (igualdade), ou não seja possível alterá-las, será
necessário utilizar outros métodos de resolução, sendo o mais comum, o método das Duas
Fases.

II.1.1. Algoritmo primal simplex

II.1.2. A Visão Geral do Algoritmo


(Goldbarg, Marco Cesar 2005, p. 113):

O algoritmo simplex descreve uma sequência de passos para a solução de sistemas de


equações lineares sujeitos a uma função objetivo. Basicamente, ele dispõe sobre três
situações:

1. O método de inversão da matriz básica m x m deduzida a partir de A, uma matriz de


restrições m X n.

2. As condições de troca de variáveis dentro da matriz básica, para que exista garantia de
melhoria da solução ao longo do desenvolvimento dos passos do algoritmo.

3. As regras de parada do algoritmo e a interpretação dessa situação final.

Eventualmente, o algoritmo pode ser adaptado para promover a escolha da base viável inicial,
ou solução viável de partida. Contudo, a essência do método desconhece o problema da
escolha de uma base viável inicial.

A discussão do primeiro aspecto envolvido no algoritmo, ou seja, o método de inversão da


matriz básica, é bastante evidente na apresentação dos “quadros” do simplex e de suas
operações de “pivoteamento”. O método normalmente sugerido na literatura é o das operações
elementares. Essa técnica permite que a cada passo do algoritmo o esforço de inversão já
despendido em iterações anteriores seja completamente aproveitado. É importante que se
entenda que não existe, de fato, um compromisso do algoritmo com um método de inversão
específico para a matriz básica. Em última análise, o método simplex não obriga que a matriz
tenha de ser invertida por um método de pivoteamento, apesar de que todo o seu raciocínio
seja aplicado tradicionalmente junto com essa técnica.

O segundo ponto é abordado por um critério bastante simples que envolve o cálculo da
possível contribuição para o acréscimo ou decréscimo da função objetivo (conforme o caso:
maximização ou minimização) com a possível entrada na base de uma variável não básica. O
critério aponta a escolha da variável de maior contribuição imediata. A eficiência do método
3
simplex e seu extraordinário poder de funcionar na prática estão associados ao critério
adotado nesse cálculo. O terceiro tema diz respeito ao teste de parada que inclui a
identificação das condições em que não existe mais a possibilidade de que uma troca de
variáveis na base possa melhorar o critério de otimização, ou ainda situações em que é
identificado um comportamento patológico de crescimento indefinido ou de inviabilidade do
problema.

II.1.3. Critério de Inviabilidade do Problema


O PPL será inviável se na tabela canônica existir uma linha i tal que:

b'i < 0 e a'ij ≥ 0 (j = 1, ..., m)

A Coluna do Pivô ! Se o critério de inviabilidade do problema não é satisfeito, seja r a linha


do pivô. A coluna do pivô deve ser determinada de tal forma a se ter uma nova base dual
viável. Se o pivô for o elemento a'rs, os coeficientes de custo relativo na nova base serão:

' ạ ' rj
C j−C ' s (j = l, …,n).
ạ' rs

A nova base irá continuar dual viável se esses coeficientes forem nãonegativos, ou seja:

' ạ ' rj
C j−C ' s ≥0 (j = l, …,n).
ạ' rs

Após as operações de pivotamento, a coluna do pivô será transformada em um r-ésimo vetor


unitário.

Temos, então, a seguinte tabela canónica:

VB X1 X2 X3 X4 X5 X6 b
X1 1 0 0 4 -5 7 8
Logo, a variável x4
X2 0 1 0 -2 4 -2 -2 Linha pivo
entra na base, em
X3 0 0 1 1 -3 2 2
substituição a x2.
-Z 0 0 0 1 3 2 0
c'j/ 1/2 A nova tabela canônica
(a'2j) Coluna será:
pivô
VB X1 X2 X3 X4 X5 X6 b
X1 1 2 0 0 3 3 4
4
X2 0 -1/2 0 1 -2 1 1
X3 0 1/2 1 0 -1 1 1
-Z 0 1/2 0 0 5 1 -1
Como todos os b'i ≥ 0, a base atual é ótima. Logo, a solução ótima é: x* = (4, 0, 1, 1, 0, 0) T e
z* = 1.

II.1.4. Visão geral do método algoritmo

Daguspta, S (2006), refere que:

O Simplex permite que se encontre valores ideais em situações em que diversos aspetos
precisam ser respeitados. Diante de um problema, são estabelecidas inequações que representam
restrições para as variáveis. A partir daí, testa-se possibilidades de maneira a otimizar o
resultado da forma mais rápida possível.

O uso mais comum do Simplex é para se maximizar um resultado, ou seja, encontrar o maior
valor possível para um total. Problemas típicos para se resolver com o Simplex são os que
buscam quantidades ideais de produtos a serem comercializados, com restrições referentes ao
armazenamento e à fabricação dos mesmos. A ideia é isolar uma função como sendo o
objetivo.

II.1.5. Critérios de melhoria de uma solução básica

Segundo George Bernard (1977) ao se referir da solução ótima do método simplex:

Solução ótima: quando o critério de parada é satisfeito e não existam variáveis artificiais na
base com valor positivo (os valores são indicados na coluna P0), a otimização foi alcançada. O
valor Z0 atual é a solução ótima do problema, cumprindo para as variáveis que estão na base.
Caso trate-se de um problema de minimização, o valor ótimo obtido deverá ser multiplicado por
"-1".

Soluções infinitas: satisfeito o critério de parada, se alguma variável de decisão não-básica tem
um valor 0 na fila Z, significa que existe outra solução que fornece o mesmo valor ótimo para a
função objetivo. Neste caso, o problema admite infinitas soluções, todas as quais abrangidas
dentro do segmento (ou parte do plano, região de espaço, etc., conforme o número de variáveis
do problema) definido por A·X1 + B·X2 = Z0. Através de uma nova iteração e fazendo com
que a variável de decisão que tenha 0 na linha Z entre na base, é obtida uma solução diferente
para o mesmo valor ótimo.

5
Solução ilimitada (unbounded): se toda coluna da variável que entra na base tem todos os
seus elementos negativos ou nulos, trata-se de um problema não-limitado, ou seja, que tem
solução ilimitada. Não há valor ótimo concreto para a função objetivo, mas à medida que os
valores das variáveis são aumentados, o valor Z também aumenta sem violar qualquer
restrição.

Não existe solução: quando nenhum ponto satisfaz às restrições do problema, ocorre a
inviabilidade, não existindo nenhuma solução possível para ele. Neste caso, uma vez
terminadas todas as iterações do algoritmo, existem na base variáveis artificiais em que o
valor é superior a zero.

Empate de variável de entrada: quando ocorre um empate na escolha da variável entrante,


pode-se optar por qualquer uma delas sem que isto afete a solução final. Por outro lado, se ela
influencia o número de iterações necessárias para obter a solução. É aconselhável optar pelas
variáveis básicas, já que elas são as que farão parte da solução ótima.

Empate de variável de saída: novamente é possível optar por qualquer uma delas. No
entanto, a fim de não ampliar o problema e evitar que a entrada fique em um ciclo infinito
(caso degenerado), discrimina-se a favor das variáveis de decisão fazendo que permaneçam na
base. No caso de ser a primeira fase do método das Duas Fases, se optará por retirar da base
as variáveis artificiais.

III. Quadro simplex e exemplos numéricos

Quadro simplex:
Simplex algébrico Base X y F1 F2 F3 b
Z -5 -3 0
Xb = {F1, F2, F3}, Xn = {x,y} F1 2 3 1 15
F1 = 15 – 2x – 3y
F2 = 9 – 2x – y F2 2 1 1 9
F3 = 3 – X + y
Z – 5x – 3y + 0F1 + 0F2 + 0F3 = 0 F3 1 -1 1 3

6
III.1.1.O Caso em que a Base Viável Inicial não Está Disponível
No algoritmo descrito, a fase de obtenção de uma base viável para o problema foi considerada
superada. Realmente, quando, por meio da inclusão de variáveis de folga na passagem da
descrição da forma canônica para a padrão obtemos uma base inicial (e ainda por cima
canônica), o algoritmo descrito soluciona bem o problema. Mas e quando isso não acontece?
Seja o exemplo que se segue (Goldbarg, Marco Cesar 2005, p. 113):

Minimizar z = – 3x1 – 5x2


sujeito a:
x1 ≤ 4
x2 ≤6
3x1 + 2x2 ≥ 18
x1 ≥0, x2 ≥ 0
Que ao ser convertido para a forma padrão será:
Minimizar z = – 3x1 – 5x2 + 0x3 + 0x4 + 0x5
sujeito a:
x1 + x3 =4
x2 + x4 =6
3x1 + 2x2 – x5 = 18
x1 ≥ 0, x2 ≥0, x3 ≥ 0, x4 ≥0, x5 ≥ 0
Obviamente a matriz formada pelas variáveis de folga não é uma base viável:

[ ]
1 0 0
B= 0 1 0
0 0 −1

III.1.2.Método de duas fases


O método das Duas Fase é utilizado quando aparecem variáveis artificiais na forma canônica
ou padrão do problema. A primeira fase consiste em resolver o problema Z auxiliar para
minimizar a soma das variáveis artificiais visando obter o valor de zero (para evitar
inconsistências matemáticas). Depois de resolver este primeiro problema, e contanto que o
resultado seja o esperado, a tabela resultante é reorganizada para utilizá-la na segunda fase do
problema original.

Secundo (Goldbarg, Marco Cesar, 2005, p.119):

7
• Descobrir uma base viável (pontos A, B ou C) por um outro método qualquer e então aplicar
o simplex a partir dessa base.

• Usar o próprio simplex para gerar uma base viável, a partir de uma base qualquer inviável.
Optaremos pela segunda alternativa. Nesse caso, inicialmente, o algoritmo buscará uma base
viável para, posteriormente, buscar o ótimo do programa em si.

Tal método de solução terá genericamente duas fases. Podemos descrever essas etapas da
seguinte forma:

• Primeira Fase: o procedimento utilizará o simplex para buscar uma base viável de solução.

• Segunda Fase: de posse da base calculada na primeira fase aplicaremos o método simplex
tradicional em busca do ótimo do programa.

Para operacionalizar a busca da base viável inicial existem duas alternativas, todas com base
na ideia de “variáveis artificiais”. Vamos definir como variáveis artificiais aquelas que
faremos introduzir no programa de otimização para que tenhamos a tão necessária base viável
inicial. Essas variáveis não necessitarão possuir qualquer ligação com a realidade da
modelagem do problema, daí o nome de “artificiais”. No exemplo anterior, como apenas uma
das colunas da base apresenta valor negativo em sua componente canônica (terceira coluna),
ou seja, existe somente uma variável de folga negativa, nos bastará uma artificial para corrigir
essa anomalia.

IV. Casos especiais para o simplex

IV.1.1. Degeneração e Ciclagem

Goldbarg, Marco Cesar (2005), afirma que:

A convergência do algoritmo simplex é garantida pela certeza de que, a cada passo, o critério
de escolha de troca de uma variável da base vai redundar em melhoria para o valor da função
objetivo. Mesmo que fosse necessário examinar um número exponencial de combinações de
variáveis para formar a base ótima (também denominadas configurações de solução), em passo
finito, o algoritmo terminaria. Entretanto, em algumas situações especiais, podemos encontrar
configurações que invalidem o uso perfeito dos critérios anteriormente descritos. Essas

8
configurações patológicas decorrem de situações em que os zj – cj associados a algumas
bs
variáveis possuem valores iguais, e o mesmo acontece em relação ao mínimo valor .
ysk

Poderá ocorrer que durante a escolha de uma variável para sair da base, temos, empate, isto é, duas ou
mais variáveis se anulam com o crescimento da variável que está entrando na base. Neste caso ocorre o
que chamamos de degeneração (temos uma solução básica factível degenerada). A escolha também é
arbitrária (uma das variáveis básicas assume valor zero). Temos, então, que a mesma solução é obtida
através de bases diferentes. Isso ocorre devido a hiperdeterminação de pontos extremos.

Ciclagem ou retorno cíclico: Observe as iterações 1 e 2 do simples e note que o valor da função
objetivo não melhora (z=18). É possível que o método simplex entre em uma sequencia de iterações
sem nunca melhorar o valor da função objetivo.

Exemplo:

X1 X2 X3 X4 X5 X6 X7
Z 0 0 0 1 1 -1 0
X1 0 1 0 0 1 3 1 0 0
X2 1 0 1 0 0 -2 -1 0
X7 0 0 0 0 1 2 0 1 0
X3 2 0 0 1 1 0 0 0

IV.1.2. O problema de soluções ilimitadas

Ermes Medeiros (1998), no contexto das soluções ilimitadas “Isto ocorre quando a variável que
entra na base não possui em sua coluna nenhum coeficiente positivo. Os programas de
computador, neste caso apresentam a ultima solução básica antes que a solução se torne
ilimitada”(p.73)

Uma solução ilimitada de um problema de programação linear é uma situação em que a função
objetivo é infinita. Diz-se que um problema de programação linear tem solução ilimitada se sua
solução puder ser infinitamente grande sem violar nenhuma de suas restrições no problema.

A solução ilimitada é uma situação em que a solução ótima viável não pode ser determinada, em
vez disso, existem infinitas soluções. Não é possível resolver o problema em que esta situação
ocorre.

9
Se a região factível da solução do sistema de desigualdades lineares estiver contida em uma figura
fechada, diz-se que a região é limitada, caso contrário, é ilimitada. Isso significa que a região
viável se estende indefinidamente em qualquer direção.

Exemplo:

Maximizar Z = x1+2x2
Sujeito a:
4x1+x2 ≥ 20
x1+2x2 ≥ 10
x1 ≥ 2
x1;x2 ≥ 0

IV.1.3. Caso de soluções múltiplas

De acordo com Ermes Medeiros (1998), refere que “Se na solução optima o coeficiente de uma
variável não básica é zero, ele poderá entrar na base sem alterar o valor do objetivo, gerado
outra solução ótima. Neste caso, qualquer combinação linear dessas duas soluções também
será solução ótima” (p.73).

Problemas com múltiplas soluções Eventualmente, um modelo de Programação Linear pode


apresentar mais de uma solução ótima. Quando isso ocorre, o Método Simplex é capaz de
acusá-lo, pois o custo de uma variável não-básica é nulo. Dizemos, então, que o sistema tem
múltiplas soluções ótimas.

Exemplo:
Maximizar Z = x1+2x2 x1 ≤ 3
sujeito a: x2 ≤4
x1+2x2 ≤ 9
x1;x2 ≥ 0

10
V. Conclusão

Com base no seguinte trabalho foi possível perceber que o método simplex O método simplex
é um algoritmo muito útil, com o qual podemos fazer vários panejamentos e utilizá-lo para
apoiar a tomada de decisão.

O método simplex, também conhecido como algoritmo simplex, é utilizado para resolver
problemas de programação linear. Foi desenvolvido por George Dantzig e Koopmans em
1946, quando trabalhavam no departamento da Força Aérea Americana. É considerado por
muitos como um dos principais algoritmos inventados no século XX.

Ele é um dos principais algoritmos utilizados atualmente, e tem uma aplicação muito
interessante para o setor dos negócios.

No algoritmo dual simplex, todas as soluções básicas (exceto a solução final) são primal
inviáveis. Se tivermos que interromper a execução do algoritmo dual simplex, todo o esforço
será perdido pois não teremos uma solução viável para o problema até que o algoritmo
termine. No algoritmo primal simplex todas as soluções básicas obtidas são primal viáveis.
Logo, se a execução do algoritmo for interrompida, poderemos não ter uma solução ótima,
mas teremos, pelo menos, uma solução viável para o problema.

Com na abordagem feita será necessário considerar que o método Simplex trabalha apenas
com restrições do problema cujas desigualdades sejam do tipo "≤" (menor ou igual) e seus
coeficientes independentes sejam maiores ou iguais a 0. Portanto, é preciso padronizar as

11
restrições para atender aos requisitos antes de iniciar o algoritmo Simplex. Caso apareçam,
depois deste processo, restrições do tipo "≥" (maior ou igual) ou "=" (igualdade), ou não seja
possível alterá-las, será necessário utilizar outros métodos de resolução, sendo o mais comum,
o método das Duas Fases.

VI. Referencias bibliográficas

Goldbarg, Marco Cesar. (2005). Metodo simplex, otimização combinatória e programação


linear. (2⸰. ed.). cip, Brasil: Elsevier Editora Ltda.

Dantizg, G., Orden, A., Wolfe, P. (1955). A Generalized Simplex Method for Minimizing a
Linear Form under Linear Inequality Constraints. Pacific Journal of Mathematics.

Sousa, R. S. (2000). Estudos em Otimização Linear, Dissertação de Mestrado. ICMC-USP.

Sousa, R. S. (2005). Métodos Tipo Dual Simplex para Problemas de Otimização Linear
Canalizados, Tese de Doutorado. ICMC-USP.Raymond.

V., Soumis, F., Orban, D. (2010). A new version of the Improved Primal Simplex for
degenerate linear programs, Computers & Operations Research 37, 91-98.

Terlaky, T. (2000). Linear Programming, Simplex-Type Algorithms, Department of


Computing and Software. Canada: McMaster University, Hamilton.

Morabito H. Yanasse (2005). Pesquisa Operacional para Cursos de Engenharia: Editora


Campus / Elsevier. Recuperado em:

http://www.phpsimplex.com/pt/exemplo_metodo_simplex.htm

http://www.phpsimplex.com/pt/teoria_metodo_simplex.htm

12

You might also like