Você está na página 1de 4

Programação Linear

Prof. Caroline Mota

NOTAS DE AULA

PROGRAMAÇÃO LINEAR - EXEMPLO MÉTODO ANALÍTICO – DICIONÁRIO DO


SIMPLEX

LA
O método SIMPLEX exige que o problema de otimização apresente todas as restrições em igualdade.

Isto não é uma limitação para a aplicação do método porque é possível transformar todos os problemas
para esta forma.

Caso 1 – Desigualdade do tipo menor ou igual

U
x1  3

A
Pode incluir uma variável de folga x3  0 de tal forma que a nova restrição é:

x1 + x3 = 3
E
Caso 2 – Desigualdade do tipo maior ou igual
D
x2  9

Pode incluir uma variável de excesso x4  0 de tal forma que a nova restrição é:
S

x2 − x4 = 9
TA

Caso 4 – Variável sem restrição de sinal

Vamos supor que x 2 não apresente restrição de sinal possa assumir valores positivos ou
negativos. Deve-se impor a restrição à duas novas varáveis e rescrever x 2 em função delas.
O

x2 = x2' − x2" onde x2'  0 e x2"  0 .

Caso 5 – Lado direito negativo ( b < 0)


N

Multiplica-se a expressão por (-)1.


RESOLUÇÃO ANALÍTICA - MÉTODO DICIONÁRIO

Início

Determine
uma solução viável

LA
Solução Sim
Ótima? Fim

Não

Determine uma solução viável

U
melhor

A
Fig. 1 - Procedimento iterativo

Terminologia
E
- Variáveis Básicas
o São as que fazem parte do modelo e queremos encontrar um valor
D
o Devem ficar do lado esquerdo das expressões de um dicionário

- Variáveis Não Básicas


o São as variáveis que consideradas nulas no modelo
S

o Devem ficar do lado direito das expressões do dicionário.


- A cada nova solução, as variáveis básicas e não básicas se alternam.
TA

- Em cada ciclo uma variável entra no conjunto de variáveis básicas e outra o deixa.
O
N
EXEMPLO

Max Z = 5x1 + 2x2

s/a x1 =< 3
x2 =< 4
x1+2x2 =< 9
x1, x2 => 0

LA
Inserindo as variáveis de folga:

Max Z = 5x1 + 2x2

s/a x1 + x3 =3
x2 + x4 =4

U
x1+2x2 + x5 = 9

Dicionário Inicial:

A
Z = 5x1 + 2x2
x3 = 3 - x1 Solução Inicial
x4 = 4 - x2 (0,0,3,4,9) e Z=0
x5 = 9- x1+2x2
E
x1, x2, x3, x4, x5 => 0
D
Decisões:
- variável que entra na base: x1 → contribui mais para aumentar Z
- variável que sai da base: (x3, x4, x5?).
Assumindo que x2 = 0, temos:
S

x3 = 3 - x1 >= 0 → x1 <= 3 Mais rigorosa x1 <= 3 → sai x3


x4 = 4 → não interfere em x1
TA

x5 = 9- x1 >= 0 → x1 <= 9

Mudanças de base: x1 = 3 – x3
Z = 5x1 + 2x2 → Z = 5*(3 – x3) + 2x2 Z = 15+ 2x2 – 5x3
x1 = 3 – x3 x1 = 3 – x3
x4 = 4 - x2 x4 = 4 - x2
O

x5 = 9- x1+2x2 → x5 = 9- (3 – x3) +2x2 x5 = 6- 2x2 +x3

Dicionário após 1ª. Iteração:


N

Z = 15+ 2x2 – 5x3


x1 = 3 – x3 Solução
x4 = 4 - x2 (3,0,0,4,6) e Z=15
x5 = 6- 2x2 +x3

Solução é ótima? Não, x2 ainda pode contribuir para melhorar Z


Decisões:
- variável que entra na base: x2
- variável que sai da base: (x1, x4, x5?).
Assumindo que x3 = 0, temos:
x1 = 3 → não interfere em x2
x4 = 4 – x2 >= 0 → x2 <= 4
x5 = 6- 2x2 >= 0 → x2 <= 3 Mais rigorosa x2 <= 3 → sai x5

Mudanças de base: x5 = 6- 2x2 +x3 → x2 = 3 +1/2 x3 – 1/2 x5


Z = 15+ 2x2 – 5x3 → Z = 21 – 4x3 – x5

LA
x1 = 3 – x3
x4 = 4 - x2 → x4 = 1 - 1/2 x3 + 1/2 x5
x2 = 3 +1/2 x3 - 1/2 x5

Dicionário após 2ª. Iteração:

U
Z = 21 – 4x3 – x5
x1 = 3 – x3 Solução
x4 = 1 - 1/2 x3 + 1/2 x5 (3,3,0,1,0) e Z=21

A
x2 = 3 +1/2 x3 - 1/2 x5

Solução é ótima? Sim, não há como melhorar Z


E
Resumo:

a) Achar uma solução viável básica inicial (óbvia). Para problemas na forma padrão, fazer as variáveis
D
originais não básicas, i.e. iguais a zero. Escrever o dicionário separando as variáveis não básicas e
básicas

b) Avaliar se a solução é ótima. Se todos os coeficientes da função objetivo (variáveis não básicas)
S

forem negativos (ou nulos) a solução atual é ótima. Caso contrário ir para o próximo passo.
TA

c) Decidir quem sai e quem entra na base Tirar da base a variável básica que se anular mais
rapidamente, quando a variável que entrar for aumentada de valor.

d) Reorganizar o dicionário. Achar uma outra solução viável básica, levando em consideração os
passos anteriores.
.
O
N

Você também pode gostar