Você está na página 1de 8

UNIDADE 2

Tópico 1 – Solução Ótima


Método Simplex: O Simplex é um método de resolução de problemas de Programação
Linear que se baseia em operações matriciais na busca da solução ótima. Esse método
utiliza-se de uma solução conhecida no PPL para encontrar as principais soluções
compatíveis do problema, determinando a maior dentre elas, em problemas de
maximização, ou a menor dentre as soluções compatíveis, em problemas de minimização.
A aplicação do método Simplex se dá através de um quadro específico que contém as
informações necessárias à resolução. Seguindo uma sequência de procedimentos padrão,
já definidos, a solução ótima e os valores das variáveis de decisão são determinados
facilmente. Mas, para isso, é necessário que o modelo do PPL esteja escrito de uma
maneira especial, chamada de Forma Padrão do PPL.
Forma Padrão do PPL: A forma padrão visa organizar os modelos de PL de uma mesma
forma, facilitando os cálculos nos quadros do Método Simplex, minimizando o tempo de
busca pela solução ótima do PPL.
Para escrever um modelo de PPL em sua forma padrão devemos:
 fazer com que os coeficientes da mão direita sejam números não negativos. Obs.: aij
e bij são os coeficientes das restrições, sendo os bij os coeficientes da mão direita.
 restringir todas as variáveis de decisão não restritas;
 substituir as restrições definidas por ≤ usando variáveis de folga;
 substituir as restrições definidas por ≥ usando variáveis de excesso;
 ajustar, se necessário, a Função Objetivo.

Não Negatividade da mão direita


Se alguma restrição tiver como coeficiente da mão direita um número negativo, devemos
multiplicar todos os termos da restrição por –1 para que os sinais sejam opostos e, desse
modo, o coeficiente da mão direita fique positivo.

Variáveis não restritas


Alguns PPLs podem assumir variáveis que não necessitem da condição de não
negatividade (controles de caixa, por exemplo), mas na forma padrão essas variáveis são
substituídas pela diferença entre duas novas variáveis não negativas.
Exemplo: PPL
Max Z = 2x1 – x2 + 4x3
Restrições: –5x1 – 2x2 + 3x3 ≤ 7; 2x1 – 2x2 + x3 ≥ 8; com x1 e x3 não negativos
Observe que x2 não tem restrição (irrestrito), nesses casos, substituiremos a variável x2
nas restrições pela diferença dada por x2 = x’2 – x”2, de modo que restringimos x’2 e x”2
como variáveis não negativas.
Reescrevendo o PPL:
Max Z = 2x1 – x”2 + x”2+ 4x3
Restrições: –5x1 – 2x’2 + x”2+ 3x3 ≤ 7; 2x1 – 2x’2 + 2x”2+ x3 ≥ 8;
x1, x’2, x”2, x3 ≥ 0
Variáveis de Folga
O método Simplex utiliza sistemas de equações lineares na sua resolução (busca por Z*),
nesse caso não podemos utilizar restrições definidas por desigualdades. Assim, toda
restrição desse tipo deve ser reescrita em uma igualdade, obedecendo ao sinal da
desigualdade. Em restrições definidas pelo sinal ≤, devemos acrescentar uma variável de
folga xf no 1º membro da restrição, correspondente à diferença entre os valores calculados
na solução ótima e os máximos da restrição. Essas folgas serão melhores analisadas no
estudo sobre Análise de Pós-Otimização.
Exemplo:
Max Z = 2x1 – x’2 + x”2 + 4x3
Restrição: –5x1 – 2x’2 + 2x”2+ 3x3 ≤ 7; (Restrição definida por ≤)
2x1 – 2x’2 + 2x”2+ x3 ≥ 8;
x1, x’2, x”2, x3 ≥ 0
A primeira restrição é definida pela desigualdade ≤, então acrescentamos uma
variável de folga xf nas restrições e na F.O., reescrevendo a primeira restrição como
uma igualdade.
Max Z = 2x1 – x’2 + x”2 + 4x3 + 0xf
Restrições: –5x1 – 2x’2 + 2x”2+ 3x3 + xf = 7;
2x1 – 2x’2 + 2x”2+ x3 + 0xf ≥ 8
x1, x’2, x”2, x3, xf ≥ 0
Variáveis de Excesso
Exemplo:
Max Z = 2x1 – x’2 + x”2 + 4x3 + 0xf
Restrições: –5x1 – 2x’2 + 2x”2+ 3x3 + xf = 7;
2x1 – 2x’2 + 2x”2+ x3 + 0xf ≥ 8; (Restrição definida por ≥)
x1, x’2, x”2, x3, xf ≥ 0
Reescrevendo:

