PTC3420 A10
PTC3420 A10
PTC3420 A10
Aplicada a Controle
Método Simplex
PTC - EPUSP
Aula 10 - 2020
Agradecimento: Agradeço a Profa. Celma Ribeiro pelos arquivos latex do curso PRO-3341, usados
PTC-3420
Método Simplex - Forma Tableau
Sabemos como passar de um ponto extremo a outro. A questão é,
dada a função objetivo que se deseja minimizar, como determinar a
variável que deve entrar na base de forma a reduzir o valor da
função objetivo? Consideramos o problema de PL
min c0 x
s.a. Ax = b, x ≥ 0
x1 x2 . . . xm xm+1 ... xn b
1 0 . . . 0 y1m+1 ... y1n δ1
0 1 . . . 0 y2m+1 ... y2n δ2
.. .. .. . .. .. .. ..
. . . .. . . . .
0 0 . . . 1 ymm+1 . . . ymn δm
Método Simplex - Forma Tableau
O valor da função objetivo na base atual á dada por:
z0 = c1 δ1 + . . . + cm δm
PTC-3420
Método Simplex - Forma Tableau
Portanto o valor da função objetivo pode ser escrito como
n
X
z = c1 x1 + . . . + cm xm + cj xj
j=m+1
n
X n
X
= c1 (δ1 − y1j xj ) + . . . + cm (δm − ymj xj )
j=m+1 j=m+1
n
X
+ cj xj = z0 − rm+1 xm+1 − . . . − rn xn
j=m+1
onde para j = m + 1, . . . , n
m
X
rj = cj − zj , zj = ci yij
i=1
PTC-3420
Método Simplex - Forma Tableau
Portanto, temos que
z + rm+1 xm+1 + . . . + rn xn = z0
Observações:
A) Pegar o rq = max{rj } é apenas uma convenção, qualquer xj
tal que rj > 0 serviria no passo 2).
B) Para o problema de maximização inverter a desigualdade para
o rj , isto é,
1 No Passo 1), rj ≥ 0, e
2 No passo 2), rj < 0 para algum j.
PTC-3420
Método Simplex - Forma Tableau
Como obter rj diretamente do tableau? Introduzir a linha de
custos:
min z
s.a. z − c0 x = 0
Ax = b, x ≥ 0
Método Simplex - Forma Tableau
Pivotando (z sempre na base, mas não mostramos para simplificar
o tableau) obtemos
x1 x2 . . . xm xm+1 ... xn b
0 0 ... 0 rm+1 ... rn z0
1 0 . . . 0 y1m+1 ... y1n δ1
0 1 . . . 0 y2m+1 ... y2n δ2
.. .. .. . .. .. .. ..
. . . .. . . . .
0 0 . . . 1 ymm+1 . . . ymn δm
Algoritmo Simplex
PTC-3420
Exemplo 1
PTC-3420
Exemplo 1
s1 = 7 e s2 = 4
x1 = 0 e x2 = 0
Valor da função nesse ponto extremo:
z =3×0+2×0+0×7+0×4=0
x1 x2 s1 s2
Linha 0 z −3 −2 0 0 =0
Linha 1 1 1 1 0 =7
Linha 2 1 0 0 1 =4
PTC-3420
Exemplo
6 Qual o ponto extremo que está associado a essa variável? (dê
o vetor)
7 A base é ótima?
8 Reescreva o problema parametrizado em relação a essa
primeira base
PTC-3420
Exemplo 1
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 1 1 1 0 = 7 s1 = 7
Linha 2 1 0 0 1 = 4 s2 = 4
A solução básica é ótima?
Exemplo 1
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 1 1 1 0 = 7 s1 = 7
Linha 2 1 0 0 1 = 4 s2 = 4
A solução básica é ótima?
z = 0 −3x1 −2x2
s1 = 7 −1x1 −1x2
s2 = 4 −x1 →
Voltemos ao tableau
↓
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 1 1 1 0 = 7 s1 = 7
Linha 2 1 0 0 1 = 4 s2 = 4 →
PTC-3420
Exemplo 1
Voltemos ao tableau
↓
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 = 0 z=0
Linha 1 1 1 1 0 =7 s1 = 7
Linha 2 1 0 0 1 =4 s2 = 4 →
7 4
min , =4
1 1
s2 sai da base....
Variáveis básicas BV = {s1 , x1 } e as não básicas N = {s2 , x2 }
PTC-3420
Exemplo 1
z = • − • x2 − • s 2
s1 = • − • x2 − • s2
x1 = • − • x2 − • s2
Ou seja, vamos parametrizar o problema em função das variáveis
não básicas.
PTC-3420
Exemplo 1
↓
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 1 1 1 0 = 7 s1 = 7
Linha 2 1 0 0 1 = 4 s2 = 4 →
A coluna associada a x1 deve virar uma coluna da identidade
Exemplo 1
↓
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 1 1 1 0 = 7 s1 = 7
Linha 2 1 0 0 1 = 4 s2 = 4 →
A coluna associada a x1 deve virar uma coluna da identidade
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 0 1 1 −1 = 3 s1 = 3
Linha 2 1 0 0 1 =4 x1 = 4
Exemplo 1
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 0 1 1 −1 = 3 s1 = 3
Linha 2 1 0 0 1 =4 x1 = 4
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 0 1 1 −1 = 3 s1 = 3
Linha 2 1 0 0 1 =4 x1 = 4
x1 x2 s 1 s 2 Básicas
Linha 0 z 0 −2 0 3 = 12 z = 12
Linha 1 0 1 1 −1 = 3 s1 = 3
Linha 2 1 0 0 1 =4 x1 = 4
x1 x2 s1 s2 Básicas
Linha 0 z −3 −2 0 0 =0 z=0
Linha 1 0 1 1 −1 = 3 s1 = 3
Linha 2 1 0 0 1 =4 x1 = 4
x1 x2 s 1 s 2 Básicas
Linha 0 z 0 −2 0 3 = 12 z = 12
Linha 1 0 1 1 −1 = 3 s1 = 3
Linha 2 1 0 0 1 =4 x1 = 4
↓
x1 x2 s1 s2 Básicas
Linha 0 z 0 −2 0 3 = 12 z = 12
Linha 1 0 1 1 −1 = 3 s1 = 3 →
Linha 2 1 0 0 1 =4 x1 = 4
( )
3 4
min , =3
1 //
0
s1 sai da base....
Variáveis básicas BV = {x2 , x1 } e as não básicas N = {s2 , s1 }
PTC-3420
Exemplo 1
↓
x1 x2 s 1 s 2 Básicas
Linha 0 z 0 −2 0 3 = 12 z = 12
Linha 1 0 1 1 −1 = 3 x2 = 3
Linha 2 1 0 0 1 =4 x1 = 4
x1 x2 s 1 s 2 Básicas
Linha 0 z 0 0 2 1 = 17 z = 18
Linha 1 0 1 1 −1 = 3 x2 = 3
Linha 2 1 0 0 1 =4 x1 = 4
PTC-3420
Exemplo 1
↓
x1 x2 s 1 s 2 Básicas
Linha 0 z 0 −2 0 3 = 12 z = 12
Linha 1 0 1 1 −1 = 3 x2 = 3
Linha 2 1 0 0 1 =4 x1 = 4
x1 x2 s 1 s 2 Básicas
Linha 0 z 0 0 2 1 = 17 z = 18
Linha 1 0 1 1 −1 = 3 x2 = 3
Linha 2 1 0 0 1 =4 x1 = 4
Não é possível aumentar a função objetivo: solução é ótima!
PTC-3420
Exemplo 1
Baseado nos tableaux, determine, em cada iteração:
1 B −1 × b
2 B −1 × N
ctB B −1 × b
3
PTC-3420
Exemplo 2
PTC-3420
Resolução
x1 x2 x3 s1 s2 s3 s4 Básicas
Linha 0 z −60 −30 −20 =0 z=0
Linha 1 8 6 1 1 = 48 s1 = 48
Linha 2 4 2 1, 5 1 = 20 s2 = 20
Linha 3 2 1, 5 0, 5 1 = 8 s3 = 8
Linha 4 1 1 = 5 s4 = 5
PTC-3420
A solução básica é ótima?
x1 x2 x3 s1 s2 s3 s4 Básicas
Linha 0 z −60 −30 −20 =0 z=0
Linha 1 8 6 1 1 = 48 s1 = 48
Linha 2 4 2 1, 5 1 = 20 s2 = 20
Linha 3 2 1, 5 0, 5 1 = 8 s3 = 8 →
Linha 4 1 1 = 5 s4 = 5
Considera-se
48 20 8
min , , , =4
8 4 2
de forma a preservar não negatividade das variáveis. Tomo x1 = 4
e s3 sai da base
PTC-3420
Variáveis básicas BV = {s1 , s2 , x1 , s4 } e as não básicas
N = {s3 , x2 , x3 }
PTC-3420
Deve-se identificar o que ocorre ao considerar o valor da nova base
(x1 = 4 ). O coeficiente de x1 na linha 3 deve "virar"1 e os das
demais linhas devem "virar"0. Faço operações de pivotação.
↓
x1 x2 x3 s1 s2 s3 s4 Básicas
Linha 0 z −60 −30 −20 =0 z=0
Linha 1 8 6 1 1 = 48 s1 = 48
Linha 2 4 2 1, 5 1 = 20 s2 = 20
Linha 3 2 1, 5 0, 5 1 =8 s3 = 8
Linha 4 1 1 =5 s4 = 5
PTC-3420
O coeficiente de x1 na linha 3 deve "virar"1.
↓
x1 x2 x3 s1 s2 s3 s4 Básicas
Linha 0 z 15 −5 30 = 240 z = 240
Linha 1 −1 1 −4 = 16 s1 = 16
Linha 2 −1 0, 5 1 −2 =4 s2 = 4 →
Linha 3 1 0, 75 0, 25 0, 5 =4 x1 = 4
Linha 4 1 1 =5 s4 = 5
PTC-3420
.
↓
x1 x2 x3 s 1 s2 s3 s4 Básicas
Linha 0 z 5 10 10 = 280 z = 280
Linha 1 −2 1 2 −8 = 24 s1 = 24
Linha 2 −2 1 2 −4 =8 x3 = 8
Linha 3 1 1, 25 −0, 5 1, 5 =2 x1 = 2
Linha 4 1 1 =5 s4 = 5
PTC-3420
Exemplo 2
Baseado nos tableaux, determine, em cada iteração:
1 B −1 × b
2 B −1 × N
ctB B −1 × b
3
PTC-3420