Você está na página 1de 13

ZAB1058ZAB1058 PESQUISAPESQUISA OPERACIONALOPERACIONAL EE OTIMIZAÇÃOOTIMIZAÇÃO DEDE SISTEMASSISTEMAS AGROPECUÁRIOSAGROPECUÁRIOS

PROGAMAÇÃOPROGAMAÇÃO LINEAR:LINEAR: MÉTODOMÉTODO SIMPLEXSIMPLEX MÉTODO SIMPLEX ANALÍTICO: CONCEITOS E
PROGAMAÇÃOPROGAMAÇÃO LINEAR:LINEAR:
MÉTODOMÉTODO SIMPLEXSIMPLEX
MÉTODO SIMPLEX ANALÍTICO: CONCEITOS E DEFINIÇÕES
MÉTODO SIMPLEX ANALÍTICO: PROCEDIMENTO ITERATIVO
MÉTODO SIMPLEX TABULAR: CONCEITOS E DEFINIÇÕES
MÉTODO SIMPLEX TABULAR: PROCEDIMENTO ITERATIVO
MétodoMétodo Simplex:Simplex: formaforma analíticaanalítica • Procedimento de solução (para modelo já elaborado)
MétodoMétodo Simplex:Simplex: formaforma analíticaanalítica
• Procedimento de solução (para modelo já elaborado)
– Transformação de inequações (nas restrições) em equações
Introduzir variáveis referentes à diferença entre RHS e LHS
– Determinação de uma solução viável inicial
início
– Aprimoramento iterativo até solução ótima
obter solução
– Exemplo: Max Z = 5x 1 + 5x 2 + 3x 3
sujeito a x + 3x + x ≤ 3
− x 1 + 3x 3 ≤ 2
2x 1 − x 2 + 2x 3 ≤ 4
2x 1 + 3x 2 − x 3 ≤ 2
viável inicial
1
2
3
sim
solução
fim
ótima?
não
obter solução
x 1 ,
x 2 ,
x 3 ≥ 0
viável melhor
Restrições:Restrições: inequaçõesinequações →→ equaçõesequações • Introdução de variáveis de folga
Restrições:Restrições: inequaçõesinequações →→ equaçõesequações
Introdução de variáveis de folga ↔ inequações tipo ≤
Compensar diferença entre LHS e RHS das inequações
x
x
+
3
x
+
x
3
→
4
x
+
3
x
+
x
+
x
=
3
1
2
3
1
2
3
4
x
x
+
3
x
2
→
5
x
+
3
x
+
x
=
2
1
3
1
3
5
x
2
x
x
+
2
x
4
→
6
2
x
x
+
2
x
+
x
=
4
1
2
3
1
2
3
6
x
2
x
+
3
x
x
2
→
7
2
x
+
3
x
x
+
x
=
2
1
2
3
1
2
3
7
Condição de não-negatividade (todas as variáveis):
x
,
x
,
x
,
x
,
x
,
x
,
x
0
1
2
3
4
5
6
7
TerminologiaTerminologia • Dicionário → conjunto de equações resultantes x = 3− x −3x − x
TerminologiaTerminologia
• Dicionário → conjunto de equações resultantes
x
= 3− x −3x
− x
4
1
2
3
x
=
2
+
x
3
x
5
1
3
x
=
4
2
x
+
x
2
x
6
1
2
3
x
=
2
2
x
3
x
+
x
7
1
2
3
Z
=
5
x
+
5
x
+
3
x
1
2
3
• Variáveis básicas → lado esquerdo do dicionário
• Variáveis não-básicas → lado direito do dicionário
SoluçãoSolução viávelviável inicialinicial • Solução óbvia / trivial → variáveis não-básicas nulas x
SoluçãoSolução viávelviável inicialinicial
Solução óbvia / trivial → variáveis não-básicas nulas
x
= 3− x −3x
− x
x
= 3
4
1
2
3
4
x
= 0 
x
=
2
+
x
3
x
x
=
2
1
5
1
3
5
 
x
= 0
x
=
4
2
x
+
x
2
x
x
=
4
2
6
1
2
3
6
x
= 0
x
=
2
2
x
3
x
+
x
x
=
2
 
3
7
1
2
3
7
 Z
=
5
x
+
5
x
+
3
x
Z
=
0
1
2
3
Solução viável inicial: (0, 0, 0, 3, 2, 4, 2)
Z = 0
aprimoramento iterativo ← a maximizar
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • Em cada iteração da busca pela solução
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
• Em cada iteração da busca pela solução ótima:
– Alternância entre variáveis básicas / variáveis não-básicas
Uma única variável entra no conjunto de variáveis básicas (base)
Uma única variável sai do conjunto de variáveis básicas (base)
– Determinação da variável que entra na base:
Maior incremento possível para Z → maior coeficiente positivo
– Determinação da variável que sai da base:
Condição de não-negatividade → limitação à variável que entra
– Atualização do dicionário devido à alteração entre as variáveis
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração – Variável que entra na
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração
– Variável que entra na base → maior aumento possível de Z
Z
= 5x + 5x
+ 3x
(escolha arbitrária: “empate” c/ x 2 )
1
2
3
– Variável que sai da base
- Condição de não-negatividade
- Limitação ao crescimento de x 1
x
− x
≥ 0
x
≤ 3
4
1
2
3
1
x
≠ 0 
1
2
 x