Max Z = 2x1 – x’2 + x”2 + 4x3 + 0xf + 0xe


Restrições: –5x1 – 2x’2 + 2x”2+ 3x3 + xf +0xe = 7;
2x1 – 2x’2 + 2x”2+ x3 + 0xf + xe = 8; (Restrição definida por ≥)
x1, x’2, x”2, x3, xf, xe ≥ 0
Fazemos essas alterações apenas quando for necessário. Para facilitar as resoluções,
não usaremos as nomenclaturas xf e xe para as variáveis de folga e excesso, apenas
usaremos índices numéricos como as variáveis de decisão originais do PPL.

ALTERAÇÕES NA FUNÇÃO OBJETIVO: Ao longo do exemplo, necessitamos


várias vezes fazer modificações na F.O. Essas alterações se devem ao fato de termos
alterado o sistema de restrições, introduzindo novas variáveis, e essa inclusão ocasiona
algumas modificações no modelo do PPL.As variáveis de folga e de excesso não causam
modificações nas restrições, nem na Função Objetivo, mas esta última deve ser reescrita
levando também em conta esse tipo de variável, utilizando zeros como coeficientes das
variáveis na F.O.
O ALGORÍTMO SIMPLEX
Vamos verificar o funcionamento do método simplex, passo a passo, através de um
exemplo, e depois veremos como utilizar esse método, de maneira mais rápida e
econômica, através do Tableau Simplex, um quadro que nos ajuda a realizar os cálculos
necessários.
PPL original:
Max L = 300xT + 400xM - Função Objetivo (maximizar o lucro)
Restrições: xT + xM ≤ 50 Restrição ao tamanho do terreno
3xT + 2xM ≤ 120 Restrição ao uso de mão de obra
xT ≤ 30 Restrição a demanda por trigo
xM ≤ 40 Restrição a demanda por milho
xT , xM ≥ 0 Restrição à não negatividade
1° PASSO – REESCREVER O PPL NA FORMA PADRÃO:
Não negatividade da mão direita – ok
Restrição de variáveis – todas restritivas – ok
Variáveis de folga: (≤) – Reescrevendo o PPL – Fazendo xT=x1 e xM=x2
Max L = 300x1 + 400x2 + 0x3+ 0x4+ 0x5+ 0x6- Função Objetivo (maximizar o lucro)
Restrições: x1 + x2 + x3 = 50 Restrição ao tamanho do terreno
3x1 + 2x2 + 0x3+ x4 = 120 Restrição ao uso de mão de obra
x1 + 0x3+ 0x4+ x5= 30 Restrição a demanda por trigo
x2 + 0x3+ 0x4+ 0x5+ x6 = 40 Restrição a demanda por milho
x1 , x2, x3, x4, x5, x6 ≥ 0 Restrição à não negatividade

Escrever o sistema de restrições em forma matricial:

Agora, fazemos x1 = 0 e x2 = 0, chamando essas variáveis de Variáveis Não Básicas


(VNB), e substituímos esses valores no sistema de restrições, assim:

Reescrever nosso sistema de restrições acima usando a operação de multiplicação de


matrizes como segue:

A vantagem dessa representação consiste em determinar uma solução básica inicial para
o PPL:
x1=0
x2=0 Variáveis não básicas
x3= 50
x4= 120 Variáveis básicas
x5= 30
x6= 40

