Você está na página 1de 12

4 - O Mtodo Simplex

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 Para as restries, a relao lgica existente : Utilizao de recurso Disponibilidade

Prof. Erico Lisboa

15

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex

Pesquisa Operacional

Assim temos Madeira: 2 x1 + 3 x2 12 Mo-de-obra: 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 2 x1 + x2 8

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 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: Sujeito a z = 4 x1 + x2 2 x1 + 3 x2 + f1 = 12 2 x1 + x2 + f2 = 8 x1, x2, f1, f2 0 O problema se transformou em encontrar a soluo do sistema de equaes lineares que maximiza o lucro. Como neste caso o nmero de variveis (m = 4) superior ao nmero de equaes (n = 2), o sistema indeterminado, apresentando infinitas solues. No entanto, todas as variveis devem ser maiores ou iguais a zero. Atribuir zero a uma varivel significa no produzir um dos produtos (se a varivel for x1 ou x2) ou utilizar toda a

Prof. Erico Lisboa

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 2 = 4! / (2! 2!) = 6 4 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: temos as variveis bsicas dando o lucro c.2) Variveis no-bsicas: temos as variveis bsicas dando o lucro c.3) Variveis no-bsicas: temos as variveis bsicas x1 = 0 x2 = 0 f1 = 12 f2 = 8 z=0 x1 = 0 f1 = 0 x2 = 4 f2 = 4 z=4 x1 = 0 f2 = 0 x2 = 8 f1 = -12 como f1 < 0, a soluo obtida INVIVEL. c.4) Variveis no-bsicas: temos as variveis bsicas x2 = 0 f1 = 0 x1 = 6 f2 = -4 como f2 < 0, a soluo obtida INVIVEL.

Prof. Erico Lisboa

17

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex

Pesquisa Operacional

c.5) Variveis no-bsicas: temos as variveis bsicas dando o lucro c.6) Variveis no-bsicas: temos as variveis bsicas dando o lucro

x2 = 0 f2 = 0 x1 = 4 f1 = 4 z = 16 f1 = 0 f2 = 0 x1 = 3 x2 = 2 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 sujeito a z = 4 x1 + x2 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: para: z = 4 x1 + x2 z - 4 x1 - x2 = 0

Prof. Erico Lisboa

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 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 (variveis bsicas)

Prof. Erico Lisboa

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

Prof. Erico Lisboa

20

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex

Pesquisa Operacional

4.3 Procedimento do Mtodo Simplex (Problemas de Maximizao) Passo 1: Introduzir as variveis de folga; uma para cada desigualdade. Passo 2: Montar um quadro para os clculos, colocando os coeficientes de todas as variveis com os respectivos sinais e, na ltima linha, incluir os coeficientes da funo objetivo transformada. Passo 3: Estabelecer uma soluo bsica inicial, usualmente atribuindo valor zero s variveis originais e achando valores positivos para as variveis de folga. Passo 4: Como prxima varivel a entrar na base, escolher a varivel no bsica que oferece, na ltima linha, a maior contribuio para o aumento da funo objetivo (ou seja, tem o maior valor negativo). Se todas as variveis que esto fora da base tiverem coeficientes nulos ou positivos nesta linha, a soluo atual tima. Se alguma dessas variveis tiver coeficiente nulo, isto significa que ela pode ser introduzida na base sem aumentar o valor da funo objetivo. Isso quer dizer que temos uma soluo tima, com o mesmo valor da funo objetivo. Passo 5: Para escolher a varivel que deve deixar a base, deve-se realizar o seguinte procedimento: a) Dividir os elementos da ltima coluna pelos correspondentes elementos positivos da coluna da varivel que vai entrar na base. caso no haja elemento algum positivo nesta coluna, o processo deve parar, j que a soluo seria ilimitada. b) O menor quociente indica a equao cuja respectiva varivel bsica dever ser anulada, tornando-se varivel no bsica. Passo 6: Usando operaes vlidas com as linhas da matriz, transformar o quadro de clculos de forma a encontrar a nova soluo bsica. A coluna da nova varivel bsica dever se tornar um vetor identidade, onde o elemento 1 aparece na linha correspondente varivel que est sendo anulada. Passo 7: Retornar ao passo 4 para iniciar outra iterao. 4.4 Outro Exemplo Vamos resolver pelo mtodo Simplex o problema das raes proposto no Captulo 1, cujo modelo foi apresentado no Captulo 3. maximizar sujeito a: Z = 11 x1 + 12 x2 x1 + 4 x2 10000 5 x1 + 2 x2 30000 x1, x2 0 a) Incluso das variveis de folga Com a incluso das variveis de folga, o problema torna-se: maximizar sujeito a: Z = 11 x1 + 12 x2 x1 + 4 x2 + f1 10000 5 x1 + 2 x2 + f2 30000 x1, x2, f1, f2 0

