Universidade Estadual de Campinas~ FACULDADE DE ENGENHARIA ELETRICA E DE COMPUTACAO DT-FEEC-UNICAMP Metodo de Pontos Interiores em Programac~ao Linear 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 interiores. simplex otimo pontos interiores Figure 1: Simplex X Pontos Interiores 1.2 Notac~ao A B C::: onde A = faij g - Matrizes a b c::: onde a = faig - Vetores colunas 1.3 Programac~ao Linear - Formas Padr~oes 8 >> min >< Primal : >> sa >: 8 >> max >< Dual : > sa >: ct x Ax = b x0 8 >> max bty bt y >< Aty c ou Dual : >> sa Aty + z = c >: y livre z 0 y livre 1.4 Denic~oes Def. 1: Ponto interior: xo tal que xo > 0 e ponto interior do primal. Def. 2: Ponto factvel: xo tal que Axo = b xo 0 e um ponto fact vel do primal. Def. 3: Ponto interior factvel (satisfaz 1 e 2): xo tal que Axo = b xo > 0 e um ponto interior fact vel do primal. Def. 4: Gap (ou GAP): diferenca entre o valor do primal e do dual. Ex.: GAP = ctx ; bty. 1.5 Condic~oes de Otimalidade 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 1.6 Problemas de Mnimos Quadrados Problema: Minx2R(x) = 12 k b ; Ax k2 Logo: (x) = 21 (b ; Ax)t(b ; Ax) = 12 (btb ; btAx ; xtAtb + xtAtAx) r(x) = 0 ) x = (AtA);1Atb r2(x) = AtA > 0 ) e m nimo global. f(x) x0 x1 x2 x Figure 2: Metodo de Newton 1.7 Metodo de Newton Caso monovari avel: (x) = (x0) + rt(x0)(x ; x0) (x) = 0 ) rt(x0)x = rt(x0)x0 ; (x0) x = x0 ; r((xx00)) Caso Multivari avel: M etodo de Newton: (x) = (xk ) + r(xk )(x ; xk ) + 21 (x ; xk )tJ (xk )(x ; xk ) onde J (xk ) = r(r(xk )) (Jacobiana de (x)) r(x) = 0 ) r(xk ) + J (xk )(x ; xk ) = 0 xk+1 = xk ; J (xk )];1r(xk) Lema 1: Uma direc~ao d para melhorar a func~ao objetivo e fact vel para restric~oes de igualdade do tipo Ax = b se Ad = 0 (pois A(x + d) = b ) Ad = 0). Premissa 1: Algoritmos de pontos interiores comecam em pontos interiores fact veis e movem de ponto em ponto interior fact vel, em direca~o a soluc~ao otima. 2 Metodo Primal-Am-Escala 2.1 Base Teorica 2 66 x1 66 0 66 X (nxn) = diag(x) = 666 : 66 : 64 Miny z 12 k Xz k2 0 ::: 0 x2 ::: 0 : ::: : : ::: : 0 0 ::: xn sa z = c ; Aty 3 77 77 77 77 77 77 5 Miny z 12 k Xz k2 = Minz 21 k X (c ; Aty) k2 Z = k X (c ; Aty) k2 = ctX tXc ; ctX tXAty ; yt AX tXc + ytAX tXAty X t = X , ry Z = 0: ;AX 2c + AX 2Aty = 0 z = c ; At(AX 2At);1AX 2c Teorema (Dikin): Dados x tal que Ax = b x > 0 z = c ; Aty y = (AX 2At);1AX 2c, ent~ao a direc~ao d = ;X 2z e uma direc~ao de descida factvel. Assim, d = ;X 2z minimiza k Xz k2: xk+1 = xk + k dk com: k k = minik<0(; xiki ) 0 < < 1 dk = fik g 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 { Variaca~o do valor da func~ao objetivo: kct xk+1 ;ct xk k 1+kctxk k b) Ponto inicial interior fact vel x0, resolver: 8 >> min ct x + M >< (PM ) : > sa Ax + p = >: (x ) b 0 onde: p = b ; Ax0. Iniciar com (x0 1). c) C alculo de yk : (A(X k )2At)yk = A(X k )2c d) am: espaco a m, escala: x~ = X ;1x: 8 >> min >< (P ) >> sa >: ctx Ax b x0 c~ = Xc, A~ = AX . ! x = X x~ 8 >> min >< ~ ) (P ) > sa >> : c~tx~ A~x~ b x~ 0 2.3 Projec~ao Am-Escala Problema: 8> Direc~ao d tal que: >> max < >> sa >: 8 >> max >< >> sa >: ctx Ax = b x0 ct(x0 + d) A(x0 + d) = b k d k2 = 1 Lagrangeano: L(d y ) = ct(x0 + d) + (1 ; dtd) ; yt(A(x0 + d) ; b) Dual: Mind y L(d y ). Otimalidade: i) @L @d = c ; 2d ; Aty = 0 ii) @L @ = 1 ; dt d = 0 iii) @L @y = A(x0 + d) ; b = 0 iii): Ax0 ; b + Ad = 0 ) Ad = 0 = 12 : i): c ; d ; Aty = 0 ) ) d = c ; Aty y = (AAt);1Ac d = c ; At(AAt);1Ac = (I ; At(AAt);1A)c = Pc P = (I ; At(AAt);1A) = matriz de projec~ao ortogonal ao espaco nulo de A. Figura 3: d = da + db, da = Atx Adb = A(d ; da) = 0 (espaco nulo de A). Assim: Ad = Ada = AAtx x = (AAt);1Ad ) da = At(AAt);1Ad db = d ; At(AAt);1Ad = (I ; At(AAt);1A)d = P (A)d da db N(A) d t R(A ) Figure 3: Matriz de proje c~ao ortogonal de 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 >: xk+1 = X k d~k = ;(I ; (X k )2At(A(X k )2At);1A):(X k )2c = xk + k dk Primal-a m-escala: 8 >> dk >< k >> z : yk ) 8 k >< d >: xk+1 = ;(X k )2z k = c ; Atyk = (A(X k )2At);1A(X k )2c = ;(I ; (X k )2At(A(X k )2At);1A):(X k )2c = 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 >< 1 Modelo : > sa 2 x1 + x2 3 >: 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 1.00 1.73 2.82 3.92 5.66 5.88 5.98 5.99 6.00 6.00 0.50 0.80 1.13 1.00 0.14 0.05 0.01 0.005 0.001 0.000 2.00 1.34 0.46 0.04 0.03 0.01 0.003 0.000 0.000 0.000 165.00 275.51 423.40 502.84 530.45 537.25 539.22 539.79 539.95 539.99 c1 = 90 c2 = 150 c3 = 0 b = 3 550 500 450 c’x 400 350 300 250 200 150 1.5 6 1 5 4 0.5 3 2 x2 0 1 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: Ou seja: 8> @L < @x >: @L @w =0 =0 ! ! Z 2 x ; At w = 0 b ; Ax = 0 x = Z ;2Atw (AZ ;2At)w = b ) x = Z ;2At(AZ ;2At);1b Hessiana: H 2 = 64 3 2 Z ;A 75 = ;AAt ;At 0 z = c ; Aty ) dz = ;Atdy <0 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 0, 2. Faca at e converg^encia: (a) dyk = (A(Z k );2At)b (b) dz k = ;Atdyk (c) xk = ;(Z k );2dz k 2 (0 1) 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 >< >> sa >: bty ; M 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 ) = c ; Atyk ; k Atdyk = zk + k dzk 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: F (x y 2 66 Fp z) = 6664 Fd Fa 3 2 3 Ax ; b 77 66 7 77 = 66 At y + z ; c 777 = 0 75 64 75 Aproximac~ao linear fornece: XZe (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 e: 2 66 b ; Ax0 ;F (x0 y 0 z 0 ) = 666 c ; At y 0 ; z 0 4 ;X 0Z 0e 2 t 66 rFp J (x0 y0 z0) = 6664 rFdt rFat 3 2 77 66 77 = 66 75 64 3 2 77 66 rp 77 = 66 r 75 64 d ra 3 77 77 = r 75 3 A 0 0 77 0 At I 7775 Z0 0 X0 Assim: (x y 2 66 A 0 0 0 z) = (x y z ) + 6664 0 Z0 3;1 2 0 0 77 66 rp At I 7775 6664 rd 0 X0 ra 3 77 77 = (x0 y 0 z 0) + d 75 onde: 2 3 2 66 dx 77 66 A d = 6664 dy 7775 = 6664 0 dz Z0 3;1 2 0 0 77 66 rp At I 7775 6664 rd 0 X0 ra Pode-se resolver o sistema: 2 66 66 64 32 3 2 A 0 0 77 66 dx 77 66 rp 0 At I 7775 6664 dy 7775 = 6664 rd Z 0 0 X 0 dz ra 3 77 77 75 Considerando: 8 >> Adx >< t >> A dy + dz >: Z 0dx + X 0dz dz = rd ; Atdy ) = rp = rd = ra : Z 0dx + X 0dz = Z 0dx + X 0(rd ; Atdy) = ra 3 77 77 75 Z 0dx ; X 0Atdy = ra ; X 0rd Ou seja: ;(X 0);1Z 0 dx + Atdy = ;(X 0);1ra + rd que fornece: 2 64 32 3 2 3 A 0 75 64 dx 75 = 64 rp 75 t 0 ; 1 ;D A dy rd ; (X ) ra onde D = X ;1Z . Note que: 8 >><> Adx t >> ;Ddx + A dy >: e: dx = rp = rd ; X ;1ra = D;1Atdy ; rd + X ;1ra] D;1Atdy = dx + D;1(rd ; X ;1ra) (AD;1At)dy = Adx + AD;1rd ; AD;1X ;1ra ) (AD;1At)dy = rp + AD;1rd ; AZ ;1ra 4.2 Algoritmo 1. Dados (x0 y0 z 0) tal que (x0 z 0) > 0 e 2 (0 1) 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) dyk = A(Dk );1At];1rpk + A(Dk );1rdk ; A(Z k );1rak ] (f) dxk = (Dk );1Atdyk ; rdk + (X k );1rak ] (g) dz k = (X k );1rak ; Z k dxk ] xki k (h) p = minxki <0f; xk g i k minzik <0f; zziik g (i) kd = (j) pk = min( kp 1) (k) dk = min( kd 1) (l) xk+1 = xk + pk dxk (m) yk+1 = yk + dk dyk (n) z k+1 = z k + dk dz k (o) k k + 1 3. Fim Faca A converg^encia pode ser testada sobre o valor de k F k2. O ponto inicial (x0 y0 z 0) n~ao precisa ser fact vel. Recomendase: { Para o primal: Fazendo x = Aty~, Ax = b ! AAty~ = b ) y~ = (AAt );1b Aty~ = At(AAt);1b x = At(AAt);1b 1 = max(;minixi 2 2kkbAk1k1 ), onde 2 = 100 x0i = max(xi 1) (k b k1 = Pmi=1 j bi j k A k1 = maxj Pmi=1 j aij j) { Para dual: Aty + z = c y livre e z > 0 8 > > > < zi + 3 0 z = >> ;zi > : 3 ) y0 = 0, e: se zi 0 se zi ;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 melhor 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 >< t t >> c ; A y ; z >: e ; XZe = 0 = 0 =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 n X tZ e n A cada iterac~ao, tem-se o sistema J (xk yk z k )dk = rk , ou seja: 2 66 66 64 32 k A 0 0 77 66 dx 0 At I 7775 6664 dyk Z k 0 X k dzk ) X tZe = 3 2 k 77 66 rp 77 = 66 rk 75 64 d rck 3 2 3 k 77 66 b ; Ax 77 77 = 66 c ; At ; z k 77 75 64 75 k k t k e ; (X ) Z e Tem-se assim, duas diferencas em relac~ao ao m etodo primal-dual a m-escala: a) troca de rak por rck b) c alculo de k 5.2 Algoritmo 1. Dados (x0 y0 z 0) tal que (x0 z 0) > 0, 2 (0 1) 2 (0 1) e k = 0, 2. Faca at e converg^encia: (a) k = TrX k Z k ] k (b) k = ( n ) (c) rpk = b ; Axk (d) rdk = c ; Atyk ; z k (e) rck = k e ; X k Z k e (f) Dk = (X k );1Z k ] (g) dyk = A(Dk );1At];1rpk + A(Dk );1rdk ; A(Z k );1rck ] (h) dxk = (Dk );1Atdyk ; rdk + (X k );1rck ] (i) dz k = (X k );1rck ; Z k dxk ] xki k (j) p = minxki <0f; xk g i k minzik <0f; zziik g (k) kd = (l) pk = min( kp 1) (m) dk = min( kd 1) (n) xk+1 = xk + pk dxk (o) yk+1 = yk + dk dyk (p) z k+1 = z k + dk dz k (q) k k + 1 3. Fim Faca O crit erio de converg^encia e a inicializac~ao deste m etodo podem ser os mesmos do m etodo primal-dual a m-escala. E recomend avel inicializar com 0 alto. Dependendo dos valores de e , obtemos algoritmos de diversas naturezas (complexidade polinomial, converg^encia superlinear, etc.). Os valores t picos de est~ao entre (0:995 0:99995). k2 Quando k < 1, recomenda-se utilizar k = (n) para procurar 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~ (1) >> A dy~ + dz~ >: Zdx~ + Xdz~ = rp = rd = 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 75 64 75 64 z~ z + dz~ A seguir, determinar a direc~ao (dx^ dy^ dz^): 8 >> Adx^ >< t (2) > A dy^ + dz^ >: Zdx^ + Xdz^ = 0 = 0 = 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> >> = rp A(dx~ + dx^) < t >> A (dy~ + dy^) + (dz~ + dz^) = rd >: Z (dx~ + dx^) + X (dz~ + dz^) = ra + rc = rs onde: 8 >< ra >: r c = ;XZe = e ; (Dx~Dz~)e 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 minz~ik <0f; zz~iik g (i) ~kd = (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>1 ) se < ( k (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 k (s) p = minxki <0f; xk g i k minzik <0f; zziik g (t) kd = (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 podem 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 < 2 7 66 (P~ 1) : >> 66 : 777 >> 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 00 11 000 0 1 0000 1111 00000 11111 00000000 11111111 2 111 00 11 000 111 0000 1111 0 1 00000 11111 00 11 0 1 000 111 0000 1111 00000 11111 eq. 1 111 00 11 0eq. 3 1 0000 1111 00000 11111 0000 1 00000 11111 000 111 0000 1111 00000 11111 0000 1 00000 11111 0000 1111 00000 11111 00000 11111 1 111 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 1 x1 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~ > > > > > < > sa >> >> >: = 5x1 + 3x2 ; (ln(x1) + ln(x2) + ln(x3)+ ln(x4) + ln(x5)) 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 b) x1 = 1:999 x2 = 0:001 (quase na fronteira) z = 9:998 z~ = 134:3 (P 1) pode ser colocado como sendo: 8> < (P 2) : >: max sa f (x) = ctx + lnx Ax = b e o problema de busca de melhor direc~ao fact vel (em torno do ponto xk ) pode ser colocado como: 8 >< max f (xk dxk ) rf t(xk )dxk + 21 (dxk )tJ (xk )dxk = (P 3) : >: sa Adxk = 0 Note que: 8> >> rf (xk ) = c + x1k >>< J (xk ) = f8aij g >< ; se i = j >> (xki )2 >> aij = >: 0 >: se c:c: Aplicando o m etodo primal a m-escala ao P (3), obtemos (do lagrangeano associado): dxk = 1 X k P k(ck + e) onde X k = diag(xk ) ck = cX k e P k e a matriz de projec~ao P k = I ; (Ak )tAk (Ak )t];1Ak com Ak = AX k . Pr oximo ponto interior: xk+1 = xk + k dxk , com dxk = X k P k(ck + e) Melhor tamanho do passo no m etodo de Newton = 1 , ): k k = minf 1 maxg, onde: max = minxk <0f; xxik g i in!uencia fortemente no fator de converg^encia. Valor t pico: 2 :9 :999] 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 k (f) max = minxk <0 f; k g i xi i (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 ctxk k se se k k ctxk k grande ctxk k pequeno ou considerando: k+1 = k 0 < < 1 O valor de 2 R < 1 de ne a velocidade de converg^encia. 8 Comentarios sobre Sistemas Lineares Nos m etodos de pontos interiores, s~ao precisos determinar matrizes do tipo: B = AD;1At, onde A e uma matriz dada e D > 0 e uma matriz diagonal que varia a cada iterac~ao e e tal que: Primal A m-Escala: D = X ;2 (yk = A(X k )2At];1A(X k )2c) Dual A m-Escala: D = Z 2 (dyk = A(Z k );2At]b) Primal-Dual A m-Escala: D = X ;1Z (dyk = A(Dk );1At];1rpk + A(Dk );1rdk ; A(Z k );1rck ]) E uma etapa computacionalmente "cara". A seguir, vamos analisar alguns aspectos que poder~ao melhorar o comportamento computacional. 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 Figure 6: (~a )(~a ) t i j iterac~oes, se armazenarmos este produto, o c alculo de ij vai exigir (1 produto + 1 soma)n] = 2n operac~oes. Existem m(m2+1) elementos diferentes em B (sim etrica, portanto, m + (m ; 1) + ::: + 1 = m2+1 m). Assim, o n umero de operac~oes s~ao: Sem armazenamento: 3n m(m2+1) operac~oes Com armazenamento: nm(m + 1) operac~oes A matriz B e sim etrica e de nida positiva. Logo, a resoluc~ao do sistema: Bd = b ca facilitada, se decompormos na forma: LUd = b 8 >< L = >: U = matriz triangular inferior unitario onde: matriz triangular superior unitario Aqui, unit ario signi ca matriz com 1's na diagonal principal. A resoluc~ao e processada, fazendo: = L w U b d w = Figure 7: Decomposi ca~o LU - Solu c~ao por substitui ca~o L(Ud) = b 8> < Lw = 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 L = L~ L~ t 1 2 t que e conhecido como decomposic~ao de Cholesky. Isso permite escrevermos: 8 >< L ~w = b t ~ ~ Bd = b ) LL d = b ) >: L~ td = w FEEC, 09 de marco de 2000. Akebo Yamakami - Orientador DT-FEEC-UNICAMP