Escolar Documentos
Profissional Documentos
Cultura Documentos
Faculdade de Computação
Método simplex
2021/1
Sumário
1 O método simplex
2x1 + x2 + x3 = 5
x3 ≥ 0 é denominada variável de folga.
x1 + 3x2 ≥ 7,
x1 + 3x2 − x4 = 7 .
Algumas referências chamam neste caso a nova variável de variável
de excesso.
Observação
Apenas as restrições técnicas são reescritas como equações.
As restrições de não-negatividade são mantidas.
Observação
Alguns autores – ex.: Marins (2011) – trabalham com definições
alternativas para a forma padrão. A adotada no curso foi considerada por
questões didáticas.
Exemplo
max Z (x1 , x2 ) = 5x1 + 2x2
sujeito a
x1 ≤ 3
x2 ≤ 4
x1 + 2x2 ≤ 9
x1 ≥ 0, x2 ≥ 0
x1 + x3 = 3
x2 + x4 = 4
x1 + 2x2 + x5 = 9
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0
Quadro inicial
A tabela ou quadro abaixo auxilia na resolução:
x1 x2 x3 x4 x5 b
(0)
L0 Z −5 −2 0 0 0 0
(0)
L1 x3 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
Na linha L0 encontram-se os coeficientes da função objetivo.
Nas linhas Li , i = 1, . . . , 3, encontram-se os coeficientes das
restrições.
O super-índice entre parênteses (k) das linhas indica que as mesmas
são as linhas obtidas após a k-ésima iteração do simplex.
I (0) indica que estas são as linhas do quadro inicial.
O vetor b contém as constantes (termos independentes) das
restrições, bem como da função objetivo reescrita.
x3 = 3 x1 = 0
x4 = 4 x2 = 0
x5 = 9 Z =0
Algoritmo I
Etapas do passo 2 I
b1 3 b2 4 b3 9
= =3 = = ∞ (ignora-se) = =9
c11 1 c21 0 c31 1
I Portanto, x3 (associada a linha L1 ) deixará a base e a linha L1 passa a
ser a linha pivô desta iteração – razão mínima não-negativa nesta
linha.
↓ x1 x2 x3 x4 x5 b
(0)
L0 Z −5 −2 0 0 0 0
(0)
L1 ← x3 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
I O elemento c11 = 1, dado pelo cruzamento das linhas e colunas pivô, é
o número pivô da iteração.
Etapas do passo 2 V
Etapas do passo 2 IX
x1 = 3 x2 = 0
x4 = 4 x3 = 0
x5 = 6 Z = 15
x1 x2 x3 x4 x5 b
(2)
L0 Z 0 0 4 0 1 21
(2)
L1 x1 1 0 1 0 0 3
(2)
L2 x4 0 0 1/2 1 −1/2 1
(2)
L3 x2 0 1 −1/2 0 1/2 3
x1 = 3 x3 = 0
x4 = 1 x5 = 0
x2 = 3 Z = 21
x1 ≤ 3
x2 ≤ 4
4x1 + 3x2 ≤ 12
x1 ≥ 0, x2 ≥ 0
b1 3 b3 12
x3 : = =3 x5 : = =3
c11 1 c31 4
x1 ↓ x2 x3 x4 x5 b
(1)
L0 Z 0 −2 5 0 0 15
(1)
L1 x1 1 0 1 0 0 3
(1)
L2 x4 0 1 0 1 0 4
(1)
L3 ← x5 0 3 −4 0 1 0
Note que x5 é nula, mesmo sendo variável básica. Isto ocorre devido à
condição de empate e a solução viável encontrada é dita degenerada.
1
x1 − 8x2 − x3 + 9x4 ≤ 0
4
1 1
x1 − 12x2 − x3 + 3x4 ≤ 0
2 2
x3 ≤ 1
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
↓ x1 x2 x3 x4 x5 x6 x7 b
(0)
L0 Z −3/4 20 −1/2 6 0 0 0 0
(0)
L1 ← x5 1/4 −8 −1 9 1 0 0 0
(0)
L2 x6 1/2 −12 −1/2 3 0 1 0 0
(0)
L3 x7 0 0 1 0 0 0 1 1
x1 ↓ x2 x3 x4 x5 x6 x7 b
(1)
L0 Z 0 −4 −7/2 33 3 0 0 0
(1)
L1 x1 1 −32 −4 36 4 0 0 0
(1)
L2 ← x6 0 4 3/2 −15 −2 1 0 0
(1)
L3 x7 0 0 1 0 0 0 1 1
x1 x2 x3 ↓ x4 x5 x6 x7 b
(3)
L0 Z 1/4 0 0 −3 −2 3 0 0
(3)
L1 x3 1/8 0 1 −21/2 −3/2 1 0 0
(3)
L2 ← x2 −3/64 1 0 3/16 1/16 −1/8 0 0
(3)
L3 x7 −1/8 0 0 21/2 3/2 −1 1 1
x1 x2 x3 x4 ↓ x5 x6 x7 b
(4)
L0 Z −1/2 16 0 0 −1 1 0 0
(4)
L1 ← x3 −5/2 56 1 0 2 −6 0 0
(4)
L2 x4 −1/4 16/3 0 1 1/3 −2/3 0 0
(4)
L3 x7 5/2 −56 0 0 −2 6 1 1
x1 x2 x3 x4 x5 ↓ x6 x7 b
(5)
L0 Z −7/4 44 1/2 0 0 −2 0 0
(5)
L1 x5 −5/4 28 1/2 0 1 −3 0 0
(5)
L2 ← x4 1/6 −4 −1/6 1 0 1/3 0 0
(5)
L3 x7 0 0 1 0 0 0 1 1
3. Soluções múltiplas
Modelo de PL apresenta mais de uma solução ótima.
Exemplo:
max Z = 2x1 + 4x2 , sujeito a
x 1 + 2x2 ≤ 5
x1 + x2 ≤ 4
x1 ≥ 0, x2 ≥ 0
↓ x1 x2 x3 x4 b
(1)
L0 Z 0 0 2 0 10
(1)
L1 x2 1/2 1 1/2 0 5/2
(1)
L2 ← x4 1/2 0 −1/2 1 3/2
x1 x2 x3 x4 b
(2)
L0 Z 0 0 2 0 10
(2)
L1 x2 0 1 1 −1 1
(2)
L2 x1 1 0 −1 2 3
Forçando-se a saída de x4 da base, inserindo-se x1 em seu lugar, tem-se
nova solução em x1 = 3, x2 = 1 e Z = 10.
Qualquer combinação convexa desta solução e da anterior também será
uma solução ótima. Graficamente: segmento de reta entre os pontos
(0, 5/2) e (3, 1)
Exemplo:
max Z = 2x1 + x2 sujeito a
x 1 − x2 ≤ 10
2x1 ≤ 40
x1 ≥ 0, x2 ≥ 0
↓ x1 x2 x3 x4 b
(0)
L0 Z −2 −1 0 0 0
(0)
L1 ← x3 1 −1 1 0 10
(0)
L2 x4 2 0 0 1 40
Todos os coeficientes das restrições sob x2 são todos negativos ou zero.
Note que x2 pode ser aumentada indefinidamente sem desobedecer
nenhuma das restrições. Embora x1 entre na base pelo critério de
otimalidade, note que caso x2 entrasse na base, nem x3 nem x4 poderia
sair da mesma pelo critério de viabilidade.
GBC051 Comp. Cient. Otim. 2021/1 40 / 75
x1 ↓ x2 x3 x4 b
(1)
L0 Z 0 −3 2 0 20
(1)
L1 x1 1 −1 1 0 10
(1)
L2 ← x4 0 2 −2 1 20
x1 x2 ↓ x3 x4 b
(2)
L0 Z 0 0 −1 3/2 50
(2)
L1 ← x1 0 0 0 1/2 30
(2)
L2 x2 0 1 −1 1/2 10
Como consequência do observado para x2 no quadro inicial, agora x3
possui as mesmas características, sendo a única variável candidata a entrar
na base: nem x1 nem x2 podem sair.
Obs.: É suficiente a análise do quadro inicial para concluir que a solução é
ilimitada.
5. Problema de minimização
Quando a função objetivo tiver de ser minimizada pode-se fazer duas
coisas, a saber:
Inverter o teste de otimização e o critério de entrada na base. Assim,
se todos os coeficientes da linha L0 forem negativos, ou nulos, a
solução é ótima. Caso contrário, escolha a variável xj para entrar que
apresente o maior valor.
Transformar o problema de minimização em um problema de
maximização. Sabe-se que achar o mínimo de uma função é
equivalente a encontrar o máximo do simétrico desta função.
I Exemplo: min W = 2x1 + 3x2 ⇔ max Z = −2x1 − 3x2 . Depois, na
solução final, fazer W = −Z .
Para que a resolução vista possa ser empregada, é preciso que o lado
direito das restrições seja não-negativo.
Por exemplo, a restrição
−x1 + x2 ≤ −3
leva ao surgimento da equação
−x1 + x2 + x3 = −3, x3 ≥ 0 .
x1 − x2 − x3 = 3 .
Neste caso, o coeficiente de x3 é −1. Logo, esta não pode entrar na
base (na equação reescrita é variável de excesso). Isto equivale a
partirmos da inequação
x1 − x2 ≥ 3 .
(nada mais do que a inequação original multiplicada por −1 – a
desigualdade é invertida).
x1 ≤ 3 x1 + x3 = 3
x2 ≤ 4 x2 + x4 = 4
x1 + 2x2 ≥ 9 x1 + 2x2 − x5 = 9
x1 ≥ 0, x2 ≥ 0 x1 , . . . , x5 ≥ 0
Variáveis não-básicas: x1 = x2 = 0.
Variáveis básicas: x3 = 3, x4 = 4, x5 = −9.
Não é solução viável, pois x5 deveria ser não-negativa.
x3 = 3 x1 = 0
x4 = 4 x2 = 0
t1 = 9 x5 = 0
Z = −900
↓ x1 x2 x3 x4 x5 t1 b
(1)
L0 Z −105 0 0 202 100 0 −92
(1)
L1 x3 1 0 1 0 0 0 3
(1)
L2 x2 0 1 0 1 0 0 4
(1)
L3 ← t1 1 0 0 −2 −1 1 1
x1 x2 x3 ↓ x4 x5 t1 b
(2)
L0 Z 0 0 0 −8 −5 105 13
(2)
L1 ← x3 0 0 1 2 1 −1 2
(2)
L2 x2 0 1 0 1 0 0 4
(2)
L3 x1 1 0 0 −2 −1 1 1
x1 x2 x3 x4 x5 t1 b
(4)
L0 Z 0 0 5 2 0 100 23
(4)
L1 x5 0 0 1 2 1 −1 2
(4)
L2 x2 0 1 0 1 0 0 4
(4)
L3 x1 1 0 1 0 0 0 3
Observação
Caso o valor mínimo da soma seja diferente de zero, o problema não tem
nenhuma solução viável, o que encerra o processo – variável artificial positiva
indica que restrição original não foi satisfeita.
I Fase II: Usa-se a solução da Fase I como solução básica viável inicial
para o problema original.
Seja o problema:
Variáveis de folga:
max Z = 4x1 + x2 max Z = 4x1 + x2
sujeito a sujeito a
3x1 + x2 = 3 3x1 + x2 = 3
4x1 + 3x2 ≥ 6 4x1 + 3x2 − x3 = 6
x 1 + 2x2 ≤ 4 x 1 + 2x2 + x4 = 4
x1 ≥ 0, x2 ≥ 0 x1 ≥ 0, . . . , x4 ≥ 0
max Z = 4x1 + x2
sujeito a
3x1 + x2 + t1 = 3
4x1 + 3x2 − x3 + t2 = 6
x 1 + 2x2 + x4 = 4
x1 ≥ 0, . . . , x4 ≥ 0, t1 ≥ 0, t2 ≥ 0 .
W = t1 + t2
Fase I
min W = t1 + t2
sujeito a
3x1 + x2 + t1 = 3
4x1 + 3x2 − x3 + t2 = 6
x 1 + 2x2 + x4 = 4
x1 ≥ 0, . . . , x4 ≥ 0, t1 ≥ 0, t2 ≥ 0 .
↓ x1 x2 x3 x4 t1 t2 b
(0)
L0 −W −7 −4 1 0 0 0 −9
(0)
L1 ← t1 3 1 0 0 1 0 3
(0)
L2 t2 4 3 −1 0 0 1 6
(0)
L3 x4 1 2 0 1 0 0 4
Detalhamento:
(0)
3 1 0 0 1 0 3 L1
(0)
4 3 −1 0 0 1 6 L2
(0)
L1 × (−1): −3 −1 0 0 −1 0 −3
(0)
L2 × (−1): −4 −3 1 0 0 −1 −6
(0)
0 0 0 0 1 1 0 L0 original
(0)
−7 −4 1 0 0 0 −9 L0 redefinido
x1 x2 x3 x4 t1 t2 b
(2)
L0 −W 0 0 0 0 1 1 0
(2)
L1 x1 1 0 1/5 0 3/5 −1/5 3/5
(2)
L2 x2 0 1 −3/5 0 −4/5 3/5 6/5
(2)
L3 x4 0 0 1 1 1 1 1
x1 = 3/5 x2 = 6/5 x4 = 1
max Z = 4x1 + x2
sujeito a
x1 + 1/5x3 = 3/5
x2 − 3/5x3 = 6/5
x3 + x4 = 1
x1 ≥ 0, . . . , x4 ≥ 0 .
Quadro inicial desta fase – note que é preciso adequar a linha L0 antes de
prosseguir para o algoritmo do simplex:
x1 x2 x3 x4 b
(0)
L0 Z −4 −1 0 0 0
(0)
L1 x1 1 0 1/5 0 3/5
(0)
L2 x2 0 1 −3/5 0 6/5
(0)
L3 x4 0 0 1 1 1
2x1 + 3x2 ≥ 7
3x1 + 2x2 ≥ 9
x1 ≥ 1
x1 ≥ 0, x2 ≥ 0 .
Exercícios II
x1 + 2x2 − 2x3 ≤ 4
2x1 − 2x3 ≤ 6
2x1 − x2 + 2x3 ≤ 2
x1 , x2 , x3 ≥ 0 .
Exercícios IV
5 Usando simplex, determine a solução do problema:
x1 + 3x2 ≤ 6
3x1 + 2x2 ≤ 6
x1 , x2 ≥ 0 .
x1 + x2 + x3 + x4 ≤ 15
7x1 + 5x2 + 3x3 + 2x4 ≤ 120
3x1 + 5x2 + 10x3 + 15x4 ≤ 100
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
GBC051 Comp. Cient. Otim. 2021/1 70 / 75
Exercícios V
min z = −x1 − x2
sujeito a
x1 + x2 ≤ 6
x1 − x2 ≤ 4
−x1 + x2 ≤ 4
x1 , x2 ≥ 0 .
Exercícios VI
x1 + x2 ≥ 200
−x1 + 2x2 ≤ 200
Vitamina A C D Custo
Leite (L) 2 mg 50 mg 80 mg R$ 2
Carne (kg) 2 mg 20 mg 70 mg R$ 4
Peixe (kg) 10 mg 10 mg 10 mg R$ 1,50
Salada (100g) 20 mg 30 mg 80 mg R$ 1
Requisito
nutricional 11 mg 70 mg 250 mg
mínimo
Tendo em mãos o custo de cada porção dos componentes da dieta,
faça a modelagem do problema, visando atender os requisitos
nutricionais e gastando-se o mínimo possível.
Em seguida, determine a solução ótima do mesmo, caso exista.
Exercícios VIII
2x1 + x2 ≤ 2
3x1 + 4x2 ≥ 12
x1 , x2 ≥ 0 .