Prof. Erico Lisboa

21

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex

Pesquisa Operacional

b) Soluo inicial Base f1 f2 z c) Primeira iterao Varivel a entrar na base: x2 (coluna com maior valor negativo na ltima linha) Varivel a sair da base: f1 (o quociente 10000/4 o menor quociente entre a ltima coluna e a coluna da varivel x2, que vai entrar na base) L1 L1 / 4 L2 L2 - 2 L1 L3 L3 + 12 L1 Base x2 f2 z d) Segunda iterao Varivel a entrar na base: x1 (coluna com maior valor negativo na ltima linha) Varivel a sair da base: f2 (o quociente 25000/ 4,5 o menor quociente entre a ltima coluna e a coluna da varivel x1, que vai entrar na base) L2 L2 / 4,5 L1 L1 - L2 / 4 L3 L3 + 8 L2 Base x2 x1 z e) Soluo tima encontrada Como todos os valores da ltima linha (funo z-transformada) so positivos ou nulos, conclumos que a soluo encontrada tima, ou seja: x1 = 5555,55 x2 = 1111,11 z = 74444,44 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 x1 1/4 4,5 -8 x2 1 0 0 f1 1/4 -1/2 3 f2 0 1 0 b 2500 25000 30000 x1 1 5 -11 x2 4 2 -12 f1 1 0 0 f2 0 1 0 b 10000 30000 0

Prof. Erico Lisboa

22

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex

Pesquisa Operacional

4.5 Aspectos Matemticos Singulares Na modelagem de um problema de programao linear, algumas situaes especficas podem ocorrer, o que pode levar a casos em uma forma matemtica diferente da apresentada at o momento. Entretanto, alguns artifcios matemticos ajudam a reduzir o modelo obtido forma padro estudada. Estes artifcios so mostrados a seguir. 4.5.1 Minimizao de uma funo A minimizao de uma funo z(x) matematicamente anloga maximizao da negativa desta funo (-z(x)). Exemplo: minimizar z = c1 x1 + c2 x2 + ... + cn xn 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 - 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 a1 x1 + a2 x2 b a1 x1 + a2 x2 b 4.5.4 Varivel irrestrita em sinal Uma varivel irrestrita em sinal (ou seja, que pode ser positiva, nula ou negativa) pode ser substituda pela diferena de duas variveis no negativas. Exemplo: com x'1 0 e x''1 0. se a varivel x1 for irrestrita em sinal, pode ser substituda pela diferena (x'1 - x''1) equivalente a duas desigualdades simultneas: equivalente a equivalente a

Prof. Erico Lisboa

23

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex

Pesquisa Operacional