Assim, temos a solução inicial que pode ser escrita por x = (0,0,50,120,30,40). E o valor
da função objetivo para essa solução é dado por:

L = 300x1 + 400x2 + 0x3+ 0x4+ 0x5+ 0x6


L = 300. 0 + 400. 0 + 0 .50+ 0. 120+ 0. 30+ 0. 40
L=0

Observando os coeficientes da Função Objetivo para x1 e x2 (coeficientes +300 e +400),


vemos que, mudando os valores de x1 ou x2 para um número positivo diferente de zero,
o valor de L na F.O. também será positivo. Como nosso objetivo é maximizar o valor de
L, e qualquer valor positivo é maior do que zero, verificamos que a presente solução x =
(0,0,50,120,30,40) não é a solução ótima do PPL, já que L pode ser aumentado se
aumentarmos o valor de x1 ou x2. Isso significa fazer com que x1 ou x2 se torne uma VB
(entre na base). Mas, para isso, devemos fazer uma troca de variáveis, ou seja, devemos
escolher que variável entra na base (deixando de ter valor zero) e que variável sai na base
(assumindo o valor zero).
A escolha da variável que entra na base é simples, basta verificar que VNB possui
maior coeficiente na F.O. Consequentemente, haverá uma maior contribuição para o valor
de L se usarmos a variável com maior coeficiente.
Em nosso exemplo, x2 tem maior coeficiente (+400) e por isso deve entrar na base. Mas
para a entrada de x2 na base, uma das variáveis da base deve sair. Qual delas? Ao
aumentarmos o valor da variável x2, as variáveis x3, x4, x5 e x6 devem ter seus valores
reduzidos para que se mantenham as igualdades das restrições, já que x1 = 0. Assim,
devemos procurar qual a VB que primeiro se anula com o aumento de x2.

Temos que:
x3 = 0 quando x2 = 50, pois x1 +x2 +x3 = 0 + 50 + 0 = 50
x4 = 0 quando x2 = 60, pois 3x1 + 2x2 + x4 = 3 • 0 + 2 • 60 + 0 = 120
x5 não depende de x2 e com isso não se altera
x6 = 0 quando x2 = 40, pois 2x2 + x6 = 40 + 0 = 40
Logo, x6 deve sair da base, já que o aumento de x2 fará com que x6 diminua,
podendo admitir um valor negativo, o que não pode ocorrer (restrição à não
negatividade).

 Com a troca das variáveis da base, tirando x6 (que passa a valer zero) e colocando x2,
devemos reescrever a função objetiva em função das variáveis não básicas (x1 e x6)
usando a relação x2 = 40 – x6 para as substituições, mantendo a restrição x2 + x6=
40.
PPL atualizado com a troca de variáveis:

Max L = 300x1 + 400 (40 – x6) - Função Objetivo (maximizar o lucro)


Restrições: x1 + (40 – x6) + x3 = 50 Restrição ao tamanho do terreno
3x1 + 2(40 – x6) + x4 = 120 Restrição ao uso de mão de obra
x1 + x5= 30 Restrição a demanda por trigo
x2 + x6 = 40 Restrição a demanda por milho
x1, x2, x3, x4, x5, x6 ≥ 0 Restrição à não negatividade

Simplificando:

Max L = 300x1 - 400 x6 + 16000 - Função Objetivo (maximizar o lucro)


Restrições: x1 – x6 + x3 = 10 Restrição ao tamanho do terreno
3x1 – 2x6 + x4 = 40 Restrição ao uso de mão de obra
x1 + x5= 30 Restrição a demanda por trigo
x2 + x6 = 40 Restrição a demanda por milho
x1, x2, x3, x4, x5, x6 ≥ 0 Restrição à não negatividade

Analisando a função objetivo, percebemos que (para x1 = x 6 = 0), Z = 16000, valor maior
do que aquele obtido pela solução básica inicial (Z = 0). Mas podemos observar que o
coeficiente da variável x1 é um número positivo e com isso qualquer valor maior que zero
para essa variável faz com que o valor de Z seja maior. Ou seja, x1 deve entrar na base,
forçando uma nova troca de variáveis da base.

