Este- ja sakkofunktiomenetelmät Keijo Ruotsalainen Mathematics Division
Luennon kulku Este- ja sisäpistemenetelmät LP-ongelmat ja logaritminen estefunktio Polun seuranta Newtonin menetelmällä Sakkofunktiomenetelmistä Epäyhtälörajoitteinen ongelma Minimoi f (x) rajoittein x X, g j (x) 0, j = 1,...,m, missä oletetaan, että funktiot f (x), g 1 (x),..., g m (x) ovat sileitä, X = R n tai R n +, ja että rajoitejoukko S = {x X : g j (x) < 0, j = 1,...,m}.
Estefunktiomenetelmä Tarkastellaan Estefunktiota, joka on jatkuva ja lähestyy, kun g j (x) 0 : Esimerkkejä: m m 1 B(x) = ln( g j (x)), B(x) = g j (x). j=1 j=1 Estefunktiomenetelmä: Jokaiselle k = 0,1,2,3... ratkaise min {f (x) + x S ǫ(k) B(x)} x (k), missä parametrijonolle {ǫ (k) } k N on voimassa: 0 < ǫ (k+1) < ǫ (k) ja ǫ (k) 0.
Esimerkki Ratkaise: min 1 x1 x 2 0 x 2 1 + x2 2. Logaritminen estefunktio: B(x) = ln(x 1 + x 2 1). Ratkaistaan minimointiongelma min x1 +x 2 1 0{f (x) + ǫb(x)}. Unohdetaan rajoite-ehto hetkellisesti: min x 2 1 + x2 2 ǫ ln(x 1 + x 2 1). Optimaalisuusehto (konveksisuus): 0 = f (x )+ǫ B(x ) = [ 2x 1 ǫ 2x 2 x1 +x 2 ǫ 1 x1 +x 2 1 ] { x 1 = x2 2x1 ǫ 2x1 1 = 0 4x1 2 2x 2 1 ǫ = 0 x 1 = 2 + 2 1 + 4ǫ S, ( 2 2 1 + 4ǫ 8 8 Näin ollen lim ǫ 0 x = ( 1 2, 1 2 ). / S)
Estefunktiomenetelmä Optimointiongelma: min {x 1 0} x Estefunktio-ongelma: min x 1 {x ǫ ln(x 1)} x (ǫ) = 1 + ǫ. 3 2.8 2.6 2.4 2.2 2 ε=1/2 1.8 1.6 1.4 ε=1/8 1.2 1 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Konvergenssi Lause Olkoon {x (k) } estefunktiomenetelmällä ratkaistu jono. Tällöin jokainen jonon kasautumispiste on rajoitetun ongelman globaali minimikohta. Todistus. Olkoon lim k x (k) = x, x (k) S x S. Jos x ei ole globaali minimi, niin on x S {g j (x ) < 0, j} siten, että f (x ) < f (x). Jonon x (k) määrittelyn nojalla f (x (k) ) + ǫ (k) B(x (k) ) f (x) + lim k e(k) B(x (k) ) f (x ) + ǫ (k) B(x ), k f (x ) < f (x). Siis: lim k ǫ (k) B(x (k) ) < 0. Toisaalta x S ja siten lim k ǫ (k) B(x (k) ) 0 l. ristiriita.
Lagrangen kertojat KKT-ehdot: On olemassa yksikäsitteisesti luvut µ i 0, i = 1,...,m siten, että f (x) + m µ i g i (x) = 0, µ i g i (x) = 0, i = 1,...,m i=1 Estefunktio-ongelma: min {g(x)<0} {f (x) + ǫ m i=1 Φ(g j(x))} Esteongelman ratkaisu x(ǫ) toteuttaa optimaalisuusehdon: f (x(ǫ)) + m ǫφ (g i (x(ǫ))) g i (x(ǫ)) = 0. i=1 Kun ǫ 0 +, niin x(ǫ) x ja ǫφ (g i (x(ǫ))) 0, g i (x) < 0 ǫφ (g i (x(ǫ))) µ i, g i (x) = 0
LP-ongelma ja logaritminen estefunktio LP-ongelma: min {Ax=b, x 0} c T x Estefunktio-ongelma: min F ǫ(x) = c T x ǫ x S n ln(x i ) x(ǫ), i=1 missä S = {x Ax = b, x > 0} ja rajoitettu. Kun ǫ 0, x(ǫ) seuraa keskuspolkua. Kaikki keskuspolut alkavat analyyttisestä keskuksesta n x : min ln(x i ) x S i=1 ja päättyvät optimaaliseen pisteeseen.
Polun seuranta Newtonin menetelmällä Lagrange n funktio: c T x ǫ n i= ln(x i) v T [Ax b] KKT-ehdot estefunktio-ongelmalle: Etsi x R n, v R m siten, että c ǫdiag(x) 1 e A T v = 0 Ax = b, (x > 0), missä e = [1, 1,, 1] T R n, X = diag(x). Tai muodossa Ax = b A T v + u = c u = ǫx 1 e tai XUe = ǫe.
Path following-algoritmi Jokaisella ǫ > 0 esteongelmalla yksikäsitteinen ratkaisu x(ǫ) > 0 on olemassa yksikäsitteisesti u(ǫ) = ǫx(ǫ) 1 e ja v(ǫ) w(ǫ) = (x(ǫ),u(ǫ),v(ǫ)) w = (x,µ,v), joka on primaali-duaaliongelman ratkaisu. Dualiteettikuilu: c T x b t v = u T x = nǫ, sillä c T x b T v = c T x (Ax) T v = x T c x T A T v x T (c A T v) = x T u = x T (ǫx 1 e) = nǫ 0 Algoritmin idea: Aloitetaan arvolla ǫ > 0 ja vektorilla ~w lähellä vektoria w(ǫ). Päivitetään ǫ βǫ, 0 < β < 1, ja päivitetään ~w yhdellä Newton-askeleella
Path following-algoritmin suppeneminen w on riittävän lähellä vektoria w(ǫ), kun Ax = b, A T v + u = c, XUe ǫe θǫ, (1) missä 0 θ < 0.5 ja u t x = nǫ. Tällä tavalla muodostettu jono suppenee kohti optimaalista primaali-duaaliratkaisua. Olkoon ǫ > 0, ~w = ( x,ũ,ṽ) annettu siten, että (1) on voimassa. Päivitys ǫ βǫ. Tutkitaan KKT-ehtoja H(w) = 0 uudelle parametrin arvolle ǫ. Ensimmäisen kertaluvun approksimaatio KKT-ehdoille H( w) + J( w)(w w) = 0, missä J( w) on H:n Jakobiaani, so. derivaatta.
Path following-algoritmi Newtonin askel: J( w)d w = H( w) ŵ = w + d w Korjaustermi d w = (d x,d u,d v ) ratkaistaan yhtälöryhmästä: Ad x = 0 (2) A T d v + d u = 0 (3) Ũd x + Xd u = ǫe XŨe (4) Ratkaisu (pölkkypää-muodossa): d v = [AŨ 1 XA T ] 1 AŨ 1 [ǫi XŨ]e d u = A T d v d x = Ũ 1 [ǫe XŨe Xd u ]
Path following-algoritmin suppeneminen Lause Olkoon w = ( x,ũ,ṽ) siten,että x > 0, ũ > 0 ja (1) on voimassa, kun ǫ > 0. Määritellään ǫ = βǫ, missä β:lle on voimassa β = 1 δ n, 0δ < n, θ 2 + δ 2 2(1 θ) θ(1 δ n ), 0 θ 1 2. Silloin piste ŵ, joka on saatu path following-algoritmilla toteuttaa ehdon (1) ja ˆx,û > 0, kun ǫ = ǫ. Näin ollen aloittamalla iteraatiot ehdon (1) toteuttavasta pisteestä generoidaan jono (ǫ k,w k ) siten, että jonon kasautumispiste ( raja-arvo) on LP-ongelman ratkaisu (primaali-duaali-ratkaisu). Algoritmin kompleksisuus: Polynomiaalinen. Toimii myös kvadraattisille ja konvekseille ongelmille.
Sakkofunktiomenetelmä Rajoitettu optimointiongelma: min g(x) 0 h(x) = 0 f (x) Sakkofunktio α(x) = m l Φ(g i (x)) + Ψ(h j (x)). i=1 j=1 Oletukset: Φ (y) 0 Ψ(0) = 0 Φ(y) = 0, y 0, Ψ(y) > 0, y 0 Φ(y) > 0, y > 0 Ψ (y) jatkuva
Sakkofunktio-ongelma Tavallisesti Φ(y) = max{0,y 2 }, Ψ(y) = y 2 Sakkofunktio-ongelma: θ(µ) = min f (x) + µα(x). x Rn Sakkofunktio-ongelmassa ratkaistaan Voidaan osoittaa, että max θ(µ). µ 0 inf{f (x) : g(x) 0, h(x) = 0} = lim µ θ(µ).