4.6 Mtodo Simplex em Duas Fases O Mtodo Simplex utiliza uma soluo inicial vivel para comear o processo iterativo, trabalhando sempre dentro da regio vivel. Nos casos apresentados at o presente momento, a soluo xi = 0, para i = 1, ..., n era uma soluo vivel, j que todas as restries apresentadas foram do tipo (). Quando as restries so do tipo (=) ou (), esta soluo no existe. Seja o exemplo abaixo: minimizar sujeito a: z = 10 x1 + 4 x2 + 5 x3 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 sujeito a: z = 10 x1 + 4 x2 + 5 x3 8 x1 + 3 x2 + 4 x3 - f1 = 10 4 x1 + 3 x2 + f2 = 8 x1, x2, x3, f1, f2 0 onde f1 uma varivel de excesso e f2 uma varivel de folga. Note que, pelo processo de soluo anterior, a varivel de excesso (f1) passaria a ter valor negativo na soluo inicial (-10), o que no permitido. Assim, a soluo x1 = x2 = x3 = 0 invivel. necessrio ento encontrar uma soluo vivel para que o mtodo Simplex possa ser iniciado. A forma de se resolver isto inventando novas variveis. Estas variveis so chamadas de variveis artificiais, e representadas por zi. Ser colocada uma varivel artificial em cada restrio do modelo, ou seja: 8 x1 + 3 x2 + 4 x3 - f1 + z1 = 10 4 x1 + 3 x2 + f2 + z2 = 8 x1, x2, x3, f1, f2, z1, z2 0 Como pode-se perceber, o problema com as restries acima no o mesmo problema, a no ser que todas as variveis zi sejam iguais a zero. Desta forma, podemos resolver o problema em duas fases: na primeira fase, substitumos a funo objetivo original por uma funo objetivo auxiliar: zaux = - z1 - z2 = 12 x1 + 6 x2 + 4 x3 - f1 + f2 - 18 Nesse momento, aplicamos o mtodo Simplex de forma a maximizar a funo objetivo auxiliar, com as restries contendo as variveis auxiliares. A funo objetivo auxiliar ser maximizada quando todas as variveis zi forem iguais a zero, j que no podem conter valores negativos.

Prof. Erico Lisboa

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

Obs. Como a funo objetivo de minimizao, ele foi transformado em um problema de maximizao atravs da multiplicao de todos os coeficientes por (-1). A seguir, aplica-se o mtodo Simplex normalmente, usando como funo objetivo a ltima linha. Quando a soluo tima for atingida, dois casos podem ocorrer: zaux = 0: neste caso foi obtida uma soluo bsica do problema original e o processo de soluo deve continuar, desprezando-se as variveis artificiais e os elementos da ltima linha. o incio da segunda fase do processo. zaux 0: neste caso o problema original no tem soluo vivel, o que significa que as restries devem ser inconsistentes. b) Fase 1 - Primeira iterao Varivel a entrar na base: x1 (coluna com maior valor negativo na ltima linha) Varivel a sair da base: z1 (o quociente 10/8 o menor quociente entre a ltima coluna e a coluna da varivel x1, que vai entrar na base) L1 L1 / 8 L2 L2 - 4 L1 L3 L3 - 10 L1 L4 L4 + 12 L1
Base x1 z2 z' = -z zaux 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

c) Fase 1 - Segunda iterao Varivel a entrar na base: x2 (coluna com maior valor negativo na ltima linha) Varivel a sair da base: z2 (o quociente 3/(3/2) o menor quociente entre a ltima coluna e a coluna da varivel x2, que vai entrar na base)

Prof. Erico Lisboa

25

http://www.ericolisboa.eng.br

4 - O Mtodo Simplex 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

Pesquisa Operacional

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

d) Fase 2 - Primeira iterao Varivel a entrar na base: f2 (coluna com maior valor negativo na ltima linha) Varivel a sair da base: x2 (o quociente 2/(2/3) o menor quociente entre a ltima coluna e a coluna da varivel x2, que vai entrar na base) L2 3 L2 / 2 L1 L1 + L2 / 4 L3 L3 + L2 / 6
Base x1 x2 z' = -z 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

e) Soluo tima encontrada Como todos os valores da ltima linha (funo z-transformada) so positivos ou nulos, conclumos que a soluo encontrada tima, ou seja: x1 = 1,25 x2 = 0 z = -z' = 12,5

Prof. Erico Lisboa

26

http://www.ericolisboa.eng.br

Você também pode gostar