= 3− x −3x
 −
=
+
x
3
x
0
x
≥ −
2
5
1
3
1
x
= 0
2 
x
=
4
2
x
+
x
2
x
0
x
2
 −
6
1
2
3
1
x
= 0
3 
x
=
2
2
x
3
x
+
x
0
x
1
  −
7
1
2
3
1
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (continuação) –
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração (continuação)
Atualização do dicionário → x 1 em função de x 2 , x 3 , x 7
x
=
3
x
3
x
x
 x
=
2
3
x
3
x
+
4
1
2
3
4
2
2
2
3
1 2 x
7
x
=
2
+
x
3
x
x 1 entra
x
=
3
3
x
5
x
1 x
5
1
3
 −
5
2
2
2
3
2
7
x
=
4
2
x
+
x
2
x
→
 2
 +
x
=
4
x
3
x
+
x
6
1
2
3
6
2
3
7
x
=
2
2
x
3
x
+
x
x
sai
 x
=
1
3
x
+
1
x
1
x
7
1
2
3
7
1
2
2
2
3
2
7
Z
=
5x
+
5x
+
3x
Z
=
5
5
x
+
11
x
5
x
1
2
3
2
2
2
3
2
7
Nova solução óbvia (trivial) viável:
x
=
1,
x
=
0 ,
x
=
0 ,
x
=
2 ,
x
=
3 ,
x
=
2 ,
x
=
0
Z =
5
1
2
3
4
5
6
7
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 2ª iteração – Variável que entra na
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
2ª iteração
– Variável que entra na base → maior aumento possível de Z
Z = 5−
5
x
+
11
x
5
x
2
2
2
3
2
7
– Variável que sai da base
- Condição de não-negatividade
- Limitação ao crescimento de x 3
= 2 −
3
x
3
x
+
1
4
 x
x
≥ 0
x
4
2
2
2
3
2
7
3
3
x
= 0 
7
=
3
x
5
x
x
1
x
0
x
6
5
2
2
2
3
2
7
3
5
x
=
0
  3
2
x
=
2
4
x
3
x
+
x
0
x
2
 +
6
2
3
7
3
3
x
≠ 0
3
1 = 1
3
x
+
1
x
1
x
0
x
≥ −
2
  x
2
2
2
3
2
7
3
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 2ª iteração (continuação) –
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
2ª iteração (continuação)
Atualização do dicionário → x 3 em função de x 2 , x 6 , x 7
x
= 2 −
3
x
3
x
+
1
x
=
1
7
x
+
1
 x
x
4
2
2
2
3
2
7
4
2
2
2
6
x
= 3 −
3
x
5
x
1
x
x
entra
x
=
4
29
x
+
5
x
4
x
5
2
2
2
3
2
7
3
5
3
6
2
6
6
3
7
x
=
2
+
4
x
3
x
+
x
x
=
2
→
+
4
x
1
+
1
x
3 x
6
2
3
7
3
3
3
2
6
3
7
x
=
1
3
x
+
1
x
1
x
x
sai
x
=
4
5
x
1 x
1
x
1
2
2
2
3
2
7
6
1
3
6
2
6
6
3
7
Z
=
5
5
x
+
11
x
5
x
=
26
+
29
x
11
x
2
x
7  
  Z
2
2
2
3
2
3
6
2
6
6
3
7
Nova solução óbvia (trivial) viável:
x
=
4
, x
= 0 , x
=
=1, x
=
4
, x
= 0 , x
= 0
Z =
26
3 2 , x
1
3
2
3
4
5
3
6
7
3
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 3ª iteração – Variável que entra na
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
3ª iteração
– Variável que entra na base → maior aumento possível de Z
Z =
26
+
29
x
11
x
3
6
2
6
6
2 3 x
7
– Variável que sai da base
- Condição de não-negatividade
- Limitação ao crescimento de x 2
=
1
7
1
 x
x
+
x
0
x
2
4
2
2
2
6
2
7
x
=
0 
7
=
4
29
x
+
4
  x
x
0
x
8
5
3
6
2
5 6 x
6
3
7
2
29
x
≠ 0
2
x
=
2
4
x
1
x
+
1
x
0
x
≥ −
1
 +
3
3
3
2
3
6
3
7
2
2
x
=
0
6
 −