Verificamos qual variável se anula primeiro quando aumentamos o valor da


variável x1 nas igualdades das restrições, com x6 = 0:

x1 – x6 + x3 = 10, quando x1= 10, então x3=0.


3x1 – 2x6 + x4 = 40, quando x1=40/3, então x4=0
x1 + x5= 30, quando x1= 30, então x5=0
x2 + x6 = 40, x2 não depende de x1.
x1, x2, x3, x4, x5, x6 ≥ 0 Restrição à não negatividade

Se aumentarmos o valor da variável x1, a primeira variável que se anula com esse
aumento é x3, logo, é essa variável que deve sair da base. Trocando as variáveis, devemos
reescrever o PPL (função objetiva) em função das variáveis não básicas (x3 e x6) usando
a expressão x1 = 10 – x3 + x6 para as substituições, mantendo a primeira restrição.
Mudança de Base:

Max L = 300 (10 -x3 + x6) - 400 x6 + 16000 - Função Objetivo (maximizar o lucro)
Restrições: x1 – x6 + x3 = 10 Restrição ao tamanho do terreno (mantém)
3(10 -x3 + x6) – 2x6 + x4 = 40 Restrição ao uso de mão de obra
(10 -x3 + x6) + x5= 30 Restrição a demanda por trigo
x2 + x6 = 40 Restrição a demanda por milho
x1, x2, x3, x4, x5, x6 ≥ 0 Restrição à não negatividade

Simplificação:

Max L = – 300x3 - 100 x6 + 19000 - Função Objetivo (maximizar o lucro)


Restrições: x1 – x6 + x3 = 10 Restrição ao tamanho do terreno (mantém)
-3x3 + x6 + x4 = 10 Restrição ao uso de mão de obra
-x3 + x6 + x5= 20 Restrição a demanda por trigo
x2 + x6 = 40 Restrição a demanda por milho
x1, x2, x3, x4, x5, x6 ≥ 0 Restrição à não negatividade

Agora a função objetiva está escrita em função das variáveis não básicas x3 e x6, que
possuem coeficientes negativos. A entrada de qualquer uma dessas variáveis na base
trará um valor negativo para a função objetivo e, consequentemente, o valor de Z
diminuirá. Assim, estamos diante da solução ótima do PPL. Os valores da solução são
calculados fazendo x3 = 0 e x6 = 0, e assim:

Z = -300. 0 – 100. 0 + 19000 ⇒ Z = 19000

A busca pela solução ótima de um PPL através do método simplex se dá por uma
sequência de procedimentos a serem seguidos.
1º Solução básica inicial: inicia-se escrevendo o PPL na sua forma padrão, adotando os
coeficientes da mão direita como valores para as variáveis artificiais, usando-as como
uma solução básica inicial.
2º Teste de otimalidade: verificam-se os coeficientes das variáveis não básicas na
função objetivo:
• se todos os coeficientes forem positivos, então a presente solução é ótima;
• se há coeficientes negativos, escolhe-se o coeficiente negativo de maior valor absoluto
para a variável que deve entrar na base.
3º Troca da base: escrevem-se as variáveis básicas do PPL em função das variáveis não
básicas e verifica-se qual VB anula-se primeiro ao aumentar o valor da variável escolhida
para entrar na base.
4º Reformulação do PPL: escreve-se a função objetivo e as restrições do PPL em função
das novas VNB, simplificando-se o quanto for possível.
5º Solução do PPL: adotando-se 0 como valor das VNB, calcula-se o valor das VB e da
função objetivo.
6º Repete-se o procedimento a partir do 2º passo.

TABLEAU SIMPLEX :
O tableau simplex nada mais é do que um quadro resumo do método simplex. Nele são
feitos todos os cálculos efetuados pelo método, mas de uma maneira resumida.

Você também pode gostar