Professional Documents
Culture Documents
1 Introduc~ao
1.1 Pontos Interiores X Simplex
Ambos e cientes
Simplex: muitas iterac~oes "simples" pelas arestas
Pontos Interiores: poucas iterac~oes "caras" pelos pontos inte-
riores.
simplex
otimo
pontos interiores
i) Primal factibilidade: b ; Ax = 0 x 0
ii) Dual factibilidade: c ; At y ; z = 0 z 0
iii) Condic~ao de Complementaridade: xizi = 0
x0 x1 x2 x
(x)
= (x0) + rt(x0)(x ; x0)
x = x0 ; r((xx00))
Caso Multivari
avel:
M
etodo de Newton:
2.2 Algoritmo
1. Dados 2 (0 1) e x0 j Ax0 = b x0 > 0 k = 0:
2. Faca at
e convergir:
(a) yk = (A(X k )2At);1A(X k )2c
(b) z k = c ; Atyk
(c) dk = ;(X k )2z k
k
(d) k = minik <0f; xki g
i
(e) xk+1 = xk + k dk
(f) k k + 1
3. Fim Faca
a) Crit
erios de converg^encias:
{ Gap relativo: 1+kkbXtykkz+kcktxk k
{ Primal factibilidade: kb1+;Axkbkk k
{ Dual factibilidade: kc;A1+tykkc;k zk k
kct xk+1 ;ct xk k
{ Variaca~o do valor da func~ao objetivo: 1+kctxk k
b) Ponto inicial interior fact
vel x0, resolver:
8
>> min ct x + M
><
(PM ) : > sa Ax + p = b
>: (x ) 0
onde: p = b ; Ax0. Iniciar com (x0 1).
c) C
alculo de yk :
t
R(A )
Problema (P~ ):
d~ = ;P~ c~ = ;(I ; A~t(A~A~t);1A~)~c
A~ = AX c~ = Xc, iterac~ao k:
d~k = ;(I ; X k At(AX k X k At);1AX k )X kc
= ;X k c + X k At(A(X k )2At);1A(X k )2c
Logo:
8 k
>< d = X k d~k = ;(I ; (X k )2At(A(X k )2At);1A):(X k )2c
>: xk+1
= xk + k dk
Primal-a m-escala:
8
>> dk = ;(X k )2z k
><
>> z = c ; Atyk
k
: yk = (A(X k )2At);1A(X k )2c
8 k
>< d = ;(I ; (X k )2At(A(X k )2At);1A):(X k )2c
) >: xk+1 = xk + k dk
2.4 Exemplo (Frannie's Firewood Problem)
Frannie vende 3 "cordas" de lenha todo nal do ano. Pode vender
meia "corda" a U $90 ou uma "corda" a U $150. Como maximizar
o lucro?
8
>> max 90x + 150x
>< 1 2
Modelo : > sa 2 x1 + x2 3
1
>: x1 x2 0
x3 = vari
avel de folga, (1 21 2) = ponto inicial interior fact
vel
Resultado: tabela 1, gura 4.
x1 x2 x3 ctx
c1 = 90 c2 = 150 c3 = 0 b = 3
1.00 0.50 2.00 165.00
1.73 0.80 1.34 275.51
2.82 1.13 0.46 423.40
3.92 1.00 0.04 502.84
5.66 0.14 0.03 530.45
5.88 0.05 0.01 537.25
5.98 0.01 0.003 539.22
5.99 0.005 0.000 539.79
6.00 0.001 0.000 539.95
6.00 0.000 0.000 539.99
550
500
450
400
350
c’x
300
250
200
150
1.5
6
1
5
4
0.5 3
2
0 1
x2
x1
Figure 4: Evolu
c~ao dos pontos interiores do problema de Frannie
3 Metodo Dual-Am-Escala
3.1 Introduc~ao
Problema:
8>
< min 12 k Zx k2
>: sa Ax = b Z = diag(zi)
Lagrangeano:
L(x w) = 21 k Zx k2 +wt(b ; Ax) = 12 (xtZZx) + wt(b ; Ax)
Condic~oes de otimalidade:
8> @L
< @x =0 ! Z 2 x ; At w = 0
>: @L
@w =0 ! b ; Ax = 0
Ou seja:
x = Z ;2Atw (AZ ;2At)w = b ) x = Z ;2At(AZ ;2At);1b
Hessiana:
2 3
H = 64 Z ;A 75 = ;AAt
2
<0
;At 0
z = c ; Aty ) dz = ;Atdy
Direca~o dz = ;Z 2x:
dz = ;Z 2Z ;2At(AZ ;2At);1b]
= ;At(AZ ;2At);1b = ;Atdy
Assim:
dy = (AZ ;2At);1b
Teorema: Dados (y z) tais que z = c ; Aty, z 0, Ax = b,
x = Z ;2At(AZ ;2At);1b, a direc~ao dada por:
(dy dz ) = (AZ ;2At);1b ;Z 2x)
e dual fact
vel e
e de subida.
3.2 Algoritmo
1. Dados (y0 z 0) tal que Aty0 + z 0 = c z 0 > 0 e 2 (0 1) k =
0,
2. Faca at
e converg^encia:
(a) dyk = (A(Z k );2At)b
(b) dz k = ;Atdyk
(c) xk = ;(Z k );2dz k
k
(d) k = minzik <0f; zzik g
i
(e) yk+1 = yk + k dyk
(f) z k+1 = z k + k dz k (ou z k+1 = c ; Atyk+1)
(g) k k + 1
3. Fim Faca
a) Crit
erio de converg^encia originalmente utilizado:
kbt y k ;bt y k+1k .
max(1 kbt yk k)
b) Ponto inicial dual fact
vel (y0 z 0), resolver o problema:
8
>> max
bty ; M
><
>> sa
Aty + z ; e = c
>: z0
aplicando o m
etodo dual-a m-escala at
e < 0, com valor
inicial y0 qualquer (livre), 0 = ;2minj (cj ; Atj y0).
c) z k+1 = c ; Atyk+1 = c ; At(yk + k dyk ) =
d) O c
alculo de xk
e dispens
avel, a n~ao ser que se utilize no
crit
erio de converg^encia.
e) Como y
e livre, n~ao
e feito teste de barreira.
f) Grande custo computacional no c
alculo de A(Z k );2At.
4 Metodo Primal-Dual-Am-Escala
4.1 Introduc~ao
Condic~oes de otimalidade:
2 3 2 3
66 Fp 77 66 Ax ; b 7
F (x y z) = 6664 Fd 77 = 66 At y + z ; c 777 = 0
75 64 75
Fa XZe
Aproximac~ao linear fornece:
(x y z )
= (x0 y0 z 0) ; J ;1(x0 y0 z 0)F (x0 y0 z 0)
pois:
F (x y z)
= F (x0 y0 z 0) + J (x0 y0 z 0)(x y z );
(x0 y0 z 0))] = 0
2 3 2 3
66 b ; Ax0 77 66 rp 77
;F (x0 y 0 z 0 ) = 666 c ; At y 0 ; z 0 77 = 66 r
75 64 d
77 = r
75
4
;X 0Z 0e ra
e:
2 3 2 3
66 rFp A 0 0 77
t
77 66
J (x0 y0 z0) = 6664 rFdt 77 = 66
75 64 0 At I 7775
rFat Z0 0 X0
Assim:
2 3;1 2 3
66 A 0 0 77 66 rp 77
(x y z) = (x y z ) + 6664 0
0 0 0 At I 7775 6664 rd 77 = (x0 y 0 z 0) + d
75
Z0 0 X0 ra
onde:
2 3 2 3;1 2 3
66 dx 77 66 A 0 0 77 66 rp 77
d = 6664 dy 7775 = 6664 0 At I 7775 6664 rd 77
75
dz Z0 0 X0 ra
Pode-se resolver o sistema:
2 32 3 2 3
66 A 0 0 77 66 dx 77 66 rp 77
66 0 At I 7775 6664 dy 7775 = 6664 rd 77
64 75
Z 0 0 X 0 dz ra
Considerando:
8
>> Adx = rp
><
>> A dy + dz = rd
t
>: Z 0dx + X 0dz = ra
dz = rd ; Atdy ) :
Z 0dx + X 0dz = Z 0dx + X 0(rd ; Atdy) = ra
Z 0dx ; X 0Atdy = ra ; X 0rd
Ou seja:
;(X 0);1Z 0 dx + Atdy = ;(X 0);1ra + rd
que fornece:
2 32 3 2 3
A 0 75 64 dx 75 = 64 rp
64 75
;D A t dy rd ; (X ) ra
0 ; 1
{ Para dual:
Aty + z = c y livre e z > 0 ) y0 = 0, e:
8
< zi + 3 se zi 0
>
>
>
z = >> ;zi
0 se zi ;3
: 3
> se ;3 zi 0
onde 3 = 1 + k c k1. Estes pontos procuram ser bem
posicionados, longe da fronteira (xizi n~ao muito pequenos).
O tamanho do passo para y
e o mesmo de para z (dk ) para
garantir que ocorra c ; Atyk ; z k = 0 na converg^encia:
c ; Atdyk+1 ; zk+1 = c ; At(yk + dk dyk ) ; (zk + dk dzk )
= (c ; Atyk ; z k ) ; dk (Atdyk ; dz k )
Como n~ao precisa de ponto inicial fact
vel, este m
etodo
e mel-
hor que o primal ou dual (n~ao precisa de fase I).
5 Metodo Primal-Dual Classico
5.1 Introduc~ao
Primal-dual a m-escala permite que x e z aproximem rapidamente
das fronteiras ) ine ciente.
Primal-Dual Cl
assico acrescenta uma perturbac~ao na condica~o
de complementariedade:
xi zi = i
Novas condico~es de otimalidade:
8
>> b ; Ax = 0
><
>> c ; A y ; z
t t = 0
>: e ; XZe =0
tal que limk ! 1k = 0
Estimac~ao de k :
k = Tr(X k )tZ k ] onde: TrX ] = traco de X
Na maioria das implementac~oes, adota-se:
k = k ( nk ) k 2 (0 1)
Nota: k = 0 ) primal-dual a m-escala, k = 1 )
direca~o de centragem pois:
e ; XZe = 0
k e ; XZe = 0 X tZ e
) X tZe =
n n
A cada iterac~ao, tem-se o sistema J (xk yk z k )dk = rk , ou seja:
2 32 k 3 2 k 3 2 3
66 A 0 0 77 66 dx 77 66 rp 77 66 b ; Ax k
77
66 0 At I 7775 6664 dyk 77 = 66 rk 77 = 66 c ; At ; z k 77
64 75 64 d 75 64 75
Z k 0 X k dzk rck e ; (X ) Z e
k k t k
recomend
avel inicializar com 0 alto.
Dependendo dos valores de e , obtemos algoritmos de diver-
sas naturezas (complexidade polinomial, converg^encia super-
linear, etc.).
Os valores t
picos de est~ao entre (0:995 0:99995).
k2
Quando k < 1, recomenda-se utilizar k = (n) para procu-
rar acelerar a converg^encia.
6 Metodo Preditor-Corretor
6.1 Introduc~ao
Baseado em 3 componentes:
direc~ao a m-escala d~ (direc~ao de Newton, preditor).
direc~ao de centragem, de nido pelo do primal-dual cl
assico.
direc~ao de correc~ao d^, que tenta compensar a aproximac~ao
linear de Newton.
Id
eia: calcular a direc~ao a m-escala e estudar o progresso ao
longo desta direc~ao, atuando na perturbac~ao (centragem) e na
correca~o n~ao-linear.
No ponto (x y z ):
8
< t Adx~ = rp
>>
(1) >> A dy~ + dz~ = rd
>: Zdx~ + Xdz~= ra = ;XZe
Obt
em-se, ent~ao, o ponto (~x y~ z~), onde:
2 3 2 3
66 x~ 77 66 x + dx~ 77
66 y~ 77 = 66 y + dy~ 77
64 75 64 75
z~ z + dz~
A seguir, determinar a direc~ao (dx^ dy^ dz^):
8
>>
>< Adx^ = 0
(2) > A dy^ + dz^
t = 0
>: Zdx^ + Xdz^ = e ; (Dx~Dz~)e = rc
onde Dx~ = diag(dx~) e Dz~ = diag(dz~). Finalmente, a direc~ao
nal (dx dy dz )
e determinada somando (1) e (2):
8>
>>
< t A(dx~ + dx^) = rp
>> A (dy~ + dy^) + (dz~ + dz^) = rd
>: Z (dx~ + dx^) + X (dz~ + dz^) = ra + rc = rs
onde:
8
>< ra = ;XZe
>: r = e ; (Dx~Dz~)e
c
6.2 Algoritmo
1. Dados (x0 y0 z 0) tal que (x0 z 0) > 0, 2 (0 1) e k = 0,
2. Faca at
e converg^encia:
(a) rpk = b ; Axk
(b) rdk = c ; Atyk ; z k
(c) rak = ;X k Z k e
(d) Dk = (X k );1Z k ]
(e) dy~k = A(Dk );1At];1rpk + A(Dk );1rdk ; A(Z k );1rak ]
(f) dx~k = (Dk );1Atdy~k ; rdk + (X k );1rak ]
(g) dz~k = (X k );1rak ; Z k dx~k ]
k
(h)
~kp = minx~ki <0f; xx~ik g
i
k
(i)
~kd =minz~ik <0f; zz~iik g
(j) ~ pk = min(
~kp 1)
(k) ~ dk = min(
~kd 1)
(l) ~ k = (xk + ~ pk dx~k )t(z k + ~ dk dz~k ), k = TrX k Z k ]
8 k
>> ~ 3
< ( k ) se k>1
(m) k = >> k
: ( pn ) se k 1
k
(n) k = k ( n )
(o) rsk = rak + k e ; (Dx~k )(Dz~k )e
(p) dyk = A(Dk );1At];1rpk + A(Dk );1rdk ; A(Z k );1rsk ]
(q) dxk = (Dk );1Atdyk ; rdk + (X k );1rsk ]
(r) dz k = (X k );1rsk ; Z k dxk ]
xki
(s)
p = minxki <0f; xk g
k
i
k
(t)
kd = minzik <0f; zziik g
(u) pk = min(
kp 1)
(v) dk = min(
kd 1)
(w) xk+1 = xk + pk dxk
(x) yk+1 = yk + dk dyk
(y) z k+1 = z k + dk dz k
(z) k k + 1
3. Fim Faca
Nota:
O crit
erio de converg^encia e a inicializac~ao deste m
etodo po-
dem ser os mesmos do m
etodo primal-dual a m-escala.
Dois sistemas lineares precisam ser resolvidos, utilizando a
mesma relac~ao: A(Dk );1At = Lk (Lk )t.
Espera-se que o esf^orco para resolver dois sistemas lineares seja
recompensado pela reduc~ao no n
umero de iterac~oes.
Este
e o m
etodo com melhores resultados te
oricos e pr
aticos
(tem converg^encia quadr
atica).
7 Metodo de Barreira Logartimica
7.1 Introduc~ao
Seja o problema:
8
>> max ct x
><
(P 1) : >> sa Ax = b
>: x0
Substituindo a restric~ao x 0 na forma:
8
>> max ct x + tf (x)
>>
>> sa Ax = b
>> 2 3
>>
>> 66 ln(x1) 77
< 66 ln(x ) 77
(P~ 1) : >> 66
66 : 777
2 7
>> onde : f (x) = ln(x) = 66 7
>> 66 : 777
>> 66 7
>> 66 : 777
>> 4
: ln(xn) 5
pode ser assumido um escalar ( 2 R).
Exemplo:
8
>> min z = 5x1 + 3x2
>>
< sa x1 + x2 1 (eq:1)
>>
>> 0 x1 2 (eq:2)
: 0 x2 2 (eq:3)
x2
eq. 2
2 111
00
11
000
0000
1111
00000
11111
00000000
11111111
00
11
000
111
0000
1111
00000
11111
0
1
0
1
00
11
000
111
0000
1111
00000
11111
eq. 1 111 0
1
1 00
11
00000000
1111
00000
111110eq. 3
1
00000
11111
000
111
0000
1111
00000
11111
0000
1 00000
11111
1 1110000
1111
00000
11111
00000
11111
000
111
0000
1111
00000
11111
00000
11111
000
111
0000
1111
00000
11111
00000
11111
000
111
00000
11111
000
111
00000
11111
000
111
000
111
00000
11111
000
111
000
111 x1
1 2
Figure 5: Regi~ao factvel do problema
Regi~ao fact
vel na gura 5. Com as vari
aveis de folga:
8>
>> min z = 5x1 + 3x2
>>
>< sa x1 + x2 ; x3 = 1
> x1 + x4 = 2
>> x2 + x5 = 2
>>
>: xi 0 i = 1 2 3 4 5
Com a adic~ao da func~ao barreira:
8
>
>
> min z~
= 5x1 + 3x2 ; (ln(x1) + ln(x2) + ln(x3)+
>
>
>
< ln(x4) + ln(x5))
> sa x1 + x2 ; x3 = 1
>> x1 + x4 = 2
>>
>: x2 + x5 = 2
Vamos analisar duas situaco~es:
a) x1 = x2 = 54 (aproximadamente no meio da regi~ao fact
vel)
z = 5x1 + 3x2 = 10
z~
= 7:237
7.2 Algoritmo
1. Dados 2 (0 1), x0 > 0, 0 grande, k = 0:
2. Faca at
e convergir:
(a) X k = diagfxk g
(b) ck = X k c
(c) Ak = AX k
(d) P k = I ; (Ak )tAk (Ak )t];1Ak
(e) dxk = X k P k (ck + k e)
xki
(f) max = minxk <0 f; k g
k
i xi
(g) k = minf 1k kmaxg
(h) xk+1 = xk + k dxk
(i) k+1 = f (k ctxk )
(j) k k + 1
3. Fim Faca
Nota:
a) Crit
erio de converg^encias: pode ser feito sobre a variac~ao do
valor de ctxk ( ctxk ) ou sobre o valor de dxk ( dxk ).
b) O ponto inicial interior x0 pode ser encontrado utilizando o
m
etodo de M grande, como no caso do primal a m-escala.
c) O valor de k pode ser tal que:
8
>< 0
= >:
k
k se k ctxk k grande
ctxk k se k ctxk k pequeno
ou considerando:
E
uma etapa computacionalmente "cara". A seguir, vamos anal-
isar alguns aspectos que poder~ao melhorar o comportamento com-
putacional.
Como D > 0
e diagonal, Dt > 0 tamb
em
e diagonal e podemos
escrever:
B = AD;1At = A~A~t > 0 com A~ = AD; 12
Assim, o elemento
ij de B
e dado por (ver gura 6):
ij = (~ai)t(~aj ) = Pnk=1 a~ik a~jk = Pni=1 aik ajk kk;1
onde fij g = D. Para cada
ij , temos (2 produtos + uma
soma)n] = 3n operac~oes. Como aik ajk
e constante para todas as
i j
~t
a
i a
j
L w b
U d w
=
Figure 7: Decomposi
ca~o LU - Solu
c~ao por substitui
ca~o
8>
< Lw = b
L(Ud) = b >: Ud = w
A decomposica~o LU n~ao
e u
nica mas a decomposic~ao B = L U
e u
nica (onde
e diagonal e L e U s~ao matrizes unit
arios. E
poss
vel mostrar que, para matrizes sim
etricas, U = Lt, ou seja,
B = L1 L1 t. Como B > 0 ) > 0, podemos escrever que
= 2 2 , o que permite escrever:
B=L 1
2
1
L = L~ L~ t
2 t
que
e conhecido como decomposic~ao de Cholesky. Isso permite
escrevermos:
8
~ ~ ~w = b
>< L
Bd = b ) LL d = b ) >: L~ td = w
t
FEEC, 09 de marco de 2000.