Polynomi´ aln´ı algoritmy pro line´ arn´ı programov´ an´ı Petr Kolman Prosinec 2013
Pˇredmluva Tento text se snaˇz´ı ˇcten´aˇri se z´akladn´ımi znalostmi line´ arn´ı algebry, matematick´e anal´ yzy a line´ arn´ıho programov´an´ı element´arn´ım zp˚ usobem pˇredstavit dvˇe metody pro ˇreˇsen´ı u ´loh line´ arn´ıho programov´an´ı v polynomi´ aln´ım ˇcase, totiˇz elipsoidovou metodu a metodu vnitˇrn´ıho bodu (resp. jednu z jej´ıch mnoha variant ze skupiny metod sniˇzov´an´ı potenci´ alu). Dˇekuji Martinu Perglovi za v´ ychoz´ı verzi pozn´amek k elipsoidiv´e metodˇe podle bˇehu pˇredn´ aˇsky Matematick´e programov´an´ı v roce 2006/2007 a Duˇsanovi Knopovi za elektronickou podobu jeho pozn´amek k metodˇe vnitˇrn´ıho bodu z bˇehu t´eˇze pˇredn´ aˇsky ve ˇskoln´ım roce 2008/2009. Za podporu dˇekuji t´eˇz Centru Excelence – Institutu Teoretick´e Inforˇ matiky (CE – ITI, projekt P202/12/G061 GA CR).
Praha, prosinec 2013
Petr Kolman
Obsah
1 Struˇ cn´ y historick´ yu ´ vod 2 Elipsoidov´ a metoda 2.1 N´ aˇcrt algoritmu . . . . . . . . . . . . . . . . 2.2 Opakovan´ı z line´ arn´ı algebry . . . . . . . . 2.3 Poˇc´ateˇcn´ı elipsoid . . . . . . . . . . . . . . . 2.4 Iteraˇcn´ı krok: v´ ypoˇcet Ek+1 z Ek . . . . . . 2.5 Kdy skonˇcit . . . . . . . . . . . . . . . . . . 2.6 Jak se zbavit zjednoduˇsuj´ıc´ıch pˇredpoklad˚ u 2.7 Shrnut´ı . . . . . . . . . . . . . . . . . . . .
1 . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
5 5 6 8 9 15 17 19
3 Metoda vnitˇ rn´ıho bodu 3.1 N´ aˇcrt algoritmu . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Z´akladn´ı definice a pozorov´an´ı . . . . . . . . . . . . . . . 3.3 Struktura algoritmu . . . . . . . . . . . . . . . . . . . . . 3.4 Jak nal´ezt striknˇe pˇr´ıpustn´ a ˇreˇsen´ı s omezen´ ym potenci´alem 3.5 Iteraˇcn´ı krok . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Jak ze skoro optim´aln´ıho ˇreˇsen´ı naj´ıt u ´plnˇe optim´aln´ı . . . 3.7 Shrnut´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21 21 23 25 26 28 35 37
Literatura
40
1 Struˇcn´ y historick´ yu ´vod Soustav´am line´ arn´ıch nerovnic a teorii mnohostˇen˚ u, vˇcetnˇe jejich aplikac´ı, vˇenovali matematikov´e pozornost pˇrinejmenˇs´ım od 19. stolet´ı. Jmenujme alespoˇ n Fouriera, jeˇstˇe pˇred n´ım Lagrangea a Bernoulliho, pozdˇeji Farkase a Minkowsk´eho. Za poˇc´atek nov´eho oboru naz´ yvan´eho line´ arn´ı programov´an´ı se pokl´ ad´ a ale aˇz druh´a polovina 40. let 20. stolet´ı. Matematick´e z´aklady oboru tehdy poloˇzili pˇredevˇs´ım von Neumann a trojice matematik˚ u Gale, Kuhn, Tucker. Jejich hlavn´ım pˇr´ınosem bylo vybudov´an´ı teorie duality line´ arn´ıho programov´an´ı; von Neumann ve sv´em pˇr´ıstupu vyuˇzil v´ ysledky, kter´e z´ıskal pˇri pr´aci na jin´em nov´em oboru rozv´ıjej´ıc´ım se v t´e dobˇe, teorii her. Jeˇstˇe pˇred nimi se nez´ avisle na sobˇe souvisej´ıc´ım probl´emum vˇenovali v Sovˇetsk´em svazu Kantoroviˇc a ve Spojen´ ych st´atech Hitchcock; jejich pr´ace z˚ ustaly ˇzel ˇrady let nedocenˇeny. Kl´ıˇcov´ ym momentem pro v´ yvoj line´ arn´ıho programov´an´ı byl Dantzig˚ uv simplexov´ y algoritmus (publikov´an 1947), kter´ y se na mnoho let stal nezbytnou souˇc´ast´ı oboru. Nezanedbateln´ ym podnˇetem, kter´ y rozvoj line´ arn´ıho programov´an´ı podstatnˇe ovlivnil a podpoˇril, byl pˇr´ıchod poˇc´ıtaˇc˚ u, z nichˇz prvn´ı pˇriˇsly na svˇet pr´avˇe ve 40. letech. Uspokojiv´e praktick´e v´ ysledky simplexov´eho algoritmu byly v´ yborn´ ym doporuˇcen´ım pro jeho ˇsirok´e pouˇzit´ı v praxi a line´ arn´ı programov´ an´ı se simplexov´ ym algoritmem se na dlouhou dobu stalo nezbytn´ ym arzen´ alem ekonom˚ u. Za zm´ınku stoj´ı v t´eto souvislosti skuteˇcnost, ˇze Kantoriviˇc a Koopmans, kteˇr´ı v´ yraznˇe pˇrispˇeli k rozvoji line´ arn´ıho programov´an´ı, obdrˇzeli spoleˇcnˇe v roce 1975 Nobelovu cenu za ekonomii. T´emˇeˇr oddˇelenˇe prob´ıhal v´ yvoj t´ ykaj´ıc´ı se obecnˇejˇs´ıch optimalizaˇcn´ıch probl´em˚ u. V tomto svˇetˇe se doˇckaly velk´eho rozkvˇetu v 60. letech 20. stolet´ı postupy zn´ am´e dnes pˇredevˇs´ım pod jm´enem metody
2
Kapitola 1. Struˇcn´ y historick´ yu ´vod
vnitˇrn´ıho bodu (Frisch, Fiacco, McCormick). Algoritmy navrˇzen´e v t´eto dobˇe vˇsak ˇcasto trpˇely numerickou nestabilitou. S nov´ ym podnˇetem k dalˇs´ımu rozvoji line´ arn´ıho programov´an´ı pˇriˇsla na poˇc´atku 70. let teorie sloˇzitosti. Nejprve se ˇrada lid´ı pokouˇsela dok´azat, ˇze simplexov´ y algoritmus pracuje v polynomi´ aln´ım ˇcase. V roce 1972 ovˇsem Klee a Minty popsali pˇr´ıklad ukazuj´ıc´ı exponenci´aln´ı ˇcasovou sloˇzitost pro nˇekter´e varianty simplexov´eho algoritmu; brzy pˇribyly podobn´e v´ ysledky i pro jin´e varianty algoritmu. To podn´ıtilo z´ajem o alternativn´ı postupy na ˇreˇsen´ı u ´loh line´ arn´ıho programov´an´ı. Zlom pˇrich´az´ı v roce 1979, kdy rusk´ y matematik Chaˇcijan publikoval v ruˇstinˇe kr´atk´ y ˇcl´ anek (bez d˚ ukaz˚ u) o tom, jak lze pomoc´ı tzv. elipsoidov´e metody ˇreˇsit u ´lohu line´ arn´ıho programov´an´ı v polynomi´ aln´ım ˇcase; samotn´a metoda byla navrˇzena jiˇz dˇr´ıve v 70. letech pro probl´emy konvexn´ıho neline´arn´ıho ˇ programov´an´ı (Yudin, Nemirovski, Sor). V´ ysledek mˇel neb´ yval´ y medi´ aln´ı ohlas, ˇzel se ale z´ahy uk´azalo, ˇze k praktick´emu pouˇzit´ı se metoda nehod´ı. Hled´ an´ı alternativ simplexov´eho algoritmu pokraˇcovalo. Dalˇs´ım mezn´ıkem v historii line´ arn´ıho programov´an´ı byl rok 1984, kdy Karmakar ze spoleˇcnosti AT&T navrhl algoritmus spadaj´ıc´ı do skupiny metod vnitˇrn´ıho bodu a dok´azal, ˇze doba jeho bˇehu je polynomi´ aln´ı. Jak jsme jiˇz zm´ınili v´ yˇse, samotn´a metoda nebyla nov´a, hlavn´ı Karmarkar˚ uv pˇr´ınos byl v aplikaci metody na u ´lohu line´ arn´ıho programov´an´ı a zejm´ena v anal´ yze ˇcasov´e sloˇzitosti algoritmu. Za zm´ınku stoj´ı, ˇze velmi podobn´ y algoritmus pro line´ arn´ı programov´an´ı navrhl (1967) a posl´eze (1974) dok´azal jeho konvergenci k optim´aln´ımu ˇreˇsen´ı Kantoroviˇc˚ uv student, rusk´ y matematik Dikin; jeho pr´ace ˇzel z˚ ustala dlouho nepovˇsimnuta. Od roku 1984 byly publikov´any doslova tis´ıce ˇcl´ ank˚ u t´ ykaj´ıc´ıch se metod vnitˇrn´ıho bodu. Velmi zhruba se daj´ı rozdˇelit na metody sniˇzov´an´ı potenci´alu (sem patˇr´ı Karmakar˚ uv algoritmus a tak´e algoritmus popsan´ y v tomto textu), metody sledov´an´ı centr´aln´ı cesty (ty se dnes zdaj´ı nejlepˇs´ı pro praktick´e pouˇzit´ı a hojnˇe se pouˇz´ıvaj´ı v softwarov´ ych bal´ıc´ıch pro line´ arn´ı programov´an´ı, pˇredevˇs´ım algoritmy tzv. Mehrotrova typu) a metody afinn´ıch transformac´ı (u tˇech se vˇetˇsinou dokazuje pouze konvergence k optim´aln´ımu ˇreˇsen´ı, nikoli polynomi´ aln´ı odhad na ˇcasovou sloˇzitost); mnoh´e varianty tak´e najdete pod jm´enem bari´erov´e metody. Mimo jin´e se uk´azalo, ˇze tyto metody jsou pouˇziteln´e i pro nˇekter´e jin´e probl´emy konvexn´ı optimalizace, pˇredevˇs´ım pro semidefinitn´ı programov´an´ı. Nepˇr´ım´ ym d˚ usledkem Karmakarovy pr´ace je i to, ˇze doˇslo k vˇetˇs´ımu propojen´ı dvou vˇedeck´ ych komunit: komunity ekonom˚ u vˇenuj´ıc´ıch se line´ arn´ımu programov´an´ı, a komunity matematik˚ u
3 studuj´ıc´ıch neline´arn´ı optimalizaci. Na z´avˇer si jeˇstˇe vˇsimnˇeme nˇekter´ ych rozd´ıl˚ u mezi simplexov´ ym algoritmem, elipsoidovou metodou a metodou vnitˇrn´ıho bodu. Simplexov´ y algoritmus chod´ı po hranici mnohostˇenu, totiˇz po jeho vrcholech. Elipsoidov´ y algoritmus se (kromˇe posledn´ıho kroku) pohybuje vnˇe mnohostˇenu. Metoda vnitˇrn´ıho bodu na rozd´ıl od obou ostatn´ıch metod pracuje uvnitˇr mnohostˇenu. Svou podstatou je simplexov´ y algoritmus diskr´etn´ım algoritmem, zat´ımco elipsoidov´a metoda i metoda vnitˇrn´ıho bodu je iteraˇcn´ım algoritmem. Pro sezn´ amen´ı se se z´aklady teorie line´ arn´ıho programov´an´ı doporuˇcujeme ˇcten´aˇri uˇcebn´ı text J. Matouˇska Line´ arn´ı programov´ an´ı a line´ arn´ı algebra pro informatiky [7], pˇr´ıpadnˇe rozˇs´ıˇrenou anglickou verzi [8]. Pozornosti zv´ıdav´eho ˇcten´aˇre doporuˇcujeme d´ale n´ asleduj´ıc´ı v´ ysledky (a jeden probl´em): • Silnˇe polynomi´ aln´ı algoritmus pro line´ arn´ı programy s koeficienty 1, -1, 0 – Tardos [12]. • Silnˇe polynomi´ aln´ı algoritmus pro line´ arn´ı programy v omezen´e dimenzi – Megiddo [9]. • Zd˚ uvodnˇen´ı, proˇc simplexov´ y algoritmus potˇrebuje ,,vˇetˇsinou” pouze polynomi´ aln´ı ˇcas – Spielman a Teng [11]. • Hirschova (polynomi´ aln´ı) hypot´eza - do optim´aln´ıho vrcholu vˇzdy vede ,,kr´atk´a” cesta po hranici mnohostˇenu.
2 Elipsoidov´a metoda 2.1 N´aˇcrt algoritmu Zad´ an´ı: Pro dan´ y mnohostˇen P = {x | Ax ≤ b} naj´ıt x ∈ P , pokud existuje, a v opaˇcn´em pˇr´ıpadˇe rozpoznat, ˇze P je pr´azdn´ y. V tomto textu pop´ıˇseme tzv. elipsoidovou metodu, coˇz je algoritmus, kter´ y dan´ y probl´em ˇreˇs´ı v polynomi´ aln´ım ˇcase vzhledem k velikosti zad´an´ı (podrobnosti n´ıˇze). Na konci kapitoly uvedeme, jak algoritmus zobecnit pro ˇreˇsen´ı optimalizaˇcn´ı verze probl´emu, tedy pro u ´lohu u ´lohu T max{c x | Ax ≤ b}. Pro zjednoduˇsen´ı popisu algoritmu budeme prozat´ım o mnohostˇenu P pˇredpokl´ adat: P1 P je omezen´ y (tj. cel´ y P se vejde do koule o dostateˇcnˇe velk´em pr˚ umˇeru), P2 Je-li P nepr´ azdn´ y, pak je pln´e dimenze (tj. pro dostateˇcnˇe mal´e ǫ > 0 se do P vejde cel´a koule s pr˚ umˇerem ǫ). Hrub´ y n´ aˇ crt algoritmu: Najdeme dostateˇcnˇe velk´ y elipsoid E0 takov´ y, aby obsahoval cel´ y mnohostˇen P (pˇredpoklad P1 zaruˇcuje, ˇze takov´ y elipsoid existuje) a opakovanˇe prov´ad´ıme n´asleduj´ıc´ı. Pokud stˇred zk elipsoidu Ek leˇz´ı uvnitˇr P , naˇsli jsme poˇzadovan´e ˇreˇsen´ı. V opaˇcn´em pˇr´ıpadˇe v´ıme, ˇze zk poruˇsuje nˇejakou nerovnost ze syst´emu Ax ≤ b, ˇreknˇeme i-tou nerovnost aTi x ≤ bi . Vezmeme poloprostor odpov´ıdaj´ıc´ı poruˇsen´e nerovnosti a posuneme ho tak, aby jeho hranice proch´azela bodem zk ; oznaˇcme Hk tento posunut´ y poloprostor, tedy Hk = {x | aTi x ≤
6
Kapitola 2. Elipsoidov´a metoda
y mnohostˇen P leˇz´ı v pr˚ uniku elipsoidu Ek s poloprostoaTi zk }. Pak cel´ rem Hk . Najdeme nov´ y (menˇs´ı) elipsoid Ek+1 obsahuj´ıc´ı Ek ∩ Hk a krok opakujeme. Jak pozn´ame, ˇze je P pr´azdn´ y a ˇze m˚ uˇzeme pˇrestat s konstrukc´ı nov´ ych elipsoid˚ u? Vyuˇzijeme n´aˇs druh´ y pˇredpoklad P2. Je-li P nepr´ azdn´ y, je moˇzno na z´akladˇe A a b spoˇc´ıtat doln´ı odhad na objem P . Pokud zajist´ıme, ˇze objem elipsoidu Ek+1 je vˇzdy v´ yraznˇe menˇs´ı neˇz objem elipsoidu Ek , pak po dostateˇcn´em poˇctu krok˚ u budeme vˇedˇet, ˇze nepr´ azdn´ y P by se jiˇz d´ıky sv´emu objemu do elipsoidu El , pro dostateˇcnˇe velk´e l, neveˇsel a tud´ıˇz P mus´ı b´ yt pr´azdn´ y. Abychom dostateˇcnˇe popsali elipsoidovou metodu (za v´ yˇse uveden´ ych pˇredpoklad˚ u P1 a P2), potˇrebujeme zodpovˇedˇet tyto ot´ azky: 1. Jak na poˇc´atku volit elipsoid E0 tak, aby P ⊆ E0 ? 2. Jak ze star´eho elipsoidu Ek spoˇc´ıtat nov´ y Ek+1 , neboli jak volit parametry nov´eho, aby obklopoval, co m´ a, a pˇritom byl co do objemu podstatnˇe menˇs´ı? 3. Kolik iterac´ı je tˇreba prov´est k nalezen´ı x ∈ P nebo k rozpozn´an´ı, ˇze P je pr´azdn´e? D´ ale bude tˇreba uk´azat, jak se pˇredpoklad˚ u P1 a P2 zbavit. Neˇz se ale tˇemto ot´ azk´ am budeme vˇenovat, zavedeme a pˇripomeneme nˇekter´e z´akladn´ı potˇrebn´e pojmy a skuteˇcnosti.
2.2 Opakovan´ı z line´arn´ı algebry Porovn´an´ı vektor˚ u (pˇr´ıpadnˇe matic) prov´ad´ıme po sloˇzk´ ach: pro vektory n x, y ∈ R p´ıˇseme x ≤ y, pokud xi ≤ yi pro i = 1, . . . , n. Jednotkovou matici znaˇc´ıme I. Opakovanˇe budeme pracovat s vektory 0 = (0, 0, . . . , 0)T a e1 = (1, 0, . . . , 0)T . 2.2.1 Definice. Symetrickou matici A ∈ finitn´ı, jestliˇze ∀x 6= 0 plat´ı xT Ax > 0.
Rn×n naz´yv´ame positivnˇe de-
2.2.2 Tvrzen´ı. Pro pozitivnˇe definitn´ı matici A plat´ı: • Vˇsechna vlastn´ı ˇc´ısla matice A jsou kladn´ a, • inverzn´ı matice A−1 je tak´e pozitivnˇe definitn´ı,
2.2. Opakovan´ı z line´ arn´ı algebry
7
• existuje pr´avˇe jedna pozitivnˇe definitn´ı matice Q takov´a, ˇze A = QT · Q; takovou matici Q znaˇc´ıme A1/2 . Pro n´as bude d˚ uleˇzit´a posledn´ı vlastnost. 2.2.3 Definice. Mnoˇzinu E(a, A) = {x ∈ Rn | (x − a)T A−1 (x − a) ≤ 1} , kde A je pozitivnˇe definitn´ı matice, budeme naz´ yvat elipsoidem se stˇredem v a a urˇcen´ ym matic´ı A. 2.2.4 Pˇ r´ıklad. E(0, I) = {x ∈ stˇredem v poˇc´atku.
Rn
| xT x ≤ 1} – jednotkov´a koule se
2.2.5 Definice. Zobrazen´ı T : Rn → Rn naz´ yv´ ame afinn´ı zobrazen´ı, pokud je d´ano pˇredpisem T (x) = Qx + s, kde Q ∈ Rn×n je matice a s ∈ Rn je vektor (tj. T je sloˇzen´ım line´ arn´ıho zobrazen´ı a posunut´ı). 2.2.6 Tvrzen´ı. Kaˇzd´ y elipsoid E(a, A) je afinn´ım obrazem jednotkov´e koule: E(a, A) = A1/2 · E(0, I) + a .
D˚ ukaz. E(a, A) = {x ∈ Rn : (x − a)T A−1 (x − a) ≤ 1} = {x ∈ Rn | (x − a)T · A−1/2 T · A−1/2 · (x − a) ≤ 1}. Oznaˇcme y = A−1/2 · (x − a). Potom A1/2 y+a = x. Dosad´ıme-li do formule popisuj´ıc´ı elipsoid, z´ısk´ ame −1/2 (uvˇedomme si, ˇze A je tak´e positivnˇe definitn´ı matice, tud´ıˇz je syT metrick´a a A−1/2 = A−1/2 ): E(a, A) = {(A1/2 y + a) ∈ Rn | yT y ≤ 1} = A1/2 · E(0, I) + a . Pro T ⊆ Rn budeme vol(T ) oznaˇcovat objem mnoˇziny T . 2.2.7 Tvrzen´ı. Pro afinn´ı zobrazen´ı T : T (x) = Qx + t a mnoˇzinu X ⊆ Rn plat´ı:
Rn
→
Rn
⊔ ⊓
dan´e pˇredpisem
vol(T (X)) = | det Q| · vol(X) . V pˇr´ıpadˇe elipsoid˚ u dostaneme rovnost: vol(E(a, A)) = | det(A1/2 )| · vol(E(0, I)).
8
Kapitola 2. Elipsoidov´a metoda
2.2.8 Pozorov´ an´ı. Pro objem elipsoidu E(a, A) plat´ı: | det(A1/2 )| · n−n ≤ vol(E(a, A)) ≤ | det(A1/2 )| · 2n . Odhady se op´ıraj´ı o objem krychle vepsan´e, resp. opsan´e. 2.2.9 Definice. Velikost z´apisu. Pro cel´e ˇc´ıslo k znaˇc´ıme hki = 1 + ⌈log2 (|k|+1)⌉, coˇz je poˇcet bit˚ u potˇrebn´ ych pro z´apis k vˇcetnˇe znam´enka. p Podobnˇe pro racion´ aln´ı ˇc´ıslo r = q , kde p a q jsou nesoudˇeln´a, znaˇc´ıme Pn n znaˇ Q hri = hpi + hqi. Pro racion´ aln´ı vektor v ∈ c ´ ıme hvi = i=1 hvi i a P m Pn m×n pro matici A ∈ Q obdobnˇe hAi = i=1 j=1 hai,j i. Je uˇziteˇcn´e uvˇedomit si, ˇze pro kaˇzd´e pˇrirozen´e ˇc´ıslo r plat´ı nerovnost |r| ≤ 2hri−1 − 1.
2.3 Poˇc´ateˇcn´ı elipsoid Zaˇcneme pˇripomenut´ım zn´ am´e nerovnosti poskytuj´ıc´ı horn´ı odhad na velikost determinantu matice. 2.3.1 Lemma (Hadamardova nerovnost). Pro kaˇzdou ˇctvercovou matici C plat´ı: n Y kCi k , | det C| ≤ i=1
kde Ci oznaˇcuje i-t´ y sloupec matice C a kuk velikost vektoru u.
V d˚ ukazu hlavn´ıho v´ ysledku t´eto kapitolky bude naˇs´ım n´astrojem n´asleduj´ıc´ı lemma. 2.3.2 Lemma. Necht’ C je celoˇc´ıseln´a matice n × n. Pak plat´ı 2
| det C| ≤ 2hCi−n . D˚ ukaz. 1 + | det C| ≤ 1 +
n Y i=1
kCi k ≤
n Y i=1
(1 + kCi k) ≤
n Y
2
2kCi k−n = 2hCi−n .
i=1
Vu ´prav´ach jsme kromˇe Hadamardovy nerovnosti pouˇzili pro velikost nsloˇzkov´eho racion´ aln´ıho vektoru x odhad kxk ≤ 2hxi−n − 1, odvozen´ y
2.4. Iteraˇcn´ı krok: v´ ypoˇcet Ek+1 z Ek
9
takto: 1 + kxk ≤1 + n Y i=1
n X i=1
|xi | ≤
n Y i=1
hxi i−1
(1 + (2
(1 + |xi |) ≤
− 1)) ≤
n Y
(2.1)
2hxi i−1 = 2hxi−n .
i=1
⊔ ⊓
y mnohostˇen a 2.3.3 Lemma. Je-li P = {x | Cx ≤ d} ⊆ Qn omezen´ C a d jsou celoˇc´ıseln´e, pak vˇsechny vrcholy P jsou obsaˇzeny v kouli se √ stˇredem v poˇc´atku a polomˇerem R = n · 2hC,di+n log n . D˚ ukaz. Uvaˇzme libovoln´ y vrchol v polytopu P . Z teorie mnohostˇen˚ u ′ ′ v´ıme (napˇr. [1]), ˇze pak existuje podsyst´em nerovnost´ı C x ≤ d (vybran´ y ze syst´emu nerovnost´ı Cx ≤ d) takov´ y, ˇze v je jedin´ ym ˇreˇsen´ım ′ det(C ) C ′ x = d′ . Z Cramerova pravidla dost´ av´ame: vi = det(Ci′ ) , kde Ci′ je matice vznikl´a z C ′ nahrazen´ım i-t´eho sloupce vektorem d′ . Protoˇze matice C ′ je celoˇc´ıseln´a a regul´ arn´ı, m´ ame |det(C ′ )| ≥ 1. Pro horn´ı odhad velikosti vi uˇzijeme n´asleduj´ıc´ı horn´ı odhad velikosti determinantu. K yv´ a dokonˇcen´ı d˚ ukazu Lemmatu 2.3.3 si vˇsimneme, ˇze hCi′ i ≤ hC, di. Zb´ hC,di+n log n upoˇc´ıtatqd´elku vektoru o vˇsech sloˇzk´ ach velikosti nejv´ yˇse 2 : Pn √ hC,di+n log n )2 = kvk ≤ n · 2hC,di+n log n , coˇz je hledan´ y poi=1 (2 lomˇer R. ⊔ ⊓ Jako poˇc´ateˇcn´ı elipsoid E1 pouˇzijeme tedy kouli E(, R · I).
2.4 Iteraˇcn´ı krok: v´ ypoˇcet Ek+1 z Ek Snadn´ y pˇ r´ıpad: Ek = E(0, I) a Hk = {x | x1 ≤ 0}. V t´eto ˇc´asti pˇredpokl´ ad´ ame, ˇze Ek = E(0, I) a Hk = {x | x1 ≤ 0}. Pro zjednoduˇsen´ı z´apisu (uˇsetˇren´ı index˚ u) budeme pouˇz´ıvat znaˇcen´ı B m´ısto Ek (jedn´ a se o jednotkovou kouli kolem poˇc´atku) a H m´ısto Hk . M´ ame tedy B = n T n T {x ∈ R | x x ≤ 1}, H = {x ∈ R | e1 x ≤ 0} a oznaˇcme B − = B ∩ H ,,z´apornou” polovinu jednotkov´e koule se stˇredem v poˇc´atku, to jest B − = {x ∈ Rn |xT x ≤ 1, x1 ≤ 0}. Hled´ ame elipsoid E ′ obsahuj´ıc´ı B − , kter´ y bude ,,mal´ y”. Pˇresnˇeji, chceme, aby vol(E ′ ) ≤ q · vol(E) pro nˇejakou konstantu q < 1. Protoˇze mnoˇzina
10
Kapitola 2. Elipsoidov´a metoda
B
B−
E′
Obr´azek 2.1: Hledan´e E ′ . B − je symetrick´a kolem osy x1 , budeme hledat E ′ ve tvaru E ′ = {x ∈ Rn |(x − z)T Z −1 (x − z) ≤ 1},
kde z = t · e1 pro t ∈ R− a Z je diagon´ aln´ı matice. Vezmˇeme 0 < p < 1 a d > 1 a diagon´ aln´ı matici Z takovou, ˇze 1 p2
Z −1
=
1 d2
1 d2
..
. 1 d2
.
Pak elipsoid E ′ bude ve smˇeru prvn´ı souˇradnice smrˇstˇen´ y (ve srovn´an´ı s koul´ı o stejn´em poˇc´atku) a ve smˇeru vˇsech ostatn´ıch souˇradnic roztaˇzen´ y. Chceme, aby se tento n´aˇs nov´ y elipsoid E ′ toho p˚ uvodn´ıho E = B dot´ ykal v bodech −e1 a e2 (viz obr. 2.1) a ze vˇsech takov´ ych chceme ten s nejmenˇs´ım objemem. Z prvn´ı podm´ınky na dotek dost´ av´ame n´asleduj´ıc´ı omezen´ı:
a tedy:
T (−1 − t)e1
1 p2
1 d2
1 d2
..
. 1 d2
(1 + t)2 =1. p2
(−1 − t)e1 = 1
2.4. Iteraˇcn´ı krok: v´ ypoˇcet Ek+1 z Ek
11
Ze druh´e podm´ınky na dotek dost´ av´ame: 1
p2
1 d2
(−t, 1, 0, ..., 0)
1 d2
..
. 1 d2
−t 1 0 = 1 , .. . 0
tedy t2 1 + =1. p2 d 2 Z v´ yˇse uveden´ ych v´ yraz˚ u vyj´ adˇr´ıme 1/p2 a 1/d2 jako funkce promˇenn´e t: 1 1 1 + 2t 1 = , = . p2 (1 + t)2 d2 (1 + t)2 Nyn´ı m´ ame dvˇe podm´ınky na tˇri promˇenn´e. Tˇret´ı podm´ınku z´ısk´ ame ′ z poˇzadavku na minim´aln´ y podle Tvrpı objem elipsoidu E , pro kter´ ′ zen´ı 2.2.7 plat´ı vol(E ) = | det(Z)|vol(B), coˇz je rovno ′
vol(E ) = pd
n−1
(1 + t)n
vol(B) . vol(B) = p (1 + 2t)n−1
Snadno ovˇeˇr´ıme, ˇze vol(E ′ ) jako funkce promˇenn´e t nab´ yv´ a sv´eho minima pro −1 . t= n+1 Dosazen´ım za p, d a t dost´ av´ame, ˇze hledan´ y elipsoid E ′ je tvaru 1 1 ′ 2 T E = x ∈ R | (x + e1 ) D(x + e1 ) ≤ 1 , n+1 n+1 kde
(n+1)2 2 n
D=
0
0
n2 −1 n2
0 0
0 0
... ... .. . ...
0 0 . 0
n2 −1 n2
Pro kontrolu ovˇeˇr´ıme, ˇze elipsoid E ′ vskutku obsahuje celou ,,z´apornou polovinu”koule B, tedy ˇze B − ⊆ E ′ . V´ıme, ˇze pro x ∈ B −
12
Kapitola 2. Elipsoidov´a metoda
plat´ı xT x ≤ 1, x1 ≤ 0. Rozeps´ an´ım podm´ınky v z´apisu E ′ dostaneme 2 n n −1 X 2 n+1 2 1 2 ) + (x1 + xi ≤ 1 . n 1+n n2 i=2
Podle pˇredpoklad˚ u
Pn
2 i=1 xi
n2 − 1 n2
≤ 1 a proto tak´e
X n
x2i
i=2
n2 − 1 ≤ (1 − x21 ) . 2 n
Lev´ a stranˇe n´apadnˇe pˇripom´ın´ a omezen´ı v z´apisu elipsoidu E ′ . Vˇsimneme si d´ale, ˇze 2 n+1 2 2 n+1 1 1 n+1 2 = x1 + 2 2 x1 + 2 . x1 + n n+1 n n n Posledn´ı dvˇe nerovnosti (resp. nerovnost a rovnost) seˇcteme. S uˇzit´ım x21 + x1 ≤ 0 pro −1 ≤ x1 ≤ 0 dostaneme k´ yˇzen´e (x +
1 1 e1 )T Z −1 (x + e1 ) T ≤ 1 . n+1 n+1
Zb´ yv´ a uk´azat, ˇze nov´ y elipsoid bude m´ıt objem v´ yraznˇe menˇs´ı, neˇz elipsoid p˚ uvodn´ı. 2.4.1 Lemma.
−1 vol(E ′ ) ≤ e 2(n+1) . vol(B) √ D˚ ukaz. Pˇripomeˇ nme, ˇze vol(E ′ ) = det Z · vol(B). Proto s s n−1 ′ n2 n2 vol(E ) √ = det Z = · vol(B) (n + 1)2 n2 − 1 n−1 2 n−1 1 n n2 1 2 · ) · (1 + ) = = (1 − n+1 n2 − 1 n+1 n2 − 1
≤e
1 + n−1 · − n+1 2
1 n2 −1
=e
1 1 − n+1 + 2(n+1)
−1
= e 2(n+1) .
Pro poˇr´ adek dodejme, ˇze ve v´ ypoˇctu jsme pouˇzili odhad 1 + x ≤ ex . ⊓ ⊔ Obecn´ y pˇ r´ıpad. Pˇripomeˇ nme si situaci. Je d´an elipsoid E se stˇredem v a urˇcen´ y pozitivnˇe definitn´ı matic´ı A. D´ ale je d´an poloprostor H
2.4. Iteraˇcn´ı krok: v´ ypoˇcet Ek+1 z Ek
E
T −1
13
R−1 z
E′
T
R
a f c
Obr´azek 2.2: Obr´azek demonstruje, jak´a zobrazen´ı pouˇzijeme. s norm´alov´ ym vektorem c, jehoˇz hranice proch´az´ı stˇredem a elipsoidu E; poloprostor H odpov´ıd´ a poruˇsen´e nerovnosti. V´ıme, ˇze vˇsechna pˇr´ıpustn´ a 1/2 ˇreˇsen´ı se vyskytuj´ı v poloprostoru H. Oznaˇcme Q = A . Form´alnˇe tedy: E = E(a, A) = {x ∈ Rn | (x − a)T A−1 (x − a) ≤ 1} = Q · E(0, I) + a , H = {x ∈ Rn | cT x ≤ cT a} = {x ∈ Rn | cT (x − a) ≤ 0} .
Hled´ ame elipsoid E ′ = E(f, C) ⊇ E ∩ H s co nejmenˇs´ım objemem. Znovu vyuˇzijeme skuteˇcnosti, ˇze kaˇzd´ y elipsoid je afinn´ım obrazem jednotkov´e koule. Pro dan´ y elipsoid E = E(a, A) oznaˇcme T afinn´ı zobrazen´ı, kter´e jednotkovou kouli se stˇredem v poˇc´atku zobraz´ı na E; s pomoc´ı T −1 zobraz´ıme naopak n´aˇs elipsoid E na jednotkovou kouli. Toto zobrazen´ı T −1 aplikujeme tak´e na poloprostor H = {x | cT (x − a) ≤ 0}. Vˇsimnˇeme si, ˇze poloprostor T −1 (H) typicky nebude totoˇzn´ y s poloprostorem H0 = {x ∈ Rn | x1 ≤ 0}, ale pro vhodnou rotaci R kolem poˇc´atku jistˇe T −1 (H) = R(H0 ). Abychom mohli pouˇz´ıt v´ ysledek z −1 −1 pˇredeˇsl´e sekce, zobraz´ıme poloprostor T (H) pomoc´ı R na H0 (viz obr. 2.2). Pak jistˇe R−1 (T −1 (E)) ∩ R−1 (T −1 (H)) ⊆ E(
−1 e1 , Z) , n+1
(2.2)
−1 e1 , Z))) obsahuje E ∩ H. Chceme proto a tud´ıˇz elipsoid T (R(E( n+1 spoˇc´ıtat zobrazen´ı T a R. V dalˇs´ıch v´ ypoˇctech vyuˇzijeme o zobrazen´ı T n´asleduj´ıc´ı vlastnosti:
• T (y) = Q · y + a • T −1 (x) = Q−1 · (x − a)
14
Kapitola 2. Elipsoidov´a metoda • T −1 (H) = {T −1 (x) | cT (x − a) ≤ 0} = {y ∈ Rn | cT (T (y) − a) ≤ 0} = {y | cT Qy ≤ 0} = {y | (Qc)T y ≤ 0}.
Po rotaci R vyˇzadujeme jedinou vlastnost, totiˇz R
−1
Qc kQck
= e1 .
(2.3)
Vˇsimnˇeme si, ˇze v R2 je rotace R urˇcena jednoznaˇcnˇe, ale v prostorech vyˇsˇs´ıch dimenz´ı uˇz nikoli (coˇz n´am ovˇsem nevad´ı, jak za chv´ıli uvid´ıme). Nyn´ı pouˇzijeme sloˇzen´ı zobrazen´ı T a R k pops´ an´ı E ′ (pro jednoduchost poˇz´ıv´ ame R pro oznaˇcen´ı zobrazen´ı i oznaˇcen´ı matice totoho zobrazen´ı). Pˇripomeˇ nme si jeˇstˇe z line´ arn´ı algebry, ˇze pro matici R rotace T plat´ı RR = I. 2.4.2 Vˇ eta. Pro elipsoid E ′ = E(f, C) se stˇredem v f a urˇcen´em matic´ı C, kde 1 Ac √ , n + 1 cT Ac n2 2 AccT AT C= 2 · (A − ), n −1 n + 1 cT Ac f=a−
plat´ı: E(a, A) ∩ {x | cT (x − a) ≤ 0} ⊆ E(f, C) ,
(2.4)
−1 vol(E(f, C)) ≤ e 2(n+1) . vol(E(a, A))
(2.5)
D˚ ukaz. Nejprve urˇc´ıme stˇred f elipsoidu E ′ , pomoc´ı zobrazen´ı R a T : f = T (R(z)) = T
Qc −1 · n + 1 kQck
=a−
Ac 1 √ . n + 1 cT Ac
Pˇred urˇcen´ım C provedeme pomocn´ y v´ ypoˇcet. x − f = x − T (R(z)) = x − a − QRz = QR(R−1 Q−1 (x − a) − z).
2.5. Kdy skonˇcit
15
Nyn´ı opˇet vyuˇzijime vlastnosti T a R, a pomocn´ y v´ ypoˇcet: E(f, C) ={T (Ry) | (y − z)T Z −1 (y − z) ≤ 1}
={x | (R−1 T −1 (x) − z)T Z −1 (R−1 T −1 (x) − z) ≤ 1}
={x | (R−1 Q−1 (x − a) − z)T Z −1 (R−1 Q−1 (x − a) − z) ≤ 1}
={x | R−1 Q−1 (x − f))T Z −1 (R−1 Q−1 (x − f)) ≤ 1} T
T
={x | (x − f)T Q−1 R−1 Z −1 R−1 Q−1 (x − f) ≤ 1}
={x | (x − f)T C −1 (x − f) ≤ 1} , neboli
C = (QRZ 1/2 )(QRZ 1/2 )T . S vyuˇzit´ım pˇredeˇsl´eho v´ ypoˇctu a znalosti Z = diag vyj´ adˇr´ıme matici C pomoc´ı matice A a vektoru a. C =Q · R · Z · RT · QT n2 = 2 n −1 n2 = 2 n −1 n2 = 2 n −1 n2 = 2 n −1
n2 n2 , , ... 2 2 (n+1) n −1
n−1 · Q · R · diag , 1, . . . , 1 · RT · QT n+1 2 · (QRIRT QT − · QRe1 eT1 RT QT ) n+1 cT AT 2 Ac √ √ · ) · (A − · n+1 cT Ac cT Ac 2 AccT AT · (A − ). n + 1 cT Ac
Poznamenejme jeˇstˇe, ˇze C je jistˇe symetrick´a a pozitivnˇe definitn´ı matice. Vlastnost (2.4) i (2.5) plyne ze vztahu (2.2), tedy je pˇr´ım´ ym d˚ usledkem v´ ypoˇct˚ u proveden´ ych v pˇredeˇsl´e kapitolce. ⊔ ⊓
2.5 Kdy skonˇcit 2.5.1 Lemma. Je-li P = {x | Cx ≤ d} polytop pln´e dimenze a C a d jsou celoˇc´ıseln´e, pak 3
vol(P ) ≥ 2−(n+1)hCi+n . D˚ ukaz. Pro jednoduchost zde dok´aˇzeme pouze slabˇs´ı odhad; pro n´aˇs hlavn´ı c´ıl – uk´azat, ˇze existuje polynomi´ aln´ı algoritmus pro hled´an´ı pˇr´ıpustn´eho ˇreˇsen´ı – to nehraje ˇz´adnou roli.
16
Kapitola 2. Elipsoidov´a metoda
Protoˇze polytop P je pln´e dimenze, m´ a n + 1 afinnˇe nez´ avisl´ ych vrchol˚ u v0 , v1 , . . . , vn a plat´ı: vol(conv(v0 , . . . , vn )) ≤ vol(P ) , kde conv(· · · ) oznaˇcuje konvexn´ı obal dan´e mnoˇziny vrchol˚ u. Oznaˇcme ei vektor s jedinou nenulovou sloˇzkou, totiˇz i-tou, kter´ a je rovna jedn´e, pro i = 1, . . . , n. Pak conv(v0 , . . . , vn ) = T (conv(0, e1 , . . . , en )) , kde T znaˇc´ı afinn´ı zobrazen´ı T (x) = v0 + (v1 − v0 , . . . , vn − v0 ) x. V dalˇs´ım opˇet vyuˇzijeme toho, ˇze kaˇzd´ y vrchol mnohostˇenu P je ˇreˇsen´ım vhodn´e soustavy rovnic odvozen´e z Cx ≤ d: pro kaˇzd´e vi existuje podsyst´em Ci x ≤ di syst´emu Cx ≤ d takov´ y, ˇze vi je jedin´ ym det Ci,j ˇreˇsen´ım soustavy Ci x = di . Podle Cramerova pravidla vi,j = det Ci , kde Ci,j je matice vznikl´a z Ci nahrazen´ım j-t´eho sloupce vektorem di . S uˇzit´ım Tvrzen´ı 2.2.7, rovnosti vol(conv(0, e1 , . . . , en ) = 1/n! pro objem simplexu dan´eho vektory 0, e1 , . . . , en , a vˇety o rozvoji determinantu dost´ av´ame, pˇri znaˇcen´ı ui = det Ci · vi , n´asleduj´ıc´ı odhad: 1 1 1 . . . 1 vol(conv(v0 , . . . , vn )) = det v0 v1 . . . vn n! det C det C . . . det C 0 0 0 det u0 u1 ... un 1 = · n! | det C0 · det C1 · ... · det Cn | (n+1) 1 1 ≥ · 2 hCi+n log n n! ≥2−n log n · 2−(n+1)·hCi−n(n+1) log n . U pˇredposledn´ı nerovnosti jsme vyuˇzili skuteˇcnosti, ˇze se jedn´ a o determinant celoˇc´ıseln´e matice, o kter´e z pˇredpoklad˚ u (afinn´ı nez´ avislosti vrchol˚ u v0 , v1 , . . . , vn ) v´ıme, ˇze je regul´ arn´ı, a tud´ıˇz jej´ı determinant je alespoˇ n jedna. ⊔ ⊓ 2.5.2 Vˇ eta. Je-li P nepr´ azdn´ y plnodimenzion´ aln´ı polytop, pak algoritmus popsan´ y v t´eto kapitole nejpozdˇeji do k = 2 · (n + 1) · (2(n + 1)hCi + 3 n · hdi − n ) iterac´ı nalezne x ∈ P . √ D˚ ukaz. Zaˇcneme jednoduch´ ym odhadem vol(E0 ) ≤ (2r)n , kde r = n · 2hC|di+n log n .
2.6. Jak se zbavit zjednoduˇsuj´ıc´ıch pˇredpoklad˚ u
17
Nyn´ı pˇredpokl´ adejme, ˇze algoritmus provedl k iterac´ı. Pak s pouˇzit´ım uveden´eho odhadu a Lemmatu 2.4.1 dost´ av´ame vol(Ek ) < vol(P ), coˇz je spor s invariantem algoritmu, ˇze cel´ y mnohostˇen P je vˇzdy plnˇe obsaˇzen v elipsoidu Ek . ⊔ ⊓ 2.5.3 D˚ usledek. Pokud algoritmus do k iterac´ı nenajde x ∈ P , pak je P pr´azdn´ y.
2.6 Jak se zbavit zjednoduˇsuj´ıc´ıch pˇredpoklad˚ u Omezenost. Bez u ´jmy na obecnosti m˚ uˇzeme pˇredpokl´ adat, ˇze matice A v popisu mnohostˇenu P = {x | Ax ≤ b} je pln´e sloupcov´e hodnosti; v opaˇcn´em pˇr´ıpadˇe lze snadno pˇrej´ıt do niˇzˇs´ı dimenze. Pˇripomeˇ nme, ˇze ′ ′ kaˇzd´ a minim´aln´ı stˇena P lze popsat jako mnoˇzina {x | A x = b }, kde A′ je matice t´eˇze hodnosti jako A, vznikl´a z A v´ ybˇerem vhodn´ ych ˇr´ adk˚ u, a ′ b je vektor odpov´ıdaj´ıc´ıch sloˇzek b. M´ a-li A plnou sloupcovou hodnost, je nutnˇe kaˇzd´ a minim´aln´ı stˇena mnohostˇenu P vrcholem. Tud´ıˇz, je-li P nepr´ azdn´ y, obsahuje vrchol. D´ ale uˇz v´ıme, ˇze je-li v libovoln´ y vrchol P , pak pro jeho i-tou hA,bi+n log n souˇradnici vi plat´ı |vi | ≤ 2 . Pokud tedy P nˇejak´e vrcholy m´ a, jejich konvexn´ı obal se jistˇe vejde do koule se stˇredem v poˇc´atku √ a pr˚ umˇerem R = n · 2hC,di+n log n . Algoritmus bude po celou dobu sv´eho bˇehu zachov´avat invariant, ˇze konvexn´ı obal vrchol˚ u P leˇz´ı uvnitˇr aktu´aln´ıho elipsoidu, coˇz zaruˇcuje spr´ avn´e chov´an´ı algoritmu i pro tento pˇr´ıpad. Pln´ a dimenze. 2.6.1 Lemma. Necht’ A je celoˇc´ıseln´a matice a b celoˇc´ıseln´ y vektor. Pak syst´em Ax ≤ b m´ a ˇreˇsen´ı pr´avˇe kdyˇz syst´em Ax ≤ b + 1 · ε m´ a ˇreˇsen´ı 1 pro ε = . hA,bi−n2 2m2
D˚ ukaz. Implikace zleva doprava je trivi´ aln´ı. Pro opaˇcnou pouˇzijeme Farkasovo lemma a uk´aˇzame, ˇze y z Farkasova lemmatu pro p˚ uvodn´ı u ´lohu funguje i pro odvozenou. Podrobnosti pˇrenech´ame tentokr´ate ˇcten´aˇri. ⊓ ⊔ Hled´ an´ı optim´ aln´ıho ˇ reˇ sen´ı. 2.6.2 Lemma. Pˇredpokl´ adejme, ˇze u ´loha ,,rozhodni, zda je mnohostˇen P je pr´azdn´ y ˇci nepr´ azn´ y”je ˇreˇsiteln´ a v polynomi´ aln´ım ˇcase. Pak
18
Kapitola 2. Elipsoidov´a metoda
i u ´loha ,,nalezni x ∈ P , nebo poznej, ˇze P je pr´azdn´e”, je ˇreˇsiteln´ a v polynomi´ aln´ım ˇcase. D˚ ukaz. Uvˇedomme si, ˇze ˇreˇsen´ı u ´lohy s uvolnˇenou pravou stranou (viz Lemma 2.6.1) nemus´ı b´ yt ˇreˇsen´ım p˚ uvodn´ı u ´lohy (coˇz je ta, kter´ a n´as opravdu zaj´ım´a). Pˇredesl´e lemma n´as ale ujiˇst’uje, ˇze m´ a-li ˇreˇsen´ı uvolnˇen´ a soustava, m´ a ˇreˇsen´ı (ne nutnˇe stejn´e) i u ´loha p˚ uvodn´ı. Jde o to, jak tuto znalost vyuˇz´ıt k tomu, abychom ˇreˇsen´ı skuteˇcnˇe nalezli. Idea je n´asleduj´ıc´ı: sniˇzovat poˇcet nerovnost´ı v p˚ uvodn´ı soustavˇe tak dlouho, aˇz n´am zbydou pouze rovnosti. Jak to prov´est? Nab´ız´ı se dva zp˚ usoby: ub´ır´ an´ı nadbyteˇcn´ ych nerovnost´ı a pˇremˇena ostatn´ıch na rovnice. Syst´em tvoˇren´ y pouze rovnicemi vyˇreˇs´ıme napˇr. Gaussovou eliminac´ı. Popiˇsme si postup trochu pˇresnˇeji: Pˇredpokl´ adejme, ˇze naˇse soustava Ax ≤ b obsahuje k nerovnost´ı (a jedno kolik rovnost´ı – dvˇe opaˇcn´e nerovnosti poˇc´ıt´ ame jako jednu rovnost). Vezmeme libovolnou nerovnost, nahrad´ıme ji rovnost´ı a otestujeme, zda nov´a soustava m´ a ˇreˇsen´ı (pomoc´ı pˇredeˇsl´eho lemmatu). M´ a-li nov´a soustava ˇreˇsen´ı, ubyla n´am jedna nerovnost a soustava m´ a i nad´ ale nˇejak´e ˇreˇsen´ı. Nem´ a-li nov´a soustava ˇreˇsen´ı, pak vybran´ a nerovnost neodpov´ıd´ a ˇz´adn´e stˇenˇe mnohostˇenu a m˚ uˇzeme ji proto vynechat jako nadbyteˇcnou. ⊔ ⊓ 2.6.3 Lemma. Je-li u ´loha ,,nalezni x ∈ P , nebo poznej, ˇze P je pr´azdn´e” ˇreˇsiteln´ a v polynomi´ aln´ım ˇcase, pak je i optimalizaˇcn´ı verze u ´lohy ˇreˇsiteln´ a v polynomi´ aln´ım ˇcase. ´ D˚ ukaz. Ulohu max{cT x | Ax ≤ b} vyˇreˇs´ıme pomoc´ı algoritmu pro u ´lohu ,,nalezni x ∈ P , nebo poznej, ˇze P je pr´azdn´e”. Ze siln´e duality v´ıme, ˇze max{cT x | Ax ≤ b} = min{yT b | yT A = cT , y ≥ 0}, jsou-li obˇe mnoˇziny nepr´ azdn´e. Postupovat tedy budeme takto: 1. Otestuj zda {x ∈ neexistuje.
Rn
| Ax ≤ b} = ∅. Pokud ano, pak ˇreˇsen´ı
2. Uvaˇz P ′ = {(x, y) ∈ Rn+m | Ax ≤ b, y ≥ 0, yT A ≤ cT , −yT A ≤ −cT , cT x ≤ yT b, −cT x ≤ −yT b}. Pokud P ′ = ∅, pak P je neomezen´ y a maximum c´ılov´e funkce je libovolnˇe velk´e. Pokud P ′ nen´ı pr´azdn´ y, pak existuje x0 , y0 ∈ P ′ , pˇriˇcemˇz snadno vid´ıme, ˇze x0 je pˇr´ıpustn´e ˇreˇsen´ı prim´arn´ı u ´lohy, y0 je pˇr´ıpustn´e ˇreˇsen´ı du´aln´ı u ´lohy a siln´a dualita n´as ujiˇst’uje, ˇze obˇe jsou optim´aln´ı.
2.7. Shrnut´ı
19 ⊔ ⊓
Nepˇ r´ıjemnost s odmocninami. V uveden´e anal´ yze algoritmu pom´ıj´ıme skuteˇcnost, ˇze algoritmus ve zde popsan´e podobˇe pracuje s odmocninami, a tedy pˇr´ıpadnˇe s iracion´aln´ımi ˇc´ısly. Tomuto probl´emu je moˇzno se vyhnout vhodn´ ym zaokrouhlov´an´ım, kter´emu uˇz se v tomto textu vˇenovat nebudeme. Zv´ıdav´eho ˇcten´aˇre odkazujeme na klasickou monografii [6].
2.7 Shrnut´ı Odhl´edneme-li od probl´em˚ u s odmocninami, dok´azali jsme n´asleduj´ıc´ı vˇetu. 2.7.1 Vˇ eta (Chaˇ cijan, 1979). Existuje polynomi´ aln´ı algoritmus pro ˇreˇsen´ı u ´lohy line´ arn´ıho programov´an´ı.
3 Metoda vnitˇrn´ıho bodu 3.1 N´aˇcrt algoritmu V tomto textu budeme uvaˇzovat u ´lohu line´ arn´ıho programov´an´ı v rovnicov´em (t´eˇz naz´ yvan´em standardn´ı) tvaru: min cT x
(3.1)
Ax = b x ≥ 0,
kde A je re´aln´a matice m × n, b ∈ Rm , c ∈ budeme pracovat s du´aln´ı u ´lohou ve tvaru max yT b
Rn
a x ∈
Rn. Z´aroveˇn (3.2)
AT y + s = c s ≥ 0,
yv´ ame pˇr´ıdavn´e. Bez u ´jmy kde y ∈ Rm a s ∈ Rn ; promˇenn´e si naz´ na obecenosti budeme pˇredpokl´ adat, ˇze matice A m´ a plnou ˇr´ adkovou hodnost. Vˇsimnˇeme si, ˇze pak ˇreˇsen´ı (y, s) du´aln´ı u ´lohy je moˇzno jednoznaˇcnˇe reprezentovat pomoc´ı vektoru s pˇr´ıdavn´ ych promˇenn´ ych (z nˇehoˇz ˇ lze y dopoˇc´ıtat, napˇr. Gaussovou eliminac´ı). Rekneme, ˇze x je striknˇe pˇr´ıpustn´e ˇreˇsen´ı, pokud x > 0 a x je pˇr´ıpustn´e ˇreˇsen´ı; obdobnˇe pro s. V tomto textu se budeme vˇenovat probl´emu nalezen´ı optim´ aln´ıho ˇreˇsen´ı prim´arn´ı u ´lohy. J´adrem metody je postup, kter´ y z libovoln´eho striknˇe pˇr´ıpustn´eho ˇreˇsen´ı prim´arn´ı u ´lohy spoˇc´ıt´ a v polynomi´ aln´ım ˇcase (skoro) optim´aln´ı
22
Kapitola 3. Metoda vnitˇrn´ıho bodu
ˇreˇsen´ı. To se na prvn´ı pohled nezd´a pˇr´ıliˇs uspokojiv´e: v´ıme, ˇze uˇz samotn´e nalezen´ı nˇejak´eho pˇr´ıpustn´eho ˇreˇsen´ı u ´lohy line´ arn´ıho programov´an´ı je ,,stejnˇe” obt´ıˇzn´e jako nalezen´ı optim´aln´ıho ˇreˇsen´ı t´eto u ´lohy. Trik umoˇzn ˇuj´ıc´ı zaˇc´ınat rovnou se striknˇe pˇr´ıpustn´ ym ˇreˇsen´ım, aniˇz bychom ˇreˇsili nˇejak´ y line´ arn´ı program, spoˇc´ıv´ a v drobn´e u ´pravˇe u ´lohy line´ arn´ıho programov´an´ı (pˇrid´ an´ı dvou promˇenn´ ych a drobn´ a u ´prava soustavy); v upraven´e u ´loze je moˇzn´e striktnˇe pˇr´ıpustn´e ˇreˇsen´ı z´ıskat zadarmo, pˇriˇcemˇz optim´aln´ı ˇreˇsen´ı upraven´e u ´lohy pˇr´ımo d´av´a optim´aln´ı ˇreˇsen´ı u ´lohy p˚ uvodn´ı. Podobnˇe jako elipsoidov´a metoda je i metoda vnitˇrn´ıho bodu iteraˇcn´ı metoda. U elipsoidov´e metody jsme konstruovali posloupnost bod˚ u (stˇredy elipsoid˚ u), kter´a zaˇc´ınala typicky nˇekde vnˇe zadan´eho mnohostˇenu P a pokud byl P nepr´ azdn´ y, konˇcila nˇekde uvnitˇr P . V metodˇe vnitˇrn´ıho bodu budeme tak´e konstruovat posloupnost bod˚ u, kter´ a ovˇsem zaˇc´ın´ a nˇekde uvnitˇr zadan´eho mnohostˇenu P , v mnohostˇenu P celou dobu z˚ ust´av´a a konˇc´ı v (t´emeˇr) optim´aln´ım ˇreˇsen´ı; jedn´ a se tedy o posloupnost pˇr´ıpustn´ych ˇreˇsen´ı prim´arn´ı u ´lohy. V podobˇe popsan´e v tomto textu jde o prim´arnˇe-du´aln´ı algoritmus, tedy o algoritmus, kter´ y pracuje z´aroveˇ n s ˇreˇsen´ımi prim´arn´ı i du´aln´ı u ´lohy; spoleˇcnˇe s posloupnost´ı ˇreˇsen´ı prim´arn´ı u ´lohy budeme konstruovat jeˇstˇe druhou posloupnost bod˚ u reprezentuj´ıc´ıch ˇreˇsen´ı du´aln´ı u ´lohy. Kl´ıˇcov´ ym n´astrojem metody je potenci´ al a zde popsan´ a varianta algoritmu patˇr´ı mezi metody sniˇzov´ an´ı potenci´ alu. Pro dvojici (x, s) striknˇe pˇr´ıpust´ ych ˇreˇsen´ı prim´arn´ı a du´aln´ı u ´lohy definujeme potenci´al jako ˇc´ıslo G(x, s) =(n +
√
T
n) ln(x s) −
n X
ln(xi si ) .
(3.3)
i=1
Potenci´al n´am poslouˇz´ı dvoj´ım zp˚ usobem. Jednak bude uˇziteˇcn´ y pro kontrolu doby bˇehu algoritmu (napˇr. podle nˇej pozn´ame, kdy uˇz m˚ uˇzeme skonˇcit), a jednak bude ˇr´ıdit volbu dalˇs´ıch bod˚ u v obou konstruovan´ ych posloupnostech. Obdobnou roli hr´aly v elipsoidov´e metodˇe elipsoidy: jejich objem n´am slouˇzil jako poˇc´ıtadlo, hl´ıdaj´ıc´ı dobu bˇehu algoritmu, a elipsoidy samotn´e se pouˇz´ıvaly ke konstrukci dalˇs´ıch bod˚ u posloupnosti. Z´ahy nahl´edneme, ˇze pro pˇribliˇzov´an´ı se k optim´aln´ı dvojici ˇreˇsen´ı ¯ a ¯s jsou aktu´aln´ı body konpotˇrebujeme potenci´al sniˇzovat. Necht’ x struovan´ ych posloupnost´ı. Z´akladn´ı myˇslenkou metody je spoˇc´ıtat gradient g potenci´alu G(x, s) vzhledem k vektoru promˇenn´ ych x v m´ıstˇe (¯ x, ¯s) a vydat se v posloupnosti ˇreˇsen´ı prim´arn´ı u ´lohy smˇerem −g, ne¯ − αg pro nˇejak´e vhodn´e α > 0. boli za dalˇs´ı bod posloupnosti vz´ıt x
3.2. Z´akladn´ı definice a pozorov´an´ı
23
Takto jednoduˇsˇse to ovˇsem nep˚ ujde, protoˇze bychom vˇetˇsinou poruˇsili omezuj´ıc´ı podm´ınky Ax = b prim´arn´ı u ´lohy. Proto nep˚ ujdeme pˇr´ımo ve smˇeru −g, ale ve smˇeru dan´em projekc´ı vektoru −g do nadroviny Ax = 0. T´ım se vyhneme probl´emu s omezuj´ıc´ımi podm´ınkami, ale m˚ uˇze se n´am st´at, ˇze tato projekce bude pˇr´ıliˇs mal´ a, v d˚ usledku ˇcehoˇz by krok˚ u potˇrebn´ ych k dosaˇzen´ı optima bylo potˇreba nepˇrijatelnˇe mnoho (pokud bychom ho v˚ ubec kdy dos´ ahli). Z tohoto d˚ uvodu provedeme v pˇr´ıpadˇe, ˇze projekce g do nadroviny Ax = 0 je mal´ a, tzv. du´ aln´ı krok a m´ısto zmˇeny ˇreˇsen´ı prim´arn´ı u ´lohy zmˇen´ıme ˇreˇsen´ı du´aln´ı u ´lohy. N´ apovˇedu ke zmˇenˇe du´aln´ıho ˇreˇsen´ı n´am opˇet poskytne potenci´al, nebo pˇresnˇeji gradient potenci´alu G(x, s) vzhledem k s v m´ıstˇe (¯ x, ¯s). Uk´aˇzeme, ˇze v pˇr´ıpadˇe prim´arn´ıho i du´aln´ıho kroku dojde k v´ yrazn´emu sn´ıˇzen´ı potenci´alu, coˇz bude staˇcit k polynomi´ aln´ımu odhadu na ˇcas bˇehu algoritmu. Na konci tohoto hrub´eho n´aˇcrtu metody zmiˇ nme jeˇste jeden kl´ıˇcov´ y n´astroj metody, totiˇz afinn´ı transformaci. Metoda potˇrebuje, aby vˇsechna ˇreˇsen´ı, kter´a postupnˇe konstruuje, byla striktnˇe pˇr´ıpustn´ a. To p˚ usob´ı jist´ a omezen´ı v moˇznostech, kter´ ym smˇerem a jak daleko se vydat pˇri v´ ypoˇctu dalˇs´ıho bodu posloupnosti ˇreˇsen´ı. Abychom se tˇemto omezen´ım vyhnuli, pouˇzijeme na zaˇc´atku kaˇzd´e iterace afinn´ı transformaci, kter´ a ′ T posledn´ı bod prim´arn´ı posloupnosti zobraz´ı na bod x = (1, 1, . . . , 1) . V tomto transformovan´em prostoru spoˇc´ıt´ ame iteraˇcn´ı krok zp˚ usobem naˇcrtnut´ ym v´ yˇse a inverzn´ı transformac´ı se vr´at´ıme do p˚ uvodn´ıho prostoru. Uvid´ıme, ˇze pokles potenci´alu v p˚ uvodn´ım prostoru bude stejnˇe velk´ y jako pokles potenci´alu v transformovan´em prostoru. Pouˇzit´a afinn´ı transformace n´am tak´e podstatn´ ym zp˚ usobem zjednoduˇsˇs´ı pr´aci s gradientem g a jeho projekc´ı do Ax = 0.
3.2 Z´akladn´ı definice a pozorov´an´ı 3.2.1 Lemma. Necht’ x je pˇr´ıpustn´e ˇreˇsen´ı prim´arn´ı u ´lohy a s je pˇr´ıpustn´e ˇreˇsen´ı du´aln´ı u ´lohy. Pak plat´ı c T x − y T b = sT x . D˚ ukaz. cT x − yT b = yT Ax + sT x − yT Ax = sT x .
(3.4) ⊔ ⊓
Pˇripomeˇ nme, ˇze potenci´ al dvojice (x, s) prim´arn´ıho a du´aln´ıho ˇreˇsen´ı
24
Kapitola 3. Metoda vnitˇrn´ıho bodu
definujeme jako G(x, s) = (n +
√
T
n) ln(x s) −
n X
ln(xi si ) .
(3.5)
i=1
Vˇsimnˇeme si, ˇze pro dvojici (x, s) bl´ızkou optim´aln´ı dvojici ˇreˇsen´ı se podle pˇredeˇsl´eho lemmatu prvn´ı ˇclen prav´e strany rychle bl´ıˇz´ı k −∞; abychom se pˇribl´ıˇzili k optim´aln´ımu ˇreˇsen´ı, bude proto tˇreba potenci´al minimalizovat. Pokud se snaˇz´ıme o minimalizaci potenci´ alu, pak suma Pn z´ı jako bari´era kolem hranic xi ≥ 0 a i=1 ln(xi si ) v jeho definici slouˇ si ≥ 0: pokud se nˇekter´a sloˇzka x nebo s bl´ıˇz´ı k nule, zp˚ usob´ı odeˇcten´ı t´eto sumy v´ yrazn´ y n´ar˚ ust potenci´alu. Pro poˇr´ adek upozorˇ nujeme, ˇze pro potenci´al se v jin´ ych variant´ach metody Pn vnitˇrn´ıho bodu pouˇz´ıvaj´ı i jin´e √ T funkce (napˇr. (n + n) ln(x s) − i=1 ln xi ). V n´asleduj´ıc´ım textu bu√ deme pro zkr´ acen´ı z´apisu pouˇz´ıvat znaˇcen´ı q = n + n. Pro velikost z´apisu u ´lohy line´ arn´ıho programov´an´ı pouˇz´ıv´ ame oznaˇcen´ı L. N´ asleduj´ıc´ı vˇeta a jej´ı d˚ usledek budou d˚ uleˇzit´e pˇri rozhodov´an´ı o ukonˇcen´ı algoritmu. 3.2.2 Vˇ eta. Necht’ A je celoˇc´ıseln´a matice, b, c jsou celoˇc´ıseln´e vektory a necht’ u a v jsou vrcholy polyedru P = {x | Ax = b, x ≥ 0}. Pak, za pˇredpokladu cT u 6= cT v, plat´ı |cT u − cT v| > 2−2L .
(3.6)
D˚ ukaz. Z teorie mnohostˇen˚ u v´ıme, ˇze je-li u vrcholem polyedru P , pak u je jedin´ ym ˇreˇsen´ım vhodn´eho podsyst´emu rovnic syst´emu Ax = b, x ≥ 0. Tud´ıˇz, podle Cramerova pravidla, i-t´ a souˇradnice vrcholu u se d´a ˆ ˆ vyj´ adˇrit jako ui = det Ai→b eho podsyst´emu ˆ , kde A je matice onoho vhodn´ det A (tedy Aˆ je vhodn´a podmatice matice AI ) a Aˆi→b je matice vznikl´a z Aˆ nahrazen´ım jej´ıho i-t´eho sloupce odpov´ıdaj´ıc´ımi sloˇzkami prav´e strany ˆ ≤ 2L−n2 < 2L p˚ uvodn´ıho line´ arn´ıho programu. Z podoby Aˆ plyne | det A| (viz Pozorov´an´ı 2.3.2 v ˇc´asti o elipsoidov´e metodˇe). Obdobn´ a pozorov´an´ı m˚ uˇzeme udˇelat i pro vrchol v. V´ıme proto, ˇze existuj´ı q1 , q2 ∈ N takov´a, ˇze q1 , q2 < 2L a z´aroveˇ n T T u q1 a v q2 jsou celoˇc´ıseln´e vektory. Tud´ıˇz T T u − cT v) T v q q (c q c u q c 1 2 1 2 = > 1 , |cT u − cT v| = − 22L q1 q2 q1 q2 kde v posledn´ı nerovnosti vyuˇz´ıv´ ame skuteˇcnosti, ˇze q1 q2 (cT u − cT v) je d´ıky volbˇe q1 a q2 cel´e ˇc´ıslo. ⊔ ⊓
3.3. Struktura algoritmu
25
3.2.3 D˚ usledek. Je-li xT s ≤ 2−2L , pro dvojici ˇreˇsen´ı x a (y, s) prim´arn´ı a du´aln´ı u ´lohy, pak jak´ ykoli vrchol x′ takov´ y, ˇze cT x′ ≤ cT x, je optim´aln´ı. D˚ ukaz. Sporem. Pˇredpokl´ adejme, ˇze existuje vrchol x′ takov´ y, ˇze cT x′ ≤ cT x, ale x′ nen´ı optim´aln´ı. Pak podle pˇredeˇsl´e vˇety plat´ı cT x⋆ < cT x′ − 2−2L , kde x⋆ je nˇejak´ y optimaln´ı vrchol. S pouˇzit´ım pˇredpoklad˚ u xT s ≤ 2−2L a cT x′ ≤ cT x, rovnosti cT x = yT b + xT s a nerovnosti yT b ≤ cT x⋆ plynouc´ı z optimality x⋆ , dost´ av´ame k´ yˇzen´ y spor cT x⋆ < cT x′ − 2−2L ≤ c T x − xT s = y T b ≤ c T x⋆ . ⊔ ⊓ Ve zbytku t´eto kapitoly uv´ad´ıme tˇri pomocn´ a technick´ a tvrzen´ı. Jejich d˚ ukazy pˇrenech´av´ame ˇcten´aˇri jako cviˇcen´ı z matematick´e anal´ yzy a line´ arn´ı algebry. 3.2.4 Lemma (Geometrick´ y a aritmetick´ y pr˚ umˇ er). Pro voln´a tj ≥ 0, j = 1, . . . , n, plat´ı:
n Y
j=1
1/n
tj
libo-
n
1X tj . ≤ n
(3.7)
j=1
3.2.5 Lemma (Odhady logaritm˚ u). Pro re´aln´a ˇc´ısla x a a splˇ nuj´ıc´ı |x| ≤ a < 1 plat´ı x2 −x − ≤ ln(1 − x) ≤ −x . 2(1 − a)
(3.8)
3.2.6 Lemma. Je-li A matice pln´e ˇr´ adkov´e hodnosti, pak je matice AAT regul´ arn´ı.
3.3 Struktura algoritmu Na zaˇc´atku najdeme dvojici striktnˇe pˇr´ıpustn´ ych ˇreˇsen´ı (x0 , s0 ) tako√ vou, ˇze G(x0 , s0 ) = O( nL). V kaˇzd´e iteraci pak zajist´ıme pokles potenci´ alu o alespoˇ n 1/120 a skonˇc´ıme ve chv´ıli, kdy potenci´al poprv´e klesne √ pod −2 nL. T´ım bude zaruˇcen polynomi´ aln´ı poˇcet iterac´ı. Protoˇze ˇcas potˇrebn´ y pro kaˇzdou iteraci bude tak´e omezen polynomem ve velikosti zad´an´ı, bude i celkov´ y ˇcas algoritmu polynomi´ aln´ı. Rozhodnut´ı ukonˇcit algoritmus pˇri poklesu potenci´alu pod hodnotu √ nuje n´asleduj´ıc´ı lemma. −2 nL ospravedlˇ
26
Kapitola 3. Metoda vnitˇrn´ıho bodu
√ 3.3.1 Lemma. Je-li G(x, s) ≤ −2 nL, pak xT s < e−2L . D˚ ukaz. Pouˇzijeme Lemma 3.7 pro tj = xj sj , j = 1, . . . , n. Po zlogaritmov´an´ı obou stran nerovnosti (3.7) a drobn´e u ´pravˇe dostaneme nerovnost n ln xT s −
n X j=1
ln xj sj ≥ n ln n .
(3.9)
Podle pˇredpoklad˚ u lemmatu, definice potenci´alu (3.5) a nerovnosti (3.9) plat´ı n X √ √ T −2 nL ≥G(x, s) = (n + n) ln(x s) − ln(xi si ) ≥
√
n ln xT s + n ln n ≥
√
i=1
n ln xT s .
Tud´ıˇz −2L ≥ ln xT s a d˚ ukaz je hotov.
⊔ ⊓
D˚ usledek 3.2.3 spolu s Lemmatem 3.3.1 zaruˇcuj´ı, ˇze pˇri poklesu po√ tenci´ alu pod −2 nL uˇz jsme takˇrka v optim´aln´ım ˇreˇsen´ı.
3.4 Jak nal´ezt striknˇe pˇr´ıpustn´a ˇreˇsen´ı x0 a s0 s omezen´ ym potenci´alem Chceme p˚ uvodn´ı dvojici line´ arn´ıch program˚ u nahradit novou dvojic´ı tak, aby i) pro nov´ y line´ arn´ı program bylo snadn´e nal´ezt pˇr´ıpustn´e ˇreˇsen´ı s mal´ ym potenci´alem, a aby ii) z optim´aln´ıho ˇreˇsen´ı nov´eho line´ arn´ıho programu bylo moˇzn´e jednoduˇsˇse z´ıskat optim´aln´ı ˇreˇsen´ı p˚ uvodn´ıho line´ arn´ıho programu. Poslouˇz´ı n´am n´ıˇze uveden´e line´ arn´ı programy. min
cT x + 26L xn+1 Ax + (b − 22L Ae)xn+1 (24L e − c)T x + 24L xn+2 x xn+1 xn+2
= = ≥ ≥ ≥
b k 0 0 0
3.4. Jak nal´ezt striknˇe pˇr´ıpustn´ a ˇreˇsen´ı s omezen´ ym potenci´alem
27
kde k = 26L (n + 1) − 22L cT e. bT y + kym+1 T 4L A y + (2 e − c)ym+1 + s 2L (b − 2 Ae)T y + sn+1 4L 2 ym+1 + sn+2 s sn+1 sn+2
max
= c = 26L = 0 ≥ 0 ≥ 0 ≥ 0
3.4.1 Lemma. Plat´ı: 1. Vektory x′ = (22L , 22L , . . . , 22L , 1, 22L ) a (y′ ; s′ ) = (0, −1; 24L , 24L , . . . , 24L , 26L , 24L ) jsou striktnˇe pˇr´ıpustn´ a ˇreˇsen´ı a √ nav´ıc G(x′ , s′ ) = O( nL). 2. Velikost nov´eho line´ arn´ıho programu je O(L). 3. Jsou-li vektory x⋆ a y⋆ optim´aln´ım ˇreˇsen´ım line´ arn´ıho programu ′′ ⋆ 4L (3.1) a (3.2), pak vektory x = (x , 0, (k − (2 e − c)T x⋆ )/24L ) a (y′′ , s′′ ) = (y⋆ , 0, s⋆ , 26L − (b − 22L Ae)T y⋆ , 0) jsou optim´aln´ım ˇreˇsen´ım nov´ ych line´ arn´ıch program˚ u. 4. Maj´ı-li oba line´ arn´ı programy (3.1) a (3.2) pˇr´ıpustn´ a ˇreˇsen´ı a jsouli vektory x′′ and (y′′ , s′′ ) optim´aln´ım ˇreˇsen´ım nov´ ych line´ arn´ıch program˚ u, pak vektory x a (y, s), kde x a s jsou restrikc´ı x′′ a s′′ na prvn´ıch n sloˇzek a y je restrikc´ı y′′ na prvn´ıch m sloˇzek, jsou optim´aln´ım ˇreˇsen´ım line´ arn´ıch program˚ u (3.1) a (3.2).
D˚ ukaz. Ovˇeˇren´ı prvn´ıho, druh´eho a tˇret´ıho tvrzen´ı lemmatu je pouze technickou z´aleˇzitost´ı. Posledn´ı ˇc´ast vyˇzaduje o trochu v´ıce pr´ace a jej´ı d˚ ukaz pˇreskoˇc´ıme; piln´ y ˇcten´aˇr se o d˚ ukaz m˚ uˇze s pomoc´ı vˇet (podm´ınek) o komplementaritˇe prim´arn´ıho a du´aln´ıho ˇreˇsen´ı pokusit s´ am. ⊔ ⊓
28
Kapitola 3. Metoda vnitˇrn´ıho bodu
3.5 Iteraˇcn´ı krok Snadn´ y pˇ r´ıpad. V t´eto podkapitole pˇredpokl´ ad´ ame, ˇze aktu´aln´ı ˇreˇsen´ı T prim´arn´ı u ´lohy je e = (1, . . . , 1) a aktu´aln´ı ˇreˇsen´ı du´aln´ı u ´lohy je ′ s > 0. Jak jsme jiˇz popsali v u ´vodu, z´akladn´ı myˇslenkou je zmˇenit ˇreˇsen´ı prim´arn´ı u ´lohy ve smˇeru opaˇcn´em ke gradientu potenci´alu G(x, s) podle x v bodˇe (e, s′ ); zaˇcneme proto v´ ypoˇctem tohoto gradientu g. 1 x1 √ s .. g =∇x G(x, s)|(e,s′ ) = (n + n) T − . ′ x s 1 xn
=(n +
√
(e,s )
s′ n) T ′ − e . e s
(3.10)
Pˇr´ımo ve smˇeru −g ovˇsem j´ıt nem˚ uˇzeme, protoˇze bychom mohli poruˇsit podm´ınky Ax = 0. Z toho d˚ uvodu spoˇc´ıt´ ame projekci d vektoru g do nadroviny {x | Ax = 0}, a pokud bude dostateˇcnˇe velk´a, pˇrejdeme od aktu´aln´ıho ˇreˇsen´ı e prim´arn´ı u ´lohy k ˇreˇsen´ı e − αd, pro vhodn´e α > 0, jehoˇz velikost upˇresn´ıme pozdˇeji. g
g−d
d Ax = 0
Obr´azek 3.1: Projekce vektoru g do nadroviny {x | Ax = 0}. 3.5.1 Lemma (Projekce g do nadroviny {x | Ax = 0}). d = (I − A(AAT )−1 A)g .
(3.11)
D˚ ukaz. Nejprve si vˇsimneme, ˇze vektor g − d je z ortogon´aln´ıho doplˇ nku vektorov´eho prostoru {x | Ax = 0} a tud´ıˇz je line´ arn´ı kombinac´ı ˇr´ adk˚ u m y, ˇze matice A. Jin´ ymi slovy, existuje vektor w ∈ R takov´ g − d = AT w .
(3.12)
3.5. Iteraˇcn´ı krok
29
Pod´aˇr´ı-li se n´am tento vektor w vyj´ adˇrit, budeme m´ıt i pˇredpis pro hledan´ y vektor d. Vyn´asoben´ım rovnosti (3.12) zleva matic´ı A dostaneme (s pouˇzit´ım rovnosti Ad = 0 vyjadˇruj´ıc´ı, ˇze d je projekce do poˇzadovan´e nadroviny) Ag = AAT w . D´ıky pln´e ˇr´adkov´e hodnosti matice A je matice AAT regul´ arn´ı, proto plat´ı w = (AAT )−1 Ag . Dosazen´ım za w do rovnosti (3.12) dostaneme k´ yˇzen´ y vztah (3.11).
⊔ ⊓
Prim´ arn´ı krok. Pokud bude kdk ≥ 0, 22 provedeme prim´arn´ı krok a dalˇs´ı dvojici pˇr´ıpustn´ ych ˇreˇsen´ı urˇc´ıme podle pˇredpisu ˜ =e− x
d , 4 kdk
˜s = s′ .
(3.13)
V opaˇcn´em pˇr´ıpad´e provedeme krok du´aln´ı (vysvˇetlen d´ale). Pro u ´spˇeˇsnost prim´arn´ıho kroku je tˇreba ovˇeˇrit dvˇe vˇeci: • opˇet jsme z´ıskali striktnˇe pˇr´ıpustn´e ˇreˇsen´ı prim´arn´ı u ´lohy, • potenci´al podstatnˇe klesl. Ovˇeˇren´ı tˇechto podm´ınek je pˇredmˇetem n´asleduj´ıc´ıch dvou lemmat. ˜ ). Vektor 3.5.2 Lemma (Striktn´ı pˇ r´ıpustnost x pˇr´ıpustn´e ˇreˇsen´ı prim´arn´ı u ´lohy.
˜ x
je
striknˇe
d je nejv´ yˇse 1, m´ ame zaruˇceno D˚ ukaz. Protoˇze kaˇzd´ a sloˇzka vektoru kdk ˜ > 0. Protoˇze Ad = 0, m´ ˜. x ame zaruˇcenou i pˇr´ıpustnost x ⊓ ⊔
3.5.3 Lemma (Pokles potenci´ alu v prim´ arn´ım kroku). Po proveden´ı prim´arn´ıho kroku plat´ı G(˜ x, ˜s) − G(e, s′ ) ≤
−1 . 120
(3.14)
30
Kapitola 3. Metoda vnitˇrn´ıho bodu
√ D˚ ukaz. Pro zkr´ acen´ı z´apisu pouˇzijeme v d˚ ukazu znaˇcen´ı q = (n+ n). Po ˜ a ˜s podle vzorce (3.13) dostaneme (indexy nad nˇekter´ dosazen´ı za x ymi relacemi pouˇz´ıv´ ame k pozdˇejˇs´ımu odvol´av´an´ı se na nˇe) n
X dj dT s ′ )− ln(1 − ) G(˜ x, ˜s) − G(e, s ) = q ln(e s − 4 kdk 4 kdk ′
T ′
j=1
−
n X j=1
ln(s′j ) − q ln(eT s′ ) + n
n X
ln(s′j )
j=1
X dj dT s ′ =q ln(1 − ) − ) ln(1 − 4 kdk eT s′ 4 kdk j=1
n
n
X dj X d2j dT s′ + + ≤−q 4 kdk eT s′ 4 kdk 16 kdk2 2(1 − 41 ) j=1 j=1 i
dT s′ dT e 1 =−q + + 4 kdk eT s′ 4 kdk 24 s′ 1 dT e−q T ′ + = 4 kdk e s 24 dT g 1 =− + 4 kdk 24 ii
kdk2 1 kdk 1 0,2 1 1 =− + =− + ≤− + =− 4 kdk 24 4 24 4 24 120
iii
Nerovnost (i) vych´az´ı z odhadu logaritmu pomoc´ı Lemmatu (3.2.5) s |dj | ≤ 41 ). Rovnost (ii) pouˇz´ıv´ ame 4kdk a v´ ypoˇcet parametrem a = 41 (jistˇe m´
gradientu g (3.10). Rovnost (iii) vyuˇz´ıv´ a vztah gT d = dT d plynouc´ı z Pythagorovy vˇety (gT g = dT d + (g − d)T (g − d)). Posledn´ı nerovnost vyuˇz´ıv´ a doln´ı mez na kdk pro prim´arn´ı krok. ⊔ ⊓
Du´ aln´ı krok. Du´aln´ı krok provedeme, pokud kdk < 0,22. Z´akladn´ı myˇslenka du´aln´ıho kroku je stejn´ a jako v kroku prim´arn´ım: spoˇc´ıtat gradient h potenci´alu G(x, s) podle s v bodˇe (e, s′ ) a posunout ˇreˇsen´ı du´aln´ı u ´lohy ve smˇeru urˇcen´em vektorem −h. Podobnˇe jako v kroku prim´arn´ım bude ale tˇreba ohl´ıdat, abychom neporuˇsili ˇz´adnou omezuj´ıc´ı podm´ınku. Zaˇcnˇeme v´ ypoˇctem gradientu h. Protoˇze role promˇenn´ ych x a s ve funkci G(x, s) jsou symetrick´e, s pˇrihl´ednut´ım ke vztahu (3.10) rovnou nahl´edneme, ˇze pro gradient h potenci´alu G(x, s) podle s v bodˇe (e, s′ )
3.5. Iteraˇcn´ı krok
31
plat´ı
h = ∇s G(x, s)|(e,s′ ) = (n +
√
n)
1 s′1
e .. − . . eT s ′ 1
(3.15)
s′n
Porovnejme nyn´ı jednotliv´e sloˇzky vektor˚ u g a h. Plat´ı jednoduch´ y vztah, pro j = 1, . . . , n, gj hj = ′ . sj Protoˇze vˇsechny sloˇzky vektoru s′ jsou kladn´e, ukazuj´ı vektory g a h podobn´ ym smˇerem, presnˇeji ˇreˇceno, do stejn´eho ortantu. Vzhledem k t´eto podobnosti g a h, a vhledem k tomu, ˇze o vektoru g uˇz lecos v´ıme, budeme v du´aln´ım kroku pracovat s vektorem g a nikoli s vektorem h. Oznaˇcme si y′ druhou ˇc´ast sloˇzek pˇr´ıpustn´eho ˇreˇsen´ı du´aln´ı u ´lohy ′ odpov´ıdaj´ıc´ı vektoru s ; protoˇze se jedn´ a o pˇr´ıpustn´e ˇreˇsen´ı, vektory y′ a s′ splˇ nuj´ı AT y′ + s′ = c .
(3.16)
Naˇs´ım d´ılˇc´ım c´ılem je zmˇenit aktu´aln´ı du´aln´ı pˇr´ıpustn´e ˇreˇsen´ı s′ na nov´e du´aln´ı pˇr´ıpustn´e ˇreˇsen´ı ˜s (a pˇri tom zajistit pokles potenci´alu). Zajist´ıme˜ splˇ li pˇri volbˇe ˜s, ˇze existuje vektor y nuj´ıc´ı rovnici ˜ + ˜s = c , AT y
(3.17)
m´ ame zaruˇcenu pˇr´ıpustnost ˜s. Ze vztah˚ u (3.16) a (3.17) plyne pro ˜s omezen´ı ˜s − s′ = AT (y′ − y ˜) .
(3.18)
Vyj´adˇreno slovy, ˜s−s′ mus´ı b´ yt line´ arn´ı kombinac´ı ˇr´ adk˚ u matice A, neboli ′ ˜s − s mus´ı b´ yt kolm´e na nadrovinu {x | Ax = 0}. S jedn´ım vektorem kolm´ ym na nadrovinu {x | Ax = 0} uˇz jsme pracovali, totiˇz s vektorem g − d. Proto se pˇri rozhodov´an´ı, jak zlepˇsovat du´aln´ı ˇreˇsen´ı s′ , nab´ız´ı vydat se smˇerem −(g − d). Tuto myˇslenku provedeme a v du´aln´ım kroku urˇc´ıme dalˇs´ı dvojici pˇr´ıpustn´ ych ˇreˇsen´ı podle pˇredpisu eT s ′ √ (g − d) , x ˜s = s − ˜=e. n+ n ′
Podobnˇe jako v prim´arn´ım kroku je tˇreba ovˇeˇrit dvˇe vˇeci:
(3.19)
32
Kapitola 3. Metoda vnitˇrn´ıho bodu • z´ıskali jsme striktnˇe pˇr´ıpustn´e ˇreˇsen´ı du´aln´ı u ´lohy, • potenci´al podstatnˇe klesl.
Ovˇeˇren´ı tˇechto podm´ınek je pˇredmˇetem n´asleduj´ıc´ıch dvou lemmat. 3.5.4 Lemma (Striktn´ı pˇ r´ıpustnost ˜s). Po proveden´ı kroku je ˜s striktnˇe pˇr´ıpustn´e ˇreˇsen´ı du´aln´ı u ´lohy.
du´aln´ıho
˜ splˇ D˚ ukaz. Existence vektoru y nuj´ıc´ımu rovnost (3.17) plyne z definice ˜s (vol´ıme ˜s, aby ˜s − s′ bylo line´ arn´ı kombinac´ı ˇr´ adk˚ u AT ), proto je ˜s pˇr´ıpustn´e ˇreˇsen´ı. Jeˇstˇe ovˇeˇr´ıme jeho striktn´ı pˇr´ıpustnost. Podle definice ˜s a definice g, pro vektor ˜s plat´ı √ T s′ T s′ n e e n + √ (g − d)s′ − √ ( T ′ s′ − e − d) = ˜s = s′ − n+ n n+ n e s eT s ′ √ (d + e) . (3.20) = n+ n Protoˇze du´aln´ı krok prov´ad´ıme v pˇr´ıpadˇe kdk < 0,22, je z posledn´ıho vyj´ adˇren´ı vidˇet ˜s > 0. T´ım je d˚ ukaz hotov. ⊓ ⊔ Dˇr´ıve neˇz odhadneme pokles potenci´alu pˇri proveden´ı du´aln´ıho kroku, dok´aˇzeme pomocn´e lemma. 3.5.5 Lemma. n X j=1
D˚ ukaz. n X j=1
=
eT ˜s 1 ln s˜j ≥n ln − . n 32
(3.21)
n
eT ˜s X eT s′ eT s ′ eT d ln s˜j − n ln = (1 + dj )) − n ln( (1 + )) ln( n q q n
n X j=1
j=1
n X d2j eT d eT d (dj − )≥ )−n ln(1 + dj ) − n ln(1 + n 2(1 − 0,22) n
kdk2 1 =− ≥− . 2(1 − 0,22) 32
j=1
Prvn´ı rovnost plyne ze vztahu (3.20) odvozen´eho v d˚ ukazu pˇredeˇsl´eho lemmatu. Pˇri dalˇs´ıch u ´prav´ach jsou pouˇzity z´akladn´ı vlastnosti funkce logaritmus, jej´ı odhady z Lemmatu 3.2.5 a horn´ı odhad na velikost kdk v du´aln´ım kroku. ⊔ ⊓
3.5. Iteraˇcn´ı krok
33
3.5.6 Lemma (Pokles potenci´ alu v du´ aln´ım kroku). Po den´ı du´aln´ıho kroku plat´ı G(˜ x, ˜s) − G(e, s′ ) ≤ −
1 . 3
prove-
(3.22)
D˚ ukaz. Zaˇcneme pomocn´ ym v´ ypoˇctem, kde v prvn´ pouˇ z´ıv´ ame Pnı rovnosti P n 2 identitu (3.20) a pro prvn´ı nerovnost vztah ( i=1 di ) ≤ n i=1 d2i (dokaˇzte si s pouˇzit´ım Cauchy-Schwarzovy nerovnosti): √ eT s ′ T eT s ′ eT s ′ √ e ˜s = (e d + n) ≤ ( n kdk + n) ≤ (n + 0,22 n) . q q q T
Dost´ av´ame √ √ √ n − 0,22 n eT ˜s n + 0,22 n √ ≤ . =1− eT s ′ q n+ n
(3.23)
Pokles potenci´alu pak odhadneme takto: ′
T
G(e, ˜s) − G(e, s ) =q ln(e ˜s) − eT ˜s =q ln T ′ − e s
n X
j=1 n X j=1
T ′
ln s˜j − q ln(e s ) + ln s˜j +
n X
n X
ln s′ j
j=1
ln s′ j
j=1
eT ˜s eT ˜s 1 eT s′ ≤q ln T ′ − n ln + + n ln e s n 32 n T 1 e ˜s =(q − n) ln T ′ + 32 √e s √ ii √ n − 0,22 n 1 1 ≤ − ( n) + ≤ − q 32 3 i
kde nerovnost (i) plyne z odhadu (3.21) (Lemma 3.5.5) a ze vztahu Pn ′ ≤ n ln eT s′ vych´ azej´ıc´ıho z Lemmatu (3.7) (aritmetick´ y a geln s j j=1 n ometrick´ y pr˚ umˇer). Nerovnost (ii) vyuˇz´ıv´ a odhad (3.23) a Lemma 3.2.5 o odhadu logaritmu. V posledn´ı nerovnosti odhadujeme shora q pomoc´ı 2n. ⊔ ⊓ Obecn´ y pˇ r´ıpad. Pomoc´ı vhodn´e afinn´ı transformace pˇrevedeme obecn´ y pˇr´ıpad na snadn´ y (tj. x = e), pro kter´ y iteraˇcn´ı krok prov´est ¯ je posledn´ı sestrojen´e prim´arn´ı ˇreˇsen´ı a jiˇz um´ıme. Pˇredpokl´ adejme, ˇze x
34
Kapitola 3. Metoda vnitˇrn´ıho bodu
¯s posledn´ı sestrojen´e du´aln´ı ˇreˇsen´ı. ¯ na e. Poloˇzme raz´ı x x ¯1 ¯ = X 0 0
Chceme afinn´ı zobrazen´ı, kter´e zob0 .. . 0
0
0 . x ¯n
(3.24)
¯ regul´ ¯ je striknˇe pˇr´ıpustn´e ˇreˇsen´ı, je matice X Protoˇze x arn´ı a existuje k ¯ −1 a plat´ı n´ı inverzn´ı matice X −1 x ¯1 0 0 .. ¯ −1 = (3.25) X 0 . 0 . 0
0
x ¯−1 n
¯ −1 je matice hledan´eho afin´ıho zobrazen´ı: Matice X ¯ −1 x ¯=e X
¯ −1 x vektor nov´ Oznaˇcme x′ = X ych promˇenn´ ych odvozen´ ych od x ¯ −1 , a vyj´adˇreme prim´arn´ı u pomoci matice X ´lohu v ˇreˇci tˇechto nov´ ych promˇenn´ ych. ¯ ′ min cT Xx ¯ ′=b AXx x′ ≥ 0 ¯ ac ¯ lze u ¯ = cT X Pˇri oznaˇcen´ı A¯ = AX ´lohu pˇrepsat n´asledovnˇe: ¯ T x′ min c ¯ ′=b Ax
(3.26)
x′ ≥ 0 Uvˇedomme si, ˇze x je pˇr´ıpustn´e ˇreˇsen´ı pro p˚ uvodn´ı prim´arn´ı u ´lohu pr´avˇe ¯ −1 x je pˇr´ıpustn´e ˇreˇsen´ı pro poslednˇe uvedenou u tehdy, kdyˇz x′ = X ´lohu line´ arn´ıho programov´an´ı. Du´aln´ı u ´loha k (3.26) pak vypad´ a takto: max bT y ¯ T y + s′ = X¯ ¯c (AX) s′ ≥ 0
3.6. Jak ze skoro optim´aln´ıho ˇreˇsen´ı naj´ıt u ´plnˇe optim´aln´ı
35
¯ kde s′ = Xs. N´ asleduj´ıc´ı jednoduch´e lemma vystihuje kl´ıˇcovou vlastnost uˇzit´e afinn´ı transformace: potenci´al dvojice pˇr´ıpustn´ ych ˇreˇsen´ı se transformac´ı nezmˇen´ı. 3.5.7 Lemma (Zachov´ an´ı potenci´ alu). Pro regul´ arn´ı diagon´ aln´ı ma¯ s hlavn´ı diagon´ tici X alou x ¯1 , . . . , x ¯n , a pro libovoln´a pˇr´ıpustn´ a ˇreˇsen´ı ′ −1 ′ ¯ x a s = Xs ¯ plat´ı (x, s) p˚ uvodn´ı prim´arn´ı a du´aln´ı u ´lohy a pro x = X G(x′ , s′ ) =G(x, s) . D˚ ukaz. Lemma plyne okamˇzitˇe z definice potenci´alu a pˇredpis˚ u pro x′ a ⊓ ⊔ ¯i , a tedy xi si = x′i s′i . xi a s′i = si x s′ , podle kter´ ych x′i = xi /¯
3.6 Jak ze skoro optim´aln´ıho ˇreˇsen´ı naj´ıt u ´plnˇe optim´aln´ı ¯ a (¯ Pˇredpokl´ adejme, ˇze m´ ame k dispozici ˇreˇsen´ı x y, ¯s) u ´loh (3.1) a (3.2) −2L −L T ¯ ¯s < 2 . Pak pro kaˇzd´e i jistˇe x ¯i < 2 nebo s¯i < 2−L . takov´a, ˇze x Budeme se snaˇzit kaˇzdou malou sloˇzku nahradit nulou, a ostatn´ı zmˇenit tak, abychom st´ale mˇeli pˇr´ıpustn´ a ˇreˇsen´ı. Pokud se n´am to podaˇr´ı, bude v´ ysledn´a dvojice ˇreˇsen´ı jistˇe splˇ novat podm´ınky komplementarity (tj. T x s = 0) a p˚ ujde tedy o optim´aln´ı ˇreˇsen´ı. Podobnˇe jako v pˇredeˇsl´e ˇc´asti budeme pˇredpokl´ adat, ˇze matice A a vektory b a c jsou celoˇc´ıseln´e. Pro n-sloˇzkov´ y vektor u ∈ Rn zavedeme n´asleduj´ıc´ı znaˇcen´ı: M (u) = {j | uj < 2−L } , V (u) = {j | uj ≥ 2−L } . Pro matici A a mnoˇzinu index˚ u J oznaˇcme AJ podmatici matice A tvoˇrenou sloupci s indexy z J. Zaˇcneme dvˇema pomocn´ ymi lemmaty, s jejichˇz pomoc´ı pak provedeme naznaˇcen´ y pl´ an na zaokrouhlen´ı. ¯ pˇr´ıpustn´e ˇreˇsen´ı u 3.6.1 Lemma. Je-li x ´lohy (3.1), pak v polynomi´ aln´ım ˆ takov´e, ˇze ˇcase lze naj´ıt pˇr´ıpustn´e ˇreˇsen´ı x • x ˆj = x ¯j pro j ∈ M (¯ x), • sloupce matice AV (ˆx) jsou line´ arnˇe nez´ avisl´e.
36
Kapitola 3. Metoda vnitˇrn´ıho bodu
D˚ ukaz. Pˇredpokl´ adejme, ˇze sloupce matice AV (¯x) jsou line´ arnˇe z´avisl´e ˆ=x ¯ a jsme hotovi). Pak jistˇe homogenn´ı (v opaˇcn´em pˇr´ıpadˇe poloˇz´ıme x soustava AV (¯x) v = 0 m´ a netrivi´aln´ı ˇreˇsen´ı; oznaˇcme v′ nˇejak´e takov´e ˇreˇsen´ı doplnˇen´e nulami na souˇradnic´ıch M (¯ x) na vektor d´elky n. Vhod′ ¯ = x ¯ − λv′ pˇr´ıpustn´ nou volbou skal´aru λ 6= 0 je vektor x ym ˇreˇsen´ım ′ soustavy (3.1) a nav´ıc V (¯ x ) ( V (¯ x). Opakujeme-li tento postup, dostaˆ s k´ neme po nejv´ yˇsˇse n iterac´ıch vektor x yˇzen´ ymi vlastnostmi. ⊔ ⊓ ¯ pˇr´ıpustn´e ˇreˇsen´ı u 3.6.2 Lemma. Je-li x ´lohy (3.1), pak existuje vrchol v mnohostˇenu P = {x | Ax = b, x ≥ 0} splˇ nuj´ıc´ı vj = 0 pro kaˇzd´e j ∈ M (¯ x). Obdobnˇe, je-li (¯ y, ¯s) pˇr´ıpustn´e ˇreˇsen´ı u ´lohy (3.2), pak existuje ′ ′ vrchol (y , s ) mnohostˇenu Q = {(y, s) | s ≥ 0 and AT y+s = c} splˇ nuj´ıc´ı T ′ Aj y = cj pro kaˇzd´e j ∈ M (¯ s). D˚ ukaz. V d˚ ukazu Vˇety 3.2.2 jsme nahl´edli, ˇze kaˇzd´ a nenulov´a sloˇzka 2 libovoln´eho vrcholu v mnohostˇenu P je vetˇs´ı neˇz 1/2L−n , kde L je velikost z´apisu line´ arn´ıho programu (3.1). Pro zjednoduˇsen´ı pro zat´ım pˇredpokl´ adejme, ˇze mnohostˇen P je omezen´ y. Pak dan´e pˇr´ıpustn´e ˇreˇsen´ı ¯ je, podle Carath´eodorovy vˇety o konvexn´ım obalu, konvexn´ı kombix P ¯ = pi=1 λi vi nac´ı nˇejak´ ych p ≤ n + 1 jeho vrchol˚ u v1 , . . . , vp , neboli x pro nˇejak´e nez´ aporn´e koeficienty λ1 , . . . , λp se souˇctem jedna. Tud´ıˇz jistˇe alespoˇ n jeden koeficient, oznaˇcme ho i, splˇ nuje λi ≥ 1/(n + 1). Uk´aˇzeme, ˇze vi,j = 0 pro kaˇzd´e j ∈ M (¯ x), neboli v = vi je hledan´ y vrchol. Pˇredpokl´ adejme pro spor, ˇze vi,j > 0 pro nˇejak´e j ∈ M (¯ x). Pak doL konce vi,j > 1/2 , protoˇze jde o vrchol P . Pouˇzijme tento fakt k doln´ımu odhadu velikosti x ¯j : x ¯j =
p X k=1
λk vjk ≥ λi vi,j >
1 1 1 · L−n2 > L n+1 2 2
coˇz je ovˇsem spor se skuteˇcnost´ı j ∈ M (¯ x). Druh´a ˇc´ast lemmatu se dok´aˇze obdobnˇe. Podle Carath´eodorovy vˇety existuje q = m + 1 vrchol˚ u (yi , si ) mnohostˇ enu Q takov´ ych, ˇze (¯ y, ¯s) P q je jejich konvexn´ı kombinac´ı, neboli (¯ y, ¯s) = i=1 µi (yi , si ) pro vhodn´e nez´ aporn´e koeficienty µi se souˇctem jedna. Necht’ i je index splˇ nuj´ıc´ı µi ≥ 1/(m + 1). Uk´aˇzeme, ˇze vrchol (yi , si ) m´ a poˇzadovan´e vlastnosti. T Kdyby pro nˇejak´e j ∈ M (¯ s) neplatilo Aj yi = cj , pak podobnˇe jako v pˇredeˇsl´em pˇr´ıpadˇe dokonce plat´ı sij > 1/2L . Protoˇze ¯s je konvexn´ı kombinac´ı s1 , . . . , sq s koeficienty µ1 , . . . , µq , dostaneme opˇet spor. ⊔ ⊓
3.7. Shrnut´ı
37
¯ a ¯s najdeme nejprve podle Lemmatu 3.6.1 Pro dan´ a pˇr´ıpustn´ a ˇreˇsen´ı x ˆ takov´e, ˇze matice AV (ˆx) m´ pˇr´ıpustn´e ˇreˇsen´ı x a line´ arnˇe nez´ avisl´e sloupce. Podle Lemmatu 3.6.2 existuje pˇr´ıpustn´e ˇreˇsen´ı v prim´arn´ı u ´lohy se vˇsemi souˇradnicemi z M (ˆ x) nulov´ ymi, a tak´e pˇr´ıpustn´e ˇreˇsen´ı (y′ , s′ ) du´aln´ı u ´lohy se vˇsemi souˇradnicemi V (ˆ x) ⊆ M (ˆs) nulov´ ymi. Protoˇze sloupce matice AV (ˆx) jsou line´ arnˇe nez´ avisl´e, je vrchol v urˇcen jednoznaˇcnˇe a lze z´ıskat ˇreˇsen´ım soustavy line´ arn´ıch rovnic Ax = b pˇri nastaven´ı xi = 0 pro kaˇzd´e i ∈ M (ˆ x). Protoˇze vT s′ = 0, je v hledan´e optim´aln´ı ˇreˇsen´ı. Pro u ´plnost jeˇstˇe dod´av´ame, ˇze existuje nˇekolik dalˇs´ıch postup˚ u pro pˇrechod od skoro optim´aln´ıho ˇreˇsen´ı k optim´aln´ımu.
3.7 Shrnut´ı Pˇrehl´edneme-li drobn´e implementaˇcn´ı obt´ıˇze s odmocninami, dopracovali jsme se k n´asleduj´ıc´ı vˇetˇe. Pˇripomeˇ nme si, ˇze poˇcet iterac´ı algoritmu je √ O( nL) a nejsloˇzitˇejˇs´ı operac´ı v iteraci je maticov´e n´asoben´ı (pˇri Gaussovˇe eliminaci O(n3 ) aritmetick´ ych operac´ı). 3.7.1 Vˇ eta (Karmarkar, 1984). Existuje algoritmus pro ˇreˇsen´ı u ´lohy 3,5 line´ arn´ıho programov´an´ı s pouˇz´ıt´ım O(n L) aritmetick´ ych operac´ı. Pozn´ amka. P˚ uvodn´ı Karmarkar˚ uv algoritmus z roku 1984 se od zde popsan´eho algoritmu v mnoh´em liˇs´ı (jin´ y potenci´al, jin´ a transformace, 3,5 jin´ y poˇcet iterac´ı, ..., nicm´enˇe sloˇzitost O(n L) ); tento text vych´az´ı pˇredevˇs´ım z algoritmu navrˇzen´eho Ye [13] (viz t´eˇz Freund [2] a Goemans˚ uv uˇcebn´ı text [3]). Karmarkar˚ uv algoritmus byl ale prvn´ım ze skupiny metod vnitˇrn´ıch bod˚ u, pro kter´e byl dok´az´an polynomi´ aln´ı odhad na dobu bˇehu.
Literatura [1] W. J. Cook, W. H. Cunningham, W. R. Pulleyblank, and A. Schrijver. Combinatorial Optimization. John Wiley, New York, 1997. [2] R. M. Freund. Polynomial algorithms for linear programming based only on primal scaling and projected gradients of a potential function. Mathematical Programming, 51:203–222, 1991. [3] M. Goemans. Advanced algorithms: Linear programming. Technical report, MIT, Boston, 1994. [4] L. G. Chaˇcijan. A polynomial algorithm in linear programming. Dokl. Akad. Nauk SSSR, 244:1093–1096, 1979. [5] N. Karmarkar. A new polynomial time algorithm for linear programming. Combinatorica, 4(4):373–395, 1984. [6] M. Gr¨ otschel and L. Lov´asz and A. Schrijver. Geometric Algorithms and Combinatorial Optimization. Springer, Berlin, 1988. [7] J. Matouˇsek. Line´ arn´ı programov´ an´ı a line´ arn´ı algebra pro informatiky. ITI Series. Univerzita Karlova v Praze, Institut teoretick´einformatiky, 2006. [8] J. Matouˇsek and B. G¨ artner. Understanding and Using Linear Programming. Universitext (En ligne). Springer, 2007. [9] N. Megiddo. Linear programming in linear time when the dimension is fixed. Journal of Association for Computing Machinery, 31(1):114–127, Jan. 1984. [10] R. Seidel. Skript zur Vorlesung Optimierung. Technical report, Universit¨at des Saarlandes, Saarbr¨ ucken, 1996.
40
Literatura
[11] D. A. Spielman and S.-H. Teng. Smoothed analysis of algorithms: Why the simplex algorithm usually takes polynomial time. Journal of the ACM, 51(3):385–463, 2004. [12] E. Tardos. A strongly polynomial algorithm to solve combinatorial linear programs. Oper. Res., 34:250–256, 1986. [13] Y. Ye. An O(n3 L) potential reduction algorithm for linear programming. Mathematical Programming, 50:239–258, 1991.