Professional Documents
Culture Documents
Pesquisa Operacional
CAPTULO 4
O MTODO SIMPLEX
4
O Mtodo Simplex caminha pelos vrtices da regio vivel at encontrar uma soluo que no possua
solues vizinhas melhores que ela. Esta a soluo tima. A soluo tima pode no existir em dois
casos: quando no h nenhuma soluo vivel para o problema, devido a restries incompatveis; ou
quando no h mximo (ou mnimo), isto , uma ou mais variveis podem tender a infinito e as
restries continuarem sendo satisfeitas, o que fornece um valor sem limites para a funo objetivo.
4.1 Exemplo de um Problema
O modelo de programao linear pode ser resolvido por um mtodo de soluo de sistema de equaes
lineares. O processo que ser apresentado no exemplo a seguir, retirado de ANDRADE (2000),
bastante intuitivo e tem por finalidade apresentar a metodologia utilizada pelo mtodo Simplex.
a) Formulao do problema
"Uma marcenaria deseja estabelecer uma programao diria de produo. Atualmente, a oficina
faz apenas dois produtos: mesa e armrio, ambos de um s modelo. Para efeito de simplificao,
vamos considerar que a marcenaria tem limitaes em somente dois recursos: madeira e
mo-de-obra, cujas disponibilidades dirias so mostradas na tabela a seguir.
Recurso
Madeira
Mo-de-obra
Disponibilidade
12m2
8 H.h
O processo de produo tal que, para fazer uma mesa a fbrica gasta 2 m2 de madeira e 2 H.h
de mo-de-obra. Para fazer um armrio, a fbrica gasta 3 m2 de madeira e 1 H.h de mo de obra.
Alm disso, o fabricante sabe que cada mesa d uma margem de contribuio para o lucro de $ 4
e cada armrio de $ 1. O problema encontrar o programa de produo que maximiza a margem
de contribuio total para o lucro."
b) Montagem do modelo
As variveis de deciso envolvidas no problema so:
x1: quantidade a produzir de mesas
x2: quantidade a produzir de armrios
A funo objetivo :
Lucro:
z = 4 x1 + x2
15
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
Assim temos
Madeira: 2 x1 + 3 x2 12
Mo-de-obra:
2 x1 + x2 8
x1, x2 0
O modelo completo :
Maximizar:
Sujeito a
z = 4 x1 + x2
2 x1 + 3 x2 12
2 x1 + x2 8
x1, x2 0
c) Soluo do modelo
J conhecemos o mtodo de soluo grfica para problemas de programao linear de duas
variveis. Ser agora apresentada a soluo por sistemas de equaes lineares.
De forma a transformar as restries do problema de programao linear de inequaes em
equaes, so introduzidas as variveis de folga. Neste problema, as restries tm a seguinte
estrutura lgica:
Utilizao de recurso Disponibilidade.
Ao se introduzir o conceito de folga de recurso, a inequao pode ser escrita como
Utilizao de recurso + Folga = Disponibilidade.
Isso significa que
Utilizao de recurso < Disponibilidade implica
Folga > 0;
Folga = 0.
Deste modo, a folga de cada recurso pode ser representada por uma varivel de forma
exatamente igual produo de cada produto. Desse modo, vamos chamar:
f1: folga de madeira;
f2: folga de mo-de-obra.
Introduzindo as variveis de folga, o problema a ser resolvido passa a ser:
Maximizar:
z = 4 x1 + x2
Sujeito a
2 x1 + 3 x2 + f1 = 12
2 x1 + x2 + f2 = 8
x1, x2, f1, f2 0
16
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
disponibilidade de recursos (se a varivel for f1 ou f2). Desta forma, podemos encontrar solues
para o sistema de equaes zerando duas variveis (n - m = 2) e encontrando o valor para as duas
variveis restantes. Teremos que resolver ento
C 24 = 4! / (2! 2!) = 6
sistemas de equaes lineares.
Uma vez resolvido um sistema, sero aplicados na funo objetivo os valores encontrados. As
variveis zeradas so chamadas variveis no-bsicas. As variveis cujos valores so calculados
pelo sistema de equaes so chamadas variveis bsicas.
c.1) Variveis no-bsicas:
x1 = 0
x2 = 0
f1 = 12
f2 = 8
dando o lucro
c.2) Variveis no-bsicas:
z=0
x1 = 0
f1 = 0
x2 = 4
f2 = 4
dando o lucro
c.3) Variveis no-bsicas:
z=4
x1 = 0
f2 = 0
x2 = 8
f1 = -12
x2 = 0
f1 = 0
x1 = 6
f2 = -4
17
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
x2 = 0
f2 = 0
x1 = 4
f1 = 4
dando o lucro
c.6) Variveis no-bsicas:
z = 16
f1 = 0
f2 = 0
x1 = 3
x2 = 2
dando o lucro
z = 14
Comparando todas as solues encontradas por este processo, achamos a soluo tima, ou seja,
x1 = 4, x2 = 0, f1 = 4, f2 = 0, dando um lucro z = 16.
4.2 Desenvolvimento do Mtodo Simplex
Da forma como foi resolvido o problema anteriormente, necessrio que muitos sistemas de equaes
sejam resolvidos e suas solues comparadas. Para problemas reais de programao linear, esta
soluo se torna invivel. Desta forma, para termos condies de resolver um problema de
programao linear, precisamos de uma sistemtica que nos diga:
qual o sistema de equaes que deve ser resolvido;
que o prximo sistema a ser resolvido fornecer uma soluo melhor que os anteriores;
como identificar um soluo tima, uma vez que a tenhamos encontrado.
Essa sistemtica o mtodo Simplex, e as regras que o mtodo utiliza para atender s trs questes
acima so, basicamente, os critrios que desenvolvemos nos itens anteriores. Vamos voltar ao nosso
pequeno problema, j com as variveis de folga:
maximizar
z = 4 x1 + x2
sujeito a
2 x1 + 3 x2 + f1 = 12
2 x1 + x2 + f2 = 8
x1, x2, f1, f2 0
Vamos montar um quadro para ordenarmos as operaes, colocando nele apenas os coeficientes das
variveis. No caso da funo objetivo, vamos realizar a seguinte transformao:
de:
z = 4 x1 + x2
para:
z - 4 x1 - x2 = 0
18
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
Quadro 1
Base
f1
f2
z
x1
2
2
-4
x2
3
1
-1
f1
1
0
0
f2
0
1
0
b
12
8
0
A ltima coluna corresponde aos termos independentes das equaes, e a ltima linha contm os
coeficientes das variveis na funo objetivo. Nessa ltima linha teremos sempre a contribuio que
cada varivel d para o lucro total z, por unidade, em cada iterao do processo de soluo. Essa ltima
linha ser chamada de funo objetivo transformada, ou funo z-transformada.
a) Soluo inicial
A soluo inicial para o problema ser sempre obtida fazendo as variveis originais do modelo (no
caso x1 e x2) iguais a zero e achando o valor das demais.
Assim, fazendo x1 = x2 = 0 (variveis no bsicas), obtemos do Quadro 1:
f1 = 12
f2 = 8
(variveis bsicas)
z=0
As variveis bsicas esto indicadas no Quadro 1, para facilitar o acompanhamento das operaes.
b) Segunda soluo
Como a primeira soluo claramente no a melhor, vamos procurar outra que d um valor maior para
z. O problema descobrir:
Das duas variveis no bsicas (nulas) na primeira soluo, qual deve se tornar positiva?
Das duas variveis bsicas (positivas) na primeira soluo, qual dever ser anulada?
Qual varivel dever se tornar positiva?
Vamos observar que na ltima linha do Quadro 1 temos os coeficientes da funo objetivo que
mostram a contribuio para o lucro z de cada unidade produzida de mesa (x1) e de armrio (x2).
Assim, aplicando o critrio de que devemos produzir primeiro o produto que mais contribui para o
lucro, vamos comear a produo pela varivel x1, j que sua contribuio unitria para o lucro (4)
maior que a contribuio de x2, igual a 1.
Logo, a varivel que dever se tornar positiva x1.
Qual varivel dever ser anulada?
Nota-se pelo Quadro 1 que, na primeira equao, o maior valor possvel de x1 6, quando f1 for igual a
zero (note que x2 vale zero por ser varivel no bsica). Qualquer valor maior de x1 far com que o
valor de f1 fique negativo, o que no permitido. Na segunda equao, o maior valor permitido para x1
4, quando f2 for igual a zero. Analisando simultaneamente as duas equaes, percebe-se que o maior
valor possvel para x1 4, j que atende s duas equaes.
Observe que esta anlise pode ser feita diretamente do Quadro 1, atravs da diviso dos elementos da
coluna b pelos correspondentes elementos da coluna x1. O menor quociente indica, pela linha em que
ocorreu, qual a varivel bsica que deve ser anulada. Assim, como o menor quociente dado pela
19
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
diviso 8 / 2 = 4, a varivel bsica a ser anulada f2, que a varivel positiva na atual soluo, cujo
valor foi encontrado na segunda linha.
Assim temos:
x2 = 0
f2 = 0
e o sistema restante deve ser resolvido para acharmos o valor de x1 e f1. A soluo desse sistema ser
feita usando o Quadro 1 com as equaes completas e usando as operaes vlidas com as linhas da
matriz, como apresentado no Captulo 2.
1 operao: Dividir a segunda linha por 2 (L2 L2 / 2)
Quadro 1A
Base
f1
x1
z
x1
2
1
-4
x2
3
1/2
-1
f1
1
0
0
f2
0
1/2
0
b
12
4
0
2 operao: Multiplicar a segunda linha do Quadro 1A por (-2) e somar com a primeira linha do
mesmo quadro, colocando o resultado na primeira linha (L1 L1 - 2 L2)
Quadro 1B
Base
f1
x1
z
x1
0
1
-4
x2
2
1/2
-1
f1
1
0
0
f2
-1
1/2
0
b
4
4
0
3 operao: Multiplicar a segunda linha do Quadro 1B por (4) e somar com a terceira linha do mesmo
quadro, colocando o resultado na terceira linha (L3 L3 + 4 L2)
Quadro 2
Base
f1
x1
z
x1
0
1
0
x2
2
1/2
1
f1
1
0
0
f2
-1
1/2
2
b
4
4
16
Como a ltima linha (funo z-transformada) mostra as contribuies lquidas para o lucro, caso as
variveis x1 e f2 venha a ter seus valores aumentados de 0 para 1 e como estas contribuies tm seus
valores trocados com relao ao quadro original, conclumos que a soluo encontrada tima.
x1 = 4,
x2 = 0,
f1 = 4,
f2 = 0 e
z = 16
20
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
Z = 11 x1 + 12 x2
sujeito a:
x1 + 4 x2 10000
5 x1 + 2 x2 30000
x1, x2 0
Z = 11 x1 + 12 x2
sujeito a:
x1 + 4 x2 + f1 10000
5 x1 + 2 x2 + f2 30000
x1, x2, f1, f2 0
21
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
b) Soluo inicial
Base
f1
f2
z
x1
1
5
-11
x2
4
2
-12
f1
1
0
0
f2
0
1
0
b
10000
30000
0
c) Primeira iterao
Varivel a entrar na base:
x1
1/4
4,5
-8
x2
1
0
0
f1
1/4
-1/2
3
f2
0
1
0
b
2500
25000
30000
d) Segunda iterao
Varivel a entrar na base:
x1
0
1
0
x2
1
0
0
f1
0,2778
-0,1111
2,1111
f2
-0,0556
0,2222
1,7778
b
1111,11
5555,56
74444,44
22
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
minimizar z = c1 x1 + c2 x2 + ... + cn xn
equivalente a
maximizar z' = - c1 x1 - c2 x2 - ... - cn xn
com z' = - z.
Essa uma das formas de se resolver os problemas de minimizao utilizando o mesmo algoritmo.
Caso que queira resolver diretamente, devemos alterar o critrio de entrada das variveis na base. A
varivel que entra na base passa a ser aquela que tem o maior valor positivo na linha z-transformada.
Caso todas tenham coeficientes negativos ou nulos, a soluo obtida tima.
4.5.2 Restries de limite inferior ()
Uma desigualdade em uma direo ( ou ) pode ser mudada para uma desigualdade na direo
oposta, pela multiplicao de ambos os lados da desigualdade por (-1).
Exemplo:
a1 x1 + a2 x2 b
equivalente a
- a1 x1 - a2 x2 -b
4.5.3 Restries de igualdade
Uma equao pode ser substituda por duas desigualdades de direes opostas.
Exemplo:
a1 x1 + a2 x2 = b
se a varivel x1 for irrestrita em sinal, pode ser substituda pela diferena (x'1 - x''1)
com
x'1 0 e x''1 0.
23
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
z = 10 x1 + 4 x2 + 5 x3
sujeito a:
8 x1 + 3 x2 + 4 x3 10
4 x1 + 3 x2 8
x1, x2, x3 0
Como temos uma restrio do tipo (), a varivel de folga deve ter coeficiente negativo, tendo o
significado de uma varivel de excesso. O problema transformado :
minimizar
z = 10 x1 + 4 x2 + 5 x3
sujeito a:
8 x1 + 3 x2 + 4 x3 - f1 = 10
4 x1 + 3 x2 + f2 = 8
x1, x2, x3, f1, f2 0
24
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
A primeira fase do problema, que consiste na maximizao da funo objetivo auxiliar, fornecer uma
soluo vivel para o problema original. A segunda fase consiste em resolver o problema original
tomando como soluo inicial os valores obtidos pela primeira fase para as variveis xi e fi.
a) Soluo inicial
Para resolver o problema, monta-se o quadro de forma semelhante sistemtica, colocando-se a
funo objetivo artificial na ltima linha. O quadro do exemplo fica:
Base
z1
z2
z' = -z
zaux
x1
8
4
10
-12
x2
3
3
4
-6
x3
4
0
5
-4
f1
-1
0
0
1
f2
0
1
0
-1
z1
1
0
0
0
z2
0
1
0
0
b
10
8
0
-18
x1
1
0
0
0
x2
3/8
3/2
1/4
-3/2
x3
1/2
-2
0
2
f1
-1/8
1/2
5/4
-1/2
f2
0
1
0
-1
z1
1/8
-1/2
-5/4
3/2
z2
0
1
0
0
b
5/4
3
-12,5
-3
25
http://www.ericolisboa.eng.br
4 - O Mtodo Simplex
Pesquisa Operacional
L2 2 L2 / 3
L1 L1 - 3 L2 / 8
L3 L3 - L2 / 4
L4 L4 + 3 L2 / 2
Base
x1
x2
z' = -z
zaux
x1
1
0
0
0
x2
0
1
0
0
x3
1
-4/3
1/3
0
f1
-1/4
1/3
7/6
0
f2
-1/4
2/3
-1/6
0
z1
1/4
-1/3
-7/6
1
z2
-1/4
2/3
1/6
1
b
1/2
2
-13
0
Como na ltima linha o valor da funo objetivo artificial zero, a primeira fase terminou e a soluo
encontrada a soluo bsica inicial para a segunda fase.
Removendo a ltima linha e as colunas referentes s variveis artificiais, o quadro se torna
Base
x1
x2
z' = -z
x1
1
0
0
x2
0
1
0
x3
1
-4/3
1/3
f1
-1/4
1/3
7/6
f2
-1/4
2/3
-1/6
b
1/2
2
-13
x1
1
0
0
x2
3/8
3/2
1/4
x3
1/2
-2
0
f1
-1/8
1/2
5/4
f2
0
1
0
b
5/4
3
-12,5
26
http://www.ericolisboa.eng.br