x
=
4
5
1
x
1
x
0
x
8
 x
1
3
6
2
6
6
3
7
2
5
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 3ª iteração (continuação) –
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
3ª iteração (continuação)
Atualização do dicionário → x 2 em função de x 5 , x 6 , x 7
x
=
1
7
x
+
1
x
1
21
3
28
 x
=
+
x
x
+
x
4
2
2
2
6
4
29
29
5
29
6
29
7
x
=
4
29
x
+
5
x
4
x
x
entra
x
=
8
6
x
+
5
x
8
x
5
3
6
2
6
6
3
7
2
2
29
29
5
29
6
29
7
x
=
2
+
4
x
1
+
1
x
→
x
=
30
8
x
3
x
1
x
3 x
3
3
3
2
6
3
7
3
29
29
5
29
6
29
7
x 4
=
5
x
1 x
1
x
x
sai
x 1 x
=
32
+
5
9
x
3
x
1 3
6
2
6
6
3
7
5
29
29
5
29
6
29
7
Z
=
26
+
29
x
11
x
 Z
=
10
x
x
2
x
3
6
2 3 x
7
6
2
6
5
6
7
Nova solução óbvia (trivial) viável ⇒ solução ótima:
x
=
32
,
x
=
8
,
x
=
30
,
x
=
1
,
x
=
0 ,
x
=
0 ,
x
=
0
Z =
10
1
29
2
29
3
29
4
29
5
6
7
MétodoMétodo Simplex:Simplex: formaforma tabulartabular • Forma conveniente para solução manual - coeficientes /
MétodoMétodo Simplex:Simplex: formaforma tabulartabular
• Forma conveniente para solução manual
- coeficientes / constantes
– Dicionário substituído por quadro
Simplex equivalente para registro
das informações essenciais
- variáveis básicas
- variáveis não-básicas
– Operações analíticas ⇒ manipulação da tabela
início
– Critério de parada das iterações → redefinir
obter solução
viável inicial
– Exemplo: Max Z = 5x 1 + 2x 2
sujeito a
x 1 ≤ 3
sim
solução
fim
x 2 ≤ 4
x 1 + 2x 2 ≤ 9
ótima?
não
obter solução
x 1 ,
x 2 ≥ 0
viável melhor
DicionárioDicionário inicialinicial modificadomodificado • Variáveis (decisão, folga, objetivo) no lado esquerdo x
DicionárioDicionário inicialinicial modificadomodificado
• Variáveis (decisão, folga, objetivo) no lado esquerdo
x
= 3−
x
x
+
x
= 3
3
1
1
3
x
=
4
x
 
