¾ º Ð ÔÓÒØÓ Ð ÓÖ ØÑÙ Ó A lineáris programozás napjainkban is számos területen a legjobb modellezési eszközt biztosítja. Gazdasági, ipari, logisztikai és tudományos kérdések sokaságát lehet pontosan (vagy közelítőleg) lineáris egyenletekkel és egyenlőtlenségekkel modellezni. A lineáris programozás hosszú múltra tekint vissza. Az egyik alapvető és napjainkban legtöbbször hivatkozott eredménye Farkas Gyula 1894-ben közölt lemmája. Farkas Gyula dolgozata a Fourier-féle mechanikai elv alkalmazásairól szólt. A lineáris programozás fejlődése során később is előfordult, hogy gyakorlati feladatok megoldása késztette a kutatókat újabb és újabb algoritmusok bevezetésére, illetve elméleti eredmények igazolására. Dantzig első lineáris programozással kapcsolatos közleménye csak 1948-ban jelent meg, annak ellenére, hogy a szimplex algoritmust már 1947-ben megfogalmazta és gyakorlati feladatok megoldására is kipróbálták. Egyes tudósok visszaemlékezései alapján tudjuk, hogy mind a brit, mind pedig az amerikai hadseregben használtak operációkutatási (lineáris programozási) módszereket a II. világháború alatt szállítási, logisztikai és más hasonló feladatok megoldására. Hacsián 1 1979-ben publikálta az ún. ellipszoid módszerét, amely akkoriban az elméletileg leghatékonyabb (polinomiális) módszer volt. Gyakorlati hatékonysága a szimplex algoritmusétól messze elmaradt. Karmarkar 1984-ben közölte projektív skálázású primál algoritmusát, amellyel elindította a belsőpontos algoritmusok fejlődésének az évtizedét. Számos, az 50-es és 60-as években bevezetett és akkoriban a gyakorlat szempontjából használhatatlan, lineáris programozási algoritmust (logaritmikus barrier módszer, affin skálázású algoritmus) fedeztek fel újra és tökéletesítettek. A 90-es évek közepére, a kor számítástechnikai lehetőségeit maximálisan kihasználva, a belsőpontos algoritmusok hatékony és numerikusan stabil számítógépes megvalósításait fejlesztették ki, amelyek napjaink optimalizálási szoftvereinek (CPLEX, XPRESS-MP stb.) nélkülözhetetlen részét képezik. Ebben a fejezetben az a célunk, hogy megfogalmazzuk a lineáris programozás néhány primál-duál belsőpontos algoritmusát és elemezzük azok elméleti hatékonyságát. Ezt megelőzően röviden összefoglaljuk az ehhez szükséges lineáris programozási ismereteket. A fejezetben bemutatásra kerülő ismeretek megértéséhez elemi lineáris algebrai és analízisbeli ismeretekre lesz szükség. Természetesen az algoritmusok egy olyan variánsát is ismertetjük (nagy lépéses primál-duál logaritmikus barrier módszer), amelyet leggyakrabban implementáltak az elmúlt években. 1 Hacsián nevének többféle írásmódjával találkozhatunk a szakirodalomban. A fejezetben a magyar megfelelőjét használjuk, ám az irodalomjegyzékben a Khacijan átírással találkozik az Olvasó, mivel az angol szakirodalomban ez az elfogadott.
¾ ¼¾ 25. Belsőpontos algoritmusok A fejezet olvasásához a következő útmutatást nyújtjuk. Feltételezzük, hogy az Olvasó egyetemi szintű ismeretekkel rendelkezik lineáris algebrából és valós analízisből. A konkrét belsőpontos algoritmusokról szóló és a megvalósítást segítő megjegyzéseket tartalmazó 25.3.1.-25.3.4. pontok önmagukban is érthető egységet alkotnak. Így azon olvasók, akik a belsőpontos algoritmusok egy hatékonyan implementálható változatának megismerését szeretnék a lehető leggyorsabban elérni, azok ezen alfejezetek olvasására szorítkozhatnak. Akik szeretnének az elméleti alapokkal is, a dualitás elmélettel és a centrális út elméletével megismerkedni, a 25.1. alfejezet alapján betekintést kapnak ebbe. Azon olvasók, akik a belsőpontos algoritmusok egy egyszerű változatát, teljes lépésszám elemzéssel, az algoritmusok lépésszámára adott elméleti felső korlát levezetésével kívánnak megismerkedni, valamint a kerekítési eljárás iránt érdeklődőknek, ami leírja, hogy közelítő megoldásból miként kaphatunk pontos optimális megoldást, azoknak a Dikin-algoritmussal foglalkozó 25.2. alfejezetet ajánljuk. Végül az utolsó, 25.3.5. pont napjaink egyik fő kutatási irányát ismerteti. ¾ º½º Ð Ò Ö ÔÖÓ Ö ÑÓÞ Ð ÔÚ Ø Ø Ø Ð Ebben a részben megfogalmazzuk az általános primál- és duál lineáris programozási feladatot, és a gyenge, illetve az erős dualitás tételeket bizonyítjuk. Ezután a Goldman Tucker modellt és a speciális önduális lineáris programozási feladatot vezetjük be, majd a centrális út legfontosabb tulajdonságait tárgyaljuk. A Goldman Tucker és a Sonnevend-tétel bizonyítása után kitérünk a lineáris programozási feladatokhoz tartozó Newton-rendszer megoldására is. Ezekkel az eredményekkel építjük fel a belsőpontos algoritmusok elméletét. Végezetül a több mint 100 éves Farkas-lemmára a Goldman Tucker modell felhasználásával adunk elemi bizonyítást. Gyenge dualitás tétel Az általános primál (P) és duál (D) lineáris programozási feladatot az alábbi kanonikus alakban tekintjük: (P) min { c T x : Ax b, x 0 }, (D) max { b T y : A T y c, y 0 }, ahol A R m k mátrix, b, y R m és c, x R k. Legyen a primál, illetve a duál megengedett megoldások halmaza rendre P={x R k : Ax b} és D={y R m : A T y c}, aholr k a nemnegatív k-dimenziós vektorok halmazát, míg a későbbiekben előfordulórk + a pozitív k-dimenziós vektorok halmazát jelöli. Továbbá a primál, illetve a duál optimális megoldások halmazát a következőképpen jelöljük: és P ={x P : c T x c T x, x P} D ={y D : b T y b T y, y D}. A gyenge dualitás tétel egyszerűen bizonyítható a kanonikus lineáris programozási feladatra.
25.1. A lineáris programozás alapvető tételei ¾ ¼ 25.1. tétel (gyenge dualitás tétel). Tegyük fel, hogy x R k és y R m a primál (P) és duál (D) feladatok megengedett megoldásai. Ekkor c T x b T y, ahol egyenlőség akkor és csak akkor áll fenn, ha (i) x i (c A T y) i = 0 minden i=1,...,k és (ii) y j (Ax b) j = 0 minden j=1,...,m. Bizonyítás. Az x és y vektorok primál és duál megengedettségét használva kapjuk, hogy (c A T y) T x 0 és y T (Ax b) 0, ahol egyenlőség akkor és csak akkor áll fenn, ha (i) és (ii) teljesül (lásd 25.1-1. gyakorlat). Ezen két egyenlőtlenséget összeadva a kívánt 0 (c A T y) T x+y T (Ax b)=c T x b T y egyenlőtlenséget kapjuk. Tételünket bebizonyítottuk. Az (i) és (ii) feltételeket komplementaritási feltételeknek nevezzük. Tehát a gyenge dualitás tétel szerint, komplementaritás és megengedettség a megoldások optimalitását garantálja. Vektorok koordinátánkénti (Hadamard) szorzatát 2 bevezetve, ahol uv szorzat u, v R n esetén azt az n-dimenziós vektort jelöli, melynek koordinátái az u i i, i = 1,...,n értékek, a komplementaritási feltétel x(c A T y)=0 és y(ax b)=0 alakban is írható. A továbbiakban a c T x b T y különbség értékét x P, y D esetén dualitásrésnek nevezzük. Könnyen bizonyítható az alábbi elégséges optimalitási feltétel (lásd 25.1-2. gyakorlat). 25.2. következmény (gyenge egyensúlyi tétel). Legyenek x R k és y R m olyan primál és duál megengedett megoldások, amelyekre a dualitásrés nulla, azaz c T x=b T y. Ekkor x a (P) primál feladat egy optimális megoldása és y a (D) duál feladat egy optimális megoldása. Goldman Tucker modell Célunk a lineáris programozási feladat olyan megoldásainak előállítása, melyekre a dualitásrés nulla, így azt az egyenlőtlenségrendszert kell megoldanunk, amely a primál és a duál feltételekből áll, valamint előírjuk, hogy a duál célfüggvény értéke legalább akkora legyen, mint a primál célfüggvény értéke (b T y c T x). Ekkor ugyanis a gyenge dualitás tétel miatt ezen rendszer minden megengedett megoldása primál és duál megengedett megoldást ad, amelyre a célfüggvényértékek szükségképpen egyenlők, így a 25.2. következmény szerint optimális megoldások. A szükséges eltérésváltozók (t, s, ζ) bevezetésével az alábbi egyenlőtlenségrendszerre 2 Hasonlóan, koordinátánkénti műveletként definiáljuk a vektorok hányadosát és tetszőleges hatványát is.
¾ ¼ 25. Belsőpontos algoritmusok jutunk: Ax t = b, x 0, t 0, A T y+s = c, y 0, s 0, b T y c T x ζ = 0, ζ 0. Homogenizálva az egyenleteket a Goldman Tucker feladatot kapjuk: Ax ξb t = 0, x 0, t 0, A T y +ξc s = 0, y 0, s 0, b T y c T x ζ = 0, ξ 0, ζ 0 (GT). A triviális, azonosan nulla megoldás kielégíti ezt a homogén rendszert, de ez a céljaink szempontjából érdektelen. A Goldman Tucker rendszer bizonyos nemtriviális, speciális megoldását szeretnénk előállítani, és ennek segítségével nyerjük a (P) és (D) feladatok optimális megoldásait, illetve következtetünk a (P) és (D) feladatok megoldhatóságára az alábbi tétel alapján. 25.3. tétel. Adott egy primál (P) és duál (D) lineáris programozási feladatpár. Az alábbi állítások igazak: 1. A (P) és (D) feladatok tetszőleges (x, y) optimális megoldás párja, melyre a dualitásrés nulla, a megfelelő Goldman Tucker rendszer egy megoldását adjaξ = 1 ésζ = 0 választással. 2. Ha (y, x,ξ, t, s,ζ) a Goldman Tucker rendszer egy megoldása, akkor vagyξ=0 vagy ζ= 0, azazξζ> 0 nem teljesülhet. 3. Ha a Goldman Tucker rendszer egy (y, x,ξ, t, s,ζ) megoldásáraξ>0 ésζ= 0, akkor a ( x ξ, y ξ ) vektor a primál (P) és a duál (D) feladatok egy optimális megoldás párja. 4. Ha a Goldman Tucker rendszernek van olyan (ȳ, x, ξ, t, s, ζ) megoldása, amelyre ξ=0 és ζ> 0, akkor megállapíthatjuk, hogy vagy a (P), vagy a (D) feladat, vagy mindkettő nem megengedett. Bizonyítás. Az első és a harmadik állítás behelyettesítéssel könnyen ellenőrizhető (lásd 25.1-3. gyakorlat). A második állítást indirekt módon bizonyítjuk. Haξζ pozitív lenne, akkor 0<ξζ=ξb T y ξc T x=x T Ay t T y x T A T y s T x= t T y s T x 0 egyenlőtlenséget kapnánk, ami nyilvánvaló ellentmondás. Az utolsó állítás igazolásánál a ξ=0 feltételből következik, hogy A x 0 és A T ȳ 0. Továbbá, ha ζ> 0, akkor vagy b T ȳ>0, vagy c T x<0, vagy mindkettő fennáll. Ha b T ȳ>0, akkor feltételezve, hogy a (P) feladatnak van egy x 0 megoldása a 0<b T ȳ x T A T ȳ 0 ellentmondáshoz jutunk. Tehát ha b T ȳ>0, akkor (P) nem megengedett. Hasonlóan, ha c T x<0, akkor a duál feladat nem megengedettségét kapjuk (lásd 25.1-4. gyakorlat).
25.1. A lineáris programozás alapvető tételei ¾ ¼ ahol Vegyük észre, hogy a Goldman Tucker rendszer az alábbi kompakt alakban írható: u= y x ξ Mu 0, u 0, z= M u, (25.1), z= t s ζ és M= 0 A b A T 0 c b T c T 0 egy ferdén szimmetrikus mátrix (M T = M, lásd 25.1-5. gyakorlat), azaz tetszőleges (P) és (D) feladatpárhoz tartozó Goldman Tucker rendszer felírható, mint egy speciális struktúrájú, kanonikus lineáris programozási feladat, azaz (SP) min { 0 T u : Mu 0, u 0 }. ¾ º½º½º Ö Ò Þ ÑÑ ØÖ Ù Ò Ù Ð Ð Ø Ð ÔØÙÐ ÓÒ Az (SP) feladatnál tekintsünk egy kicsit általánosabb feladatot. Ez az (SP) feladattól abban különbözik, hogy nem homogén, azaz a jobboldala nem feltétlenül a nulla vektor, és célfüggvény együttható vektora a jobboldali vektor negatívja. A következő (speciális) lineáris programozási feladattal (önduális feladat) foglalkozunk a továbbiakban min q T u Mu q u 0 (SP), ahol M R n n ferdén szimmetrikus mátrix és q R n vektor. Jelölje F={u R n : Mu q} az (SP) feladat megengedett megoldásainak halmazát. Felhasználva, hogy az M mátrix ferdén szimmetrikus és, hogy a jobb oldalon álló vektor ( q) a célfüggvényvektor negatívja, az olvasó könnyen ellenőrizheti, hogy (SP) duálja ekvivalens az (SP) feladattal, azaz az (SP) önduális feladat (lásd 25.1-6. feladat). Az önduális tulajdonság miatt a következő eredmény triviális (lásd 25.1-7. feladat). 25.4. lemma. Az (SP) feladat optimum értéke nulla, továbbá az azonosan nulla vektor, u= 0, megengedett és egyben optimális megoldása az (SP) feladatnak. Ha u megoldása az (SP) feladatnak, és z(u)= Mu+q az u vektorhoz tartozó eltérésvektor, akkor M ferdén szimmetrikussága miatt u T Mu=0, így q T u=u T (z(u) Mu)=u T z(u)=e T (u z(u)), ahol e R n a csupa egyes vektor. A fenti egyenlőség miatt tetszőleges optimális megoldásra e T (u z(u))=0, azaz u z(u)=0, amiből az is következik, hogy az u és z(u) vektorok komplementárisak. Jelölje F ={u F : q T u q T u, u F} ={u F : q T u = 0}={u F : u z(u )=0}
¾ ¼ 25. Belsőpontos algoritmusok az (SP) feladat optimális megoldásainak a halmazát. Adott u F esetén az u T z(u)=q T u értéket dualitásrésnek nevezzük. 3 AzF halmaz definíciója alapján világos, hogy optimális megoldás esetén a dualitásrés nulla. Az optimális megoldások egy, a továbbiakban gyakran használt tulajdonságát fogalmazzuk meg az alábbi lemmában. 25.5. lemma. Legyen u és û az (SP) feladat megengedett megoldása. Az u és û vektorok akkor és csak akkor optimálisak, ha u z(û)=û z(u)=u z(u)=û z(û)=0. Bizonyítás. Mivel M ferdén szimmetrikus, így (u û) T M(u û)=0, amiből következik, hogy (u û) T (z(u) z(û))=0. Ekkor u T z(û)+û T z(u)=u T z(u)+û T z(û) és ez akkor és csak akkor nulla, ha u és û is optimális, de ekkor u T z(û)+û T z(u)=0. (25.2) Figyelembe véve az u, û F feltételt u T z(û) 0 és û T z(u) 0 teljesül, amelyből, az (25.2) összefüggés alapján u T z(û)=e T (u z(û))=0 és û T z(u)=e T (û z(u))=0 következik. Tehát u z(û) = û z(u) = 0 adódik. Megállapíthatjuk, hogy az optimális megoldások általános értelemben is komplementárisak, azaz nem csak saját eltérésvektorukkal, hanem bármelyik más optimális megoldás eltérésvektorával is komplementáris párt alkotnak. Az (SP) feladat optimalitási kritériumát a következő alakban is megadhatjuk Mu+z=q u 0, z 0 u z=0 (SP OPT ). Az összes eddigi eredmény, egy triviális optimális megoldás létezését is beleértve, szinte magától értetődő volt az (SP) feladatra. Ebből talán arra következtethetnénk, hogy az (SP) feladat érdektelen, nagyon speciális esete a lineáris programozási feladatoknak. Tekintettel arra, hogy az (SP) feladatnak a homogén változatát a kanonikus primál- és duál feladatokból vezettük le, fel sem merül annak a lehetősége, hogy egy érdektelen feladattal foglalkoznánk. Az első felvetődő kérdés az, hogy létezik-e a triviálison kívül másmilyen optimális megoldása a feladatnak, és hogyan tudjuk azt előállítani. Ennek a kérdésnek a megválaszolása elvezet az optimális megoldások bizonyos komplementaritási tulajdonságainak kérdéséhez, azaz a lineáris programozás elméletének egyik alapvető jelentőségű tételéhez, a Goldman Tucker-tételhez. Szükségünk lesz a következő definícióra. 3 Tesszük ezt annak ellenére, hogy az önduális feladat esetén az u T z(u)=q T u nyilván csak a fele a klasszikus értelemben vett dualitásrésnek (lásd 2403. o.).
25.1. A lineáris programozás alapvető tételei ¾ ¼ 25.6. definíció. Legyen u F. Az u és z(u) vektorokat szigorúan komplementárisnak nevezzük, ha u+z(u)>0 feltétel teljesül. Az u és z(u) vektorok szigorú komplementaritásának egyszerű következménye az, hogy minden i=1, 2,...,n index esetén az u i = 0 és z i (u)=0 feltételek közül pontosan az egyik teljesül. A 25.3. tétel 3. és 4. állításai bizonyítják, hogy amennyiben az (SP) feladat a (GT) rendszer alapján egy lineáris programozási feladatpárból származik, bármely szigorúan komplementáris megoldása vagy egy optimális megoldás párt ad az eredeti (P) és (D) lineáris programozási feladatokra, vagy azok valamelyikének nem-megoldhatóságát bizonyítja. Az (SP) feladat egy szigorúan komplementáris megoldásának az előállítása a lineáris programozás belsőpontos módszereinek a bevezetését igényeli. Vezessük be a belsőpontos megoldások halmazát F 0 ={u F : (u, z(u))>0}. Ekkor az ún. belső pont feltételt az alábbi módon fogalmazhatjuk meg: F 0, amelyet másként úgy is kimondhatunk, hogy létezik olyan ū F vektor, amelyre (ū, z(ū))>0 teljesül. (A 25.1-11. gyakorlat ad példát olyan lineáris programozási feladatra, amelyikből elkészített Goldman Tucker feladatnak van belső pontja.) Newton-lépés és tulajdonságai Legyen adott (u, z)>0, melyre z= M u+q. Adott w R n, w>0 vektor esetén szeretnénk 4 olyan ( u, z) elmozdulás vektort ("lépést") meghatározni, melyre M (u+ u)+q (u+ u) (z+ z) = z+ z, = w egyenletrendszer teljesül. Ez egy nemlineáris egyenletrendszer, így direkt megoldása nem lehetséges. Átrendezve a ( u, z) ismeretlenekre vonatkozóan a M u z = 0, u z+z u+ u z = w u z egyenletrendszert kapjuk, amely még mindig nemlineáris. A másodrendű u z tag elhagyásával az M u z = 0, (25.3) Z u+u z = w u z 4 Célunk a Mū+ z = q ū z = 0 rendszer megoldása, ahol a megoldást ū=u+ u és ū=u+ u alakban keressük.
¾ ¼ 25. Belsőpontos algoritmusok lineáris egyenletrendszer adódik, ahol U = diag(u) és Z = diag(z) pozitív diagonális mátrixok. A (25.3) egyenletrendszert Newton-rendszernek 5 nevezzük, amelynek az együtthatómátrixa ( ) M I M= R Z U 2n 2n (25.4) alakú. A z= M u behelyettesítése után a Newton rendszer (Z+ U M) u=w u z (25.5) alakra egyszerűsödik, amelyet normál egyenletrendszernek nevezünk. 25.7. állítás. Legyenek az U, Z, I, M R n n mátrixok. Az U és Z pozitív diagonális, az I egység, míg az M ferdén szimmetrikus mátrix. Ekkor a (25.4) összefüggéssel definiált M és a Z + U M mátrix reguláris, tehát a (25.5) lineáris egyenletrendszernek létezik egyértelmű megoldása. A bizonyítás lineáris algebrai gondolatmenetet használ, és az Olvasóra bízzuk (lásd 25.1-12., illetve 25.1-13. gyakorlat). A u és z elmozdulás vektorokat Newton-irányoknak nevezzük, és az alábbi formában 6 adhatók meg: u = (Z+ U M) 1 (w u z)=(u 1 Z+M) 1 (U 1 w z) és z = M(U 1 Z+M) 1 (U 1 w z)= M u. (25.6) A lépéshossz követelménye, hogy az új pontunkra is teljesüljön az előjel feltétel. Miután a Newton-irányban egy α lépéshosszú lépést teszünk, az új (u(α), z(α)) = (u+α u, z+α z) megoldásra a következő kifejezést kapjuk: u(α) z(α)=(u+α u)(z+α z)=u z+α (u z+z u)+α 2 u z = u z+α (w u z)+α 2 u z. Ez az összefüggés világossá teszi, hogy az u z vektor lokális megváltozását a w u z vektor határozza meg. Szerencsére ezt a vektort explicit ismerjük, amikor a Newton-lépést alkalmazzuk. Így ha α elegendően kicsi, akkor pontosan tudjuk, hogy u z mely koordinátái csökkennek lokálisan (pontosan azok, amelyekre a w u z vektor megfelelő koordinátái negatívak), és u z mely koordinátái növekednek lokálisan (pontosan azok, amelyekre a w u z vektor megfelelő koordinátái pozitívak). A 25.7. állítást illusztrálja a 25.1-11. gyakorlat. Ebben a feladatban a Newtonirányok kiszámítására, azαlépéshossz előállítására és a megengedett pozitív u +, illetve z + meghatározására láthatunk példát. Ezeket az észrevételeket fejezi ki pontosabban a következő állítás is. 25.8. állítás. Legyen az M ferdén szimmetrikus mátrix, és u F 0, azaz (u, z(u)) > 0. 5 Ez a rendszer a numerikus analízisből és a többdimenziós nemlineáris egyenletrendszerek megoldásához is használt jól ismert Newton-módszer megfelelője. 6 A Newton-irányok meghatározásánál a numerikus szempontokból hatékonyabb, ha a (25.5) lineáris egyenletrendszer egyértelmű megoldásaként határozzuk meg a u vektort.
25.1. A lineáris programozás alapvető tételei ¾ ¼ Legyen továbbá, ŵ R n, ŵ>0és w=u z(u). Definiáljuk a T (ŵ, w)={ u R n : ŵ i u i w i vagy w i u i ŵ i, i} tégla halmazt. Ha intt(ŵ, w), akkor a ŵ vektorra kiszámított ( u, z) Newton-irányra létezik olyanα (0, 1) lépéshossz, hogy az u + = u+α u, z + = z+α z, w + = u + z +, vektorokra a w + intt(ŵ, w), valamint u + F 0 teljesül. Az előző állítás bizonyításának a legfontosabb részeit két feladatra bontjuk (lásd 25.1-14. gyakorlat), amelyek megoldását az Olvasóra bízzuk. Az (SP) feladat szinthalmazai és tulajdonságaik Vezessük be először a következő szinthalmazt L K ={u F : u T z(u) K}={u F : q T u K}, és bármely w R n + vektor esetén az alábbi általánosított szinthalmazt L w ={(u, z) R 2n : z= Mu+q és u z w}. 25.9. lemma. Legyen adott az (SP) feladat és tegyük fel, hogyf 0. Ekkor bármely K R, K> 0 szám esetén azl K szinthalmaz korlátos és zárt, azaz kompakt. Az előző lemma bizonyítását (lásd 25.1-16. gyakorlat) az Olvasóra bízzuk. A 25.9. lemmához hasonló eredmények igazak azl w szinthalmazokra is. A szinthalmaz definíciójában szereplő nemlineáris kifejezés miatt kicsit bonyolultabb a zártság bizonyítása (lásd 25.1-17. gyakorlat). 25.10. lemma. Legyen adott az (SP) feladat és tegyük fel, hogyf 0. Ekkor bármely w R n +, vektor esetén azl w szinthalmaz korlátos és zárt, azaz kompakt. A szinthalmazokkal kapcsolatos lemmákra a következő állítás bizonyításakor lesz szükségünk. Ebben a lemmában azt vizsgáljuk, hogy milyen halmazt alkotnak azok a w R n vektorok, amelyek előállnak az (SP) feladat valamely megengedett megoldásának és a hozzátartozó eltérésváltozónak a szorzataként. 25.11. lemma. Legyen adott az (SP) feladat és tegyük fel, hogyf 0. Definiáljuk a következő halmazt Ekkor aghalmaz nem üres és zárt. G={w R n : u F, amelyre u z(u)=w}. A lemma bizonyítását (lásd 25.1-18. gyakorlat) az Olvasóra bízzuk. Az előző eredmény segítségével belátjuk, hogy belső pont létezése mellett minden w>0 esetén azl w szinthalmaz nem üres.
¾ ½¼ 25. Belsőpontos algoritmusok 25.12. tétel. Legyen adott az (SP) feladat, és tegyük fel, hogyf 0. Ekkor bármely w R n + vektor esetén azl w szinthalmaz nem üres. Bizonyítás. Az 25.10 lemmában már igazoltuk, hogy azl w halmaz kompakt. Indirekt módon tegyük fel, hogy létezik egy ŵ R n + vektor, amelyrelŵ=. AzF 0 feltevés miatt létezik egy ū F 0 vektor és egy w=ū z>0, ahol z= M ū+q>0vektor, amelyek esetén azl w szinthalmaz nem üres és kompakt. Legyen w > w és w > ŵ. Ekkor aza={w R n : et w e T w } nem üres és kompakt halmaz. Továbbá aza G halmaz sem üres és kompakt. Definiáljuk az f :A G R n függvényt a következő kifejezéssel { f i (w)= 0, ha w i ŵ i, w i ŵ i különben. A 25.1-19. gyakorlat szerint f felveszi a minimumát, azaz létezik γ= f ( w) = min w A G f (w) f ( w). Mivel azlŵ= (indirekt feltevés), ezértγ= f ( w) > 0. Ha intt( w, ŵ), akkor létezikα (0, 1), amelyre u + = ū+α u és z + = z+α z olyan vektorok, amelyekre w + = u + z + intt( w, ŵ), azaz ami ellentmond a Weierstrass tételének. f (w + ) < f ( w) =γ, Ha intt( w, ŵ)=, akkor legyen w B γ/3 (ŵ) intt(0, ŵ) vektor 7, amely esetén intt( w, w ) és megismételhetjük az előző gondolatmenetet. ¾ º½º¾º ÒØÖ Ð Ø Az (SP) feladat optimalitási kritériumának a relaxáltja a Mu+z=q u 0, z 0 u z=µe (CP), az úgynevezett centrális út feladat. Belátjuk, hogy adott µ > 0 paraméter esetén a (CP) feladatnak egyértelmű megoldása van. Ezt a megoldást µ-centrumnak nevezzük, amelyet az (u(µ), z(µ)) vektorral jelölünk. 25.13. definíció. A C={(u(µ), z(u(µ))) : u(µ) F 0, u(µ)z(µ)=µe, valamelyµ R + paraméterre} halmazt az (SP) feladat centrális útjának nevezzük.
25.1. A lineáris programozás alapvető tételei ¾ ½½ 25.1. ábra. Centrális út a primál változók terében. A centrális út tehát a µ-centrumok által alkotott görbe (lásd 25.1. ábra). Bizonyítható, hogy belső pont létezése esetén a centrális út létezik és egyértelmű, sőt a centrális út egy környezete is egyértelmű. Ennél többet bizonyítunk be a következő tételben, mégpedig a fenti állítások ekvivalenciáját. 25.14. tétel. Legyen adott az (SP) feladat és tegyük fel, hogyf. Ekkor a következő állítások ekvivalensek: 1. F 0 ; 2. w R n + esetén! (u, z)>0 : Mu+q=z és u z=w; 3. µ>0esetén! (u, z)>0 : Mu+q=z és u z=µe. Bizonyítás. A 3. állítás a 2. speciális esete, továbbá a 3. állításból következik az 1., ugyanis u(µ)z(µ)=µe esetén u(µ) F 0. Az 1. 2. implikációt indirekt bizonyítjuk. Tegyük fel, hogy ŵ R n + úgy, hogy û F 0 és ẑ= Mû+q, amire teljesülne ŵ=û ẑ. Mivel fennáll a belső pont feltétel, a 25.12. tétel és a 25.10. lemma miattlŵ és kompakt. Legyen f :Lŵ R + függvény, f (u, z)=u T z. Az indirekt feltevésünk miatt f (u, z)= u T z < e T ŵ minden (u, z) Lŵ. Az f folytonos függvény, így Weierstrass tétele miatt felveszi a maximumát azlŵ kompakt halmazon, azaz e T w=u T z= f (u, z)= max f (u, z)= max u T z<e T ŵ, (25.7) (u,z) Lŵ (u,z) Lŵ ahol w=uz és w ŵ, de w ŵ az indirekt feltevésünk miatt. Két eset lehetséges: 1. Ha intt(w, ŵ), akkor w + T (w, ŵ) : w<w + < ŵ és w + = u + z +, ahol u + F 0. Így e T w<e T w +, és ez ellentmond a (25.7) egyenlőtlenségnek, hiszen (u +, z + ) Lŵ. 2. Ha intt(w, ŵ)=, akkor legyenδ=e T (ŵ w)>0, és legyen w R n + : ŵ> w>ŵ δ n e. 7 B γ (w)={u R n : u w <γ}, azaz a w közepűγsugarú gömböt jelöli.
¾ ½¾ 25. Belsőpontos algoritmusok Ekkor w választási szabálya miattt (w, w), azaz létezik w + T (w, w) úgy, hogy w + = u + z +, u + = u+α u, z + = z+α z, ahol u + F 0 ésα (0, 1). A továbbiakban megmutatjuk, hogy e T w + > e T w, ami ellentmondás (25.7) miatt. Felhasználva a u, z vektorok ortogonalitását, illetve a z u + u z = w u z egyenlőséget a következőt kapjuk e T (w + w) = u T z+α(z T u+u T z)+α 2 ( u) T z u T z = α(z T u+u T z)=αe T ( w w). (25.8) w definíciója miatt w w>(ŵ w) δ e, így n et ( w w)>e T (ŵ w) δ n et e=δ δ=0. A (25.8) egyenlőséget figyelembe véve e T w + > e T w, amit bizonyítani szerettünk volna, azaz ellentmondásra jutottunk. A fentiekben beláttuk, hogy w R n + esetén (u, z)>0: Mu+q=z, w=u z. Az egyértelműség bizonyítását az Olvasóra bízzuk (lásd 25.1-22. gyakorlat). A következőkben megmutatjuk, hogy a centrális út limesz pontja az (SP) feladat egy optimális, sőt szigorúan komplementáris megoldása. 25.15. tétel. Legyen adott az (SP) feladat, amelyre teljesül a belső pont feltétel. Ekkor létezik (u, z ) az alábbi tulajdonságokkal: 1. (u, z )= lim µ 0 (u(µ), z(µ)); 2. u F ; 3. (u, z ) szigorúan komplementáris megoldás. Bizonyítás. Az 1. és a 2. állítások bizonyítását (lásd 25.1-23. gyakorlat) az Olvasóra bízzuk. Az utolsó állítás bizonyításához vezessük be a következő jelölést. Legyen u R n és jelöljeσ(u)={i : u i > 0} az u vektor tartóját. Felhasználva az M mátrix ferdén szimmetrikusságát 0=(u u(µ)) T (z z(µ))=(u ) T z + u(µ) T z(µ) (u ) T z(µ) (z ) T u(µ) egyenlet adódik. Figyelembe véve a második állítást és az u(µ) i z(µ) i =µ összefüggést µn = (u ) T z(µ)+(z ) T u(µ)= n = i : u i >0 u i (z(µ)) i µ Határátmenettel, amikor µ 0, a + i : z i >0 z i i : u i >0 u i (z(µ)) i+ (u(µ)) i µ = i : u i >0 σ(u ) + σ(z ) =n i : z i >0 z i (u(µ)) i u i (u(µ)) i + i : z i >0 z i (z(µ)) i.
25.1. A lineáris programozás alapvető tételei ¾ ½ egyenletet kapjuk, ami csak úgy teljesülhet, ha az (u, z ) egy szigorúan komplementáris megoldás. Az előző tétel harmadik állítása Goldman és Tucker eredménye, ami a következő formában ismert. 25.16. következmény (Goldman Tucker-tétel belső pont feltevés mellett). Legyen adott az (SP) feladat és tegyük fel, hogyf 0. Ekkor létezik szigorúan komplementáris megoldás. Optimális partíció, analitikus centrum Az alábbiakban a centrális út limesz pontját tanulmányozzuk. Ehhez definiáljuk a vektorok indexhalmazának egy partícióját, melyről a következőkben további tulajdonságokat látunk be. Vezessük be a következő jelöléseket B={i : u i > 0, valamely u F esetén}, N={i : z(u) i > 0, valamely u F esetén}. A fent szereplő (B,N) felbontás azi={1, 2,...,n} indexhalmaz egy partíciója, amit az alábbiakban bizonyítunk be. 25.17. állítás. Legyen adott az (SP) feladat, és tegyük fel, hogy teljesül a belső pont feltétel. EkkorIindexhalmaznak a (B,N) valóban partíciója. Bizonyítás.B N=I, mert a 25.16. következmény miatt létezik (u, z ) szigorúan komplementáris megoldás. A 25.5. lemma miatt pedigb N= is teljesül. Ezt követően már jogos a következő definíció. 25.18. definíció. AzIindexhalmaz (B,N) felbontását optimális partíciónak nevezzük. A centrális út az optimális megoldások halmazának egy speciális pontjához tart, amikor µ tart nullához, ez az úgynevezett analitikus centrum, amit a következőképpen definiálunk 25.19. definíció. Jelölje u F, z=z(u) azon vektorpárt, melyek maximalizálja a u i i B szorzatot azf optimális halmazon. Ekkor az u vektort azf optimális halmaz analitikus centrumának nevezzük. A 25.1-20. gyakorlat szerint belső pont feltevés mellett azf halmaz korlátos, így ekkor létezik az optimális halmaz analitikus centruma. Továbbá létezik szigorúan komplementáris megoldás a 25.16. következmény alapján, így a definícióban szereplő szorzat maximumértéke pozitív, tehát az analitikus centrum egyben szigorúan komplementáris megoldás is. i N z i
¾ ½ 25. Belsőpontos algoritmusok 25.20. tétel (Sonnevend). Legyen a centrális út határpontja (u, z ). Ekkor u azf halmaz analitikus centruma. Bizonyítás. Legyen u F tetszőleges, és z=z(u). A 25.15. tétel bizonyításában leírtakhoz hasonlóan az alábbi összefüggésre jutunk: u i u i B i + z i z i N i = n. Mivel u i > 0 i B és z i > 0 i N, alkalmazhatjuk a számtani-mértani közép közti egyenlőtlenséget: 1 u i n z i 1 u i z i n + = 1. u i B i z i N i u i B i z i N i Így megkapjuk a kívánt egyenlőtlenséget. u i z i u i z i i B i N i B i N ¾ º½º º Ö Ù Ð Ø Ø Ø Ð Az előzőekben az (SP) feladatra belső pont feltétel teljesülése mellett már bizonyítottuk a Goldman Tucker-tételt (25.16. következmény). Célunk általános esetben is belátni a tételt. Vegyük észre, hogy a (25.1) Goldman Tucker modell nem teljesítheti a belső pont feltételt a 25.3. tétel miatt. Ezért szükségünk van a (25.1) homogén feladat beágyazására olyan ekvivalens (SP) feladatba, mely teljesíti a belső pont feltételt. Legyen u 0 = z 0 = e. Ezek a vektorok pozitívak, de általában nem elégítik ki a (25.1) feltételeket. Definiáljuk az r hibavektort r=e Me, és legyen λ=n+1. Ekkor ( )( M r e r T 0 1 ) ( 0 + λ ) ( = Me+r r T e+λ ) ( ) e =. 1 A fenti konstrukció alapján definiáljuk a beágyazási (SP) feladatot a következőképpen: { ( )( ) ( ) ( ) ( ) ( ) } M r u z 0 u z min λϑ : r T = ;, 0. 0 ϑ ν λ ϑ ν Ez a feladat kielégíti a belső pont feltételt, mivel a csupa egyesből álló vektor megengedett megoldást ad. Ez a feladat (SP) alakú, ahol ( ) ( ) ( ) M r u z M= r T, u= és z=. 0 ϑ ν Mivel az (SP) feladat célfüggvénye a ϑ változó egy pozitív többszöröse, így ennek a
25.1. A lineáris programozás alapvető tételei ¾ ½ változónak minden optimális megoldásban a 25.4. lemma miatt nulla az értéke. Tehát az (u, ϑ, z, ν) akkor és csak akkor szigorúan komplementáris megoldása az (SP) feladatnak, ha (u, z) szigorúan komplementáris megoldása a (25.1) Goldman Tucker modellnek. Figyelembe véve, hogy az (SP) feladat kielégíti a belső pont feltételt, a 25.15. tétel miatt létezik szigorúan komplementáris megoldása, ezzel beláttuk a Goldman Tucker-tételt általános esetben is. Az eddigieket összefoglalva: Minden lineáris programozási feladat beágyazható egy az (SP) alakban adott önduális (SP) feladatba oly módon, hogy az (u, z)=(e, 1, e, 1), azaz a csupa egyesből álló vektor az (SP) feladat megengedett megoldása. Továbbá a (25.1) ferdén szimmetrikus feladat bármely erősen komplementáris megoldása vagy az eredeti lineáris programozási feladat egy optimális megoldását adja, vagy bizonyítja, hogy az adott lineáris programozási feladatnak nincs optimális megoldása. A fenti eredmények segítségével könnyen bebizonyítható az úgynevezett erős dualitás tétel. 25.21. tétel (erős dualitás tétel). Legyenek a (P) és a (D) feladatok adottak. Ekkor a következő két alternatíva valamelyike teljesül: 1. P ésd, valamint létezik ( x, ỹ) szigorúan komplementáris megoldás. 2. P = ésd =, ez pontosan akkor fordulhat elő, ha létezik (x, y), melyre Ax 0, A T y 0, c T x b T y. Bizonyítás. A 25.16. következmény miatt a lineáris programozási feladat Goldman Tucker rendszerének van egy erősen komplementáris megoldása. Egy ilyen megoldásban vagyξ> 0, és ebben az esetben a 25.3. tétel 3. pontjából következik, hogy létezik optimális megoldás pár nulla dualitásréssel, vagy ζ > 0 a Goldman Tucker rendszer erősen komplementáris megoldásában. Az utóbbi esetben a 25.3. tétel 4. pontja miatt (P) vagy (D) vagy mindkettő nemmegengedett. A lineáris programozás fontos és alapvető eredménye a több mint 100 éves Farkaslemma, melyre a Goldman Tucker-tétel segítségével most egy újabb bizonyítást adunk. 25.22. lemma (Farkas-lemma). A következő két egyenlőtlenségrendszer közül pontosan az egyiknek van megoldása } A Ax b, T y 0, és b x 0 T y > 0, y 0, ahol A R m n, b R m, x R n, y R m. Bizonyítás. Tekintsük a következő primál és duál lineáris programozási feladatot (P) min { 0 T x : Ax b, x 0 }, (D) max { b T y : A T y 0, y 0 }.
¾ ½ 25. Belsőpontos algoritmusok Elkészíthető a (P) és (D) feladathoz az (SP) ferdén szimmetrikus önduális feladat min 0 T y + 0 T x + 0ξ Ax bξ 0, A T y + 0ξ 0, b T y 0 T x 0, y, x,ξ 0 (SP). Az előző tételek alapján létezik szigorúan komplementáris megoldása, (y, x, ξ). Vezessük be a következő jelöléseket s(y)= A T y, s(x)=ax bξ, s(ξ)=b T y. Ekkor két eset lehetséges: (i)ξ>0, illetve (ii)ξ=0. (i) esetben x 0, s(x) 0, így Ax>bξ, tehát az x/ξ megoldása az első egyenletrendszernek. (ii) esetben mivelξ=0, ezért s(ξ)>0, tehát b T y>0, y 0. Valamint s(y) 0 miatt A T y 0, azaz ebben az esetben az y vektor megoldása a második rendszernek. A két rendszernek nem lehet egyszerre megoldása, ami elemien belátható. Ý ÓÖÐ ØÓ 25.1-1. Legyen x és y primál, illetve duál megengedett megoldás, ekkor a következő két állítás ekvivalens: 1. c T x b T y=(c A T y) T x+y T (A x b)=0, illetve 2. (c A T y) x=0 és y (A x b)=0. 25.1-2. Bizonyítsuk be a gyenge egyensúlyi tételt. 25.1-3. Bizonyítsuk be a 25.3. tétel 1. és 3. állítását. 25.1-4. Legyen A R m k, b R m, c R k adott mátrix, illetve vektorok. Tekintsük a (P) és (D) kanonikus lineáris programozási feladatokat. Tegyük fel, hogy létezik x megengedett megoldása a (P) feladatnak, amelyre az A x 0 és c T x<0 összefüggések is teljesülnek. Ekkor nem létezik y R m megengedett megoldása a (D) feladatnak. 25.1-5. Legyen A R m k, b R m, c R k adott mátrix, illetve vektorok. Bizonyítsuk be, hogy az 0 A b M= A T 0 c, b T c T 0 mátrix ferdén szimmetrikus, azaz M= M T. 25.1-6. Bizonyítsuk be, hogy az (SP) feladat önduális. 25.1-7. Bizonyítsuk be a 25.4. lemmát. 25.1-8. Tekintsük a következő lineáris programozási feladatot min 17 x 1 +13 x 2 +2 x 3 8 x 4 2 x 1 x 2 x 4 4 x 1 + x 3 x 4 3 x 1 +3 x 2 2 x 3 4,
25.1. A lineáris programozás alapvető tételei ¾ ½ ahol x 1, x 2, x 3 0. a. Írjuk fel a primál és duál lineáris programozási feladatot kanonikus alakban. b. Adjuk meg a komplementaritási feltételeket. c. Írjuk fel a Goldman Tucker feladatot. Határozzuk meg az M mátrixot. 25.1-9. Tekintsük a következő lineáris programozási feladatot min x 6 2 x 2 +x 3 + x 4 x 5 = 0 3 x 1 2 x 2 x 3 +2 x 4 15 x 1 +x 3 5 9 x 1 +8 x 2 +x 3 2 x 4 x 6 = 0, ahol x 1, x 2,..., x 5 0 és az x 6 előjelkötetlen változó. a. Írjuk fel a primál és duál lineáris programozási feladatot kanonikus alakban. b. Adjuk meg a komplementaritási feltételeket. c. Írjuk fel a Goldman Tucker feladatot. Határozzuk meg az M mátrixot. 25.1-10. Legyenek a következő adatok egy kanonikus primál feladat adatai c= 9 8 1 2, A= ( 3 2 1 2 1 0 1 0 ) ( ) 15, b=. 5 a. Írjuk fel a kanonikus primál feladatot. b. Keressünk egy pozitív primál megoldást. c. Írjuk fel a duál feladatot és keressünk egy (lehetőleg pozitív) duál megoldást. Útmutatás. Ha nem tudunk duál megengedett megoldást találni, akkor próbáljunk meg olyan primál megengedett megoldást találni, amelyikre A x 0és c T x<0 teljesül. Mit jelent ez? d. Írjuk fel a Goldman Tucker feladatot és keressünk egy pozitív megoldást, mely az első hat feltételt kielégíti. Mit jelent az, ha ilyen nem létezik? Vizsgáljuk meg, hogy teljesüle a hetedik feltétel is? 25.1-11. Legyenek a következő adatok egy kanonikus primál feladat adatai c= 19 10 9 5 2 5, A= 1 10 11 10 3 5 1 3 10 4 5 1 5 0 4 5, b= a. Írjuk fel a kanonikus primál feladatot. b. Keressünk egy pozitív primál megoldást. c. Írjuk fel a duál feladatot és keressünk egy pozitív duál megoldást. d. Mi következik abból, hogy létezik belső pont mind a primál, mind pedig a duál feladat esetén? e. Írjuk fel a Goldman Tucker feladatot és keressünk egy olyan pozitív megoldást, amely kielégíti az első hat feltételt, ám aζ értéke -6 lesz. (Ha a dualitásrést a következő alakban írjuk fel, akkor x T s+y T t=6kell, hogy teljesüljön a megoldására.) 25.1-12. Bizonyítsuk be a 25.7. állítást. Útmutatás. Alkalmazzunk indirekt bizonyítást. Tegyük fel, hogy az M mátrix szinguláris. 25.1-13. Bizonyítsuk be, hogy ha U, Z pozitív diagonális, továbbá M ferdén szimmetrikus 2 5 11 10 2 5.
¾ ½ 25. Belsőpontos algoritmusok mátrix, akkor Z + U M reguláris mátrix. 25.1-14. Tekintsük a 25.8. állítást. a. Határozzuk meg a legnagyobbαlépéshosszt, melyre az x + > 0 és s + > 0 teljesül. b. A w + intt elvárásból, koordinátánként a következő két összefüggés valamelyikét nyerjük w i < w + i < ŵ i vagy ŵ i < w + i < w i. Milyen lépéshossz korlátok számíthatók ki az első, illetve második egyenlőtlenségből? 25.1-15. Tekintsük a 25.1-11. gyakorlatban szereplő lineáris programozási feladatot. a. Írjuk fel a centrális út feladatot arra a megoldásra, amelyikhez tartozó dualitásrés értéke 6 és határozzuk meg aµparaméter értékét. b. Legyenek w T = (1, 1, 1, 1, 1, 1) és ŵ T = (1/2, 1/2, 1/2, 2, 2, 2) adott pontok. Tegyünk egy Newton-lépést a u z=w pontból a ŵ pont felé, azaz számítsuk ki a u és z vektorokat. Legyen az M mátrix a Goldman Tucker feladatnál, az előző adatokkal meghatározott mátrixnak, a 6 6-os bal felső részmátrixa, míg a q T = (b T, c T ). Útmutatás. A számításokat a MATLAB programcsomaggal végezzük, mert úgy gyorsabb. c. Határozzuk meg az α lépéshosszt úgy, hogy az új vektorok a feladat szigorúan pozitív megoldásai legyenek. 25.1-16. Bizonyítsuk be a 25.9. lemmát. Útmutatás. Számoljuk ki az (u ū) T M (u ū) értéket, ahol ū F 0 és (u, z) L K, majd pedig számítsunk ki korlátokat az u j és z j koordinátákra. 25.1-17. Bizonyítsuk be a 25.10. lemmát. Útmutatás. Hasonló az előző gyakorlathoz, de itt vegyük figyelembe azl w általánosított szinthalmaz definícióját és azt is, hogy az f :R 2n + R n +, f (x, s)=x s függvény folytonos. Milyen az f függvény ősképe? 25.1-18. Bizonyítsuk be a 25.11. lemmát. Útmutatás. Azt kell belátni, hogy a G halmaz tartalmazza az összes limeszpontját. 25.1-19. Bizonyítsuk be, hogy a 25.12. tétel bizonyításában szereplő f függvény esetén f felveszi a minimumát aza G halmazon. Útmutatás. Bizonyítsuk, be, hogy f függvény folytonos, majd alkalmazzuk rá a Weierstrass-tételt. 25.1-20. Legyen adott az (SP) feladat és tegyük fel, hogyf 0. Bizonyítsuk be, hogy az F halmaz kompakt. 25.1-21. Legyen M R n n egy ferdén szimmetrikus mátrix. Bizonyítsuk be, hogy bármely z R n \{0} vektor esetén létezik olyan j index, melyre z j 0 és z j (Mz) j 0. Útmutatás. Legegyszerűbb indirekt bizonyítást adni az állításra. 25.1-22. Bizonyítsuk be a 25.14. tétel 2. állításában szereplő (u, z) vektorok egyértelműségét. Útmutatás. Alkalmazzunk indirekt bizonyítást és használjuk fel az előző gyakorlat állítását. 25.1-23. Bizonyítsuk be a 25.15. tétel (1) és (2) állítását. ¾ º¾º Ò¹ Ð Ò Ð Þ Ð ÓÖ ØÑÙ Az előző részben megmutattuk, hogy ha létezik belső pont, akkor a centrális utat követve a ferdén szimmetrikus önduális feladat megoldásához tartunk. Ennek a résznek a célja bizonyítani, hogy ezt a gondolatmenetet követve polinom időben a ferdén szimmetrikus önduális feladat megoldásához tetszőlegesen közeli pontot tudunk előállítani, azaz tetszőleges
25.2. Dikin-féle affin skálázású algoritmus ¾ ½ ε>0 számhoz olyan (u, z) pontpárt, amely a megengedett tartományban van és u T z ε. E célból egy konkrét algoritmust, egy affin skálázású primál-duál módszert ismertetünk, melynek első változatát Dikin, orosz matematikus 1967-ben fogalmazta meg. Ezt követően a (B, N) partíció meghatározásáról ejtünk pár szót, majd ennek segítségével ismertetjük a kerekítési eljárást, azaz azt, hogy a Dikin-módszerrel kapott jó közelítő megoldásból milyen módon lehet egy szigorúan komplementáris megoldást előállítani (a szakirodalomban például az ellipszoid módszer estén is találkozhatunk kerekítési eljárással). Ezzel eloszlatjuk azt a tévhitet, ami a mai napig a köztudatban él, miszerint lineáris optimalizálási feladat pontos megoldása belsőpontos módszerrel polinom időben nem állítható elő. Csökkenési irány meghatározása Tekintsük az (SP) feladatot, és legyen u F 0, z=z(u)>0. Keressük ( u, z) R 2n : M u+ z = 0, u+ u, z+ z 0. Ennél mi többet szeretnénk elérni, mégpedig: u + = u+ u>0 és z + = z+ z>0, valamint, hogy közben csökkenjen a dualitásrés is. Felhasználva, hogy M ferdén szimmetrikus mátrix, az új dualitásrés értéke: q T u + = (u + ) T z + = (u+ u) T (z+ z)=u T z+z T u+u T z+( u) T z= = u T z+z T u+u T z=q T u+z T u+u T z. A dualitásrés csökkenésének a feltétele az, hogy q T u + < q T u, azaz z T u+u T z<0. Ebben az esetben a ( u, z) R 2n vektort csökkenési iránynak nevezzük. Célunk a (lokálisan) legjobb csökkenési irány keresése, ami a következőképpen fogalmazható meg: min{z T u+u T z} M u+ z=0 (IF). u+ u 0, z+ z 0 A fenti iránymeghatározási segédfeladatot szeretnénk megoldani, de ez egy az eredetivel azonos nehézségű lineáris programozási feladat. Nyilvánvaló, hogy egy olyan számítási eljárás, amelynek egy-egy iterációjában az eredeti feladattal ekvivalens segédfeladatot kellene megoldani, nem igazán kecsegtet sikerrel. Régóta köztudott viszont, hogy lineáris függvényt könnyen lehet minimalizálni (zárt) gömb felett (lásd 25.2-1. gyakorlat), hiszen legyen c R n, akkor a min u 1 ct u (25.9) feladat optimális megoldása az u = c/ c. Másfelől egy tetszőleges adott dimenziós, zárt ellipszoid, egy ugyanolyan dimenziós zárt gömbbé transzformálható át (lásd 25.2-2. gyakorlat). Dikin ötlete (1967) : Keressünk egy könnyebben megoldható feladatot, amely dualitásrés csökkenést biztosít. Tegyük ezt úgy, hogy a pozitivitási megkötést relaxáljuk. A közelítést egy (konvex) zárt ellipszoiddal oldjuk meg.
¾ ¾¼ 25. Belsőpontos algoritmusok Legyen u, z>0, és ekkor a Dikin-ellipszoid: { E D (u, z)= (ū, z) R 2n : ū=u+ u, z=z+ z, Legyen F 0 z ={(u, z) R 2n : u F 0, z>0}. } u u + z z 1. EkkorFz E 0 D (u, z), mert (u, z) Fz 0 inte D (u, z). Belátható, hogyfz E 0 D (u, z) egy nem üres kompakt halmaz. Legyen (u+ u, z+ z) Fz 0 E D (u, z), ekkor 1 u u + z z = z u+u z uz = z u+um u uz = = (XS ) 1 (S+ XM) u = S 1 (X 1 S+ M) u. A 25.2-3. és 25.2-4. gyakorlat alapján S 1 (X 1 S+ M) pozitív definit mátrix, ezért az a u konvex kvadratikus függvénye, azaz S 1 (X 1 S+ M) u 2 { u : S 1 (X 1 S+ M) u 1} korlátos konvex nemüres zárt halmaz. Vagyis az (IF) feladat relaxálható a következő módon: } min{z T u+u T M u} S 1 (X 1 (IF). S+ M) u 1 Az (IF) lineáris célfüggvény minimalizálása konvex kompakt nem üres halmaz felett, így a halmaz korlátosságát is figyelembe véve, a Weierstrass-tétel miatt létezik megoldása. Átskálázás Az (IF) feladat helyett tekinthetjük a min{z T u+u T z} M u+ z=0, u u + z z 1 segédfeladatot, amelyik esetén az első feltétel egy homogén lineáris egyenletrendszer, míg a második egy zárt elliptikus henger, amellyel a nemnegativitási feltételeket relaxáltuk. A célunk az, hogy olyan skálázást (koordináta transzformációt) vezessünk be, amely után (SF) lineáris célfüggvényét egy gömbön kell minimalizálnunk. Legyen (SF) µ= ut z n, d= u z, v= uz µ.
25.2. Dikin-féle affin skálázású algoritmus ¾ ¾½ Ekkor uz= µv és d 1 u= µv=dz. Vezessük be a p u és p z vektorokat úgy, hogy p u = d 1 u µ és p z = d z µ. Ekkor u u = d 1 u d 1 u = µpu µv = p u v és z z = d u du = amiből a u u + z z = p u+ p z v összefüggés következik. Bevezetve a p=p u + p z jelölést a illetve a p v = u u + z z, µpz µv = p z v, z u+u z=(zd)(d 1 u)+(ud 1 )(d z)= µv µp u + µv µp z =µvp egyenleteket kapjuk. Tehát az (SF) átskálázott alakja rögzítettµparaméter mellett } minµv T p p v 1. Legyen p=p/v. Ekkor az (SF) a következő alakot ölti: } minµ(v 2 ) T p p 1, ami gömb felett egy lineáris függvény minimalizálása, tehát létezik egyértelmű minimuma: p= v2, és ekkor v 2 v3 p= v 2. A ( u, z) csökkenési irány meghatározása Mivel 0= M u+ z= MD(D 1 u)+ D 1 (D z)= µ(mdp u D 1 p z ), ezért p z = DMDp u, és így a p=p u + p z = (I+DMD)p u. A 25.2-3. gyakorlat szerint I+DMD pozitív definit mátrix, így p u = (I+DMD) 1 p és p z = DMD(I+DMD) 1 p. Figyelembe véve a d 1 u= µp u és d z= µp z összefüggéseket u= µd(i+dmd) 1 p és z= µmd(i+dmd) 1 p adódik. Az így kapott ( u, z) vektort Dikin-iránynak nevezzük. Ezt meglépve a dualitásrés csökkenése: ( µ(v 2 ) T p=µ(v 2 ) T )= µ v2 v2 2 v 2 v 2 = µ v2 = µ uz µ = uz. A u vektorra kapott kifejezésbe behelyettesítve d, p, illetve p képletébe v definícióját, könnyen adódik a következő állítás.
¾ ¾¾ 25. Belsőpontos algoritmusok 25.23. állítás. A fenti jelölésekkel u= µd(i+dmd) 1 p= (S+ XM) 1 u2 z 2 uz teljesül. A 25.23. állítás első egyenlőségét már bizonyítottuk, a másodiknak a bizonyítását, amelyik az eredeti adatokat használja, az Olvasóra bízzuk (lásd 25.2-5. gyakorlat). Az algoritmus során szükségünk van a pontunk pozitivitásának megtartására, melyet a következő centralitási mérték c (u)= max(uz(u)) min(uz(u)) = max(v2 ) min(v 2 ) =δ c(v), u F 0 segítségével teszünk meg, ahol max(v), illetve min(v) a v vektor legnagyobb, illetve legkisebb koordinátáját jelöli. Ekkor c (u) 1 teljesül bármely u F 0, z=z(u)>0 esetén, valamint c (u)=1 pontosan akkor, ha u F 0 : u z(u)=µ e, azaz a minimális centralitási mértékű megoldások a centrális úton vannak. Nevezzünk egy α lépéshosszt megengedettnek, ha az új pontunkra is teljesül a pozitivitási megkötés, azaz u+α u>0, z+α z>0. Mind az algoritmus elméleti elemzése során, mind pedig a gyakorlati számítógépes megvalósításakor két célunk van: az α > 0 lépéshosszt úgy meghatározni, hogy (i) az u + α u>0 és z+α z>0, valamint (ii) a pontunk centralitási mértéke egy adott korlát alatt maradjon, azaz c (u) τteljesüljön 8, valamely adottτ>1szám esetén. Legyenτ>1,τ R és u F, c (u) τ. Továbbá mivel v= u z/µ, ekkor a c (u)= max(v2 ) min(v 2 ) τ max(v2 ) τ min(v 2 ) összefüggésből következik, hogy létezikτ 1,τ 2 > 0 ésτ 2 =ττ 1, amelyekre τ 1 e v 2 τ 2 e. Az eddigieket összefoglalva, az algoritmusunk a következő: Bemenő adatként meg kell adnunk azε > 0 megállási paramétert, aτ 1 környezeti paramétert, azα > 0 lépés paramétert, illetve egy u 0 belső pontot, ami a megadottτ környezeten belül helyezkedik el, azaz u 0 F 0, z(u 0 )>0 és c (u 0 ) τ. DIKIN-FÉLE-AFFIN-SKÁLÁZÁSI-ALGORITMUS 1 u u 0 2 z z(u 0 ) 3 while u T z ε 4 do u (S+ XM) 1 u 2 z 2 / u z 5 számítsuk ki azα>0megengedett lépéshosszt 6 u u+α u 7 z z(u) Az algoritmus egy lépését a 25.2. ábra szemlélteti. 8 A c (u) τ egyenlőtlenség a centrális útnak egy ún.τ-környezetét jelöli ki.
25.2. Dikin-féle affin skálázású algoritmus ¾ ¾ u 2 z 2 µe u 1 z 1 25.2. ábra. A Dikin-algoritmus egy iterációja az átskálázott térben, ahol u 1 z 1 =µ 2 1 és u 2z 2 =µ 2 2. A DIKIN-FÉLE-AFFIN-SKÁLÁZÁSI-ALGOTIRMUS fenti változata kétféleképpen is elemezhető: gyakorlati, illetve elméleti szempontból. A folytonos optimalizálásban gyakran megfigyelt jelenség, hogy az iteratív algoritmusok gyakorlatban megfigyelt lépésszáma messze felülmúlja az elméletileg bizonyítható lépésszámot főleg a hosszú lépéses és nagy környezetes belsőpontos algoritmusok esetén. Az elméleti hatékonyság esetén az ún. legkedvezőtlenebb eset elemzése a cél. Ezzel szemben a gyakorlatban az a cél, hogy minél jobban kihasználjuk a megoldandó feladat összes tulajdonságát, még akkor is, ha az általános elméleti elemzések során nem minden apró részletet tudunk figyelembe venni. ¾ º¾º½º Ò¹ Ð ÓÖ ØÑÙ Ý ÓÖÐ Ø Þ ÑÔÓÒØÓ A DIKIN-FÉLE-AFFIN-SKÁLÁZÁSI-ALGORITMUS számítógépes megvalósítása során két paraméternek van jelentős hatása: a környezeti paraméter, τ 1 megválasztásának, illetve a τ rögzítése után, a lehető legnagyobb α megengedett lépéshossz meghatározásának. A gyakorlati alkalmazások során akárτ=10 000 is lehet. Ekkor példáulτ 1 = 1/100 és τ 2 = 100 is lehetséges. 9 A megengedett lépéshossz, α > 0 megválasztásánál, mohó módon járunk el, azaz minden iterációban, miután meghatároztuk a csökkenési irányt, kiszámoljuk a maximális megengedettα>0 lépéshosszt. 10 Először azt szeretnénk elérni, hogy az új megoldás vek- 9 Később, az elméleti elemzésekből szembetűnő lesz, hogy elméletileg minél nagyobb aτértéke, annál rosszabb lesz az iteráció szám. Ezt a gyakorlat nem igazolta vissza, de annak érdekében, hogy elméletileg elemezhető legyen az algoritmus, és hogy a polinomiális lépésszámot az algoritmus egy változatára általánosan bizonyítani tudjuk, a legrosszabb eset elemzést kell használnunk. A legrosszabb esettől a gyakorlati problémák sokszor eltérnek, de nem mindig. 10 Ez az elképzelés is jelentősen eltér az elméletileg bizonyítható helyzetektől, amikor is közvetlenülτfüggvényében adjuk meg a korlátokat a megengedett lépéshosszra, nem törődve a lokálisan legjobb, meghatározható érték kiszámításával. Cserébe elméletileg is elemezhető algoritmus változatot kapunk, amelynek a lépésszáma polinomiális.
¾ ¾ 25. Belsőpontos algoritmusok torok pozitívak legyenek, azaz u + α u 0 és z + α z 0, ami { { 0<α<ᾱ=min min u } { i : u i < 0, min z } } i : z i < 0, 1 i I u i i I z i (25.10) esetén biztosan teljesülni fog, aholi = {1, 2,...,n}. (Ezen állítás helyességét a 25.2-6. gyakorlat eredménye garantálja.) Másfelől fontos, hogy a centralitási mértékünk a megadott érték alatt maradjon az új megoldások esetén is. Mivel az u + = u+α u=d(d 1 u)+αd(d 1 u)=d µ v+αd µ p u = µ d(v+αp u ), és z(u + )=z + = z+α z= µ d 1 (v+αp z ), ezért Figyelembe véve a összefüggést (u + )z(u + )=(u+α u) (z+α z)=µ (v+αp u )(v+αp z ) =µ (v 2 +α(p u + p z )v+α 2 p u p z ). p=p u + p z = v3 v 2 ) u + z(u + )=µ (v 2 α v4 v 2 +α2 p u p z (25.11) adódik. Aµ>0 és azᾱkorlát miatt az u + z(u + )>0 teljesül, de mi még azt is szeretnénk, hogy is igaz legyen, azaz bármely i index esetén τ 1 e v 2 α v4 v 2 +α2 p u p z τ 2 e τ 1 u 2 i α u4 i v 2 +α2 (p u p z ) i τ 2. (25.12) A bal oldali, az α ismeretlenre nézve kvadratikus, egyenlőtlenségből az alábbi korlátokat kapjuk α 1 α 2 u 4 i v = min 2 + ϑ 1 :ϑ 1 0, (p u p z ) i I 2 (p u p z ) i > 0, és i u 4 i v = min 2 ϑ 1 :ϑ 1 0, (p u p z ) i I 2 (p u p z ) i < 0, i aholϑ 1 = u 8 i / v 2 2 ( ) 4 (pu p z ) i u 2 i τ 1. Hasonlóan a jobboldali egyenlőtlenségből a következő korlátok adódnakαértékére
25.2. Dikin-féle affin skálázású algoritmus ¾ ¾ α 3 α 4 = min i I = min i I u4 i v 2 ϑ 2 :ϑ 2 0, (p u p z ) 2 (p u p z ) i > 0 i u4 i v 2 + ϑ 2 :ϑ 2 0, (p u p z ) 2 (p u p z ) i < 0 i, és, ahol ϑ 2 = u 8 i / v 2 2 4 (pu p z ) i ( u 2 i τ 2 ). ¾ º¾º¾º Ò¹ Ð ÓÖ ØÑÙ ÐÑ Ð Ø Ð ÑÞ Az iterációk során csak egy tompított 11 Dikin-lépést teszünk meg. A lépéshossz megfelelő megválasztásával biztosítjuk az új pontunk pozitivitását, így a megengedettségét, valamint a pontunkat nem engedjük ki a centrális út τ környezetéből. Ezen elvárásoknak megfelelő α lépéshosszra ad elégséges feltételt a következő lemma, amelynek bizonyítását az Olvasóra bízzuk (lásd 25.2-9. gyakorlat). 25.24. lemma. Legyenτ R,τ>1. Tegyük fel, hogy u>0, z=z(u)>0, u F és c (u) τ. Ekkor bármelyαlépéshossz, amely kielégíti az α v2 2τ 2 és α< 4τ 1 v 2 egyenlőtlenségeket, megengedett lépéshossz, és az u + = u+α u vektorra c (u + ) τ. Tekintettel arra, hogy az előző lemma számunkra egy olyan lépéshosszt biztosít, amelyik esetén az új megoldásunk megengedett lesz, és rá a megfelelő centralitási elvárás is teljesül, rátérhetünk annak a vizsgálatára, hogy ez mekkora dualitásrés csökkenést fog eredményezni. 25.25. lemma. Ha azαlépéshossz megengedett, akkor (u + ) T z + (1 n α ) u T z. Bizonyítás. Induljunk ki a (25.11) egyenlőségből. Mivel az α megengedett lépéshossz és µ>0, ezért v 2 α v4 v 2 +α2 p u p z > 0. Az M mátrix ferdén szimmetrikus, ezért ( u) T z=0, azaz p T u p z = e T (d 1 u d z) 1 µ = 1 µ ( u)t z=0. (25.13) 11 Legyen az új pontunk (u+α u, z+α z), ha 0<α<1, akkorαparaméterrel tompított lépésről, mígα=1 esetén teljes lépésről beszélünk.