Você está na página 1de 70

3-Mtodo Simplex

IA 881 Otimizao Linear


ProfFernandoGomide DCA-FEEC-Unicamp
2
1. Condies de otimalidade
2. Desenvolvimento do mtodo simplex
3. Implementaes do mtodo simplex
4. Anticiclagem: regras lexicogrfica e de Bland
5. Soluo bsica factvel inicial
6. Geometria de colunas do mtodo simplex
7. Eficincia computacional do simplex
Contedo
DCA-FEEC-Unicamp
3
1-Condies de otimalidade
DCA-FEEC-Unicamp
0
sa
min

x
b Ax
x c
[ ] m ,
a a
a a
b , , b m , , i
c , , c n , , j
n
mn m
n
m
m
n
= =
(
(
(

=
(
(
(

=
= =
= =
) (
) ( 1
) ( 1
1
1
1 11 1
1
1
A A A
a
a
A
b
c
L
L
M O M
L
M
L L
L L
Forma padro
P = {x
n
| Ax = b, x 0}
4
Algoritmo de busca local
DCA-FEEC-Unicamp
vizinhana: uma funo V : S 2
S
que atribui a cada sS um
conjunto de vizinhos V(s) S chamado de vizinhana
de s.
mnimo local: de f com relao a uma vizinhana V(s) uma soluo
s* tal que f(s*) f(s), sV(s*).
5
DCA-FEEC-Unicamp
AlgoritmoBuscaLocal( ) retorna um timo local
entrada: um modelo de otimizao
s GerarSoluoFactvelInicial( )
repetir
s Melhorar(V(s))
at que melhorar f(s) no seja possvel
retornar s
Melhorar(V(s)) so funes do tipo:
1. retorna a primeira soluo encontrada que melhor do que s,
2. explora N(s) exaustivamente e retorna a melhor soluo,
3. combinaes de (1) e (2).
6
DCA-FEEC-Unicamp
Programao linear
timo local timo global: funo convexa sobre conjunto convexo
Busca ao longo de direes que decrescem o valor da funo objetivo
Considera vizinhanas de solues bsicas factveis
n
P

d
x
Definio 3.1 Seja x um elemento de um poliedro P. Um vetor d
n
uma direo factvel em x se existe um escalar positivo
para o qual x + d P.
Seja
7
Direes factveis em diferentes pontos de um poliedro
x
y
z
8
DCA-FEEC-Unicamp
bsica no varivel toda para 0
bsicas variveis ) (
bsica matriz ] [
bsicas variveis das ndices ) ( ) 1 (
factvel bsica soluo
) ( ) 1 (
) ( ) 1 (
=
=
=
i
m B B B
m B B
x
x , , x
m B , , B
K
L
K
x
A A B
x
Considerando
Temos x
B
= B
1
b
Busca de um novo vetor x + d
1. selecionar uma varivel no bsica x
j
(inicialmente x
j
= 0)
2. aumentar valor de x
j
at um valor > 0, mantndo as variveis
no bsicas x
i
, i j, restantes nulas.
9
DCA-FEEC-Unicamp
Algebricamente
d
j
= 1
d
i
= 0 iN, i j (N o conjunto de ndices das variveis no bsicas)
x
B
+ d
B
d
B
= (d
B(1)
,,d
B(m)
)
Restries de igualdade: x + d factvel
A(x + d) = b
x factvel Ax = b
> 0 Ad = 0
como d
j
= 1 e d
i
= 0 iN, i j
j B j B j
n
i
m
i
i B i B i i
d d A B d A Bd A A A Ad
1
1 1
) ( ) (
0

= =
= + = + = = =

j-sima direo bsica
ou
direo simplex
10
DCA-FEEC-Unicamp
Restries de no negatividade de variveis no bsicas
x
j
> 0
x
i
= 0 iN, i j
variveis no bsicas OK
Restries de no negatividade de variveis bsicas: dois casos
1. x no soluo bsica factvel degenerada
x
B
> 0 x
B
+ d
B
> 0 para suficientemente
pequeno d uma direo
factvel
2. x soluo bsica factvel degenerada
d nem sempre uma direo factvel
x
B(i)
= 0 e d
B
= B
1
A
j
< 0
11
DCA-FEEC-Unicamp
E
F
G
x
1
= 0
x
2
= 0
x
3
= 0
x
4
= 0
x
5
= 0
n = 5
n m = 2
12
DCA-FEEC-Unicamp
Efeito da busca na direo bsica sobre funo objetivo
d j-sima direo bsica
c'd variao do valor da funo objetivo ao longo de d
c'd = c'
B
d
B
+ c
j
= c
j
c'
B
B
1
A
j
c
B
= (c
B(1)
,,c
B(m)
)
j B j j
c c A B c
1
=
Definio 3.2 Seja x uma soluo bsica, B uma matriz bsica associada
e c
B
o vetor de coeficientes associado s variveis bsicas.
Para cada j, definimos o custo reduzido da varivel x
j
pela
frmula
j B j j
c c A B c
1
=
j
c
13
Exemplo
DCA-FEEC-Unicamp
0
2 4 3 2
2 sa
min
4 3 2 1
4 3 1
4 3 2 1
4 4 3 3 2 2 1 1

= + +
= + + +
+ + +
x , x , x , x
x x x
x x x x
x c x c x c x c
A
1
= (1, 2) A
2
= (1, 0) so LI x
1
e x
2
so variveis bsicas
(

=
0 2
1 1
B
matriz bsica correspondente s variveis bsicas x
1
e x
2
fazendo x
3
= x
4
= 0 x
1
= 1 e x
2
= 1
direo d correspondente varivel no bsica x
3
possui d
3
= 1 e d
4
= 0
(

=
(

= = =
(

=
(


2 1
2 3
3
1
2 1 1
2 1 0
3
1
) 2 (
) 1 (
2
1
/
/
/
/
d
d
d
d
B
B
B
A B d
14
DCA-FEEC-Unicamp
Custo reduzido das variveis bsicas
B = [A
B(1)
,,A
B(m)
]
B
1
[A
B(1)
,,A
B(m)
] = I, I (mm)
B
1
A
B(i)
= e
i
portanto, para toda varivel bsica x
B(i)
0
) ( ) ( ) ( ) (
1
) ( ) (
= =

=

i B i B i B i B i B B i B i B
c c c c c e c A B c
15
DCA-FEEC-Unicamp
Teorema 3.1 Considere uma soluo bsica factvel x associada com
a matriz bsica B, e seja c o vetor de custo reduzido
correspondente.
(a) Se c 0, ento x uma soluo tima.
(b) Se x soluo tima no degenerada, ento c 0.
Prova:
(a)
timo. , arbitrrio como e 0 ) ( que Concluimos
0 e 0 Logo 0 factvel 0
) (
0
0 Logo ade Factibilid
Definir . arbitrria factvel soluo uma e 0 Seja
1
1 1
x y d c x y c
y
A B c d c d c
A B A B d
A Bd Ad
Ad b Ay Ax
x y d y c

=
=

= +

= =
= + =
= = =
=

. N i d c d . y , N i x
d c d c d c
d d
d
. .
.
i i i i i
i
N i
i i i B
N i
i
N i
i i B B
N i
i i
N i
i i B
N i
i i B
16
DCA-FEEC-Unicamp
(b) Supor que x uma soluo bsica factvel no degenerada e c
j
< 0
para algum j. Como o custo reduzido de uma varivel bsica nulo,
x
j
no bsica, e c
j
a variao do valor da funo objetivo ao
longo da j-sima direo bsica.
x no degenerada j-sima direo bsica factvel e valor da
funo objetivo melhora ao longo desta direo
Movendo nesta direo obtemos solues factveis que so melhores
que x; portanto, x no pode ser soluo tima.
Definio 3.3 Uma matriz bsica B tima se
(a) B
1
b 0
(b) 0
1


A B c c c
B
17
DCA-FEEC-Unicamp
2-Desenvolvimento do mtodo simplex
AlgoritmoSimplexBsico( ) retorna uma soluo tima
entrada: um modelo linear de otimizao
x GerarSoluoFactvelInicial( )
c CalcularCustoReduzido(c, A, B)
se c
j
0 j {1,,n} ento retornar x
seno
repetir
d
j
= 1, d
i
= 0 i,j {B(1),,B(m) }, j i
d
B
= B
1
A
j
x x + d
at que c
j
0 j {1,,n}
retornar x
Obs: supondo (a) minimizao, (b) soluo tima, (c) toda soluo bsica factvel no degenerada
18
DCA-FEEC-Unicamp
Busca ao longo da direo d: x + d
valor da funo objetivo melhora ao longo da direo d
desejvel mover (dar o maior passo) o mximo possvel
} 0 max{ P | * + = d x
Variao da funo objetivo
j
c * * =

d c
Obteno de

, = = + = b Ax d x A Ad ) ( 0 restries de igualdade nunca violadas
x + d infactvel somente se uma de suas componentes torna-se negativa
19
Dois casos a serem considerados
1. Se d 0, ento x + d 0 : escolhemos

=
2. Se d
i
< 0 para algum i, ento restrio x
i
+ d
i
0 torna-se x
i
/d
i
como esta restrio tem que ser satisfeita para todo i com d
i
< 0
o maior valor de :
|
|

\
|
=
<
i
i
d | i d
x
*
i
} 0 {
min
se x
i
uma varivel no bsica, ento ou d
i
= 1 ou d
i
= 0
portanto, precisamos somente considerar as variveis bsicas
|
|

\
|
=
< =
) (
) (
} 0 1 {
) (
min
i B
i B
d | m , , i d
x
*
i B
K
* > 0, pois x
B(i)
> 0 (no degenerada)
(3.2)
DCA-FEEC-Unicamp
20
DCA-FEEC-Unicamp
Exemplo
) 0 3 2 3 4 0 ( 3 2 *
3
2
*
) 0 ( diminui que componente
) 0 1 2 1 2 3 ( : a ente correspond bsica direo 0 como
3 ), 0 0 0 2 ( supondo
2 2 3 : bsica no para reduzido custo
) 0 0 1 1 ( factvel bsica soluo
0
2 4 3 2
2 sa
min
1
1
1 1
3 3
3
3 2 1 3
1
3 3 3
4 3 2 1
4 3 1
4 3 2 1
4 4 3 3 2 2 1 1
, / , / , /
d
x

d x
, , / , / x , c
c , , ,
c / c _ / c c c x
, , ,
x , x , x , x
x x x
x x x x
x c x c x c x c
B
= + = + =
= =
<
= <
= =
+ =

=
=

= + +
= + + +
+ + +

d x d x y
d
c
A B c
x
21
DCA-FEEC-Unicamp
colunas correspondentes s variveis no nulas: A
2
= (1, 0), A
3
= (1, 3)
A
2
e A
3
so LI formam uma base
y a (nova) soluo bsica factvel
x
1
= 0 (sai da base)
x
3
= 2/3 (entra na base)
Exemplo (cont.)
22
DCA-FEEC-Unicamp
Uma vez escolhido

, se este for finito movemos para y +

d
x
j
= 0 e d
j
= 1 y
j
=

> 0
Seja l o ndice minimizador em (3.2), isto
) (
) (
) (
) (
} 0 1 {
) (
min
l B
l B
i B
i B
d | m , , i d
x
d
x
*
i B
=
|
|

\
|
=
< = K
Em particular, temos que
d
B(l)
< 0
x
B(l)
+

d
B(l)
= 0
23
DCA-FEEC-Unicamp
[ ]

=
+
l i j
l i i B
i B
m B , , B m B , , B
m B l B j l B B
) (
) (
)} ( ) 1 ( { )} ( ) 1 ( {
) ( ) 1 ( ) 1 ( ) 1 (
K K
L L A A A A A B
Mudana de base
Observar que ocorre mudana de base pois
x
j
= 0 x
j
> 0 x
j
entra na base
x
B(l)
> 0 x
B(l)
= 0 x
B(l)
sai base da base
24
DCA-FEEC-Unicamp
Teorema 3.2
(a) As colunas A
B(i)
, i l, e A
j
so LI e B uma matriz bsica.
(b) O vetor y = x + *d uma soluo bsica factvel associada B.
Prova:
(a)
. l i ,
l d
l
. l , l i ,
, l i ,
, , m , , i ,
i B j
l B B j
i B
i i B
j i B
i B
m
i
i B i i B
m
i
i
i i B

= =

= =
=

=

) (
1 1
) (
1
) (
1
) (
1 1
1
) (
1
) (
1
1
) (
1
) (
1
) (
vetores dos LI Logo
). de (definio 0 e
nulas. so s componente simas suas e LI so
unitrio vetor simo o exceto
LI. so e pois caso o no este Contudo
LD. so tambm 0
que tal nulos, todos no ento LD, so 1 Se
A B A B
d A B
A B
e A B I B B
A B A B
A B A B A
A K
25
DCA-FEEC-Unicamp
(b)
. bsica matriz associada factvel
bsica soluo Logo LI so
). ( ) 1 ( para 0 e 0 Temos
) ( ) 1 (
B
y A A
b Ay y
. , ,
m B , , B i y ,
m B B
i
K
K = =
Detalhes de uma iterao do mtodo simplex
por convenincia (dos autores), seja u = (u
1
,,u
m
)
u = d
B
= B
1
A
j
A
j
= coluna de A que entra na base
u
i
= d
B(i)
26
DCA-FEEC-Unicamp
Uma iterao do mtodo simplex
1. Iniciar com uma soluo factvel e a base A
B(1)
,,A
B(m)
associada.
2. Calcular o custo reduzido c
j
= c
j
c
B
B
1
A
j
, jN
se c
j
0, jN, ento a soluo bsica factvel tima; fim.
seno escolher algum j para o qual c
j
< 0.
3. Calcular u = B
1
A
j
. Se u
i
0, i = 1,,m, ento * = e o valor
funo da funo objetivo ; fim.
4. Se alguma componente de u positiva, fazer
5. Seja l tal que * = x
B(l)
/u
l
. Formar nova base trocando A
B(l)
por A
j
Se y a nova soluo bsica factvel, ento os valores das novas
variveis bsicas so y
j
= * e y
B(i)
= x
B(i)
*u
i
, i l.
) (
) ( ) (
} 0 1 {
min
l B
l B
i
i B
u | m , , i d
x
u
x
*
i
=
|
|

\
|
=
> = K
27
DCA-FEEC-Unicamp
Teorema 3.3 Suponha que o conjunto de solues factveis no vazio
e que toda soluo factvel bsica no degenerada. Ento
o mtodo simplex termina depois de um nmero finito de
iteraes. No trmino existem as seguintes possibilidades:
(a) Temos uma base tima B e uma soluo bsica factvel que tima.
(b) Encontramos d 0 tal que Ad = 0, cd < 0, valor da funo objetivo .
Prova: Se o algoritmo pra no passo 2, ento Teor. 3.1 satisfeito. B uma base tima
e a soluo bsica factvel corrente tima.
Se o algoritmo termina no passo 3, ento arbitrariamente grande e valor da funo
objetivo .
A cada iterao o algoritmo move de uma quantidade * > 0 ao longo de uma direo d tal
que cd < 0. Logo o valor da funo objetivo em cada soluo bsica diminui a cada iterao.
Nenhuma soluo bsica factvel visitada mais do que uma vez. Como o nmero de
solues bsicas factveis finito, o algoritmo para.
28
DCA-FEEC-Unicamp
Mtodo simplex para problemas degenerados
Simplex para problemas degenerados: dois casos
1. Se soluo bsica factvel corrente x degenerada, ento * = 0
e a nova soluo factvel bsica y = x porque x
B(l)
= 0 e d
B(l)
< 0.
Trocar A
B(l)
por A
j
para criar nova base B e Teor. 3.2 permanece vlido.
2. Mesmo se * > 0 possvel que mais de uma soluo bsica
factvel original sejam nulas no novo ponto x + *d. Como s
uma delas sai da base, as outras permanecem nulas e a nova
soluo tambm degenerada.
Troca de bases com permanncia da mesma soluo bsica
factvel pode causar ciclagem
29
DCA-FEEC-Unicamp
n = 6
nm = 2
x
1
= 0
x
2
= 0
x
3
= 0
x
4
= 0
x
5
= 0
x
6
= 0
x
f
h
g
g
y
c
30
DCA-FEEC-Unicamp
Seleo do piv
Selecionar piv: escolha de j e * nos passos 2 e 5 do algoritmo.
1. Escolher a coluna A
j
cujo custo reduzido o mais negativo.
2. Escolher a coluna com custo reduzido negativo e o maior
valor de .
3. Escolher a coluna com custo reduzido negativo e menor j
(smallest subscript rule).
| c | *
j

31
DCA-FEEC-Unicamp
3-Implementaes do mtodo simplex
Ponto chave do algoritmo: conhecendo B
-1
A
j
determinamos
1. custos reduzidos
2. direo de busca
3. passo na direo
Diferenas de implementao esto
1. na forma de calcular B
-1
A
j
2. informao que passada de uma iterao outra
Resolver Bx = b: O(m
3
)
Computar Bb: O(m
2
)
Calcular pb: O(m)
32
DCA-FEEC-Unicamp
Implementao ingnua
Nenhuma informao de iterao para iterao
1. ndices das variveis bsicas B(1),,B(m)
2. formao da matriz bsica
3. clculo de p = c
B
B
1
resolvendo p B = c
B
(multiplicadores simplex)
4. clculo dos custos reduzidos c
j
= c
j
c
B
B
1
A
j
= c
j
p A
j
5. seleo do piv
6. coluna A
j
selecionada equao Bu = A
j
resolvida para determinar u
7. determinar *, a varivel que sai da base e nova soluo bsica factvel
Complexidade
1. p B = c
B
O(m
3
)
2. Bu = A
j
O(m
3
)
3. p A
j
O(mn) (c
j
para cada j)
Total: O(m
3
+ mn) ineficiente
33
DCA-FEEC-Unicamp
Simplex revisado
Utiliza informao de uma iterao para a prxima
Mtodo ingnuo requer soluo de dois sistemas de equaes
Implementao alternativa: B
1
disponvel no incio de cada iterao
Clculo de c
B
B
1
e B
1
A
j
: vetor matriz O(m
2
)
Necessrio mtodo eficiente de atualizar a matriz B
1
Matriz bsica de uma iterao para a prxima
B = [A
B(1)
A
B(1-1)
A
B(1)
A
B(1+1)
. A
B(m)
] no incio de uma iterao
B = [A
B(1)
A
B(1-1)
A
j
A
B(1+1)
. A
B(m)
] incio da prxima iterao
34
DCA-FEEC-Unicamp
Definio 3.4 Dada uma matriz, no necessariamente quadrada, a operao
de adicionar uma constante vezes uma linha mesma ou outra
linha chamada de operao elementar com linhas.
Exemplo
(
(
(

=
(
(
(

=
(
(
(

=
6 5
4 3
14 11
6 5
4 3
2 1
1 0 0
0 1 0
2 0 1
QC C Q ,
Multiplica a 3
a
linha de C por 2 e soma primeira linha
Em geral
Q = I + D
ij
multiplica j-sima linha por e soma com a i-sima linha


=
contrrio caso 0
j i
d
ij
1 ) det( = Q
35
DCA-FEEC-Unicamp
Seqncia de K operaes elementares
Q
K
Q
K-1
Q
2
Q
1
pr-multiplicao por uma matriz inversvel
BB
1
= I B
1
A
i
= e
i
(
(
(
(
(
(

= =
+

1
1
] [
1
1 1 1
1
m
l m l l
u
u
u
O M
M O
L L e e u e e B B
j
A B u
1
=
Seqncia de operaes elementares para transformar BB
1
em identidade ?
36
DCA-FEEC-Unicamp
Considerar a seguinte seqncia de operaes elementares
(a) Para cada i j, somar l-sima linha vezes u
i
/u
l
i-sima linha
(u
l
> 0); troca u
i
por zero.
(b) Dividir a l-sima linha por u
l
; troca u
i
por um.
Esta seqncia equivalente a multiplicar BB
1
esquerda por Q
1 1 1
= = B QB I B QB
Para obter B
1
, tomamos B
1
e aplicamos a seqncia de operaes (a) e (b).
37
Exemplo
(
(
(


=
(
(
(

= = =
(
(
(

=
(
(
(

1 5 1 2
3 6 6
1 4 9
1
0
0
3
2
2
4
2 3 4
1 3 2
3 2 1
1
3
1
.
l
,
B
e u
u B
38
Uma iterao do mtodo simplex revisado
1. Iniciar com uma soluo factvel x, a base A
B(1)
,,A
B(m)
e B
1
associada
2. Calcular p = c
B
B
1
e o custo reduzido c
j
= c
j
p A
j
, jN
se c
j
0, jN, ento a soluo bsica factvel tima; fim
seno escolher algum j para o qual c
j
< 0
3. Calcular u = B
1
A
j
. Se u
i
0, i = 1,,m, ento * = e o valor
funo da funo objetivo ; fim
4. Se alguma componente de u positiva, fazer
5. Seja l tal que * = x
B(l)
/u
l
. Formar nova base trocando A
B(l)
por A
j
Se y a nova soluo bsica factvel, ento os valores das novas variveis
bsicas so y
j
= * e y
B(i)
= x
B(i)
*u
i
, i l.
6. Formar a matriz m(m + 1) [B
1
| u]. Efetuar operaes elementares para fazer
u = e
l
. As primeiras m colunas da matriz B
1
) (
) ( ) (
} 0 1 {
min
l B
l B
i
i B
u | m , , i d
x
u
x
*
i
=
|
|

\
|
=
> = K
39
Tableau simplex
Ao invs de manter e atualizar B
1
, mantm e atualiza a matriz m (n + 1)
[ ] [ ]
n
| A B A B b B A b B
1
1
1 1 1
= L
b B c
1

B
b B c c
1

B
b B
1
A B
1
B B
x c

) 1 ( B
x
M
) (m B
x
1
1
A B

n
A B
1
L
1
c
L m
c
j
A B
1
L
L
j
c
coluna piv
linha piv
M
) (l B
x
linha zero
coluna zero
40
Exemplo
0 , ,
20 2 2
20 2 2
20 2 2 sa
12 12 10 min
3 2 1
3 2 1
3 2 1
3 2 1
3 2 1

+ +
+ +
+ +

x x x
x x x
x x x
x x x
x x x
0
20 2 2
20 2 2
20 2 2 sa
12 12 10 min
6 5 4 3 2 1
6 3 2 1
5 3 2 1
4 3 2 1
3 2 1

= + + +
= + + +
= + + +

x , x , x , x , x , x
x x x x
x x x x
x x x x
x x x
x = (0, 0, 0, 20, 20, 20) soluo bsica factvel inicial
B(1) = 4, B(2) = 5, B(3) = 6
41
1 0 0 1 2 2 20
0 1 0 2 1 2* 20
0 0 1 2 2 1 20
0 0 0 12 12 10 0
x
6
x
5
x
4
x
3
x
2
x
1
x
6
=
x
5
=
x
4
=
1 1 0 1 1 0 0
0 0.5 0 1 0.5 1 10
0 0.5 1 1* 1.5 0 10
0 5 0 2 7 0 100
x
6
x
5
x
4
x
3
x
2
x
1
x
6
=
x
1
=
x
4
=
42
1 1.5 1 0 2.5* 0 10
0 1 1 0 1 1 0
0 0.5 1 1 1.5 0 10
0 0 0 0 4 0 120
x
6
x
5
x
4
x
3
x
2
x
1
x
6
=
x
1
=
x
3
=
0.4 0.6 0.4 0 1 0 4
0.4 0.4 0.6 0 0 1 4
0.6 0.4 0.4 1 0 0 4
1.6 1.6 3.6 0 0 0 136
x
6
x
5
x
4
x
3
x
2
x
1
x
2
=
x
1
=
x
3
=
43
Simplex revisado tableau
Tableau: clculos dependem do tamanho do tableau O(mn)
Simplex revisado:
clculos similares ao tableau para computar B
1
e c
B
B
1
O(m
2
)
clculo dos custos reduzidos p A
j
para todo j O(mn)
total: O(m
2
+ mn)
em geral m < n O(mn)
O(m
2
) O(mn) Tempo (melhor caso)
O(mn) O(mn) Tempo (pior caso)
O(m
2
) O(mn) Memria
Simplex revisado Tableau
44
Aumento de desempenho (prtica)
Re-inverso
Mecanismo para representar matriz bsica
armazena Q, matriz tal que QB
1
= B
1
No representar B
1
explicitamente: utilizar decomposio LU
45
4-Anticiclagem: regras lexicogrfica e de Bland
Definio 3.5 Um vetor u
n
lexicograficamente maior (menor) que outro
vetor v
n
se u v e a primeira componente no nula de u v
positiva (negativa). Simbolicamente:
u >
L
v ou u <
L
v.
Exemplo
(0, 2, 3, 0) >
L
(0, 2, 1, 4)
(0, 4, 5, 0) <
L
(1, 2, 1, 2)
46
Regra lexicogrfica
Escolher coluna A
j
que entra na base arbitrariamente, com c
j
< 0.
Seja u = QB
1
a j-sima coluna do tableau
Para cada i com u
i
> 0, dividir a i-sima linha do tableau por u
i
e escolher
a linha lexicograficamente menor. Se esta linha a i-sima , ento a
varivel bsica x
B(l)
sai da base.
... 9 7 0 3
... 1 6 4 2
... 3 5 0 1
... 1 7/9 0 1/3
... * * * *
... 1 5/3 0 1/3
x
B(1)/
u
1
= 1/3
x
B(3)/
u
3
= 1/3
j = 3
7/9 < 5/3 x
B(3)
sai da base

47
Teorema 3.4 Suponha que o algoritmo simplex inicie com todas as linhas do
tableau, exceto a primeira, lexicograficamente positiva. Suponha
que a regra lexicogrfica utilizada. Ento:
(a) Toda linha do tableau, exceto a primeira, permanece lexicograficamente
positiva.
(b) A linha zero aumenta lexicograficamente a cada iterao, estritamente.
(c) O mtodo simplex termina depois de um nmero finito de iteraes.
Prova: pgina 110 do livro texto
48
Regra de Bland
Smallest subscript rule
Encontrar o menor j para o qual c
j
< 0 e A
j
que entra na base.
Entre todas as variveis x
i
que estiverem empatadas no teste
para escolher a que sai da base, selecionar aquela com menor i.
49
5-Soluo bsica factvel inicial
Assumir, sem perda de generalidade, b 0
Introduzir variveis artificiais y
m
Criar problema auxiliar
0
sa
min

x
b Ax
x c
0
0
sa
min
2 1

= +
+ + +
y
x
b y Ax
m
y y y L
modelo artificial
Inicializao: x = 0, y = b, B = I
50
Existe soluo factvel tima e y = 0 (funo objetivo nula): x factvel
Valor da funo objetivo na soluo tima 0: modelo infactvel
Varivel artificial que terminar na base: deve ser colocada fora da base
se (A) = m e a l-sima varivel bsica artificial, ento examinar linha
l, encontrar j tal que l-simo elemento de B
1
A
j
0, trazer A
j
para base.
se a l-sima linha de B
1
A nula, a restrio redundante, eliminar
l-sima linha
Problema auxiliar
51
Exemplo
0
1 3
5 9 4
2 6 2
3 3 2 sa
min
4 3 2 1
4 3
3 2
3 2 1
3 2 1
3 2 1

= +
= +
= + +
= + +
+ +
x , x , x , x
x x
x x
x x x
x x x
x x x
0
1 3
5 9 4
2 6 2
3 3 2 sa
min
8 1
8 4 3
7 3 2
6 3 2 1
5 3 2 1
8 7 6 5

= + +
= + +
= + + +
= + + +
+ + +
x , , x
x x x
x x x
x x x x
x x x x
x x x x
L
52
1 0 0 0 1* 3 0 0 1
0 1 0 0 0 9 4 0 5
0 0 1 0 0 6 2 1 2
0 0 0 1 0 3 2 1 3
0 0 0 0 1 21 8 0 11
x
8
x
7
x
6
x
5
x
4
x
3
x
2
x
1
x
5
=
x
6
=
x
7
=
x
8
=
1 0 0 0 1 3* 0 0 1
0 1 0 0 0 9 4 0 5
0 0 1 0 0 6 2 1 2
0 0 0 1 0 3 2 1 3
1 0 0 0 0 18 8 0 10
x
8
x
7
x
6
x
5
x
4
x
3
x
2
x
1
x
5
=
x
6
=
x
7
=
x
4
=
53
1/3 0 0 0 1/3 1 0 0 1/3
3 1 0 0 3 0 4 0 2
2 0 1 0 2 0 2* 1 0
1 0 0 1 1 0 2 1 2
7 0 0 0 6 0 8 0 4
x
8
x
7
x
6
x
5
x
4
x
3
x
2
x
1
x
5
=
x
6
=
x
7
=
x
3
=
1/3 0 0 0 1/3 1 0 0 1/3
1 1 2 0 1 0 0 2 2
1 0 1/2 0 1 0 1 1/2 0
1 0 1 1 1 0 0 2* 2
1 0 4 0 2 0 0 4 4
x
8
x
7
x
6
x
5
x
4
x
3
x
2
x
1
x
5
=
x
2
=
x
7
=
x
3
=
54
1/3 0 0 0 1/3 1 0 0 1/3
0 1 1 1 0 0 0 0 0
3/4 0 1/4 1/4 3/4 0 1 0 1/2
1/2 0 1/2 1/2 1/2 0 0 1 1
1 0 2 2 0 0 0 0 0
x
8
x
7
x
6
x
5
x
4
x
3
x
2
x
1
x
1
=
x
2
=
x
7
=
x
3
=
1/3 1 0 0 1/3
3/4 0 1 0 1/2
1/2 0 0 1 1

x
4
x
3
x
2
x
1
x
1
=
x
2
=
x
3
=
55
Mtodo simplex de duas fases
Fase I
1. Iniciar com b 0
2. Introduzir variveis artificiais y
1
,....,y
m
e aplicar mtodo simplex com objetivo y
i
3. Se valor timo da funo objetivo positivo, ento problema original infactvel; fim
4. Se o valor timo da funo objetivo nulo, ento uma soluo factvel para o
problema original encontrado. Se no tem variveis artificiais na base, eliminar
as variveis artificiais e colunas correspondentes; soluo factvel disponvel.
5. Se a l-sima varivel bsica artificial, examinar a l-sima posio das colunas
B
1
A
j
, j = 1, ...,n. Se todos estes valores forem nulos, ento restrio
correspondente l-sima coluna redundante e eliminar.Seno, mudar base
(com a l-sima como piv). Repetir esta operao ate eliminar variveis artificiais
da base.
56
Fase II
1. Considerar a base final da fase I e o tableau como inicializao da fase II.
2. Computar custos reduzidos para todas variveis da base inicial.
3. Aplicar o mtodo simplex ao problema original.
Fase I
detecta infactibilidade do modelo
detecta e elimina restries de igualdade redundantes
Fase II
detecta modelos ilimitados.
obtm soluo tima
57
Mtodo big-M

= =
+
n
j
m
i
i j j
y M x c
1 1
Utiliza funo objetivo na forma
M um valor suficientemente grande
y
i
variveis artificiais como na Fase I
Explicita-se custos reduzidos em funo de M
Combina duas fases em uma nica.
Se problema original factvel e valor funo objetivo finito
ento y 0 e soluo obtida x tima para problema original
58
6-Geometria de colunas do mtodo simplex
Alternativa de visualizar o simplex
Considera o problema
0
1
sa
min

x
x e
b Ax
x c
e = (1, 1, ....,1)
n
e x = 1 restrio de convexidade
Problema: minimizar z sujeito x 0 , restrio de convexidade, e a restrio
(

=
(

+ +
(

+
(

z c
x
c
x
c
x
n
n
n
b A A A
L
2
2
2
1
1
1
59
A
1
A
2
A
3
A
4
b
z
(A
1
, c
1
)
(A
2
, c
2
)
(A
3
, c
3
)
(A
4
, c
4
)
Geometria de colunas
linha requisito
60
Definio 3.6
(a) Um coleo de vetores y
1
,..., y
k+1
no
n
afim independente se os vetores
y
1
y
k+1
, y
1
y
k+1
,..., y
k
y
k+1
so linearmente independentes. (k n).
(b) A envoltria convexa de k + 1 vetores afim independentes no
n
um
simplex de dimenso k.
y
1
y
2
y
3
y
1
y
2
y
3
afim independentes afim dependentes
61
Soluo bsica factvel associada com m + 1 restries de igualdade
Pontos (A
i
, c
i
) associados s m + 1 colunas LI (A
i
, 1): pontos bsicos
Pontos restantes: no bsicos
m + 1 pontos bsicos so afim independentes
envoltria convexa pontos bsicos um simplex de dimenso m
este simplex o simplex bsico
(b, z) uma combinao convexa de pontos bsicos (expresso via x
i
)
Plano que passa pelos pontos bsicos o plano dual
Exemplo
C, D, F so pontos bsicos (ver prxima transparncia)
tringulo CDF simplex bsico
H uma soluo bsica factvel associada aos pontos bsicos
62
Factibilidade e otimalidade na geometria de colunas
z
b
B
C
F
D
E
I
H
G
63
Distncia vertical do ponto (A
j
, c
j
) ao plano dual o custo reduzido (Ex. 3.30)
Ponto bsico abaixo do plano dual candidato a entrar na base
Novo simplex bsico onde linha requisito sai do simplex m-dimensional
Exemplo
C, D, F so pontos bsicos (figura transparncia anterior)
triangulo CDF simplex bsico
CDEF pirmide associada aos pontos bsicos C, D, F e candidato E
E candidato a entrar na base
DEF o novo simplex bsico (E entra na base e C sai da base)
64
Exemplo
1
6
2
3
4
5
7
8
base inicial
prxima base
base tima
b
z
m = 1
pivoteamento: ponto (A
i
, c
i
) com maior distncia vertical ao plano dual
base inicial (A
3
, c
3
), (A
6
, c
6
)
prxima base (A
3
, c
3
), (A
5
, c
5
)
base tima (A
5
, c
5
), (A
8
, c
8
)
total: 2 pivoteamentos
65
7-Eficincia computacional do simplex
Eficincia computacional do simplex determinado por
esfro computacioal por iterao (item 3)
nmero de iteraes
Considerar o problema
n , , i x x x
x
x
i i i
n
K 1 1
1 sa
min
1 1
1
=


(P)
66
x
1
x
2
x
3
x
1
x
2
Trajetria geradora (spanning path): visita cada vrtice do poliedro
Exemplo hipercubo unitrio
0 x
i
1
i = 1,...,n
n = 2 n = 3
67
Teorema 3.5 Considere o problema de programao linear (P). Ento:
(a) O conjunto de solues factveis possui 2
n
vrtices.
(b) Os vrtices podem ser ordenados tal que eles sejam adjacentes e que
possuam menor valor da funo objetivo que o anterior.
(c) Existe uma regra de pivoteamento sob a qual o simplex requer 2
n
1
mudanas de base antes de terminar.
OBS: notar que, na figura do exemplo, o primeiro e ltimo vrtices so adjacentes!
68
Dimetro de um poliedro
Distncia entre vrtices d(x,y) = nmero mnimo de passos par ir de x a y
atravs de vrtices adjacentes
Dimetro poliedro D(P) = max {d(x,y)} sobre todos pares de vrtices (x,y)
(n,m) = mximo de D(P) sobre todos poliedros limitados no
n

u
(n,m) = mximo de D(P) sobre todos poliedros, mesmo ilimitados, no
n
n = 2
m = 8
4
2
) 2 ( =
(

=
m
m ,
6 2 ) 2 ( = = m m ,
u
69
m log n
u
n m , n m , n
2 2
) 2 ( m ) ( ) (
log 1
= <
+
Dimetro no pior caso
cresce mais lentamente do que exponencialmente
limite superior cresce mais rpido do que polinomialmente
Conjectura de Hirsch: (n,m) m n
Mdia de Haimovich: n/2 iteraes
70
Este material refere-se s notas de aula do curso IA 881 Otimizao
Linear da Faculdade de Engenharia Eltrica e de Computao da
Unicamp. No substitui o livro texto, as referncias recomendadas e
nem as aulas expositivas. Este material no pode ser reproduzido
sem autorizao prvia dos autores. Quando autorizado, seu uso
exclusivo para atividades de ensino e pesquisa em instituies sem
fins lucrativos.
Observao
DCA-FEEC-Unicamp

Você também pode gostar