x
+
x
= 4
4
2
2
4
x
=
9
x
2
x
x
+
2
x
+
x
=
9
5
1
2
1
2
5
Z
=
5
x
+
2
x
Z
5
x
2
x
=
0
1
2
1
2
• Critério de parada do procedimento iterativo
– Método analítico: maximizar Z → coeficientes positivos
– Método tabular: maximizar Z → coeficientes negativos
Parada → equação de Z somente c/ coeficientes não negativos
QuadroQuadro Simplex:Simplex: organizaçãoorganização • Estrutura (formato) do quadro Simplex: – Coluna inicial
QuadroQuadro Simplex:Simplex: organizaçãoorganização
Estrutura (formato) do quadro Simplex:
– Coluna inicial à esquerda → variáveis básicas, função-objetivo
– Coluna “final” à direita → termos independentes
– Colunas internas → coeficientes de todas as variáveis
– Opcional
- 2ª coluna à esquerda → índice da equação
- Coluna extra à direita → resultado da divisão
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0 1
−5
−2
0
0
0
0
x
1 0
1
0
1
0
0
3
3
x
2 0
0
1
0
1
0
4
4
x
3 0
1
2
0
0
1
9
5
QuadroQuadro Simplex:Simplex: leitura,leitura, interpretaçãointerpretação • Variáveis básicas e
QuadroQuadro Simplex:Simplex: leitura,leitura, interpretaçãointerpretação
• Variáveis básicas e função-objetivo: coluna à esquerda
– Valor correspondente → coluna dos termos independentes
• Variáveis não-básicas: ausentes na coluna à esquerda
– Valor correspondente → nulo (na iteração corrente)
Solução viável inicial = (0, 0, 3, 4, 9) ⇒ Z = 0
a maximizar
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x 1
x 2
x 3
x 4
x 5
Z
0 1
−5
−2
0
0
0
0
x 3
1 0
1
0 1
0
0
3
x 4
2 0
0
1 0
1
0
4
x 5
3 0
1
2 0
0
1
9
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • Em cada iteração da busca pela solução
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
• Em cada iteração da busca pela solução ótima:
– Solução ótima ? ⇔ ausência de coeficientes negativos (eq. 0)
– Alternância entre variáveis básicas / variáveis não-básicas
Uma única variável entra na base (coluna das variáveis básicas)
Uma única variável sai da base (coluna das variáveis básicas)
– Determinação da variável que entra na base:
Maior incremento para Z → coeficiente mais negativo na eq. 0
– Determinação da variável que sai da base:
Limitação à variável que entra → coeficientes positivos da coluna
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração – Variável que entra na
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração
– Variável que entra na base → maior aumento possível para Z
coeficiente mais negativo na equação 0 ⇒ x 1
– Variável que sai da base → maior restrição ao aumento de x 1
menor valor p/ termo independente ÷ coeficiente (>0) de x 1 ⇒ x 3
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0 1
−5
−2
0
0
0
0
x
1 0
1
0
1
0
0
3
3
3
x
2 0
0
1
0
1
0
4
4
x
3 0
1
2
0
0
1
9
9
5
QuadroQuadro Simplex:Simplex: atualizaçãoatualização • Terminologia – Linha pivô ⇒ linha da variável que
QuadroQuadro Simplex:Simplex: atualizaçãoatualização
• Terminologia
– Linha pivô
⇒ linha da variável que está deixando a base
– Coluna pivô ⇒ coluna da variável que está entrando na base
– Número pivô ⇒ valor da intersecção da linha e coluna pivôs
• Determinação (dos valores) da nova linha pivô
[antiga linha pivô]
[nova linha pivô] =
[número pivô]
• Determinação (dos valores) das novas linhas
[nova linha i] = [antiga linha i] −[coef. col. pivô]×[nova linha pivô]
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (continuação) →
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração (continuação) → atualização da linha pivô
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
x
1
0
1
0
1
0
0
3
3
x
2
4
x
3
5
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
x
1
0
1
0
1
0
0
3
1
x
2
4
x
3
5
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (continuação) →
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração (continuação) → atualização da linha 0 (Z)
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
1
−5
−2
0
0
0
0
x
1
0
1
0
1
0
0
3
1
x
2
4
x
3
5
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
1
0
−2
5
0
0
15
x
1
0
1
0
1
0
0
3
1
x
2
4
x
3
5
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (continuação) →
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
• 1ª iteração (continuação) → atualização da linha 2 (x 4 )
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
x 1
1
0
1
0 1
0 0
3
x 4
2
0
0
1 0
1 0
4
x 5
3
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
x 1
1
0
1
0 1
0 0
3
x 4
2
0
0
1 0
1 0
4
x 5
3
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (continuação) →
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração (continuação) → atualização da linha 3 (x 5 )
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
x
1
0
1
0
1
0
0
3
1
x
4
x
3
0
1
2
0
0
1
9
5
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0
x
1
0
1
0
1
0
0
3
1
x
4
x
3
0
0
2
−1
0
1
6
5
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (final) → comparação entre
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
• 1ª iteração (final) → comparação entre os quadros
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0 1
−5
−2
0
0
0
0
x 3
1 0
1
0
1
0
0
3
x 4
2 0
0
1
0
1
0
4
x 5
3 0
1
2
0
0
1
9
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0 1
0
−2
5
0
0
15
x 1
1 0
1
0
1
0
0
3
x 4
2 0
0
1
0
1
0
4
x 5
3 0
0
2
−1
0
1
6
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 1ª iteração (final) → análise dos
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
1ª iteração (final) → análise dos resultados
– Aumento do valor (termo independente) da função-objetivo Z
– Colunas das variáveis básicas só com “1” (← única vez) ou “0”
– Nova iteração? ⇒ linha 0 (Z) com coeficiente negativo?
variável que entra na base (na 2ª iteração) ⇒ x 2
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x
x
x
x
x
1
2
3
4
5
Z
0 1
0
−2
5
0
0
15
x
1 0
1
0
1
0
0
3
1
x
2 0
0
1
0
1
0
4
4
x
3 0
0
2
−1
0
1
6
5
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução • 2ª iteração (final) → comparação entre
AprimoramentoAprimoramento iterativoiterativo dada soluçãosolução
• 2ª iteração (final) → comparação entre os quadros
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x 1
x 2
x 3
x 4
x 5
Z
0 1
0
−2
5
0
0
15
x 1
1 0
1
0
1
0
0
3
x 4
2 0
0
1
0
1
0
4
x 5
3 0
0
2
−1
0
1
6
variável
índice
coeficiente de:
termo
valor da
básica
da eq.
indep.
divisão
Z
x 1
x 2
x 3
x 4
x 5
Z
0 1
0
0
4 0
1
21
x 1
1 0
1
0
1 0
0
3
solução
ótima
x 4
2 0
0
0
0,5
1
−0,5
1
x 2
3 0
0
1
−0,5
0
0,5
3