Eötvös Loránd Tudományegyetem Természettudományi Kar Kránicz Enik Gréta Lineáris kombinatorikus törtfüggvény optimalizálási feladatok BSc Szakdolgozat Témavezet : Jüttner Alpár Operációkutatási Tanszék Budapest, 2013
Köszönetnyilvánítás Ezúton szeretném megköszönni Jüttner Alpárnak, a konzulensemnek, hogy érdekl désével felkeltette gyelmemet a téma iránt, valamint az útmutatásokat, és hasznos tanácsokat. Köszönettel tartozom ezen kívül a családomnak, páromnak és barátaimnak türelmükért, bíztató szavaikért és tanácsaikért. Budapest, 2013 május Kránicz Enik Gréta 2
Tartalomjegyzék 1. Bevezetés 4 2. Kombinatorikus törtoptimalizálás 6 3. Megoldási módszerek 11 3.1. Bináris keresés a lineáris kombinatorikus törtfüggvény optimalizációra...... 11 3.2. Newton metódusa a lineáris kombinatorikus törtfüggvény optimalizálásra..... 12 3.2.1. Polinomiális lépésszám egészérték célfüggvények esetében......... 17 3.2.2. Er sen polinomiális lépésszám az általános esetben............. 19 3.3. Megiddo algoritmusa a lineáris kombinatorikus törtfüggvény optimalizációra... 22 4. Hiperbolikus programozási feladatok 28 4.1. A célfüggvény vizsgálata................................ 29 4.2. Visszavezetés lineáris programozási feladatra..................... 30 4.3. Alkalmazásai...................................... 31 5. Alkalmazások 34 5.1. Maximális súlyozott átlagköltség utak aciklikus gráfokban............ 34 5.2. Maximális súlyozott átlagköltség feszít fa keresése................. 35 5.3. Minimális súlyozott átlagkör keresése gráfokban................... 36 3
1. fejezet Bevezetés A kombinatorikus optimalizálás az alkalmazott matematika egy lendületesen fejl d területe, amely a kombinatorika, lineáris programozás és algoritmuselmélet technikáit ötvözve optimalizálási feladatokat old meg struktúrák egy diszkrét halmazán. Egy kombinatorikus optimalizálási feladat megoldásakor tehát egy diszkrét halmazon értelmezett függvény optimumát keressük. A struktúra halmaz elemei 0 1 vektorok, és konkrét kombinatorikus optimalizációs feladatokban kombinatorikai struktúrákat reprezentálhatnak, mint például egy gráf köreit, vagy feszít fáit. Ez elképzelhet például úgy, hogy a gráf minden lehetséges élének megfeleltetünk egy változót, ami 0-át vagy 1-et vehet fel, attól függ en, hogy az adott él be van-e húzva a reprezentálandó gráfban, azaz minden n pontú gráf egyértelm en megfeleltethet egy p = n(n 1)/2 hosszú 0 1 vektornak. Mivel a halmaz nagysága exponenciálisan n het a reprezentált gráf, vagy egyéb objektum méretének függvényében, így az a lehetséges eljárás, ami egyenként megvizsgálja a feladat lehetséges megoldásait, általában gyakorlatilag nem m ködik. A lehetséges megoldások nagy mérete miatt egy ilyen eljárás még a leggyorsabb számítógépeken is évmilliókig tartana. A cél tehát a gyakorlatban is jól használható, polinomiális, vagy er sen polinomiális algoritmusok megkonstruálása. A kombinatorikus optimalizálás témakörébe tartozó kérdések már régóta igen érdekesek gyakorlati szempontból, és emellett egyre nagyobb igény van az olyan nagyméret problémák megoldására, mint például távközlési hálózatok tervezése, tömegközlekedési eszközök menetrendjének optimalizálása, adótornyok, átjátszótornyok elhelyezésének optimalizálása, és egyéb ütemezési feladatok. Emiatt létét tulajdonképpen a modern számítógépek megjelenésének köszönheti, hiszen a kombinatorikus optimalizálási feladatok megoldására kidolgozott algoritmusok igen sok számítást igényelnek, így számítógépek nélkül a gyakorlatban is el forduló problémák megoldására nem igazán alkalmazhatóak. 4
A szakdolgozat a kombinatorikus optimalizálás egy speciális témakörével, a lineáris kombinatorikus törtfüggvény optimalizációval, annak megoldási módszereivel, és alkalmazásaival foglalkozik. Mint az elnevezésb l is látszik, ez a problémakör a kombinatorikus optimalizálás, a lineáris kombinatorikus optimalizálás, és a törtfüggvény optimalizálás témaköreibe is tartozik, pontosabban ezek speciális eseteit ötvözi, ezért mindegyik problémáról szó lesz röviden. Ahol csak tehetjük az általánosabb, nem lineáris esetre mondjuk ki az állításokat, amelyek természetesen m ködnek a lineáris esetben is. Ha ki tudjuk használni a linearitást, hogy jobb becsléseket, vagy hatékonyabb algoritmusokat kapjunk, azt külön kiemeljük. Egy lineáris kombinatorikus optimalizációs probléma általában a következ képpen írható le: az a cél, hogy találjunk egy minimális költség kombinatorikus struktúrát, ahol a struktúra költsége az elemeinek összköltsége. Pontosabban leírva egy lineáris költségfüggvényt akarunk optimalizálni egy diszkrét halmaz felett. Ilyen például a maximális költség feszít fa probléma, a legkisebb költség kör keresésének problémája, illetve a minimális vágás megtalálásának problémája is. A struktúrák itt feszít fái, körei vagy vágásai a gráfnak, a struktúrák elemei pedig a gráf éleinek felelnek meg. Gyakran a költségek mellett súlyokat is kapnak az egyes elemek, és a feladat a maximális vagy minimális súlyozott átlagköltség struktúra megtalálása. Egy struktúra súlyozott átlagköltsége: a költsége osztva a súlyával, ahol a súlya az elemeinek összsúlyával egyezik meg. Ezeket a feladatokat nevezzük lineáris kombinatorikus törtfüggvény optimalizálási problémának, esetleg 0-1 tört programozási problémának, vagy minimum-arány problémának. A maximális súlyozott átlagköltség feszít fa probléma, a legkisebb súlyozott átlagköltség kör keresésének problémája, illetve a minimális súlyozott átlagköltség vágás megtalálásának problémája is mind példa a lineáris kombinatorikus törtfüggvény optimalizálási feladatra. 1.0.1. Példa. (Maximális súlyozott átlagköltség feszít fa keresése) Ebben a feladatban a struktúrák halmaza a gráf összes feszít fájának halmaza. A G = (V, E) gráf leírása egyben az X {0, 1} m halmaz deníciója is, amely a G gráf összes feszít fájának karakterisztikus vektorát tartalmazza (m = E ). Így tehát egy x = (x 1,..., x m ) X vektor egy G-beli feszít fát reprezentál, amelyben az i. él pontosan akkor szerepel, ha x i = 1. Megadjuk még az a = (a 1,..., a m ) és b = (b 1,..., b m ) értékeket, ahol a i az i. él költsége, és b i az i. él súlya. A feladat, hogy megtaláljuk a maximális átlagsúlyú költséget, és azt a feszít fát (illetve az azt reprezentáló vektort), ahol ezt a maximális értéket felveszi. 5
2. fejezet Kombinatorikus törtoptimalizálás Ebben a fejezetben a legáltalánosabb esett l indulva ismertetjük a különböz kombinatorikus optimalizálási feladatokat. Els ként az alapprobléma deníciója következik, majd ennek gyengébb változata, és lineáris változata. Ezek megoldása gyakran szükséges majd a kés bbi feladatokban részfeladatként. 2.0.2. Deníció. Az alapprobléma egy esete tartalmazza struktúrák egy halmazát: X {0, 1} p, és egy f : X R függvényt. Az A opt feladat: max {f(x), ahol x X }. Sok esetben elég az alapprobléma gyengébb verzióját megoldani. 2.0.3. Deníció. Az alapprobléma gyenge változata tartalmazza struktúrák egy halmazát: X {0, 1} p, és egy f : X R függvényt. Az A dec feladat: keressünk olyan y X -t, amelyre sign(f(y)) = sign (max {f(x), x X }). Mindkét esetben egy megfelel x-et akarunk találni, de amíg A opt az optimális megoldást keresi, addig A dec csak az optimális megoldás el jelét. A következ feladat az alapprobléma egy speciális esete, de mivel a lineáris feladatokban elég, ha csak ezt tudjuk megoldani, ezért külön is deniáljuk. 2.0.4. Deníció. A lineáris alapprobléma tartalmaz egy X {0, 1} p halmazt, és egy a R p vektort. Az A max feladat: max {ax, ahol x X }. Az alapprobléma megoldásakor tehát struktúrák véges halmazán keressük az optimális struktúrá(ka)t, azaz egy költségfüggvény szerint optimalizálunk. Azonban gyakran nem csak egy költ- 6
ségfüggvény, hanem egy súlyfüggvény is adott, és a feladat a súlyozott átlagköltség maximalizálása. Egy tört optimalizálási feladatban tehát két adott függvény hányadosának optimumát akarjuk megtalálni. 2.0.5. Deníció. Egy kombinatorikus törtfüggvény optimalizációs feladat tartalmazza struktúrák egy halmazát: X {0, 1} p, és két függvényt: g : X R, f : X R. Az F feladat: max f(x) g(x), ahol x = (x 1,...x p ) X. Feltesszük, hogy f(x) > 0 valamely x X -re, és g(x) > 0 minden x X -re. Az f(x)-et az x vektor által reprezentált struktúra költségének, g(x)-et a súlyának, f(x) g(x) -et pedig a súlyozott költségének nevezzük. A két legfontosabb és leghatékonyabb metódus a probléma megoldására Newton metódusa illetve Megiddo paraméteres keres -metódusa. Mindkett a törtfüggvény optimalizálásról a nem tört alakú, paraméteres optimalizálásra való visszavezetésen alapul. 2.0.6. Megjegyzés. A kombinatorikus törtfüggvény optimalizációs feladat speciális esete az általános törtfüggvény optimalizációs feladatoknak, amelyek f(x) g(x) -et maximalizálják egy adott D R p részhalmaz felett. Sokan tanulmányozták a problémát, és számos algoritmust fejlesztettek ki a feladat megoldására ([5], [6]). Ezek közül a numerikusak nem csak az általános, hanem a kombinatorikus esetben is használhatóak, de a két különböz esetben a metódusok vizsgálata és elemzése jelent sen különbözhet. Például, amikor az általános törtfüggvény optimalizálási feladatot tekintjük, sokszor feltesszük, hogy a D tartomány konvex részhalmaza R p -nek, valamint az f és g függvények folytonosak. Világos, hogy ezeknek a feltételeknek nincs megfelel jük a kombinatorikus esetben. Továbbá, egy numerikus metódus az általános esetben konvergál ugyan az optimum értékhez, de nem tudjuk garantálni, hogy el is éri azt, míg a kombinatorikus esetben a megfelel metódus általában kiadja az optimális megoldást. Vegyük észre, hogy a X halmaz véges, ezért az optimális megoldás megtalálható véges id ben, egyszer en végignézve minden x X -et. A Newton metódust az általános esetre Dinkelbach vezette be ([7]), és számos eredmény vonatkozik a metódus gyors konvergenciájára, és variációira is ([8], [9]). Megiddo paraméteres keres -metódusa olyan kombinatorikus törtfüggvény optimalizációs e- setre készült, amikor a két függvény, f és g lineárisak. Ez a metódus volt az els például, amelyik er sen polinomiális megoldást adott a maximum prot/id problémára, amikor a futási id polinomiálisan függ p-t l, de nem függ a célfüggvények értékeinek nagyságától. 7
2.0.7. Deníció. (Lineáris kombinatorikus törtfüggvény optimalizációs probléma) Egy adott F L lineáris kombinatorikus törtfüggvény optimalizációs feladat tartalmazza struktúrák egy halmazát: X {0, 1} p, és két valós, vagy egész vektort, az a költségfüggvényt, és a b súlyfüggvényt, ahol a = (a 1,..., a p ) és b = (b 1,..., b p ). Az F L feladat : max a 1 x 1 +... + a p x p b 1 x 1 +... + b p x p, ahol x = (x 1,...x p ) X. Az a i és b i számok az i. elem költsége illetve súlya, míg az a 1 x 1 +... + a p x p, b 1 x 1 +... + b p x p és a 1x 1 +...+a px p b 1 x 1 +...+b px p számok a költsége, súlya illetve súlyozott átlagköltsége a struktúrának, amit az x vektor reprezentál. 2.0.8. Jelölés. Egy x vektort a következ képpen jelölünk koordinátái segítségével: x = (x 1, x 2,..., x p ). Két egyenl hosszú vektor (a és x) skaláris szorzatát így jelöljük: ax=a 1 x 1 + a 2 x 2 +... + a p x p. Ezzel a jelöléssel a lineáris kombinatorikus törtfüggvény optimalizálási problémát így is felírhatjuk: F L : max ax bx, ahol x X Feltesszük, hogy bx > 0 minden x X -re, és van olyan x X, amelyre ax > 0. A következ tétel segítségével könnyen visszavezethetjük a kombinatorikus törtfüggvény optimalizálást nem tört alakú, paraméteres optimalizálásra. 2.0.9. Tétel. Az F feladat megfogalmazható a következ ekvivalens módon: P : min {δ : δ R, f(x) δg(x) 0, minden x X -re}. Bizonyítás. Jelölje δ a minimumot, amit keresünk. A P feladatban olyan δ-kat tekintünk, amelyekre f(x) δg(x) 0, azaz f(x) g(x) δ minden x X esetén. Ha ezek közül a δ-k közül kiválasztjuk a legkisebbet, akkor (legalább) egy x X -re f(x) g(x) = δ, és minden x X {x } esetén f(x) g(x) < δ, tehát megtaláltuk a max f(x) g(x) optimalizálási feladat megoldását. A P feladatot az F feladat paraméteres verziójának, vagy az A opt probléma paraméteres kiterjesztésének is szokták nevezni. A legtöbb iteratív megoldási módszer az F feladat megoldására a következ probléma különböz eseteinek sorozatát oldja meg, ahol a δ egy további input paraméter: P(δ) : max {f(x) δg(x)}. x X 8
A P(δ) problémát az F feladathoz tartozó paraméteres problémának is szokták nevezni. Néhány megoldási módszerhez azonban elég a P(δ) feladat gyengébb verzióját megoldani: P 0 (δ) : keressünk olyan y X et, amelyre sign(f(y) δg(y)) = sign(max {f(x) δg(x)}). x X Tekintsük a következ segédfüggvényt tetsz leges δ R esetén: h(δ) = max {f(x) δg(x)}. x X 2.0.10. Megjegyzés. Ha a lineáris kombinatorikus törtfüggvény optimalizálási feladathoz tartozó h(δ) segédfüggvényt tekintjük, akkor az a következ képpen néz ki: h(δ) = max x X {(ax) δ(bx)} = max {(a δb)x)}, x X Tetsz leges adott δ-ra az a δb vektort redukált költségnek nevezzük, h(δ)-t pedig a struktúrák maximális redukált költségének. 2.0.11. Állítás. A h(δ) függvény folytonos és szigorúan monoton csökken, konvex, szakaszonként lineáris, és egyetlen gyöke a δ. Bizonyítás. Minden rögzített x-re f(x) δg(x) lineáris, csökken függvénye δ-nak, mert f(x) és g(x) adott számok, és g(x) > 0 a feltevésünk miatt. Tehát a h függvény véges sok lineáris függvény maximuma, ezért szakaszosan lineáris. Mivel ezek a lineáris függvények mind szigorúan monoton csökkenek, ezért a h függvény is szigorúan monoton csökken. Mivel azt is tudjuk, hogy nincs olyan x, amelyre g(x) < 0, ezért az is nyilvánvaló, hogy a h konvex, és pontosan egy gyöke van. 2.1. ábra. Példa a h függvényre 9
Ezzel a kombinatorikus törtfüggvény optimalizációs probléma egy újabb ekvivalens megfogalmazását kapjuk: Ugyanis, ha R : oldjuk meg a h(δ) = 0 feladatot. h(δ ) = max x X {f(x) δ g(x)} = 0, akkor az pont azt jelenti, hogy f(x) δ g(x) 0 minden x X -re, de létezik x X, amire f(x ) δ g(x ) = 0, azaz x -nál veszi fel a maximumát az f(x) g(x). Ez a megfogalmazás azt sugallja, hogy az F probléma megoldására egyszer en olyan algoritmusokat készíthetünk, amelyek egy függvény gyökét keresik. 2.0.12. Deníció. Az uniform lineáris kombinatorikus törtfüggvény optimalizálási probléma: U : max ax ex, ahol x X. Az e vektor a következ : e = (1, 1,..., 1). A feladat itt a maximális átlagköltség struktúra megtalálása. Egy struktúra átlagköltsége a költsége osztva az elemszámával. Nevezik még homogén vagy súlyozatlan esetnek. 10
3. fejezet Megoldási módszerek 3.1. Bináris keresés a lineáris kombinatorikus törtfüggvény optimalizációra A bináris keresés a lineáris kombinatorikus törtfüggvény optimalizációs feladatok megoldására egyszer en a bináris keresés alkalmazása h(δ) gyökének, azaz δ megtalálására. Minden iterációban a lineáris alap optimalizáció egy esetét oldjuk meg, hogy kiszámítsuk az aktuális δ közelítésre h(δ) el jelét. Legyen a kezd közelít intervallum [ξ 1, λ 1 ], amelyr l tudjuk, hogy h(ξ 1 ) > 0, és h(λ 1 ) < 0. Ez biztosítja, hogy δ az intervallumon belül van. Minden iterációban felezzük az intervallumot, ψ i = λ i ξ i 2 + ξ i = ξ i+λ i 2, és kiszámítjuk h(ψ i ) el jelét. Ha pozitív, akkor ψ i < δ, ekkor ξ i+1 = ψ i és λ i+1 = λ i, ha negatív, akkor ψ i > δ, és ekkor λ i+1 = ψ i és ξ i+1 = ξ i lesz az új közelítés, az új intervallum, amelyik fele akkora, és tartalmazza δ -t. 3.1.1. Megjegyzés. Fontos kiemelnünk, hogy a bináris keresés alkalmazásakor a lineáris alap optimalizációs feladat "gyenge" verzióját, A dec -t kell megoldanunk részfeladatként, míg a Newton-metódushoz az "er sebb" változat, A opt kell, hogy találjunk egy struktúrát a maximális redukált költséggel, és ez a különbség néha drasztikus lehet. Tekintsük például a maximum átlagsúlyú kör keresésének problémáját. A bináris kereséshez egy olyan eljárás szükséges, amelyik megmondja van-e pozitív redukált költség kör a gráfban, ami O(mn) id ben kiszámolható. Ezzel szemben a Newton-metódusnak egy olyan eljárásra van szüksége, amelyik meghatározza a maximális költség kört, ami NP-nehéz feladat. Ha a lineáris esetben a költség-, és súlyfüggvények egészérték ek, és a i [ A, A], b i [1, B], akkor könny becslést adni az iterációk számára. Vizsgáljuk meg, hogy legalább mekkora kell 11
legyen két lehetséges tört-optimum között a különbség: ax bx ay by = ax by ay bx bx by 1 (pb) 2. A kezd közelít intervallum legyen [ pa, pa], hiszen ax pa, és bx 1, ezért ax pa tetsz leges x esetén. Ha k iterációt végzünk el, akkor az [ξ k, λ k ] intervallum hossza 2 pa 2 k. Ezért, ha azt akarjuk, hogy a k. iteráció után olyan intervallumot kapjunk, amiben már csak a δ optimum szerepel, a következ nek kell teljesülnie: Jelöljük U-val az A és B számok maximumát. 2 pa 2 k < 1 (pb) 2. 2 k > 2 pa 1 (pb) 2 = 2p 3 AB 2. k > log(2p 3 AB 2 ) k > log(2p 3 U 3 ) = log 1 + 3 log(pu) = O(log(pU)). Tehát O(log(pU)) lépésben olyan intervallumot kapunk, amelyben már csak az optimális megoldás szerepel, és semmilyen másik ay by érték nincs benne. Ez azt jelenti, hogy ha ekkor kiszámítjuk az utolsó iterációval kapott intervallum baloldali határának, ξ k -nak a maximális redukált költségét, azaz h(ξ k )-t, és a hozzá tartozó x k bx vektort, ahol ez a maximális költség felvétetik, akkor megkaptuk azt az "utolsó" (ax k ) δ(bx k ) egyenest, amelynek az x-tengellyel vett metszési pontja már meghatározza az optimumot. Összesen tehát O(log(pU)) alkalommal kell megoldanunk az A dec feladat egy esetét, és ezen kívül egyszer az A opt feladatot. 3.2. Newton metódusa a lineáris kombinatorikus törtfüggvény optimalizálásra Newton metódusa a lineáris kombinatorikus törtfüggvény optimalizálásra nem más, mint Newton metódusa h(δ) zérushelyének megtalálására. Mivel Dinkelbach használta el ször tört optimalizálásra, ezért Dinkelbach metódusnak is nevezik. Ebben a részben bemutatjuk a Newton metódust, mint megoldási módszert az általánosabb kombinatorikus törtfüggvény optimalizálásra. Ezen kívül a lineáris esetben mutatunk er sen polinomiális becslést is az iterációk számára, és még jobb becslést egész célfüggvények esetében. A Newton metódus olyan iteratív eljárás az F feladatra, amely minden iterációs lépésben egyre jobb tört megoldást, és egyre jobb becslést ad a δ optimumértékre is. 12
Hogy használni tudjuk Newton metódusát, fel kell tennünk, hogy van egy eljárás, ami megoldja A opt -t. Ezt fogjuk használni, hogy bármely adott δ-ra kiszámíthassuk h(δ)-t, a struktúrák maximális redukált költségét, és magát az x X struktúrát, ahol ez a költség felvétetik. δ Legyen δ az aktuális közelítése δ -nak. Kezdetben δ = 0. Feltevéseink biztosítják, hogy > 0, ugyanis g(x) > 0 minden x X -re, és van olyan x X, amelyre f(a) > 0. Egy iteráció részeként kiszámítjuk h( δ)-t, és azt az x X vektort, amelyen a maximum felvétetik, azaz h( δ) = f( x) δg( x). Ehhez szükséges az A opt probléma egy esetének megoldása. Ha h( δ) = 0, akkor δ = δ, és az algoritmus véget ér. Máskülönben kiszámítjuk a következ közelítést: δ = f( x)/g( x), ami az x vektor súlyozott átlagköltsége, és az algoritmus folytatódik az új közelítéssel számolva az el bb leírt módon. Azért így számoljuk a következ közelítés értéket, mert azt a helyet keressük, ahol h( δ ) = 0 (ugyanis a Newton-módszer szerint az új közelítés ott lesz, ahol az el z közelítés függvényértékéb l induló érint metszi az x tengelyt), tehát ahol f( x) δ g( x) = 0, azaz f( x) g( x) = δ. 3.2.1. Jelölés. Legyen δ i δ értéke az i. iteráció elején, és xi, h i, g i legyenek x, f( x) δ i g( x) illetve g( x) szintén az i. iteráció kezdetekor. Így h i = h(δ i ) = f(x i ) δ i g(x i ) = max {f(x) δ i g(x) : x X } g i = g(x i ) δ i+1 = f(x i) g(x i ) 3.2.2. Megjegyzés. A lineáris esetben legyenek a következ k a jelölések: Legyen δ i és x i δ, illetve x értéke az i. iteráció elején, és H i = h(δ i ) = (a δ i b)x i = max {(a δ i b)x : x X } Könnyen igazolható a következ állítás: B i = bx i δ i+1 = ax i bx i δ i+1 δ i = h i g i. (3.1) A δ i+1 = f(x i) g(x i ) összefüggésb l és a h i deníciójából valóban egyszer en következik. Kicsit szemléletesebben is beláthatjuk: ha a (3.1) ábrán megnézzük a kék színnel kiemelt háromszöget, észrevehet, hogy a háromszög egyik befogója éppen δ i+1 δ i, másik befogója h i, h és a háromszög alapon fekv szögének tangense i δ i+1 δ, ami az i f(x i ) δg(x i ) egyenes iránytangensének a mínusz egyszerese, ami pedig az egyenes meredeksége, azaz g i, tehát g i = h i δ i+1 δ. i 13
3.1. ábra. Az algoritmus egy lépése [3] A célunk becslést adni az iterációk számára. Legyen t az utolsó iteráció indexe (vagy, ha az eljárás nem áll le), és jelöljük f i -vel f(x i )-t, ha i = 1,..., t. A korábbiak szerint h i = f i δ i g i, és azt is tudjuk, hogy δ i+1 = f(x i) g(xi). 3.2.3. Lemma. A Newton metódus véges sok lépés után véget ér, és 1. h 1 > h 2 >... > h t 1 > h t = 0, 2. 0 = δ 1 < δ 2 <... < δ t 1 < δ t = δ, 3. g 1 > g 2 >... > g t 1 > g t. Bizonyítás. A lemma következik az alábbi állításokból: minden 1 i < t + 1-re (a) h 1 > h 2 >... > h i 1 > h i 0, (b) 0 = δ 1 < δ 2 <... < δ i 1 < δ i δ, (c) g 1 > g 2 >... > g i 1 g i. Az egyenl tlenség láncok végén csak akkor fordulhat el egyenl ség, ha az i. iteráció a metódus utolsó iterációja, tehát ha i = t. Az el bbi állításokat i szerinti indukcióval bizonyítjuk. Mivel a h függvény tulajdonságaiból következik, hogy h(0) > 0, és az egyetlen gyöke pozitív, ezért i = 1-re igazak az állítások. Tegyük 14
tehát fel, hogy i = j-ig igazak az állítások, valamely 1 j < t-re. Tudjuk a következ ket: δ f j g j = δ j+1, δ j+1 = f j g j = h j g j + δ j > δ j, ezért a (b) állítás igaz i = j + 1-re. Mivel δ j < δ j+1 δ, és tudjuk, hogy a h függvény monoton csökken, ezért h j+1 = h(δ j+1 ) < h(δ j ) = h j, és h j+1 = h(δ j+1 ) h(δ ) = 0, ezért az (a) rész is igaz i = j + 1-re. A (c) állítás igazolásához a következ két egyenl tlenséget használjuk: f j+1 δ j g j+1 max {f k δ j g k } = h j = f j δ j g j, f j+1 δ j+1 g j+1 = h j+1 = max {f k δ j+1 g k } f j δ j+1 g j. A két egyenl tlenséget egymásból kivonva kapjuk, hogy g j+1 g j, és egyenl ség csak akkor állhat fenn, ha h j+1 = f j δ j+1 g j. Mivel f j δ j+1 g j = 0 a δ j+1 deníciója miatt, ezért g j+1 = g j csak akkor lehetséges, ha h j+1 = 0, ami viszont azt jelenti, hogy az j + 1. iteráció az utolsó. Ezzel igazoltuk a (c) állítást is. Mindezek miatt a g i sorozat elemei mind különböz ek, ezért a Newton iterációnak véges sok iteráció után véget kell érnie, mert a g i számok a struktúrák súlyai, tehát t 1 X <. Az algoritmus gyors konvergenciájának bizonyításához szükséges tételt általánosabban mondjuk ki és bizonyítjuk, mégpedig tetsz leges konvex függvényre, és nem csak szakaszosan lineárisra, mint a h függvény. Ehhez azonban szükség lesz a dierenciálhatóság fogalmának kiterjesztésére, mert nem tehetjük fel, hogy a függvényünk mindenhol dierenciálható. 3.2.4. Deníció. Legyen S R nemüres halmaz, és legyen f : S R konvex függvény, x 0 S. A g(x 0 ) R számot az f függvény x 0 pontbeli szubgradiensének nevezzük, ha f(x) f(x 0 ) + g(x 0 )(x x 0 ) minden x S re. 3.2.5. Deníció. Legyen S R nemüres halmaz, és legyen f : S R konvex függvény, x 0 S. Az f függvény szubdierenciálható az x 0 pontban, ha x 0 -nak van legalább egy szubgradiense. Az x 0 pontbeli szubgradiensek halmazát szubdierenciálnak nevezzük, és f(x 0 )-al jelöljük. 3.2.6. Megjegyzés. Ha az f : S R függvény dierenciálható az x 0 S pontban, akkor pontosan egy szubdierenciálja van, ami pont f (x 0 ). 3.2.7. Állítás. Legyen S R nemüres halmaz, és legyen f : S R folytonos konvex függvény. Ekkor f(x) nemüres és korlátos. 3.2.8. Jelölés. Legyen S R nemüres halmaz, és f : S R folytonos konvex függvény. Legyen ekkor f (x) a egy tetsz leges szubgradiens f(x)-b l minden x S-re. 15
3.2.9. Állítás. Legyen f : R R folytonos konvex függvény, amir l tudjuk, hogy x : f(x ) = 0. Legyen x 0 kezd közelítés, amelyre f(x 0 ) > 0, és x i+1 = x i f(x i) f (x i ) a Newton-metódus szabálya szerint. Ekkor. f(x i+1 ) f(x i ) + f (x i+1 ) f (x i ) 1 Bizonyítás. Mivel f konvex, ezért felírhatjuk tetsz leges x i, x i+1 x, x i < x i+1 -re a következ t: f(x i ) f (x i+1 )(x i x i+1 ) + f(x i+1 ) Ha x i+1 helyére behelyettesítjük a feltételben szerepl kifejezés jobb oldalát, a következ t kapjuk: f(x i ) f (x i+1 ) ( x i (x i f(x i) f (x i ) )) +f(x i+1 ) Azaz: f(x i ) f (x i+1 ) f(x i) f (x i ) + f(x i+1) Osszunk le f(x i )-vel. (Megtehetjük, mert tudjuk, hogy f(x 0 ) > 0, és x i nem gyök, tehát f(x i ) > 0.) Így kapjuk: 1 f (x i+1 ) f (x i ) + f(x i+1) f(x i ). Az el bbi tétel közvetlen következménye az alábbi egyenl tlenség, amit az algoritmus gyors konvergenciájának bizonyításához fogunk felhasználni: h i+1 h i + g i+1 g i 1. (3.2) A kés bbiekben hasznos lesz az (3.2)-as egyenl tlenség alábbi egyszer következménye, amelyet a számtani-mértani közepek közti egyenl tlenséget használva kaphatunk meg: h i+1 g i+1 h i g i 1 4. (3.3) 3.2.10. Megjegyzés. A lineáris esetben tehát (3.2), illetve (3.3) egyenl tlenségek a következ képpen néznek ki: H i+1 H i + B i+1 B i 1. (3.4) H i+1 B i+1 H i B i 1 4. (3.5) 16
3.2.1. Polinomiális lépésszám egészérték célfüggvények esetében Ebben a részben csak a lineáris esettel foglalkozunk, és feltesszük, hogy mind a költségek, mind a súlyok egész számok. Legyen A és B a költségek illetve súlyok abszolútértékeinek maximuma, illetve jelölje U az A és B szám maximumát. Az (3.5) egyenl tlenség következményeképpen igazolható a következ polinomiális lépésszám a Newton metódus esetén. 3.2.11. Tétel. A Newton metódus egy lineáris kombinatorikus törtfüggvény optimalizációs problémát O(log(pU)) lépésben old meg. Bizonyítás. Ha H i > 0 akkor minden i-re: Az els egyenl tlenség abból következik, hogy (pu) 2 H i B i 1 pu. (3.6) H i = h(δ i ) h(0) = max x X {(a 0b)x} = max x X {ax} pu. A második egyenl tlenség pedig a következ k miatt igaz: H i = (δ i+1 δ i )B i = (ax i)(bx i 1 ) (ax i 1 )(bx i ) B (bx i )(bx i i 1 ) A (3.5) és (3.6) egyenl tlenségekb l már következik a tétel: 1 pu H kb k ( 1 4 )k 1 (pu) 2 1 B i B i 1 B i 1 pu. (3.7) 4 k 1 (pu) 3 k 1 1 3 log pu log 4 Most következik az el bbi tétel nomítása, ami jobb lépésszámot biztosít, feltéve, hogy a súlyfüggvény értékei lényegesen kisebbek, mint a költségfüggvényé. Ez tipikusan az uniform lineáris kombinatorikus törtfüggvény optimalizációs probléma esetében fordulhat el, ahol a súlyfüggvény azonosan egy. Szükségünk lesz a következ lemmára. 3.2.12. Lemma. Legyenek µ, α és β pozitív számok, µ < 2, α < 1, β < 1. Legyenek (α i ) és (β i ) pozitív tagú, l hosszú sorozatok, úgy hogy α i + β i µ (i = 1, 2,..., l), 17
α i α, 1 i l 1 i l β i β. Ekkor l L, ahol L a következ egyenl tlenség megoldása: α 1 L + β 1 L = µ. Bizonyítás. A számtani-mértani közepek közti egyenl tlenséget használva: ( α 1 1 ) 1 ( l ) 1 l l + β l α i + β i 1 ( ) α i + 1 ( ) β i = 1 ( ) (α i + β i ) µ l l l 1 i l 1 i l 1 i l 1 i l 1 i l Ebb l már következik, hogy l L, mert az α 1 x + β 1 x monoton növekszik a (0, )-en. 3.2.13. Tétel. A Newton metódus egy lineáris kombinatorikus törtfüggvény optimalizációs prob- log(pab) lémát O( 1+log log(pab) loglog(pb) ) lépésben old meg. Bizonyítás. Feltesszük, hogy B A, ugyanis, ha A > B, akkor ugyanazt a becslést kapjuk, mint az el z tételben. Jelölje l az iterációs lépések számát. Legyen α i = H i+1 H i, β i = B i+1 B i, ahol i = 1, 2,..., l 1. A (3.4) egyenl tlenségb l tudjuk, hogy α i + β i < 1, és igazak a következ becslések is: H 1 pa, H l 1 pb, B 1 pb, B l 1. A második egyenl tlenség a (3.4) egyenl tlenségb l következik, a többi triviális. Ezeket felhasználva kapjuk, hogy 1 i l 1 α i = H l H i 1 p 2 AB, illetve 1 i l 1 β i = H l H i 1 pb. A 3.2.12 lemma miatt l 1 L, ahol L a következ egyenlet megoldása: ( ) 1 ( ) 1 1 L 1 L + = 1. p 2 AB pb ( Legyen h(x) = Ekkor 1 p 2 AB ) 1 x + ( 1 pb ( 2 log(p 2 ) AB) h log log(p 2 AB) log log(pb) ) 1 x, minden x > 0-ra. Az utóbbi egyenl tlenség azért igaz, mert z 1 2 +z z 2 igazolható. A h(x) függvény monoton n, ezért L < = 2 log(p 2 AB) log log(p 2 AB) log log(pb) = O Mivel feltettük, hogy B A, ezért a fenti becslés igaz. ( ) 1 ( ) log(pb) log(pb) 2 log(pb) 2 log(p + 2 AB) > 1. log(p 2 AB log(p 2 AB) > 1, ha z > 0, ami az elemi analízis eszközeivel ( ) log(pab). 1 + log log(pab) log log(pb) 18
3.2.14. Megjegyzés. Könnyen látható, hogy ezek a becslések nem csak egészérték súly-, és költségfüggvények esetén alkalmazhatóak. Ha a és b racionális érték ek, és megkeressük azt a legkisebb c számot, amivel felszorozva mindkét vektort (így kapjuk a'-t és b'-t), azok értékei egészek lesznek, akkor max ax bx = max a 1x 1 + a 2 x 2 +... + a p x p = max c (a 1x 1 + a 2 x 2 +... + a p x p ) b 1 x 1 + b 2 x 2 +... + b p x p c (b 1 x 1 + b 2 x 2 +... + b p x p ) = max c a 1x 1 + c a 2 x 2 +... + c a p x p c b 1 x 1 + c b 2 x 2 +... + c b p x p = max a'x b'x. Tehát tetsz leges racionális érték súly-, és költségfüggvény esetén igazak az el bbi becslések, mindössze annyit kell tenni, hogy felszorozzuk mindkett t egy alkalmas egész számmal. Persze ekkor U értéke is változik: U = c U, ezért O(log(pU )) = O(log(pcU)) lesz az új becslés az iterációk számára. 3.2.2. Er sen polinomiális lépésszám az általános esetben Az általános eset tanulmányozása el tt az uniform lineáris kombinatorikus törtfüggvény optimalizálási problémával foglalkozunk, amikor a költségek tetsz leges valós számok, a súlyfüggvény pedig azonosan egy. A következ tényt el ször Karzanov publikálta [10]. 3.2.15. Tétel. Newton metódusa legfeljebb p + 1 lépésben megoldja az uniform lineáris kombinatorikus törtfüggvény optimalizálási problémát. Bizonyítás. A (B i ) sorozat szigorúan csökken, kivéve az utolsó iterációt. Az egységes lineáris kombinatorikus törtfüggvény optimalizálási problémában B i pozitív egész, és legfeljebb p, ugyanis pont az adott struktúra számosságát adja meg. A következ kben er sen polinomiális becslést adunk a lináris kombinatorikus törtfüggvény optimalizáció általános esetére, amikor a költségek, és a súlyok is tetsz leges valós számok. El ször nézzük meg, mi lehet az elmélet mögött. A (3.4) egyenl tlenség azt sugallja, hogy vannak olyan legalább mértani gyorsasággal csökken sorozatok (pl. H i B i ), amelyeknek a metódus gyorsaságához van köze (lásd (3.5)). Hogy még inkább kiterjeszthessük az intuíciót, tegyük fel, hogy létezik olyan konstans α szám, amire igaz, hogy B i+1 B i α < 1 minden i-re. Ez azt jelenti, hogy a (B i ) sorozat legalább mértani gyorsasággal tart nullához. Tegyük fel azt is, hogy b 1 b 2... b p 0. A (B i ) sorozat minden eleme a {b 1, b 2,..., b p } halmaz egy részhalmazának elemeinek összege. Nyilván B 1 pb 1. Mivel (B i ) legalább egy mértani sorozat sebességével csökken, ezért B l b 1, ahol l = O(log p). Ez azt jelenti, hogy b 1 már nem lehet benne B l -ben, sem semelyik B i -ben, ha i l, ezért innent l eltekinthetünk b 1 -t l. 19
Tehát B l (p 1)b 2, és a következ O(log p) iteráció után már b 2 sem szerepelhet a sorozat további tagjaiban, és hasonlóan sorban kizárhatjuk b 3 -at, b 4 -et, stb. Ebb l következ en a (B i ) sorozat legfeljebb O(p log p) hosszú lehet, tehát legfeljebb ennyi iterációs lépést tehetünk. Az iterációk számára vonatkozó becslés valójában bonyolultabb, mint ahogy azt az el z bekezdés sugallja, mivel a (H i B i ) számoknak "bonyolultabb a szerkezetük" mint a (B i ) sorozat tagjainak. Két oka van, hogy az általános eset bonyolultabb. El ször is, a pozitív számok mellett a negatívakkal is számolnunk kell, ugyanis még ha minden súly és költség pozitív is, megjelennek a negatív számok, mert a (H i ) sorozat elemeinek számolásakor kivonást is használunk. Másodszor, ha a (B i ) sorozat nem csökken elég gyorsan, akkor a (H i ) sorozatot is meg kell vizsgálnunk, aminek az elemei azonban nem csupán egy el re meghatázott halmaz részhalmazainak elemeinek összege. A következ lemma segítségével már fogunk tudni a negatív számokkal is bánni, ugyanis azt mondja ki, hogy még ha az alaphalmaz tartalmaz is pozitív és negatív számokat is, akkor is ezeknek a számoknak a részletösszegeib l képzett mértani sorozat hossza legfeljebb O(p log p). A lemmát Michel Goemans mondta ki és bizonyította. Az állításban szerepl c vektor koordinátái segítségével képezzük a részletösszegeket, és az (y k c) sorozat pedig a bel lük képzett sorozat. 3.2.16. Lemma. (Michel Goemans) Legyen c = (c 1, c 2,..., c p ) pozitív valós koordinátákból álló vektor, illetve y 1, y 2,...y q {0, 1, 1} p. Ha minden i = 1, 2,...q 1-re 0 < y i+1 c 1 2 y i c, akkor q = O(p log p). Bizonyítás. Tekintsük a következ poliédert: z = (z 1, z 2,..., z p ) R p : (y i 2y i+1 )z 0, i = 1, 2,..., q 1 re (3.8) y q z = 1, (3.9) z i 0, i = 1, 2,..., p re (3.10) Jelöljük A-val és b-vel azt a mátrixot illetve vektort, amelyek deniálják ezt a P poliédert. P nem üres, mert c/(y q c) vektor benne van. Tudjuk, hogy létezik olyan c = (c 1, c 2,..., c p) P, ami kielégíti az A c = b egyenletet, ahol A az A mátrix p p-s nemszinguláris részmátrixa, illetve b a b vektor p hosszú részvektora. A Cramer-szabály szerint: c i = deta i deta, 20
ahol A i -t úgy kapom meg A -b l, hogy az i. oszlopát a b vektorral helyettesítem. Egy m m-es M mátrix determinánsa a következ alakban áll el (jelöljük az i. sor j. elemét m ij -vel): det M = σ sign(σ) m i,σ(i), 1 i p ahol σ végigmegy az {1, 2,..., p} indexek permutációin, és sign(σ) { 1, 1}. Ezért detm m p p!, ahol m = max m ij, ahol i, j = 1, 2,..., m. Az A mátrix, és ezért minden A i mátrix, továbbá a b vektor elemei a [ 3, 3] intervallumba es egészek. Ezért deta i 3 p p! minden i = 1, 2,..., p-re. Mivel deta 1, ezért azt is tudjuk, hogy c i 3p p! minden i = 1, 2,..., p-re, és y j c c i p 3 p p!, minden j = 1, 2,...q ra. Végül ezért q log(p 3 p p!) + 1 = O(p log p). 1 = y q c 1 2 q 1 y 1c 1 2 q 1 p 3p p!, Most már tudjuk bizonyítani az er sen polinomiális becslést az iterációk számáról. 3.2.17. Tétel. A Newton metódus O(p 2 log p) iteráció alatt megtalálja egy lineáris kombinatorikus törtfüggvény optimalizálási feladat megoldását. Bizonyítás. Tekintsük a következ sorozatot: S i = H 2i B 2i 1. A (3.5) egyenl tlenség, és H i, B i monoton csökkenése (lásd (3.2.3) lemma) miatt: S i+1 = H 2i+2 B2i + 1 H 2i+1 B2i + 1 1 4 H 21B 2i 1 4 H 21B 2i 1 = 1 4 S i. Másrészr l S i = H 2i B2i 11 = (A 2i δb 2i )B 2i 1 = (A 2i A 2i 1 B 2i 1 B 2i ) = A 2i B 2i 1 A 2i 1 B 2i. Azaz, vannak olyan c = (c 11, c 12,..., c 1p, c 21,...c pp ) R p2, és y i {0, 1, 1} p2 S i = cy i minden i esetén, ahol vektorok, amikre c ij {α β : α {ax, x X }, β {bx, x X }}. Így a (3.2.16) lemmát c-re alkalmazva kapjuk, hogy az (S i ) sorozat legfeljebb O(p 2 log p 2 ) = O(p 2 log p) hosszú, amib l következik a tételbeli becslés. 21
3.2.18. Megjegyzés. Természetesen vannak más becslések is az iterációk számára. Az el z tételben ismertetett becslés a jelenleg ismert legjobb a lineáris kombinatorikus törtfüggvény optimalizációs feladatok Newton metódussal való megoldására. Ennek ellenére, ha egy konkrét esetet vizsgálunk, gyakran el fordul, hogy a feladat speciális tulajdonságai miatt jobb becsléseket kapunk. 3.2.19. Megjegyzés. Az er sen polinomiális becslés a lineáris kombinatorikus törtfüggvény optimalizálásra valahol meglep, mivel a h(δ) függvény akár exponenciálisan sok lineáris részb l is állhat. 3.2.20. Példa. Legyen az a = (a 1, a 2,..., a 3p ) költségfüggvény, és a b = (b 1, b 2,..., b 3p ) súlyfüggvény olyan, hogy { 2 i 1 i=1,..., p a i = 0 i=p+1,..., 3p, { 0 i=1,..., p b i = 2 i p 1 i=p+1,..., 3p. Legyen U {0, 1} 3p olyan halmaz, hogy az x = (x 1, x 2,..., x 3p ) U, ha x i = 0 minden i = p + 1,..., 3p indexre, illetve W {0, 1} 3p olyan halmaz, hogy az x = (x 1, x 2,..., x 3p ) W, ha x i = 0 minden i = 1,..., p indexre. Az au skaláris szorzat 2 p féle értéket vehet fel, ha u U, mégpedig a {0, 1,..., 2 p 1} értékeket, míg a bw skaláris szorzat 2 2p féle értéket vehet fel, ha w W, azaz bw { 0, 1,..., 2 2p 1 }. Minden u U vektorra jelölje w u azt a vektort, amelyre bw u = (au) 2. Végül legyen X = {(u, w u ) : u U, u 0}. Ha megvizsgáljuk azt a lineáris kombinatorikus törtfüggvény optimalizálási feladatot, amelynek inputja az X halmaz, és az a, b vektorok, láthatjuk, hogy a h függvény a következ képpen néz ki: h(δ) = max { k δk 2 : k = 1, 2,..., 2 p 1 }, tehát 2 p 1 lineáris részb l áll. 3.3. Megiddo algoritmusa a lineáris kombinatorikus törtfüggvény optimalizációra Egy másik módszer a lineáris kombinatorikus törtfüggvény optimalizációs feladatok megoldására Megiddo paraméteres keres algoritmusa, ami a következ képpen m ködik: egy A algoritmust futtatunk a lineáris alapprobléma megoldására, ami kiszámítja h(δ )-t. Az alapötlet az, hogy 22
ugyan nem tudjuk el re a δ értékét, de szimbolikusan el tudjuk végezni a számolásokat, és így a δ értéke végül ki fog derülni. 3.3.1. Deníció. Az A algoritmust lineárisnak nevezzük, ha minden összehasonlítás és számolás, amit az algoritmusban elvégzünk, az inputban szerepl számok két lineáris függvényét hasonlítja össze. 3.3.2. Megjegyzés. Itt a lineáris algoritmus elnevezés tehát nem azt jelenti, hogy az algoritmus futásideje lineáris. Ezért ha egy lineáris A algoritmusban össze kell hasonlítanunk egy x és y számot, akkor valójában x(δ )-t kell összehasonlítanunk y(δ )-gal, ahol x(δ), és y(δ) lineáris függvényei δ-nak. Nem kell tudnunk δ értékét, hogy elvégezzünk egy ilyen összehasonlítást. Elég meghatározni δ helyét az x(δ) és y(δ) függvények metszéspontjához, δ-hoz képest. Ez a probléma h( δ) el jelének kiszámolásával ekvivalens, amit a lineáris alapprobléma egy esetének megoldásával kapunk meg. Az algoritmus befejezéseképpen összegy jtjük az információkat δ -ról, és így a lineáris alapprobléma egy újabb esetének megoldásával képesek leszünk kiszámítani δ pontos értékét. Ha az A algoritmus futásideje T, akkor összesen O(T ) lineáris alapproblémát kell megoldanunk Megiddo algoritmusa közben, ezért a lineáris alapprobléma bonyolultságától függ az összes futási id. Ez a lineáris részfeladatok számára vonatkozó O(T )-s becslés csökkenthet az A algoritmus párhuzamosságát vizsgálva. Megiddo [14] számos lineáris kombinatorikus törtfüggvény optimalizációs problémára alkalmazta a paraméteres keresést és hatékony algoritmusokat kapott azokban az esetekben, amikor volt hatékony párhuzamos algoritmus a lineáris alapproblémára. Fontos megjegyezni, hogy a bináris kereséshez hasonlóan itt is elég, ha A dec -ra van eljárásunk, míg a Newton-metódushoz az "er sebb" változat, A opt megoldása szükséges. Viszont itt az algoritmusunknak lineárisnak kell lennie, ami szintén er s feltétel. A A opt feladathoz kapcsolódva, deniáljuk a következ problémát: P 0 (δ) : keressünk olyan y X et, amelyre sign(ay δby) = sign(max {ax δbx : x X }) = sign(h(δ)). 3.3.3. Tétel. Ha az F kombinatorikus törtfüggvény optimalizációs feladathoz tartozó P 0 (δ)-ra létezik olyan A lineáris algoritmus, aminek T a futásideje, akkor az F feladat O(T 2 ) id ben megoldható. Bizonyítás. Futtassuk az A algoritmust a P 0 (δ ) feladat megoldására, az ismeretlen δ paraméterrel. Mivel A lineáris algoritmus, ezért minden összehasonlítás az algoritmus során valójában egy ilyen egyenl tlenséget vizsgál: s δ t > 0?, azaz s/t > δ?, valamilyen ismert s, t 23
számokra. Egy ilyen összehasonlítást meg lehet oldani a P 0 (s/t) probléma megoldásával, az A algoritmus futtatásával, δ = s/t paraméterrel, ugyanis az s/t, és δ közti kapcsolatot meg lehet állapítani h(s/t) el jeléb l. Ezért az összes számítás lefut O(T 2 ) id ben. Valójában tehát A-ból csinálunk egy új algoritmust a következ módosításokat elvégezve. Az algoritmusban szerepl minden c valós számot átírunk (c 1, c 2 ) alakba, ahol c = c 1 δ c 2. Így például az ismeretlen δ a (0, 1) számpárnak fog megfelelni. Mivel tudjuk, hogy az A algoritmus lineáris, ezért minden összehasonlítás és számolás a δ lineáris függvénye, tehát valójában a (c 1, c 2 ), (d 1, d 2 ) alakú számokkal fogunk dolgozni. Az összeadásokat gond nélkül el tudjuk végezni: (c 1, c 2 )+(d 1, d 2 ) = (c 1 +d 1, d 1 +d 2 ), a szorzást azonban csak akkor engedjük meg, ha c 2 vagy d 2 = 0. Ekkor (c 1, c 2 ) (d 1, d 2 ) = (c 1 d 1, c 1 d 2 ), ha c 2 = 0 volt, illetve (c 1, c 2 ) (d 1, d 2 ) = (c 1 d 1, d 1 c 2 ), ha c 1 = 0 volt. Az összehasonlítások pedig így fognak kinézni az algoritmus futása során: (c 1, c 2 ) > (d 1, d 2 )? Azaz c 1 δ c 2 > d 1 δ d 2? Átrendezve a következ t kapjuk: (c 1 c 2, d 1 d 2 ) > 0? Egy ilyen összehasonlítást azonban meg tudunk oldani a P 0 ( c 1 d 1 c 2 d 2 ) feladat megoldásával, amihez csak futtatnunk kell az A-t, mint szubrutint. Ha kihasználjuk az A algoritmus összehasonlításainak lehetséges függetlenségét, jobb becsléseket kaphatunk, mint az el z tételben. Legyen Q egy olyan probléma, amelynek inputja tartalmazza a δ R paramétert. A Q probléma megoldására készült algoritmus egy szintje a számítások egy része, amelyre igaz, hogy a szinten belüli bármely összehasonlítást a szint elejére mozdítva, az összehasonlítás eredménye nem változik. Csak olyan összehasonlításokat tekintünk, amelyeknek az eredménye csak a δ paraméter értékét l függ. 3.3.4. Deníció. Egy algoritmus r szintb l áll, ha az algoritmus számításait r fázisra tudjuk osztani, az aktuális input értékekt l függetlenül. A következ tételben külön tekintjük az A 1 f algoritmust, amely az egész számítássorozatot vezérli, lineáris, valamint optimális esetben kevés szintre osztható, és az alárendelt A 2 algoritmust, amelyet arra használunk, hogy megoldjuk az A 1 algoritmus egyes számításait. Természetesen az A 1 és A 2 algoritmusok lehetnek ugyanazok, de ha a lehet legjobb futási id t szeretnénk elérni, általában nem egyeznek meg. 3.3.5. Tétel. Ha van 1. A 1 lineáris algoritmus egy F kombinatorikus törtfüggvény optimalizációs feladathoz tartozó P 0 probléma megoldására, ami T 1 id ben fut, r szintb l áll, és az i. szint q i számítást tartalmaz, és 2. A 2 algoritmus a P 0 probléma megoldására, ami T 2 id ben fut, 24
akkor az F probléma megoldható O(T 1 + T 2 1 i r log q i) id ben. Bizonyítás. Futtassuk az A 1 algoritmust a P 0 probléma megoldására, ismeretlen δ -gal. Tekintsük a számítások i. szintjét. Ezen a szinten q i független összehasonlítást kell elvégeznünk, amelyek s δ t alakúak. Ahelyett, hogy elvégezzük egyesével az összes számítást, elég ha meghatározzuk δ és a q i darab szám, azaz x 1, x 2,..., x qi kapcsolatát. Ha rendezzük ezeket a számokat, és δ -ot is elhelyezzük közöttük a megfelel helyen, a bináris keresést használva, akkor ennek a szintnek a futási ideje O(q i log q i +T 2 log q i ), hiszen az A 2 algoritmust használjuk minden összehasonlításnál. Ebb l következik, hogy az az egész probléma megoldására O(T 1 max {log q i } + T 2 1 i r log q i) a futási id. Hogy megkapjuk a tételbeli futási id t, gyeljük meg, hogy az x 1, x 2,..., x qi számok rendezése elkerülhet. Ehelyett megkereshetjük a számok mediánját O(q i ) id ben, és elég, ha ezt a mediánt hasonlítjuk össze δ -gal az A 2 algoritmust használva. Ennek az összehasonlításnak az eredménye megmondja nekünk a kapcsolatot δ és a számok fele között. Ezt ismételve, ismét megkeressük a maradék számok felének mediánját, és azt összehasonlítjuk δ -gal. Így végül a számokat két részre tudjuk osztani: a δ -nál nagyobbakra, és a δ -nál kisebbekre. A futási ideje O( ( q i 2 k + T 2)) = O(q i + T 2 log q i ). 0 k log q i Összegezve ezt az összes szintre, a tételbeli futási id t kapjuk. Hogy minimalizálni tudjuk az el z tételbeli futási id t egy adott kombinatorikus törtfüggvény optimalizációs feladatra, az A 2 algoritmusnak a lehet leggyorsabbnak kell lennie a probléma nem-tört alakú verziójára. Hogy az A 1 algoritmusra is megtaláljuk a lehet legjobbat, érdemes megvizsgálni a párhuzamos algoritmusokat, mivel ezek kifejezetten úgy lettek kitalálva, hogy kevés szintjük legyen. Egy párhuzamos algoritmus, ami P processzort használva T ideig fut, úgy is tekinthet, mint egy nem párhuzamos, ami T P id ben fut, és T szintje van, minden szinten legfeljebb P számítással. Ezért az alábbi tétel közvetlen következménye a (3.3.5) tételnek. 3.3.6. Tétel. Ha van 1. A 1 lineáris algoritmus egy F kombinatorikus törtfüggvény optimalizációs feladathoz tartozó P 0 probléma megoldására, ami T 1 id ben fut, és P processzort használ, és 2. A 2 algoritmus a P 0 probléma megoldására, ami T 2 id ben fut, akkor az F probléma megoldható O(T 1 P + T 2 T 1 log P ) id ben. Hogy még jobb futási id t kaphassunk, vizsgáljuk meg a következ feladatot, ugyanis az A 1 algoritmusban gyakran el fordulhatnak ilyen alakú részfeladatok: u(δ ) max {u 1 (δ ), u 2 (δ ),..., u q (δ )}, (3.11) 25
ahol u i lineáris függvénye a δ paraméternek. Több megközelítését is bemutatjuk ennek a problémának, és próbálunk minél jobb becslést adni rá. Ha ezt a (3.11) maximumot úgy számoljuk ki, hogy minden u i -t (i = 2, 3..., q) összehasonlítunk az eddig már megtalált maximummal, akkor O(T 2 q) id szükséges a számításhoz, hiszen q 1 szintre tudjuk osztani, minden szinten egy összehasonlítással. Mint korábban is, T 2 jelöli az A 2 algoritmus futási idejét, amit az A 1 algoritmus összehasonlításainak megoldására használunk. 3.3.7. Állítás. A (3.11) maximum O(q + T 2 log 2 q) id ben kiszámítható. Bizonyítás. Ha az összehasonlítandó elemeket tournament fába rendezzük, log q szintet kapunk, minden szinten O(q) összehasonlítással. Ekkor a (3.3.5) tétel miatt O(q + T 2 log 2 q) id ben kiszámítható a (3.11) maximum. 3.3.8. Állítás. A (3.11) maximum O(q + T 2 log q log log q) id ben kiszámítható. Bizonyítás. A szintek száma lecsökkenthet O(log log q)-ra a következ képpen: kövessük a tournament fát O(log log log q) szintig, hogy a még versenyben lév elemek (amelyek eddig minden összehasonlításukat megnyerték) száma k 1 q/(log log q)-ra csökkenjen. A továbbiakban az i. iterációban a k i még versenyben lév elemet osszuk ki 2/(2k 1) egyenl re részre, és minden csoporton belül végezzük el az elemek összehasonlítását, hogy megtaláljuk a csoport legnagyobb elemét. Így az i. iterációban 2k 1 = O(q log log q) szükséges, és a még versenyben lév elemek számát k i+1 = ki 2/(2k 1)-re csökkenti. Tehát k i = k 1 /2 2i 1 1, ezért O(log log q) ilyen iterációt kell elvégeznünk. Összességében tehát ez az algoritmus q elem maximumának kiszámítására O(q) összehasonlítást végez el O(log log q) szinten. Ha ezt használjuk, mint A 1 algoritmus, akkor szintén a (3.3.5) tétel felhasználásával O(q + T 2 log q log log q) futási id t kapunk a (3.11) maximum kiszámítására. 3.3.9. Állítás. A (3.11) maximum O(q log q + T 2 log q) id ben kiszámítható. Bizonyítás. A következ képpen is kiszámíthatjuk ezt a (3.11) maximumot: q lineáris függvény maximuma konvex, szakaszonként lineáris, és legfeljebb q töréspontja van. Ha van két konvex, szakaszonként lineáris függvényünk π 1 és π 2, egyenként q 1, illetve q 2 törésponttal, és ezek a töréspontok növekv sorrendbe vannak rendezve az x koordinátájuk szerint, akkor a max {π 1, π 2 } függvény növekv sorrendbe rendezett töréspontjait O(q 1 + q 2 ) id ben kiszámíthatjuk, egyszer en merge rendezéssel. Így az u 1, u 2,..., u q lineáris függvények maximumának töréspontjait O(q log q) id ben meghatározhatjuk. Azt a lineáris részt megtalálni pedig, amelyik tartalmazza q -ot, a bináris kereséssel tudjuk, a töréspontokat használva. Így összességében a (3.11) maximum O(q log q + T 2 log q) id ben számítható ki. 26
3.3.10. Deníció. Egy A algoritmus maximumszámítási fázisa az algoritmus egy része, amelyben minden összehasonlítás részt vesz a maximumok kiszámításban, és ezek a maximumok függetlenek, ezért tetsz leges sorrendben elvégezhet ek a számítások, anélkül, hogy megváltozna az eredményük. A következ tételben az utóbbi két (3.11) maximumszámítási módszert fogjuk felhasználni. Legyen q elem maximumának a mérete q. 3.3.11. Tétel. Ha van 1. A 1 lineáris algoritmus egy F kombinatorikus törtfüggvény optimalizációs feladathoz tartozó P 0 probléma megoldására, ami T 1 id ben fut, r maximumszámítási fázisa van, és a maximumok teljes mérete az i. fázisban legfeljebb q i, és 2. A 2 algoritmus a P 0 probléma megoldására, ami T 2 id ben fut, akkor az F probléma megoldható (i) O(T 1 + T 2 1 i r log q i log log q i ) id ben, és (ii) O(T 1 + 1 i r (q i + T 2 ) log q i ) id ben. Bizonyítás. Futtassuk az A 1 algoritmust a P 0 probléma megoldására az ismeretlen δ paraméterrel, és tekintsük az i. fázisát a számításoknak. Ekkor legfeljebb q i méret, egymástól független maximumokat kell kiszámítanunk. Ha ezeket párhuzamosan számítjuk az O(q log log q) szintes, korábban említett algoritmussal, akkor ennek a fázisnak a futási ideje O(q i + T 2 log q i log log q i ), amib l megkapjuk a tételbeli (i) teljes futási id t. Ha viszont el ször kiszámítjuk az összes maximum töréspontját, rendezzük az összes töréspontot, és elhelyezzük δ -ot a rendezett listában a bináris kereséssel, akkor az i. fázis futási ideje O((q i + T 2 ) log q i ), és ezt összegezve kapjuk az egész algoritmus futási idejére a tételbeli (ii) becslést. 27
4. fejezet Hiperbolikus programozási feladatok 4.0.12. Deníció. Hiperbolikus programozási feladatnak nevezünk egy optimalizálási feladatot, ha lineáris feltételrendszer nemnegatív megoldásait tartalmazó halmaz felett olyan racionális törtfüggvény optimumát keressük, amelyben mind a számláló, mind a nevez lineáris els fokú függvény. A hiperbolikus elnevezés abból a tényb l adódik, hogy egyváltozós esetben az f(x) = cx+c 0 dx+d 0 célfüggvény képe hiperbola. Szokás még lineáris programozási feladatnak nevezni törtlineáris célfüggvénnyel. Az általános lineáris programozási feladatoknál egy adott célfüggvényhez kerestük az optimális megoldást. El fordulhat azonban, hogy több szempont együttes gyelembevételével szeretnénk optimális megoldást találni. Ha például az egyik szempont szerint minimalizálni, a másik szerint maximalizálni szeretnénk, akkor a két célfüggvény hányadosának optimumát keresve olyan megoldást találunk, amely a lehet legkisebb els érték mellett a lehet legnagyobb a második érték szerint. M szaki és gazdasági területeken gyakran el fordulnak olyan optimalizálási modellek, ahol valamilyen hatékonysági mutatószámot (pl. termelékenység, egységnyi ráfordításra jutó teljesítmény, egységnyi nyereségre jutó ráfordítás stb.) akarunk optimalizálni. Hasonlóképpen, ha egy bizonyos mennyiség átlagát akarjuk optimalizálni, akkor is ilyen hiperbolikus programozási feladathoz jutunk. A hiperbolikus programozási feladat általános alakja a következ : Ax = b x 0 cx + c 0 max, dx + d 0 (4.1) 28