KMA/TGD2
Teorie graf˚ u a diskr´ etn´ı optimalizace 2 Pracovn´ı texty pˇ redn´ aˇ sek http://www.kma.zcu.cz/TGD2
V pˇredmˇetu KMA/TGD2 se vyuˇz´ıv´a z´akladn´ı pˇrehled hlavn´ıch pojm˚ u a poznatk˚ u z teorie graf˚ u, a (zejm´ena) znalost z´aklad˚ u teorie v´ ypoˇcetn´ı sloˇzitosti, z´ıskan´a v prerekvizitn´ım pˇredmˇetu KMA/TGD1. C´ılem pˇredmˇetu je dalˇs´ı prohlouben´ı poznatk˚ u z teorie graf˚ u a souvisej´ıc´ıch oblast´ı se zamˇeˇren´ım pˇredevˇs´ım na optimalizaˇcn´ı probl´emy a metody diskr´etn´ı optimalizace. Tˇeˇziˇstˇem prob´ıran´e l´atky je line´arn´ı programov´an´ı, kter´e ovˇsem z hlediska koncepce pˇredmˇetu nen´ı c´ılem, n´ ybrˇz prostˇredkem k pochopen´ı vz´ajemn´e pˇrevoditelnosti vˇetˇsiny u ´loh diskr´etn´ı optimalizace. D˚ uraz je kladen na algoritmickou str´ anku vˇsech zkouman´ ych probl´em˚ u. Hlavn´ı dovednost´ı, kterou by si student mˇel z pˇredmˇetu odn´est, je celkov´ y pˇrehled z´akladn´ıch metod diskr´etn´ı optimalizace a jejich vz´ ajemn´e pˇrevoditelnosti a cit pro v´ ypoˇcetn´ı sloˇzitost optimalizaˇcn´ıch probl´em˚ u a pˇr´ısluˇsn´ ych algoritm˚ u. Podobnˇe jako u textu pro pˇredmˇet KMA/TGD1, je i tento text jen pomocn´ ym textem k pˇredn´ aˇsk´ am, kter´ y si neklade ambice b´ yt povaˇzov´an za ucelen´ y uˇcebn´ı text typu uˇcebnice ˇci skript. Obsahuje sice vˇsechny z´akladn´ı pojmy, tvrzen´ı a jejich d˚ ukazy, ale chyb´ı v nˇem mnoh´e koment´aˇre, kter´e jsou pro pochopen´ı l´atky nezbytn´e. Dˇekuji studentovi 5. roˇcn´ıku FAV Pˇremyslu Holubovi za pˇrepis m´ ych pracovn´ıch pozn´ amek do TEXu, kter´ y se stal z´akladem tohoto textu. ´ Unor 2001, Z. Ryj´ aˇcek
Oproti pˇredchoz´ı (sedm´e) verzi, datovan´e u ´nor 2009, bylo provedeno nˇekolik oprav drobn´ ych chyb a pˇreklep˚ u. ´ Unor 2016, Z. Ryj´ aˇcek
1
Obsah 1 Optim´ aln´ı tok 1.1 Formulace u ´lohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Z´ aporn´e rezervn´ı polocykly . . . . . . . . . . . . . . . . . . . . . . 1.3 Vyhled´ av´ an´ı z´ aporn´ ych rezervn´ıch polocykl˚ u a Floyd˚ uv algoritmus 1.4 Metoda potenci´ al˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Pˇrevod nˇekter´ ych grafov´ ych u ´loh na u ´lohu optim´aln´ıho toku . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3 3 5 9 11 16
2 Line´ arn´ı programov´ an´ı 2.1 Tˇri z´ akladn´ı formulace u ´lohy line´ arn´ıho programov´an´ı . . . . . . . . . . . . . 2.2 Simplexov´ y algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Dvouf´ azov´ a metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Degenerovan´e u ´lohy a zacyklen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 V´ ypoˇcetn´ı sloˇzitost simplexov´eho algoritmu a u ´lohy line´arn´ıho programov´an´ı
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
18 19 22 33 35 38
3 Dualita u ´ loh line´ arn´ıho programov´ an´ı 3.1 Prim´ arn´ı a du´ aln´ı u ´loha line´ arn´ıho programov´an´ı . . . . . . . . . . . . . . . . . . . . . . . 3.2 Vˇety o dualitˇe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Dobr´e charakteristiky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39 39 40 42
4 Celoˇ c´ıseln´ e line´ arn´ı programov´ an´ı 4.1 Formulace u ´lohy . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 V´ ypoˇcetn´ı sloˇzitost u ´lohy celoˇc´ıseln´eho line´arn´ıho programov´an´ı . 4.3 Celoˇc´ıseln´e line´ arn´ı programov´ an´ı a tot´alnˇe unimodul´arn´ı matice 4.4 Enumerativn´ı metody a metoda vˇetv´ı a mez´ı . . . . . . . . . . . 4.5 Metoda seˇcn´ ych nadrovin . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
44 44 46 49 51 54
5 P´ arov´ an´ı 5.1 Z´ akladn´ı pojmy, perfektn´ı p´ arov´ an´ı . . . . . . . . . . . . . . . . . . . 5.2 Rozˇsiˇruj´ıc´ı cesty a Bergeova vˇeta . . . . . . . . . . . . . . . . . . . . 5.3 Nejvˇetˇs´ı p´ arov´ an´ı v bipartitn´ım grafu a mad’arsk´a metoda . . . . . . 5.4 Optim´ aln´ı p´ arov´ an´ı v ohodnocen´ ych bipartitn´ıch grafech . . . . . . . 5.5 Perfektn´ı p´ arov´ an´ı v neorientovan´em grafu a Tutteova vˇeta . . . . . 5.6 Nejvˇetˇs´ı p´ arov´ an´ı v neorientovan´em grafu, p´arovac´ı ˇc´ıslo a deficience 5.7 Edmonds˚ uv algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
57 57 60 61 65 68 70 71
6 Hranov´ e grafy 6.1 Z´ akladn´ı pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Charakterizaˇcn´ı vˇety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Hranov´e grafy a v´ ypoˇcetn´ı sloˇzitost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74 74 75 76
7 Rovinn´ e grafy 7.1 Uloˇzen´ı grafu na plochu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Eulerova vˇeta a jej´ı d˚ usledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Kuratowsk´eho vˇeta a dalˇs´ı vˇety o rovinn´ ych grafech . . . . . . . . . . . . . . . . . . . . .
77 77 78 80
8 Probl´ em obchodn´ıho cestuj´ıc´ıho 8.1 Metoda penalizac´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Kruˇznice mal´e v´ ahy v u ´pln´em ohodnocen´em grafu . . . . . . . . . . . . . . . . . . . . . .
83 83 85
2
. . . . .
1
Optim´ aln´ı tok
1.1
Formulace u ´ lohy
V t´eto kapitole budeme uvaˇzovat s´ıt’ s v´ıce zdroji a v´ıce stoky s pevnˇe dan´ ymi intenzitami a budeme pˇredpokl´ adat, ˇze v s´ıti existuje tok. Obecnˇe takov´ ych tok˚ u existuje v´ıce a je moˇzno hledat tok z nˇekter´eho ~ dalˇs´ı ˇc´ıslo cij , kter´e budeme podle jednoho hlediska optim´ aln´ı. Pˇriˇrad´ıme proto kaˇzd´e hranˇe grafu G zp˚ usobu jeho interpretace naz´ yvat cenou. ~ s´ıt’ s propustnost´ı hran rij a s intenzitami uzl˚ Definice 1.1. Bud’ G u ai . Necht’ pro kaˇzdou hranu ~ ~ (i, j) ∈ H(G) je d´ ano ˇc´ıslo cij ∈ R, naz´ yvan´e cena. Je-li x tok v G, pak se ˇc´ıslo X cij xij c(x) = ~ (i,j)∈H(G)
~ kter´ ~ naz´ yv´ a cena toku x. Tok v G, y m´ a minim´aln´ı cenu, se naz´ yv´a optim´aln´ı tok v s´ıti G. Pˇ r´ıklad. Pl´ anov´ an´ı pˇrepravy n´ aklad˚ u. ~ v´ M´ a-li s´ıt’ G yznam transportn´ı s´ıtˇe a ˇc´ısla cij znamenaj´ı cenu za pˇrepravu jednotky produktu po hranˇe (i, j), pak m´ a cena toku c(x) v´ yznam celkov´ ych pˇrepravn´ıch n´aklad˚ u a optim´aln´ı tok pˇredstavuje rozvozn´ı pl´ an, kter´ y uspokoj´ı dan´e pˇrepravn´ı n´aroky s minim´aln´ımi celkov´ ymi n´aklady. Pˇ r´ıklad. Pl´ anov´ an´ı v´ yroby a skladov´ an´ı. Uvaˇzujme podnik, kter´ y mus´ı kaˇzd´ y mˇes´ıc pl´anovat svoji v´ yrobu tak, aby byl schopen zabezpeˇcit v´ yrobu podle zadan´eho grafikonu, jehoˇz hodnoty jsou kol´ısav´e. V t´eto situaci jsou r˚ uzn´e zp˚ usoby ˇreˇsen´ı: je napˇr´ıklad moˇzno kaˇzd´ y mˇes´ıc vyrobit pˇresnˇe tolik, kolik ˇz´ad´a grafikon - v tom pˇr´ıpadˇe vˇsak nar˚ ustaj´ı ztr´ aty, zp˚ usoben´e kol´ıs´ an´ım v´ yroby. Je t´eˇz moˇzno udrˇzovat konstantn´ı v´ yrobu a kol´ıs´an´ı popt´avky zabezpeˇcovat pomoc´ı skladu - pˇri mal´e popt´avce vyr´abˇet pro sklad, pˇri velk´e sklad vypr´azdnit. V tomto ´ pˇr´ıpadˇe nar˚ ustaj´ı skladovac´ı n´ aklady. Ukolem je nal´ezt takov´ y pl´an v´ yroby, aby celkov´e ztr´aty byly minim´ aln´ı. Pˇredpokl´ adejme, ˇze se na zaˇc´ atku ve skladu nach´az´ı d0 jednotek produktu a oznaˇcme: - xm produkci z´ avodu v m-t´em mˇes´ıci, - bm mnoˇzstv´ı produktu potˇrebn´e v m-t´em mˇes´ıci, - dm mnoˇzstv´ı produktu nepouˇzit´eho na konci m-t´eho mˇes´ıce (tj. z´asobu), - cm n´ aklady na rozˇs´ıˇren´ı v´ yroby mezi m-t´ ym a m + 1-t´ ym mˇes´ıcem, - pm n´ aklady na skladov´ an´ı jednotky produktu mezi m-t´ ym a m + 1-t´ ym mˇes´ıcem. Pak se snadno pˇresvˇedˇc´ıme, ˇze ˇreˇsen´ı naˇs´ı u ´lohy se pˇrevede na u ´lohu o optim´aln´ım toku v s´ıti na n´ asleduj´ıc´ım obr´ azku: −b1 −b2 −b3 −b4 −b5 −b6 −b7 −b8 −b9 −b10 −b11 −b12 ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ....... ....... ....... ....... ....... ....... ....... ....... ....... ....... ....... ....... ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ .... .... .... .... .... .... .... .... .... .... .... .... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . . . . . . . . ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. ... ... . . . . . . . . . . . d . d . . . . . . . . . . . . . . . . . . . d d d d d d d d d d . .. . . . . . . . . . . ..................................... ......................................................11 ....................................................8 ....................................................9 ...................................................10 ..................................................7 .....................................................4 ....................................................5 ..................................................6 .....................................................3 ....................0 .............................................................................1 ...........................................................2 ......... .......... ........... ........ ............. .... ..... ........ ....... ............. ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... ...... . ........ ........ ......... ... .... ..... ....... ..... .... . . ....... . . . . . . . . . . . . . ....... . . . . . . . . . . . . . . . . . . . . . ...... ... ... ..... .. .. ....... .. ...... ..... ...... ..... ....... ........ ... .... ... ... ....... ... ...... ..... ... ....... .. ........ . ....... ... ... ... ...... ... ..... ........ ....... ....... x1 ............x2 ..........x3 ..... x4 .. x ... x5 ... x8 ......... x9 ........... x10 ....... x ................ x12 ... x6 ....... ... ..... ...... . . ....... ....11 .. 7 ..... . . . . . . . ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... .. ..... ... .. ....... . .. ... .. ..... ....... ........... ..... ... ...... .............. ............... ... ... .... ... . . ....... ..... . . ... ...... ... ... ... ... ....... ........... ......... ..... ........... .............. ................ ... ... .. . ....... ... . ..... . ... ....... ............ ......... ..... .. ... ... ......... ........... .............. ................ . . . . . ....... ...... ..... . . .. .. ... ... ....... ...... ..... ..... .... ... .... ...... ........ .......... ........... ... ....... ...... ..... ... .. ....... ...... ..... ... ... .... .... ..... .......... ........................................ ....... ...... ..... .. .. .. .. .. .... ...... ....... ........ ....... ...... ..... ... .. .. .. ... ..... ...... ............... ....... ..... ..... ... .. .. . .. ..... ..... ............... ............. ..... .. ... .. ... ... .......................... .................... .. . .. .. ......................... ....................... .. ............................ ............................................ .........................
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• a
3
ˇ ısla xm a dm interpretujeme jako hodnoty toku a ˇc´ısla cm a pm jako ceny; cena toku (kterou C´ minimalizujeme) je d´ ana v´ yrazem 11 X
11 X
cm (xm+1 − xm ) +
m=1
p m dm ;
m=1
propustnosti vˇsech hran uvaˇzujeme nekoneˇcn´e. Intenzita a uzlu, z nˇehoˇz vych´ azej´ı toky x1 , . . . , x12 , je d´ana v´ yrazem a =
12 P
bi −d0 ; v i-t´em neutr´aln´ım
i=1
uzlu je xi + di−1 − di = bi , i = 1, . . . , 11 (pro i = 12 je xi + di−1 = bi ), coˇz je v souladu s formulac´ı u ´lohy. V pˇredchoz´ıch dvou pˇr´ıkladech z podstaty u ´lohy vypl´ yvalo, ˇze ceny cij mus´ı b´ yt nez´aporn´a ˇc´ısla. V n´ asleduj´ıc´ım pˇr´ıkladu uvid´ıme, ˇze v praktick´ ych situac´ıch se mohou vyskytnout i z´aporn´e ceny a tedy n´ aˇs pˇredpoklad cij ∈ R z definice optim´ aln´ıho toku m´a opodstatnˇen´ı. ´ Pˇ r´ıklad. Uloha o skladu. Ve skladu, do nˇehoˇz se vejde nejv´ yˇse k v´ yrobk˚ u, je k dispozici k0 v´ yrobk˚ u. V pr˚ ubˇehu n dn˚ u se realizuje prodej a n´ akup tˇechto v´ yrobk˚ u. Pˇredpokl´adejme, ˇze jsou zn´amy: pi - cena pˇri prodeji jednoho v´ yrobku v i-t´ y den, qi - kupn´ı cena (od dodavatele) jednoho v´ yrobku v i-t´ y den pro doplnˇen´ı skladu, si - n´ aklady na skladov´ an´ı jednoho v´ yrobku v i-t´ y den, Q - celkov´ y poˇcet v´ yrobk˚ u, kter´e je moˇzno od dodavatele obdrˇzet za uvaˇzovan´ ych n dn˚ u. Naˇs´ım u ´kolem je urˇcit: αi - poˇcet v´ yrobk˚ u, prodan´ ych v i-t´ y den, βi - poˇcet v´ yrobk˚ u, koupen´ ych od dodavatele v i-t´ y den, γi - poˇcet skladovan´ ych v´ yrobk˚ u po prodeji skladovan´ ych, δi - poˇcet skladovan´ ych v´ yrobk˚ u po koupi nov´ ych od dodavatele; pˇriˇcemˇz m´ a b´ yt maximalizov´ an celkov´ y zisk n X
(pi αi − qi βi − si δi ),
i=1
coˇz je zˇrejmˇe ekvivalentn´ı s minimalizac´ı v´ yrazu n X
(−pi αi + qi βi + si δi ).
i=1
´ Pro zjednoduˇsen´ı pˇredpokl´ adejme, ˇze se poˇzaduje, aby v n-t´ y den bylo ve skladu opˇet k0 v´ yrobk˚ u. Uloha se pˇrevede na u ´lohu o optim´ aln´ım toku v s´ıti, jeˇz je pro n = 4 na n´asleduj´ıc´ım obr´azku. a10 = −Q ................. ............................................. . .......................... .............. .................. .......................... .. ... ............. ... .............. .......................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. ..... ..... ... .................... ............ ............. .......................... ........... ........... ........ . ............. .................... ........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... ........... ........ ..... ........ . . . . . . . . . . . . . . . . . . ........... . . . . . . . . . . . . . . . ... ........ ..... ........ ........... . . . . . . . . . . . . . . . . . . . . . . . α α . . . . . . . . . .... 1 .............. 3 ........... α4 α2............ ........ . . . . . . . . ........... . . . . . . . . . . . . ... ........ ..... ........... . ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ........... ..... ........ ..... . . . . . . . . . . . . . . . . ........... . . . . . . . . . . . . . . ........ ..... ........... . . . ....... . . . . a8 . . . . . . . . . . . . . . . . .......... ........ . . . . ..... . . . . . . . . . . . ....... γ1 γ γ γ4 2 3 ... δ δ δ3 . 1 2 ................................................ ................................................ ................................................ ................................................ ................................................ ................................................ ................................................ .... ... ................ . ..... ....................... ............... ...... ............. .... ......... ..... ........ a = k ............... ............. ......... 0 ......... 1 ............ ............. ......... ............. ......... ....... ......... ............. . ........ . . . . ............. . . . . . . . . . . . . . . . . ......... ... . .... ............. ......... ........ ............. .. ............. . ........ ............ ............. ........ ............. ............. β1 ......................... β2 ....... β3 β4 ........ ............. ............. ... ......... ........ ............. . ............. . . . . . . . . . . . . . . . . . . . . . . . . ......... .................... ... .... ...... ......... .......................... ... ........ ............. ......... .......................... ............. ... .............. ......... .......................... ............. ......... .......................... ............. ...... .......................... ............ .......................... ..............
10
1n
2n
3n
4n
5n
9n
a9 = Q
4
6n
7n
= −k0
8n
Uzly 1, . . . , 8 odpov´ıdaj´ı stav˚ um, v nichˇz se sklad nach´az´ı v jednotliv´e dny: uzel 1 popisuje v´ ychoz´ı stav a m´ a proto intenzitu a1 = k0 , uzel 2 popisuje stav po prodeji ˇc´asti v´ yrobk˚ u v prvn´ı den atd., aˇz uzel 8 popisuje koneˇcn´ y stav skladu a m´ a proto intenzitu a8 = −k0 ; intenzity uzl˚ u 2 aˇz 7 jsou rovny nule. Uzel 9 odpov´ıd´ a dodavateli, uzel 10 z´ akazn´ıku. Protoˇze a1 = −a8 , mus´ı tak´e b´ yt a9 = −a10 = Q. Vzhledem k tomu, ˇze je moˇzn´e, aby se koupilo a prodalo i m´enˇe neˇz Q v´ yrobk˚ u, je v s´ıti fiktivn´ı hrana (9, 10) s nulovou cenou a nekoneˇcnou propustnost´ı. Propustnosti hran (i, i + 1) pro i = 1, . . . , 7 jsou k, ostatn´ı hrany maj´ı nekoneˇcnou propustnost. Hledan´a ˇc´ısla αi , βi , δi interpretujeme jako hodnoty toku, ˇc´ısla −pi , qi , si jako ceny a hled´ ame tok, kter´ y minimalizuje cenovou funkci n X
(−pi αi + qi βi + si δi ).
i=1
Je vˇsak ot´ azkou, jak pozn´ ame, ˇze dan´ y tok je optim´aln´ı, chyb´ı n´am tedy charakterizaˇcn´ı vˇeta. K jej´ı formulaci potˇrebujeme nejprve zav´est nˇekter´e pojmy.
1.2
Z´ aporn´ e rezervn´ı polocykly
~ orientovan´ ~ z uzlu a do b nazveme cestu z a do Definice 1.2. Bud’ G y graf. Potom polocestou v grafu G ~ Hrany orientovan´e ve smˇeru z a do b nazveme souhlasn´e, ostatn´ı hrany polocesty, b v symetrizaci grafu G. kter´e maj´ı opaˇcnou orientaci, nazveme nesouhlasn´ ymi. Definice 1.3.
~ Analogicky jako polocestu m˚ uˇzeme definovat i polocyklus v grafu G.
Definice 1.4.
Cena polocesty (polocyklu) je ˇc´ıslo
c(P ) =
souhl. X
c(h) −
h∈H(P )
nesouhl. X
c(h) .
h∈H(P )
Pˇ r´ıklad. •....................1.................................•..................................3......................•..................................2......................•.....................4.................................•.....................3.................................•.. a b
Cena polocesty: 1 − 3 − 2 + 4 + 3 = 3.
Pˇ r´ıklad. 1
.... ...................................................................................... ...... ... ............ ... . ... .. . ... .. . . . . . . . . . . . . . . . . . . . . . ... ........... . ........ . . . . . . . . ... . . . . . ...... ..... . ... . . ... . . . . . ..... ... .... . .. . . . . . .... ... ... .. . . . . . ... ... .. ... ... . . . ... . . ... . . . . ... ... .. ... . . . ... .. .. .. . . ... ............. ... .. ...... . . . .. ... .... ..... .. . ... ... ...... . ... ............ ... .. . ... . . . . . . . . ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ................ ... .. . . . . . . ... ... ... ... ... ... ... ... .. . . ... ... .............. ... ....... ...................................................................................... ..
•
•
3
2
•
•
4
Cena polocyklu: 5 − 2 − 1 − 3 + 4 + 2 = 5.
5
•
•
2
5
N´ asleduj´ıc´ı (t´emˇeˇr samozˇrejm´e) tvrzen´ı ukazuje v´ yznam ceny polocesty, resp. polocyklu. Tvrzen´ı 1.1. Cena c(P ) (resp. c(C)) pˇredstavuje zmˇenu ceny toku, zmˇen´ıme-li na polocestˇe P (resp. na polocyklu C) tok o 1. ˇ Definice 1.5. Rekneme, ˇze tok x lze zvˇetˇsit na polocyklu C (na polocestˇe P ) o δ, jestliˇze xij + δ ≤ rij pro kaˇzdou hranu (i, j) souhlasnou, xij − δ ≥ 0 pro kaˇzdou hranu (i, j) nesouhlasnou. Oznaˇ cen´ı. V dalˇs´ıch pˇr´ıkladech v´ yznam ˇc´ısel u hran bude vˇzdy xij (cij , rij ). Pˇ r´ıklad. 1(2,4)
...... .................................................................................... ... ... ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......... .. ... ...... ... ........ ... ..... ...... ... . ... . . . . . . ..... ... .... . ... . . . . . ... ... . .. . . ... . . . ... . .. . ... . . . ... . ... .. . . . . . ... .. . .... ........... ... .............. . ....... ....... . . . .. ... ..... .... . . ... ..... . . . . .............. ... ... . . ... . . ... . .. . ... . . . . ... ... ... ... ... ... ... ..... ... ... .......... ..... ..... ... ..... .. ... . . ... ... ... ... . ... .............. ... ....... ....................................................................................... .
•
•
2(1,2)
1(5,3)
•
•
4(2,7)
4(3,5)
•
2(1,6)
x lze zvˇetˇsit na C o 2.
•
Pˇ r´ıklad. Mˇejme d´ anu n´ asleduj´ıc´ı s´ıt’. 0 •
.................................. ................... .. ....... ....... ........ ..... ............. ....... ....... . ... ....... ....... . . . . ... . ... . ....... .. ....... .. ... ....... ....... .. ....... . . . . . . . ....... . . . ... . ..... ....... . . . . . . . . ... ....... . ..... . . . . ....... . . . . . ... . ....... ..... . . . . . . . . ... ....... . ..... . . ....... . . . . . . . ... ....... . ..... . . . . . ....... . . . ... . ..... ....... . . . . . . . . . ....... ... . ..... . . . . ............ . . . . ... . ..... . . . . ................. . . . . . ....... ... . ................ . ....... . ... . ....... ........... . . . . . . ... ....... . ..... . . . ....... . . . . . . ... ....... . .... . . . . . . . . ....... . ... ... ....... ....... ... ... ....... ....... ... ....... ... ....... ....... ... ....... ... ....... ....... ... . . .. ....... . . . . . ... ....... ... ....... ... ....... ... ....... ....... ... ... ....... ....... .. ....... ....... ... .. ....... ....... . . . . . . . . . ....... ....... ........ ........... .............. .............................. ................
1(2,3)
• 4
2(3,3)
1(2,2)
• -4
0(2,2)
3(3,3)
2(4,2)
• 0 Je zˇrejm´e, ˇze ohodnocen´ı xij je tok (ovˇeˇr´ıme podm´ınky z definice toku). Cena tohoto toku je c(x) = 27. Pod´ıvejme se nyn´ı na n´ asleduj´ıc´ı polocyklus C. •
.... ......................... .......... .... .......... ... .. ... .. ..................... .......... ... ..... ... .......... . . . . . . . . . . . ... . ... . ....... . . . . . . . . . . ... . . ............ ... . .... . .......... ... . ... ......... .......... . ... . . . .......... .. .. .......... ... .......... ... .......... .......... .. .......... .......... .... .... ................... .....
1(2,3).......................................
•
1(2,2)
3(3,3)
•
Cena polocyklu je z´ aporn´ a a lze na nˇem zvˇetˇsit tok o 1. Po t´eto u ´pravˇe bude naˇse s´ıt’ vypadat n´asledovnˇe:
6
0 •
........................... ................... .. ....... ....... ........... .... .............. ....... ....... ... . ....... ....... . . . ... . . ... . ....... .. ... .. ....... ....... .. ....... ....... . . . . . . . . . ....... . ... . ..... . ....... . . . . . . . . ... ....... . ..... . . . . . ....... . . . ... . ..... ....... . . . . . . . . . ....... ... . ..... . . . ....... . . . . . ... . ....... ..... . . . . . . . . ....... . ... . ..... . ....... . . . . . . . ... ....... . ..... . . . . . ........... . . . . ... . ..... . . . . . . .................... . . .. ... ......... . ............... . ....... ... . ....... . ............ . . ... ....... . ...... . . . . . ....... . . . . ... . ..... ....... . . . . . . . . ... ....... ... ....... ....... ... ... ....... ....... ... ... ....... ....... ....... ... ....... ... ....... ....... . ... . .. . . ....... . . . ... ... ....... ....... ... ....... ... ....... ....... ... ... ....... ....... .. ....... ....... ... .. ....... . ....... . . . . . . . . . .. ....... ....... ....... ........... .............. ............................. .................
2(2,3)
• 4
2(3,3)
0(2,2)
• -4
0(2,2)
2(3,3)
2(4,2)
• 0 Je evidentn´ı, ˇze nov´e hranov´e ohodnocen´ı xij je opˇet tokem (proˇc?). Jeho cena je skuteˇcnˇe niˇzˇs´ı, plat´ı c(x) = 24. Pod´ıvejme se ted’ na polocyklus: •
............... ............ ............. ....... ....... ... ....... ....... ....... ....... . . . . . . ....... .. ....... ....... ....... ....... . . . . ....... . . ..... ....... . . . . . . ....... ..... . . . ....... . . . ....... ..... . . . . . . ....... ..... . . . . . . ....... . . . . . . . . . . . . . . . . . . . ....... ....... .... ..... . . . . . . . . . . ....... . . . . .... ..... ... ....... . . . . . . . . . ... ....... . ..... . . . . ....... .. . . . . . ... ........... . ..... . . . . . . . . .. ................ .... ............ . . .......... ....... . ... . ........... ....... . ...... ... ....... .. ....... . . . . . . . . . ....... ... .... .......... . . . . . ....... . . . . . . .. ... ....... ....... ....... ....... ....... ....... ....... ....... ....... ....... ....... . . . . . . ....... ... ....... ....... ....... ....... ....... ....... ....... ....... ....... ....... . . . . ....... . . ..... ....... ....... ....... ... ............ ............. ...............
2(2,3)
2(3,3)
•
•
2(3,3)
2(4,2)
•
Cena tohoto polocyklu je opˇet z´ aporn´ a, a i na tomto polocyklu lze pˇridat 1. Po u ´pravˇe toku dostaneme: 0 •
........................... ................... .. ....... ....... ........... .... .............. ....... ....... ... . ....... ....... . . . ... . . . ... ....... .. ... .. ....... ....... .. ....... ....... ... . . . . . . . ....... . ... . ..... . ....... . . . . . . . ... ....... . ..... . . . . . ....... . . . ... . ....... ..... . . . . . . . . . ....... ... . ..... . . . ....... . . . . . ... ....... . ..... . . . . . . . ....... . . ... . ..... . ....... . . . . . . . ... ....... . ..... . . . . . ........... . . . . ... . ..... . . . . . ................... . . . .. ... ......... . ............... . ....... ... . ....... . ............ . . . ... ....... . ..... . . . . . ....... . . . . ... .... . ....... . . . . . . . . . ... ....... ... ....... ....... ... ... ....... ....... ... ....... ... ....... ....... ... ....... ... ....... ....... . ... . .. . . ....... . . . ... ... ....... ....... ... ....... ... ....... ....... ... ... ....... ....... .. ....... ....... ... .. ....... . ....... . . . . . . . . . .. ....... ....... ....... ............ ............. ............................... ................
3(2,3)
• 4
3(3,3)
0(2,2)
1(3,3)
• -4
0(2,2)
1(4,2)
• 0 Nov´e ohodnocen´ı je opˇet tokem, jeho cena je c(x) = 22. Tento tok je jiˇz optim´aln´ı, ale je ot´azkou, jak optimalitu toku obecnˇe poznat. Z tohoto pˇr´ıkladu lze vyvodit nˇekter´e z´ avˇery a ot´azky. - Cenu toku lze pravdˇepodobnˇe sniˇzovat zv´ yˇsen´ım toku pod´el polocyklu z´aporn´e ceny. - Jak lze takov´ y polocyklus nal´ezt ? - Jak pozn´ ame, ˇze proces konˇc´ı, tj. ˇze tok je jiˇz optim´aln´ı? Na nˇekter´e z tˇechto ot´ azek n´ am d´ a odpovˇed’ n´asleduj´ıc´ı vˇeta. Vˇ eta 1.1.
Tok x je optim´ aln´ı, pr´ avˇe kdyˇz x nelze zvˇetˇsit na polocyklu z´aporn´e ceny.
7
Pozn´ amka. Necht’ xij je tok. Polocyklus z´aporn´e ceny C, na nˇemˇz lze xij zvˇetˇsit, se naz´ yv´a z´ aporn´y rezervn´ı polocyklus (ZRP). Vˇeta 1.1 tedy ˇr´ık´a, ˇze tok je optim´aln´ı, pr´avˇe kdyˇz pro nˇej neexistuje ZRP. D˚ ukaz. a) x je optim´ aln´ı ⇒ x nelze zvˇetˇsit na z´aporn´em polocyklu. To je zˇrejm´e, nebot’ kdyby jej ˇslo zvˇetˇsit na nˇejak´em takov´em polocyklu C s c(C) < 0, tak sn´ıˇz´ıme c(x) a x by nebyl optim´aln´ı. b) Dok´ aˇzeme, ˇze jestliˇze x nen´ı optim´aln´ı, pak x lze zvˇetˇsit na polocyklu z´aporn´e ceny. Necht’ tedy x nen´ı optim´ aln´ı. Potom existuje tok y takov´ y, ˇze c(x) > c(y). Poloˇzme z = y − x. Jak´e m´ a z vlastnosti? 1. V kaˇzd´em uzlu j plat´ı X X X X X X zji − zij = yji − yij − xji − xij = aj − aj = 0. ~ (j,i)∈H(G)
~ (i,j)∈H(G)
Ohodnocen´ı z tedy splˇ nuje podm´ınky kontinuity“ s nulov´ ymi intenzitami. ” 2. Ale nen´ı zaruˇceno, ˇze na kaˇzd´e hranˇe e bude z(e) ≥ 0. To znamen´a, ˇze z obecnˇe nemus´ı b´ yt tok. To se d´ a spravit n´asleduj´ıc´ım zp˚ usobem. ~ 1: Definujeme nov´ y graf G ~ 1 ) = U (G), ~ U (G ~ (i, j) ∈ H(G1 ) ⇔ zij > 0 nebo zji < 0, ~ 1 definujeme tok z 1 pˇredpisem: a na G 1 zij = zij , pokud zij > 0, a 1 zij = −zji , pokud zji < 0. ~ 1 uˇz z 1 je skuteˇcnˇe tok, a nav´ıc je to tok s nulov´ Nyn´ı na G ymi intenzitami (tzv. cirkulace). Plat´ı: ~ 1. Tok z 1 lze rozloˇzit na souˇcet tok˚ u v cyklech grafu G ~ 1 obsahuje D˚ ukaz tohoto tvrzen´ı je pomˇernˇe jednoduch´ y a m´a konstruktivn´ı charakter. Graf G 1 nˇejak´ y cyklus C1 ; poloˇz´ıme δ1 = min{zij , (i, j) ∈ C1 }, na C1 zmenˇs´ıme tok z o δ1 , ˇc´ımˇz z´ısk´ame ~ 2 s hranami, na nichˇz z 1 > 0. Tento graf G ~ 2 obsahuje nov´ y tok z11 . K nˇemu sestroj´ıme graf G 1 1 nˇejak´ y cyklus C2 , a postup opakujeme. Po koneˇcn´em poˇctu krok˚ u dostaneme tok z jako souˇcet tok˚ u na cyklech C1 , . . . , Ck . ~ nˇejak´emu polocyklu Qi , na Vrat’me se zpˇet do p˚ uvodn´ıho grafu. Kaˇzd´ y cyklus Ci odpov´ıd´a v G kter´em lze zvˇetˇsit x o δi . Ale y = x + z, a c(y) < c(x), a tedy nˇekter´ y z polocykl˚ u Qi mus´ı b´ yt z´ aporn´ y. 2 Vrat’me se nyn´ı k pˇr´ıkladu ze str. 6, resp. k jeho v´ ysledn´e podobˇe. 0 ........................... . ..............• ....... ............. .. ....... ....... . ..... ... ....... ....... .. ... ....... ....... ... .. ....... ....... .. ....... ....... ... . . . . . . . . ....... ... . ..... . ....... . . . . . . . ... ....... . ..... . . . . . ....... . . . ... . ..... ....... . . . . . . . . . ....... ... . ..... . . . . ....... . . . . ... . ....... ..... . . . . . . . . ....... . ... . ..... . ....... . . . . . . . ... ....... . ..... . . . . . ....... . . . . ... . ..... ....... .. . . . . . . . . ... .......... . ..... . . . . . ............... . . . . ... ......... . . ................ ....... . ... . ....... . ............ . ... ....... . ....... . . . . ....... . . . . . ... .... . ....... . . . . . . . . . ... ....... ... ....... ....... ... ... ....... ....... ... ....... ... ....... ....... ... ....... ... ....... ....... ... . . .. . ....... . . . . ... ... ....... ....... ... ....... ... ....... ....... ... ... ....... ....... .. ....... ....... ... .. ....... ....... . . . . . . . . . . ....... .. ....... ....... ............ ............. ............................... ...............
3(2,3)
• 4
3(3,3)
0(2,2)
1(3,3)
• -4
0(2,2)
1(4,2)
• 0 Nyn´ı jiˇz v´ıme, ˇze tok je optim´ aln´ı, pokud pro nˇej neexistuje ZRP. Ot´azka je, jak ale algoritmicky poznat z´ aporn´ y rezervn´ı polocyklus. 8
1.3
Vyhled´ av´ an´ı z´ aporn´ ych rezervn´ıch polocykl˚ u a Floyd˚ uv algoritmus
Pro s´ıt’ 1. 2.
~ s tokem xij definujeme pomocn´ ˆ takto: G y graf G ˆ ~ G je u ´pln´ y orientovan´ y graf (bez smyˇcek) na U (G), ˆ ohodnocen´ı hran grafu G definujeme pˇredpisem: ~ c (x < r ) ∧ x = 0 nebo (j, i) ∈ 6 H( G) ij ij ij ji ~ ∧ xji > 0 −cji xij = rij nebo (i, j) 6∈ H(G) wij = min{cij , −cji } xij < rij ∧ xji > 0 ∞ jinak
Pˇ r´ıklad.
ˆ S´ıti z naˇseho pˇr´ıkladu odpov´ıd´ a n´asleduj´ıc´ı graf G.
0 •
.. ................................... ............. .. ...... ...... .. .. .. ...... ...... .... ..... ........... . . . . . ...... . ... ...... ...... ... ... ...... ...... ... ... ...... ...... .. ...... ...... ... ...... .. ...... . . . . . . . . . ...... ... . .... . . . ...... . . . . ... ...... . .... . . . . . . . . ...... ... . .... . . . ...... . . . . ... ...... . .... . . . . . . . . ...... ... . .... . . . ........ . . . . ... . .... . . . . ...................... . . . .. .... . .......... . . ...... .................... ... .. . ...... ... . ......... . ...... . . . . . . ... ...... ... . . . . . . . . ...... . ... . ...... ...... ... ... ...... ...... ... ... ...... ...... ... ...... ...... ... ...... ...... ... . . .. . . ...... . . ... ..... ...... ... ... ...... ...... ...... ...... ... ... ...... ...... .. ... ...... ...... ...... .... .... ............ ...... ... ...... ...... ............. .............. ............................ .
1(2,3)
• 4
•
.............................. . ................................................ ......... .................. .............. ................ ....... . .. ... .... ........ . . . . . . . . . . ....... ... ....... ... ... ..... . . . . ...... . . . . . . ... ...... ...... ..... .. ...... ... ...... ...... ..... ..... .... . . . . . . ...... . . . . . . . ..... ... . ... .... ..... . . . . . . . . . . . . ... ..... ..... . ... ... . . . . . . ..... . . . . . . . . ...... ... . ... ... ..... . . . . . . . . . . . . . ... ...... ..... ... ... . . . . . . . . . ..... . . . . . . ...... ... . ... .... . . ..... . . . . . . . . . . . . . ... ....... ..... . ... .... . . . . . . . . . . . . . . . . ... ........ ... . ..... . .... . . . . . . . . . . . . . . . .......... ............ ... . ........ ............... . . . ...................... . . . . . . . ... ........................... . .................. . ............ ... . ... . . . . ........ . ... .... ...... ...... ... ... ...... ...... .. ... ...... ...... .. . . . ...... . . . . . . ... . ...... ...... ... ...... ... ...... ...... ... ... ...... ...... ... .. ...... ...... .. ...... ... . ...... . . . . . . .. ...... ... ...... ...... ... ... ...... ...... ... . ...... ...... ...... ..... .... ............ ...... .. ....... ...... ...... .. ............... ...................... .
2(3,3)
1(2,2)
• -4
0(2,2)
3(3,3)
2
•
2(4,2)
-3
-2
2
-2
•
-4
-3
• 0
3
•
~ odpov´ıd´a z´aporn´emu cyklu v G ˆ (a naopak). A je vidˇet, ˇze z´ aporn´ y rezervn´ı polocyklus v G Probl´em nalezen´ı ZRP jsme tedy zjednoduˇsili na nalezen´ı algoritmu na vyhled´av´an´ı z´aporn´ ych cykl˚ u. Pˇripomeˇ nme Floyd˚ uv algoritmus na nalezen´ı w-distanˇcn´ı matice grafu, kter´ y zn´ame z pˇredmˇetu TGD1 (viz [4], kap. 5.4, str. 180, nebo [11], kap. 4C, str. 122). 0 i=j ~ wij i 6= j , (i, j) ∈ H(G) d0ij = ~ ∞ i 6= j , (i, j) 6∈ H(G) k−1 dkij = min{dk−1 , dk−1 ij ik + dkj }.
(*)
Pˇripomeˇ nme, ˇze v´ yznam ˇc´ısel dkij je d´elka minim´aln´ı cesty mnoˇzinou uzl˚ u {1, . . . , k}. My nyn´ı budeme Floyd˚ uv algoritmus modifikovat pro u ´ˇcely nalezen´ı z´aporn´eho cyklu, a to n´asleduj´ıc´ım zp˚ usobem: wij je-li hrana (i, j) ∈ H(G), d0ij = ∞ jinak (tj. na diagon´ ale budou tak´e nekoneˇcna). Budeme poˇc´ıtat matice D1 , D2 , . . . , Dn podle vztahu (∗). k Protoˇze dij jsou d´elky minim´ aln´ıch i, j-cest, bude pro i = j hodnota dkii m´ıt v´ yznam w-d´elky minim´aln´ıho i, i-cyklu. Dost´ av´ ame tak n´ asleduj´ıc´ı vˇetu. Vˇ eta 1.2.
ˆ obsahuje z´ Graf G aporn´ y cyklus, pr´avˇe kdyˇz dkii < 0 pro nˇekter´a i, k ∈ {1, 2, . . . , n}.
9
Tento algoritmus nalezne z´ aporn´e polocykly v ˇcase O(n3 ).
Pozn´ amka. Pˇ r´ıklad.
Pokraˇcov´ an´ı ˇreˇsen´ı pˇr´ıkladu ze str. 6.
2 •
..... ..... ..................................... ........... ....................................... ................... ........ ........ ....... . ...... ........ ....... ..... .... .... ......... ....... ....... . . . . . . . . . . ... ..... ...... ..... .. ...... ...... ... ...... ..... ..... .... . . ...... . . . . . . . . . . . ..... ... ..... . ... .... . . . . . . . . . ..... . . . . ..... ... . ... ... ..... . . . . . . . . . . . . . ..... ... ..... . ... .... . . . . . . . . . ..... . . . . . ...... ... ... . ... . . ..... . . . . . . . . . . . . ...... ... ..... . ... .... . . . . . . . . . . . . . . ..... ... ....... . ... .... . . . . . . ..... . . . . . . . . . . ........ ... . ..... . .... . . . . . . . . . . . . . . . ... .......... ........... ...... .............. . . . . ....................... . . . . . . .. .... ............................... ..................... . .............. ... ... . ........ ...... ... .. ...... ...... ... .. ...... ...... . . . . . . . . ...... ... ...... ...... ... ... ...... ...... ... ...... ... ...... ...... .. ...... ... ...... .. . ...... . . . . . . . . ... . ...... ...... ...... ... ... ...... ...... ... ... ...... ...... ... .. ...... ...... .. ...... ...... ... . . . . . . . ...... .. . .. ....... ...... .. ........ ...... ........................ ...................
2
-3
-2
1•
2
-2
3
∞ 2 ∞ ∞ −2 ∞ 3 −2 D0 = ∞ −3 ∞ −4 −3 2 ∞ ∞
•3
-4
-3
• 4
∞ 2 ∞ ∞ −2 0 3 −2 D1 = ∞ −3 ∞ −4 −3 −1 ∞ ∞
0 −2 D2 = −5 −3
2 5 0 0 3 −2 −3 0 −5 −1 2 −3
V s´ıti tedy existuje z´ aporn´ y rezervn´ı polocyklus, zpˇetn´ ym prohled´av´an´ım matic D2 , D1 a D0 lze z´ıskat informaci o tom, kter´e hrany do tohoto polocyklu patˇr´ı. V naˇsem pˇr´ıpadˇe se jedn´a o polocyklus 1−2−4−1. Pˇ r´ıklad.
Ovˇeˇrme, ˇze posledn´ı tok v s´ıti z naˇseho pˇr´ıkladu je optim´aln´ı. •
.................. ............................. ...... ........ ..... ...... ...... .... . .... ........... . . . . . . ...... ... ...... ...... ... ... ...... ...... ... ... ...... ...... .. ...... ...... ... .. ...... ...... . . . . . . . . . ...... ... . .... . . . ...... . . . . ... . ...... .... . . . . . . . . ...... ... . .... . . . ...... . . . . ... ...... . .... . . . . . . . . ...... ... . .... . . . ...... . . . . ... ...... . .......... . . . . . . . ..... . ... ................. ..... .................................... .. .......... ............ . ..................... . . . . . ... ......... . ...... . ............. ..... . . . . . . . . . . . ........ ..... ... ... . ..... . . . . . . ....... . . ..... . . . . ... ...... ..... ..... .... ... ... ...... ...... .... ..... ...... ... ...... ... ..... ..... ...... ...... ... .. ..... ..... ..... ...... .. ..... ..... . . . . . . . . . . . . . . . ..... ..... ... .... ..... ..... ..... .. ... ..... ..... ...... ..... ... ...... ..... ...... ..... ..... ...... .. ..... ...... ..... .. ...... .. ......... ....... . ..... .. . . . . . . . ....... .. ..... ... .. ...... ........ ....... ...... ........ ....... ......... ........... .......................................... ................... ................................. ..... .....
0 •
.................. ................... ....... ....... ........... .... ............. ....... ....... . ... ....... ....... . . ... . . . . ... ....... .. ... ....... .. ....... ....... .. ... ....... . . . . . ....... . . . ... . ..... ....... . . . . . . . . ....... ... . ..... . . . . ....... . . . . ... . ....... ..... . . . . . . . . . ....... ... . ..... . . . ............ . . . . . ... . ..... . ............... . . . . . . . . ...... ... . ................ . ....... . ... . ....... ............ . . . . . . . ....... . ... . ..... . ....... . . . . . . . . ... ....... ... ....... ....... ... ... ....... ....... ... ... ....... ....... ....... ... ....... ... ....... ....... . ... . .. . . . ....... . . ... ...... ....... ... ....... ....... ....... ...... ..... .............. ............................ ...........................
3(2,3)
• 4
-2
3(3,3)
0(2,2)
• -4
0(2,2)
1(3,3)
-3
•
-3
1(4,2)
• 0
2
2
3
-4
•
∞ −2 D0 = ∞ −3
∞ ∞ 3 ∞ ∞ 2 −3 ∞ −4 2 4 ∞
∞ −2 1 D = ∞ −3
10
•
4
∞ ∞ 3 ∞ ∞ 1 −3 ∞ −4 2 4 0
∞ ∞ ∞ 3 −2 ∞ ∞ 1 D2 = −5 −3 ∞ −4 −3 2 4 0
∞ ∞ ∞ 3 −2 ∞ ∞ 1 D3 = −5 −3 ∞ −4 −3 1 4 0
0 4 7 3 −2 2 5 1 D4 = −7 −3 0 −4 −3 1 4 0
dkii ≥ 0 ∀i ⇒ je dok´az´ana optimalita toku.
Tato metoda d´ av´ a polynomi´ aln´ı a prakticky pouˇziteln´ y algoritmus. Pˇri ruˇcn´ı pr´aci“ je vˇsak ponˇekud ” zdlouhav´ a. Jin´ a metoda bude zaloˇzena na n´asleduj´ıc´ı vˇetˇe.
1.4
Metoda potenci´ al˚ u
Vˇ eta 1.3. Tok xij je optim´ aln´ı, pr´ avˇe kdyˇz existuje takov´e ohodnocen´ı uzl˚ u ˇc´ısly Vi , i = 1 . . . n, ˇze plat´ı Vj − Vi ≤ cij , jestliˇze xij = 0, Vj − Vi = cij , jestliˇze 0 < xij < rij , Vj − Vi ≥ cij , jestliˇze xij = rij . D˚ ukaz. 1. Uk´ aˇzeme, ˇze jestliˇze existuj´ı potenci´ aly, pak je tok optim´aln´ı. Kdyby tok nebyl optim´ aln´ı, existoval by z´aporn´ y rezervn´ı polocyklus C : .................................................• ....V1 Vk •.............................c.....k1 ...
· ·
... ... ... ... ... 12 ... ... ... ... ................ ...... . ...... ............. ... . . . .. . . .. ... ... ... 23 ... . . . ... ........................................................................................
c
• V2
·
c
V4•
c34
•V 3
Tento polocyklus je z´ aporn´ y, plat´ı tedy c(C) =
souhl. P h∈H(C)
c(h) −
nesouhl. P
c(h) < 0. Oznaˇc´ıme-li
h∈H(C)
cˆi,i+1 = ci,i+1 , je-li (i, i + 1) souhlasn´a, cˆi,i+1 = −ci+1,i , je-li (i, i + 1) nesouhlasn´a, pak plat´ı cˆ12 + cˆ23 + . . . + cˆk1 < 0. Z vlastnost´ı potenci´ alu vypl´ yv´ a n´ asleduj´ıc´ı: - jestliˇze hrana (i, i + 1) je souhlasn´a, plat´ı xi,i+1 < ri,i+1 (nebot’ C je rezervn´ı polocyklus), a z vlastnost´ı potenci´ al˚ u plyne, ˇze Vi+1 − Vi ≤ cˆi,i+1 , po u ´pravˇe Vi+1 ≤ Vi + cˆi,i+1 , - jestliˇze hrana (i, i + 1) je nesouhlasn´a, plat´ı xi+1,i > 0, a tedy Vi − Vi+1 ≥ ci+1,i = −ˆ ci,i+1 , odkud Vi+1 ≤ Vi + cˆi,i+1 . 11
Celkem (kolem cel´eho cyklu) dostaneme V2 ≤ V1 + cˆ12 ;
V3 ≤ V2 + cˆ23 ≤ V1 + cˆ12 + cˆ23 ;
atd. V1 ≤ Vk + cˆk1 ≤ V1 + cˆ12 + cˆ23 + . . . + cˆk1 . Odtud cˆ12 + cˆ23 + . . . + cˆk1 ≥ 0, coˇz je ve sporu s pˇredpokladem, ˇze cyklus C je z´aporn´ y. 2. Nyn´ı naopak pˇredpokl´ adejme, ˇze tok xij je optim´aln´ı, tj. neexistuje v pˇr´ısluˇsn´e s´ıti ˇz´adn´ y z´aporn´ y rezervn´ı polocyklus. Pokus´ıme se nal´ezt potenci´aly uzl˚ u Vi , splˇ nuj´ıc´ı tvrzen´ı vˇety. Oznaˇcme H(x) mnoˇzinu vˇsech hran (i, j), pro kter´eplat´ı vztah 0 < xij < rij (tj. prot´ek´a jimi nenulov´ y tok, ale ~ ~ ~ hrana nen´ı nasycena). Faktor Gx = U (G), H(x) grafu s´ıtˇe G nazveme opora toku xij . Nejprve pˇredpokl´ adejme, ˇze opora je souvisl´ y (slabˇe) faktor. Potenci´aly uzl˚ u sestroj´ıme nyn´ı n´asle~ ~ duj´ıc´ım postupem. Zvol´ıme jeden uzel i0 ∈ U (G) a poloˇz´ıme Vi0 = 0. Pro vˇsechny uzly j ∈ U (G), pro nˇeˇz je (i0 , j) ∈ H(x), poloˇz´ıme Vj = Vi0 + ci0 j ~ pro nˇeˇz je (j, i0 ) ∈ H(x), poloˇz´ıme a pro vˇsechny uzly j ∈ U (G), Vj = Vi0 − cji0 . T´ımto zp˚ usobem lze na z´ akladˇe hodnoty potenci´alu kaˇzd´eho uzlu urˇcit hodnoty potenci´alu pro vˇsechny uzly, kter´e s n´ım jsou v opoˇre spojeny hranou a pro kter´e jeˇstˇe nen´ı urˇcen. Protoˇze opora ~ jsou t´ım urˇceny potenci´aly pro vˇsechny uzly s´ıtˇe. je souvisl´ y faktor grafu G, Dok´ aˇzeme, ˇze pˇri takto definovan´ ych ˇc´ıslech Vi plat´ı pro kaˇzdou hranu (i, j) podm´ınky vˇety. ~ H(x) uzly s a t s uzlem i0 polocestami Necht’ tedy je d´ ana hrana (s, t). Spojme v opoˇre U (G), Ps , Pt , pomoc´ı nichˇz byl potenci´ al definov´an. Patˇr´ı-li hrana (s, t) nˇekter´e z tˇechto polocest, pak na n´ı podle konstrukce potenci´ al˚ u plat´ı Vt − Vs = cs,t a jsme hotovi. Pˇredpokl´adejme tedy, ˇze hrana ~ kruˇznici, obsahuj´ıc´ı hrany (s, t) nepatˇr´ı ˇz´ adn´e z tˇechto polocest. Pak z´ısk´ame v symetrizaci grafu G tˇechto dvou cest Ps , Pt a hranu {s, t}. Tuto kruˇznici oznaˇc´ıme C. ................................................................................. ...... ....... ... .............. ... .. . . s ....... ... . ... . . ... . s . ... ... ... ... ... ... . ... . ... . ... . . . ............. . . . ...... 0 . . . . . . . . .. ........................................................................... t ................... ...... . . . . ........ .... ... . . . . . . . .. . ... . . ............... . ... . . ... ... ... . ... ... ... ... ... ... ... ... ... . . . . . ... . ... ... ... t ... ... .............. ... ... ....... ..... ... ................................................................................... ... .
•
Podle konstrukce potenci´ al˚ u plat´ı na hran´ach polocest Ps a Pt vztah Vj − Vi = cij . Lze tedy ps´at
•s
V
P
Vs = Vi0 + c(Ps ),
u • •
i •
Vt = Vi0 + c(Pt ). Oznaˇcme u posledn´ı spoleˇcn´ y uzel polocest Ps , Pt .
V
• t
P
•
•
posledn´ı spoleˇcn´ y uzel a) Je-li hrana (s, t) ∈ H(x), tj. takov´a, ˇze pro ni plat´ı 0 < xst < rst , pak by mˇelo platit Vt − Vs = cst . .. ...................... ..... ........ ...... ..... ..... ..... . . . ..... ... ..... ..... .... .. . . .................. . 0 . . . ..... . . . . ............................................ ... .. 1 ... ... ... .. .. ... . . . ... ..... .... ...... .... ........ ...... ...............................
s
← − Je-li Vt − Vs > cst , pak je polocyklus C1 = stPt uPs s (viz sousedn´ı obr´ azek) z´ aporn´ y rezervn´ı, coˇz je ve sporu s optimalitou toku.
12
i
u
C
t
........................ ....... ..... ..... ..... .... ..... . . . ..... ... ..... .. ....... . . . ............... . 0 ..... ................................................... . ... 2 ......... ... .. ... .. . ... . . . ... ... ..... ..... ...... ...... ........ ...............................
s
u i ← − Je-li Vt − Vs < cst , je polocyklus C2 = sPs uPt ts (viz C t sousedn´ı obr´ azek) z´ aporn´ y rezervn´ı, coˇz je rovnˇeˇz spor. b) Je-li hrana (s, t) nasycen´ a, tj. plat´ı xst = rst , pak budeme cht´ıt uk´azat, ˇze plat´ı nerovnost Vt − Vs ≥ cst . Kdyby naopak platilo Vt −Vs < cst , potom by bylo Vt < Vs +cst . Pak by vˇsak byla polocesta ← − Pt do uzlu t levnˇejˇs´ı neˇz polocesta Ps ∪ (s, t). Vznikl by n´am polocyklus sPs uPt ts, kter´ y by byl z´ aporn´ y rezervn´ı. To je vˇsak opˇet spor s optimalitou toku. c) Pˇr´ıpad, kdy (s, t) je hrana s nulov´ ym tokem, tj. xst = 0, je analogick´ y jako v b). T´ım jsou poˇzadovan´e potenci´ aly v pˇr´ıpadˇe souvisl´e opory sestrojeny. Poznamenejme, ˇze v tomto pˇr´ıpadˇe jsou sestrojen´ a ˇc´ısla Vi urˇcena jednoznaˇcnˇe aˇz na aditivn´ı konstantu a lze je uˇcinit nez´aporn´ ymi. Zb´ yv´ a uk´ azat konstrukci potenci´ al˚ u v pˇr´ıpadˇe nesouvisl´e opory. Myˇslenku jen naznaˇc´ıme bez podrobn´eho prov´ adˇen´ı technick´ ych detail˚ u d˚ ukazu. 1) Podle prvn´ı ˇc´ asti d˚ ukazu jsou v kaˇzd´e komponentˇe opory potenci´aly d´any jednoznaˇcnˇe aˇz na aditivn´ı konstantu. 2) Vybereme komponentu opory H0 , zvol´ıme v n´ı konstantu c0 (tˇreba tak, ˇze v nˇekter´em uzlu poloˇz´ıme V = 0). 3) Tvrd´ım, ˇze ve vˇsech komponent´ ach opory lze zvolit aditivn´ı konstanty tak, ˇze jsou splnˇeny podm´ınky vˇety. To uk´ aˇzeme takto. - Oznaˇc´ıme G0 podgraf indukovan´ y komponentou H0 opory. - Zvol´ıme komponentu H1 opory, z n´ıˇz do H0 vede alespoˇ n jedna hrana. V H1 aditivn´ı konstanta c1 existuje: nˇekter´e hrany mezi H0 a H1 implikuj´ı horn´ı odhad c1 , nˇekter´e doln´ı odhad c1 . Vezmeme ty z nich, kter´e urˇcuj´ı nejmenˇs´ı horn´ı odhad c+ etˇs´ı doln´ı 1 a nejvˇ + odhad c− cuj´ıc´ı hrany“), a komponentˇe H1 pˇriˇrad´ıme interval hc− 1 ( ”urˇ 1 , c1 i (tento interval − je nepr´ azdn´ y, nebot’ kdyby c+ cuj´ıc´ı hrany spolu s nˇekter´ ymi cestami v H0 1 < c1 , tak by urˇ a v H1 d´ avaly ZRP). - Oznaˇc´ıme G1 podgraf indukovan´ y sjednocen´ım komponent H0 a H1 . - Obecnˇe: v i-t´em kroku m´ame Gi−1 = H0 ∪ . . . ∪ Hi−1 , pˇripojujeme Hi , pro kaˇzdou hranu vedouc´ı do Hi z Gi−1 vyhodnot´ıme pˇr´ısluˇsn´ y horn´ı ˇci doln´ı odhad na ci , vezmeme + − minimum horn´ıch odhad˚ u c+ ıch odhad˚ u c− i a maximum doln´ i . Kdyby ci < ci , existuje − + ZRP – tedy hci , ci i je nepr´azdn´ y interval. Poloˇz´ıme Gi = Gi−1 ∪ Hi a vˇse opakujeme. + 4) Po k kroc´ıch (kde k je poˇcet komponent opory) zvol´ıme ˇc´ısla ci uvnitˇr interval˚ u hc− i , ci i, i = 1, . . . , k. 2 Postup, kter´ ym jsme v d˚ ukazu vˇety sestrojili potenci´aly Vi , poskytuje metodu pro praktick´e sestrojen´ı optim´ aln´ıho toku v s´ıti. Zn´ ame-li v s´ıti nˇejak´ y v´ ychoz´ı tok (jenˇz se d´a sestrojit napˇr´ıklad pomoc´ı algoritmu na sestrojen´ı maxim´ aln´ıho toku), pak definujeme postupnˇe (za pˇredpokladu souvislosti opory) potenci´aly jednotliv´ ych uzl˚ u s´ıtˇe, a naraz´ıme-li pˇri jejich konstrukci na hranu, na n´ıˇz nejsou splnˇeny podm´ınky optimality, pak cenu toku pod´el nˇekter´eho polocyklu sn´ıˇz´ıme. K takto vylepˇsen´emu“ toku pak opˇet ” sestrojujeme potenci´ aly a cel´ y postup opakujeme tak dlouho, dokud v s´ıti nach´az´ıme hrany, na nichˇz nejsou splnˇeny podm´ınky optimality. V´ ysledkem tohoto iteraˇcn´ıho postupu je optim´aln´ı tok. Popsan´ a metoda nalezen´ı optim´ aln´ıho toku se naz´ yv´a metoda potenci´ al˚ u. Pozn´ amka. Charakterizaˇcn´ı vˇeta 1.1 (o ZRP) je uˇziteˇcn´a d´ıky tomu, ˇze o existenci ˇci neexistenci ZRP lze (d´ıky Floydovu algoritmu) rozhodnout v polynomi´aln´ım ˇcase. Poznamenejme vˇsak jiˇz nyn´ı, ˇze pˇresto (sama o sobˇe) tato vˇeta nen´ı tzv. dobrou charakteristikou, zat´ımco vˇeta o potenci´ alech (Vˇeta 1.3) dobrou charakteristikou je (o dobr´ ych charakteristik´ach podrobnˇeji viz odst. 3.3).
13
ˇ ısla v krouˇzc´ıch maj´ı v´ Pˇ r´ıklad. V s´ıti na obr´ azku naleznˇete optim´aln´ı tok. (C´ yznam poˇradov´ ych ˇc´ısel uzl˚ u, ohodnocen´ı hran je (ci,j , ri,j )). a2 .= −3 .................. ... ... .. . . . . . . .......................... .. 2 .................................. ................. .... .. ...... ..... .. ... . . ........... ......
.. ........... .......... ........... ... ........... ... ........... ... ........... ........... . ... ........ . ........... . . . . . . . . . ........... ... ...... . . . . . . . ........... . . . ... ........ ........... . . 1 ............. 4 ..... . . . . . . . ... ........... .... ................... .. ........... ......... ......... . . . ......... ... .... ... .... ... ... .... ... . . ... . ... .. . . ...... .... ........... ...................... ... ................. ..................... ........... . . . . ........... . . . . . . .. ... ........... ........... ........... ... ........... ........... ........... ... .... .. ........... ........... ........... ......... .......... . . . . ........... . . . . . . . ...... ........... ...... ....... ........... ........... .......... ........... ..... . ................. ..................... ................................ ............................... ................................ . ... ... .... ................. .... ...........
(2, 7).........................................
a = 10 1
..
(cij , rij )
(2, 4)
a =5 4
(1, 5)
(4, 15)
(1, 3)
3 a3 = −12
Nejprve v naˇs´ı s´ıti nalezneme (nˇejak´ y) v´ ychoz´ı tok. a2 = −3 2
......... ...... ....... .. ... . ................................... ij ............................. . . . . . . . . . . . . . . . .................. ................................ ........ ..... . . . . ........... . . . . . . .. ........... ...... . . . . . . . . . . . ........... . ........ . . . . . . . . . . . . . . . . . ........... .. ........... ..... ........... ........... ........... ... ........... .......... ........... ... ........... ........... .......... 1 ............ 4 .... . . . . . . . . . . . ........... . . .... ................ . ... ........... ......... ......... . . . . . ... ......... ... .... ..... . . .... . ....... . ... . . . . . ... . .. . ... ....... ........ ................... ........... .................... .... ........... .......... . . . . . . ..... . . ........... . . ....... . . ........... . . . . . . . . . . ........... .... . ........... ........... ... .... ... ........... .......... ........ ........... ........... ........ ........... ........... ........... ........... . . . . . . . . . . . . . . . ........... .. .. ............ ............ ................. ... .. ..... ....... ................................. ................................... ..................... ... .. . .... . ................
x (cij , rij )
4(2, 7)
3(2, 4)
a = 10 1
a =5 4
4(1, 5)
6(4, 15)
2(1, 3)
3 a3 = −12
Pro porovn´ an´ı obou metod zkus´ıme pomoc´ı Floydova algoritmu, zda v s´ıti existuje z´aporn´ y rezervn´ı ˆ polocyklus. Pomocn´ y graf G: •
............................................... .............. ......................................... ........................ .......... ........... . . ..... .... ..... ......... ......... .......... . . . . . . . . . . . . . . . ........ . ...... ... .... ........... ....... ........ . ....... ... ....... ...... ...... . . . . . . . . . . . . . ....... ...... ... .... ... . . . . . . . . ...... . . . . . . . . ...... ... ...... . .... .... . . . . . . . . . . . . . . . . . ...... ....... ... . .... . ..... . . . . ...... . . . . . . . . . . ....... ... ...... ... . ..... . . . . . . . . . . . . . . . . . ... ........ ...... ... . ..... . . . . . . . . . . . ..... . . . . . . . . ......... ... . ..... . ..... .... . . . . . . . . . . . . . . . . . . . ........... ... . . ....... ... . . . . . . . . . . . ............... ............... . . . . . . . . . . .. .. ............... ... .................................................... . . ... . ............. ............................. .......... . . . . . . . . . . . . . .......... . ....... ... .. . . ...... . . . . . . . . ......... . . . . . . ..... . . ... .. ........ ..... ...... ... ...... ... ........ ........ ...... ....... ........ .. ...... ... ...... ....... .. ....... ..... . . . . . . . ...... . . . . . . . ....... ... ...... ...... ...... ...... ... ... ...... ...... ...... ...... ....... ... ...... ... ...... ....... ....... ... .. ...... ...... ....... ....... .. ..... ...... ....... . ... . . . . ........ . . . . . . . . ...... .. .. ...... .... ........ ..... .... .. . ...... ........ ......... .. . .. . . ........... ......... ............. ................................................... ....................... .............................................
2
2
-2
-2
•
-1
•
1
4
-4
∞ −2 0 D = −4 ∞
1
-1
•
2 4 ∞ ∞ 2 4 ∞ 0 ∞ 1 −2 0 1 −2 D1 = −2 D2 = −2 −4 −2 0 −1 −4 −1 ∞ −1 2 1 ∞ ∞ 2 1 ∞
2 3 0 0 1 −2 −2 −1
D´ al nen´ı tˇreba poˇc´ıtat, nebot’ d233 < 0. Zpˇetnˇe z matic D0 , D1 najdeme ZRP, tvoˇren´ y hranami s ohodnocen´ımi w12 = 2, w23 = 1 a w31 = −4. A nyn´ı tot´eˇz provedeme metodou potenci´al˚ u. Opora toku je souvisl´ y graf, a proto m˚ uˇzeme zvolit V1 = 0 a d´ ale definovat: V1 = 0 ⇒ V2 = 2 (nebot’ c12 = 2) ⇒ V3 = 3 (nebot’ c23 = 1), ale to je spor, protoˇze V3 − V1 = 3, ale c13 = 4. Tok hranou (1, 3) je tedy nutno sn´ıˇzit pod´el polocyklu s uzly 1, 2, 3, 1. To lze prov´est nejv´ yˇse o 1, protoˇze pak se hrana (2, 3) nasyt´ı. Vylepˇsen´ y tok vypad´a takto: 14
a2 = −3 2
........... ..... ...... .. ... .................................. .................... ij .. .............................. ......... .... . . . . . . . . . . .... ........... ................ ........ ... . . . ........... . . . . . . . ... ........... ...... . . . . . . . . . . ........... . . ........ . . . . . . . . . . . . . . . . . . ........... .. ........... ........... ..... ........... ........... ... ........... .......... ........... ... ........... 1 ............ 4 ........... .......... . . . . . . . . . . . ........... .................... . .... ............ . .... . ........... . . ... . . . . . . . . ... .... .. ..... ..... .... . . . . . . . ... . . .. . . . . . . . . . . . ... .................. ................. ....... ..................... . . . . . . . . . . ........... . ...... . . . . . ........... . . . . . . . . .. ........... ........... .... ........... ........... ........... ... ... .. .......... ........... ........ ........... ........... ........... . . ........ . . ........... . . . . . . ........... ...... ........ ........... ... .......... ................. ................. ..... ........... .. . .... ... ......................................... .................................. . .... ... . .... .. ................
x (cij , rij )
5(2, 7)
a = 10 1
3(2, 4)
a =5 4
5(1, 5)
5(4, 15)
2(1, 3)
3 a3 = −12
Pro tento tok opˇet definujeme potenci´ aly uzl˚ u: V1 = 0 ⇒ V2 = 2 (pod´el hrany (1, 2)), a V1 = 0 ⇒ V3 = 4 (pod´el hrany (1, 3)). Na hranˇe (2, 3) plat´ı V3 −V2 = 2 a c23 = 1, coˇz je v souladu s podm´ınkami optimality (V3 − V2 ≥ c23 , nebot’ hrana (2, 3) jiˇz je nasycen´a a tedy nepatˇr´ı do opory). Definujeme tedy d´ale pod´el hrany (4, 2): V4 = 0. Na hranˇe (4, 3) dostaneme V3 − V4 = 4 a c43 = 1, coˇz je spor. Rozd´ıl potenci´al˚ u je vˇetˇs´ı neˇz cena, a tedy je x43 tˇreba zvˇetˇsit. Pod´el kruˇznice s uzly 1, 2, 4, 3, 1 zvˇetˇs´ıme tok o 1 (v´ıc nelze, protoˇze hrana (4, 3) se nasyt´ı). Dostaneme tak n´asleduj´ıc´ı tok. a2 = −3 2
......... ...... ....... .. ... . ................................... ij ............................. . . . . . . . . . . . . . . . .................. ................................ ....... ..... . . . . ........... . . . . . . .. ........... ...... . . . . . . . . . . . ........... . ........ . . . . . . . . . . . . . . . . . ........... .. ........... ..... ........... ........... ........... ... ........... .......... ........... ... ........... ........... .......... 4 .... 1 ............ . . . . . . . . . . . ........... . . .... ................ . ... ........... ......... ......... . . . . . ... ... ......... .... ..... . . .... . ............. ... . . . . . ... . .. . ... ........... ....... ........ ........... .................... ........... .. .... ........... . . . . ........... . . . . . . . . ........... ...... . . . . . . . . . ..... . ........... .... ........... ........... ... ... ... ........... .......... ........ ........... ........... ........... ........ ........... ........... ........... . . . ...... . . . . . ........... . . ........... ....... .......... ....... ................ ........ ........ ................................ ........................... ........................... ... .. . .... . ................
x (cij , rij )
6(2, 7)
a = 10 1
2(2, 4)
a =5 4
5(1, 5)
4(4, 15)
3(1, 3)
3 a3 = −12
Definujeme opˇet potenci´ aly: V1 = 0 ⇒ V3 = 4 a V1 = 0 ⇒ V2 = 2 ⇒ V4 = 0. Podm´ınky optimality (vˇeta 1.3) jsou nyn´ı splnˇeny, takˇze nalezen´ y tok je optim´aln´ı. Povˇsimnˇeme si toho, ˇze celkov´ a cena v´ ychoz´ıho toku byla 8 + 24 + 4 + 6 + 2 = 44, prvn´ıho opraven´eho toku 10 + 20 + 5 + 6 + 2 = 43, celkov´ a cena v´ ysledn´eho optim´aln´ıho toku je 12 + 16 + 5 + 4 + 3 = 40. Pˇ r´ıklad. V s´ıti na obr´ azku naleznˇete optim´aln´ı tok. Jedn´a se o m´ırnˇe ˇc´ıselnˇe modifikovan´ y pˇredchoz´ı pˇr´ıklad; s´ıt’ uv´ ad´ıme jiˇz s nalezen´ ym v´ ychoz´ım tokem. a2 = −3 2
......... ...... ....... .. ... ....... ................................... ij .. ......................................... ....... .... . . . . . . . . . . .... ........... ................. ........ .... . . ........... . . . . . . . . . ........... .. ....... . . . . . . . . . ........... . . ...... . . . . . . . . . . . . . . . . . . . ........... .... ........... ..... ........... ........... .......... ... ........... ........... ... ........... ........... 1 ............. 4 ......... ........... .......... . . . . . . . . . . ........... . .... ............. ... .................. ........ .... . . . . . . ...... ... .. ..... .... . .. .......... . . . . . ... . . . . ... . ... .. .. .................. ................. ........... ................... ... ........... .......... . . . . . . ........... . . . . . .. ....... ........... . . . . . . . . . . . ........... .. . ........... ........... ... .... .. ........... ........... ........ ........... ........... ........ ........... ........... . ........... .......... . . . . . . . . . . . . . . . ........... ... ... ................. ................. ..... ........... .. . ..... ... .......................................... ................................... ..... ... .. . .... . . ...............
x (cij , rij )
6(2, 8)
a = 10 1
3(4, 3)
a =5 4
6(1, 6)
4(5, 4)
2(5, 4)
3 a3 = −12
Vid´ıme, ˇze opora toku je nesouvisl´ y graf, jehoˇz jednu komponentu tvoˇr´ı uzly 1, 2 a hrana (1, 2), druhou uzly 3, 4 a hrana (4, 3). Zvol´ıme-li V1 = 0, dost´av´ame (pod´el hrany (1, 2)) V2 = 2, ale t´ım proces definov´an´ı
15
potenci´ al˚ u konˇc´ı, protoˇze hrany (1, 3), (2, 3) a (4, 2) jsou nasycen´e a m´ame tedy na nich k disposici pouze nerovnosti. Pouˇzijeme postup, kter´ y jsme poznali v z´avˇereˇcn´e ˇc´asti d˚ ukazu vˇety 1.3. Zvol´ıme-li V4 = c, pak pod´el hrany (4, 3) dost´ av´ ame V3 = c + 5. Hrany (1, 3), (2, 3) a (4, 2) n´am nyn´ı d´avaj´ı soustavu nerovnost´ı: hrana (1, 3): (c + 5) − 0 ≥ 5, odkud c ≥ 0, hrana (2, 3): (c + 5) − 2 ≥ 1, odkud c ≥ −2, hrana (4, 2): 2 − c ≥ 4, odkud c ≤ −2. Prvn´ı a tˇret´ı nerovnost si odporuj´ı, tedy pˇr´ısluˇsn´e hrany, tj. (1, 3) a (4, 2) spolu s cestami uvnitˇr komponent opory urˇcuj´ı ZRP s uzly 1, 2, 4, 3, 1. Zvˇetˇsen´ım toku o 2 pod´el tohoto ZRP dost´av´ame n´asleduj´ıc´ı opraven´ y tok. a2 ..= −3 ......... .... ....... .. ... .................................. 2 .................................. xij (cij , rij ) .............. ..................... .............................. ........... ..... ........... . . . . . . . . . . . . ........... ... ....... . . . . . . . . . . . . . . . . ........... 1(4, 3) 8(2, 8)....................... ... ........... ........... .... .. ........... ........... ... ........... ........... ........... ... ........... . a1 ...= 10 a4 ...= 5 . . . . . ........... . . . . .. ... ........... ....... ............. . . . . . . . . . . . . . .................. ......... .............. ... .... .. .. ..... ... . . ... 1 ............ . 6(1, 6) . . . ... ........... ...... ...... ........... .........4....... . ... . . ........... . .....
........... ... ........... ........... ... ........... ........... . ........... ........... ........... ........... ... .... .. ........... ........... . . . . . . . . . . . . . . . ....... ........... ......... ........... ........ ........... ........... . ........... ........... ... ........... .. ........... ........... ...... ...... ........ ................................. ... . ....................... .................................. ... .. .... .. ................
2(5, 4)
.....
4(5, 4)
3 a3 = −12
Opora je opˇet nesouvisl´ a, jej´ı komponenty nyn´ı tvoˇr´ı uzly 1, 3 s hranou (1, 3) a uzly 2, 4 s hranou (4, 2). Vol´ıme V1 = 0 a pod´el hrany (1, 3) dost´ av´ ame V3 = 5; ve druh´e komponentˇe vol´ıme V4 = c a pod´el hrany (4, 2) dost´ av´ ame V2 = c + 4. Hrany (1, 2), (2, 3) a (4, 3) n´am nyn´ı d´avaj´ı soustavu nerovnost´ı: hrana (1, 2): (c + 4) − 0 ≥ 2, odkud c ≥ −2, hrana (2, 3): 5 − (c + 4) ≥ 1, odkud c ≤ 0, hrana (4, 3): 5 − c ≥ 5, odkud c ≤ 0. Soustava nyn´ı m´ a ˇreˇsen´ı (vyhovuje j´ı kter´ akoliv hodnota c pro −2 ≤ c ≤ 0), nalezen´ y tok je tedy podle vˇety 1.3 optim´ aln´ı. Poznamenejme, ˇze cena v´ ychoz´ıho toku byla 12 + 20 + 6 + 12 + 10 = 60 a cena v´ ysledn´eho optim´aln´ıho toku je 16 + 10 + 6 + 4 + 20 = 56.
1.5
Pˇ revod nˇ ekter´ ych grafov´ ych u ´ loh na u ´ lohu optim´ aln´ıho toku
Na u ´lohu nalezen´ı optim´ aln´ıho toku v s´ıti je moˇzno pˇrev´est nejen u ´lohu maxim´aln´ıho toku, ale i ˇradu grafov´ ych u ´loh, v nichˇz nikde nic neteˇce“. Uk´aˇzeme si nˇekolik pˇr´ıklad˚ u takov´ ych pˇrevod˚ u. Praktick´ y ” v´ yznam tˇechto pˇrevod˚ u je v tom, ˇze umoˇzn ˇuj´ı pouˇz´ıt tokov´e algoritmy (a pˇr´ısluˇsn´ y speci´aln´ı software) na mnoho dalˇs´ıch u ´loh. Nav´ıc, v pˇr´ıˇst´ı kapitole uvid´ıme, ˇze u ´lohu optim´aln´ıho toku lze pˇrev´est na u ´lohu line´ arn´ıho programov´ an´ı. To znamen´ a, ˇze vˇsechny u ´lohy, pˇrevoditeln´e na toky, bude moˇzno ˇreˇsit algoritmy line´ arn´ıho programov´ an´ı (zejm´ena simplexov´ ym algoritmem). Maxim´ aln´ı tok v s´ıti. Sestroj´ıme novou s´ıt’ n´asleduj´ıc´ı konstrukc´ı (viz obr´azek). - k p˚ uvodn´ı s´ıti pˇrid´ ame novou pomocnou hranu, vedouc´ı ze zdroje z do stoku s, - cena nov´e hrany je 1, propustnost nov´e hrany je ∞, - intenzita uzlu z v nov´e s´ıti je Q, intenzita uzlu s v nov´e s´ıti je −Q, kde Q je dost velk´e“ ˇc´ıslo ” (staˇc´ı zvolit Q vˇetˇs´ı neˇz souˇcet propustnosti vˇsech hran p˚ uvodn´ı s´ıtˇe), - ceny vˇsech hran p˚ uvodn´ı s´ıtˇe jsou rovny 0, - intenzity vˇsech uzl˚ u p˚ uvodn´ı s´ıtˇe kromˇe z a s jsou rovny 0. Je zˇrejm´e, ˇze optim´ aln´ı tok v nov´e s´ıti se na p˚ uvodn´ı s´ıti shoduje s maxim´aln´ım tokem ze z do s.
16
az = Q
.................................................................................................................... ...................................................... ............................. ............................ .................... .................... ............... ............ ............... . . . . . . . . . . . ......... ....... . . ....... . . . . .... ..... . . .... ...... . ... ....................... ....... ..... ...... ....... ...... .... . ........... . . ......... ...... . . . ... .... ................. .................... ................ .......................... ................ ... ....... .......................... ....... ......................................................................................................................................................................................................................... ............. ........ . . . . . . ........ ........ ......... ........ .......... .......... ........... ........... ............. ............. . . ................ . . . . . . . . . . . . .... ........................ ..........................................................................
• zdroj z
stok s • as = −Q
p˚ uvodn´ı s´ıt’
(1, ∞) nov´a hrana
Hranov´ y (uzlov´ y) stupeˇ n souvislosti grafu. Ot´azku, zda je (pro dan´e k) dan´ y graf hranovˇe ˇci uzlovˇe k-souvisl´ y, lze pˇrev´est na u ´lohu nalezen´ı maxim´aln´ıho toku v s´ıti zp˚ usobem zn´am´ ym z pˇredmˇetu TGD1, kap. 2.3. Kombinace s pˇredchoz´ım pˇrevodem tedy d´av´a pˇrevod u ´lohy na u ´lohu nalezen´ı optim´aln´ıho toku. ~ Sestroj´ıme s´ıt’ takto: Minim´ aln´ı cesta z uzlu u do uzlu v grafu G. - intenzita u je 1, intenzita v je -1, intenzity ostatn´ıch uzl˚ u jsou nulov´e, - propustnosti vˇsech hran jsou rovny jedn´e, - ceny vˇsech hran jsou rovny jedn´e. Pak minim´ aln´ı cesta z uzlu u do uzlu v je urˇcena tˇemi hranami, na nichˇz je optim´aln´ı tok nenulov´ y. Nejvˇ etˇ s´ı line´ arn´ı podbigraf (nejvˇ etˇ s´ı p´ arov´ an´ı) v bipartitn´ım grafu. Necht’ A, B jsou partity U (G) (tj. U (G) = A ∪ B a A, B jsou nez´ avisl´e). Sestroj´ıme s´ıt’ takto: - ke grafu pˇrid´ ame dva nov´e uzly z, s, - ke grafu pˇrid´ ame nov´e hrany (z, x) pro vˇsechny uzly x ∈ A, - ke grafu pˇrid´ ame nov´e hrany (y, s) pro vˇsechny uzly y ∈ B, - propustnosti vˇsech hran s´ıtˇe jsou rovny jedn´e. V takto sestrojen´e s´ıti hled´ ame (celoˇc´ıseln´ y) maxim´aln´ı tok ze z do s. ..................................................................................................................................................................................... . ............... ............. ................... nov´ e hrany . .................... ... . . ..................... ...................... . . . . . . . . . . . . . . . . . ... .................... ............. ........ .............................. ....... . . . . . . . .................. ............ . . . ........ .................... ................................. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................................................................................................... . ... ............... ......................... ................................. ..... ................................................................. .... . ..... ............ ... ... .................. ............ ............ ... ............ ... ........... . . . ............ . . . . . . . . . . . ............ .. ........ . . . . . . . . ............ .... . . . . ...... ................... .............. .................. ............... .....................................................................................................................................................................................
nov´ e hrany..........................................•
z •
• A • . . . •
p˚ uvodn´ı graf
• B • • . . . •
s •
Je zˇrejm´e, ˇze nejvˇetˇs´ı p´ arov´ an´ı v p˚ uvodn´ım grafu je urˇceno tˇemi jeho hranami, na nichˇz m´a nalezen´ y maxim´ aln´ı tok nenulovou hodnotu. Generick´ a hodnost matice je, jak v´ıme z pˇredmˇetu TGD1, rovna poˇctu hran nejvˇetˇs´ıho line´arn´ıho podbigrafu (nejvˇetˇs´ıho p´ arov´ an´ı) v bigrafu dan´e matice. K jej´ımu urˇcen´ı lze tedy pouˇz´ıt pˇredchoz´ı pˇrevody na toky.
17
2
Line´ arn´ı programov´ an´ı
Line´ arn´ı programov´ an´ı m´ a, jak uvid´ıme, v u ´loh´ach diskr´etn´ı optimalizace v´ yznaˇcnou roli, z hlediska koncepce tohoto pˇredmˇetu vˇsak je prostˇredkem, nikoliv c´ılem. Proto se v t´eto kapitole budeme v´ıce neˇz v jin´ ych odkazovat v d˚ ukazech na pˇr´ıklady ˇci geometrick´ y n´azor. Zaˇcnˇeme dvˇema motivaˇcn´ımi pˇr´ıklady. ´ Pˇ r´ıklad. Uloha o dietˇe. M´ ame nˇekolik druh˚ u potravin a chceme z nich vytvoˇrit (jen teoreticky) krmnou smˇes. Zn´ame: 1. obsah i-t´e sloˇzky (i-t´eho vitam´ınu) v j-t´e potravinˇe - tato ˇc´ısla oznaˇc´ıme aij , lze je zapsat do matice A typu m/n: vitam´ın A vitam´ın B .. . vitam´ın K
brambory a11 a21 .. . am1
kukuˇrice a12 a22
... ... ...
... am2
... ...
... ... ... .. . ...
... a1n a2n .. . amn
2. cenu cj jednotky j-t´e potraviny - ceny cj tvoˇr´ı vektor c ∈ Rn , 3. poˇzadovan´ y minim´ aln´ı obsah i-t´eho vitam´ınu ve smˇesi - ˇc´ısla bi tvoˇr´ı vektor b ∈ Rm . ˇ ısla xi tedy mus´ı Nezn´ am´ ymi v u ´loze jsou ˇc´ısla xi , maj´ıc´ı v´ yznam mnoˇzstv´ı i-t´e potraviny ve smˇesi. C´ d´ ale splˇ novat n´ asleduj´ıc´ı podm´ınky: a11 x1 + a21 x2 + . . . + a1n xn ≥ b1 a21 x1 + a22 x2 + . . . + a2n xn ≥ b2 .. .. .. . . . am1 x1 + am2 x2 + . . . + amn xn ≥ bm Je-li x ∈ Rn vektor ˇc´ısel xi , pak tyto podm´ınky lze zapsat maticovˇe ve tvaru A x ≥ b. D´ ale pro kaˇzd´e i plat´ı xi ≥ 0. Dalˇs´ı podm´ınkou je skuteˇcnost, ˇze takovou smˇes chceme poˇr´ıdit co nejlevnˇeji. Chceme tedy (na mnoˇzinˇe vˇsech vektor˚ u, splˇ nuj´ıc´ıch pˇredchoz´ı podm´ınky) minimalizovat v´ yraz c1 x1 + . . . + cn xn , tj. hled´ame min cT x. Takovou u ´lohu m˚ uˇzeme struˇcnˇe zapsat v n´asleduj´ıc´ım tvaru: min cT x Ax ≥ b x≥0 Pˇ r´ıklad. Pokud bychom uvaˇzovali, ˇze ve smˇesi mus´ı b´ yt pˇresnˇe tolik vitam´ın˚ u, kolik je pˇredeps´ano vektorem b, bude moˇzno v´ yˇse uvedenou u ´lohu pˇrepsat do tvaru, v nˇemˇz soustava podm´ınek bude m´ıt tvar A x = b. Jinou (a pˇrirozenˇejˇs´ı) u ´lohou s podm´ınkami typu rovnosti je dopravn´ı probl´em, tj. u ´loha optim´aln´ıho toku. V t´eto u ´loze hled´ ame X min cij xij ~ (i,j)∈H(G)
za podm´ınek X X xij − xji = ai ∀i. j
j
18
a samozˇrejmˇe xij ≥ 0. Pˇresn´ y maticov´ y z´ apis zat´ım odloˇz´ıme, zat´ım si pouze povˇsimneme toho, ˇze vznikne nˇeco ve smyslu min cT x Ax = b x≥0 V praxi se vyskytuj´ı i u ´lohy, v nichˇz jsou podm´ınky obou typ˚ u, tedy rovnosti i nerovnosti. Nyn´ı zformulujeme zad´ an´ı u ´lohy line´ arn´ıho programov´an´ı (d´ale jen LP) pˇresnˇe.
2.1
Tˇ ri z´ akladn´ı formulace u ´ lohy line´ arn´ıho programov´ an´ı
1. Obecn´ au ´ loha. Necht’ A je re´ aln´ a matice typu m/n, N je podmnoˇzina mnoˇziny sloupcov´ ych index˚ u {1, . . . , n} ¯ je jej´ı doplnˇek, M je podmnoˇzina mnoˇziny ˇr´adkov´ matice A, N ych index˚ u {1, . . . , m} matice A, ¯ je jej´ı doplnˇek, aT jsou ˇr´ M adky matice A (i = 1, . . . , m), b je re´aln´ y vektor d´elky m, c je re´aln´ y i vektor d´elky n. ´ Ukolem je nal´ezt vektor x ∈ Rn , kter´ y minimalizuje v´ yraz cT x za podm´ınek aTi x = bi aTi x ≥ bi xj ≥ 0 xj ∈ R
pro pro pro pro
i ∈ M, ¯ i ∈ M, j ∈ N, ¯ j ∈ N.
2. Kanonick´ y tvar u ´ lohy. ´ Ukolem je nal´ezt vektor x ∈ Rn , kter´ y minimalizuje v´ yraz cT x za podm´ınek A x ≥ b, x ≥ 0. 3. Standardn´ı tvar u ´ lohy. ´ Ukolem je nal´ezt vektor x ∈ Rn , kter´ y minimalizuje v´ yraz cT x za podm´ınek A x = b, x ≥ 0. Tvrzen´ı 2.1.
Uveden´e tˇri z´ akladn´ı tvary u ´lohy LP jsou ekvivalentn´ı.
D˚ ukaz. Kanonick´ y i standardn´ı tvar u ´lohy jsou zˇrejmˇe speci´aln´ımi pˇr´ıpady obecn´e u ´lohy. Je tedy tˇreba uk´ azat, ˇze obecnou u ´lohu lze pˇrev´est na oba ostatn´ı tvary. 1. Pˇrevod obecn´e u ´lohy na kanonick´ y tvar: je tˇreba vylouˇcit podm´ınky typu rovnosti a neohraniˇcen´e n n P P promˇenn´e. Rovnosti aij xj = bi vylouˇc´ıme tak, ˇze je nahrad´ıme dvojicemi nerovnost´ı aij xj ≤ j=1
bi a
n P
j=1
aij xj ≥ bi . Pro kaˇzdou neohraniˇcenou promˇennou xj ∈ R zavedeme (a dosad´ıme do
j=1 − + − podm´ınek) dvˇe nov´e promˇenn´e x+ e tyto promˇenn´e byly j a xj tak, aby xj = xj − xj a aby obˇ + nez´ aporn´e. Tyto promˇenn´e se definuj´ı pˇredpisem xj = max{0, xj }, resp. x− j = max{0, −xj }.
2. Pˇrevod obecn´e u ´lohy na standardn´ı tvar: nyn´ı potˇrebujeme vylouˇcit vˇsechny podm´ınky typu nerovnosti P a nahradit je rovnostmi. P Zavedeme proto nov´e nez´aporn´e promˇ P enn´e si tak, aby pro nerovnosti typu a x ≥ b platilo a x −s = b . Obdobnˇ e nerovnosti aij xj ≤ bi nahrad´ıme rovnostmi ij j i ij j i i P aij xj + si = bi . Neohraniˇcen´e promˇenn´e vylouˇc´ıme analogicky. 2
19
Pozn´ amka. V praxi se vyskytuj´ı i takov´e u ´lohy, v nichˇz m´ısto minimalizace v´ yrazu cT x hled´ame jeho maximum. Vzhledem k tomu, ˇze uvaˇzujeme vektor c re´aln´ y, staˇc´ı hledat min −cT x. D´ale se m˚ uˇze st´ at, ˇze m´ısto podm´ınek A x ≥ b m´ ame omezen´ı A x ≤ b. I to nen´ı vzhledem k re´alnosti matice A probl´em. Staˇc´ı pˇrev´est tyto podm´ınky do tvaru (−A)x ≥ (−b). Pˇri pˇrevodu u ´lohy na standardn´ı tvar je tˇreba obr´ atit znam´enka v nerovnostech i u nov´ ych promˇenn´ ych si . Pˇ r´ıklady. V n´ asleduj´ıc´ıch pˇr´ıkladech (´ umyslnˇe jednoduch´ ych) si uk´aˇzeme geometrick´ y v´ yznam ˇreˇsen´ı tˇechto u ´loh. U tˇechto jednoduch´ ych u ´loh je grafick´e ˇreˇsen´ı velmi n´azorn´e a snadno si uvˇedom´ıme geometrickou podstatu ˇreˇsen´ı u ´loh LP. Oblast vymezen´a podm´ınkami je na kaˇzd´em obr´azku pˇr´ısluˇsn´e u ´lohy vyˇsrafov´ ana, teˇckovanˇe jsou naznaˇceny vrstevnice cenov´e funkce, jej´ıˇz extr´em hled´ame. Je tak´e naznaˇcen smˇer r˚ ustu (poklesu) ceny u u ´loh, v nichˇz hled´ame maximum (minimum). 3 y .
1. max x + y x + 2y ≤ 2 2x + y ≤ 2 x≥0 y≥0 ˇ sen´ı je zˇrejmˇe x = y = 2 . Reˇ 3
2
. ... . . . ...... . .... .... . . ...... .... . ............. ... . . ... . .. . ... . .. . . . ... ..... ... . . .. . ... . .... . ........ ........ ..... .. . . . . . ..... . . . ... ............... . . . ... ... ............. . ... .... .... ...................... . ........ . . .. ... ... ... . ........ . . .. ... ... ...... . . . . ......... . . ... ... ... ... . . . . . ........ . . . . . ... ... ............. . ... ..
smˇer vzr˚ ustu cT x
1 0
0
1
2
... ... ... ... .. ... ... ... ... ... ... ... .. ... ... ... ... ... ..... ... ... ... ... ... ... ...... . . . . . . ... ... ... ... ... . . .... ........ ... . ... ... ... ..... .. . . . . ... . . . . . . .. ... ... ... ......... ... ... ... .... . . . . . ... ... ... .... ... ..... .. .... . ... ... ... .... .. . .. ... ... ... ... . ... ... ... ..... ... .. . . . ... ... ... ... ... . .... . . .... ... ... ... ... ... . .. . . . ... ... ... ... ... ..... . . . . ... .. ... ... ... ... . . . ........ ... . . . ... ........ .... ... . ... . .... ... ... ........ ... .. .... ..... ... .......... .. . ... . ... .... ... .......... ........... ... . ... . ... ... . ... ... .......... . ... .. ........ ... ... . . .......... . ... . .... ... ........ . .. ... ... . . . . . .. ......... ... . . . ......... . . . ... ..... ... ... . .
2 1 0
0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
T......
smˇer poklesu c x
1
x
2
.
3
.
... ... ... ... . .... ... ... ... ... ... . ... ... ... ... ... ... . ... ... ... ... ... ... . ... ... . ... . ... ... . ... . .. . .. ... . . ... . . . ... ... ... ... . ... . ... ... . . . ... . ... ... ... ............. ... ... . ... . . ... ... .......... ... ... ... ... . . . . . . ... .... .. ... ... ... ... .... . . . . . . . . ... ... .... ... ... ... ... ... . ... . ... . .. ... .. ... ... . . ... ... ... . .. . .. ... ... ..... . . . . ... ... ... . ... ... ..... ... . .... .... ... ... ... ........ ... . ... ... ........ .... ..... . ... ... . ... ........ ... . .. . .. ... ... ........... .. . . ... ... ... .......... . .... ... ... ... . .................... .... . . ... ... . ..... ............. .... ... ... .......... . . .... ... ........ ... . . . . .. . ........ . . ... . . . ... ........ . . . . . . . . ... . . . .. . .
3 y
min x − y 2x + y ≥ 2 x + 2y ≥ 2 x≥0 y≥0
2 1
Mnoˇzina pˇr´ıpustn´ ych ˇreˇsen´ı je ve smˇeru poklesu cenov´e funkce neomezen´ a, optimum u ´lohy je v nekoneˇcnu“, tj. ˇreˇsen´ı neexistuje. ” 4.
3
3 y .
2. min x + y x + 2y ≥ 2 2x + y ≥ 2 x≥0 y≥0 ˇ Reˇsen´ı je zˇrejmˇe opˇet x = y = 32 .
3.
x
min x − y 2x − y ≥ 2 x − 2y ≥ −2 x≥0 y≥0
0
... ... ... ... ... .. T...... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
smˇer poklesu c x
0
1
x
2
.
.
3 . .. ..
. . ... 3 y . . ... . . ... . . . . . . ... ... . . cT ....... smˇer.. poklesu ... x.......... . . .. ......... ... .......... . . ................. .... .... . ............ . ..... . . .............. ... .... .... 2 ..... . . ........ ... ... .. .. . . . . ...
Mnoˇzina pˇr´ıpustn´ ych ˇreˇsen´ı je neomezen´a, je vˇsak omezen´ a ve smˇeru poklesu cT x (obdobnˇe jako ´ v pˇr´ıkladu 2). Uloha LP m´ a ˇreˇsen´ı x = y = 2.
1 0
. .... ................ ... ... ........ . ... .. ........ . . . .. ... . . . . .. .... ..... . . . . . . . . . . . .. .. ..... . . ....... ...... .. ........ ... .. ... . . .. .. .. . . .. .... .... . . .. . . . . ..... .... .... . . ... .. .. .. . . .. .. .. .. .. .... ..... ..... . . . . . . . . ... . . ... ... . .
0
20
1
2
... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ... ..
x 3
−3
−2
−1 .. ..
0
... ... .. .. . . . ... ... ... ... . . ....... ... ....... .. ........ .. ....... . . . . . . . . . . ........ ... ....... ... ........ .. ........ ................ . . . ......... ......... ......... .. .......... .... ............ .... ...... . . . . . . .. . ........ .... ... ........ .... .... ..... ... ... ... ... ...... ... .... . ..
5. min x − y −2x + y ≥ 2 x − 2y ≥ 2 x≥0 y≥0
0
x
Neexistuje ˇz´ adn´e pˇr´ıpustn´e ˇreˇsen´ı, u ´loha nem´a ˇreˇsen´ı.
−1 −2
y
−3
6. Nyn´ı si uk´ aˇzeme, jak vypad´ a pˇrevod u ´lohy v kanonick´em tvaru na u ´lohu ve standardn´ım tvaru. . . . 2 . y. . . Kanonick´ y tvar: . . . . . . . . er r˚ smˇ ustu cT x max 2x + y . . ..... ................. . . ..... . .. . .... x+y ≤1 1 .................. ... ............... ........ x≥0 . . . . .. . .... ........... . . ... ... ...... . . y≥0 ... ... ......... . . .. .. ..... Optim´ aln´ı ˇreˇsen´ı t´eto kanonick´e u ´lohy LP je
... ... ... ... .
0
x = 1, y = 0.
... ... ... ... .
0
Tot´eˇz ve standardn´ım tvaru: max 2x + y + 0z x+y+z =1 x≥0 y≥0 z≥0
... ...... . ... .......... . ... ... . ....... ... ... . ........... . . .. ...... . . .......... . ...
x
1
2
. . . . .... . . . . . . .. . . . . . . ... .. .. . . . . . . . . . . . . . . . ... . . . . .... . . . . ... . . . . ... . . . . ... . . . . . . . .......... . . . . . . . . .... .......... . . . . . . . ... .. ....... . . . . . . . ... ... .......... . . . . . .. .. ... ... ..... . . . . . . . . ..... .. ... . ... ........ . . . . . . . ... ... ........... ... ... ....... . . . . . . . . ... ............................................................................................................................ . . . ... ................. ..................... . . .. ...... ... . . ..................................... . . . ... ................ . ... ...... . . . . . . ........ .. ..... ....... ..... . .....
z
1
y
0
Optim´ aln´ı ˇreˇsen´ı t´eto standardn´ı u ´lohy LP je x = 1, y = 0, z = 0.
x
2
1
1
smˇer r˚ ustu cT x
Je vidˇet, ˇze kanonick´ au ´loha je kolm´ ym pr˚ umˇetem standardn´ı u ´lohy LP.
7.
... ...
min c1 x1 + c2 x2 + c3 x3 x1 + x2 + x3 = 2 x1 ≥ 0 x2 ≥ 0 x3 ≥ 0
x3........
.. .. .. ........ . ..... ......... . .. ... ... ....... . . ... ... ... ........ ... ... ... ... ........ ..... ... .. .. ...... ..... ....... ... ... ......... 2 . . . . . ... ... ........................................................................................................... ... ...... .. . ........... .............. ....................... . ................. 1.......... ..... ..... . . . .....
x
x
x1 Vˇsechny body x = x2 , odpov´ıdaj´ıc´ı pˇr´ıpustn´ ym ˇreˇsen´ım, vypln´ı troj´ uheln´ık (viz obr´azek). x3 Je zˇrejm´e, ˇze minimum line´ arn´ı funkce c1 x1 +c2 x2 +c3 x3 bude leˇzet v nˇekter´em z vrchol˚ u troj´ uheln´ıka - tam jsou nˇekter´ a xi = 0.
21
Pˇ r´ıklad.
Ukaˇzme si jeˇstˇe jeden motivaˇcn´ı pˇr´ıklad. Hled´ame minim´aln´ı kostru v ohodnocen´em grafu: 3 ...... .....•.......... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... . . . . ..... .... . . ..... . . ..... 3 ............ 2 ..... ..... . . . ..... .... . . . ..... . .... ..... . . . . . ..... ..... ..... ..... ..... ..... ..... ..... ..... ... ..... . . . . ................................................................................................................................................................................
h
h
• h1 1 Tento graf m´ a tˇri kostry, a to: 3 •.............
..... ..... ..... ..... ..... ..... ..... 2 ..... ..... ..... ..... ..... ..... ..... ..... ..... .... ..................................................................................................................................................
h
• 2 3 •
.. ..... ..... ..... ..... . . . . ..... ..... 3 ............ .. . . . . ..... ..... ..... ..... .... . . . . .... ..... ..... .................................................................................................................................................
h
• • h1 2 1 1, jestliˇze hrana hj leˇz´ı v kostˇre, Poloˇz´ıme xj = h 0, jestliˇze hj v kostˇre neleˇz´ı.
• 1
h1
Nap´ıˇseme-li podm´ınky x1 + x2 + x3 = 2, x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x1 ≤ 1, x2 ≤ 1, x3 ≤ 1, pak pˇr´ıpustn´ a ˇreˇsen´ı vypln´ı troj´ uheln´ık na obr´azku vpravo a naˇse kostry jsou jeho vrcholy. Hled´an´ı minim´ aln´ı kostry je tedy minimalizace line´ arn´ı funkce w1 x1 +w2 x2 +w3 x3 , kde wi je ohodnocen´ı hrany. Minimum t´eto funkce mus´ı b´ yt ve vrcholu, jak jiˇz bylo zm´ınˇeno.
2.2
• 2
3 •
... ..... ..... ..... ......... ..... ..... ..... ..... . . . . . ..... ..... ..... ..... ..... . . . ..... 3 ........ ..... 2 .. . ..... . . . ..... ... . . . . ..... ... . . ..... . . ..... .... . . . ..... ... . . . ..... . ... . ..... . . . ..... .... . . . ..... ....
h
h
• 1
• 2
.......... ...... ....... ... ... ........ ..... .. ... . ..... ... ... ..... ..... ... ... ..... .. ... . ..... .. .. ..... . . . .. .. . . .......................................................... . . .. . . . . ......... ...... ....... . . .. ......... ... . . . . . . . .. ....... ... ..................... .... ........ .... ......... . ..... ... ...... ................. ... ... ... .... ... ..... ..... .......... .............. ... ... ... ... ... ... ... ..... ..................... .. ... ... ... ... ... ... ... ..... ............ .... .... .... .... ... ... ... ....... .... . ..... .. ..... ........ ... ... ... ... ... ... .... ..... . .. .. ... ........ ... ... .. .. ... ... .... . ..... . ......................................................................................................................................................... .. ... . . . . . . . . . ........... .. .. .. ... ... ....... . . . . .. ... . . . . . . . . . . . . . . . . . . ........ ... ... ... .... ...... ...... . . . .. ... . . . . . . . . . . .. ..... .. .. .. ...... ... ....... .. .. .... ........ ... .... ......... ...... .. .. ..... ................ ... ... ....... . . . .. ... ................................................................................ . .. . . . . . . . . . .. ...... ... ....... ........ ........ ... ....... ........ ........ ... .... ........... ................ . ....................... ..... .....
Simplexov´ y algoritmus
Uvaˇzujme u ´lohu LP ve standardn´ı formˇe min cT x Ax = b xi ≥ 0, kde A je typu m/n a plat´ı m < n. D´ ale budeme vˇzdy pˇredpokl´adat, ˇze hodnost matice A je rovna m (tento pˇredpoklad prakticky nesniˇzuje obecnost). Definice 2.1. Je-li B = {Aj1 , Aj2 , . . . , Ajm } mnoˇzina m line´arnˇe nez´avisl´ ych sloupc˚ u matice A, pak vektor x ∈ Rn , splˇ nuj´ıc´ı podm´ınky - xj = 0 pro Aj 6∈ B, m - xk je k-t´ a sloˇzka vektoru B−1 b, kde B = [Aji ]i=1 pro k = 1 . . . m, se naz´ yv´ a bazick´e ˇreˇsen´ı, pˇr´ısluˇsn´e mnoˇzinˇe B. Pozn´ amka.
Bazick´e ˇreˇsen´ı dostaneme takto:
22
1) zvol´ıme mnoˇzinu B line´ arnˇe nez´ avisl´ ych sloupc˚ u matice A (tj. nˇekterou b´azi sloupcov´eho prostoru matice A), 2) poloˇz´ıme vˇsechny sloˇzky vektoru x pro sloupce, kter´e nejsou v mnoˇzinˇe B, rovny nule, 3) ˇreˇs´ıme vzniklou soustavu rovnic s regul´arn´ı matic´ı (jeˇz m´a pr´avˇe jedno ˇreˇsen´ı). Definice 2.2. Vˇ eta 2.1.
Bazick´e ˇreˇsen´ı, pro kter´e plat´ı xj ≥ 0, j = 1 . . . n, se naz´ yv´a pˇr´ıpustn´e bazick´e ˇreˇsen´ı.
Optim´ aln´ı ˇreˇsen´ı u ´lohy LP je nˇekter´e z jej´ıch pˇr´ıpustn´ ych bazick´ ych ˇreˇsen´ı.
D˚ ukaz. Nebudeme prov´ adˇet, geometricky je z pˇredchoz´ıch pˇr´ıklad˚ u zˇrejm´ y.
2
Pozn´ amka. Plat´ı i opaˇcn´e tvrzen´ı: pro kaˇzd´e bazick´e ˇreˇsen´ı existuje vektor c takov´ y, ˇze toto ˇreˇsen´ı minimalizuje v´ yraz cT x. D˚ ukaz. Poloˇz´ıme-li cj = 0 pro Aj ∈ B, cj = 1 pro Aj 6∈ B, pak pro naˇse bazick´e ˇreˇsen´ı je cT x = 0; v ostatn´ıch pˇr´ıpadech je tento v´ yraz vˇzdy kladn´ y.
2
Pˇri hled´ an´ı minima cenov´e funkce cT x bychom tedy mohli prob´ırat vˇsechny m-prvkov´e podmnoˇziny n sloupc˚ u matice A, kter´ ych je m , nal´ezt vˇsechna bazick´a ˇreˇsen´ı a vybrat z nich optim´aln´ı. V praxi by byl tento postup ˇcasovˇe velmi n´ aroˇcn´ y. Je tˇreba nˇejak zorganizovat pˇrechod od jednoho pˇr´ıpustn´eho bazick´eho ˇreˇsen´ı ke druh´emu. Tento postup je zn´am jako simplexov´y algoritmus. Celou myˇslenku tohoto algoritmu si uk´aˇzeme na n´asleduj´ıc´ım pˇr´ıkladu. Uvaˇzujme u ´lohu ve standardn´ım tvaru min cT x Ax = b xi ≥ 0, i = 1 . . . n Pˇredstavme si tuto u ´lohu jako u ´lohu o dietˇe s podm´ınkami na obsah vitamin˚ u typu rovnosti. Pˇredpokl´ adejme rovnˇeˇz, ˇze jsme jiˇz naˇsli nˇejak´e v´ ychoz´ı pˇr´ıpustn´e bazick´e ˇreˇsen´ı (coˇz samo o sobˇe m˚ uˇze b´ yt probl´em, ale k tomu se vr´ at´ıme pozdˇeji). Pˇr´ısluˇsn´e bazick´e promˇenn´e zap´ıˇseme jako prvn´ı a rozˇs´ıˇren´ a matice soustavy Ax = b nabude tvaru a11 a12 . . . | . . . a1n b1 a21 a22 . . . | . . . a2n b2 .. .. .. , . . ... | ... ... . am1 am2 . . . | . . . amn bm kde prvn´ıch m sloupc˚ u odpov´ıd´ a sloupc˚ um bazick´ ych promˇenn´ ych. 1 1 T Pˇr´ıpustn´e bazick´e ˇreˇsen´ı x1 , x2 , . . . x1m , 0, . . . 0 obdrˇz´ıme po Gauss-Jordanovˇe eliminaci v t´eto matici podle podmatice tvoˇren´e sloupci bazick´ ych promˇenn´ ych. 1 0 . . . 0 a11 m+1 . . . a11s . . . a11n x11 .. 0 1 . 0 a12 m+1 . . . a12s . . . a12n x12 . .. .. . . .. .. .. .. . . . . . ... ... ... . 1 1 1 0 . . . 0 1 am m+1 . . . ams . . . amn x1m 23
Pˇrechod k jin´emu pˇr´ıpustn´emu bazick´emu ˇreˇsen´ı uskuteˇcn´ıme n´ahradou nˇekter´e bazick´e promˇenn´e jinou, nebazickou. Nen´ı vˇsak jedno, kterou bazickou promˇennou z b´aze odstran´ıme a kterou nebazickou naopak do b´ aze pˇrid´ ame. M´ ame tedy dva d´ılˇc´ı probl´emy: a) kterou nebazickou promˇennou d´ at do b´aze, b) kterou bazickou promˇennou z b´ aze vyjmout? ad a): Uvaˇzujme s-tou nebazickou promˇennou. Jej´ı jednotka stoj´ı cs a tato jednotka by nahradila a1s jednotek prvn´ı promˇenn´e, a2s jednotek druh´e promˇenn´e, atd., coˇz celkem stoj´ı c1 a1s + . . . + cm ams penˇez. Pokud je tato suma vˇetˇs´ı neˇz cena jednotky s-t´e promˇenn´e, tak se s-tou nebazickou promˇennou vyplat´ı d´ at do b´ aze. To tedy nastane, pokud plat´ı nerovnost (horn´ı index 1 zde pro jednoduchost nep´ıˇseme): cs < c1 a1s + c2 a2s + . . . + cm ams . S form´ aln´ım maticov´ ym z´ apisem je trochu pot´ıˇz, protoˇze cen nen´ı m, ale n - pro nebazick´e promˇenn´e, kter´ ych je ve smˇesi nulov´e mnoˇzstv´ı, nejsou na prav´e stranˇe nerovnosti pˇr´ısluˇsn´e sˇc´ıtance uvedeny. Zave˜s , kter´ deme vektor a y m´ a v´ yznam s-t´eho sloupce matice A, doplnˇen´eho nulami na pozic´ıch, odpov´ıdaj´ıc´ıch nebazick´ ym promˇenn´ ym, tj. ˜s = [a1s , a2s , . . . , ams , 0, . . . , 0]T . a (Pokud by bazick´e promˇenn´e nebyly v tabulce na prvn´ıch m´ıstech, byly by nuly na pˇr´ısluˇsn´ ych pozic´ıch v tomto vektoru.) Nyn´ı tyto poznatky shrneme: y sloupec plat´ı nerovnost PRAVIDLO 1. Jestliˇze pro s-t´ ˜s − cs > 0, cT a pak s-tou promˇennou zahrneme do nov´e b´ aze. Pozn´ amka.
˜s −cs se naz´ Hodnota cT a yv´ a relativn´ı cena s-t´e nebazick´e promˇenn´e vzhledem k dan´e b´azi.
ad b): Kterou bazickou promˇennou z b´aze vyjmout? Kdyˇz pouˇzijeme xs jednotek s-t´e promˇenn´e, tak ve smˇesi z˚ ustane x1 − a1s xs x2 − a2s xs .. .
jednotek 1. bazick´e promˇenn´e, jednotek 2. bazick´e promˇenn´e,
xm − ams xs
jednotek m-t´e bazick´e promˇenn´e,
pˇriˇcemˇz vˇsechny tyto v´ yrazy mus´ı b´ yt nez´ aporn´e. Plat´ı tedy: x1 − a1s xs x2 − a2s xs ... xm − ams xs
≥ 0 ≥ 0
⇒ ⇒
≥ 0
⇒
xs xs
≤ ≤
x1 a1s x2 a2s
xs
≤
xm ams
...
Chceme pouˇz´ıt nov´e bazick´e promˇenn´e co nejv´ıce (vyplat´ı se, zmenˇsuje hodnotu cenov´e funkce). Nejvˇetˇs´ı moˇzn´e mnoˇzstv´ı xs t´eto s-t´e promˇenn´e (nov´e bazick´e) je rovno nejmenˇs´ımu z v´ yraz˚ u na prav´e stranˇe nerovnost´ı. Pˇri takov´em xs bude promˇenn´ a, kterou vyj´ım´ame z b´aze, novou promˇennou plnˇe nahrazena. Opˇet shrneme tuto u ´vahu:
24
PRAVIDLO 2. Zahrnujeme-li do nov´e b´aze promˇennou xs , tak j´ı nahrad´ıme tu bazickou promˇennou xi , pro kterou je v´ yraz axisi minim´ aln´ı kladn´ y. D´ a se obecnˇe dok´ azat, ˇze tato dvˇe pravidla (intuitivnˇe zˇrejm´a) skuteˇcnˇe vedou k optim´aln´ımu pˇr´ıpustn´emu bazick´emu ˇreˇsen´ı. Postup, zaloˇzen´ y na tˇechto pravidlech, se (z historick´ ych d˚ uvod˚ u) naz´ yv´a simplexov´ a metoda (nebo t´eˇz simplexov´y algoritmus). Pˇ r´ıklad. min x1 + 6x2 − 7x3 + x4 + 5x5 5x1 − 4x2 + 13x3 − 2x4 + x5 = 20 x1 − x2 + 5x3 − x4 + x5 = 8 xi ≥ 0, i = 1 . . . 5 Vektor cen c je vektor cT = [1, 6, −7, 1, 5]. Soustavu zap´ıˇseme do n´asleduj´ıc´ı tabulky T0 : 5 1
-4 -1
13 5
-2 -1
1 1
20 8
Potˇrebujeme nal´ezt nˇejak´e v´ ychoz´ı pˇr´ıpustn´e bazick´e ˇreˇsen´ı. To m˚ uˇze b´ yt obecnˇe probl´em, uvid´ıme pozdˇeji (v odstavci 2.3), jak jej obecnˇe ˇreˇsit. V naˇsem pˇr´ıpadˇe budeme postupovat takto: od 1. ˇr´adku odeˇcteme druh´ y, od 2. ˇr´ adku odeˇcteme ˇctvrtinu prvn´ıho, 1. ˇr´adek dˇel´ıme ˇctyˇrmi. Tabulka T0 se zmˇen´ı do podoby T1 : 1
− 34
2
− 14
0
3
0
− 14
3
− 34
1
5
T
Ve sloupci napravo jsou kladn´ a ˇc´ısla, nalezen´e bazick´e ˇreˇsen´ı x = [3, 0, 0, 0, 5] je tedy pˇr´ıpustn´e. Pro dalˇs´ı postup bude vhodn´e pˇripsat k tabulce ceny jednotliv´ ych promˇenn´ ych. Nahoru ceny vˇsech promˇenn´ ych, vlevo ceny pˇr´ısluˇsn´ ych bazick´ ych promˇenn´ ych, tj. v tomto pˇr´ıpadˇe ceny prvn´ı a p´at´e promˇenn´e. 1
6
-7
1
5
1
1
− 34
2
− 14
0
3
5
0
− 14
3
− 34
1
5
˜ s − cs , Nyn´ı m˚ uˇzeme zah´ ajit optimalizaci. Pro jednotliv´e sloupce vˇsech promˇenn´ ych vyˇc´ısl´ıme v´ yrazy cT a pro posledn´ı sloupec celkovou cenu. Vˇse opˇet pˇripoj´ıme k tabulce T1 : 1
6
-7
1
5
1
1
− 43
2
− 14
0
3
5
0
− 41
3
− 34
1
5
˜ s − cs cT a
0
-8
24
-5
0
28
25
Podle pravidla 1 zaˇrad´ıme tˇret´ı promˇennou do b´aze (vyplat´ı se). Ale kterou promˇennou z b´aze odstranit? Vyˇc´ısl´ıme v´ yrazy a˜xi3i pro vˇsechny bazick´e promˇenn´e (i = 1, 5): x1 3 = ; a ˜13 2
x5 5 = ; a ˜53 3
3 5 < . 2 3
Proto, podle pravidla 2, z b´ aze vyjmeme promˇennou x1 . D´ale budeme postupovat stejn´ ym zp˚ usobem. Vedouc´ım prvkem pro Jordanovu eliminaci bude prvek ve sloupci a ˇr´adku nov´e a nahrazovan´e bazick´e promˇenn´e, tedy prvek na pozici (1, 3) n´ asleduj´ıc´ı tabulky: 1
− 34
2
− 14
0
3
0
− 14
3
− 34
1
5
Po u ´prav´ ach z´ısk´ ame tvar simplexov´e tabulky T2 : 1 2
− 38
1
− 18
0
3 2
− 32
7 8
0
− 38
1
1 2
K t´eto tabulce opˇet pˇrid´ ame ceny jednotliv´ ych promˇenn´ ych a vyˇc´ısl´ıme relativn´ı ceny vˇsech promˇenn´ ych. Tabulka T2 tak nabude tvaru 1
6
-7
1
5
1 2
− 38
1
− 18
0
3 2
− 32
7 8
0
− 38
1
1 2
-12
1
0
-2
0
-8
Vˇsimnˇeme si dvou fakt˚ u. Jednak n´ am cena ˇreˇsen´ı klesla z 28 na -8, skuteˇcnˇe se tedy bl´ıˇz´ıme k minimu cenov´e funkce. D´ ale vid´ıme, ˇze bychom mˇeli do b´aze zaˇradit promˇennou x2 . Abychom zjistili, kterou promˇennou z b´ aze vyˇradit, opˇet vyˇc´ısl´ıme v´ yrazy a˜xi2i pro i = 3, 5: 3 x3 = 23 < 0; a ˜32 −8
x5 = a ˜52
1 2 7 8
=
4 > 0; 7
Minim´ aln´ı kladn´ y je v´ yraz p´ at´e promˇenn´e, kterou podle pravidla 2 vyˇrad´ıme z b´aze. Opˇet provedeme Jordanovu eliminaci s vedouc´ım prvkem vyznaˇcen´ ym v n´asleduj´ıc´ı tabulce tuˇcnˇe: 1 2
− 38
1
− 18
0
3 2
− 32
7 8
0
− 38
1
1 2
Po u ´prav´ ach z´ısk´ ame simplexovou tabulku T3 :
26
− 17
0
1
− 27
3 7
12 7
− 12 7
1
0
− 37
8 7
4 7
Po pˇrid´ an´ı cen jednotliv´ ych promˇenn´ ych a v´ ypoˇctu relativn´ıch cen pˇrejde tabulka na n´asleduj´ıc´ı tvar: 1
6
-7
1
5
− 17
0
1
− 72
3 7
12 7
− 12 7
1
0
− 73
8 7
4 7
− 72 7
0
0
− 11 7
− 87
− 60 7
ˇ adek relativn´ıch cen nem´ R´ a ˇz´ adn´ y kladn´ y prvek, nen´ı tedy co nahrazovat, podle n´asleduj´ıc´ı vˇety jsme T naˇsli optimum. Optim´ aln´ı cena u ´lohy je − 60 aln´ı ˇreˇsen´ı m´a tvar x = [0, 47 , 12 7 ; optim´ 7 , 0, 0] . ˜s − cs ≤ 0, pak je toto pˇr´ıpustn´e bazick´e ˇreˇsen´ı opVˇ eta 2.2. Jestliˇze pro vˇsechny sloupce plat´ı cT a tim´ aln´ı. Takto by ˇslo metodu prakticky provozovat. Lze vˇsak trikem zjednoduˇsit v´ ypoˇcet relativn´ıch cen. Pod´ıvejme se na tabulku T1 z pˇredchoz´ıho pˇr´ıkladu: 1
6
-7
1
5
1
1
− 43
2
− 14
0
3
5
0
− 41
3
− 34
1
5
˜ s − cs cT a
0
-8
24
-5
0
28
˜s je vektor sam´ 1. Je-li xs bazick´ a promˇenn´ a, pak a ych nul, jen na s-t´e pozici bude m´ıt jedniˇcku. Pro ˜s − cs = cs − cs = 0. relativn´ı cenu kaˇzd´e bazick´e promˇenn´e tedy plat´ı cT a 2. Co by se stalo, kdybychom v horn´ım (nult´em) ˇr´adku ˇc´ısla ve sloupc´ıch bazick´ ych promˇenn´ ych vynulovali Jordanovou eliminac´ı? Pˇredevˇs´ım si uvˇedomme, ˇze pˇri v´ ypoˇctu relativn´ıch cen se hodnota cs odeˇc´ıt´ a, bude tedy vhodn´e napsat nult´ y ˇr´adek s opaˇ cn´ ym znam´enkem (ekvivalentn´ı interpretace P t´eto u ´vahy: definujeme promˇennou ceny vztahem z − ci xi = 0; nult´ y ˇr´adek tabulky je pak ˇr´adek pro tuto promˇennou z). Z´ısk´ ame tak tabulku: -1
-6
7
-1
-5
0
1
1
− 34
2
− 14
0
3
5
0
− 14
3
− 34
1
5
˜ s − cs cT a
0
-8
24
-5
0
28
V naˇsem pˇr´ıpadˇe vynulujeme ceny u bazick´ ych promˇenn´ ych t´ım, ˇze k nult´emu ˇr´adku pˇriˇcteme jednou prvn´ı a pˇetkr´ at druh´ y. 27
Obecnˇe: k nult´emu ˇr´ adku pˇriˇcteme ci -n´asobek i-t´eho ˇr´adku. Pak hodnoty ve sloupc´ ych Pıch bazick´ promˇenn´ ych budou rovny nule a ve sloupc´ıch nebazick´ ych promˇenn´ ych vyjdou v´ yrazy ci a ˜is − cs = ˜s − cs , coˇz jsou pˇresnˇe relativn´ı ceny. Vypoˇcteme je tedy cT a P pˇr´ımo v tabulce pˇri Jordanovˇe eliminaci. V nult´em ˇr´ adku ve sloupci prav´ ych stran pˇritom vyjde ˇc´ıslo ci xi , kde xi jsou hodnoty sloˇzek pˇr´ıpustn´eho bazick´eho ˇreˇsen´ı. A to je cena pˇr´ısluˇsn´eho ˇreˇsen´ı. (To vˇse ale plat´ı pouze v pˇr´ıpadˇe, ˇze sloupec s-t´e bazick´e promˇenn´e je jiˇz po eliminaci, tj. je ve tvaru [0, 0, . . . , 0, 1, 0, . . . , 0]T ; je nutn´e si nav´ıc uvˇedomit, ˇze k nult´emu ˇr´adku lze jen pˇriˇc´ıtat ˇci odeˇc´ıtat n´asobky ostatn´ıch ˇr´ adk˚ u, ale nult´ y ˇr´ adek samotn´ y n´asobit ˇc´ıslem nelze, nebot’ by se zmˇenily ceny promˇenn´ ych). Pˇ r´ıklad. min 3x + y x + 2y ≥ 3 2x + y ≥ 3 x≥0 y≥0 Nejprve pˇrevedeme tuto u ´lohu (v kanonick´em tvaru) na u ´lohu ve standardn´ım tvaru: min 3x + y x + 2y − u = 3 2x + y − v = 3 x ≥ 0, y≥0 u ≥ 0, v≥0 Sestav´ıme v´ ychoz´ı simplexovou tabulku T0 : -3 1 2
-1 2 1
0 -1 0
0 0 -1
0 3 3
Nyn´ı je tˇreba urˇcit v´ ychoz´ı pˇr´ıpustn´e bazick´e ˇreˇsen´ı. I v tomto pˇr´ıkladu se pokus´ıme probl´em obej´ıt a zkusit toto ˇreˇsen´ı uhodnout. Poloˇzme (z prvn´ı rovnice) x = 3, y = 0, u = 0. Ze druh´e rovnice urˇc´ıme posledn´ı promˇennou v = 3. Bazick´ ymi promˇenn´ ymi tedy budou promˇenn´e x a v. Jordanovou eliminac´ı a pˇrid´ an´ım cen jednotliv´ ych promˇenn´ ych z´ısk´ame tabulku T1 : 0 1 0
5 2 3
-3 -1 -2
0 0 1
M´am pˇr´ıpustn´e bazick´e ˇreˇsen´ı x = [3, 0, 0, 3]T , cena tohoto ˇreˇsen´ı je 9. Toto ˇreˇsen´ı nen´ı optim´aln´ı, jak je patrno z uveden´e tabulky, do b´aze pˇrid´ame promˇennou y a vyjmeme promˇennou v. Po n´asledn´e Jordanovˇe eliminaci z´ısk´ame tabulku T2 :
9 3 3
0
0
1 3
1
0
1 3
− 23
1
0
1
− 23
1 3
1
− 53
4
Nyn´ı jsme z´ıskali pˇr´ıpustn´e bazick´e ˇreˇsen´ı x = [1, 1, 0, 0]T , jehoˇz cena je 4. Opˇet se nejedn´ ao optim´aln´ı ˇreˇsen´ı, do b´aze pˇrid´ame promˇennou u a vyjmeme x. Jordanovou eliminac´ı z´ısk´ame tabulku T3 :
28
-1 3 2
0 0 1
0 1 0
-1 -2 -1
Obdrˇzeli jsme tak pˇr´ıpustn´e bazick´e ˇreˇsen´ı x = [0, 3, 3, 0]T . Toto ˇreˇsen´ı je jiˇz optim´ aln´ı, nebot’ relativn´ı ceny vˇsech nebazick´ ych promˇenn´ ych jsou z´aporn´e. Optim´aln´ı ˇreˇsen´ı p˚ uvodn´ıho probl´emu je [0, 3]T .
3 3 3
Pˇ r´ıklad. V n´ asleduj´ıc´ım pˇr´ıkladu si uk´ aˇzeme jednoduchou u ´lohu, kter´a nem´a ˇreˇsen´ı. Mnoˇzina pˇr´ıpustn´ ych ˇreˇsen´ı je stejn´ a jako v pˇredchoz´ım pˇr´ıkladu, jedin´ y rozd´ıl bude v cenov´e funkci. min x − y x + 2y ≥ 3 2x + y ≥ 3 x≥0 y≥0 Nejprve pˇrevedeme u ´lohu do standardn´ıho tvaru. min x − y x + 2y − u = 3 2x + y − v = 3 x ≥ 0, y≥0 u ≥ 0, v≥0 Vyjdeme ze stejn´eho poˇc´ ateˇcn´ıho pˇr´ıpustn´eho bazick´eho ˇreˇsen´ı, tedy x = [3, 0, 0, 3]T a sestav´ıme v´ ychoz´ı simplexovou tabulku T0 : -1 1 2
1 2 1
0 -1 0
0 0 -1
0 3 3
Jordanovou eliminac´ı, se stejn´ ym vedouc´ım prvkem jako v minul´em pˇr´ıkladu, z´ısk´ame tabulku T1 : 3 2 3
0
0
1
-1
0
1
0
1 3
− 23
1
0
1
− 23
1 3
1
-3 3 2
0 0 1
-1 -1 -2
0 1 0
0 0 1
M´am pˇr´ıpustn´e bazick´e ˇreˇsen´ı x = [3, 0, 0, 3]T , cena tohoto ˇreˇsen´ı je 3. Toto ˇreˇsen´ı nen´ı optim´aln´ı, jak je patrno z uveden´e tabulky, do b´aze pˇrid´ame promˇennou y a vyjmeme promˇennou v. Po n´asledn´e Jordanovˇe eliminaci z´ısk´ame tabulku T2 :
0 1 0
3 3 3
1 -2 -1
Nyn´ı jsme z´ıskali pˇr´ıpustn´e bazick´e ˇreˇsen´ı x = [1, 1, 0, 0]T , jehoˇz cena je 0. Opˇet se nejedn´ ao optim´aln´ı ˇreˇsen´ı, do b´aze pˇrid´ame promˇennou u a vyjmeme x. Jordanovou eliminac´ı z´ısk´ame tabulku T3 :
Pˇr´ıpustn´e bazick´e ˇreˇsen´ı je x = [0, 3, 3, 0]T . Do b´aze pˇrid´ame promˇennou v, ale pozor, nen´ı co z b´aze vyjmout. Tedy promˇenn´a v n´am nenahrad´ı ˇz´adnou z bazick´ ych promˇenn´ ych y, u. Mnoˇzina pˇr´ıpustn´ ych ˇreˇsen´ı nen´ı ve smˇeru gradientu cenov´e funkce omezen´a mnoˇzina, tato u ´loha LP nem´a ˇreˇsen´ı.
-3 3 3
29
Tento pˇr´ıklad ilustruje n´ asleduj´ıc´ı tvrzen´ı (jeˇz nebudeme dokazovat). Tvrzen´ı 2.2. Jsou-li vˇsechny v´ yrazy ˇreˇsen´ı.
xi a ˜is
z´aporn´e, pak funkce cT x nen´ı zdola omezen´a a u ´loha LP nem´ a
V n´ asleduj´ıc´ım blokov´em schematu simplexov´eho algoritmu je tento pˇr´ıpad zahrnut. Pro kratˇs´ı z´apis budeme pouˇz´ıvat m´ısto pojmu pˇr´ıpustn´e bazick´e ˇreˇsen´ı“ zkratku PBR“. ” ” .................................................................................................................................................. ... .... ... 0 ..... ... .... ... ...................................................................................................................................................... ... ... ... .. .................................................................................................................................................................................................... .. ... ......... ... ......... ... .. ... .............................................................................................................................................................................................................................................................. ... ... ... ... ... ... ... ... ... ... ... ... T T ... ... ... .. s j j ... ..................................s ............................................................................................................................................................................................................................ ... ... ... ... ... . ..... ... ... ... ... ... ... ......... ... ......... ..... ... .............................................................................................................. .......... ... ............. .......................... ... .... ... ............. .............. ... .............. .............. ... ... ... .............. .............. . . . . . . . . . . . . ... . .............. .... ... ....................... . . . ......................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . T ....... ... ......... .............. . . . . . . k ..... . . . . . ... . .............. . ......... . . . s s . . . . . .............. . . . .... . . ... . . .............. ......... . . . . . . . . . . . . . . ... . .............. .. ............................................................................................................... ........................... . ... ... ... .... ... ... ... ... ... ... ... ..... ... ... .......... ... ........ ... .... ............................................................................................................. ...... ... ... .............. ........................... ... .... ............. .............. .... .............. .............. ... ... .............. . . . ... . . . . . . . . . . . . . . . . . . ... . . . .... .............. ........ ... . . . . . . . . . . . . . . . . . . ... . . . . .............. . ... ......... . . . T . . . . . . . . . . . . . . ... . . . . .............. . ..................... . ......................... . . . . . . . . . . . . . . . . . . . . . . . ..... . . ... . . . ..... .... ........ .............. . . . . . . . ... . . . . ... . . .............. . xi ........ . . . . . ... . . .............. . . . . . ... . . . . .............. ........ . . . . . . . . . . .... . . ... . . . .............. ˜is . ........ . . . . . . . .............. a . ... . . . . ... . . . ....... .............. .. .... .............. ........................... ... ...... ............................................................................................................ ... ... ... ... ... ..... ... ... ... ... ... . ... .......... ... ........ ... .... ......................................................................................................................................................................................................................... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... xt xi xi ..... ... ... ... ... .... a ˜ts ais ais .. ... ... ........................................................................................................................................................................................................................ ... ... ... .... ... ... ... ... ... ... ... .. ... .......... ... ........ ... .. ... ........................................................................................................................................................................................................................... ... ... ... ... ... ... ... ... ... s t ... ... ... . ... ... k+1 ...... ... ... ... ... ... ... .... ... ........................................................................................................................................................................................................................ ... ... ... .... .... ..................................................................................................................................................................................
Najdi v´ ychoz´ı PBR x k := 0
Najdi index s; 1 ≤ s ≤ n, pro kter´ y plat´ı ˜ − c = max{c a ˜ − c | j = 1, . . . , n} c a
Plat´ı ˜ −c >0 ? c a
KONEC x je optim´aln´ı ˇreˇsen´ı
NE
ANO
Existuje i, pro kter´e plat´ı >0?
NE
KONEC funkce c x nen´ı zdola omezen´a, u ´loha nem´a ˇreˇsen´ı
ANO
Najdi n index t, pro kter´ y plat´ı o = min |i = 1, . . . , n; >0
Do b´ aze pˇridej x a vyjmi x Jordanovou eliminac´ı nalezni x k := k + 1
Pˇ r´ıklad. Jsou dvˇe beton´ arny, oznaˇcen´e p´ısmeny X a Y , a tˇri staveniˇstˇe, oznaˇcen´a ˇc´ısly 1,2,3, na kter´ a se voz´ı beton. Beton´ arna X produkuje 14 aut betonu dennˇe, beton´arna Y produkuje 6 aut dennˇe. Na staveniˇsti 1 se spotˇrebuje 8 aut betonu dennˇe, na druh´em staveniˇsti 5 aut a na tˇret´ım 7 aut betonu dennˇe. D´ ale jsou d´ any vzd´ alenosti jednotliv´ ych staveniˇst’ od obou beton´aren, kter´e jsou uvedeny v n´asleduj´ıc´ı tabulce: X Y
1 15 6
2 7 3
3 18 8
Naˇs´ım u ´kolem je nal´ezt optim´ aln´ı pl´ an rozvozu betonu.
30
Oznaˇcme jednotliv´ a mnoˇzstv´ı podle beton´arny, ze kter´e je beton pˇrev´aˇzen a staveniˇstˇe, na kter´em se vyuˇzije, x1 , x2 , x3 a y1 , y2 , y3 . Hodnota xi tedy odpov´ıd´a poˇctu aut pˇrev´aˇzen´ ych z beton´arny X na stavbu i (a podobnˇe yi ). Cenov´ a funkce je min 15x1 + 7x2 + 18x3 + 6y1 + 3y2 + 8y3 . Podm´ınky u ´lohy popisuj´ı, ˇze na kaˇzdou stavbu se mus´ı celkem dostat pˇresnˇe potˇrebn´e mnoˇzstv´ı betonu dennˇe (prvn´ı tˇri rovnice), a vˇsechen odvezen´ y beton z beton´aren mus´ı b´ yt roven v´ yrobn´ı kapacitˇe beton´ aren (dalˇs´ı dvˇe rovnice). Pˇritom samozˇrejmˇe veˇsker´a pˇrev´aˇzen´a mnoˇzstv´ı betonu jsou nez´aporn´a. x1 + y1 = 8 x2 + y2 = 5 x3 + y3 = 7 x1 + x2 + x3 = 14 y1 + y2 + y3 = 6 xi ≥ 0; yi ≥ 0 i = 1, 2, 3 Tuto u ´lohu zap´ıˇseme do n´ asleduj´ıc´ı tabulky: 1 0 0 1 0
0 1 0 1 0
0 0 1 1 0
1 0 0 0 1
0 1 0 0 1
0 0 1 0 1
8 5 7 14 6
Protoˇze celkov´e mnoˇzstv´ı odvezen´eho betonu z beton´aren se rovn´a celkov´emu mnoˇzstv´ı betonu pˇrivezen´eho na stavby, jsou rovnice line´ arnˇe z´ avisl´e. Lze tedy vypustit prvn´ı ˇr´adek, ˇc´ımˇz se ˇreˇsen´ı u ´lohy nezmˇen´ı. Z´ısk´ ame tak tabulku 0 0 1 0
1 0 1 0
0 1 1 0
0 0 0 1
1 0 0 1
0 1 0 1
5 7 14 6
Nyn´ı je tˇreba nal´ezt v´ ychoz´ı PBR. To zat´ım neum´ıme, opˇet se tedy pokus´ıme ˇreˇsen´ı uhodnout. Nejprve pˇrehod’me ˇr´adky a z´ısk´ame tabulku
1 0 0 0
1 1 0 0
1 0 1 0
0 0 0 1
0 1 0 1
0 0 1 1
14 5 7 6
Nyn´ı provedeme Jordanovu eliminaci a po pˇrid´an´ı nult´eho ˇr´adku cen promˇenn´ ych a Jordanovˇe eliminaci i tohoto ˇr´adku z´ısk´ame tabulku T1 :
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
-5 -1 1 0 1
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
-1 1 0 -1 1
-6 0 1 -1 1
1 -1 0 1 1
227 2 5 7 6
Toto ˇreˇsen´ı je evidentnˇe pˇr´ıpustn´ ym bazick´ ym ˇreˇsen´ım t´eto u ´lohy, nen´ı vˇsak optim´aln´ı. Nˇekter´a z relativn´ıch cen je totiˇz kladn´a. Tu pˇrid´ame do b´aze a po urˇcen´ı minima z v´ yraz˚ u xi urˇ c ´ ıme, kterou promˇ e nnou z b´ a ze vya ˜i,s jmeme. Na tuto tabulku provedeme Jordanovu eliminaci s vedouc´ım prvkem, kter´ y je v tabulce T0 vyznaˇcen tuˇcnˇe. Po Jordanovˇe eliminaci z´ısk´ame tabulku T2 :
0 0 0 0 1
221 8 5 1 6
Z´ıskali jsme pˇr´ıpustn´e bazick´e ˇreˇsen´ı ve tvaru x = [8, 5, 1, 0, 0, 6]T . Jak je vidˇet ze simplexov´e tabulky T2 , je toto ˇreˇsen´ı optim´aln´ı, nebot’ relativn´ı ceny vˇsech nebazick´ ych promˇenn´ ych jsou z´aporn´e. 31
Povˇsimnˇeme si mal´e zaj´ımavosti: v optim´aln´ım rozvozn´ım pl´anu je y1 = y2 = 0. To znamen´a, ˇze pˇri optim´ aln´ım rozvozu se na dvˇe nejkratˇs´ı vzd´alenosti (3 a 6 km) nic nevoz´ı. Nyn´ı si uk´ aˇzeme, ˇze tuto u ´lohu lze tak´e ˇreˇsit apar´atem optim´aln´ıho toku v s´ıti. Sestrojme nejprve s´ıt’ podle zad´ an´ı u ´lohy. Zdroje budou pˇredstavovat obˇe beton´arny, jejich intenzity budou denn´ı produkce betonu v kaˇzd´e z beton´ aren. Stoky s´ıtˇe budou pˇredstavovat staveniˇstˇe, jejich intenzity budou rovny denn´ı spotˇrebˇe betonu. Hrany budou v´est z kaˇzd´eho zdroje do kaˇzd´eho stoku. Ceny hran budou d´ any pˇr´ısluˇsn´ ymi vzd´ alenostmi, propustnosti uvaˇzujeme nekoneˇcn´e. V´ yznam ˇc´ısel u hran na obr´azc´ıch je xi,j (ci,j ) (nekoneˇcn´e propustnosti neuv´ ad´ıme). V´ ychoz´ı tok:
...................... .... ...... ... ... ... ... .... ......................... ... .......... ... . .. . . . . . . . . . . . . . . . .. ......... .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............ .................... ........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... . .. ........ ..... ... ..... ................ ..... ... ............................... ... ..... .. ........ ..... ..... ..... .... . . . . . . . ...... ... ... ..... ... ... ...................... ..... ...... ...... ........... ..... ........... ...................... .......... ..... ........... ..... ..... ........... . ..... . . . ............... ..... .. ..... ..... ...................... ..... ..... ........... ..... ......................... ..... ........... ... ..... ..... ................. ........ ..... ... . . . . . ..... ... ................. ..... .......... . .. ........ . . . . . ... .... ......... . . . . ... . ..... ............................. . .... . . . . . . . . . . . ..... ..... .. ....... .... . . .... . . . . . . . . . . . . . . . . . . . . . . . . .............. ..... . ........... ..... ..... .. ............... ..... ..... ............. ..... ........... .......... ..... ........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... ..... ..... .... ...... ..... ......... ........... .... ..... ... .................... ..... ... ............. ..... .. ..... .... ...... ..... . ... . .................... ..... . . ................ ..... ... . . . ..... . . ..... . . . . . . . . ................ ........ ....................... ................ ................ ................. ........................... ................ .... ................ ..... ......... ... ......................... ... ..... . ... .. ... .. ... .. . . ..... . ........................
-8
2 (15)
14
0
15
5 (7)
7 (18)
-5
6 (6)
7
0 (3)
6
9
0 (8)
Potenci´aly jednotliv´ ych uzl˚ u jsou zaps´any tuˇcnˇe jako uzlov´e ohodnocen´ı. Je patrn´e, ˇze na hranˇe vedouc´ı ze zdroje s intenzitou 6 do stoku s intenzitou −7 nen´ı splnˇena podm´ınka vˇety o potenci´alech (vˇeta 1.3). Je tedy tˇreba pod´el polocyklu dan´eho hranami s intenzitami 14, −8, 6, −7, 14 zv´ yˇsit tok. Nejvˇetˇs´ı moˇzn´e mnoˇzstv´ı, kter´e m˚ uˇzeme v dan´em rezervn´ım polocyklu pˇridat, je 6. Z´ısk´ame t´ım nov´ y tok:
-7
18
......... ....... ............ .... ... ... ... .... .. .......................... .. . . . . . . . . . . . . . . . . . .... . ... .......... . . . . . . . . . . . . . . . . . . . . . . . . . . ............ .......................... .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . ...... ........... ................ ..... . ... ..... ................ ..... ... ................................ ... ..... .. ....... ..... ..... .... . ... . . . . . ... ... ... ...................... ..... ... ..... ........... ..... ..... ..... ........... ......................... .......... ..... ........... ..... ..... ........... . . ..... . . ........... ..... ..... ............... ..... .. ............... ..... ..... ........... ..... ..... ..................... ........... . ..... ..... .... ................. ........ ..... . . . . ..... .. ... ....................... ..... ......... ... .......... ... . . ......... . . .. . . . . ... ..... .. .... . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... .. ............. ...... . . .... . . . . . . . . . . . . . . . . . . . . . ..... ..................... ... ........... ..... ..... ..... ..................... ..... ...... ..... ................... ..... ..... ........... ..... . . . . . . . . . . . . . . ..... ... ........................ ......... ..... ........... ..... ..... ...... ........... ..... ... ... ..................... ..... ........ ... ..... .... ..... ...... ..... . ... . . . . . . . . . . . . ................ ..... ... .. . ..... . . . . . . . . . . ................ ..... ..... . ................ ......................... .. ................ ..................... ............................ ................ ..... ... ................ ... ....................... ..... . . ... ................. ... . .. ... ... ... . . . ..... .........................
-8
8 (15)
14
0
15
5 (7)
Tentokr´at jiˇz v cel´e s´ıti existuj´ı potenci´aly, vyhovuj´ıc´ı na vˇsech hran´ach. T´ım je uk´az´ano, ˇze dan´ y tok (tj. pl´an rozvozu betonu) je optim´aln´ı.
1 (18)
-5
0 (6)
7
0 (3)
6
10
6 (8)
-7
18
32
2.3
Dvouf´ azov´ a metoda
Zb´ yv´ a n´ am odpvˇedˇet na ot´ azku, jak nal´ezt v´ ychoz´ı PBR, tj. jak nal´ezt nˇejak´e nez´aporn´e ˇreˇsen´ı soustavy Ax = b. Metodu ˇreˇsen´ı si uk´ aˇzeme na n´ asleduj´ıc´ım pˇr´ıkladu. Pˇ r´ıklad.
Hled´ ame nez´ aporn´e ˇreˇsen´ı soustavy
x1 − x3 + 4x4 = 3 2x1 − x2 = 3 3x1 − 2x2 − x4 = 1 Napiˇsme si pomocnou u ´lohu s umˇel´ymi promˇenn´ymi y1 , y2 , y3 : x1 2x1 3x1
−x3 −x2 −2x2
+4x4
+y1 +y2
−x4
+y3
=3 =3 =1
a ˇreˇsme u ´lohu min y1 + y2 + y3 , xi ≥ 0, yi ≥ 0 (tj. v t´eto pomocn´e u ´loze maj´ı promˇenn´e xi nulovou cenu, promˇenn´e yi maj´ı cenu 1). Jak je patrn´e, v´ ychoz´ı b´azi nemus´ıme hledat, je jiˇz sloˇzena ze sloupc˚ u umˇel´ ych promˇenn´ ych. Tato pomocn´ au ´loha - urˇcitˇe m´ a PBR: x = [0, 0, 0, 0, 3, 3, 1]T , takˇze nemus´ıme hledat v´ ychoz´ı PBR; - p˚ uvodn´ı soustava m´ a nez´ aporn´e ˇreˇsen´ı pr´avˇe kdyˇz pomocn´a u ´loha m´a optim´aln´ı ˇreˇsen´ı, pro nˇeˇz plat´ı yi = 0, i = 1, 2, 3. T´ımto obecnˇe z´ısk´ ame tzv. dvouf´ azovou metodu ˇreˇsen´ı u ´lohy line´arn´ıho programov´an´ı ve standardn´ım tvaru: min cT x Ax = b xi ≥ 0. 1. f´ aze. Zavedeme umˇel´e promˇenn´e y = [y1 , . . . , ym ]T , oznaˇc´ıme o nulov´ y vektor z prostoru Rn , a ˇ s´ıme pomocnou u v = [1, 1, . . . , 1]T ∈ Rm . Reˇ ´lohu h i min oT | vT yx h i [A | I] yx = b h i x y ≥0 Tato u ´loha m´ a urˇcitˇe PBR, um´ıme ji tedy ˇreˇsit. D´ale plat´ı n´asleduj´ıc´ı tvrzen´ı. Tvrzen´ı 2.3. P˚ uvodn´ı u ´loha m´ a PBR pr´avˇe kdyˇz pomocn´a u ´loha m´a optim´aln´ı ˇreˇsen´ı, kter´e splˇ nuje podm´ınku y1 = . . . = ym = 0. h i Z tohoto optim´ aln´ıho ˇreˇsen´ı xy je pak ˇc´ast x v´ ychoz´ım PBR pro ˇreˇsen´ı p˚ uvodn´ı u ´lohy. 2. f´ aze. S takto nalezen´ ym v´ ychoz´ım PBR x ˇreˇs´ıme p˚ uvodn´ı u ´lohu simplexov´ ym algoritmem. Pozn´ amka. Pokud p˚ uvodn´ı u ´loha je v kanonick´em tvaru, tak se hled´an´ı PBR d´a ponˇekud zjednoduˇsit (viz napˇr. [12], odst. 4.8).
33
Pˇ r´ıklad.
Mˇejme u ´lohu ve standardn´ım tvaru
min 2x1 + 4x2 + x3 + x4 + 2x5 x1 + 2x2 − x3 + x4 + 2x5 = 8 2x1 + x2 + x4 + 2x5 = 12 x1 + x2 + 2x3 − x5 = 4 xi ≥ 0, i = 1 . . . 5 Sestav´ıme n´ asleduj´ıc´ı tabulku: -2 1 2 1
-4 2 1 1
-1 -1 0 2
-1 1 1 0
-2 2 2 -1
V tomto pˇr´ıpadˇe neum´ıme na prvn´ı pohled uh´adnout v´ ychoz´ı PBR. S t´ımto se jiˇz ale um´ıme vyrovnat, pouˇzijeme tedy dvouf´azovou metodu. Sestav´ıme tabulku s umˇel´ ymi promˇenn´ ymi a nov´ ymi cenami.
0 8 12 4
0 1 2 1
0 2 1 1
0 -1 0 2
0 1 1 0
0 2 2 -1
-1 1 0 0
-1 0 1 0
4 1 2 1
4 2 1 1
1 -1 0 2
2 1 1 0
3 2 2 -1
0 1 0 0
0 0 1 0
T2 0 0 0 1
-1 0 0 1 0 0 0 1
Jordanova eliminace v matici popsan´e tabulkou nen´ı potˇrebn´a, je vˇsak nutno vynulovat relativn´ı ceny bazick´ ych promˇenn´ ych (umˇel´ ych). T´ım z´ısk´ame simplexovou tabulku T1
0 8 12 4
Nalezen´e ˇreˇsen´ı zˇrejmˇe nen´ı optim´aln´ı, tuˇcnˇe vyznaˇcen´ y prvek je vedouc´ım prvkem pro n´asleduj´ıc´ı Jordanovu eliminaci. Tento postup budeme opakovat aˇz do t´e doby, neˇz nalezneme optim´aln´ı ˇreˇsen´ı t´eto pomocn´e u ´lohy. N´asleduj´ıc´ı tabulky T2 . . . T4 ukazuj´ı tyto jednotliv´e kroky.
24 8 12 4
T3 :
: 0 1 -1 1
-7 -3 -4 2
2 1 1 0
7 3 4 -1
0 1 0 0
0 0 1 0
-4 -1 -2 1
8 4 4 4
T4 : 0 0
0
0
0
-1
-1
-1
0
0
1
0
1 7
0
4 7
− 37
2 7
4 7
0
0
-1
2 7
1
1 7
1 7
− 37
8 7
1
0
1
1 7
0
− 37
4 7
2 7
32 7
0
7 4
0
1 4
0
0
− 74
− 12
1
0
7 4
0
1 4
0
1
− 34
1 2
1
0
− 14
-1
1 4
1
0
1 4
− 12
1
1
3 4
1
1 4
0
0
1 4
1 2
5
Relativn´ı ceny vˇsech nebazick´ ych promˇenn´ ych jsou nyn´ı z´aporn´e, m´ame tedy optim´aln´ı ˇreˇsen´ı pomocn´e u ´lohy a z´aroveˇ n v´ ychoz´ı PBR 4 8 T p˚ uvodn´ı u ´lohy x0 = [ 32 , , 0, 0, 7 7 7 ] . Pokud by se v optimu vyskytla v b´azi nˇejak´a umˇel´ a promˇenn´a, znamenalo by to, ˇze p˚ uvodn´ı u ´loha nem´a ˇz´adn´e PBR.
Ve druh´e f´ azi pouˇzijeme toto PBR jako v´ ychoz´ı v p˚ uvodn´ı u ´loze. Nejprve prohod´ıme vhodnˇe ˇr´adky a z´ısk´ ame v´ ychoz´ı tabulku druh´e f´ aze T0 : 34
-2
-4
-1
-1
-2
0
1
0
1
1 7
0
32 7
0
1
0
1 7
0
4 7
0
0
-1
2 7
1
8 7
0
0
-1
3 7
0
96 7
1
0
1
1 7
0
32 7
0
1
0
1 7
0
4 7
0
0
-1
2 7
1
8 7
0 1 0 0
-3 -1 7 -2
0 0 1 0
0 0 0 1
12 4 4 0
-1 1 0 -1
Je tˇreba vynulovat relativn´ı ceny u bazick´ ych promˇenn´ ych. V´ ysledek je uveden v n´asleduj´ıc´ı simplexov´e tabulce T1 .
Jiˇz v t´eto f´azi ˇreˇsen´ı pˇr´ıkladu si m˚ uˇzeme povˇsimnout podivn´e vˇeci, kterou je nejednoznaˇcnost pˇri pouˇzit´ı pravidla 2. Pro 2. a 3. ˇr´adek m´a v´ yraz a˜xisi stejnou hodnotu. Pokraˇcujme d´ale v ˇreˇsen´ı, tedy opˇet Jordanovou eliminac´ı, a z´ısk´ame tabulku T2 :
Nalezli jsme optim´aln´ı ˇreˇsen´ı, nebot’ relativn´ı ceny nebazick´ ych promˇenn´ ych jsou z´aporn´e. ˇ sen´ı je x = [4, 0, 0, 4, 0]T . Z hlediska pouˇzit´ı Reˇ dvouf´azov´e metody je pˇr´ıklad hotov.
Je vˇsak podivn´e, ˇze nalezen´e ˇreˇsen´ı, aˇc je pˇr´ıpustn´e i bazick´e, m´a jen dvˇe nenulov´e sloˇzky. To je d˚ usledkem toho, ˇze v p˚ uvodn´ı soustavˇe je vektor prav´ ych stran line´arn´ı kombinac´ı m´enˇe neˇz m sloupc˚ u matice ˇ ıslo m n´am pˇritom ud´av´a poˇcet line´arnˇe nez´avisl´ podm´ınek (konkr´etnˇe zde plat´ı 4a1 + 4a4 = b). C´ ych podm´ınek. Takov´ a u ´loha se naz´ yv´ a degenerovan´ a. Uveden´a situace se v u ´loh´ach z praxe“ vyskytuje ” pomˇernˇe zˇr´ıdka, ale pokud nastane, mohou b´ yt probl´emy s koneˇcnost´ı simplexov´eho algoritmu.
2.4
Degenerovan´ eu ´ lohy a zacyklen´ı
Definice 2.3. Pˇr´ıpustn´e bazick´e ˇreˇsen´ı x se naz´ yv´a nedegenerovan´e, pokud je kaˇzd´a bazick´a sloˇzka tohoto ˇreˇsen´ı nenulov´ a. V opaˇcn´em pˇr´ıpadˇe ˇr´ık´ame, ˇze PBR je degenerovan´e. ´ Uloha LP se naz´ yv´ a degenerovan´ a, pokud m´a aspoˇ n jedno degenerovan´e PBR, jinak se tato u ´loha naz´ yv´ a nedegenerovan´ a. Vˇ eta 2.3.
Pro nedegenerovan´e u ´lohy je z´akladn´ı simplexov´ y algoritmus koneˇcn´ y.
D˚ ukaz. Intuitivnˇe - staˇc´ı si uvˇedomit, ˇze u nedegenerovan´ ych u ´loh jsou relativn´ı ceny ostˇre vˇetˇs´ı neˇz nula, takˇze celkov´ a cena po kaˇzd´em proveden´em iteraˇcn´ım kroku klesne. Pro koneˇcn´ y poˇcet promˇenn´ ych je tedy tato metoda koneˇcn´ a. 2 Pozn´ amka.
´ Uloha poznat, zda dan´ au ´loha je degenerovan´a, je NP-tˇeˇzk´a.
35
Pˇ r´ıklad.
Mˇejme d´ anu n´ asleduj´ıc´ı u ´lohu.
min 5x1 − 4x2 − 7x3 − 2x4 x1 + 3x2 + 3x3 − 2x4 ≤ 1 −x1 + 3x3 − x4 ≤ 2 2x1 + 4x2 + 2x3 − 2x4 ≤ 0 xi ≥ 0 D´ıky pomocn´ ym promˇenn´ ym, kter´e je nutno zav´est pˇri pˇrevodu u ´lohy v kanonick´em tvaru na u ´lohu ve standardn´ım tvaru, m´ ame v´ ychoz´ı PBR a to i s nulov´ ymi cenami bazick´ ych promˇenn´ ych. Tabulku zap´ıˇseme do n´ asleduj´ıc´ı podoby: -5 1 -1 2
4 3 0 4
− 22 3
7 3 3 2
-3
2 -2 -1 -2
0
0 1 0 0
0 0 1 0
20 3
0 0 0 1
− 73
Ve vektoru prav´ ych stran se objevila nula. Jedn´a se tedy o degenerovanou u ´lohu. Nen´ı to optim´aln´ı ˇreˇsen´ı, podle pravidla 2 jsme vybrali za vedouc´ı prvek n´asleduj´ıc´ı Jordanovy eliminace tuˇcnˇe vyznaˇcen´ y prvek.
0 1 2 0
0
− 73
0
1 3
1
1
− 23
1 3
0
0
1 3
-2
-3
0
1
-1
1
0
1
4 3
2
0
− 23
− 32
0
1
− 23
Z´ıskali jsme ˇreˇsen´ı, kter´e nen´ı pˇr´ıpustn´e, nebot’ jedna jeho sloˇzka je z´aporn´a. Kde je chyba?
Probl´em je v tom, ˇze Pravidlo 2 (pro v´ ybˇer ˇr´adku – tj. pravidlo vyber ˇr´adek, v nˇemˇz je v´ yraz axisi ” minim´ aln´ı kladn´ y“) plat´ı v t´eto podobˇe pouze pro nedegenerovan´e u ´lohy. Obecn´e pravidlo 2 zn´ı takto. PRAVIDLO 2’. oVedouc´ı ˇr´ adek n´ asledn´e Jordanovy eliminace je ten, pro nˇejˇz se nab´ yv´a minimum n xi ˜is > 0 . min a˜is | a Pro nedegenerovan´e u ´lohy je xi > 0 vˇzdy, v´ ysledek je tedy stejn´ y. V tabulce 1 je tedy tˇreba vz´ıt jako vedouc´ı posledn´ı ˇr´ adek. Jordanovou eliminac´ı pak z´ısk´ame tabulku T2 : -12
-10
0
9
0
0
− 72
0
-2
-3
0
1
1
0
− 32
1
-4
-6
0
2
0
1
− 32
2
1
2
1
-1
0
0
1 2
0
Z´ıskali jsme ˇreˇsen´ı, kter´e je pˇr´ıpustn´e. Srovn´ an´ım s pˇredchoz´ım PBR zjist´ıme, ˇze je stejn´e, dokonce je i stejn´a cena. Nejedn´a se vˇsak o optimum, existuj´ı kladn´e relativn´ı ceny nˇekter´ ych nebazick´ ych promˇenn´ ych. Pravidlo 2 n´am rovnˇeˇz uk´aˇze nejednoznaˇcnost pˇri v´ ybˇeru promˇenn´e, kterou z b´aze vyjmeme, jedn´a se o prvn´ı a druh´ y ˇr´adek. Tuˇcnˇe vyznaˇcen´ y prvek je vedouc´ım prvkem n´asledn´e Jordanovy eliminace. T´ım z´ısk´ame tabulku T3 :
36
6
17
0
0
-9
0
10
-9
-2
-3
0
1
1
0
− 32
1
0
0
0
0
-2
1
3 2
0
-1
-1
1
0
1
0
-1
1
Z´ıskali jsme nov´e PBR, kter´e opˇet nen´ı optim´aln´ı. Probl´em je, kterou bazickou promˇennou z b´aze vyjmout. S t´ımto jsme se jiˇz setkali, a tedy v´ıme, ˇze takov´a u ´loha nem´a omezenou cenovou funkci, tud´ıˇz nem´a optim´aln´ı ˇreˇsen´ı.
Pozn´ amka. D˚ uleˇzit´ ym poznatkem je skuteˇcnost, ˇze v degenerovan´ ych u ´loh´ach nen´ı zaruˇceno, ˇze se v kaˇzd´e iteraci cena ˇreˇsen´ı sn´ıˇz´ı, a tedy nen´ı zaruˇcena koneˇcnost simplexov´eho algoritmu. Pˇ r´ıklad. V pˇr´ıkladech se n´ am jiˇz stalo, ˇze jsme mohli pˇridat do b´aze v´ıce neˇz jedinou promˇennou; tuto nejednoznaˇcnost jsme ˇreˇsili pˇrid´ an´ım t´e promˇenn´e, kter´a m´a nejvyˇsˇs´ı relativn´ı cenu (protoˇze t´ım cenov´ a funkce klesne nejv´ yraznˇeji). Nejednoznaˇcnost v pravidle 2, (tj. kterou promˇennou m´ame z b´aze odstranit), je moˇzno obej´ıt dohodou, podle n´ıˇz vezmeme jako vedouc´ı ˇr´adek n´asledn´e eliminace ten, kter´ y je v matici nejv´ yˇse z tˇech, kter´e pˇripadaj´ı v u ´vahu. S touto dohodou si uk´ aˇzeme pˇr´ıklad degenerovan´e u ´lohy, kter´a se zacykluje (pˇr´ıklad je pˇrevzat z knihy [12]). 2 3 -1 -12 0 0 0 -2 -9 1 9 1 0 0 1/3 1 -1/3 -2 0 1 0 1 1 1/3
0 0 1
0 1 0
0 0 1
0 1 0
-3 9 1
0 -2 -1/3 2 -2 1/3 1 1 1/3
-1 1 -1/3
-12 9 -2
0 -2 -1/3
-6 -9 -2
2 -2 1/3
3 -9 1
-6 -9 -2
0 1 0
-3 9 1
3 -9 1
-1 1 -1/3
-12 9 -2
0 0 1
0 -2 -1/3
-6 -9 -2
0 1 0 0 1 0 -1 1 -1/3
0 0 1
2 -2 1/3
3 -9 1
-3 9 1
1 1 1/3
0 0 1
-12 9 -2
0 1 0
0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Vid´ıme, ˇze po ˇsesti iterac´ıch jsme se vr´ atili k p˚ uvodn´ı tabulce. Pohybujeme se tedy v cyklu d´elky 6. Sestrojen´ı podobn´ ych pˇr´ıklad˚ u nen´ı v˚ ubec snadn´e. Obecnˇe je napˇr´ıklad dok´az´ano, ˇze 6 je nejmenˇs´ı moˇzn´ a d´elka cyklu pˇri cyklen´ı simplexov´eho algoritmu. Pro ˇreˇsen´ı degenerovan´ ych u ´loh bylo vyvinuto nˇekolik metod, zn´am´ ych jako anticyklick´e metody. Uvedeme si nˇekolik pˇr´ıklad˚ u.
37
1. Nejjednoduˇsˇs´ı je tzv. perturbaˇcn´ı metoda. Jej´ı myˇslenka je velmi jednoduch´a: malou zmˇenou parametr˚ uu ´lohy dos´ ahneme toho, ˇze prav´a strana soustavy pˇrestane b´ yt line´arn´ı kombinac´ı m´enˇe neˇz m sloupc˚ u matice A, tj. u ´loha pˇrestane b´ yt degenerovan´a. 2. Lexikografick´ a metoda spoˇc´ıv´ a v tom, ˇze sloupec promˇenn´e, kterou pˇrid´av´ame do b´aze, se vybere podle nejvyˇsˇs´ı relativn´ı ceny, a v pˇr´ıpadˇe nejednoznaˇcnosti volby ˇr´adku hled´ame nejmenˇs´ı k, pro a 6= a˜jk , a vol´ıme ten ˇr´adek, v nˇemˇz je tento pod´ıl nejmenˇs´ı. kter´e v nˇekter´ ych ˇr´ adc´ıch i, j plat´ı aa˜ik is js 3. Metoda nejmenˇs´ıch index˚ u je zaloˇzena na tom, ˇze sloupce i ˇr´adky vyb´ır´ame s co nejmenˇs´ımi indexy, tedy co nejbl´ıˇze lev´emu horn´ımu rohu. Pro vˇsechny tyto metody existuj´ı vˇety, kter´e ˇr´ıkaj´ı, ˇze s pouˇzit´ım tˇechto speci´aln´ıch strategi´ı v´ ybˇeru vedouc´ıho sloupce a ˇr´ adku se simplexov´ y algoritmus nezacykl´ı. Pˇ r´ıklad. Na z´ avˇer tohoto odstavce si uvedeme pˇr´ıklad degenerovan´e u ´lohy, pˇri jej´ımˇz ˇreˇsen´ı probl´emy nenastanou. Mˇejme d´ anu u ´lohu popsanou n´asleduj´ıc´ı tabulkou T0 : -2 1 -1 1
-1 1 2 -1
0 1 0 0
0 0 1 0
3 1 2 0
-1 3 0 1
4 2 1 0
-1 1 2 1
0 0 0 1
M´ame PBR x = [2, 2, 0, 0, 0]T . Nejedn´a se o optim´aln´ı PBR, vedouc´ı prvek pro dalˇs´ı Jordanovu eliminaci je opˇet vyznaˇcen tuˇcnˇe. Z´ısk´ame tak simplexovou tabulku T2 :
6 2 2 0
0
1
0
0
2
1 2
0
1 2
1
0
1
− 21
1
3 2
0
0
1
0
0
0
0
1
0
− 13
0
0
V´ ychoz´ı PBR nalezneme napˇr. pˇr´ımo Jordanovou eliminac´ı, j´ıˇz nahrad´ıme 1. f´azi dvouf´azov´e metody. Po n´asledn´em vynulov´an´ı relativn´ıch cen vˇsech bazick´ ych promˇenn´ ych z´ısk´ame simplexovou tabulku T1
0 4 2 0
-2
− 35
2.5
-1 3 3 -1
0
Ani v tomto pˇr´ıpadˇe nen´ı vypoˇcten´e PBR optim´aln´ı. Opˇet provedeme Jordanovu eliminaci a z´ısk´ame tabulku T3 ve tvaru
4 3
2 3
− 13
0
1
0
2 3
− 31
1 3
1
0
0
2 3
0
0
0
0
1
0
Toto ˇreˇsen´ı optim´aln´ı je. Jeho cena je rovna 43 , v´ ysledn´e ˇreˇsen´ı je ve tvaru x = [0, 0, 32 , 23 , 0]T .
V´ ypoˇ cetn´ı sloˇ zitost simplexov´ eho algoritmu a u ´ lohy line´ arn´ıho programov´ an´ı
Simplexov´ y algoritmus je v praxi velmi ˇcasto pouˇz´ıv´an a v u ´loh´ach ze ˇzivota“ d´av´a velmi dobr´e v´ ysledky. ” Numerick´e experimenty ukazuj´ı, ˇze na ˇreˇsen´ı u ´lohy LP s m omezuj´ıc´ımi podm´ınkami (tj. s m ˇr´adky ma38
tice A) zpravidla v pr˚ umˇeru staˇc´ı m simplexov´ ych iterac´ı. Simplexov´ y algoritmus b´ yv´a proto praktick´ ymi uˇzivateli povaˇzov´ an za velice rychl´ y. Pˇresto se ale nedaˇrilo dok´azat jeho polynomialitu. V r. 1972 se pˇrekvapivˇe podaˇrilo uk´ azat, ˇze pro speci´alnˇe zkonstruovan´e patologick´e“ u ´lohy m˚ uˇze ” poˇcet iterac´ı z´ akladn´ı verze algoritmu r˚ ust exponenci´alnˇe s rozmˇerem u ´lohy. Simplexov´ y algoritmus se tedy v nejhorˇs´ım pˇr´ıpadˇe chov´ a exponenci´ alnˇe. Simplexov´ y algoritmus m´a vˇsak mnoho verz´ı, dan´ ych r˚ uzn´ ymi strategiemi v´ ybˇeru vedouc´ıho sloupce a ˇr´ adku v pˇr´ıpadech, kdy tato volba nen´ı jednoznaˇcn´a. Postupnˇe se podaˇrilo sestrojit podobn´e pˇr´ıklady pro dalˇs´ı zn´am´e verze simplexov´eho algoritmu. V souˇcasn´e dobˇe jsou pro vˇsechny zn´ am´e verze simplexov´eho algoritmu sestrojeny pˇr´ıklady, ukazuj´ıc´ı, ˇze v nejhorˇs´ım pˇr´ıpadˇe se chovaj´ı exponeci´ alnˇe, ale nen´ı zn´ amo, zda pro simplexov´ y algoritmus existuje jeho polynomi´aln´ı verze. Z tohoto hlediska je simplexov´ y algoritmus v´ yjimkou mezi nepolynomi´aln´ımi algoritmy – aˇckoliv jeho chov´ an´ı je v nejhorˇs´ım pˇr´ıpadˇe exponenci´ aln´ı, v pr˚ umˇeru“ je algoritmus velice rychl´ y. ” Ot´ azku polynomiality u ´lohy LP zodpovˇedˇel kladnˇe v r. 1979 L.G. Chaˇcijan, kter´ y publikoval tzv. elipsoidov´y algoritmus. Tento algoritmus je sice v pr˚ umˇeru podstatnˇe pomalejˇs´ı neˇz simplexov´ y, ale podstatn´e je, ˇze i v nejhorˇs´ım pˇr´ıpadˇe je poˇcet iterac´ı polynomi´aln´ı funkc´ı rozmˇeru u ´lohy 1 . Elipsoidov´ y algoritmus tedy teoreticky dokazuje polynomialitu u ´lohy LP. Pro praktick´e pouˇzit´ı vˇsak z˚ ust´av´a simplexov´ y algoritmus nad´ ale v´ yhodnˇejˇs´ı.
3 3.1
Dualita u ´ loh line´ arn´ıho programov´ an´ı Prim´ arn´ı a du´ aln´ı u ´ loha line´ arn´ıho programov´ an´ı
Uvaˇzujme u ´lohu LP v kanonick´em tvaru, tedy u ´lohu min cT x Ax ≥ b xi ≥ 0
(1)
Tuto (v´ ychoz´ı) u ´lohu budeme naz´ yvat prim´ arn´ı u ´lohou line´arn´ıho programov´an´ı (t´eˇz se nˇekdy ˇr´ık´a pˇr´ım´ a u ´loha). Zkusme nyn´ı upravovat podm´ınku Ax ≥ b. O matici A v´ıme, ˇze je typu m/n, vektor b m´a m sloˇzek. Vezmeme-li nyn´ı nˇejak´ y vektor y ∈ Rm s nez´aporn´ ymi sloˇzkami a vyn´asobme j´ım zleva uvedenou nerovnost, bude platit yT b ≤ yT (Ax). O operaci n´ asoben´ı matic v´ıme, ˇze je asociativn´ı, plat´ı tedy d´ale yT b ≤ yT (Ax) = yT Ax = (AT y)T x. Tato nerovnost mus´ı platit pro libovoln´ y vektor y ∈ Rm s nez´aporn´ ymi sloˇzkami. Kdybychom naˇsli y takov´ y, pro kter´ y by byla splnˇena podm´ınka AT y ≤ c, mˇeli bychom celkem bT y = yT b ≤ yT (Ax) = yT Ax = (AT y)T x ≤ cT x. Speci´ alnˇe tedy plat´ı bT y = yT b ≤ cT x. To znamen´ a, ˇze v´ yraz na lev´e stranˇe je doln´ım odhadem cenov´e funkce cT x (kterou minimalizujeme). Vˇsimnˇeme si d´ ale toho, ˇze nerovnost je splnˇena pro libovolnou levou stranu. N´as pochopitelnˇe zaj´ım´ a 1 Pˇ resnˇ eji: je polynomi´ aln´ı funkc´ı rozmˇ eru vstupn´ıch dat pˇri jejich bin´ arn´ım k´ odov´ an´ı. Ot´ azka existence polynomi´ aln´ıho algoritmu pˇri aritmetick´ em k´ odov´ an´ı vstupn´ıch dat z˚ ust´ av´ a otevˇren´ a.
39
nejlepˇs´ı doln´ı odhad cenov´e funkce, a ten je roven maxim´aln´ı hodnotˇe v´ yrazu bT y na lev´e stranˇe. Nejlepˇs´ı doln´ı odhad tedy dostaneme nalezen´ım n´ asleduj´ıc´ıho maxima: max bT y AT y ≤ c yi ≥ 0
(2)
To je opˇet u ´loha line´ arn´ıho programov´ an´ı; naz´ yv´a se du´ aln´ı u ´loha k p˚ uvodn´ı (prim´arn´ı) u ´loze (1). Lze snadno uk´ azat, ˇze du´ aln´ı u ´loha k du´aln´ı u ´loze (2) je p˚ uvodn´ı u ´loha (1). Postupovali bychom stejn´ ym postupem, pouze by se obr´ atily nerovnosti a m´ısto nejvyˇsˇs´ıho doln´ıho odhadu bychom hledali nejniˇzˇs´ı horn´ı odhad. Proto ˇr´ık´ ame, ˇze u ´lohy (1) a (2) tvoˇr´ı dvojici vz´ ajemnˇe du´ aln´ıch u ´loh. Prim´ arn´ı u ´loha (1)
Du´ aln´ı u ´loha (2)
T
max bT y AT y ≤ c yi ≥ 0
min c x Ax ≥ b xi ≥ 0
3.2
Vˇ ety o dualitˇ e
Uveden´e u ´vahy shrneme do n´ asleduj´ıc´ı vˇety, naz´ yvan´e slab´ a vˇeta o dualitˇe. Jej´ı d˚ ukaz byl vlastnˇe jiˇz uk´ az´ an postupem, j´ımˇz jsme z prim´ arn´ı u ´lohy odvodili u ´lohu du´aln´ı. Vˇ eta 3.1. (Slab´ a vˇ eta o dualitˇ e) Pro kaˇzd´e pˇr´ıpustn´e ˇreˇsen´ı x prim´arn´ı u ´lohy (1) a pro kaˇzd´e ˇreˇsen´ı y du´ aln´ı u ´lohy (2) plat´ı bT y ≤ cT x. Oznaˇcme X (resp. Y) mnoˇzinu vˇsech pˇr´ıpustn´ ych ˇreˇsen´ı prim´arn´ı (resp. du´aln´ı) u ´lohy, tj. X = { x | Ax ≥ b, xi ≥ 0 } , Y = y | AT y ≤ c, yi ≥ 0 . Ze slab´e vˇety o dualitˇe nyn´ı dostaneme n´ asleduj´ıc´ı d˚ usledky. D˚ usledek 3.1. T
Plat´ı-li pro x0 ∈ X a y0 ∈ Y rovnost T
b y0 = c x0 , pak jsou vektory x0 a y0 optim´ aln´ımi ˇreˇsen´ımi u ´loh (1) a (2). D˚ usledek 3.2.
Je-li X 6= ∅ a je-li cenov´ a funkce cT x zdola neomezen´a na X, pak je Y = ∅.
D˚ usledek 3.3.
Je-li mnoˇzina Y 6= ∅ a je-li funkce bT y shora neomezen´a na Y, pak je X = ∅.
Z prvn´ıho d˚ usledku plyne, ˇze rovnost bT y = cT x je postaˇcuj´ıc´ı podm´ınkou pro optimalitu. Ot´azkou vˇsak z˚ ust´ av´ a, zda-li je tato podm´ınka nutn´a. D´a se dok´azat, ˇze ano. Vˇ eta 3.2. (Siln´ a vˇ eta o dualitˇ e) bT y = cT x.
Vektory x ∈ X a y ∈ Y jsou optim´aln´ı, pr´avˇe kdyˇz plat´ı rovnost
D˚ ukaz. Je pomˇernˇe n´ aroˇcn´ y, proto jej nebudeme uv´adˇet.
2
D˚ usledek 3.4. Maj´ı-li obˇe u ´lohy alespoˇ n jedno pˇr´ıpustn´e ˇreˇsen´ı, pak obˇe u ´lohy maj´ı optim´aln´ı ˇreˇsen´ı x0 , resp. y0 a plat´ı pro nˇe rovnost bT y0 = cT x0 .
40
Nyn´ı si uk´ aˇzeme dvojice du´ aln´ıch u ´loh v nˇekter´ ych jin´ ych pˇr´ıpadech. 1. Du´ aln´ı u ´loha k prim´ arn´ı u ´loze ve standardn´ım tvaru. Vyjdeme z prim´arn´ı u ´lohy min cT x Ax = b xi ≥ 0 Postupujme obdobnˇe jako v pˇr´ıpadˇe u ´lohy v kanonick´em tvaru, tj. vztah Ax = b n´asob´ıme vektorem y a upravujme. Plat´ı Ax = b ⇒ yT Ax = yT b = bT y. Zde je ale v´ yznamn´ y rozd´ıl oproti u ´loze v kanonick´em tvaru. Tam jsme museli pˇredpokl´adat, ˇze y je (libovoln´ y) vektor s nez´ aporn´ ymi sloˇzkami (jinak by se n´am mohlo zmˇenit znam´enko nerovnosti v opaˇcn´e). Zde ale m´ ame rovnost, a tedy y m˚ uˇze b´ yt libovoln´ y vektor z Rm . M´ ame tedy vztah bT y = yT Ax = (AT y)T x. Pokud bude platit AT y ≤ c, bude d´ ale (s vyuˇzit´ım nez´apornosti vˇsech sloˇzek vektoru x) bT y = yT Ax = (AT y)T x ≤ cT x, ˇc´ımˇz jsme opˇet z´ıskali vztah bT y ≤ cT x. Zapiˇsme tedy obˇe u ´lohy - prim´arn´ı i du´aln´ı, kde prim´arn´ı u ´lohou je u ´loha ve standardn´ım tvaru. Prim´ arn´ı u ´loha min cT x Ax = b xi ≥ 0
Du´ aln´ı u ´loha max bT y AT y ≤ c y ∈ Rm
2. Podobnˇe bychom nalezli i du´ aln´ı u ´lohu k prim´arn´ı u ´loze ve standardn´ım tvaru, ale s maximalizac´ı ceny: max cT x Ax = b xi ≥ 0 Analogicky jako v minul´em pˇr´ıpadˇe se odvod´ı, ˇze du´aln´ı u ´loha m´a v tomto pˇr´ıpadˇe tvar min bT y AT y ≥ c y ∈ Rm Pˇ r´ıklad. Ukaˇzme si na pˇr´ıkladu u ´lohy o dietˇe tvar a praktickou interpretaci du´aln´ı u ´lohy. ˇ sili jsme u Pˇripomeˇ nme si nejprve u ´lohu o dietˇe. Reˇ ´lohu min cT x Ax ≥ b xi ≥ 0, kde ci byly jednotkov´e ceny jednotliv´ ych potravin, aij obsah i-t´eho vitaminu v jednotce j-t´e potraviny, bj minim´ aln´ı poˇzadovan´e mnoˇzstv´ı j-t´eho vitam´ınu ve smˇesi. Jak bylo uvedeno, du´aln´ı u ´loha k t´eto u ´loze m´ a tvar max bT y AT y ≤ c yi ≥ 0.
41
Tato du´ aln´ı u ´loha m´ a velmi pˇr´ımou praktickou interpretaci. V´ yrobce chce d´at na trh tablety se syntetick´ ymi vitam´ıny a nahradit jimi re´ alnou stravu, pˇriˇcemˇz hled´a maxim´aln´ı ceny, pˇri nichˇz je schopen konkurovat re´ aln´e stravˇe. Zde yi je hledan´a cena jednotky i-t´eho syntetick´eho vitam´ınu, v´ yraz bT y je T celkov´ a cena, kterou v´ yrobce obrˇz´ı, kdyˇz pokryje popt´avku, a nerovnost A y ≤ c garantuje konkurenceschopnost, protoˇze ˇr´ık´ a, ˇze dod´ avan´e vit´ am´ıny nesm´ı b´ yt draˇzˇs´ı neˇz vitam´ıny v re´aln´e stravˇe. Podle t´eto interpretace se du´ aln´ım promˇenn´ ym v ekonomick´ ych aplikac´ıch ˇr´ık´a st´ınov´e ceny.
3.3
Dobr´ e charakteristiky
V tomto odstavci si v ponˇekud jin´em svˇetle uk´aˇzeme v´ yznam duality u ´loh LP. Nejprve ale zaˇcnˇeme prohlouben´ım poznatk˚ u z posledn´ıch dvou kapitol pˇredmˇetu TGD1. Zn´ ame pojem jazyka tˇr´ıdy NP. Jazyk J patˇr´ı do tˇr´ıdy NP, jestliˇze existuje nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc, kter´ y pracuje v polynomi´ alnˇe omezen´em ˇcase a pˇrij´ım´a jazyk J. Pojem abstraktn´ıho poˇc´ıtaˇce je zde modelem algoritmu pro ˇreˇsen´ı konkr´etn´ıho probl´emu – na ponˇekud intuitivnˇejˇs´ı u ´rovni lze ˇr´ıci, ˇze rozhodovac´ı probl´em n´ aleˇz´ı do tˇr´ıdy NP, jestliˇze pro nˇej existuje algoritmus, kter´ y um´ı uhodnout“ ” (nedeterministiˇcnost) ˇreˇsen´ı, pˇriˇcemˇz: - moˇznost volby uhodnut´ ych“ (nedeterministicky zvolen´ ych) krok˚ u existuje, pr´avˇe kdyˇz odpovˇed’ ” na ot´ azku je kladn´ a, - kaˇzd´ y konkr´etn´ı v´ ypoˇcet probˇehne v polynomi´alnˇe omezen´em ˇcase. Definice 3.1.
Tˇr´ıda co-NP je tˇr´ıda vˇsech jazyk˚ u, jejichˇz doplnˇek n´aleˇz´ı do tˇr´ıdy NP.
Zhruba ˇreˇceno: probl´em je tˇr´ıdy co-NP, pr´ avˇe kdyˇz odpovˇed’ na opaˇcnou ot´azku n´aleˇz´ı do tˇr´ıdy NP. Tedy zcela samozˇrejmˇe do tˇr´ıdy co-NP napˇr´ıklad n´aleˇz´ı probl´em: HAM Vstup: neorientovan´ y graf G na n uzlech ´ Ukol: zjistit, zda G je nehamiltonovsk´ y. Analogicky lze ovˇsem naformulovat negace vˇsech zn´am´ ych u ´loh z tˇr´ıdy NP, a tyto (nˇekdy jazykovˇe dost kostrbat´e) probl´emy budou ze tˇr´ıdy co-NP. Existuj´ı ale i probl´emy, jejichˇz pˇr´ısluˇsnost do tˇr´ıdy co-NP je pˇrirozen´ a. Uvedeme dva pˇr´ıklady. 1. Prvoˇc´ıselnost. Ot´ azka, zda dan´e ˇc´ıslo je prvoˇc´ıslem, n´aleˇz´ı do co-NP, protoˇze k negativn´ı odpovˇedi postaˇc´ı napsat naˇse ˇc´ıslo jako souˇcin dvou ˇc´ısel. 2 ˇ 2. Tuhost grafu. Rekneme, ˇze neorientovan´ y graf G je tuh´y, jestliˇze pro kaˇzdou mnoˇzinu uzl˚ u S ⊂ U (G) je poˇcet komponent grafu G − S nejv´ yˇse roven poˇctu prvk˚ u mnoˇziny S. Pojem tuhosti grafu je d˚ uleˇzit´ y v teorii hamiltonovsk´ ych graf˚ u, protoˇze tuhost grafu je nutnou podm´ınkou jeho hamiltonovskosti (kaˇzd´ y hamiltonovsk´ y graf je tuh´ y). Probl´em rozhodnout, zda dan´ y graf G je tuh´ y, n´aleˇz´ı do co-NP, protoˇze k rozhodnut´ı, ˇze G nen´ı tuh´ y staˇc´ı uk´ azat mnoˇzinu S ⊂ U (G), pro niˇz m´a graf G − S v´ıce neˇz |S| komponent. ˇ Definice 3.2. Rekneme, ˇze jazyk J je dobˇre charakterizovan´ y, jestliˇze J ∈ NP ∩ co-NP. Vˇeta, kter´ a pro dan´ y jazyk J dokazuje jeho pˇr´ısluˇsnost do tˇr´ıdy NP ∩ co-NP, se naz´ yv´a dobr´a charakteristika. V t´eto podobˇe definice vypad´ a ponˇekud odtaˇzitˇe. Pojem dobr´e charakteristiky zavedl J. Edmonds jako popis toho, co intuitivnˇe ch´ apeme jako dobr´e pochopen´ı“ ˇci dobr´e porozumˇen´ı“ dan´eho probl´emu. ” ” Ukaˇzme si v´ yznam a smysl dobr´ ych charakteristik na dvou pˇr´ıkladech. 2 Probl´ em prvoˇ c´ıselnosti n´ aleˇ z´ı i do NP, ale d˚ ukaz tohoto faktu je znaˇ cnˇ e netrivi´ aln´ı. Poznamenejme jeˇstˇ e, ˇ ze v roce 2002 byl pro testov´ an´ı prvoˇ c´ıselnosti nalezen polynomi´ aln´ı algoritmus.
42
Pˇ r´ıklad. 1. Mengerova vˇeta. - Jestliˇze graf G je k-souvisl´ y mezi uzly u a v, m˚ uˇzeme toto (pˇri troˇse ˇstˇest´ı) dok´azat pozitivn´ım argumentem – nalezneme k uzlovˇe disjunktn´ıch cest, vedouc´ıch z u do v. (Tedy ot´azka Je G ” k-souvisl´ y?“ je v NP). - Jestliˇze graf G nen´ı k-souvisl´ y mezi u a v, m˚ uˇzeme toto dok´azat tak´e pozitivn´ım argumentem: (pˇri troˇse ˇstˇest´ı) nalezneme uzlov´ y ˇrez, oddˇeluj´ıc´ı u a v, maj´ıc´ı m´enˇe neˇz k prvk˚ u. (Tedy ot´azka Je G k-souvisl´ y?“ je v co-NP). ” Mengerova vˇeta tedy je dobr´ a charakteristika. 2. Hamiltonovskost grafu. - Jestliˇze G je hamiltonovsk´ y, m˚ uˇzeme to (pˇri troˇse ˇstˇest´ı) dok´azat tak, ˇze v G najdeme hamiltonovskou kruˇznici. Tedy ot´ azka Je G hamiltonovsk´ y?“ je v NP. ” - Jestliˇze ale G hamiltonovsk´ y nen´ı, jsme v konc´ıch, protoˇze nev´ıme, co hledat, abychom dok´azali neexistenci hamiltonovsk´e kruˇznice. Sch´az´ı n´am vˇeta, dokazuj´ıc´ı pˇr´ısluˇsnost k co-NP. Dobr´ a charakteristika nen´ı zn´ ama, jazyk HAM tedy nen´ı (dosud) dobˇre charakterizovan´ y. T´emˇeˇr samozˇrejm´e je n´ asleduj´ıc´ı tvrzen´ı. Vˇ eta 3.3. P ⊂ (NP ∩ co-NP) Historie ukazuje, ˇze velmi ˇcasto je nalezen´ı dobr´e charakteristiky pro dan´ y probl´em z´aroveˇ n z´asadn´ım krokem k nalezen´ı polynomi´ aln´ıho algoritmu. Zde je i hlavn´ı v´ yznam vˇety o dualitˇe line´ arn´ıho programov´ an´ı, protoˇze d´ av´ a dobrou charakteristiku u ´lohy LP. Uvaˇzujme n´asleduj´ıc´ı rozhodovac´ı probl´em: LP Vstup: u ´loha LP ve standardn´ım tvaru a jej´ı PBR x0 . ´ Ukol: zjistit, zda x0 je optim´ aln´ı. Jestliˇze dan´e PBR nen´ı optim´ aln´ı, pak se o tom snadno“ (ve smyslu NP) pˇresvˇedˇc´ıme nalezen´ım ” lepˇs´ıho ˇreˇsen´ı; dok´ azat optimalitu dan´eho ˇreˇsen´ı pˇr´ımo by ale znamenalo uk´azat, ˇze vˇsechna ostatn´ı pˇr´ıpustn´ a ˇreˇsen´ı jsou horˇs´ı. S vyuˇzit´ım duality m˚ uˇze rozhodov´ an´ı vypadat takto. - Jestliˇze x0 nen´ı optim´ aln´ı, dok´ aˇzeme to (pozitivn´ım argumentem) nalezen´ım jin´eho PBR s menˇs´ı cenou. - Jestliˇze x0 je optim´ aln´ı, dok´ aˇzeme to t´eˇz pozitivn´ım argumentem, a sice nalezen´ım pˇr´ıpustn´eho ˇreˇsen´ı y0 du´ aln´ı u ´lohy takov´eho, ˇze cT x0 = bT y0 . ´ Uloha LP, zformulovan´ a jako rozhodovac´ı u ´loha, je tedy v NP ∩ co-NP. Pro u ´lohu optim´ aln´ıho toku je dobrou charakteristikou vˇeta o potenci´alech, tj. Vˇeta 1.3. Abychom se o tom pˇresvˇedˇcili, uvaˇzujeme takto. OPT-FLOW ~ a v n´ı tok xij . Vstup: s´ıt’ G ´ Ukol: zjistit, zda xij je optim´ aln´ı. S vyuˇzit´ım Vˇety 1.3 vypad´ a rozhodov´ an´ı takto. - Jestliˇze xij nen´ı optim´ aln´ı, najdeme jin´ y tok s menˇs´ı cenou. - Jestliˇze xij je optim´ aln´ı, dok´ aˇzeme to nalezen´ım potenci´al˚ u. Vˇeta 1.3 tedy dokazuje pˇr´ısluˇsnost u ´lohy do NP ∩ co-NP. Poznamenejme jeˇstˇe, ˇze Vˇeta 1.1 (o ZRP) sama o sobˇe dobrou charakteristikou nen´ı, protoˇze v pˇr´ıpadˇe optimality toku svazuje neexistenci lepˇs´ıho toku s neexistenc´ı ZRP. Jej´ı praktickou pouˇzitelnost zajiˇst’uje aˇz Floyd˚ uv algoritmus, d´ıky nˇemuˇz um´ıme v polynomi´aln´ım ˇcase dok´azat i neexistenci ZRP.
43
Podle Vˇety 3.3 v´ıme, ˇze P ⊂ (NP∩co-NP). Ot´azka, zda zde plat´ı rovnost, je dalˇs´ım velk´ ym otevˇren´ ym probl´emem v teorii v´ ypoˇcetn´ı sloˇzitosti. Pˇred nalezen´ım Chaˇcijanova algoritmu byla u ´loha LP jedn´ım z moˇzn´ ych kandid´ at˚ u na protipˇr´ıklad“, protoˇze byla dobˇre charakterizovan´a, ale nebyl pro ni zn´am ” polynomi´ aln´ı algoritmus. Dalˇs´ım podobn´ ym kandid´atem byl probl´em prvoˇc´ıselnosti, ale jak uˇz jsme uvedli, v roce 2002 byl pro tento probl´em nalezen polynomi´aln´ı algoritmus.
4 4.1
Celoˇ c´ıseln´ e line´ arn´ı programov´ an´ı Formulace u ´ lohy
Pˇ r´ıklad. Uvaˇzujme u ´lohu nalezen´ı optim´aln´ıho toku v s´ıti na n´asleduj´ıc´ım obr´azku. Uzlov´e ohodnocen´ı odpov´ıd´ a intenzitˇe uzl˚ u, hranov´e ohodnocen´ı ve tvaru xi (ci , ri ) znamen´a tok hranou, cenu a propustnost. ˇ ısla v krouˇzc´ıch jsou poˇradov´ C´ a ˇc´ısla uzl˚ u. a2 = −3 2
........... ..... ...... .. ... .................................... ...................... ij ......... ..... ...... ............................... . . . . . . . . . ............ ... ........... ...... ... . . . . . . ........... . . . . . .. ........... ........ . . . . . . . . . . ........... . ...... . . . . . 1 4 . . . . . . . . . . . . ........... .... ........... ..... ........... ........... .......... ... ........... .......... ... ........... ........... 1 ............ 4 ........... ........... . . . . . . . . . . ........... ................... . .... ........... . . ........... .... . . ... . . . . . . ..... ... .. ..... ..... .. .... . . .. . . . . . ... . 3 . . . . . . . . . . ... ...... ..................... .................. ................. . . . . . . . . . . ........... ....... . . . . .... . ........... . . . . . ... ........... ........... ... ........... .......... ........... ... ... .. ........... ........... ........ ........... ........... .......... . . . ........ . ........... . . . . . . ........... ........ ...... 2 5 ........... ... ........... ................ ................. .... ........... .. . .... ... ......................................... ................................... . .... ... . .... .. ................
x (cij , rij )
x (2, 7)
x (2, 4)
a = 10 1
a =5 4
x (1, 5)
x (4, 15)
x (1, 3)
3 a3 = −12
´ Ulohu lze zˇrejmˇe pˇrev´est na n´ asleduj´ıc´ı u ´lohu LP: min 2x1 + 4x2 + x3 + 2x4 + x5 za podm´ınek x1 −x1
+x2 −x2
+x3 −x3
−x4 x4
−x5 +x5
x1 x2 x3 x4 x5
= = = = ≤ ≤ ≤ ≤ ≤
10 −3 −12 5 7 15 5 4 3
xi ≥ 0, i = 1 . . . 5 Jsou-li hodnoty rij a ai celoˇc´ıseln´e (napˇr. kusy v´ yrobk˚ u), pak by mˇel b´ yt celoˇc´ıseln´ y i optim´aln´ı tok. Pˇ r´ıklad. Mˇejme d´ an ohodnocen´ y graf (libovoln´ y) s alespoˇ n dvˇema uzly a mˇejme u ´kol nal´ezt v nˇem ~ minim´ aln´ı cestu z uzlu u do uzlu v (u, v ∈ U (G)). Definujme intenzity au = 1, av = −1 a ax = 0 pro vˇsechny ostatn´ı uzly x, ceny hran budou rovny zadan´emu hranov´emu ohodnocen´ı a propustnosti hran budou rovny jedn´e. Najdeme-li v t´eto s´ıti celoˇc´ıseln´ y optim´aln´ı tok, pak hrany s tokem 1 urˇcuj´ı minim´aln´ı cestu z u do v. Poznamenejme, ˇze v pˇredchoz´ım pˇr´ıkladu byla celoˇc´ıselnost hledan´eho ˇreˇsen´ı vhodn´a, zde je vˇsak nezbytn´ a.
44
Na prvn´ı pohled by se mohlo zd´ at, ˇze podm´ınka celoˇc´ıselnosti hledan´eho ˇreˇsen´ı neznamen´a ˇz´adn´e z´ asadn´ı omezen´ı – vyˇreˇs´ıme u ´lohu v re´ aln´em oboru, a nalezen´e ˇreˇsen´ı vhodnˇe zaokrouhl´ıme. N´asleduj´ıc´ı pˇr´ıklad ukazuje, ˇze podobn´e postupy nemaj´ı nadˇeji na u ´spˇech. Pˇ r´ıklad.
Mˇejme d´ anu n´ asleduj´ıc´ı u ´lohu LP v kanonick´em tvaru.
min x − y 20x − 12y ≥ 5 −4x + 2y ≥ −3 x ≥ 0; y ≥ 0; x, y celoˇc´ıseln´e ˇ sme pˇr´ısluˇsnou u Reˇ ´lohu LP v re´ aln´em oboru graficky. y
. ..... ..... ...... ...... ...... ...... ........ .......... . .. . ..... ...... .... 1 ............ ......... ................... 4 .......................... . . . . .. ....... ........... ..... ... ..... ...... ..... .......... . . . . .. . ..... .... ..... ...... ..... ......... ..... ........... ..... . . . . . . . .. .. ..... ... .. ..... ... ... ..... ... ... ..... ..... ............ . . . . . . .. . . ..... ... ... ..... ... ... ..... ... ... ..... ....... .... ..... . . . . . . . . . .. .. ... ..... ... .... ..... .... ... ..... ..... ... ..... ... .... .... ..... . . . . . . . . ..... ... ...... ..... .... ... ..... ... .. .. ..... ... .... ..... ..... . . . . . . . . . . ...... ..... .. .... .. ..... ... .... ..... . . ... ........................................................................... . .. ............. . ...... .... ... .. ... .. ... ... .... .... . . ..... .. .... . . . . . ... .. ..... ... .. .. .. .. ...
(3 , 5)
ˇreˇsen´ı re´aln´e u ´lohy LP.
5
y =x+d
−4x + 2y = −3
20x − 12y = 5 •
0
1 4
3 4
1
jedin´e celoˇc´ıseln´e ˇreˇsen´ı
2
3 3 14
x
Re´ aln´ au ´loha LP m´ a ˇreˇsen´ı x = 3, 25, y = 5, ale jedin´e celoˇc´ıseln´e ˇreˇsen´ı dan´e u ´lohy je x = y = 1, coˇz zˇrejmˇe nez´ısk´ ame zaokrouhlen´ım optima re´aln´e u ´lohy LP. Je zˇrejm´e, ˇze podobnˇe by ˇslo sestrojit pˇr´ıklad u ´lohy CLP, jej´ıˇz optimum je libovolnˇe daleko od optima pˇr´ısluˇsn´e re´ aln´e u ´lohy. Z tohoto pˇr´ıkladu vid´ıme, ˇze hled´an´ı celoˇc´ıseln´eho ˇreˇsen´ı u ´lohy LP je samostatn´ y probl´em. Definice 4.1.
´ Ulohou celoˇc´ıseln´eho line´ arn´ıho programov´an´ı (CLP) rozum´ıme u ´lohu
min cT x Ax = b xi ≥ 0 xi celoˇc´ıseln´e, kde c ∈ Rn , A je celoˇc´ıseln´ a matice typu m/n a b ∈ Zm je celoˇc´ıseln´ y vektor. Pozn´ amka. 1. Je zˇrejm´e, ˇze o prvc´ıch matice A a vektoru b staˇc´ı pˇredpokl´adat, ˇze jsou racion´aln´ı, a vznikl´e u ´lohy jsou ekvivalentn´ı (vyn´ asob´ıme rovnice spoleˇcn´ ym jmenovatelem). Naproti tomu ceny pˇredpokl´ ad´ ame re´ aln´e. Pˇredpoklady celoˇc´ıselnosti prvk˚ u matice A a vektoru b budeme poˇzadovat vˇzdy po zbytek t´eto kapitoly. 2. Pˇredchoz´ı definice d´ av´ a u ´lohu CLP ve standardn´ım tvaru. Opˇet plat´ı, ˇze u ´lohu lze formulovat obecnˇe i kanonicky a formulace jsou ekvivalentn´ı.
45
4.2
V´ ypoˇ cetn´ı sloˇ zitost u ´ lohy celoˇ c´ıseln´ eho line´ arn´ıho programov´ an´ı
Jak jiˇz v´ıme z kapitoly 2.5, u ´loha LP v re´ aln´em oboru je ˇreˇsiteln´a v polynomi´aln´ım ˇcase (Chaˇcijanov´ ym algoritmem). Uvid´ıme, ˇze poˇzadavkem celoˇc´ıselnosti se situace z´asadnˇe mˇen´ı. Pˇredevˇs´ım, pt´ ame-li se, zda CLP patˇr´ı do tˇr´ıdy NP, je tˇreba formulovat u ´lohu CLP jako rozhodovac´ı probl´em. Pˇrevedeme tedy u ´lohu CLP na tvar CLP0 : CLP0 Vstup: matice A, vektory b, c a ˇc´ıslo L. ´ Ukol: zjistit, zda existuje vektor x takov´ y, ˇze cT x ≤ L Ax = b xi ≥ 0; xi celoˇc´ıseln´e. CLP0 je jiˇz rozhodovac´ı probl´em a ot´ azka, zda patˇr´ı do tˇr´ıdy NP, m´a smysl. Probl´emem m˚ uˇze b´ yt to, ˇze sloˇzky vektoru x by teoreticky mohly b´ yt libovolnˇe velk´e. Proto u ´lohu jeˇstˇe jednou pˇreformulujeme – varianta CLP00 je obdobn´ a jako u ´loha CLP0 , ale s omezen´ ymi promˇenn´ ymi. CLP00 Vstup: matice A, vektory b, c, ˇc´ısla L a K. ´ Ukol: zjistit, zda existuje vektor x takov´ y, ˇze cT x ≤ L Ax = b xi ≥ 0; xi ≤ K; xi celoˇc´ıseln´e. Plat´ı n´ asleduj´ıc´ı vˇeta. Vˇ eta 4.1.
´ Uloha CLP00 je NP-´ upln´ a.
D˚ ukaz. 1. Ovˇeˇr´ıme, ˇze CLP00 ∈ NP: a) nedeterministicky generujeme celoˇc´ıseln´ y vektor x, b) ovˇeˇr´ıme, zda x je pˇr´ıpustn´e ˇreˇsen´ı, c) pokud ano, ovˇeˇr´ıme, zda cT x ≤ L. (Pozn´ amka: bez omezen´ı xi ≤ K by v b) a c) byly probl´emy s polynomialitou). ´ 2. Uplnost CLP00 dok´ aˇzeme pˇrevodem SAT / CLP00 . Myˇslenku tohoto pˇrevodu si uk´aˇzeme na pˇr´ıkladu. Mˇejme d´ anu n´ asleduj´ıc´ı logickou formuli: f (x1 , x2 , x3 ) = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x ¯2 ) ∧ (¯ x1 ∨ x3 ) ∧ (¯ x1 ∨ x ¯2 ∨ x ¯3 ) . Je zˇrejm´e, ˇze formule f je splniteln´ a, pr´ avˇe kdyˇz existuj´ı hodnoty promˇenn´ ych x1 , x2 , x3 , vyhovuj´ıc´ı nerovnostem: x1 + x2 + x3 ≥ 1 x1 + (1 − x2 ) ≥ 1 (1 − x1 ) + x3 ≥ 1 (1 − x1 ) + (1 − x2 ) + (1 − x3 ) ≥ 1 x1 , x2 , x3 ∈ {0, 1} To vˇsak jeˇstˇe nen´ı u ´loha CLP - nem´ ame ˇz´adnou cenovou funkci ani optimalizaci. To se vˇsak snadno d´ a obej´ıt n´ asleduj´ıc´ım trikem. Zavedeme novou promˇennou y, napˇr. prvn´ı nerovnost nahrad´ıme nerovnost´ı x1 + x2 + x3 ≥ y
46
a maximalizujeme hodnotu promˇenn´e y. Pokud je ymax ≥ 1, jsme hotovi, formule je splniteln´a. Hledanou u ´lohu CLP00 , kter´ a vznikla z naˇs´ı u ´lohy SAT, lze zapsat takto: max y x1 + x2 + x3 − y ≥ 0 x1 + (1 − x2 ) ≥ 1 (1 − x1 ) + x3 ≥ 1 (1 − x1 ) + (1 − x2 ) + (1 − x3 ) ≥ 1 x1 , x2 , x3 ∈ {0, 1} Zˇrejmˇe plat´ı, ˇze f je splniteln´ a, pr´ avˇe kdyˇz u ´loha CLP00 m´a optim´aln´ı ˇreˇsen´ı splˇ nuj´ıc´ı podm´ınku ymax ≥ 1. 2 ´ ´ Pozn´ amka. Uloha CLP00 je zˇrejmˇe speci´aln´ı pˇr´ıpad u ´lohy CLP. Uloha CLP je tedy alespoˇ n tak tˇeˇzk´ a, jako NP-´ upln´ au ´loha CLP00 , ale nev´ıme, zda je ∈ NP. Takov´a u ´loha se naz´ yv´a NP-tˇ eˇ zk´ a. D˚ usledek 4.1.
´ Uloha CLP je NP-tˇeˇzk´ a.
Lze dok´ azat i platnost n´ asleduj´ıc´ı vˇety, d˚ ukaz ovˇsem nen´ı lehk´ y, lze jej nal´ezt napˇr. v [10]. ´ Uloha CLP0 je NP-´ upln´ a.
Vˇ eta 4.2.
Skuteˇcnost, ˇze u ´loha CLP0 je NP-tˇeˇzk´ a, znamen´a, ˇze na ni lze pˇrev´est vˇsechny ostatn´ı NP-´ upln´e u ´lohy. Jeden takov´ y pˇrevod si uk´ aˇzeme v n´ asleduj´ıc´ım pˇr´ıkladu. Pˇ r´ıklad. Formulace u ´lohy obchodn´ıho cestuj´ıc´ıho jako u ´lohy CLP. ~ Uzly grafu G ~ oznaˇc´ıme ˇc´ısly 0 . . . n; ohodnocen´ı hrany (i, j) Mˇejme ohodnocen´ y orientovan´ y graf G. ~ poloˇz´ıme hodnotu cij rovnou nˇejak´emu velk´emu ˇc´ıslu, a d´ale poloˇz´ıme oznaˇc´ıme cij . Pokud (i, j) ∈ / H(G), ~ kter´ cii = 0, i = 1, . . . , n. MaticeP[cij ] obecnˇe nemus´ı b´ yt symetrick´a. Hled´ame cyklus C, y proch´az´ı vˇsemi uzly a minimalizuje v´ yraz cij . ~ 1, jestliˇze (i, j) ∈ H(C), Poloˇzme xij = ~ 0, jestliˇze (i, j) 6∈ H(C). Pro naˇsi u ´lohu obchodn´ıho cestuj´ıc´ıho m˚ uˇzeme nyn´ı zformulovat n´asleduj´ıc´ı u ´lohu CLP. n X
min
cij xij
i,j=0
za podm´ınek n P xij = 1 pro j = 0 . . . n, i=0 n P
(a)
xij = 1 pro i = 1 . . . n,
(b)
j=0
0 ≤ xij ≤ 1 ∀i, j, xij celoˇc´ıseln´e. Podm´ınka (a) ˇr´ık´ a, ˇze do kaˇzd´eho z uzl˚ u 1, . . . , n vch´az´ı pr´avˇe jedna hrana, a podobnˇe podm´ınka (b) ˇr´ık´ a, ˇze z kaˇzd´eho z uzl˚ u 0, . . . , n vych´ az´ı pr´ avˇe jedna hrana. Z obou podm´ınek plyne, ˇze i do uzlu 0 vch´ az´ı pr´ avˇe jedna hrana.
47
Zd´ alo by se tedy, ˇze podm´ınky (a) a (b) vyjadˇruj´ı poˇzadavek, aby hledan´ y podgraf byl cyklem. Probl´em je ale v tom, ˇze pˇr´ıpustn´e ˇreˇsen´ı nemus´ı odpov´ıdat souvisl´emu grafu (a tedy m˚ uˇze vyjadˇrovat disjunktn´ı sjednocen´ı v´ıce cykl˚ u). Jednu z moˇzn´ ych situac´ı ukazuje n´asleduj´ıc´ı obr´azek. .. 1 .•.......................................................................................................................................................................•........ 2
• 5
............ .................. ........... .... ..... ........... ... ........... . . . . . . . . . ... . ........ ... ........... ........... ... ........... . . . . . . . ... . . . ....... . . . . . . ... . . . . ....... . . . . ... . . . . . . ...................... ... ................... ... ........... ........... ... ........... ... ........... ........... ........... ..... ........... ........... .......... ........... ... ........... ........... ......... ....
... ....... ... ... ... .... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... .......... ... ........ ... ........ . . ........................................................................................................................................................
0 •
4 •
• 3
• 6
Pokus´ıme se o n´ apravu – je tˇreba pˇridat dalˇs´ı podm´ınku, kter´a by z mnoˇziny pˇr´ıpustn´ ych ˇreˇsen´ı vylouˇcila ta, jeˇz odpov´ıdaj´ı nesouvisl´ ym graf˚ um. Jedna moˇzn´a myˇslenka spoˇc´ıv´a v rozkladu mnoˇziny uzl˚ u na dvˇe ~ nepr´ azdn´e disjunktn´ı mnoˇziny S, S¯ (tj. S ∪ S¯ = U (G)). Souvislost grafu pak znamen´a, ˇze pro kaˇzd´ y takov´ yto rozklad mus´ı platit, ˇze z S vede do S¯ alespoˇ n jedna hrana. T´ım dostaneme tuto podm´ınku: X ~ xij ≥ 1 ∀S ⊂ {0, 1, . . . , n}, S 6= ∅, S 6= U (G). ¯ i∈S, j∈S
Takto z´ıskan´ au ´loha CLP jiˇz je ekvivalentn´ı s p˚ uvodn´ı u ´lohou obchodn´ıho cestuj´ıc´ıho. Pot´ıˇz je ale jinde ¯ mnoˇziny U (G) ~ je 2n+1 − 2. To znamen´a, ˇze rozmˇer z´ıskan´e u – moˇzn´ ych rozklad˚ u (S, S) ´lohy CLP roste exponenci´ alnˇe s rozmˇerem p˚ uvodn´ı u ´lohy obchodn´ıho cestuj´ıc´ıho, a tedy n´aˇs pˇrevod nen´ı polynomi´ aln´ı. Mus´ıme tedy hledat lepˇs´ı podm´ınku. Zkus´ıme n´ asleduj´ıc´ı podm´ınku. ui − uj + nxij ≤ n − 1 pro 1 ≤ i 6= j ≤ n, ui ∈ Z, i = 1 . . . n.
(c)
Zde ui , i = 1, . . . , n, jsou dalˇs´ı celoˇc´ıseln´e promˇenn´e (ale ne nutnˇe nez´aporn´e – pˇrid´an´ım podm´ınky (c) dost´ av´ ame u ´lohu CLP v obecn´em tvaru). Uk´ aˇzeme, ˇze podm´ınka (c) vyluˇcuje kratˇs´ı cykly. a) Existuj´ı-li ˇc´ısla ui , splˇ nuj´ıc´ı podm´ınku (c), pak kaˇzd´ y cyklus proch´az´ı uzlem 0 – kdybychom mˇeli napˇr. pˇr´ıpad zn´ azornˇen´ y na pˇredchoz´ım obr´azku, pak by na cyklu 4, 5, 6 muselo platit + u4 − u5 + 6 ≤ 5 ⇒ u4 − u6 ≤ −2 u5 − u6 + 6 ≤ 5 SPOR. u6 − u4 + 6 ≤ 5 ⇒ u4 − u6 ≥ 1 ~ kter´ b) Pro kaˇzd´ y cyklus C, y proch´ az´ı vˇsemi uzly, ˇc´ısla existuj´ı. Poloˇzme u0 = 0 a ui = t, jestliˇze ~ uzel i je t-t´ y v poˇrad´ı na cyklu C. Uk´aˇzeme, ˇze podm´ınka (c) je splnˇena. ~ pak mus´ı platit ui − uj ≤ n − 1. To by • Je-li xij = 0 (tj. hrana (i, j) nen´ı hranou cyklu C), ~ mohlo neplatit jen pro ui = n, uj = 0, ale to by znamenalo, ˇze j = 0 a hrana (i, 0) je v C, coˇz je v pˇredpokladu vylouˇceno. ~ pak mus´ı platit • Je-li xij = 1, tj. hrana (i, j) je hranou cyklu C, ui − uj + n ≤ n − 1 ⇔ ui − uj ≤ −1, ale z konstrukce ˇc´ısel ui plyne, ˇze ui − uj = −1 s v´ yjimkou posledn´ı hrany cyklu, tj. hrany (n, 0). Tento pˇr´ıpad se vˇsak v podm´ınce (c) neuvaˇzuje; podm´ınka (c) je tedy splnˇena. Pozn´ amka. Vˇsimnˇeme si, ˇze podm´ınek (c) je celkem n2 . Rozmˇer z´ıskan´e u ´lohy CLP je tedy poly~ nomi´ aln´ı funkc´ı rozmˇeru grafu G.
48
Pozn´ amka. Povaˇzujeme-li NP-´ uplnost u ´lohy obchodn´ıho cestuj´ıc´ıho za dok´az´anou jiˇz dˇr´ıve, pak pˇrevod z pˇredchoz´ıho pˇr´ıkladu d´ av´ a alternativn´ı d˚ ukaz D˚ usledku 4.1.
4.3
Celoˇ c´ıseln´ e line´ arn´ı programov´ an´ı a tot´ alnˇ e unimodul´ arn´ı matice
ˇ Definice 4.2. Rekneme, ˇze matice A = [aij ] typu m/n je tot´alnˇe unimodul´arn´ı, jestliˇze a) aij ∈ {0, 1, −1}, i = 1, . . . , n, j = 1, . . . , m, b) determinant kaˇzd´e ˇctvercov´e podmatice matice A je roven 0, 1 nebo −1. Vˇ eta 4.3. Je-li A tot´ alnˇe unimodul´ arn´ı, pak pro kaˇzd´ y celoˇc´ıseln´ y vektor b je kaˇzd´e pˇr´ıpustn´e bazick´e ˇreˇsen´ı celoˇc´ıseln´e. D˚ ukaz. Necht’ B = {Aj1 , . . . , Ajm } je m-tice line´arnˇe nez´avisl´ ych sloupc˚ u matice A a B je pˇr´ısluˇsn´ a regul´ arn´ı podmatice matice A. Bazick´e ˇreˇsen´ı x (po vynech´an´ı nulov´ ych sloˇzek) splˇ nuje x = B−1 b =
1 BA b, det B
ale BA je celoˇc´ıseln´ a, a je-li b celoˇc´ıseln´ y a det B = ±1, pak i x je celoˇc´ıseln´ y. Pozn´ amka.
2
Plat´ı i obr´ acen´e tvrzen´ı.
D˚ usledek 4.2. Je-li A tot´ alnˇe unimodul´arn´ı, pak se optim´aln´ı ˇreˇsen´ı u ´lohy CLP shoduje s ˇreˇsen´ım pˇr´ısluˇsn´e re´ aln´e u ´lohy LP. ´ D˚ usledek 4.3. Ulohu CLP s tot´ alnˇe unimodul´arn´ı matic´ı lze ˇreˇsit simplexov´ ym algoritmem a v´ ysledn´e ˇreˇsen´ı je celoˇc´ıseln´e. D˚ usledek 4.4.
´ Uloha CLP s tot´ alnˇe unimodul´arn´ı matic´ı je ˇreˇsiteln´a v polynomi´aln´ım ˇcase.
Vˇ eta 4.4. Necht’ A je matice typu m/n takov´a, ˇze a) aij ∈ {−1, 0, 1}, i = 1, . . . , m , j = 1, . . . , n, b) kaˇzd´ y sloupec matice A obsahuje - bud’to nejv´ yˇse jeden nenulov´ y prvek, - nebo pr´ avˇe dva nenulov´e prvky, a to +1 a −1. Pak je matice A tot´ alnˇe unimodul´ arn´ı. D˚ ukaz. Necht’ B je ˇctvercov´ a podmatice ˇr´adu k matice A. Indukc´ı podle k dok´aˇzeme, ˇze det B ∈ {−1, 0, 1}. 1. k = 1: pak evidentnˇe det B ∈ {−1, 0, 1}, nebot’ je to jednoprvkov´a podmatice. 2. Necht’ vˇeta plat´ı pro vˇsechny ˇctvercov´e podmatice ˇr´adu menˇs´ıho neˇz k, necht’ B je matice ˇr´adu k.
49
Jsou n´ asleduj´ıc´ı tˇri moˇznosti. 1. Jestliˇze B m´ a nˇekter´ y sloupec nulov´ y, potom je zˇrejmˇe det B = 0. 2. Jestliˇze B m´ a v nˇekter´em sloupci (napˇr. v i-t´em) jedin´ y nenulov´ y prvek aij = ±1, pak rozvojem deteminantu matice B podle i-t´eho sloupce z´ısk´ame det B = (−1)i+j aij det B0 , kde det B0 je determinant matice B0 , vznikl´e z B vynech´an´ım i-t´eho ˇr´adku a j-t´eho sloupce. Determinant B0 je podle indukˇcn´ıho pˇredpokladu roven nˇekter´emu z ˇc´ısel −1, 0, 1, a protoˇze aij ∈ {−1, 0, 1}, je i det B ∈ {−1, 0, 1}. 3. Jestliˇze B m´ a v kaˇzd´em sloupci pr´ avˇe dva nenulov´e prvky, pak souˇcet vˇsech ˇr´adk˚ u je nulov´ y. Matice B je tedy singul´ arn´ı, a proto det B = 0. 2 Vˇ eta 4.5.
~ je tot´alnˇe unimodul´arn´ı. Incidenˇcn´ı matice orientovan´eho grafu G
D˚ ukaz. Incidenˇcn´ı matice orientovan´eho grafu m´a v kaˇzd´em sloupci pr´avˇe jeden prvek rovn´ y +1 a pr´avˇe jeden prvek rovn´ y −1. Podle Vˇety 4.4 je tedy incidenˇcn´ı matice libovoln´eho prost´eho orientovan´eho grafu tot´ alnˇe unimodul´ arn´ı. 2 N´ asleduj´ıc´ı vˇeta shrnuje z´ akladn´ı vlastnosti tot´alnˇe unimodul´arn´ıch matic. Vˇetu uv´ad´ıme bez d˚ ukazu (indukc´ı), kter´ y je ponech´ an ˇcten´ aˇri jako cviˇcen´ı. Vˇ eta 4.6. (i) Je-li A tot´ alnˇe unimodul´ arn´ı matice, pak matice [A| I ], kde I je jednotkov´a matice pˇr´ısluˇsn´eho ˇr´ adu, je tak´e tot´ alnˇe unimodul´ arn´ı. (ii) Je-li A tot´ alnˇe unimodul´ arn´ı matice, pak matice AT je rovnˇeˇz tot´alnˇe unimodul´arn´ı. A1 A2 (iii) Je-li blokov´ a matice A = [A1 |A2 ] tot´alnˇe unimodul´arn´ı, pak matice je tak´e tot´alnˇe ±I 0 unimodul´ arn´ı. Pˇ r´ıklad. Vrat’me se nyn´ı k pˇr´ıkladu na pˇrevod u ´lohy nalezen´ı optim´aln´ıho toku na u ´lohu CLP z u ´vodu t´eto kapitoly. Hled´ ame optim´ aln´ı tok v s´ıti dle n´asleduj´ıc´ıho obr´azku. a2 = −3 2
........... ..... ...... .. ... .................................... ....................... ij ......... ..... ...... .............................. . . . . . . . . . ............ .. ............ ...... ... . . . . . . . ........... . . . . .. ........ ........... . . . . . . . . . . ........... . ....... . . . . 1 4 . . . . . . . . . . . ........... ... ........... ..... ........... ........... ........... ... ........... .......... ........... ... ........... 1 ............ 4 .......... ........... ........... . . . . . . . . . . ........... . .... ........... . . ................ ....... .... . . . . . . . . ..... ... .. .... ..... .. .... .. . . . . . . ... . 3 . . . . . . . . . . ... .. ....... ....... .................. ................. ........... ......... ........... ........... . . . .... . ........... . . . . . .. ........... ........... ... ........... ........... ........... ... ... .. ........... ........... ........ ........... ........... .......... . . . ........ . ........... . . . . . . ........... ........ ...... 2 5 ........... ... ........... ................ ................. .... ........... .. . .... ... ......................................... ................................... . .... ... . .... .. ................
x (cij , rij )
x (2, 7)
a = 10 1
x (2, 4)
a =5 4
x (1, 5)
x (4, 15)
x (1, 3)
3 a3 = −12
´ Ulohu jsme pˇrevedli na n´ asleduj´ıc´ı u ´lohu CLP: min 2x1 + 4x2 + x3 + 2x4 + x5
50
za podm´ınek x1 −x1
+x2 −x2
−x4
+x3 −x3
x4
−x5 +x5
x1 x2 x3 x4 x5
= = = = ≤ ≤ ≤ ≤ ≤
10 −3 −12 5 7 15 5 4 3
xi ≥ 0, i = 1 . . . 5 V t´eto soustavˇe je moˇzno ˇctvrtou rovnici vylouˇcit, nebot’ je line´arn´ı kombinac´ı pˇredchoz´ıch tˇrech. Ponech´ ame tak jen prvn´ı tˇri ˇr´ adky incidenˇcn´ı matice s´ıtˇe. Matice soustavy pak bude m´ıt n´asleduj´ıc´ı tvar. A=
1 −1 0
1 0 −1
0 1 −1 I
0 −1 0
0 0 −1
0 I
Tato matice m´ a hodnost m = 8 a podle vˇet 4.5 a 4.6 je tot´alnˇe unimodul´arn´ı. Je zˇrejm´e, ˇze dan´e pozorov´ an´ı plat´ı obdobnˇe pro kaˇzdou u ´lohu CLP, kter´a vznikla pˇrevodem u ´lohy na optim´aln´ı tok. ´ Z´ avˇ er: Ulohu nalezen´ı optim´ aln´ıho toku v s´ıti lze pˇrev´est na u ´lohu CLP s tot´alnˇe unimodul´arn´ı matic´ı a ˇreˇsen´ı lze tedy nal´ezt simplexov´ ym algoritmem, kter´ y pˇri celoˇc´ıseln´ ych hodnot´ach intenzit a propustnost´ı d´ a celoˇc´ıseln´ y optim´ aln´ı tok. Pozn´ amka. 1. Na CLP lze pˇrev´est i jin´e u ´lohy, kter´e vˇsak tuto v´ yhodu nemus´ı m´ıt (napˇr. i u ´loha obchodn´ıho cestuj´ıc´ıho a jin´e). 2. Pro nˇekter´e tˇr´ıdy u ´loh na optim´ aln´ı tok je pˇrevod na CLP v´ yhodn´ y; pro jin´e vˇsak v´ yhodnˇeji pracuj´ı speci´ aln´ı grafov´e algoritmy. 3. Uvaˇzujme n´ asleduj´ıc´ı ot´ azku: je d´ ana matice A s prvky 0, 1, −1; u ´kol je zjistit, zda A je tot´alnˇe unimodul´ arn´ı. V r. 1980 P. Seymour dok´azal hlubokou struktur´aln´ı charakterizaˇcn´ı vˇetu, d´avaj´ıc´ı polynomi´ aln´ı test tot´ aln´ı unimodularity (viz [1], odst. 6.5).
4.4
Enumerativn´ı metody a metoda vˇ etv´ı a mez´ı
V pˇredchoz´ım odstavci jsme vidˇeli, ˇze je-li matice soustavy tot´alnˇe unimodul´arn´ı, ˇreˇsen´ı u ´lohy CLP se v´ yraznˇe zjednoduˇsuje. Ot´ azkou je, co dˇelat, pokud matice soustavy tot´alnˇe unimodul´arn´ı nen´ı. Je jasn´e, ˇze m´ ame co do ˇcinˇen´ı s NP-tˇeˇzkou u ´lohou, a snadn´e ˇreˇsen´ı nen´ı zn´amo. Pouˇz´ıvan´e metody lze v podstatˇe rozdˇelit do dvou skupin: – enumerativn´ı metody, – metody seˇcn´ ych nadrovin.
51
Enumerativn´ı metody vyuˇz´ıvaj´ı toho, ˇze vˇsech PR je koneˇcnˇe mnoho a lze se tedy (pˇri nepˇr´ıliˇs velk´em“ ” rozmˇeru u ´lohy) pokusit je probrat. Pˇri prob´ırce se zpravidla pokouˇs´ıme poˇcet prob´ıran´ ych PR redukovat pouˇzit´ım technik typu metody vˇetv´ı a mez´ı (angl. branch and bound“). Podstata metody vˇetv´ı a mez´ı ” spoˇc´ıv´ a v tom, ˇze mnoˇzina pˇr´ıpustn´ ych ˇreˇsen´ı se opakovanˇe vˇetv´ı na podmnoˇziny (vˇetve) a pro kaˇzdou z nich se vypoˇc´ıt´ av´ a horn´ı mez (pˇri u ´loh´ ach na minimalizaci doln´ı mez) u ´ˇcelov´e funkce. Zn´ame-li jiˇz pˇr´ıpustn´e ˇreˇsen´ı s hodnotou u ´ˇcelov´e funkce vyˇsˇs´ı, neˇz je horn´ı mez pro nˇekterou vˇetev, nemus´ıme tuto vˇetev d´ ale prob´ırat, protoˇze v n´ı optimum b´ yt nem˚ uˇze. Detailn´ı strategie uˇzit´ı metody je ovˇsem pˇr´ıpad od pˇr´ıpadu r˚ uzn´ a a zpravidla silnˇe z´ avis´ı na konkr´etn´ı situaci (je tedy jedna metoda vˇetv´ı a mez´ı, ale hodnˇe algoritm˚ u vˇetv´ı a mez´ı). Metody – – –
seˇcn´ych nadrovin jsou zaloˇzeny na n´asleduj´ıc´ı myˇslence. ˇ s´ıme u Reˇ ´lohu v re´ aln´em oboru, tj. bez podm´ınky celoˇc´ıselnosti. Je-li optimum celoˇc´ıseln´e, jsme hotovi. Nen´ı-li optimum celoˇc´ıseln´e, pˇrid´ ame novou podm´ınku ( seˇcnou nadrovinu“), kter´a odsekne ˇc´ ast ” PR, ale zachov´ a vˇsechna celoˇc´ıseln´a PR. Po jist´em poˇctu krok˚ u ( oˇr´ıznut´ı“) bude ˇreˇsen´ı nov´e ” u ´lohy LP v re´ aln´em oboru celoˇc´ıseln´e. Postupy tohoto typu jsou zn´ amy jako Gomoryho algoritmy a budeme se jim bl´ıˇze vˇenovat v n´asleduj´ıc´ım odstavci. Jako pˇr´ıklad pouˇzit´ı metody vˇetv´ı a mez´ı uvedeme n´asleduj´ıc´ı u ´lohu. ´ Pˇ r´ıklad. Uloha o batohu. M´ ame n pˇredmˇet˚ u a u kaˇzd´eho z nich zn´ame jeho hmotnost ai a uˇziteˇcnost ci , i = 1, . . . , n. Batoh ´ m´ a nosnost b. Ukolem je vz´ıt do batohu pˇredmˇety maxim´aln´ı celkov´e uˇziteˇcnosti a nepˇrekroˇcit pˇritom nosnost batohu. (V jin´e, praktiˇctˇejˇs´ı“ formulaci u ´lohy m˚ uˇze j´ıt o n moˇzn´ ych investic, z nichˇz u kaˇzd´e ” zn´ ame n´ aklady ai a uˇziteˇcnost ci , a nesm´ıme pˇrekroˇcit dan´ y objem investiˇcn´ıch prostˇredk˚ u b). Form´ alnˇe u ´lohu zap´ıˇseme takto: jsou d´any vektory a = [a1 , . . . , an ]T ∈ Zn , c = [c1 , . . . , cn ]T ∈ Rn a ˇc´ıslo b ∈ Z. V´ yznam hledan´eho vektoru x = [x1 , . . . , xn ]T ∈ Zn je 0, jestliˇze i-t´ y pˇredmˇet nen´ı v batohu, xi = 1, jestliˇze i-t´ y pˇredmˇet je v batohu. Odpov´ıdaj´ıc´ı u ´loha CLP pak je tvaru max cT x aT x ≤ b xi ∈ {0, 1} Je to tedy speci´ aln´ı pˇr´ıpad u ´lohy CLP, v nˇemˇz – sloˇzky vektoru x mohou nab´ yvat pouze hodnot 0 a 1 (pro tento speci´aln´ı pˇr´ıpad CLP b´ yv´ a pouˇz´ıv´ an term´ın bin´ arn´ı programov´ an´ı), – matice A m´ a jedin´ y ˇr´ adek. Zp˚ usob aplikace metody vˇetv´ı a mez´ı uk´ aˇzeme na konkr´etn´ım pˇr´ıkladu. Pouˇzit´ y postup se naz´ yv´a Kolesar˚ uv algoritmus. pˇredmˇet ˇc. i hmotnost ai uˇziteˇcnost ci
1 40 40
2 50 60
3 20 10
4 10 9
5 20 3
6 40 20
7 30 60
Nosnost batohu je b = 100. Pˇred vlastn´ım ˇreˇsen´ım provedeme dva pˇr´ıpravn´e kroky. 1. Ovˇeˇren´ı ˇreˇsitelnosti: a4 = 10 < 100 = b (alespoˇ n jeden pˇredmˇet se do batohu vejde). 2. Ovˇeˇren´ı netrivi´ alnosti:
7 P
ai = 210 > 100 = b (vˇsechny pˇredmˇety se do batohu nevejdou).
i=1
52
Z´ akladn´ı myˇslenka Kolesarova algoritmu je zaloˇzena na tom, ˇze s vyuˇzit´ım skuteˇcnosti, ˇze ci > 0 pro ci vˇsechna i = 1, . . . , 7, vytvoˇr´ıme pod´ıly (kter´e lze interpretovat jako relativn´ı uˇziteˇcnosti“ jednotliv´ ych ” ai ci pˇredmˇet˚ u), pˇredmˇety novˇe uspoˇr´ ad´ ame podle velikosti tˇechto pod´ıl˚ u, a hodnot pod´ıl˚ u vyuˇzijeme pˇri ai v´ ypoˇctu horn´ıch mez´ı jednotliv´ ych vˇetv´ı. Po pˇreˇc´ıslov´ an´ı pˇredmˇet˚ u dostanene: nov´e ˇc´ıslo pˇredmˇetu i star´e ˇc´ıslo pˇredmˇetu hmotnost ai uˇziteˇcnost ci pomˇer acii
1 7 30 60 2
2 2 50 60 1,2
3 1 40 40 1
4 4 10 9 0,9
5 6 40 20 0,5
6 3 20 10 0,5
7 5 20 3 0,15
Nyn´ı postupnˇe prob´ır´ ame jednotliv´e moˇznosti a pro kaˇzdou z nich urˇc´ıme horn´ı mez. Kaˇzd´e pˇr´ıpustn´e ˇreˇsen´ı je pops´ ano bin´ arn´ım vektorem d´elky 7, jehoˇz i-t´a sloˇzka vyjadˇruje, zda je i-t´ y pˇredmˇet naloˇzen v batohu (napˇr´ıklad vektor [1010000] znamen´a naloˇzen´ı pˇredmˇet˚ u 1 a 3). Znak × v i-t´e sloˇzce znamen´ a, ˇze o i-t´em pˇredmˇetu nen´ı jeˇstˇe rozhodnuto. Postup prob´ır´ an´ı popisujeme rozhodovac´ım stromem. Znaˇcen´ı uzl˚ u: [10×××× ×] ....... ...... ........ .. . ..... j .... . .... . . ....
popis ˇreˇsen´ı (prob´ıran´a moˇznost) poˇradov´e ˇc´ıslo uzlu v rozhodovac´ım procesu horn´ı mez (pro celou vˇetev, kter´a z uzlu j vych´az´ı)
............
140
1. Prvn´ı uzel rozhodovac´ıho stromu bude m´ıt vektor ˇreˇsen´ı ×××××××. Urˇcen´ı horn´ı meze: naloˇz´ıme-li yv´a voln´a kapacita batohu 20 – tu obsad´ıme fiktivn´ı p˚ ulkou“ (v poˇrad´ı pomˇer˚ u acii ) pˇredmˇety 1 a 2, zb´ ” pˇredmˇetu 3. N´ aklad v batohu vypad´ a takto: naloˇz´ıme hmotnost uˇziteˇcnost
1 30 60
2 50 60
fikt. p˚ ulka 3 20 20
P 100 140
Odhl´edneme-li od nerealizovatelnosti takov´eho ˇreˇsen´ı, je jist´e, ˇze (d´ıky uspoˇr´ad´an´ı podle acii ) v´ıce jiˇz do batohu nem˚ uˇze j´ıt naloˇzit, tj. ˇz´ adn´e ˇreˇsen´ı nem˚ uˇze m´ıt hodnotu cT x vˇetˇs´ı neˇz 140. Horn´ı mez je tedy 140, a m´ ame prvn´ı uzel rozhodovac´ıho stromu: [×××××××] ................. .... ... ..... . ... 1 .... ........ ........ .. 140 2. Prvn´ı vˇetven´ı.
[×××××××] ............ .... ... ....... 1 ....... ....... ........ ............. . . . . . . . ....... 140 ....... ....... ....... .
...... .......
....... ....... ....... ....... .... [1××××××] ......... ..... .... 3 ... .............
..... [0××××××] ....... .................. ..... 2 .... ............. 109
140
Horn´ı meze: u uzlu 3 je horn´ı mez evidentnˇe stejn´a jako u uzlu 1, tj. 140; u uzlu 2 ji urˇc´ıme takto. naloˇz´ıme hmotnost uˇziteˇcnost
2 50 60
3 40 40
4 10 9
P 100 109
53
3. Pro dalˇs´ı vˇetven´ı Kolesar˚ uv algoritmus pouˇz´ıv´a empirick´e pravidlo vˇetven´ı podle nejvˇetˇs´ı horn´ı meze. Toto pravidlo samozˇrejmˇe nemus´ı v´est nejrychleji k optimu (proˇc?3 ), ale podstatn´e je to, ˇze jestliˇze aktu´ aln´ı nejvˇetˇs´ı horn´ı mezi odpov´ıd´ a uzel s vektorem ˇreˇsen´ı bez ד (tj. konkr´etn´ı pˇr´ıpustn´e ˇreˇsen´ı), ” pak zb´ yvaj´ıc´ı vˇetve s menˇs´ı horn´ı mez´ı uˇz nen´ı tˇreba proch´azet, protoˇze v nich optimum b´ yt nem˚ uˇze. Pˇri nalezen´ı pˇr´ıpustn´eho ˇreˇsen´ı, jehoˇz hodnota u ´ˇcelov´e funkce je vˇetˇs´ı nebo rovna horn´ım mez´ım vˇsech jeˇstˇe neprobran´ ych vˇetv´ı, v´ ypoˇcet konˇc´ı. Proces dalˇs´ıho vˇetven´ı z uzlu 3 pak vypad´a takto. [1××××××] ............. ..... 3 ... ................................. ....... . . . . . . 140 .................. .... .......
....... ....... ....... ....... .... [11×××××] .......... .... .. ... . ........ 5 ........ ....... ........ ............. . . . . . . ....... 140 ..... . . ....... . . . . . ....... ....... ....... ....... .[111××××] ....... ....... [110××××] ....... ............ ..................... . . ..... .. . ... 7 .. ..... 6 .... ............ . . . . . . . . . . . . . . . . . . . ..... ..... ........... . . . . . . ....... NELZE (a1 + a2 + a3 > ..... 134 . . . . . . . . . . ....... ..... . . . . . . . . . . ....... .. ..[1101×××] ....... ....... [1100×××] ....... ........... ....... ..... .. ..................... ..... 8 .... . .. ............ ...... 9 ..... ....... .......... ............. . . . . . . ....... ..... . 130 134 . ....... . . . . ....... ..... ....... ....... .....[11011××] ....... ....... [11010××] ....... . . ....... ............ . . . . . . . . . . . . . . . .. .. .... .. .....10.... ...11... . . . . . . . .......... . . . . . . ..... ......... ........... . . . . . . ....... NELZE (a + a ..... . 1 2 + a4 + a5 134 . . . . . . . . . ....... ..... . . . . . . . . . . ....... .. ....... ....... [110100×] ....... ..... [110101×] ....... .......... .... ............ ........ .....12..... ....13... . . . . . . . ............. . . . . . . ..... ......... ........... . . . . . . ..... 130, 5 ........... . . . NELZE . . . ....... ..... . . . . . . . . . . ....... ..... ....... ....... ....... [1101001] [1101000] ....... .................. ..................... . .....15.... .....14... . ............ ........... ..... .......
....... [10×××××] ....... ................... .... 4 .... ............ 119
129
100)
> 100)
NELZE
V tomto okamˇziku jiˇz zn´ ame konkr´etn´ı ˇreˇsen´ı s cT x = 129, ale 129 nen´ı nejvˇetˇs´ı horn´ı mez (viz uzel 8). Proto uzel 14 nemus´ı b´ yt optimem, a pro nalezen´ı optima jeˇstˇe mus´ıme vˇetvit z uzlu 8. [1100×××] ............ ... ... ...... 8 ...... ....... .......... .............. . . . . . . . ....... 130 ....... ....... . .......
....... ....... ....... ....... ..... [11001××] ......... .... . .....17.... ...........
..... .......
....... [11000××] ....... .................... .....16..... . . . . . .. ....... ......... ........ ....... 130 ............. ....... ....... . .......
... .......
...... [110000×] ....... ...................... .....18.... . ........... 123
NELZE
....... ....... ....[110001×] ....... ....... ............ ... .. ...19... ................................. . . . . . ..... . . . . 130 .................. . . ..... . . . ....... . . . . ....... ....... .....[1100011] ....... . ....... ..... . [1100010] . . . . . ........... .... ......... ... .... ......... ....21... ...20.. ............ ..........
130
NELZE
Hodnota 130 u ´ˇcelov´e funkce nalezen´eho ˇreˇsen´ı je nyn´ı jiˇz vˇetˇs´ı neˇz horn´ı meze vˇsech dosud neprohledan´ ych vˇetv´ı. Nalezen´e ˇreˇsen´ı v uzlu 20, tj. [1100010], je tedy optim´aln´ı a v´ ypoˇcet konˇc´ı. Povˇsimnˇeme si toho, ˇze explicitn´ı prob´ır´an´ı (hrubou silou) by znamenalo zkoumat 27 = 128 moˇznost´ı, zat´ımco s pouˇzit´ım metody vˇetv´ı a mez´ı jsme poˇcet prob´ıran´ ych moˇznost´ı zredukovali na 21.
4.5
Metoda seˇ cn´ ych nadrovin
Mˇejme d´ anu u ´lohu CLP ve tvaru min cT x Ax = b xi ≥ 0 celoˇc´ıseln´e. Pˇredpokl´ ad´ ame, ˇze vˇsechny prvky matice A a vektoru b jsou celoˇc´ıseln´e. 3 Kdyby
ano, mˇ eli bychom polynomi´ aln´ı algoritmus na ˇreˇsen´ı NP-tˇ eˇ zk´ eho probl´ emu a byli bychom slavn´ı.
54
Odpov´ıdaj´ıc´ı u ´loha LP v re´ aln´em oboru, tj. tat´aˇz u ´loha, ale bez podm´ınky celoˇc´ıselnosti, se naz´ yv´ a slab´ au ´loha, pˇr´ısluˇsn´ a naˇs´ı u ´loze. Prvn´ı krok metody seˇcn´ ych nadrovin spoˇc´ıv´a v tom, ˇze spoˇc´ıt´ame (simplexov´ ym algoritmem) ˇreˇsen´ı pˇr´ısluˇsn´e slab´e u ´lohy LP. Necht’ v´ ysledn´ a simplexov´a tabulka je (po ev. pˇreˇc´ıslov´an´ı promˇenn´ ych tak, aby prvn´ı promˇenn´e byly bazick´e) tvaru 1 0 . . . 0 a1 m+1 . . . a1n | x∗1 0 1 . . . 0 a2 m+1 . . . a2n | x∗2 (*) .. .. . .. .. .. . . . . . .. . ... . | . 0
0
...
1
am m+1
...
amn
| x∗m
To znamen´ a, ˇze bod x∗ = [x∗1 , . . . , x∗m , 0, . . . , 0]T je optim´aln´ı ˇreˇsen´ı slab´e u ´lohy. Bod x∗ tedy splˇ nuje rovnost Ax = b, a stejnˇe tak rovnosti dan´e tabulkou (∗). Ma-li p˚ uvodn´ı u ´loha CLP nˇejak´e celoˇc´ıseln´e pˇr´ıpustn´e ˇreˇsen´ı xc , pak pro nˇej tak´e plat´ı rovnosti (∗) c ’ (nebot x splˇ nuje rovnost Axc = b, a (∗) z n´ı vznikly Jordanovou eliminac´ı). Zd˚ uraznˇeme zde, ˇze xc nemus´ı b´ yt bazick´e (a tak´e zpravidla nebude), tj. m˚ uˇze m´ıt v´ıce neˇz m nenulov´ ych sloˇzek. Rozep´ıˇseme-li rovnosti (∗) pro xc , pak i-t´ y ˇr´adek tˇechto rovnost´ı je tvaru xci + ai m+1 xcm+1 + . . . + ain xcn = x∗i .
(**)
Pro a ∈ R oznaˇc´ıme bac celou ˇc´ ast ˇc´ısla a a a0 necelou ˇc´ast ˇc´ısla a (tj. a = bac + a0 , bac ∈ Z a 0 < a0 < 1). Z rovnosti (∗∗) plyne, ˇze necel´e ˇc´ asti v´ yraz˚ u nalevo a napravo si mus´ı b´ yt rovny. Protoˇze xci je cel´e ˇc´ıslo, neovlivn´ı necelou ˇc´ ast v´ yrazu vlevo, a tedy plat´ı (ai m+1 xcm+1 + . . . + ain xcn )0 = (x∗i )0 . Z rovnost´ı (∗∗) vybereme tu, pro kterou je (x∗i )0 nejvˇetˇs´ı (protoˇze x∗ nen´ı celoˇc´ıseln´ y, existuje takov´e i, pro nˇeˇz je (x∗i )0 > 0). Protoˇze sloˇzky xc jsou cel´a ˇc´ısla, mus´ı platit a0i m+1 xcm+1 + . . . + a0in xcn = (x∗i )0 + N, kde N je vhodn´e cel´e ˇc´ıslo, neboli a0i m+1 xcm+1 + . . . + a0in xcn ≥ (x∗i )0 .
(***)
Protoˇze tuto podm´ınku splˇ nuje kaˇzd´e celoˇc´ıseln´e PR, jej´ım pˇrid´an´ım k naˇs´ı u ´loze ˇz´adn´e celoˇc´ıseln´e PR neztrat´ıme. Podm´ınka (∗ ∗ ∗) je tedy hledan´a oˇrez´avac´ı podm´ınka“. ” Pˇ r´ıklad. min −x − y + z 4x + 3y + 2z = 7 x, y, z ≥ 0 celoˇc´ıseln´e. ˇ s´ıme nejprve pˇr´ısluˇsnou slabou u Reˇ ´lohu. S v´ ychoz´ım PBR nejsou probl´emy - vol´ıme-li napˇr. x jako bazickou, staˇc´ı dˇelit ˇctyˇrmi a dostaneme n´ asleduj´ıc´ı v´ ychoz´ı simplexovou tabulku. 1
1
-1
0
1
3 4
1 2
7 4
Simplexov´ ym algoritmem postupnˇe vypoˇc´ıt´av´ame:
55
0
1 4
− 23
− 74
1
3 4
1 2
7 4
0
1 4
− 32
− 74
4 3
1
2 3
7 3
− 13
0
− 53
− 73
4 3
1
2 3
7 3
Optim´ aln´ı ˇreˇsen´ı slab´e u ´lohy tedy je x∗ = [0, 73 , 0]T . Plat´ı ( 43 )0 = 1 3x
1 3
a ( 37 )0 = 13 , a tedy pˇr´ıdavn´ a podm´ınka (∗ ∗ ∗) je tvaru
+ 23 z ≥ 13 ,
neboli po u ´pravˇe x + 2z ≥ 1. Tuto podm´ınku pˇrid´ ame k p˚ uvodn´ı u ´loze, samozˇrejmˇe jako rovnost s novou pomocnou promˇennou, tj. ve tvaru x + 2z − u = 1. Vzniklou u ´lohu opˇet ˇreˇs´ıme simplexov´ ym algoritmem: 1 4 1
1 3 0
−1 2 2
0 0 −1
0 7 1
1 0 1
1 3 0
−1 −6 2
0 4 −1
0 3 1
1 0 1
1 1 0
−1 −2 2
0 4 3
0 1 1
0 0 1
0 1 0
−1 −2 2
−1 − 13 4 3
−1
-2 1 1
Optim´ aln´ım ˇreˇsen´ım t´eto u ´lohy je vektor x = [1, 1, 0, 0]T . Protoˇze je celoˇc´ıseln´ y, hledan´ ym optim´aln´ım ˇreˇsen´ım p˚ uvodn´ı u ´lohy CLP je vektor xc = [1, 1, 0]T . Pozn´ amka. 1. Poˇcet nutn´ ych oˇr´ıznut´ı“ m˚ uˇze b´ yt velk´ y, a kaˇzd´ ym oˇr´ıznut´ım se zvˇetˇsuje rozmˇer u ´lohy. Proto se ” pˇri praktick´em pouˇzit´ı zpravidla poˇcet iterac´ı limituje, a kdyˇz metoda ned´a v´ ysledek, zkouˇs´ı se jin´e postupy.
56
2. Uveden´ y postup je zn´ am jako (prvn´ı) Gomoryho algoritmus. 3. Postupy uˇz´ıvaj´ıc´ı metodu seˇcn´ ych nadrovin zpravidla nejsou pˇr´ıliˇs vhodn´e pro bin´arn´ı u ´lohy. 4. Praktickou str´ anku algoritmu lze jeˇstˇe dost v´ yraznˇe zjednoduˇsit. V element´arn´ı podobˇe, v n´ıˇz jsme metodu uvedli, totiˇz po pˇrid´ an´ı oˇrez´ avac´ı podm´ınky vektor x∗ nen´ı PR, takˇze se pˇri kaˇzd´e iteraci mus´ı probˇehnout cel´ y simplexov´ y algoritmus od zaˇc´atku. To lze odstranit postupy, pˇri nichˇz se souˇcasnˇe ˇreˇs´ı i du´ aln´ı u ´loha (tzv. du´ aln´ı simplexov´a metoda), protoˇze x∗ z˚ ustane du´alnˇe pˇr´ıpustn´e.
5
P´ arov´ an´ı
V cel´e t´eto kapitole se budeme zab´ yvat neorientovan´ ymi grafy; term´ın graf“ tedy vˇzdy znamen´a neori” entovan´ y graf.
5.1
Z´ akladn´ı pojmy, perfektn´ı p´ arov´ an´ı
Definice 5.1. Pravideln´ y podgraf stupnˇe 1 grafu G se naz´ yv´a p´arov´an´ı (angl. matching“) v grafu G. ” Pravideln´ y faktor stupnˇe 1 grafu G se naz´ yv´a perfektn´ı p´arov´an´ı v grafu G. P´ arov´ an´ı v grafu G, maj´ıc´ı nejvˇetˇs´ı moˇzn´ y poˇcet hran, se naz´ yv´a nejvˇetˇs´ı p´arov´an´ı v grafu G. Pozn´ amka. 1. Anglick´ a terminologie: p´ arov´an´ı = matching, perfektn´ı p´arov´an´ı = perfect matching. 2. Opˇet si mus´ıme uvˇedomit rozd´ıl mezi pojmy maxim´aln´ı“ a nejvˇetˇs´ı“ (angl. maximal“ a ma” ” ” ” ximum“). Pˇr´ıklad je na n´ asleduj´ıc´ım obr´ azku, v nˇemˇz jsou hrany p´arov´an´ı vyznaˇceny silnˇeji (maxim´aln´ı p´ arov´ an´ı nemus´ı b´ yt nutnˇe nejvˇetˇs´ı). Maxim´aln´ı p´arov´an´ı (nˇejak´e) lze samozˇrejmˇe snadno nal´ezt hladov´ ym algoritmem, ale pro nalezen´ı nˇejvˇetˇs´ıho p´arov´an´ı je tˇreba pouˇz´ıt jemnˇejˇs´ı metody (i kdyˇz, jak uvid´ıme, je tato u ´loha ze tˇr´ıdy P, tj. ˇreˇsiteln´a v polynomi´aln´ım ˇcase i pamˇeti). •..............................
•
.. ............. ......... ....... ......... ......... ..... ... ......... ......... . . . . ......... . ...... . . . ... ..... ......... .... .. ......... ......... ............................................................................................... ... .... ............ . . . . . ... . . . .... ......... ...... . . . . . . . ... . . . . .... ......... .. ......... .. ... .......... ......... ........ . . . . . .... . . . . . ......... .... . .......... ................... ..
•
•
•
•.................................. ..... . ..... ........ .... ........ .... ........ . .....
•
•
maxim´ aln´ı
•
.... ........ .. ......... .... ......... ......... .. ....... ......... ......... . . . ......... . . . . . ...... ... ... ......... ........... ...... .. ......... ............................................................................................ ...... .... .. ........... . . . . . . . . . . ....... ......... .... ...... . . . . . . . . . . . . . . . ....... ......... . ........ ......... ........ ..... ......... ......... ...... .................. ......... ....... ......... .... ................. ....
•
nejvˇetˇs´ı
• •
Graf na n´ asleduj´ıc´ım obr´ azku je pˇr´ıkladem grafu, v nˇemˇz existuje perfektn´ı p´arov´an´ı. •
•
•
•
•
•
•
........................................................................................................................................................................ .. . ........ ............... ......... ......... ... ...... .. ......... ......... ..... .... .... ......... ................ ..... . . . . . . . . ... . . . . ........ ................ ..... ... .... ......... ......... . . ..... . . . . . . . . ... . . . . ......... ... .. ................ . . . . . . . . . . .. ....................................................................................................................................................... ...... ..... ..... . . . . . .. ..... ..... ............ ............ ..... ......... ........... ..... ......... ..... ............ ..... ..... ....... . ..... ...... ........... ........... ................................................................................................
•
Prvn´ı a samozˇrejmou nutnou podm´ınkou existence perfektn´ıho p´arov´an´ı je sud´ y poˇcet uzl˚ u grafu. Tato podm´ınka vˇsak zdaleka nen´ı postaˇcuj´ıc´ı, coˇz si m˚ uˇzeme ovˇeˇrit na jednoduch´em pˇr´ıkladu: •.............................................................................................................................•....... . ......... ........ ......... ......... ........ . . . . . . . .... ......... ........ ........ .........
... ... ... ... ... ... ... ..
• • Pˇ r´ıklady. Ukaˇzme si nˇekolik pˇr´ıklad˚ u aplikac´ı pojmu p´arov´an´ı a perfektn´ıho p´arov´an´ı.
57
´ 1. Pˇredstavme si hudebn´ı skupinu na turn´e. Ukolem je ubytovat ˇcleny kapely v hotelu na dvoul˚ uˇzkov´ ych pokoj´ıch. V grafu uzly budou odpov´ıdat ˇclen˚ um kapely a hrany budou spojovat uzly tˇech ˇclen˚ u kapely, kteˇr´ı mohou m´ıt spoleˇcn´ y pokoj. Je samozˇrejmˇe nutno ubytovat vˇsechny ˇcleny, a to tak aby byli na pokoj´ıch vˇzdy ve dvojici, kter´a si sobˇe nevad´ı. 2. Mˇejme d´ anu mnoˇzinu X chlapc˚ u a mnoˇzinu Y dˇevˇcat. Tyto mnoˇziny X, Y budou pˇredstavovat ´ uzly bipartitn´ıho grafu. Hranami spoj´ıme ty dvojice, kdy chlapec x zn´a d´ıvku y. Ukolem je sp´arovat vˇsechny dˇevˇcata i chlapce, napˇr. v taneˇcn´ıch. 3. Pˇripomeˇ nme si probl´em z pˇredmˇetu TGD1: ˇctvercov´a matice A je genericky regul´arn´ı, pr´avˇe kdyˇz jej´ı bigraf m´ a perfektn´ı p´ arov´ an´ı. Obecnˇeji, generick´a hodnost matice A je rovna velikosti nejvˇetˇs´ıho p´ arov´ an´ı v jej´ım bigrafu. 4. Jsou d´ any dvˇe mnoˇziny X a Y . Mnoˇzina X bude pˇredstavovat mnoˇzinu profes´ı a mnoˇzina Y pracovn´ıky. Sestroj´ıme bipartitn´ı graf s mnoˇzinou uzl˚ u U (G) = X ∪ Y mnoˇzinou hran tvoˇrenou vˇsemi dvojicemi {x, y}, pro nˇeˇz pracovn´ık yj ∈ Y um´ı profesi xi ∈ X. Nav´ıc je d´ano hranov´e ohodnocen´ı wij , maj´ıc´ı v´ yznam efektivity pracovn´ıka yj v profesi xi . ´ Ukolem je nal´ezt optim´ aln´ı pˇriˇrazen´ı pracovn´ık˚ u profes´ım (tzv. optimum assignment problem). ´ Uloha vede, jak jiˇz asi je patrn´e, na p´ arov´an´ı v bipartitn´ım grafu, ale v ohodnocen´em, a s podm´ınkou maximalizace sumy ohodnocen´ı. 5. Obecn´ a formulace pˇredchoz´ı u ´lohy: je d´an ohodnocen´ y neorientovan´ y graf; ´kolem je nal´ezt opP u w(hi ). tim´ aln´ı p´ arov´ an´ı, tj. perfektn´ı p´ arov´ an´ı M , kter´e maximalizuje v´ yraz hi ∈H(M )
Pˇ r´ıklad. Ukaˇzme si na pˇr´ıkladu, jak lze u ´lohu nalezen´ı optim´aln´ıho p´arov´an´ı pˇrev´est na u ´lohu celoˇc´ıseln´eho line´ arn´ıho programov´ an´ı. Mˇejme d´ an n´asleduj´ıc´ı graf, kde ci je ohodnocen´ı i-t´e hrany hi . c2 = 4
•2
3•
...................................................................................................................................................... ....... ... .......... ...... .. ...... ...... .... ... ...... ..... . . . . ... ... ...... . ..... . ...... . . . ... . . . ...... ... . . . . . . . . . ...... 3 1 . . ... . . . . ...... . . . . . . . ...... ..... . . . . . . . . ...... . . ... . . . . . ...... . . . . . . ...... ..... . . . . . . . . ..... .. .. .......... . . ... . . ...... 4 5 . . ...... . . ...... ..... . .. .. . . ...... . . . . . . .... ...... . . . . . . . . . ...... ...... ...... .... .... ..... ...... ... ... ...... ...... ...... ...... ... ... ..... . 6 8 ...... . . . . . . . . ...... ... ...... .... .... ........... ...... .. ...........................................................................................................................................................
c =5
c =3
1 •
c =3
• 4
c =5
c =2
c =4
• • c7 = 1 5 6 Pro p´ arov´ an´ı M poloˇzme xi = 0, jestliˇze hi ∈ / H(M ), a xi = 1, pokud hi ∈ H(M ). ´ Ulohu m˚ uˇzeme zapsat jako u ´lohu celoˇc´ıseln´eho line´arn´ıho programov´an´ı n´asleduj´ıc´ım zp˚ usobem. max 5x1 + 4x2 + 3x3 + 3x4 + 5x5 + 2x6 + x7 + 4x8 x1 x1
+x6 +x2 x2
+x4 +x3 x3
+x5 +x8 x4
+x6 x5
+x7 +x7
+x8
xi ∈ {0, 1} , i = 1, . . . , 8.
58
=1 =1 =1 =1 =1 =1
Je zˇrejm´e, ˇze se jedn´ a dokonce o u ´lohu bin´arn´ıho CLP. Matice podm´ınek t´eto u ´lohy je tvaru A=
1 1 0 0 0 0
0 1 1 0 0 0
0 0 1 1 0 0
0 1 0 0 1 0
0 0 1 0 0 1
1 0 0 0 1 0
0 0 0 0 1 1
0 0 0 1 0 1
.
Je zˇrejm´e, ˇze A je uzlo-hranovou incidenˇcn´ı matic´ı grafu G. Bohuˇzel, protoˇze ale G je neorientovan´ y, matice A obecnˇe nen´ı tot´ alnˇe unimodul´ arn´ı (v naˇsem pˇr´ıpadˇe staˇc´ı napˇr. uvaˇzovat determinant ˇctvercov´e podmatice ˇr´ adu 3 sestaven´e z ˇr´ adk˚ u 1, 2, 5 a sloupc˚ u 1, 4, 6, kter´ y je roven dvˇema). K ˇreˇsen´ı tedy nem˚ uˇzeme pouˇz´ıt simplexov´ y algoritmus. Pˇ r´ıklad. Dalˇs´ı pˇr´ıklad n´ am uk´ aˇze, ˇze v pˇr´ıpadˇe bipartitn´ıho grafu bude situace mnohem snazˇs´ı. Mˇejme tedy n´ asleduj´ıc´ı bipartitn´ı graf (ˇc´ısla ci jsou opˇet ceny hran). c 1 •...........................................................................................................................1.............................................................................................................................................................................................................•... 1’ .. ........ ... ..... ........ ...............c ......2 .............. ............... .......... .. .............. c3............................. ........................................................................................................ ............................. ............ ....... c4........................................................................ ................................... .............. ........ ........ .... ........ .............. . . . . . . . . . . . . . . . . . . c . . . . ................................................................................................................................................. ............................................................................5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... .... ........... 2 • .................................. 2’ . . . . .............. • . . . ........ .............. ..... . . . . . . . . . .............. . . . . . . . . . . . . . . . . ........ .............. c6 ....................................................... . . . . . . . . . . . ........ ........... . . . . . . . . . . . . . . . . ... . ... .. c7...................... ........................................................................................................ .............................. .............. ........ .... .............. ............... ........ ...........................c . . . . . . .............. ....... . . .. 8 ...... ... ....................... ........................................................................................................................................................................................................................................................ . . • 3’ 3 • c9 Protoˇze je n´ aˇs graf bipartitn´ı, m˚ uˇzeme jeho hrany orientovat od X = {1, 2, 3} k Y = {10 , 20 , 30 }. Podle vzoru z pˇredchoz´ıho pˇr´ıkladu pˇrevedeme u ´lohu nalezen´ı optim´aln´ıho p´arov´an´ı na u ´lohu CLP. Cenov´ a P funkce bude m´ıt stejn´ y tvar, tedy ∀i ci xi , a budeme ji maximalizovat. Vzhledem k orientaci budou m´ıt podm´ınky pro uzly grafu n´ asleduj´ıc´ı tvar. x1
+x2
+x3 x4
−x1
+x5
+x6 x7 −x7
−x4 −x2
+x8
−x5 −x3
+x9
−x8 −x6
−x9
= 1 = 1 = 1 = −1 = −1 = −1
xi ∈ {0, 1} , i = 1, . . . , 9. Matice podm´ınek je opˇet uzlo-hranov´ a incidenˇcn´ı matice, tentokr´at vˇsak orientovan´eho bipartitn´ıho grafu. A=
1 0 0 −1 0 0
1 0 0 0 −1 0
1 0 0 0 0 −1
0 1 0 −1 0 0
0 1 0 0 −1 0
0 1 0 0 0 −1
0 0 1 −1 0 0
0 0 1 0 −1 0
0 0 1 0 0 −1
Podle Vˇety 4.5 je matice A tot´ alnˇe unimodul´arn´ı. Vid´ıme, ˇze v bipartitn´ım pˇr´ıpadˇe je u ´loha znaˇcnˇe jednoduˇsˇs´ı.
59
Pozn´ amka. Obdobn´ y postup je moˇzno pouˇz´ıt i pro nalezen´ı nejvˇetˇs´ıho p´arov´an´ı. Podm´ınky by pak ˇr´ıkaly, ˇze kaˇzd´ y uzel mus´ı b´ yt incidentn´ı s nejv´ yˇse jednou hranou p´arov´an´ı – rovnosti v podm´ınk´ach bychom tedy nahradili nerovnostmi nejv´ yˇse jedna hrana“ (napˇr.x1 + x2 + x3 ≤ 1), ceny hran bychom ” uvaˇzovali rovny jedn´e. Maximalizac´ı cenov´e funkce bychom z´ıskali poˇcet hran nejvˇetˇs´ıho p´arov´an´ı. V n´ asleduj´ıc´ıch odd´ılech budeme postupnˇe vyˇsetˇrovat jednoduˇsˇs´ı pˇr´ıpady obecn´e u ´lohy optim´aln´ıho p´ arov´ an´ı, a to v poˇrad´ı: nejvˇetˇs´ı p´ arov´ an´ı v neohodnocen´em bipartitn´ım grafu, optim´ aln´ı p´ arov´ an´ı v ohodnocen´em bipartitn´ım grafu, nejvˇetˇs´ı p´ arov´ an´ı v neohodnocen´em grafu (obecnˇe nebipartitn´ım). Uvid´ıme, ˇze na vˇsechny tyto u ´lohy existuj´ı algoritmy, kter´e naleznou ˇreˇsen´ı v polynomi´aln´ım ˇcase. Pˇr´ıpad ohodnocen´ ych neorientovan´ ych (obecnˇe nebipartitn´ıch) graf˚ u je znaˇcnˇe netrivi´aln´ı a nebudeme se j´ım zab´ yvat, i na nˇej vˇsak existuj´ı polynomi´ aln´ı algoritmy, zaloˇzen´e na vyuˇzit´ı grafov´ ych vlastnost´ı u ´lohy. Nejprve ale vybudujeme z´ akladn´ı d˚ ukazov´e techniky a pomoc´ı nich dok´aˇzeme charakterizaˇcn´ı vˇetu nejvˇetˇs´ıho p´ arov´ an´ı.
5.2
Rozˇ siˇ ruj´ıc´ı cesty a Bergeova vˇ eta
ˇ Definice 5.2. Necht’ G je graf a M p´ arov´an´ı v G. Rekneme, ˇze p´arov´an´ı M pokr´ yv´a uzel x, jestliˇze existuje hrana h ∈ H(M ) takov´ a, ˇze x ∈ h. ˇ Definice 5.3. Necht’ G je graf, M p´ arov´an´ı v G a P cesta v G (H(M ) 6= ∅, H(P ) 6= ∅). Rekneme, ˇze cesta P je M -alternuj´ıc´ı, jestliˇze jej´ı hrany stˇr´ıdavˇe jsou a nejsou v p´arov´an´ı M . Pˇ r´ıklad.
•
•
o
............................................................................................................................................................................. ................................ ..... ........... . . ............ ...... ...... .... ......... ..... ...... ..... ....... ... ..... ................... ...... ..... . ...... ..... . ........... .............. ... . . ...... ...... ..... ........... . ... . . . . . ...... . . . . . . . . . . ...... ... ..... ............ ...... .......... .... .... . . . . . . . . . . . . . . . . . . . . . . . . . . ...... . .. .... .......................... ..... ........ ....... ........... ..... ........ . ..... ...... ..... ........ ..... .................................................................................................................. .. ........ ..... ...................................... .......... . .. ................................................. .......... ......... .............. ....... . . . . . . . . . ........... .......... .... ........ . .. ........... .................. ......... ... ........... ...... ... ....................... ........... ....... ...................... ........... ... .......... ...................... ........... ........... ................................................................ .............
M
•
o
•
M
•
•
M
M
o
•
• Hrany vyznaˇcen´e tuˇcnou ˇcarou ukazuj´ı M -alternuj´ıc´ı cestu, hrany t´eto cesty oznaˇcen´e M jsou hrany p´ arov´ an´ı, hrany oznaˇcen´e o jsou hrany mimo p´arov´an´ı. ˇ Definice 5.4. Necht’ G je graf, M p´ arov´an´ı v G a P cesta v G. Rekneme, ˇze cesta P je M -rozˇsiˇruj´ıc´ı, jestliˇze P je M -alternuj´ıc´ı cestou a oba jej´ı koncov´e uzly nejsou M -pokryty. Pozn´ amka. 1. Nejjednoduˇsˇs´ım pˇr´ıpadem M -rozˇsiˇruj´ıc´ı cesty je hrana, neleˇz´ıc´ı v M . 2. Cesta P v minul´em pˇr´ıkladu je o-rozˇsiˇruj´ıc´ı. Pˇ r´ıklad. V grafu na n´ asleduj´ıc´ım obr´ azku je cesta P vyznaˇcena silnˇe, hrany oznaˇcen´e M patˇr´ı do p´ arov´ an´ı, hrany oznaˇcen´e N jsou hranami M -rozˇsiˇruj´ıc´ı cesty P , ale nepatˇr´ı do p´arov´an´ı M . ............................................................................................................................• ................... .......• ......... ..... ....... ....... .... .................. ........ ............ ......... N..................... ...................... ............................ ......... ....... ......... ......... ...... . ......... . . . . . . . . . . . ......... . . ......... . . . . . . . ....... ........ ......... ........ ....... ............ ......... ......... ..... ....... . . . . . . . . •.................................. . . . . . . . ....... M ........ ....... .........• M .... . . . . . ......... . . . . . . . . . . . . . . . ....... ......... ..... ...... . ........... . . ....... . . . . . ......... . . . . . . . . . . . . ....... ....... ..... ......... ... . ......... . . . . . . . . . . . . . . . . . . . . . . ....... ....... . ......... . ......... ......... ........... ............. N N ................................................................................................................................................... •..... •..... ... . . . . .........................................................• .... •.................................................M Jestliˇze pod´el M -rozˇsiˇruj´ıc´ı cesty P prohod´ıme p´arov´an´ı M s mnoˇzinou hran N , z´ısk´ame opˇet p´arov´an´ı, kter´e ale m´ a o jednu hranu v´ıce. 60
•
•
....................................................................................................................................................... ........ ........ .... ............ ......... .... ........ ....... ........ ... ........ ........ ......... ....... .. ... ........ ........ ......... ....... . . . . . ... . . ........ ... ......... ....... . ..... . . . . . . . ........ . . . . . . . . . . ... ....... .... ........ .. . ..... . . . . . . . . . . . . . . . . . . . . ....... ............ . .... . ............ . . . . . . . . . ..... ........ . ...... .......... . . ....... . .... . . . . ........ . . ....... ........ . ..... . . . . ........ .. . . . . . . . . . . . . . . . . . ....... ........ .... . .... . . . . . . . . . . . . ........ . .... . . . . . . . . ....... .... ..... ........ .. ....... .. ......... ........ ........ .... ... ........ ........ ... ................ ................................................................................................................................................. ..... ..... ... .. ... ... ..............................................................................................................
•
•
•
•
•
•
(Silnˇe vyznaˇcen´e hrany jsou hranami nov´eho vˇetˇs´ıho p´arov´an´ı.) Tento pˇr´ıklad ukazuje, ˇze pokud v grafu existuje M -rozˇsiˇruj´ıc´ı cesta, lze po n´ı p´arov´an´ı M zvˇetˇsit. Jinak ˇreˇceno, neexistence M -rozˇsiˇruj´ıc´ı cesty v grafu je nutnou podm´ınkou toho, aby p´arov´an´ı M bylo nejvˇetˇs´ı. N´ asleduj´ıc´ı vˇeta n´ am uk´ aˇze, ˇze je to i podm´ınka postaˇcuj´ıc´ı. Vˇ eta 5.1. Berge (1957) M -rozˇsiˇruj´ıc´ı cesta.
P´ arov´ an´ı M je nejvˇetˇs´ım p´arov´an´ım v grafu G, pr´avˇe kdyˇz v G neexistuje
D˚ ukaz. Dok´ aˇzeme ekvivalentn´ı tvrzen´ı, ˇze v grafu G existuje M -rozˇsiˇruj´ıc´ı cesta, pr´avˇe kdyˇz p´arov´an´ı M nen´ı nejvˇetˇs´ı. 1. Necht’ tedy v G existuje M -rozˇsiˇruj´ıc´ı cesta. Pak lze po t´eto cestˇe p´arov´an´ı M zvˇetˇsit, a tedy M nen´ı nejvˇetˇs´ı. 2. Necht’ naopak p´ arov´ an´ı M nen´ı nejvˇetˇs´ım p´arov´an´ım, tj. necht’ existuje nˇejak´e vˇetˇs´ı p´arov´an´ı N . Plat´ı tedy |H(M )| < |H(N )|. Necht’ G0 je podgraf urˇcen´ y tˇemi hranami, kter´e leˇz´ı v pr´avˇe jednom z p´ arov´ an´ı M a N , tj. v symetrick´e diferenci mnoˇzin H(M ) a H(N ). Pak kaˇzd´ y uzel podgrafu G0 m´ a v G0 stupeˇ n 1 nebo 2 (vˇetˇs´ı stupeˇ n uzlu je vylouˇcen, nebot’ kaˇzd´e p´arov´an´ı je pravideln´ y podgraf stupnˇe 1 a dvˇe p´ arov´ an´ı tedy mohou d´at stupeˇ n uzlu nejv´ yˇse 2). Odtud plyne, ˇze kaˇzd´ a komponenta grafu G0 je kruˇznice sud´e d´elky (nebot’ hrany kruˇznice jsou stˇr´ıdavˇe v M a v N ) nebo cesta. Pokud by vˇsechny komponenty G0 byly kruˇznice (jen sud´ ych d´elek, jak bylo uk´az´ano), nebo cesty sud´ ych d´elek, platilo by |M | = |N |, coˇz je spor. Tedy nutnˇe mus´ı v G0 existovat cesta P lich´e d´elky, kter´ a zaˇc´ın´ a i konˇc´ı v N . Tedy P je M -rozˇsiˇruj´ıc´ı cestou. 2 Pozn´ amka. 1. Symetrick´ a diference dvou mnoˇzin A, B je mnoˇzina vˇsech prvk˚ u, z A ∪ B, kter´e leˇz´ı v pr´ avˇe jedn´e z mnoˇzin A, B. Znaˇc´ı se A∆B a plat´ı pro ni A∆B = (A ∪ B) \ (A ∩ B) = [(A \ B) ∪ (B \ A)]. 2. Bergeova vˇeta sice je charakterizaˇcn´ı vˇetou, ale nen´ı to dobr´a charakteristika, protoˇze v pˇr´ıpadˇe, ˇze M je nejvˇetˇs´ı, svazuje neexistenci vˇetˇs´ıho p´arov´an´ı s neexistenc´ı M -rozˇsiˇruj´ıc´ı cesty.
5.3
Nejvˇ etˇ s´ı p´ arov´ an´ı v bipartitn´ım grafu a mad’arsk´ a metoda
Mnoˇzinu uzl˚ u bipartitn´ıho grafu lze rozdˇelit na dvˇe disjunktn´ı podmnoˇziny X a Y tak, ˇze X ∪ Y = U (G) a pro kaˇzdou hranu uv je u ∈ X a v ∈ Y , nebo u ∈ Y a v ∈ X. Proto u bipartitn´ıho grafu budeme struˇcnˇe ps´ at G = (X, Y ). Definice 5.5.
Necht’ G = (X, Y ) je bipartitn´ı graf, S ⊂ X. Mnoˇzina uzl˚ u
N (S) = {y ∈ Y | ∃x ∈ S tak, ˇze {x, y} ∈ H(G)} se naz´ yv´ a okol´ı mnoˇziny uzl˚ u S.
61
. Pozn´ amka.
Tedy, pro S ⊂ X je N (S) ⊂ Y . Symetricky, pro S ⊂ Y je N (S) ⊂ X.
Je zˇrejm´e, ˇze pokud |X| = 6 |Y |, pak v bipartitn´ım grafu nem˚ uˇze existovat perfektn´ı p´arov´an´ı. Omezen´ı na grafy s |X| = |Y | je vˇsak pˇr´ıliˇs siln´e. Z aplikac´ı, uveden´ ych v u ´vodu t´eto kapitoly, je vidˇet, ˇze je uˇziteˇcn´e pt´ at se na existenci p´ arov´ an´ı, pokr´ yvaj´ıc´ıho vˇsechny uzly v X, pokud |X| ≤ |Y |. Tato trivi´alnˇe nutn´ a podm´ınka ale zdaleka nen´ı postaˇcuj´ıc´ı. Pˇ r´ıklad.
Najdˇete p´ arov´ an´ı pokr´ yvaj´ıc´ı vˇsechny uzly v X v n´asleduj´ıc´ım grafu B. x1 •..............................................
x2 •
x3 •
x4 •
x5 •
....... ... .......... ............... ................. ....... ................. ..... .. ....................................... ................... ..... .. ......... ........... ..... .. ......... ............. .................... ............ ..... ..... .......... ......... ........ ....... ..... .... ......... ................. ....... ..... ......... .................... . . . . . . .. ... ......... ......... . . . . . . . ......... . . . . . . . . . . . . . . . . . . . ...... ......... ....... ... ..... .... . ... ......... ............ ........................... ............................................... ..... .......... .......... ................. .... ... ............................. ..................... .......... ..... ........ .......... ... ..... .................. ............. .................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............. ... . ......... ............ ... ...... ......... ............ ............... .... ............. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............. ... ... .......... ... ....... ................... ................................. .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............. ... ......... .......... ....... ............... .... ............... ........................... .... . . . . . . . . . . . . . . . . . .. . . . . . . . ......... ............. ......... .......... .. ........................ ... ......... ............... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............. .... ......... ..... ........................ .............................. ... ...... ...... ...... ..... ..
• • • • • y1 y2 y3 y4 y5 V tomto grafu p´ arov´ an´ı pokr´ yvaj´ıc´ı X neexistuje, protoˇze pro mnoˇzinu uzl˚ u S = {x1 , x3 , x4 } (viz tuˇcnˇe vyznaˇcen´ y podgraf grafu B) plat´ı |N (S)| < |S|. Lze tedy pokr´ yt nejv´ yˇse |N (S)| uzl˚ u z S. Z pˇredchoz´ıho pˇr´ıkladu je vidˇet, ˇze dalˇs´ı nutnou podm´ınkou existence p´arov´an´ı, pokr´ yvaj´ıc´ıho celou mnoˇzinu X, je, aby pro kaˇzdou podmnoˇzinu S ⊂ X platilo |N (S)| ≥ |S|. N´asleduj´ıc´ı vˇeta ˇr´ık´a, ˇze tato podm´ınka je i postaˇcuj´ıc´ı. Vˇ eta 5.2. Hall (1935) Bipartitn´ı graf G = (X, Y ) m´a p´arov´an´ı pokr´ yvaj´ıc´ı vˇsechny uzly z X, pr´avˇe kdyˇz pro kaˇzdou mnoˇzinu uzl˚ u S ⊂ X je |N (S)| ≥ |S|. D˚ ukaz. 1. Jestliˇze pro nˇekterou S ⊂ X je |N (S)| < |S|, pak zˇrejmˇe v S lze p´arov´an´ım pokr´ yt nejv´ yˇse |N (S)| uzl˚ u. P´ arov´ an´ı pokr´ yvaj´ıc´ı X tedy nem˚ uˇze existovat. 2. Necht’ naopak plat´ı |N (S)| ≥ |S| pro kaˇzdou podmnoˇzinu S ⊂ X, necht’ M je nejvˇetˇs´ı p´arov´an´ı v grafu G, a pˇredpokl´ adejme, ˇze M nepokr´ yv´a uzel u ∈ X. Oznaˇcme Z mnoˇzinu vˇsech uzl˚ u, do nichˇz vede z uzlu u M -alternuj´ıc´ı cesta, S mnoˇzinu S = Z ∩ X, T mnoˇzinu T = Z ∩ Y . Protoˇze p´ arov´ an´ı M je nejvˇetˇs´ı, je v mnoˇzinˇe Z jedin´ y nepokryt´ y uzel, a to pr´avˇe uzel u – jinak by totiˇz podle Bergeho vˇety nebylo M nejvˇetˇs´ım p´arov´an´ım. To znamen´a, ˇze vˇsechny uzly v mnoˇzinˇe T jsou pokryty, tedy mnoˇzina uzl˚ u T je sp´ arov´ana s mnoˇzinou uzl˚ u S \{u}. Je zˇrejm´e, ˇze plat´ı |T | = |S|−1, ale mnoˇzina T je vlastnˇe okol´ım mnoˇziny S, a tedy |N (S)| = |S| − 1, tj. |N (S)| < |S|, coˇz je spor s pˇredpokladem vˇety. 2 Pozn´ amka. 1. Prakticky vˇeta napˇr. ˇr´ık´ a, ˇze mnoˇzinu X zamˇestnanc˚ u lze zamˇestnat pr´avˇe tehdy, pokud kaˇzd´ a skupina S ⊂ X pracovn´ık˚ u um´ı alespoˇ n |S| profes´ı. 2. Hallova vˇeta (na rozd´ıl od Bergeovy vˇety) je dobrou charakteristikou: – existuje-li p´ arov´ an´ı, pokr´ yvaj´ıc´ı X, najdeme ho, – neexistuje-li p´ arov´ an´ı, pokr´ yvaj´ıc´ı X, najdeme mnoˇzinu S ⊂ X, pro kterou je |N (S)| < |S|. Ot´ azka existence p´ arov´ an´ı, pokr´ yvaj´ıc´ıho X, tedy je v NP ∩ co-NP. Myˇslenka d˚ ukazu Hallovy vˇety je z´ akladem algoritmu na nalezen´ı p´arov´an´ı, pokr´ yvaj´ıc´ıho mnoˇzinu X. Tento algoritmus spoˇc´ıv´ a v systematick´em vyhled´av´an´ı M -rozˇsiˇruj´ıc´ıch cest a je zn´am jako mad’arsk´ a metoda.
62
Algoritmus (mad’arsk´ a metoda) 1. Inicializace - zvol libovoln´e p´ arov´ an´ı M v G (staˇc´ı i jedna hrana). 2. Pokud M pokr´ yv´ a celou mnoˇzinu X, KONEC. Jinak najdi nepokryt´ y uzel u ∈ X, poloˇz S := {u}, T = ∅. 3. Pokud N (S) = T , pak |N (S)| = |T | = |S| − 1, STOP, hledan´e p´arov´an´ı neexistuje. Jinak najdi uzel y ∈ N (S) \ T . 4. Je-li uzel y M -pokryt´ y, pak existuje uzel z ∈ X, kter´ y je s uzlem y sp´arovan´ y. Poloˇz S := S ∪ {z}, T := T ∪ {y}, jdi na 3. Jinak najdi M -rozˇsiˇruj´ıc´ı cestu P z u do y, sestroj p´arov´an´ı M 0 prohozen´ım hran z M pod´el cesty P , poloˇz M := M 0 , jdi na 2. V´ yvojov´ y diagram mad’arsk´e metody je uveden na n´asleduj´ıc´ım obr´azku. .................................... ........ ...... ...... ..... ..... ..... ..... ... . . ... ... . ... START: .. ... . ... .... ... ... ... libovoln´ e vstupn´ı ..... ... ... .. . ... ... ... arov´ an´ı M ...... ... p´ .... ... ..... . . . . . ...... ...... ....... ....... ............ ........................ . ........ ......... ..... ... ......................... ... ........... ....... ....... ... ...... ...... ..... .. ..... ... . . ............................................................. . . . . . . . ... .. ...... ............. . . ... . . . . ... . . . . ........ .... . . . ... . . .. ... . . . . . . . . ........ . ... ...... ... . . .. . . . . . . . ANO . . . . ........ . ... . .... ... . STOP: . . . . . . . . . . . . . . ........ ... ... . . ........... ..... . . . . . . . . . . . . . . . . . . . . . . . . . . ....................................................................................... ˆ → M ............................ .................................. Je X M -pokryt´ a ? .............................. ........................ . . . ... M . . .... ... . ... ........ .... . . . .. ... .. . . . . . ... . . ........ ... M pokr´ . ...... y v´ a X ... . . . .. ........ . . . . . ... . . ... . ........ .... ... ... .... ... ........ ........ ... ... ....................... ... ... ... ........................................................... ..... .. .... NE ... ..... ..... ... . . ...... . ... . .... ........ ... ................................... ......... existuje M -nepokryt´ y ... ......... ... ..... ... ... uzel u ∈ X ... ... ... ... ... ... ... ... ... .............................................................. .. .. ... ... .. ... .... {u} → S .... ... ... ... ... ... . ... . ∅→T ... .... ... ... ... .. ... ............................................................. ... . ......... ... ......... ... ..... ... .... .. . . . . . . . . ... . . . ......... . . .......... ........ . . ..... . . . . ... . . . . . ...... .... . . ....... . . . . . ..... ................ . . .... . . . . . . . . .... ........ ... ...... . . ........ ... . . . . . ... . . ... ........ ............................................................................ ........ ... ... ... ANO ........ ........ STOP .... ........ ... .... ... ... ....... ........ . . ................................................................ ... ..... ... ......... ........ ............................................................................ T ∪ {y} → T .... . N (S) = T . . . ... . ... ... . ........ .. .... . . . . ... . . . . . . .... . ... . . ........ .. ...... . ... |N (S)| < |S| ... . . ........ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . ... ........ .. ........ .... .... ........ ... ........ ... . . . . . . . . . . . ..... . . .. . ............. . ... . . ..... . . . ... . . ....... .. .. .... ... ............ .................. ........ NE . ...... ... ... ........ ... ... ... . . ... . ... existuje uzel ..... .. ... . . .... ... ........... ..... ... y ∈ N (S) \ T ... . . ... ... ... ... ... .... . ... ... ...................... ... ... ........ ........ . . . . ... . .... . ........ .... . . . . . . ....................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . ........ . ANO ...... . . . . . . . . . ... . . ... . ........ .. ..... . . . . . . . . . . . . .. . ... ....................................................................... ............ Je uzel y M -pokryt´ . . . . . . . S ∪ {z} → S ..... y ? . . ... . . .. .. ........ .... . . . . . ........ . . . .. ... .. ...... ........ . . . . . . ... . . ........ existuje hrana .......................................................................... ........ ........ ... ........ . ........ . . . . ... . ................ ............................................................ ... . {yz} ∈ M ... .... ... ... ... ... ... ... . ... ... . ... NE ˆ = ... ... .. M . ... ...................................................................................................................... .......................................................................................... ... ... ... ... .. .... M ∆H(P ) .... existuje M -rozˇ siˇ ruj´ıc´ı ... ... ............................................................ cesta uy
ˇ SMYCKA 2.
ˇ SMYCKA 1.
63
Pˇ r´ıklad.
V grafu G najdˇete p´ arov´ an´ı pokr´ yvaj´ıc´ı vˇsechny uzly mnoˇziny X. x1 •.....................
x2 ........................ ..• ... ...... ..................
x3 ............ ..• ... ......
x4 ..... ........• ........
x5 ............ ..• ... ......
... ...... . ............... .. . ... .. ..... ...... ... ...... ........ ..... ............ ... ....... ... ...... ... ....... ...... ... ...... ......... ...... ... ...... .... ........... ... ........... ...... .. ...... ... ......... ...... .. . ... ... ...... ...... ........ .... ......... ........... ... ............... ... ...... ................................. . . . ... ... ...... ............ ......... . . . ...... ...... ...... ........ ... ...... ........ ... ... .. .. .......... .............. ......... ....... ..... ... ... . . . . . . . . . . . . . . . . . . . . . ........... . . . . . . . . . . . ... .......... ......... ... ........... ....... ......... .... . . .. ..... . . . . . . . . . . . . . . ......... ........ ... . ... ........ ........... ....... ........... . .. . . . . . . . . . . . . . . . . . . ........... ........ .. ... . ........ . ........ ........ ....... ....... . . .. . . . . . . . . . . . . . . . . . . . . . ......... ...... ... ........ ... ............ ........ ......... .... .. . . . . . . . . . . . . . . . . . . . . . . ...... ........ ...... ...... ... ...... .. ...... . ....... .... .. . . . . . . . . . . . . . . . . . . . . . . . . . . ........ .............. ...... .. ... ..... ........ ...... ......... . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . .......... ....... ................ ......... ..
• y1
• y2
• y3
• y4
V´ ychoz´ı p´arov´an´ı M pro mad’arskou metodu je vyznaˇceno silnˇe.
• y5
Hled´ ame M -alternuj´ıc´ı cesty - viz smyˇcka 1 ve v´ yvojov´em diagramu.
1. krok 2. krok
S x1 x1 , x2
T ∅ y2
y y2 y1
z x2 −
Pro jednoznaˇcnost popisu bˇehu algoritm˚ u v pˇr´ıkladech se dohodneme, ˇze v pˇr´ıpadˇe, ˇze nˇekter´e podm´ınce v´ ybˇeru vyhovuje v´ıce uzl˚ u, se vˇzdy ˇr´ıd´ıme pravidlem od nejmenˇs´ıch index˚ u“. ” Postupem uveden´ ym v tabulce jsme z´ıskali M -rozˇsiˇruj´ıc´ı cestu x1 , y2 , x2 , y1 . Nyn´ı na t´eto cestˇe prohod´ıme hrany p´ arov´ an´ı s hranami mimo p´ arov´ an´ı – viz n´asleduj´ıc´ı obr´azek, kde siln´e hrany patˇr´ı p´arov´an´ı. x1 x2 x1 x2 ........ ................ ....... •.................. • ....• ....• . . . . . . . . . . . . . . . . . . . . . . . . . . ........... ........ .. ...... ...... ....... ........ . ...... ....... ......... ....... ....... ......... ....... ............ ........... ......... . . ........ ..... ........... . . . . . ....... ......... .... . . . . . . . . ....... ...... ..... . . . . . . . . ....... ........... .... . . . . . . . . . . ............... . ....... ..
............ ... ... ............. ......... ... ........ .............. ... ............. .............. ................. ... . . ... ........................... . . . . . . ... ............. ...... . . . . . . . . . . . .. .............. ...... . . . . . . . . . . . .............. .... ...... . . . . . . . . . . . ................ ........ .
→
• y2
• y1
• y1
Sestroj´ıme tedy nov´e p´ arov´ an´ı. x1 •............................
x2 •
• y1
• y2
x3 •
x4 •
D´ale zaˇcneme s nepokryt´ ym uzlem x4 a pouˇzit´ı mad’arsk´e metody pop´ıˇseme v n´asleduj´ıc´ı tabulce.
x5 •
.. ..... ....... ....... ........... ........ ........... ......... ......... ... ...... ...... .. ........................... ...... ...... ... ......... ...... .. ...... .. ...... ........ ..... ............ ...... ...... ... ........... ...... ..... . . . ....... ..... . . . . . ....... ..... . . . . . . . . ...... . . . . . . . . . ...... ........ ........ .. . ... ...... ........ ......... ......... ............. ... ...... .... ........... ...... .. ... ... . ... ...... ...... .................... .... ......... ... ... ........... .................................... ... . . . ...... ...... . . . . . . . . . . . . . . . . . . . ........... ........ ................ .......... ........... . . . . . . . . . . . . . . . . . . . . . . ......... . . ........... . ........... . . .................... ............. . . . . . . . . . . . . . . . . . . . . . . . ......... ........ .... .............. .... ........... .............. .. . . ....... ............ . . . . . . . . . . . . ........... ........ .. ....... ....... ........ ... .... ....... ...... . . . . . . . . . . . . . . . . . . . . . . ......... ........ ...... . ............ . ....... .... ......... . ....... . . . . . . . . . . . . . . . . . . . . . ......... ...... .. .. ...... ...... ...... . ........... .... ....... .... . . . . . . . . . . . . . . . . . . . . . . . . . . ......... . . ...... ..... .. ...... ........ . ...... .. .......... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................... ............. ...... .. ............... .. ..... ... ... .. ......
• y3
• y4
• y2
S x4 x4 , x1 x4 , x1 , x3
• y5
T ∅ y2 y2 , y3
y y2 y3 -
z x1 x3 -
Z tabulky je vidˇet, ˇze N (S) = T . To vˇsak znamen´a, ˇze hledan´e p´arov´an´ı neexistuje, nebot’ zˇrejmˇe plat´ı |N (S)| < |S|.
Pozn´ amka. 1. Snadnou u ´vahou zjist´ıme, ˇze v´ ypoˇcetn´ı sloˇzitost mad’arsk´e metody v podobˇe, v jak´e ji zde uv´ ad´ıme, je O(n3 ): smyˇcka 2 se prob´ıh´a nejv´ yˇse O(n)-kr´at, a pˇri kaˇzd´em jej´ım pr˚ ubˇehu m´a nejvˇetˇs´ı sloˇzitost, O(n2 ), vyhled´ av´ an´ı M -rozˇsiˇruj´ıc´ı cesty (smyˇcka 1 se prob´ıh´a jen nejv´ yˇse O(n)-kr´at). Celkem tedy dost´ av´ ame odhad O(n3 ). 2. Mad’arsk´ a metoda v podobˇe, v jak´e ji uv´ad´ıme, najde p´arov´an´ı pokr´ yvaj´ıc´ı X nebo ˇrekne, ˇze takov´e p´ arov´ an´ı neexistuje. Jsou zn´ amy analogick´e postupy, kter´e (se stejnou v´ ypoˇcetn´ı sloˇzitost´ı) v negativn´ √ ım pˇr´ıpadˇe naleznou i nejvˇetˇs´ı p´ arov´ an´ı. Nejlepˇs´ı zn´am´e takov´e postupy maj´ı v´ ypoˇcetn´ı sloˇzitost O(m n). 3. Alternativn´ı metodou nalezen´ı nejvˇetˇs´ıho p´arov´an´ı v bipartitn´ım grafu je pˇrevod u ´lohy na u ´lohu maxim´ aln´ıho toku v s´ıti. Podrobnosti tohoto postupu jsou uvedeny v odstavci 1.5. Pˇ r i pouˇ z it´ ı nejlepˇ s´ıho √ zn´ am´eho (Dinicova) algoritmu na maxim´ aln´ı tok m´a tento pˇr´ıstup sloˇzitost O(m n).
64
5.4
Optim´ aln´ı p´ arov´ an´ı v ohodnocen´ ych bipartitn´ıch grafech
Pˇ r´ıklad. Pˇripomeˇ nme si motivaˇcn´ı pˇr´ıklad 4 z odst. 5.1 na str. 58: je d´ana mnoˇzina pracovn´ık˚ u X, mnoˇzina pracovn´ıch m´ıst Y a ˇc´ısla wij s v´ yznamem efektivnosti i-t´eho pracovn´ıka xi v j-t´e profesi yj ; hled´ ame pˇriˇrazen´ı pracovn´ık˚ u na pracovn´ı m´P ısta, kter´e je optim´aln´ı ve smyslu maximalizace celkov´e efektivnosti, tj. kter´e maximalizuje sumu wij . Je zˇrejm´e, ˇze pop´ıˇseme-li u ´lohu ohodnocen´ ym {i,j}∈H(G)
bipartitn´ım grafem G = (X, Y ), v nˇemˇz wij je ohodnocen´ı hrany (xi , yj ), pak ˇreˇsen´ım u ´lohy je to perfektn´ı p´ arov´ an´ı v G, kter´e maximalizuje souˇcet ohodnocen´ı wij . Definice 5.6. Necht’ G = (X, Y ) je ohodnocen´ y bipartitn´ı graf, y m´a perfektn´ı p´arov´an´ı. Potom P P kter´ perfektn´ı p´ arov´ an´ı M v G, pro kter´e je v´ yraz wij = w(hi ) maxim´aln´ı, se naz´ yv´a optim´aln´ı hi ∈M
(xi ,yj )∈M
p´ arov´ an´ı grafu G. Z pˇredpokladu existence perfektn´ıho p´arov´an´ı v G vypl´ yv´a, ˇze nutnˇe |X| = |Y |.
Pozn´ amka.
N´ asleduj´ıc´ı pojem bude kl´ıˇcem k algoritmu na nalezen´ı optim´aln´ıho p´arov´an´ı. ˇ Definice 5.7. Necht’ ` : X ∪ Y → R je uzlov´e ohodnocen´ı bipartitn´ıho grafu G = (X, Y ). Rekneme, ˇze ` je pˇr´ıpustn´e ohodnocen´ı, jestliˇze pro vˇsechny hrany (xi , yj ) ∈ H(G) plat´ı `(xi ) + `(yj ) ≥ wij . Pro kaˇzd´e pˇr´ıpustn´e ohodnocen´ı ` sestrojme graf G` pˇredpisem G` = (X ∪ Y, {{xi , yj } ∈ H(G)| `(xi ) + `(yj ) = wij }) . Graf G` se naz´ yv´ a graf rovnosti, pˇr´ısluˇsn´ y ohodnocen´ı `. Pozn´ amka.
1. Poznamenejme, ˇze U (G` ) = U (G), tj. G` je faktor grafu G.
2. Pˇr´ıpustn´e ohodnocen´ı vˇzdy existuje a lze ho z´ıskat napˇr. pˇredpisem `(xi ) =
max (xi ,yj )∈H(G)
`(yj ) =
0
wij
pro xi ∈ X, pro yj ∈ Y.
Pˇ r´ıklad. Na n´ asleduj´ıc´ım obr´ azku je pˇr´ıklad ohodnocen´eho bipartitn´ıho grafu, v prav´e ˇc´asti obr´azku je pˇr´ıpustn´e ohodnocen´ı, sestrojen´e podle pˇredchoz´ıho pˇredpisu, a k nˇemu pˇr´ısluˇsn´ y graf rovnosti. 6
6
•.............................................................................................................................................................................................................•..
6 •.................................................................................................................................................................................................................................................................................................................................................................•.... 0
•
9•
...... ......... . . ......... ..... ...... .......... 3 ......... .......... ......... ...... ......... ......... ... ... ......... ................. ...... . . .............. . 4 ............... . . ...... ................ ................ .......... ............ . . ............ ...... ................. 7........................ ............... ......... ..... . . . . . . . ......... . . ...... ..... ... ......... . ..........................................................2 .......................................................................................................................... ......... ..... ......... ......... . ......... . . . . . . . ...... ... .. .. ......... ...... ................. ......... .......... ............. .......... 9 .... ............... ......... .......... ..... ...................... ...... ...... .. .. 4 .............. ........................ ......................... ............... ......... . .. ......... ........... ..... ................. . . . . ......... ..... 5 ..... ......... .............. .. ............... ...............................................................................................................................................................
•
...... ......... ... ... ... 3 ...... ......... ......... ...... .................. ......... ..... ......... ......... . ...... ......................... . . . 4 ............... . . ...... .................. .................. .......... ............ . . ............ ...... ................. 7........................ ............... ......... ..... . . . . . . . ......... . . ...... ..... ... ......... . ..............................................................2 ......................................................................................................................... .. ............... ..... .......... . ......... . . ............... . . . . . ...... ..... ... ................ . . . . . . . . . . . . . . . ...... ........ ...................... . 9 . . . . . ..................... . ................. ................. .......... ..... .................... ...... ...... .. ..... 4 .............. ........................ ................................... ............... . ................ . . . . . . .... ............... ............... .......... . . . . ............... ........ 5 ..... ......... . ............. ............... ..................................................................................................................................................................
•
6
•
•0
•0 6• 6 tuˇcn´e hrany jsou hranami grafu rovnosti
65
N´ asleduj´ıc´ı vˇeta ukazuje souvislost mezi pˇr´ıpustn´ ym ohodnocen´ım a optim´aln´ım p´arov´an´ım. Vˇ eta 5.3. Necht’ G je ohodnocen´ y bipartitn´ı graf a ` je pˇr´ıpustn´e ohodnocen´ı uzl˚ u G. Je-li M perfektn´ım p´ arov´ an´ım v G` , pak je M optim´ aln´ım p´ arov´an´ım v G. D˚ ukaz. Necht’ ` je pˇr´ıpustn´e ohodnocen´ı a M je perfektn´ı p´arov´an´ı v G` . Protoˇze graf G` je faktorem grafu G, je M perfektn´ı p´ arov´ an´ı i v grafu G a plat´ı pro nˇej X X w(M ) = wij = `(u), (xi ,yj )∈M
u∈U (G)
nebot’ kaˇzd´ a hrana M patˇr´ı do grafu rovnosti G` a kaˇzd´ y uzel u ∈ U (G) je v pr´avˇe jedn´e hranˇe M . Pro kter´ekoliv jin´e perfektn´ı p´ arov´ an´ı M 0 ale z pˇr´ıpustnosti ohodnocen´ı ` plyne X X w(M 0 ) = wij ≤ `(u) = w(M ), (xi ,yj )∈M 0
u∈U (G)
2
a tedy p´ arov´ an´ı M je optim´ aln´ı.
Myˇslenka d˚ ukazu vˇety 5.3 je z´ akladem n´asleduj´ıc´ıho algoritmu. Algoritmus je vlastnˇe rozˇs´ıˇren´ım mad’arsk´e metody, nebot’ body 1), 2) a 3) algoritmu jsou aplikac´ı mad’arsk´e metody na graf rovnosti G` . Pokud se uk´ aˇze, ˇze v G` perfektn´ı p´ arov´an´ı neexistuje, pak se v (oproti mad’arsk´e metodˇe nov´em) bodu 4) pˇr´ıpustn´e ohodnocen´ı vhodnˇe modifikuje tak, aby do grafu rovnosti nov´eho pˇr´ıpustn´eho ohodnocen´ı pˇribyla alespoˇ n jedna hrana, vedouc´ı z mnoˇziny S do Y \ T , a algoritmus se vrac´ı do mad’arsk´e metody v grafu rovnosti nov´eho ohodnocen´ı. Algoritmus (Kuhn, Munkres) START: Nalezneme libovoln´e pˇr´ıpustn´e ohodnocen´ı ` a libovoln´e p´arov´an´ı M v grafu rovnosti G` . 1) Jestliˇze M pokr´ yv´ a X: KONEC. Jinak: najdi nepokryt´ y uzel u ∈ X, poloˇz S := {u}, T := ∅. 2) Jestliˇze NG` (S) = T , jdi na 4). Jinak: nalezni uzel y ∈ NG` (S) \ T . 3) Je-li uzel y M -pokryt´ y, potom existuje uzel z ∈ X takov´ y, ˇze {y, z} ∈ H(M ); poloˇz S := S ∪ {z}, T := T ∪ {y}, jdi na 2). Jinak: najdi M -rozˇsiˇruj´ıc´ı cestu P z u do y; sestroj p´arov´an´ı M 0 prohozen´ım pod´el P ; poloˇz M := M 0 a jdi na 1). 4) Vypoˇc´ıtej ˇc´ıslo α` = minxi ∈S,yj 6∈T {`(xi ) + `(yj ) − wij } a nov´e pˇr´ıpustn´e ohodnocen´ı `(v) − α` pro v ∈ S, `(v) + α` pro v ∈ T, `0 (v) = `(v) jinak. Poloˇz ` := `0 , G` := G`0 , zvol uzel y ∈ NG` (S) \ T a jdi na 3).
66
Pozn´ amka. V bodu 4) algoritmu je ˇc´ıslo α` nutnˇe kladn´e (nebot’ ` je pˇr´ıpustn´e ohodnocen´ı a pro hrany nepatˇr´ıc´ı do grafu rovnosti je rozd´ıl nutnˇe kladn´ y), a snadno ovˇeˇr´ıme, ˇze `0 je tak´e pˇr´ıpustn´e ohodnocen´ı a NG`0 (S) \ T 6= ∅. Pˇ r´ıklad.
Mˇejme ohodnocen´ y bipartitn´ı graf G, popsan´ y matic´ı W = [wij ]: 3 5 5 4 1 2 2 0 2 2 (tj. G je bigrafem matice W a nulov´e 2 4 4 1 0 prvky znamenaj´ı, ˇze pˇr´ısluˇsn´a dvojice W = 0 1 1 0 0 uzl˚ u nen´ı v grafu G spojena hranou). 1 2 1 3 3
V´ ychoz´ı pˇr´ıpustn´e ohodnocen´ı `: `(xi )
=
`(yj )
=
max wij
pro xi ∈ X,
0
pro yj ∈ Y.
yj ∈Y
Pˇrip´ıˇseme ohodnocen´ı uzl˚ u k matici a nalezneme graf rovnosti (v n´asleduj´ıc´ıch matic´ıch bude vyznaˇcen tuˇcnˇe). ...... ...... .... ...... .. ...... ...... j ...... ...... ...... .. ...... ...... .... ..... . ....................i..................................................................................................................................................................... .... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ....
`(y ) `(x ) 5 2 4 1 3
0
0
0
0
0
3 2 2 0 1
5 2 4 1 2
5 0 4 1 1
4 2 1 0 3
1 2 0 0 3
•.........................................
•
•
•
•
•
•
•
•
•
... .... .... .... .............. ............ ................ ... ... ............... ... ... ......................... ..................... .................. ... .. ...................... ...... ............ ........ ......... ............ ..... .... ... ..... .......... .......... ................ ............... . ......... ............. .. . . ... .... ....... .. ... ......... ............... .. .. ...... ....................................................... ... .......... ............ ... ............. ....... ... .......... ......... ...... ... ............ ... .. ....... ...... ................ ...... ......... .............. ... ....... ..... ... ............... .... ........................................ ............ ...................... . ... . ........ ........ .. ...... ............. ....... ............ ....... .. . . . . . . . . . . . . . . . . . . . . . . . . . . ...... ......... .. ............ ........... .............. . ......... .... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... .. ....... ... ................... . ...................... .... ... ..... .. ...
Nyn´ı pomoc´ı mad’arsk´e metody budeme hledat perfektn´ı p´arov´an´ı v grafu rovnosti. Je ihned vidˇet, ˇze v G` perfektn´ı p´ arov´ an´ı neexistuje a algoritmus skonˇc´ı pˇri S = {x1 , x3 , x4 }, T = {y2 , y3 }. Proto d´ ale urˇc´ıme hodnotu α` : α` =
min
xi ∈S,yj 6∈T
{`(xi ) + `(yj ) − wij } .
Zjist´ıme, ˇze α` = 1. Nov´e pˇr´ıpustn´e ohodnocen´ı je `(v) − α` pro v ∈ S, `(v) + α` pro v ∈ T, `0 (v) = `(v) jinak. Urˇc´ıme nov´ y graf rovnosti G`0 (opˇet je vyznaˇcen v matici tuˇcnˇe a je nakreslen na obr´azku vpravo). ...... ...... .... ...... ... ...... 0 ...... j ..... ...... ...... ...... ... 0 ...... ... ..... .. ......................i................................................................................................................................................................... .... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
` (y ) 0 ` (x )
1
1
0
0
4 2 3 0 3
5 2 4 1 2
5 0 4 1 1
4 2 1 0 3
1 2 0 0 3
3 2 2 0 1
•.................................
•
•
•
•
•
•
•
•
•
...... ... .... ..... ... ........... ..... ........ ... ... ... ............. ..... ......................... ..... .... ........ ... .. ...... ......... ... ... ...... .......... ...... ... ... .... ........ ........ .......... ..... ... ........ ......... . . ... ... ...... ........ ... ...... ... ............ ... .. .... .... ....... .......... ............. .......... ... ...... ........... .............. ........... .. ... ... ...... ... ............ . ...... ... ........ ...... ... ... ....... ..... ...... ...... ........ ....... ... ..... . . . . ... . ........ .. .......... ...... ... .. .. ............... . . . . . . . . . . . . . . . . . ... . ... .. ..... ..... ... .. .............. . .......... .. . . . . . . . . . . . . . . . . . . . . . . . . .......... .. ....... ... ... ....... .......... . ....... ...... .... .... ...
Mad’arsk´ a metoda v G`0 n´ am jiˇz nyn´ı d´ a perfektn´ı p´arov´an´ı:
67
•...............................................
•
•
•
•
.... ....... ......... .......... .................. ........... ......... ......... ...... ........................ .............. ... ..................... ... ....... ... ........ ...... ....... .............. ...... ... ...................... ... ............ ... ............ .............. ..... ...... ........ . . ....... . . ... ...... ................. . . . . . . . . . . . ... . . . . . ...... ........ ...... . ... ...... .................. ....... ... .......... ...... ........ ..... ............ ...... ................ ........... ... ... ... ... .. ......... ...... ........... ..... ...... .................... ... ...... ................. ............ ... .............. ......... ...... ...... ................. . . . ... . . . . . . . . . . . . . . . . . .......... ...... ............... ..... .... ....... ... .. .. ............... .................. .................... ... ......... ............ ... .............. ... ............... . . . . . . . . . . . . . . ... .......... .......... . . . . . . . . . . ......... .............. ...... ...... .................... . . . . . . ...... ... ...... . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . ....... .. ...................... .............. .. ...... . ........ . . . . . . . . . . . . ......... . . . . . . . . . . . . . ...... . ................... ........... ................. ......... . . . . . . . . . . ......... . . . . . . . . . . . . . . . . . . . . . ....... ...... .............. .......... ...... ..... . . ..... .... . .. . ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... ...... .. ...... ... ... . ....................... ....... ..... . . ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... ....... ....... ................ ... . ......... ..... ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... .. ... ........................ ... ....... ......... ..... .. ......... ................. . . . . . . . . . . . . . . . . . . . . . . . ....... .............. ..... ... ....... ....... ..... .. ...................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......... ... . .......... ........... .... ....................... ......... . .. ................. ........ ...... . . . . . . . . ....... ......... .............. ..... ...... ... . ...... ... . .. ................ ...... . . . . . . . . . . . . . . . . ...... . . . . . . . . . . . ................... ....... ...... ...... ... ... . . ................... ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... ............ ...... ...... .. ................... ... ... ................ ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . ......... .............. ......... .............. ..... .
4
4
1
3
2
•
•
•
•
•
Toto p´ arov´ an´ı M (na obr´ azku vyznaˇceno tuˇcnˇe) je optim´aln´ım p´arov´an´ım v grafu G a w(M ) = 14. Poznamenejme, ˇze v G`0 existuje v´ıce perfektn´ıch p´arov´an´ı, ale vˇsechna maj´ı stejnou cenu a jsou tedy vˇsechna optim´ aln´ı.
5.5
Perfektn´ı p´ arov´ an´ı v neorientovan´ em grafu a Tutteova vˇ eta
V tomto a n´ asleduj´ıc´ıch dvou odstavc´ıch se budeme zab´ yvat p´arov´an´ım v neorientovan´em grafu, kter´ y jiˇz nemus´ı b´ yt bipartitn´ı. Vyjdeme z Bergeovy vˇety (vˇeta 5.1), kter´a ˇr´ık´a, ˇze p´arov´an´ı M je nejvˇetˇs´ı, pr´ avˇe kdyˇz pro nˇej v G neexistuje rozˇsiˇruj´ıc´ı cesta. Jak jsme jiˇz poznamenali, Bergeova vˇeta nen´ı dobr´ a charakteristika, a pr´ avˇe nalezen´ı dobr´e charakteristiky nejvˇetˇs´ıho p´arov´an´ı bude naˇs´ım prvn´ım c´ılem. Pˇ r´ıklad. Uved’me si n´ asleduj´ıc´ı pˇr´ıklady a zkusme se zamyslet nad t´ım, proˇc tyto grafy nemaj´ı perfektn´ı p´ arov´ an´ı. 1. Necht’ G je libovoln´ y graf s lich´ ym poˇctem uzl˚ u. Pak zˇrejmˇe G nem´a perfektn´ı p´arov´an´ı. 2.
•...........................................................................•...
..... .. ..... .... ..... ..... ..... ..... ..... ....... ..... ..... ... ... ... ... .... .. .. ................. . . . . . . .... .... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ............................................................................... ....... . ......... .. ..... ...... ......... ..... .... . . . ............. . . . . . . . . ... ... ..... ...... .. ... ...... ...... ...... .... ... .......... . ...... ...... .. . ........ .........
•
•
• •
•
S
•
Nem´a perfektn´ı p´arov´an´ı
•
•
3. •
•
•
•
. ...... ............................ ........ ......................... ............. ........... ...... .. . ....... ... ...... ...... .... .... ............. ...... ..... .......... . . . . . . . . ............................ . ...... ........... .... . . .. .... . . ...... . . ...... . . . ... .... .... ...... ... . . ...... . . . . . . ... ....... ...... .. ...... .... ........ ...... ..... ...... ...... ...... ....... .......... ...... ..... ... ............. ... ...... ..... ...... ............. .............. .......... ............ ............ . ....... ........... ...... ....... ...... ...... .... ................... ... ...... ..... ... ...... ...... ... . . . . . ...... ...... ...... .... . . . . ...... . . . . . . . . ........ .... .... .... ...... . . . . . . . . . . ...... . ........ ... ... ... . . . . . . . . . . ......... . . . ...... ... .. ... ... . . . . . . . . . . . . . . . . . .. ................... . . . . . ...... ... .. . ... ........ . . . . ............. . . . . . . . . . . . . . . . . . . ... . . . . . ...... ......... . .... ..................... . . . . . . . . . ...... .... . ............. ............. ............. .............. . . ................................ ......
•.................................................
•
•
•
• •
•
S
•
•
Nem´a perfektn´ı p´arov´an´ı.
•
Grafy z pˇr´ıklad˚ u 2 a 3 maj´ı sud´ y poˇcet uzl˚ u, a pˇresto se (po chv´ıli pˇrem´ yˇslen´ı) snadno pˇresvˇedˇc´ıme o tom, ˇze nemaj´ı perfektn´ı p´ arov´ an´ı. Jak´ y je d˚ uvod? Mnoˇzina uzl˚ u S m´a n´asleduj´ıc´ı vlastnost: co (G − S) > |S| (zde co (G − S) znaˇc´ı poˇcet lich´ ych komponent grafu G − S). Takov´a mnoˇzina S se naz´ yv´a antifaktorov´ a mnoˇzina a jej´ı existence v grafu vyluˇcuje existenci perfektn´ıho p´arov´an´ı. Nutnou podm´ınkou existence 68
perfektn´ıho p´ arov´ an´ı tedy je neexistence antifaktorov´e mnoˇziny, tj. mus´ı platit co (G − S) ≤ |S| ∀S ⊂ G. Poznamenejme, ˇze z t´eto podm´ınky t´eˇz plyne, ˇze graf G m´a sud´ y poˇcet uzl˚ u (dosazen´ım S = ∅). Tutte uk´ azal, ˇze tato nutn´ a podm´ınka je i postaˇcuj´ıc´ı. Vˇ eta 5.4. (Tutte, 1947) mnoˇziny uzl˚ u grafu G plat´ı
Graf G m´ a perfektn´ı p´arov´an´ı, pr´avˇe kdyˇz pro kaˇzdou podmnoˇzinu S
co (G − S) ≤ |S| (tj. poˇcet lich´ ych komponent grafu G − S je nejv´ yˇse roven poˇctu uzl˚ u mnoˇziny S). Pozn´ amka.
Vˇetu lze ekvivalentnˇe formulovat i n´asleduj´ıc´ım zp˚ usobem.
Graf G m´ a perfektn´ı p´ arov´ an´ı, pr´ avˇe kdyˇz v nˇem neexistuje antifaktorov´a mnoˇzina. Z t´eto formulace je ihned zˇrejm´e, ˇze Tutteova vˇeta je dobr´a charakteristika. D˚ ukaz.
1. Implikace ⇒ je zˇrejm´ a.
2. Opaˇcnou implikaci ⇐ dok´ aˇzeme sporem. Pˇredpokl´adejme ˇze graf G je protipˇr´ıkladem, tj., G je takov´ y, ˇze pro kaˇzdou mnoˇzinu S ⊂ U (G) plat´ı co (G − S) ≤ |S|
(*)
(v grafu G neexistuje antifaktorov´ a mnoˇzina), a G pˇritom nem´a perfektn´ı p´arov´an´ı. Jak jsme jiˇz poznamenali, z podm´ınky (∗) plyne, ˇze G m´ a sud´ y poˇcet uzl˚ u. Vˇsimnˇeme si toho, ˇze splˇ nuje-li G podm´ınku (∗), pak graf, vznikl´ y z G pˇrid´an´ım libovoln´e hrany splˇ nuje podm´ınku (∗) tak´e (nebot’ poˇcet lich´ ych komponent v G − S m˚ uˇze pˇrid´an´ım hrany jen klesnout). Pˇrid´ an´ım hrany se tedy neporuˇs´ı neexistence antifaktorov´e mnoˇziny. Z pˇredchoz´ıho pozorov´ an´ı vypl´ yv´ a, ˇze m˚ uˇzeme pˇredpokl´adat, ˇze G je maxim´aln´ı protipˇr´ıklad, tj. – G neobsahuje antifaktorovou mnoˇzinu, – G nem´ a perfektn´ı p´ arov´ an´ı, – G pˇrid´ an´ım libovoln´e hrany vznikne z G graf, kter´ y jiˇz perfektn´ı p´arov´an´ı m´a. Oznaˇcme K mnoˇzinu vˇsech univerz´ aln´ıch uzl˚ u grafu G (uzel x je univerz´ aln´ı, jestliˇze dG (x) = n − 1, tj. x soused´ı se vˇsemi ostatn´ımi uzly grafu). Kdyby vˇsechny komponenty grafu G − K byly u ´pln´e grafy, tak by platilo: - v kaˇzd´e sud´e komponentˇe G − K existuje perfektn´ı p´arov´an´ı, - v kaˇzd´e lich´e komponentˇe G − K existuje p´arov´an´ı, kter´e v n´ı nech´a jen jedin´ y nepokryt´ y uzel, - z (∗) plyne, ˇze tˇechto nepokryt´ ych uzl˚ u je m´enˇe neˇz |K| a lze je tedy pokr´ yt hranami do K, - d´ıky sudosti |U (G)| je zbyl´ ych uzl˚ u v K sud´ y poˇcet, podle definice mnoˇziny K tyto uzly indukuj´ı u ´pln´ y graf a lze je tedy sp´ arovat. Graf G by tedy mˇel perfektn´ı p´ arov´ an´ı, coˇz je spor. Odtud vypl´ yv´ a, ˇze existuje komponenta G0 grafu G − K, kter´a nen´ı u ´pln´ ym grafem. Ze souvislosti G plyne, ˇze existuj´ı uzly a, b, c ∈ U (G0 ) takov´e, ˇze {a, b} ∈ H(G0 ), {b, c} ∈ H(G0 ), ale {a, c} ∈ / H(G0 ). Protoˇze b ∈ / K, existuje uzel d takov´ y, ˇze {b, d} ∈ / H(G). Z maximality G plyne, ˇze – pˇrid´ an´ım hrany {a, c} z´ısk´ ame graf s perfektn´ım p´arov´an´ım (oznaˇc´ıme ho M1 ), – pˇrid´ an´ım hrany {b, d} z´ısk´ ame graf s perfektn´ım p´arov´an´ım (oznaˇc´ıme ho M2 ). 0
69
Protoˇze M1 i M2 jsou perfektn´ı p´ arov´ an´ı, urˇcuje symetrick´a diference jejich mnoˇzin hran H(M1 )4H(M2 ) graf, v nˇemˇz m´ a kaˇzd´ y uzel x ∈ / {a, b, c, d} stupeˇ n 0 nebo 2. Odtud plyne, ˇze z uzlu d lze budovat alternuj´ıc´ı cestu P v G hladov´ ym algoritmem, pˇri nˇemˇz zaˇcneme v uzlu d hranou z p´arov´an´ı M1 , d´ale hranou z M2 a pokraˇcujeme stˇr´ıdavˇe, dokud to jde. V kaˇzd´em uzlu x ∈ / {a, b, c, d} lze pokraˇcovat, nebot’ v symetrick´e diferenci hran p´ arov´ an´ı M1 a M2 m´ a x stupeˇ n 0 nebo 2 a pokud do tohoto uzlu vstoup´ıme, mus´ıme z nˇej i vyj´ıt. V uzlu d skonˇcit nem˚ uˇzeme, nebot’ p´arov´an´ı M1 jiˇz uzel d pokr´ yv´a a hrana p´arov´an´ı M2 je hrana {b, d} a v grafu G nen´ı. Algoritmus tedy skonˇc´ı v jednom z uzl˚ u a, b, c. Je-li koncov´ ym uzlem cesty P uzel b, byla posledn´ı hrana cesty P z p´arov´an´ı M1 . Uzly a, c jsou jiˇz nutnˇe pokryty p´ arov´ an´ım M2 (viz definice perfektn´ıho p´arov´an´ı M2 ). Jestliˇze nyn´ı pod´el cesty P mezi uzly d a b prohod´ıme p´ arov´ an´ı M1 a M2 (a jinde je ponech´ame tak, jak byla), z´ısk´ame perfektn´ı p´arov´an´ı v G, coˇz je spor. Zb´ yv´ a uˇz jen moˇznost, ˇze skonˇc´ıme v uzlu a nebo c. Situaci vyˇsetˇr´ıme napˇr. pro uzel a (pro c je analogick´ a). Posledn´ı hrana cesty P je nyn´ı z p´arov´an´ı M2 , a uzel c je t´ımto p´arov´an´ım pokryt (viz definice perfektn´ıho p´ arov´ an´ı M2 ). Prohod´ıme-li p´arov´an´ı M1 a M2 pod´el cesty C, kter´a vznikla pˇrid´an´ım hrany {a, b} k cestˇe P , z´ısk´ ame z p´ arov´ an´ı M2 perfektn´ı p´arov´an´ı v G, coˇz je opˇet spor. 2
5.6
Nejvˇ etˇ s´ı p´ arov´ an´ı v neorientovan´ em grafu, p´ arovac´ı ˇ c´ıslo a deficience
V pˇr´ıpadˇe, ˇze graf G nem´ a perfektn´ı p´ arov´an´ı, je moˇzn´e se pt´at na minim´aln´ı poˇcet uzl˚ u, kter´e mus´ı z˚ ustat p´ arov´ an´ım nepokryt´e. Jinak ˇreˇceno, hled´ame nejvˇetˇs´ı p´arov´an´ı, tj. maximalizujeme |H(M )|. Definice 5.8. Poˇcet hran nejvˇetˇs´ıho p´ arov´an´ı v grafu G se naz´ yv´a p´arovac´ı ˇc´ıslo grafu G a znaˇc´ı se ν(G). Je zˇrejm´e, ˇze graf m´ a perfektn´ı p´ arov´ an´ı, pr´avˇe kdyˇz ν(G) = Definice 5.9.
|U (G)| . 2
ˇ ıslo def(G) = n − 2 ν(G) se naz´ C´ yv´a deficience grafu G.
Ekvivalentnˇe, deficience def(G) urˇcuje minim´aln´ı poˇcet nepokryt´ ych uzl˚ u grafu G. Vˇ eta 5.5.
(Berge, 1958)
def(G) = max{co (G − S) − |S| | S ⊂ U (G)}. Jinak ˇreˇceno, Bergeova vˇeta ˇr´ık´ a, ˇze poˇcet nutnˇe nepokryt´ ych uzl˚ u grafu G je d´an nejhorˇs´ı“ antifak” torovou mnoˇzinou. Ponˇekud pˇresnˇeji - nazveme-li ˇc´ıslo co (G − S) − |S| defektem antifaktorov´e mnoˇziny S, pak Bergeova vˇeta ˇr´ık´ a, ˇze deficience grafu G (tj. nejmenˇs´ı poˇcet nepokryt´ ych uzl˚ u) je rovna maxim´aln´ımu defektu antifaktorov´e mnoˇziny v G. Zd˚ uraznˇeme, ˇze Bergeova vˇeta je dobrou charakteristikou nejvˇetˇs´ıho p´arov´an´ı. To plyne z toho, ˇze m´ ame-li rozhodnout, zda dan´e p´ arov´ an´ı M je nejvˇetˇs´ı, pak – nen´ı-li M nejvˇetˇs´ı, najdeme vˇetˇs´ı p´arov´an´ı, – je-li M nejvˇetˇs´ı, pak najdeme antifaktorovou mnoˇzinu S, pro niˇz je ˇc´ıslo co (G − S) − |S| rovno poˇctu uzl˚ u, nepokryt´ ych p´ arov´ an´ım M . Rozhodnut´ı, zda dan´e p´ arov´ an´ı M je nejvˇetˇs´ı, tedy je v NP ∩ co-NP. D˚ ukaz. 1. Je-li S ⊂ U (G) antifaktorov´ a mnoˇzina, pak evidentnˇe mus´ı z˚ ustat v G alespoˇ n co (G−S)−|S| nepokryt´ ych uzl˚ u (po jednom v kaˇzd´e z nadpoˇcetn´ ych lich´ ych komponent). Tedy plat´ı def(G) ≥ max{co (G − S) − |S| | S ⊂ U (G)}. 2. Zb´ yv´ a uk´ azat, ˇze t´eto hodnoty se skuteˇcnˇe nab´ yv´a, tj. ˇze existuje antifaktorov´a mnoˇzina, pro kterou plat´ı rovnost.
70
Necht’ S je antifaktorov´ a mnoˇzina, kter´a realizuje maximum, tj. je pro ni ˇc´ıslo k = co (G − S) − |S| maxim´ aln´ı. Chceme uk´ azat, ˇze def(G) ≤ k, tj. ˇze existuje p´arov´an´ı, nech´avaj´ıc´ı nejv´ yˇse k nepokryt´ ych uzl˚ u. Sestroj´ıme graf G0 n´ asleduj´ıc´ım zp˚ usobem: - ke grafu G pˇrid´ ame mnoˇzinu K, kter´a obsahuje k nov´ ych uzl˚ u, - z kaˇzd´eho uzlu mnoˇziny K udˇel´ ame pˇrid´an´ım nov´ ych hran univerz´aln´ı uzel v grafu G0 . Uk´ aˇzeme, ˇze v grafu G0 existuje perfektn´ı p´arov´an´ı. Kdyby ne, tak v G0 existuje antifaktorov´a mnoˇzina 0 S . Protoˇze uzly mnoˇziny K jsou univerz´ aln´ı v G, nutnˇe mus´ı b´ yt K ⊂ S 0 (jinak by totiˇz zbyl´e uzly 0 z mnoˇziny K zp˚ usobily souvislost grafu G − S , coˇz nelze). Oznaˇcme S1 = S 0 \ K. Potom plat´ı, ˇze S1 ⊂ U (G) a S 0 = S1 ∪ K. Z antifaktorovosti S 0 v grafu G0 plyne, ˇze co (G0 − S 0 ) > |S 0 | = |S1 | + |K| = |S1 | + co (G − S) − |S|, odkud co (G0 − S 0 ) − |S1 | > co (G − S) − |S|. Protoˇze vˇsak co (G0 − S 0 ) = co (G − S1 ), dost´av´ame co (G − S1 ) − |S1 | > co (G − S) − |S|, coˇz je spor s maximalitou S. T´ım je dok´ az´ ano, ˇze graf G0 m´ a perfektn´ı p´arov´an´ı. Odstranˇen´ım mnoˇziny K a n´avratem k p˚ uvodn´ımu grafu G z´ısk´ ame p´ arov´ an´ı, kter´e nech´ av´ a nepokryt´ ych nejv´ yˇse k uzl˚ u. Plat´ı tedy def(G) ≤ k. 2
5.7
Edmonds˚ uv algoritmus
Z´ akladn´ı myˇslenka algoritmu na nalezen´ı nejvˇetˇs´ıho p´arov´an´ı je zd´anlivˇe jednoduch´a: 1) zvol´ıme v´ ychoz´ı p´ arov´ an´ı M = (∅, ∅), 2) hled´ ame nepokryt´ y uzel v, 3) hled´ ame rozˇsiˇruj´ıc´ı cestu zaˇc´ınaj´ıc´ı v uzlu v. Pokud rozˇsiˇruj´ıc´ı cesta existuje, rozˇs´ıˇr´ıme p´arov´an´ı M a zopakujeme krok 2); pokud rozˇsiˇruj´ıc´ı cesta neexistuje, je p´ arov´ an´ı M nejvˇetˇs´ım a algoritmus konˇc´ı. Hlavn´ım probl´emem tohoto postupu je vyhled´av´an´ı rozˇsiˇruj´ıc´ıch cest. Uvedeme (dnes jiˇz klasick´ y) postup, poch´ azej´ıc´ı od Edmondse (1965). K pˇrekon´an´ı kl´ıˇcov´eho kroku bude potˇrebn´e jedno pomocn´e tvrzen´ı. Nejprve si ale zavedeme jedno oznaˇcen´ı. Je-li G graf a F ⊂ G jeho podgraf, pak G|F oznaˇc´ıme graf definovan´ y n´asledovnˇe: U (G|F ) = U (G) \ U (F ) ∪ {x}, kde x ∈ / U (G), H(G|F ) = {{u, v} ∈ H(G)| u, v ∈ U (G) \ U (F )} ∪ {{v, x}|v ∈ U (G) \ U (F ) a {v, y} ∈ H(G) pro nˇekter´ y y ∈ U (F )} . ˇ Rekneme, ˇze G|F vznikl staˇzen´ım F do uzlu x. Lemma 5.1. Necht’ G je graf, M je p´ arov´an´ı v G a C je kruˇznice v G d´elky 2k + 1, obsahuj´ıc´ı k hran p´ arov´ an´ı M a 1 uzel nepokryt´ y p´ arov´ an´ım M . Pak M je nejvˇetˇs´ı p´arov´an´ı v G, pr´avˇe kdyˇz p´arov´an´ı M 0 = M \ H(C) (tj. p´ arov´ an´ı vznikl´e odstranˇen´ım z M tˇech hran, kter´e patˇr´ı do C) je nejvˇetˇs´ı p´arov´an´ı v G|C .
71
D˚ ukaz. Dok´ aˇzeme ekvivalenci negac´ı obou v´ yrok˚ u. 1. Necht’ M nen´ı nejvˇetˇs´ı v G. Potom existuje M -rozˇsiˇruj´ıc´ı cesta P v G. Je-li U (P ) ∩ U (C) = ∅, je P rozˇsiˇruj´ıc´ı v G|C a jsme hotovi. M˚ uˇzeme tedy pˇredpokl´adat, ˇze P a C maj´ı spoleˇcn´ y uzel. Pak nutnˇe jeden koncov´ y uzel cesty P (oznaˇcme ho v) je mimo C. Oznaˇcme w prvn´ı uzel cesty P , kter´ y je na kruˇznici C. Pak cesta vP w odpov´ıd´ a v grafu G|C M 0 -rozˇsiˇruj´ıc´ı cestˇe, a tedy M 0 nen´ı nejvˇetˇs´ı v G|C . •
G
...... ......... ............................. ............... ........ ........... ........... . . . . . . ........... ....... ......... ........... . . . . . . ......... ...... . . . . . . ........... ...... . . . . . . ......... ..................................................................................................................................... ......... ... ... ........... ... .......... ... ........ ... ... ... ... ....... . . . . . . . . . . . . . . ... .... ... ............................. .........
•
v •
•
•
G|C
w •
v..............................................................................................................................x • • • •..
•
•
2. Necht’ naopak M 0 nen´ı nejvˇetˇs´ı p´ arov´an´ı v grafu G|C , necht’ p´arov´an´ı N 0 je vˇetˇs´ı. Sestroj´ıme pˇr´ısluˇsn´e p´ arov´ an´ı N v grafu G n´ asleduj´ıc´ım zp˚ usobem: - vˇsechny hrany N 0 neobsahuj´ıc´ı uzel x budou v N , - pokud p´ arov´ an´ı N 0 pokr´ yvalo uzel x hranou vx, m´a uzel v v grafu G souseda w na kruˇznici C a do p´ arov´ an´ı N pˇrid´ ame hranu vw, - dod´ ame k hran kruˇznice C. ...... .................... ...... .....• ........................................................... ...... .............................. ..... ...... .......• .... ..... ...... . . ...... . G|C . ... G ............ ...... ..... ...... ..... ...... .... . . ...... . . ...... ... ... ...... . . . . . . ...... v ...... v ... w .. . . . . ................ .........................x . . ............................................................. .. .. . . .. .. . .. . .. . ..• .... . . . . . . • • • . . . . ..... ... .... . .. . . . . . . . . . . . . ..... ..... ...... ...... ......
. ...... ..... ..... ...... ...... . . . . .... ..... ......
..... ... ..... ... ..... ... ..... ..... ............. . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . ........................... . ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . ............................................ .....
•
•
2
Pak plat´ı, ˇze p´ arov´ an´ı N je v grafu G vˇetˇs´ı neˇz p´arov´an´ı M .
Vlastn´ı Edmonds˚ uv algoritmus je zaloˇzen na tom, ˇze se z nepokryt´ ych uzl˚ u buduj´ı stromy obsahuj´ıc´ı alternuj´ıc´ı cesty (viz n´ asleduj´ıc´ı obr´ azek). •
•
•
•
•
•
.............................................................................. ............. ............ ............. ............................................................................................... . . . . . . ............. ....... ............. ....... ................................................................. ....... . .. .. .. . .. .. .. . . . ....... ....... . . . . . . .. ...................................................................................................................................... ....... ....... ....... ....... ....... ....... ....... ......................................................................................................................................................................................................
•
•
•
•
s •
•
•
Definice 5.10. Necht’ M je p´ arov´ an´ı v grafu G a X 6= ∅ je mnoˇzina uzl˚ u nepokryt´ ych p´arov´an´ım M . Les F v grafu G takov´ y, ˇze - kaˇzd´ y uzel z X leˇz´ı v pr´ avˇe jedn´e komponentˇe F , - kaˇzd´ a komponenta Fi lesa F obsahuje pr´avˇe jeden uzel xi ∈ X, naz´ yvan´ y stˇred komponenty Fi , - kaˇzd´ a hrana F v lich´e vzd´ alenosti od stˇredu komponenty je v M , - koncov´e uzly F maj´ı sudou vzd´ alenost od stˇredu komponenty, se naz´ yv´ a M -alternuj´ıc´ı les v G. Uzly lesa F v sud´e (lich´e) vzd´ alenosti od stˇredu komponenty se naz´ yvaj´ı sud´e (lich´e) uzly (stˇred komponenty budeme povaˇzovat za sud´ y uzel). Povˇsimnˇeme si toho, ˇze je-li F M -alternuj´ıc´ı les, pak pro kaˇzd´ y lich´ y uzel lesa F je jeho stupeˇ nvF roven dvˇema (to plyne z toho, ˇze pˇri vˇetˇs´ım stupni by podle 3. podm´ınky vych´azely z lich´eho uzlu alespoˇ n dvˇe hrany, kter´e jsou v M , ale M by pak nebylo p´arov´an´ım, stupeˇ n 1 nen´ı moˇzn´ y podle podm´ınky 4). Naopak, sud´e uzly mohou m´ıt stupnˇe i vˇetˇs´ı.
72
Necht’ nyn´ı M je p´ arov´ an´ı a F je M -alternuj´ıc´ı les. Budeme vyˇsetˇrovat sousedy sud´ ych uzl˚ u lesa F . Jsou n´ asleduj´ıc´ı ˇctyˇri moˇznosti: 1) nˇekter´ y sud´ y uzel u m´ a souseda y 6∈ U (F ), 2) nˇekter´e dva sud´e uzly u1 , u2 v r˚ uzn´ ych komponent´ach F1 , F2 lesa F jsou v grafu G sousedn´ı, 3) nˇekter´e dva sud´e uzly u1 , u2 t´eˇze komponenty Fi lesa F jsou sousedn´ı v grafu G, 4) nenastane ani jedna z pˇredchoz´ıch moˇznost´ı, tj. kaˇzd´ y sud´ y uzel m´a za sousedy jen lich´e uzly. Pro kaˇzdou z tˇechto moˇznost´ı si uk´ aˇzeme, jak postupovat. 1. Jestliˇze nˇekter´ y sud´ y uzel u m´ a souseda y 6∈ U (F ), pak plat´ı, ˇze uzel y je M -pokryt´ y, nebot’ mnoˇzina X nepokryt´ ych uzl˚ u je cel´ a v lese F . Jeho soused z v p´arov´an´ı M nen´ı obsaˇzen v lese F (podle 4. podm´ınky definice lesa F ). Pˇrid´ an´ım hran uy a yz do lesa F zvˇetˇs´ıme F . s
y •
u •
z •
.. ...... ........................................................................................................................................................ ....... ....... ....... .......................................................................... ....
•
2. Jsou-li nˇekter´e dva sud´e uzly u1 , u2 v r˚ uzn´ ych komponent´ach F1 , F2 lesa F sousedn´ı v grafu G, pak stˇredy tˇechto komponent jsou spojeny rozˇsiˇruj´ıc´ı cestou. Prohozen´ım hran p´arov´an´ı pod´el t´eto cesty zvˇetˇs´ıme M . 3. Pˇredpokl´ adejme, ˇze nˇekter´e dva sud´e uzly u1 , u2 t´eˇze komponenty Fi lesa F jsou sousedn´ı v grafu G. Pak hrana {u1 , u2 } spolu s cestou, spojuj´ıc´ı u1 a u2 v Fi , urˇcuj´ı v t´eto komponentˇe lichou kruˇznici C. a) Je-li stˇred xi komponenty Fi na kruˇznici C, pak kruˇznice C splˇ nuje pˇredpoklady lemmatu 5.1. b) Nen´ı-li stˇred xi na kruˇznici C, pak prohozen´ım p´arov´an´ı M pod´el cesty P , kter´a spojuje kruˇznici C a stˇred xi , dostaneme p´arov´an´ı M 0 s vlastnost´ı |M 0 | = |M |, a takov´e, ˇze nov´ y stˇred komponenty Fi jiˇz leˇz´ı na kruˇznici C, ˇc´ımˇz jsme pˇrevedli tuto variantu na pˇredchoz´ı. (Pˇrevod pˇr´ıpadu ad b) na ad a) je uk´ az´an na n´asleduj´ıc´ım obr´azku, kde vlevo je p˚ uvodn´ı komponenta a vpravo je komponenta s prohozen´ ym p´arov´an´ım a nov´ ym stˇredem.) •
•
•
•
.. .. .. .... ... .. .. ... .... ... .................................................................................................. ..... ... ..... ... ..... . . . . . ... ..... . ..... .... ..... ... ................................... ............................... ........................................................................................................ . . ... . . . . ..... ... i................. ..... ... ..... ........... ............................................. ..... ... ........... ....... ..... ........ .... ............. . . ........ ..... . .......... ... .. .... ... . . . ........................................................... ............................... ....... ....... ....... ....... .................................................
x
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
x
•
•
•
... .. .. .. .. . ... .. .. . ... .. .................................................................................................. ..... ... ..... ... ..... . . . . . 0 ...... ... ... i ......... ..... ............................... ......... .. .......................................................................................................... . .... . . . . . ..... ......... ... . . . . ..... .. ... ..... ............... ............................................. ... ..... ....... ....... ..... ....... .... ............. ....... ..... ......... ... ... ... .. .... . . ............................................................. ................................ ....... ....... ....... ....... ...........................................................
•
Nyn´ı podle lemmatu 5.1 lze st´ ahnout kruˇznici C do jednoho uzlu, ˇc´ımˇz redukujeme velikost grafu G. 4. Pˇredpokl´ adejme, ˇze neplat´ı ani jedna z pˇredchoz´ıch moˇznost´ı, tj. kaˇzd´ y sud´ y uzel m´a za sousedy jen lich´e uzly. Pak tvrd´ıme, ˇze M je nejvˇetˇs´ı p´ arov´ an´ı. To dok´ aˇzeme takto. Oznaˇcme S mnoˇzinu vˇsech sud´ ych uzl˚ u (vˇcetnˇe stˇred˚ u komponent), L mnoˇzinu vˇsech lich´ ych uzl˚ u, s = |S| a ` = |L|. Pak s − ` = |X| (kde X je mnoˇzina vˇsech stˇred˚ u komponent). Je zˇrejm´e, ˇze graf G − L nem´ a ˇz´ adnou hranu. Tento graf m´a tedy s lich´ ych (jednouzlov´ ych) komponent, tedy co (G − L) = s. To znamen´a, ˇze co (G − L) − |L| = |X|. Mnoˇzina L je tedy antifaktorovou mnoˇzinou, a pro deficienci def(G) grafu G tedy plat´ı def(G) ≥ s − ` = |X|. Naˇse p´arov´an´ı M ale nech´ av´ a nepokryt´ ych pr´ avˇe |X| uzl˚ u, proto def(G) ≤ |X|. Plat´ı tedy rovnost, a tedy podle Vˇety 5.5 je p´ arov´ an´ı M nejvˇetˇs´ı (nalezli jsme antifaktorovou mnoˇzinu L a p´arov´an´ı M tak, ˇze defekt mnoˇziny L je roven poˇctu uzl˚ u nepokryt´ ych p´arov´an´ım M ). Uk´ azali jsme, ˇze v kaˇzd´em kroku algoritmu je moˇzno udˇelat jednu z n´asleduj´ıc´ıch vˇec´ı: 1) zvˇetˇsit alternuj´ıc´ı les F , 2) zvˇetˇsit p´ arov´ an´ı M , 73
3) redukovat velikost grafu G, 4) skonˇcit s nejvˇetˇs´ım p´ arov´ an´ım M . Je zˇrejm´e, ˇze takov´ y postup d´ av´ a polynomi´ aln´ı algoritmus. Praktick´e implementace tohoto algoritmu pracuj´ı v ˇcase O(n4 ). Lepˇs´ı zn´ am´e postupy pracuj´ı v ˇcase O(nm), nejrychlejˇs´ı (a rovnˇeˇz nejsloˇzitˇejˇs´ı) 5 dokonce ˇr´ adovˇe v ˇcase O(n 2 ). Podrobnosti lze nal´ezt napˇr. v kn´ıˇzce [8], hlubˇs´ı teoretick´e souvislosti napˇr´ıklad v monografii [9].
6
Hranov´ e grafy
V t´eto a n´ asleduj´ıc´ı kapitole pozn´ ame pˇr´ıklady dvou speci´aln´ıch tˇr´ıd graf˚ u, kter´e jsou zaj´ımav´e t´ım, ˇze pro grafy z tˇechto tˇr´ıd se zjednoduˇsuje v´ ypoˇcetn´ı sloˇzitost nˇekter´ ych probl´em˚ u.
6.1
Z´ akladn´ı pojmy
Zaˇcneme nejprve motivaˇcn´ım pˇr´ıkladem. Pˇ r´ıklad.
Je d´ an syst´em mnoˇzin A = {A, B, C}, kde
A = {1, 5, 6, 9}, B = {1, 4, 7}, C = {2, 3, 7, 8}. Pr˚ unikov´y graf syst´emu A je graf, jehoˇz uzly tvoˇr´ı jednotliv´e mnoˇziny A, B, C, a hranami spoj´ıme takov´e dvojice uzl˚ u, jejichˇz pˇr´ısluˇsn´e mnoˇziny maj´ı nepr´azdn´ y pr˚ unik. V naˇsem pˇr´ıpadˇe tedy A∩B 6= ∅, B∩C 6= ∅, ale A ∩ C = ∅. Pr˚ unikov´ y graf tohoto syst´emu mnoˇzin tedy vypad´a n´asledovnˇe: •......................................................................•.......................................................................•.. A B C Definice 6.1.
Necht’ G je neorientovan´ y graf. Graf L(G), definovan´ y pˇredpisem
U (L(G)) = H(G), H(L(G)) = {hi , hj }| hrany hi , hj maj´ı spoleˇcn´ y uzel , se naz´ yv´ a hranov´ y graf (anglicky line graph“) grafu G. ” Pozn´ amka. Mnoˇzina hran neorientovan´eho grafu G je mnoˇzinou dvouprvkov´ ych podmnoˇzin mnoˇziny U (G), a tedy lze na ni pohl´ıˇzet jako na mnoˇzinov´ y syst´em. Hranov´ y graf L(G) je pak pr˚ unikov´ y graf tohoto syst´emu mnoˇzin. Pˇ r´ıklad.
G
Na n´ asleduj´ıc´ım obr´ azku je vlevo graf G a vpravo jeho hranov´ y graf L(G). a h h ........... •........1.........................................................................................................................................................................................•.......2 h1..................................... • ..................................h .......... . ... . . 2 . . . . . . . . . .......... .. .......... ... . .......... .......... .... .... ......... ... .......... ......... ... ......................... ... b •....................................................................................................................................................................................•.... c . . . . . . . . . . . . ... L(G) ...... • ............... . . . .. . ... . . . . . ... . . . .......... . . ...... . . ... . . . h . . . . . . ... . . . . . . . .......... 3 h ....... . 3 . . . . .. . . . . . . .... . . .... .... .......... .... .......... .... ... ..................... ... ..... . . . . . . . . . . . . . . . • • .......... h4 .... ...... . . . . .. h5 .......... . . . . . . .......... ... ....... h4 h5 .... .......... ......... .......... .......... ..... ... .......... .......... . ....................... •...............................................................................................................................................•... • e h6 h6 d
Pˇ r´ıklad. Necht’ G1 je kruˇznice d´elky 3 a G2 je u ´pln´ y bipartitn´ı graf K1,3 . Pak G1 a G2 jsou neizomorfn´ı, ale jejich hranov´e grafy jsou izomorfn´ı.
74
•
.... ..... .... .... ......... .... ..... . . . . ..... 3 .......... ..... ..... .. ..... .... . . . ..... ... . . . ..... ... . ..... . . ... ..... . . . ..... ... . . . .... .. . . . . .....................................................................................................
.. ... 1,3 .. ... ... ... ... ........... . . . . . . . . . . ........... ....... . . . . . ........... . . . . . ........... ........ . . . . . . . . . ...... . .....
K
C
•
•......
•
.... ..... .... .... ......... .... ..... . . . . ..... 1,3 ......... ..... ..... ... ..... .... . . . ..... ... . . . ..... ... . ..... . . ... ..... . . . ..... ... . . . .... .. . . . . .....................................................................................................
L(C3 ) = L(K
•
•
•
•
)
•
•
Lze vˇsak dok´ azat, ˇze grafy C3 a K1,3 jsou jedin´e dva neizomorfn´ı grafy, kter´e maj´ı stejn´ y hranov´ y graf. Kromˇe tohoto vyj´ımeˇcn´eho pˇr´ıpadu plat´ı, ˇze kaˇzd´e dva neizomorfn´ı souvisl´e grafy maj´ı neizomorfn´ı hranov´e grafy. Nyn´ı se pokus´ıme vyˇsetˇrit opaˇcnou ot´ azku, tj. k dan´emu hranov´emu grafu G hledat jeho vzor“ H, ” tj. graf H takov´ y, ˇze L(H) = G. Prvn´ı ot´ azkou je, zda v˚ ubec pro kaˇzd´ y G takov´ y H existuje. N´asleduj´ıc´ı pˇr´ıklad n´ am d´ a odpovˇed’. Pˇ r´ıklad. Mˇejme d´ an graf K1,3 a pokus´ıme se zjistit, zda je hranov´ ym grafem nˇejak´eho grafu. Oznaˇc´ıme jeho uzly postupnˇe h1 , . . . , h4 . V p˚ uvodn´ım grafu tyto uzly samozˇrejmˇe pˇredstavuj´ı hrany (viz definice hranov´eho grafu). Budeme postupnˇe vytv´ aˇret graf, pro nˇejˇz je graf K1,3 hranov´ y. h1 •.......
•......
... ... ... ... ... ... ... 2 ............ ........... . . . . . . ........... ....... . . . . . . . . . ........... . ...... ........... ........... ........ ...........
h
h1
•
• h3
• h4
•
.. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ...........................................................................................
•
h2
h3
•
Zde se dost´ av´ ame do probl´em˚ u. M´ ame pˇridat hranu h4 , kter´a m´a spoleˇcn´ y uzel jen s hranou h2 a ˇz´ adnou jinou. To ale nejde, proto pro graf K1,3 nelze vytvoˇrit vzor, graf K1,3 tedy nen´ı hranov´ y. Definice 6.2.
ˇ Rekneme, ˇze G je hranov´ y graf, jestliˇze existuje graf H takov´ y, ˇze plat´ı L(H) = G.
Pozn´ amka. Z pˇredchoz´ıho pˇr´ıkladu vypl´ yv´a, ˇze pokud graf G obsahuje indukovan´ y podgraf izomorfn´ı s K1,3 , pak G nen´ı hranov´ ym grafem.
6.2
Charakterizaˇ cn´ı vˇ ety
N´ asleduj´ıc´ı pˇr´ıklad ukazuje kl´ıˇcovou myˇslenku charakterizace hranov´ ych graf˚ u. Pˇ r´ıklad.
a •......
... ... ... ... ... ... ... ... . ......................................................................................................................................................................................... ... ... ... ... ... ... ... ... ... ... . ... .. ... . ... .. ... . ... ... .. . ... ... .. . ... ... . ... .... .. ....................................................................................................................................................................................
1
G
• 4
2
b•
3
5
•
7
•
6
•
8
•
1•
...... ...... .. ....... ...... .... ........... ...... ...... .. ...... ...... . . . . ... . ...... .. ...... ...... ... ...... ...... . . . . . . . . ........................................................................................................................ . . . . . . . . .... ........ . . .... ........... . . . . . ...... ...... . ...... . .... . . . . . . . . . . . . . ...... . ...... . .. ...... ...... ...... ...... .... ...... ...... ...... ...... . . . . . . . ...... . . . . . . ...... . .... ...... .... . . . . . . . . . . . . . . . ...... .. ...... ...... .... . . ...... . . . . . . . . . . ............. . ......... . . . . . ...... ...... .... .......... . . ...... . ...... . . . ....... ...... ...... . ..... . . . . . . . . . . . . ...... . ....... .... .... . . ...... . . . . . . . . . . . . . ....... . . ...... ...... ....... ....... ...... ...... ...... ....... ...... ...... ...... ............ ..........................................................................................................................
L(G) 4•
2•
•3
• 5
•6
• • 7 8 Po kr´ atk´em zamyˇslen´ı nad obˇema grafy zjist´ıme, ˇze uzlu stupnˇe i v G odpov´ıd´a klika velikosti i v hranov´em grafu L(G). Konkr´etnˇe, jednouzlov´ a klika s uzlem 1 v L(G) odpov´ıd´a uzlu a grafu G, klika indukovan´ a na uzlech 1, 2, 3, 5 v grafu L(G) odpov´ıd´ a uzlu b v grafu G atd. Tento pˇr´ıklad ukazuje myˇslenku d˚ ukazu n´ asleduj´ıc´ı vˇety.
75
Vˇ eta 6.1. (Krausz) Graf G je hranov´ ym grafem, pr´avˇe kdyˇz v grafu G existuje takov´ y syst´em klik K, ˇze kaˇzd´ y uzel leˇz´ı pr´ avˇe ve dvou klik´ ach a kaˇzd´a hrana leˇz´ı v pr´avˇe jedn´e klice syst´emu K. Pozn´ amka. D˚ ukaz t´eto vˇety nebudeme prov´adˇet. Poznamenejme jen, ˇze podm´ınka, ˇze kaˇzd´ y uzel grafu G = L(H) leˇz´ı v pr´ avˇe dvou klik´ ach znamen´a, ˇze v grafu H m´a kaˇzd´a hrana dva konce, a podm´ınka, ˇze kaˇzd´ a hrana grafu G = L(H) n´ aleˇz´ı pr´avˇe jedn´e klice znamen´a, ˇze dvˇe hrany grafu H, kter´e maj´ı spoleˇcn´ y uzel, mohou m´ıt spoleˇcn´ y jen jeden uzel. Vˇeta 6.1 evidentnˇe nen´ı dobrou charakteristikou. Tuto pˇr´ıjemnou vlastnost m´a aˇz n´asleduj´ıc´ı vˇeta (kterou uv´ ad´ıme tak´e bez d˚ ukazu). Vˇ eta 6.2. (Beineke, 1969) Graf G je hranov´ ym grafem, pr´avˇe kdyˇz neobsahuje jako indukovan´ y podgraf ˇz´ adn´ y z n´ asleduj´ıc´ıch dev´ıti graf˚ u. •
•
•
•
•
•
•
•
•
... ... ... ... ... ... ... ... ... ... . . . . . . . . . . . ... ... ...... .... ............. . . . . . ... ... . ........ .... ... . . . . . . ... .. . . . ........ ... ...... . . . . ... . . . . . . ........ .... ... ... .............. . . . . .......... ... .......... . . . . ... ........ .... ... ........ ........ ........ ....... .. ........ ........ ........ .... .............. ........ ... ........ ......
•
•
•
•
•....................................................................................................•....... ... ... ... ... ... .. ... . . . ... . . . . . ... ..... ... ........... . . . . ... . . ... ....... . ..... . . . . . . . ... . . .. . . . ....... . ..... . . . . . . . ... . . . . . ....... .... . ....... ... ................. .... ..... ....... . . . ... ....... ....... ....... ..... ....... ....... . ....... ....... ....... .... ............. ....... .. ....... ............
•
•
•
.. ................ ...... ....... ...... ...... .. .. .. ..... ..... .... .... ..... ........... . . . . . . ...... . . ...... ...... ... ... .... ..... ...... ... ... ... ...... ...... ... .. ...... ...... ... ... ..... .. . ... . . . . . . . . ........................................ . ............................................. . ...... . . . . ... . ...... ... . . . . . . . . . . . ...... ... .. .. ..... . ...... . . . . . . . . . ...... .... ...... ..... .... .... .......... ...... ... .. .. ...... ...... .. .. .. ..... ............. ...... ...............
•
•
•
....................................................................... ...... .. .. .. .... ...... ... ... .. .......... ..... . . .. .. ...... . . .... . ... ...... ... .... . . . . . . . . . ...... ... ...... ...... .... .... ..... ... . . . ...... . . . . . . . . . . ...... .. .... . . . . . . . . . . ...... . . .. . . ...... . .... . ...... . .. . . ...... ...... . . . . . . . . ... ...... .. . . . . . . . . . . . ...... . ... . . . . ...... .... .... .... . .... ...... . . ... ...... ...... .... ..... ... .......... ...... .. ... .......... .. ... ........................................................
•
•
•
•
•
•
•
•
•
•
•
•
•
... .. .............. ... ...... ..... ...... ... ...... .. .. ........... ... ..... .... .... . . . . . . . . . . ...... ... . .... ..... . . . . . . . . . ...... . ... . ... . . . . . . . . . . ...... ..... ... . ..... . . . . . . . . . ...... ... . ... . . . . . . . . . . . . ........................................ .. .... . . ...... . . . . . ... ... . ...... ...... ... . ...... ...... ... .... ...... ..... ...... ...... ...... ..... .... ...... . . ...... ... ... . . ...... .. . ......... ............ ...... .............
•
• •
•
•......
•
....... ............. ............................. ........ ...... .. ...... ...... ...... .... ........... ...... ... ..... ...... . . . . ..... . ...... ... ... . . ... . . . . ...... .. ... .... . . . . . . . ...... ... . .... . . . . . . . ... . . .. . .. . ................................................................................................................. ...... ... ... . . . .. ...... .... . . . . . . . ... ...... ... .. . . . . ...... . . . . . ...... ..... .... ..... ...... ...... ..... ...... .... ........... ...... ...... .. ..... ....... .............. ....................... ..................
. .......... ..... ......... ..... ..... ..... ..... . . . . ..... ..... ..... .... . . .. . . . . . . . . . . . . . . ... ..... ... ........... ......... . . . . . . . . . . ....... .... .. ... ........... . . ....... ..... . . . ....... .... ... ........... .... . . . . ............ . . .... .......... ............ .. ............... ... ....... ....... .... ....... ....... . ...... ....... . . . . . . . . . ....... ....... .... ............. ....... .. ....... .........
•
•
•
•
. ....... ....... ...... ....... . . . . . . ...... ....... ....... ....... ...... ......................................................................... ....... ....... ....... ....... ....... ....... ....... ....... ....... .....
•
........... ...... .. ...... ...... .... ........... ..... ...... ... . . . . . ...... .. ... ...... ...... . ...... ...... .... ...... ..... . . . . . . ...... .. .... . . . . ... . . ...................... ..................... .... ............................................ ... .................. . ... .. ... ....... . ... . . . . . ..... . ... ..... ..... ... ... ..... ..... ... ... ..... ..... ..... .... ... ........ ..... .. ......... .....................................................................
•
•
•
•
•
D˚ usledek 6.1. (i) Vlastnost b´ yti hranov´ ym grafem“ je dˇediˇcn´a na indukovan´e podgrafy. ” (ii) Ot´ azku je dan´ y graf hranov´ ym grafem?“ lze ˇreˇsit v polynomi´aln´ım ˇcase. ” D˚ ukaz. (i) To je zˇrejm´e, nebot’ je-li graf G1 indukovan´ ym podgrafem grafu G, pak i kaˇzd´ y indukovan´ y podgraf grafu G1 je indukovan´ ym podgrafem grafu G. (ii) Grafy z Beinekeho vˇety 6.2 maj´ı nejv´ yˇse ˇsest uzl˚ u, a tedy je lze urˇcitˇe poznat v ˇcase O(n6 ). 2
6.3
Hranov´ e grafy a v´ ypoˇ cetn´ı sloˇ zitost
Pˇ r´ıklad.
Uvaˇzujme graf G a jeho hranov´ y graf L(G) na n´asleduj´ıc´ım obr´azku.
76
.......... .............. ........ ....... .............. ....... ........ . . . . . . . ........ ....... ........ ........ ....... ........ ................................................................................................................................... .. ....... .... .... .............. ....... . . ........ . ... . . . ... . ........ .... ... ........ ... ........ ... ........ .............. ... ........... . . . ... ..... . . ...... ............. . . . . ... . ... . ........ .... . . . . ... . . . . ... . ........ .... . ........ ... ............... ................... . . . . . . . . . . . . . . ........ . .... ............ . . . . . ..... ........ ...... ....... . . . ........ . . . . ........ ........ ........ ........ . . . . ........ . . ........ ............. ......
•..................
•
........ ......... .......... .... . . . . . ...... ............... . . . . . . ........ .... . . . . . ........ . . ..... . ........ . . . . . . ........ ... .. ........ .............................................................................................................................. ......... ............ ......... ......... ............. ........... ......... ......... ......... ......... .......... ........... ......... ......... ......... ......... ...... ... ................................................................................................................
•
•
•
•
•
•
•
•
•
•
•
Vid´ıme, ˇze silnˇe vyznaˇcen´ ym hran´ am p´ arov´an´ı v grafu G odpov´ıdaj´ı zakrouˇzkovan´e uzly v grafu L(G), kter´e zˇrejmˇe tvoˇr´ı nez´ avislou mnoˇzinu. Obdobn´ ym pozorov´ an´ım snadno zjist´ıme i korespondence mezi dalˇs´ımi grafov´ ymi vlastnostmi grafu H a jeho hranov´eho grafu G = L(H). Tato pozorov´an´ı pˇrehlednˇe shrneme do n´asleduj´ıc´ı tabulky. H hrana uzel stupeˇ n uzlu maxim´ aln´ı stupeˇ n ∆(H) p´ arov´ an´ı p´ arovac´ı ˇc´ıslo ν(H) hranov´e obarven´ı chromatick´ y index χ0 (H)
G = L(H) uzel klika poˇcet uzl˚ u kliky klikovost ω(G) 4 nez´avisl´a mnoˇzina nez´avislost α(G) uzlov´e obarven´ı chromatick´e ˇc´ıslo χ(G)
N´ asleduj´ıc´ı tvrzen´ı, vypl´ yvaj´ıc´ı ihned z uveden´ ych korespondenc´ı, ukazuje d˚ uleˇzitost zkoum´an´ı speci´aln´ıch tˇr´ıd graf˚ u v souvislosti s algoritmy a v´ ypoˇcetn´ı sloˇzitost´ı. Tvrzen´ı 6.1. Je-li G hranov´ ym grafem, pak je moˇzno urˇcit jeho nez´avislost α(G) a klikovost ω(G) v polynomi´ aln´ım ˇcase. ´ D˚ ukaz. Ulohu nalezen´ı nejvˇetˇs´ı nez´ avisl´e mnoˇziny v L(G) (kter´a je v obecn´ ych grafech NP-tˇeˇzk´ a) pˇrevedeme na u ´lohu nalezen´ı nejvˇetˇs´ıho p´ arov´an´ı v grafu G. Tato u ´loha je ˇreˇsiteln´a v polynomi´aln´ım ˇcase a pˇrevod L(G) → G, resp. G → L(G) je rovnˇeˇz polynomi´aln´ı. ´ Ulohu nalezen´ı klikovosti v L(G) (kter´ a je rovnˇeˇz v obecnosti NP-tˇeˇzk´a) pˇrevedeme na u ´lohu hled´an´ı maxim´ aln´ıho stupnˇe uzlu v grafu G, kter´ a je zˇrejmˇe polynomi´aln´ı. 2
7
Rovinn´ e grafy
´ V t´eto kapitole se budeme zab´ yvat pouze neorientovan´ ymi grafy. Uvodem je tˇreba ˇr´ıci, ˇze nˇekter´e pojmy budou definov´ any ponˇekud intuitivnˇe (k pˇresn´e formulaci by bylo zapotˇreb´ı pomˇernˇe hlubok´ ych poznatk˚ u z topologie, pˇresahuj´ıc´ı r´ amec pˇredmˇetu). Pro naˇse u ´ˇcely bude intuitivn´ı definice plnˇe postaˇcuj´ıc´ı.
7.1
Uloˇ zen´ı grafu na plochu
ˇ Definice 7.1. Necht’ S je plocha v E3 . Rekneme, ˇze graf G lze uloˇzit na plochu S, jestliˇze jej lze zn´ azornit pomoc´ı bod˚ u (uzl˚ u) a oblouk˚ u (hran) na S tak, ˇze ˇz´adn´e dva oblouky nemaj´ı spoleˇcn´ y vnitˇrn´ı bod. 4 Korespondence
∆(H) = ω(L(H)) plat´ı aˇ z na jednu v´ yjimku, kterou uˇ z zn´ ame: je-li H = C3 , pak L(H) = C3 a je ∆(H) = 2, ale ω(L(H)) = 3.
77
ˇ Rekneme, ˇze G je rovinn´ y graf, jestliˇze jej lze uloˇzit do roviny.
Definice 7.2. Pˇ r´ıklad.
4 •.......................................................
• 40
1 •.......................................................................................................................•........ 20
3 •
• 30
2 •
• 20
• • 3 4 2 1 • •
1 •
• 10
. .............. .................... .......... ........... ........... .......... ... ............ ............. ..... ...... ..... ........................................................... . ..... ............. ............ ..... .......... ......... ...................... ......... ................... ..................... . ..... ............ ..... ............. ................ ...... ............................. .................................................. ...... .................. ................. ...... .... .... .. .. .................................................................................. . . . . . ...... ..................... ..... .... ......... ...... ................. ..................................... ........................... .. . .................... . .......... ......... ..................... ......... ................. ........... ..... ..... .......... .................................................................... . . . .. .. .. .. .. ... ............ ........... ................... ................... ..................... ........... ........... ................ ....................... .... ............
. ..... . . ..... ..... .... .... ..... ..... ... ... ..... ..... .. ..... ..... ... ......................................... ... ... ... .. ... ... . ... .. 0 ... ... . ... .. ... ... . ... .. ... ... . . 0 ... .. ... ... . ... . . ... ... . ...................................... . . . ... ... . ..... .... . . . ... ... . . ..... ... . . . ... . .. . . ..... . ..... .... ... ......... ..... .. ... ....... . ......................................................................................................
•3
40 •
Tento graf je zˇrejmˇe rovinn´ y. ............................ ...... ..... ..... .... ... .... ... ... ...... . . ... ........................ . ... . . ... . . ... ... ... ....... . ... .. . . . . ... ... .... ........ .. . .. . . . . ..... . ... . ... . .. . . . . . . . . ... ..... .... . . ........ . . . . . . ..... ... ... . . ...... . . . . . . . ... ..... .... .. ... ......... ..... .. . . . ... ........ .......... ... ... ...... ... .............. ... ... .. ... ... ........ ......... . ....... .... ... . ... ......... ... . . . . . ....... .. . ............ ... . . . . . . .. .. ... ....... .. ... ............. ... ... ....... ............. ..... ... ... ... ........ ... .. ... .... ... ... ..................... . . ... .. . . . . . ....... . ... ... ........... ....... .... .... ...... ......... .. . .........................................................................................
•
'
K5
•
.... ............. ..... ... ......... ..... .. ... ..... ..... .... .... .......... . . . . ..... ... .... ..... ... ... ..... ..... ... ..... ... ..... .. ..... ... ..... .. ..... ..... . . . . . . . . ... ..... . ... . . . . .... . . . .. . .................................................................................................................................... . ... ......... ... . ..... .. ... ......... ... ... ............ ... ....... .. ... ........... ... ..... .. ... .......... ... ............. ... ... ....... ............. .... .. ... ... ... ............ .. . ... .... . . . ... .. .. .. ... .. ....... .............. . . ... ... ............ ....... .... ... .... . . ...... ......... ..........................................................................................
•
• ' •
•
............................ ...... ..... ..... .... .... .... ... ... ...... . . ... ........................ . . ... . . . ... ... ... ... ....... . .. . . ... . . ... ... .... ........ . .. . .. . . . ..... ... . . ... . .. . . . . . . . . ... ..... ... . . ....... . . . . . . ..... ... ... . . ....... . . . . . . . ... ..... .... ... ........ .. ..... ... . . . ... ....... ........... ... ... ...... ... ....... ... ... .. ... ......... ........ . ....... .... ... . . .. . . . ... .... . . ............ . .. . .... ... . . . ....... ... ... ... ... ....... ..... .. ... .. ... ....... ... .. ... .. ....... .. .. .... ... ... ....... . . ... .. .. . . . . . . . ... .. ... .... ... ........... ... .. ...... ......... ... .... . .. ... .................................................................................. . . .... . . . ..... .... . . . . . . ...... .. .................................................
•
• ' •
• • • Toto pravdˇepodobnˇe nen´ı rovinn´ y graf.
•
•
•
Definice 7.3. Je-li graf G uloˇzen v rovinˇe, pak oblasti (ˇc´asti) roviny, kter´e vymezuje, se naz´ yvaj´ı stˇeny grafu G. Pˇ r´ıklad.
•
K4
.. ....... ... .. .. .. .. ... ... .... ..... . . . .. ... ... .. ... ... ... ... ... ... ... ... ... . . . ... . .. ... ... . . . . ... . . . . ... . .. . . . . ... ............. . . ... . ... . . . ...... . .... . ... . . . . . . . . . ...... ... .... .. . . . . . . . . . . ...... . ... ........... ...... ..... . ...... ... . ...... . . ...... .. ........... . ......... . . ... ........................................................................................................................
•
• Pozn´ amka. vnˇejˇs´ı.
7.2
3 omezen´e stˇeny a jedna (vnˇejˇs´ı) stˇena.
•
Kaˇzd´ y strom m´ a zˇrejmˇe jedinou stˇenu, kter´a nen´ı ohraniˇcena ˇz´adnou kruˇznic´ı a je tedy
Eulerova vˇ eta a jej´ı d˚ usledky
Vˇ eta 7.1.
(Euler) Necht’ souvisl´ y rovinn´ y graf G m´a n ≥ 1 uzl˚ u, m hran a s stˇen. Pak plat´ı
n − m + s = 2. Pozn´ amka.
T´eto rovnosti se velmi ˇcasto ˇr´ık´a Euler˚ uv vzorec.
D˚ ukaz. D˚ ukaz provedeme indukc´ı podle poˇctu hran m. 1) Pro m = 1 je zˇrejmˇe n = 2 a s = 1, vˇeta tedy plat´ı.
78
2) Necht’ graf G m´ a m hran, n uzl˚ u a s stˇen a necht’ vˇeta plat´ı pro kaˇzd´ y souvisl´ y rovinn´ y graf s m − 1 hranami. a) Je-li s = 1, tj. graf G je strom, vytvoˇr´ıme graf G0 odstranˇen´ım koncov´e hrany i s pˇr´ısluˇsn´ ym uzlem stupnˇe 1. Potom graf G0 m´a m − 1 hran, n − 1 uzl˚ u a opˇet jednu stˇenu. Plat´ı pro nˇej tedy (n − 1) − (m − 1) + s = 2 ⇒ n − m + s = 2. b) Je-li s ≥ 2, vytvoˇr´ıme graf G0 odstranˇen´ım hrany v G, kter´a soused´ı se dvˇema r˚ uzn´ ymi stˇenami. Graf G0 tedy m´ a n uzl˚ u, m − 1 hran a s − 1 stˇen a plat´ı pro nˇej n − (m − 1) + (s − 1) = 2 ⇒ n − m + s = 2. 2 D˚ usledek 7.1.
Pro kaˇzd´ y rovinn´ y graf G s alespoˇ n 3 uzly plat´ı
|H(G)| ≤ 3|U (G)| − 6. D˚ ukaz. Nejv´ıce hran m´ a graf, v nˇemˇz kaˇzd´a stˇena je troj´ uheln´ık (tzv. triangulace). Potom plat´ı 3s = 2m, tedy s = 32 m. Po dosazen´ı do Eulerova vzorce obdrˇz´ıme rovnost n − m + 23 m = 2 ⇒ m = 3n − 6. Pro kaˇzd´ y graf, kter´ y nen´ı maxim´ aln´ı (tj. nen´ı triangulac´ı) bude platit nerovnost.
2
D˚ usledek 7.1 ukazuje, ˇze rovinn´e grafy nemohou b´ yt pˇr´ıliˇs hust´e: poˇcet hran rovinn´eho grafu je nejv´ yˇse line´ arn´ı funkc´ı poˇctu uzl˚ u (zat´ımco v obecnosti m˚ uˇze poˇcet hran r˚ ust s poˇctem uzl˚ u kvadraticky). To m´ a v´ yznam pro sloˇzitost nˇekter´ ych algoritm˚ u. Napˇr´ıklad sloˇzitost prohled´av´an´ı do hloubky (backtrackingu) je O(m + n), coˇz v obecnosti m˚ uˇze b´ yt O(n2 ), ale v rovinn´ ych grafech d´ıky d˚ usledku 7.1 jen O(n). V grafech bez troj´ uheln´ık˚ u lze tento horn´ı odhad d´ale vylepˇsit. D˚ usledek 7.2.
Pro kaˇzd´ y rovinn´ y graf bez troj´ uheln´ık˚ u s alespoˇ n 4 uzly plat´ı
|H(G)| ≤ 2|U (G)| − 4. D˚ ukaz. Maxim´ aln´ı rovinn´ y graf bez troj´ uheln´ık˚ u m´a stˇeny bud’ C4 nebo C5 (ve stˇenˇe C6 lze totiˇz pˇridat hranu bez vzniku troj´ uheln´ıku a z´ıskali bychom spor s maximalitou). Poˇcet stˇen C4 oznaˇc´ıme s4 a poˇcet stˇen C5 oznaˇc´ıme s5 . Potom plat´ı 2m = 4s4 + 5s5 ⇒ s4 + 54 s5 =
m 2.
Celkov´ y poˇcet stˇen grafu je s = s4 + s5 , a tedy s = s4 + s5 ≤ s4 + 54 s5 =
m 2.
Z Eulerova vzorce d´ ale plyne m=n+s−2≤n+
D˚ usledek 7.3.
m 2
− 2 ⇒ m ≤ 2n − 4. 2
Grafy K5 a K3,3 nejsou rovinn´e.
79
D˚ ukaz. 1. Pro K5 je n = 5, m = 10. Kdyby to byl rovinn´ y graf, muselo by podle d˚ usledku 7.1 b´ yt m ≤ 3n − 6, a tedy 10 ≤ 3 · 5 − 6 = 9. 2. K3,3 nem´ a troj´ uheln´ıky a je v nˇem 6 uzl˚ u a 9 hran, tedy n = 6, m = 9. Kdyby byl rovinn´ y, pak by podle d˚ usledku 7.2 platilo m ≤ 2n − 4, a tedy 9 ≤ 2 · 6 − 4 = 8. 2 Tento d˚ usledek ukazuje, ˇze pokud graf obsahuje jako podgraf jeden z graf˚ u K5 nebo K3,3 , nutnˇe mus´ı b´ yt nerovinn´ y. Zanedlouho uvid´ıme, ˇze tato nutn´a podm´ınka je (v jist´em smyslu) i postaˇcuj´ıc´ı. Nejprve ale uvedeme jeˇstˇe jeden d˚ usledek Eulerovy vˇety. D˚ usledek 7.4.
Kaˇzd´ y souvisl´ y rovinn´ y graf s alespoˇ n ˇctyˇrmi uzly m´a alespoˇ n tˇri uzly stupnˇe nejv´ yˇse 5.
D˚ ukaz. Kdyby mˇel nejv´ yˇse dva takov´e uzly, platilo by X 2|H(G)| = dG (u) ≥ 6 (|U (G)| − 2) + 1 · 2 = 6|U (G)| − 10. (pˇredpokl´ ad´ ame, ˇze ony dva uzly jsou stupnˇe 1 a ostatn´ı stupnˇe 6). Odtud vˇsak plyne |H(G)| ≥ 3|U (G)| − 5, 2
podle Eulerovy vˇety tedy takov´ y graf nen´ı rovinn´ y.
Pozn´ amka. Lze dokonce dok´ azat (s vyuˇzit´ım dalˇs´ıch grafov´ ych vlastnost´ı), ˇze uzly stupnˇe ≤ 5 mus´ı b´ yt alespoˇ n ˇctyˇri.
7.3
Kuratowsk´ eho vˇ eta a dalˇ s´ı vˇ ety o rovinn´ ych grafech
Pozn´ amka. Pˇrid´ ame-li na nˇekterou hranu uzel 2. stupnˇe, urˇcitˇe to nebude m´ıt vliv na rovinnost. Takovou operaci nazveme p˚ ulen´ı hrany. Pˇ r´ıklad.
Operace p˚ ulen´ı hrany: •.........................................................................................................•.. p˚ uvodn´ı graf
•......................................................................•.......................................................................•.. graf po operaci p˚ ulen´ı hrany
ˇ Definice 7.4. Rekneme, ˇze dva grafy G1 , G2 jsou homeomorfn´ı, pokud je moˇzno koneˇcn´ ym poˇctem p˚ ulen´ı hran dos´ ahnout toho, ˇze vznikl´e grafy jsou izomorfn´ı. (Koneˇcn´ ym poˇctem samozˇrejmˇe rozum´ıme i nulu, tedy kaˇzd´e dva izomorfn´ı grafy jsou homeomorfn´ı.) Pˇ r´ıklad. 1. Kaˇzd´e dvˇe kruˇznice nebo cesty jsou homeomorfn´ı. 2. Pˇr´ıklad vz´ ajemnˇe homeomorfn´ıch graf˚ u:
80
•....................................................................•........
•
... ... ... .. ... .... ... ... ... ... ... ... .... ... ... . . . . . ... ... .. ... ... ... ... ... ..... ... ... .. .... ... . ... . .. .... ... . ... . ... .. ... . . ... . ... ... .... . ... .... ... ... . . ... ... . . .... ........ ........................................................
•
Vˇ eta 7.2. s K3,3 .
'
...... ......... ... ... ... .. ... .... . . . . ... .... ..... .. ... ... ... ... ... ... .. . ... ... .. . . . ... . . . . . . ... ... ... ... . . .......... . .. . .. . . . . . ....... .. .............. ....... ..... . ....... .. ............. . ... . ....................................................................................
•
• →
•
•
•
(Kuratowski)
...... .......... .... .................... .......... .......... ... .......... .......... ... .......... .......... . . . . . . . . ... . .... .. ... ... .... ... ... ... ... ... ... ... . . . . . . . ... . . ....... ................ . . . . . . . .... . ... . .......... ..... .......... ... ................... .......... .... .......... ................. . .......... . . . . . . .......... ..... .......... .......... .......... .......... ............................. .
•
•
•
•
•
•
'
•
•
•
................................................................. . ....... ....... ..... ....... ....... ....... ... ....... ....... . . . . . ... . ............................................................ ... ... .... ... ... ... ... ... .... ... .. .. ... ... ... ... ... ... .. ... ... .... . . . .... . . ... . ..... . . . .. . . ... . . .... ............. .... ...........................................................
•
•
•
•
Graf je rovinn´ y, pr´avˇe kdyˇz neobsahuje podgraf homeomorfn´ı s K5 nebo
D˚ ukaz. Podle 3. d˚ usledku Eulerovy vˇety je tato podm´ınka nutn´a; ˇze je postaˇcuj´ıc´ı nebudeme dokazovat. 2 Pozn´ amka.
Poznamenejme, ˇze Kuratowsk´eho vˇeta je dobrou charakteristikou.
Vˇeta 7.2 je elegantn´ı, ale ne pˇr´ıliˇs praktick´a. Jsou zn´amy algoritmy, kter´e um´ı nal´ezt rovinn´e uloˇzen´ı grafu dokonce v ˇcase O(n), jsou vˇsak dosti sloˇzit´e. Jejich z´akladn´ı princip spoˇc´ıv´a v tom, ˇze naleznou kruˇznici, zakresl´ı ji do roviny a pak k n´ı pˇrid´avaj´ı dalˇs´ı ˇc´asti. Jejich hled´an´ı, nebo d˚ ukaz neexistence uloˇzen´ı, jsou zaloˇzeny na backtrackingu. V d˚ usledku Kuratowsk´eho vˇety pro klikovost ω(G) rovinn´eho grafu G plat´ı ω(G) ≤ 4. Urˇcen´ı ω(G) je tedy ve tˇr´ıdˇe rovinn´ ych graf˚ u polynomi´ aln´ı (napˇr´ıklad hrubou silou - prob´ırkou vˇsech ˇctveˇric uzl˚ u, se sloˇzitost´ı O(n4 )). Vˇ eta 7.3.
Graf je rovinn´ y, pr´ avˇe kdyˇz jej lze uloˇzit na kulovou plochu (sf´eru). 2
D˚ ukaz. Op´ır´ a se o stereografickou projekci. Mnohostˇenov´y graf je graf vznikl´ y uloˇzen´ım mnohostˇenu do roviny. D˚ usledek 7.5.
Kaˇzd´ y mnohostˇenov´ y graf je rovinn´ y.
D˚ usledek 7.6. Pro kaˇzdou hranu h 2-souvisl´eho grafu G existuje takov´e uloˇzen´ı do roviny, pˇri nˇemˇz hrana h soused´ı s vnˇejˇs´ı stˇenou. D˚ ukaz. Zobraz´ıme graf G na sf´eru, pootoˇc´ıme tak, aby stˇena s hranou h byla nahoˇre, a zobraz´ıme jej zpˇet do roviny. 2 Vrat’me se jeˇstˇe k maxim´ aln´ım rovinn´ ym graf˚ um. Jiˇz v´ıme, ˇze kaˇzd´ y maxim´aln´ı rovinn´ y graf m´a jen troj´ uheln´ıkov´e stˇeny. N´ asleduj´ıc´ı vˇeta ukazuje, ˇze plat´ı jeˇstˇe v´ıce. Vˇ eta 7.4.
Kaˇzd´ y maxim´ aln´ı rovinn´ y graf s alespoˇ n ˇctyˇrmi uzly je 3-souvisl´ y.
D˚ ukaz. Kdyby G mˇel dvouprvkov´ y uzlov´ y ˇrez x, y, tak by, po pˇr´ıpadn´em pˇresunut´ı hrany {xy} do vnˇejˇs´ı stˇeny, v omezen´e stˇenˇe obsahuj´ıc´ı oba uzly x, y musely b´ yt dalˇs´ı uzly a, b (jinak by uzly x, y byly spojeny dvojic´ı paraleln´ıch hran). Tyto dva uzly a, b lze spojit pˇri zachov´an´ı rovinnosti, coˇz je spor s maximalitou. 2
81
3-souvislost je vˇsak d˚ uleˇzit´ a i jinak. Pˇ r´ıklad.
Pokud nen´ı graf 3-souvisl´ y, ale napˇr. jen 2-souvisl´ y, m˚ uˇze se st´at n´asleduj´ıc´ı. •..................................................................................................................................................................................................................................................................•............ ...... .... ..... .... ......... ............................. ................................................... ... ... ... •... ... ... .... . . . ...
•.....................................................................................................................................................................................................................................................................•....... . ...... .... ......... ... ... ............................. ................................................... ... ... .. •... .. ... ... ... ... .. . ... . . ... .. ... ... ... .... •......... ........ ... ... ... ... ... ... ... ... ... ... ... .. ................ ... ... ... ... ................ • ................................ ................ ... .. ................ ...... ................ ................ ............. ........ ...................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....• . • nem´ a stˇeny C5
... .. .. . ... ... ... ... .. ... ... ... . ... .... . ... .. .. ... ... . . . ... . ... ... . . ................................... ... ... .... .... ................ ................ ................ ................ ... ... ...... ................ ................ .... .... .. ................ ........................................................................................................................................................................................................
•
'
•
•
•
m´a dvˇe stˇeny C5
Pˇritom se vˇsak jedn´ a o dvˇe r˚ uzn´ a uloˇzen´ı t´ehoˇz grafu. Pojem stˇeny proto nelze vztahovat ke grafu, n´ ybrˇz jen k jeho konktr´etn´ımu uloˇzen´ı. N´ asleduj´ıc´ı vˇeta ukazuje, ˇze pro 3-souvisl´e grafy tato pot´ıˇz odpad´ a. Vˇ eta 7.5.
(Whitney)
Kaˇzd´ y 3-souvisl´ y graf m´a jednoznaˇcn´e uloˇzen´ı na sf´eru.
ˇ je podm´ınka 3-souvislosti nutn´a, plyne z pˇredchoz´ıho pˇr´ıkladu, ˇze je postaˇcuj´ıc´ı, nebudeme D˚ ukaz. Ze dokazovat. 2 N´ asleduj´ıc´ı vˇeta, charakterizuj´ıc´ı mnohostˇenov´e grafy, ukazuje dalˇs´ı situaci, kdy je 3-souvislost d˚ uleˇzit´ a. Kaˇzd´ y mnohostˇenov´ y graf mus´ı b´ yt uloˇziteln´ y na sf´eru, tj. mus´ı b´ yt rovinn´ y. N´azorn´a je i nutnost 3-souvislosti pro tuhost prostorov´e konstrukce“. Nen´ı lehk´e dok´azat, ˇze jsou tyto podm´ınky i postaˇcuj´ıc´ı. ” Vˇ eta 7.6.
(Steinitz, Rademacher)
Graf je grafem mnohostˇenu, pr´avˇe kdyˇz je rovinn´ y a 3-souvisl´ y.
Uved’me jeˇstˇe nˇekter´e dalˇs´ı zaj´ımav´e v´ ysledky o rovinn´ ych grafech vyˇsˇs´ıch stupˇ n˚ u souvislosti. Vˇ eta 7.7.
(Tutte, 1956)
Kaˇzd´ y 4-souvisl´ y rovinn´ y graf je hamiltonovsk´ y.
N´ asleduj´ıc´ı pˇr´ıklad ukazuje, ˇze pro 3-souvisl´e grafy jiˇz takov´a vˇeta neplat´ı. Pˇ r´ıklad.
Ukaˇzte, ˇze tento graf nen´ı hamiltonovsk´ y. •
•
............................................................................................. ........ . ... ........ ..... .... ..... ... ..... ... ..... .... ... . .. . . ..... .. ... ... . . . ..... . . ... .. ....... . . . ..... . . . . . . . . . . ......... ..... ..... .... .... . . . . . . . . . . . ...... .. ... . .... ... . . . . . . . . . . . . . . . . ... ....... ......... ... . ... .......... ... . . . . . . . . . ... ... ........ ....... . ................... ... . . . . ................ . . .. ... ... . ... ... . . . ... ..... . . . . . . . . . . . . ... ..... ....... .... ... .. .... ... ..... ..... ... ... . .. ......... ......... ..... .. ......... ......... .... ..... ..... . . . . . . . . ......... .......... ... ............. ........ ... . ............... .... ... . . . ..... . ... . . . . . . . . . . . . .... ...... ... ... . . . ... ..... ... . . . . . . . . . . ... ... ... ..... . . ... .......... .. ... . . . . . . . . . . . . . . . . . . . . . . . . . ................... ..... ..... ... ... .................. .. . . ... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . . . ................... ..... ... ................. .. .. . . . ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................... ..... .... .... ................................ . . . . . . . . . . .......................... . . . ...... .............. . .. ... ... ... ... ... ..... ... ... ... .. . . . ... .. .. ... ... ... ......... ... ... .... ........ .. .... ... ..... ... . . . . . . ... .... . ... ... ... .... .......... ... ... .................................. ........ ... ... ..... ..... ... ... ... ..... . ..... . . . . ... . . . . ... ... ... ...... ...... .... ... ...... ........................... ......... ... ..... ... ....... ..... ... ... ..... ....... ... ..... ... ... . .................................. . ... . . . . . . . ....... . ... ... ... ................................................... ......... ... ... .... ..... ..... ... ........ ... ... .. . ... .... ..........................................................................................................................................
•
• • • • •• • • • • •• • • • • • • • • • • • • • • •
•
•
•
•
•
•
• • • • • • • • • •
Z´ avˇerem tohoto odstavce si uved’me pˇr´ıklad jednoho klasick´eho otevˇren´eho probl´emu. Hypot´ eza 7.1. tonovsk´ y.
(Barnette)
Kaˇzd´ y 3-souvisl´ y bipartitn´ı rovinn´ y pravideln´ y graf 3. stupnˇe je hamil-
Je zn´ amo, ˇze hypot´eza plat´ı pro grafy s nejv´ yˇse 26 uzly. Pro grafy s v´ıce uzly je ot´azka otevˇren´a.
82
8
Probl´ em obchodn´ıho cestuj´ıc´ıho
Probl´em obchodn´ıho cestuj´ıc´ıho (anglicky ”Traveling Salesman Problem, TSP) je vlastnˇe u ´lohou nal´ezt v ohodnocen´em neorientovan´em grafu hamiltonovskou kruˇznici s nejmenˇs´ım souˇctem ohodnocen´ı hran. V t´eto kapitole si uk´ aˇzeme dvˇe r˚ uzn´e heuristiky pro ˇreˇsen´ı t´eto u ´lohy. Tyto heuristiky uv´ad´ıme jako pˇr´ıklady dvou r˚ uzn´ ych typ˚ u heuristik. Prvn´ı z nich, metoda penalizac´ı, je typick´ ym pˇr´ıkladem algoritmu, kter´ y ned´a odpovˇed’ vˇzdy, ale pokud um´ı ˇreˇsen´ı naj´ıt, pak je najde pˇresnˇe (tj. bud’to d´a pˇresnou odpovˇed’, nebo odpov´ı nev´ım“). ” Naproti tomu algoritmus z odstavce 8.2 funguje“ vˇzdy, ale odpovˇed’, kterou d´a, je pouze aproximac´ı ” pˇresn´eho ˇreˇsen´ı. Pokud hranov´e ohodnocen´ı grafu splˇ nuje troj´ uheln´ıkovou nerovnost, je moˇzno odvodit horn´ı odhad chyby (nejv´ yˇse dvojn´ asobek optima).
8.1
Metoda penalizac´ı
V´ ychodiskem naˇsich u ´vah bude n´ asleduj´ıc´ı zˇrejm´e tvrzen´ı. Lemma 8.1. Podgraf H grafu G s n uzly je hamiltonovskou kruˇznic´ı v G, pr´avˇe kdyˇz plat´ı, ˇze H m´ a n uzl˚ u, n hran, je souvisl´ y a je pravideln´ ym grafem stupnˇe 2. Pokud z pˇredchoz´ıho lemmatu vynech´ame poˇzadavek pravidelnosti stupnˇe 2, obdrˇz´ıme n´asleduj´ıc´ı pojem. Definice 8.1. Necht’ G je souvisl´ y graf. Souvisl´ y faktor grafu G, kter´ y m´a stejn´ y poˇcet hran i uzl˚ u, se naz´ yv´ a 1-strom grafu G. Je-li graf G hranovˇe ohodnocen´ y, pak minim´aln´ı 1-strom je takov´ y 1-strom, pro nˇejˇz je souˇcet ohodnocen´ı hran minim´ aln´ı. V´ıme, ˇze souvisl´ y graf na n uzlech je stromem, pr´avˇe kdyˇz m´a n − 1 hran. 1-strom tedy vznikne pˇrid´ an´ım jedn´e hrany ke stromu. N´ asleduj´ıc´ı tvrzen´ı ukazuje, ˇze minim´aln´ı 1-strom pak lze vytvoˇrit z minim´ aln´ı kostry grafu pˇrid´ an´ım t´e hrany, kter´a nepatˇr´ı do kostry a m´a ze vˇsech takov´ ych hran nejmenˇs´ı ohodnocen´ı. Tvrzen´ı 8.1. Necht’ G je ohodnocen´ y graf, K je jeho minim´aln´ı kostra a h ∈ H(G) \ H(K) je takov´ a hrana, pro kterou w(h) = min{w(h0 )| h0 ∈ H(G) \ H(K)}. Pak graf T = K + h je minim´aln´ı 1-strom grafu G. D˚ ukaz. Tvrzen´ı dok´ aˇzeme sporem. Necht’ tedy 1-strom T nen´ı minim´aln´ı, necht’ 1-strom T 0 m´a menˇs´ı souˇcet ohodnocen´ı. 1-strom T 0 m´ a pr´ avˇe jednu kruˇznici C 0 (coˇz plyne pˇr´ımo z definice 1-stromu). Tato 0 kruˇznice C obsahuje alespoˇ n jednu hranu, kter´a nen´ı v kostˇre K. Tuto hranu oznaˇc´ıme h0 . Oznaˇcme 0 0 0 0 K kostru K = T − h . Podle pˇredpokladu je w(T 0 ) < w(T ). Podle konstrukce 1-stromu T plat´ı, ˇze w(h) ≤ w(h0 ). Odtud ale plyne, ˇze w(K 0 ) = w(T 0 − h0 ) < w(T − h) = w(K), a tedy kostra K nebyla minim´ aln´ı, coˇz je spor. 2 Poznamenejme, ˇze Tvrzen´ı 8.1 umoˇzn ˇuje naj´ıt minim´aln´ı 1-strom v polynomi´aln´ım ˇcase. Hamiltonovsk´ a kruˇznice je zˇrejmˇe speci´ aln´ım pˇr´ıpadem 1-stromu, a proto je souˇcet ohodnocen´ı minim´aln´ıho 1-stromu doln´ım odhadem velikosti ˇreˇsen´ı pˇr´ısluˇsn´e u ´lohy obchodn´ıho cestuj´ıc´ıho. N´ asleduj´ıc´ı lemma d´ av´ a z´ akladn´ı ideu heuristiky pro ˇreˇsen´ı probl´emu obchodn´ıho cestuj´ıc´ıho, kter´e budeme ˇr´ıkat metoda penalizac´ı. Lemma 8.2. Necht’ G je ohodnocen´ y graf s hranov´ ym ohodnocen´ım cij a necht’ t1 , . . . , tn je ohodnocen´ı uzl˚ u grafu G. Zmˇen´ıme-li ohodnocen´ı grafu G tak, ˇze ohodnocen´ı hrany {vi , vj } se zmˇen´ı z ˇc´ısla cij na cij + ti + tj , pak se nezmˇen´ı ˇreˇsen´ı probl´emu obchodn´ıho cestuj´ıc´ıho, ale mohou se zmˇenit minim´aln´ı 1-stromy. 83
D˚ ukaz. Kaˇzd´ y uzel je incidentn´ı se dvˇema hranami hamiltonovsk´e kruˇznice. Zmˇena ohodnocen´ı hran proto vede ke zmˇenˇe ohodnocen´ı vˇsech kruˇznic o tut´eˇz hodnotu, kter´a je rovna dvojn´asobku souˇctu ˇc´ısel ti . Pro 1-stromy ale nic podobn´eho obecnˇe neplat´ı. 2 ˇ ısla ti budeme naz´ C´ yvat penalizace uzl˚ u. Touto penalizac´ı se nezmˇen´ı ˇreˇsen´ı probl´emu obchodn´ıho cestuj´ıc´ıho, ale je moˇzn´e se pokouˇset vhodn´ ym penalizov´an´ım mˇenit tvar urˇcen´eho minim´aln´ıho 1-stromu tak, aby se stal kruˇznic´ı. P Za m´ıru odliˇsnosti 1-stromu T od kruˇznice budeme povaˇzovat ˇc´ıslo D(T ) = U (T ) | degT (vi ) − 2|, nebot’ podle lemmatu 8.1 je 1-strom T kruˇznic´ı, pr´avˇe kdyˇz D(T ) = 0. Jestliˇze pro uzel vi je degT (vi ) > 2, a zvol´ıme-li penalizaci uzlu vi kladnou, pak se ohodnocen´ı hran vych´ azej´ıc´ıch z uzlu vi zvˇetˇs´ı, takˇze je moˇzn´e oˇcek´avat, ˇze nˇekter´e z nich v d˚ usledku penalizace z minim´ aln´ıho 1-stromu vypadnou, coˇz zp˚ usob´ı pokles ˇc´ısla degT (vi ) − 2. Je-li degT (vj ) = 1 (jin´ y menˇs´ı neˇz 2 b´ yt nem˚ uˇze), vol´ıme naopak penalizaci uzlu vj z´apornou, abychom stupeˇ n uzlu zvˇetˇsili. I kdyˇz penalizace m˚ uˇze ovlivnit stupnˇe uzl˚ u v 1-stromu zcela jinak, neˇz bylo zam´ yˇsleno, jsou praktick´e zkuˇsenosti s touto metodou dobr´e. Pˇ r´ıklad. Uk´ aˇzeme si, jak metoda penalizac´ı postupnˇe mˇen´ı minim´aln´ı 1-strom. Zde byla pouˇzita penalizace ti = 10(degT vi − 2). 6 8 •........................................................................................................................................................................................................................................................•........................................................................................................................................................................................•......... Mˇejme d´ an n´ asleduj´ıc´ı graf s hranov´ ym ohodnocen´ım, ve kter´em jsme urˇcili minim´ aln´ı kostru (je vyznaˇcena silnˇe).
35
... ...... ... ....... ... ...... ... ... ........... ...... .... ............ ... ... ...... .......... ... ... ... ...... .............. . . . . . ...... . . ... ... . . . . ......... . ...... . . ... ... . . . . . . ...... ............. . ... ... . . . . . .......... . ... ... . . . . . . . . . . . . . . . . . ......... ................ ... ... . . . . . . . . . ............ ... ... . ......... . . . . . . . . . . . . . . ............ ... ... ........ . . . . . . . . . . . . . . . .......... ... ... . ......... . . . . . . . . . . . . . . . . .......... ... ... .... .. ........... ... .................... ... . ............ .. ... ............... . . . .......... .. ........................................................................................................ ............... ..................................................................................................................................................................................................
11
•
4
•
2
5
3
•
7
8
20
•
6 8 •.......................................................................................................................................................................................................................................................•..............................................................................................................................................................................................•......... Tuto minim´ aln´ı kostru dopln´ıme na minim´ aln´ı 1-strom.
35
... ...... ... ......... .......... ...... ... ... ........... ........ ...... ............ ... ... ........ ...... .......... ... ... ...... ......... .............. . . . ...... ... ... . . . . . . . ...... ......... ...... . . ... ... . . . . . . . . . ...... ........... ....... ... ... . . . . . . . . ........... ....... ... ... . . . . . . . . . . . . . . . . ....... ... ... ......... ................ . . . . . . . . . . ............ ....... ... ... ......... . . . . . . . . . . . . . . ....... ... ... ............ ....... . . . . . . . . . . . . . . . . ....... ... ... ............ ........ . . . . . . . . . . . . ... ... . . . .......... .. ....... ........... ... .................... ... . . ............ ......... ... ............... ... . .......... ...... .............. . . . . . . . . . . ...............................................................................................................................................................................................................................................................................................
11 4
•
2
5
3
•
7
8
20
•
................. ................. ................. .... .... .... .. .. .. ..... -10 ... ..... 20 ... ..... -10 ... . . . . ... .. . . .... .... ....... ........ ................. ................. .... ................................................................................................................................................................................................................................................................................................................................................................................................................. ... ...... . . . . . . . .. ... ... ....... ........... ....... ........ ...... ............ ........... ... ..... ...... ........ ...... . ........... .... .... ... . ...... ............ ........... ...... .... 10 ... ................... . . . ... ... . . ..... . ........... ...... ... . ... ... . . . . . . . . ...... .......................... ....... ... ... ...... ............ . . .......... ... ... ............... ......... ... ... ................... . . . . . . . ...... ........ ................ . . . . . ..... ..... . . . . . . .......... ....... ......... . . . . . ... ... . . . . . . . . . . . .......... ...... ......... . . ... ... . . . . . . . . . . . . . . . . .......... ...... ........ . . . . . . . . . . . . . .... .... . . . . . .......... .. ............ ........... ... .................... ... ........... ........ ... .............. ... ..... ... ...................................................................................................................................................................................................................................................................................................................... ............... ............... ............... . . . . . . . . . . . . ... .. ... .. ... ... ..... 10 .... .... -10 .... .... -10 .... . ... ... ... ........ .......... ................... ................... ..
6
•
Nalezen´ y minim´ aln´ı 1-strom nen´ı kruˇznic´ı, budeme tedy penalizovat v´ yˇse uveden´ ym zp˚ usobem.
•
11
35
•
4
•
8
•
2
5
3
•
7
•
20
8
•
16 18 •.....................................................................................................................................................................................................................................................................•...............................................................................................•.................. Urˇc´ıme nov´e ohodnocen´ı hran a nalezneme nov´ y minim´ aln´ı 1-strom.
15
....... ............ ........ ..... ........... .... ......... ......... ..... ............ ... ........ .......... ...... ............ ...... ......... ........ ... ............ ...... . ........... . . ......... ........ . . . ............ ... . . ........ . ........ . . . . . . .......... ..... . ......... ......... ........... . . . . . . ......... .......... ......... . . . . . . . . . ......... ........ ........ ....... . . . . . . . . . . . . . ...... ........ ....... . ......... . . . . . . . . . . . . . . ...... ......... ....... ....... . . . . . . . . . . . . . . . . ......... ...... ...... ........ . . . . . . . . . . ........ ........ . . . ...... .. .. ...... ......... ......... .................... . ...... ... ..... ......... ............... .............................................................................................................................................................................................................................. ..........................................................................................................................................................................................................
11 4
•
84
•
32
35
23
7
•
8
•
0
.................... .................... .................... ... ... ... . . . ..... 10 .... ..... -10 .... ..... -10 .... . . . ... ... ... . . . . . . ................. ................. .................... ........................................................................................................................................................................................................................................................................................................................ ... . ............................. ............ ...... ... . ........... ....... ...... ... ............ ..................... ...... ........ ........... ...... ... ......... ......... ... ............ ... ..... . . . . . . . ......... . . ......... . .......... .. 0 .. ..... . . ........... .. . . . . ......... ......... . . . .................. ...... ........ . . ......... ......... . . . .......... ...... ..... .. ........... ...... ......... ......... . .............. . . ......... ......... . . ......... ........ . . . . . ........ ........ . . . . ...... ........ . . . . . . . . . ......... . ......... . . . ...... . ......... . . . . . . . ......... . ......... . . . . ...... . ......... . . . . . . ......... ......... . . . . . ...... ... .. ...... ......... ......... ..................... . ...... ... ....... ......... ................ . .......................................................................................................................................................................................................................................... .......................................................................................................................................................................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . ... ............ ... ..... ... ..... ... ... ... .. . .. ..... 0 .... ..... 0 ... ..... 10 ... . . . . ... . .. . . ..... ...... ...... .................. ............... ........
16
•
Minim´ aln´ı 1-strom opˇet nen´ı kruˇznic´ı, je tedy nutn´e znovu penalizovat.
11
15
•
4
•
18
•
32
35
23
•
7
•
0
8
•
16 -2 •...........................................................................................................................................................................................................................................................•..............................................................................................................................................................................•..................... Opˇet urˇc´ıme nov´e ohodnocen´ı hran a nalezneme nov´ y minim´ aln´ı 1-strom.
35
....... ... ........... .. ..... ............ ......... ... ... ...... ............ .......... ... ...... ........... ... ..... ......... ... ........... . . . . . . . ............ ........ ... . ... . . . . . . . . . . . .......... ......... ... . ... . . . . . . . . . . . . . . ................ ......... ... .. ............. . ... ........ ..... ..... . . . . . . . ... . ......... . . . ...... . ......... . . . . ... ......... . . . . . . . . ...... . ......... . . ... . ........ . . . . . . . . ...... ........ . . ... ......... . . . . . . . . . . . ...... . ......... ... ......... . . . . . . . . . . . . ...... ... ................ . ......... . . . . ...... .. ... .............. ........ . . . . . . . . .........................................................................................................................................................................................................................................................................................................................................................................
21
•
14
•
22
25
23
17
•
8
-10
•
Tento minim´ aln´ı 1-strom je kruˇznic´ı, naˇsli jsme tedy ˇreˇsen´ı probl´emu obchodn´ıho cestuj´ıc´ıho. Pˇripomeˇ nme, ˇze metoda penalizac´ı je pˇr´ıkladem optimalizaˇcn´ı heuristiky, kter´a bud’to nalezne pˇresn´e ˇreˇsen´ı, nebo ˇrekne nev´ım“. ” Algoritmus (sch´ ema metody penalizac´ı) ´ Vstupn´ı data - graf G s hranami ohodnocen´ ymi ˇc´ısly cij . Ukolem je nal´ezt v grafu G minim´aln´ı hamiltonovskou kruˇznici. V n´ asleduj´ıc´ım sch´ematu budeme potˇrebovat pomocn´e promˇenn´e ti , zi . 1. Inicializace. Pro i := 1, . . . , n poloˇzme ti = 0. 2. Urˇcen´ı minim´ aln´ıho 1-stromu. V grafu G, ve kter´em se zmˇen´ı ohodnocen´ı hran z hodnot cij na hodnoty cij + ti + tj , urˇc´ıme minim´ aln´ı 1-strom T . 3. Test ukonˇcen´ı. Je-li T kruˇznice, v´ ypoˇcet konˇc´ı, T je hledan´a kruˇznice (KONEC). 4. Zmˇena penalizace. Pokud T nen´ı kruˇznice, pro kaˇzd´e i := 1, . . . , n zvol´ıme ˇc´ıslo zi a poloˇz´ıme ti = ti + zi . Jdeme do bodu 2. M˚ uˇze se st´ at, ˇze takto popsan´ y postup opakuje cyklus bod˚ u 2, 3, 4 neust´ale, aniˇz by nalezl ˇreˇsen´ı, at’ je tomu tak kv˚ uli zad´ an´ı u ´lohy, nebo nevhodn´ ymi zmˇenami penalizace. Proto je tˇreba do bodu 3 pˇridat mechanismus, kter´ y v takov´em pˇr´ıpadˇe v´ ypoˇcet zastav´ı.
8.2
Kruˇ znice mal´ e v´ ahy v u ´ pln´ em ohodnocen´ em grafu
Uvaˇzujme univerz´ aln´ı obr´ abˇec´ı stroj, kter´ y um´ı dˇelat n r˚ uzn´ ych operac´ı (vrt´an´ı, ˇrez´an´ı, brouˇsen´ı atd.). K vyroben´ı v´ yrobku je tˇreba prov´est vˇsechny operace a na jejich poˇrad´ı nez´aleˇz´ı. Pˇrestaven´ı stroje z ´ i-t´e na j-tou operaci trv´ a wij ˇcasov´ ych jednotek. Ukolem je nal´ezt takov´e poˇrad´ı operac´ı, pˇri nˇemˇz se minimalizuje celkov´ a doba prostoj˚ u, zp˚ usoben´ ych pˇrestavov´an´ım stroje. Tato u ´loha se naz´ yv´a job ” sequencing problem“ (ˇcesky snad probl´em ˇrazen´ı operac´ı“) a lze ji zˇrejm´ ym zp˚ usobem pˇrev´est na u ´lohu ” obchodn´ıho cestuj´ıc´ıho v ohodnocen´em u ´pln´em grafu, v nˇemˇz uzly jsou operace a ohodnocen´ı hran je d´ ano ˇc´ısly wij . Je rozumn´e pˇredpokl´ adat, ˇze hranov´e ohodnocen´ı splˇ nuje troj´ uheln´ıkovou nerovnost wij + wjk ≥ wik , ∀i, j, k ∈ U (G). Algoritmus, kter´ y si uk´ aˇzeme, sice d´ a (nˇejak´e) ˇreˇsen´ı vˇzdy, ale hamiltonovsk´a kruˇznice, kterou nalezne, nemus´ı b´ yt nutnˇe optim´ aln´ı. 85
Algoritmus (hamiltonovsk´ a kruˇznice mal´e v´ahy v u ´pln´em ohodnocen´em grafu s troj´ uheln´ıkovou nerovnost´ı) ´ Vstup: Upln´ y graf G s s ohodnocen´ım w : H(G) → (0, ∞), splˇ nuj´ıc´ım troj´ uheln´ıkovou nerovnost. 1. Najdeme minim´ aln´ı kostru T grafu G. 2. Zvol´ıme libovoln´ y uzel v ∈ V (G) a oˇc´ıslujeme uzly grafu G v poˇrad´ı prohled´av´an´ı stromu T do hloubky od uzlu v. Necht’ H je v´ ysledn´a posloupnost. 3. Poloˇz´ıme C = H, v. V´ ystup: Kruˇznice C. Pˇ r´ıklad.
Mˇejme ohodnocen´ yu ´pln´ y graf G, popsan´ y matic´ı W (G): 0 3 3 2 7 3 3 0 3 4 5 5 3 3 0 1 4 4 W (G) = 2 4 1 0 5 5 7 5 4 5 0 4 3 5 4 5 4 0
Jedna z minim´ aln´ıch koster grafu G m´ a mnoˇzinu hran H(T1 ) = {{u1 , u2 }, {u1 , u4 }, {u1 , u6 }, {u3 , u4 }, {u5 , u6 }}. Pˇri jej´ım prohled´ av´ an´ı do hloubky dostaneme posloupnost uzl˚ u H1 = u1 , u2 , u4 , u3 , u6 , u5 a odtud hamiltonovskou kruˇznici C1 = u1 u2 u4 u3 u6 u5 u1 s v´ahou w(C1 ) = 23. Jin´ a minim´ aln´ı kostra tohoto grafu m´ a mnoˇzinu hran H(T2 ) = {{u1 , u4 }, {u1 , u6 }, {u2 , u3 }, {u3 , u4 }, {u3 , u5 }}; jej´ı prohled´ av´ an´ı do hloubky d´ av´a posloupnost uzl˚ u H2 = u1 , u4 , u3 , u2 , u5 , u6 a hamiltonovskou kruˇznici C2 = u1 u4 u3 u2 u5 u6 u1 s v´ ahou w(C2 ) = 18. Poznamenejme, ˇze kruˇznice C2 je optim´aln´ım ˇreˇsen´ım dan´e u ´lohy. N´ asleduj´ıc´ı tvrzen´ı ukazuje, jak kvalitn´ı odhad optim´aln´ıho ˇreˇsen´ı tento algoritmus d´av´a. Vˇ eta 8.1. Necht’ G je ohodnocen´ yu ´pln´ y graf s ohodnocen´ım, splˇ nuj´ıc´ım troj´ uheln´ıkovou nerovnost, C 0 je hamiltonovsk´ a kruˇznice mal´e v´ ahy v G, vytvoˇren´a naˇs´ım algoritmem, a C je minim´aln´ı hamiltonovsk´ a kruˇznice v G (tj. ˇreˇsen´ı u ´lohy obchodn´ıho cestuj´ıc´ıho v G). Pak plat´ı w(C 0 ) ≤ 2w(C). D˚ ukaz. Necht’ C je optim´ aln´ı hamiltonovsk´a kruˇznice v grafu G, a C 0 je hamiltonovsk´a kruˇznice, vytvoˇren´ a naˇs´ım algoritmem. Je-li T minim´aln´ı kostra grafu G, pak jistˇe plat´ı X w(T ) = w(h) ≤ w(C), h∈H(T )
nebot’ vyjmut´ım jedn´e hrany z C dostaneme kostru G, ale T je minim´aln´ı kostra. Necht’ W je uzavˇren´ y sled, urˇcen´ y prohled´av´an´ım kostry T do hloubky. Pak W proch´az´ı kaˇzdou hranou kostry T pr´ avˇe dvakr´ at. Tedy X w(W ) = w(h) = 2w(T ) ≤ 2w(C). h∈H(W )
Povˇsimneme si nyn´ı toho, ˇze kruˇznici C 0 lze z T sestrojit tak, ˇze pˇri zpˇetn´em chodu backtrackingu opakovanˇe m´ısto kaˇzd´e dvojice n´ asleduj´ıc´ıch hran pouˇzijeme pˇr´ısluˇsnou chordu. Pˇri kaˇzd´e n´ahradˇe dvojice hran {x, y}, {y, z} jedinou hranou {x, z} ale plat´ı w(x, z) ≤ w(x, y) + w(y, z), a tedy suma ohodnocen´ı se nezvˇetˇsuje. Proto w(C 0 ) ≤ w(W ), odkud 2
w(C 0 ) ≤ w(W ) ≤ 2w(C).
86
Pozn´ amka. Uvaˇzujme nˇejak´ y optimalizaˇcn´ı probl´em. O polynomi´aln´ım algoritmu, kter´ y pro kaˇzd´ a pˇr´ıpustn´ a vstupn´ı data poskytne pˇribliˇzn´e ˇreˇsen´ı, jehoˇz v´aha je nejv´ yˇse k-n´asobkem v´ahy optim´aln´ıho ˇreˇsen´ı, ˇr´ık´ ame, ˇze je polynomi´ aln´ı k-aproximac´ı dan´eho probl´emu. Vˇeta 8.1 tedy ˇr´ık´a, ˇze n´aˇs algoritmus je polynomi´ aln´ı 2-aproximac´ı pro u ´lohu obchodn´ıho cestuj´ıc´ıho v u ´pln´em grafu s troj´ uheln´ıkovou nerovnost´ı. N´ asleduj´ıc´ı tvrzen´ı ukazuje, ˇze bez pˇredpokladu troj´ uheln´ıkov´e nerovnosti nic takov´eho nelze oˇcek´avat. Vˇ eta 8.2. Je-li P 6= N P , pak pro ˇz´ adn´e pˇrirozen´e ˇc´ıslo k neexistuje polynomi´aln´ı k-aproximace u ´lohy obchodn´ıho cestuj´ıc´ıho v u ´pln´em ohodnocen´em grafu. D˚ ukaz. Nejprve zavedeme n´ asleduj´ıc´ı oznaˇcen´ı. k-TSP (k-aproximaˇcn´ı probl´em TSP) Vstup: u ´pln´ y graf G s hranov´ ym ohodnocen´ım w : H(G) → (0, ∞) a pˇrirozen´e ˇc´ıslo k ≥ 2. ´ Ukol: naj´ıt kruˇznici C 0 v G takovou, ˇze w(C 0 ) ≤ k · w(C), kde C je optim´aln´ı ˇreˇsen´ı u ´lohy obchodn´ıho cestuj´ıc´ıho v grafu G. V´ ystup: kruˇznice C 0 . Je zˇrejm´e, ˇze polynomi´ aln´ı k-aproximace u ´lohy obchodn´ıho cestuj´ıc´ıho v u ´pln´em ohodnocen´em grafu by d´ avala polynomi´ aln´ı algoritmus pro u ´lohu k-TSP. K d˚ ukazu vˇety tedy postaˇc´ı naj´ıt polynomi´aln´ı pˇrevod HAM / k-TSP, tj. uk´ azat, ˇze probl´em k-TSP je NP-tˇeˇzk´ y pro kaˇzd´e pˇrirozen´e k. Necht’ je tedy d´ an graf G na n = |U (G)| uzlech (o nˇemˇz m´ame rozhodnout, zda je hamiltonovsk´ y), a libovoln´e pˇrirozen´e ˇc´ıslo k. Grafu G pˇriˇrad´ıme u ´pln´ y ohodnocen´ y graf G0k n´asleduj´ıc´ım pˇredpisem: U (G0k ) = U (G), H(G0k ) = U (G) , 2 pro h ∈
H(G0k )
poloˇz´ıme w(h) =
1 kn + 1
pokud h ∈ H(G), jinak.
Nyn´ı je zˇrejm´e, ˇze • je-li graf G hamiltonovsk´ y, pak v G0k existuje kruˇznice v´ahy n, a tedy kaˇzd´a k-aproximace optima yˇse kn, u ´lohy obchodn´ıho cestuj´ıc´ıho v G0k m´a v´ahu nejv´ • jestliˇze G nen´ı hamiltonovsk´ y, pak kaˇzd´a kruˇznice v G0k obsahuje alespoˇ n jednu hranu s v´ahou kn + 1, a tedy m´ a v´ ahu alespoˇ n (n − 1) · 1 + 1 · (kn + 1) = (k + 1)n. Pomoc´ı v´ ystupu z probl´emu k-TSP na grafu G0k tedy m˚ uˇzeme rozhodnout, zda je graf G hamiltonovsk´ y: je-li v´ ystupem k-TSP na G0k kruˇznice C 0 , pak G je hamiltonovsk´ y, pr´avˇe kdyˇz w(C 0 ) ≤ kn. Zb´ yv´ a ovˇeˇrit, ˇze pˇrevod HAM / k-TSP je polynomi´aln´ı, ale to je zˇrejm´e.
2
Na z´ avˇer tohoto odstavce si uvedeme jeˇstˇe jeden (jeˇstˇe jednoduˇsˇs´ı) algoritmus, o nˇemˇz lze tak´e dok´azat, ˇze za pˇredpokladu troj´ uheln´ıkov´e nerovnosti poskytuje polynomi´aln´ı 2-aproximaci u ´lohy obchodn´ıho cestuj´ıc´ıho. D˚ ukaz lze nal´ezt napˇr. v knize [7]. Algoritmus (hamiltonovsk´ a kruˇznice mal´e v´ahy v u ´pln´em ohodnocen´em grafu s troj´ uheln´ıkovou nerovnost´ı II) 1. i := 1. 2. Zvolme libovoln´ y uzel u1 a poloˇzme C1 = ({u1 }, ∅).
87
3. Je-li i < n, nalezneme uzly vi ∈ U (G) \ U (Ci ) a ui ∈ U (Ci ) takov´e, ˇze w(ui , vi ) je minim´aln´ı, jinak KONEC. 4. Sestrojme Ci+1 vloˇzen´ım uzlu vi do kruˇznice Ci pˇred uzel ui . 5. i := i + 1, zpˇet na 3. Pozn´ amka.
Uveden´ y algoritmus je v podstatˇe postupem z rodiny“ hladov´ ych algoritm˚ u. ”
Pˇ r´ıklad.
Mˇejme ohodnocen´ yu ´pln´ y graf G, popsan´ y matic´ı W (G): 0 3 3 2 7 3 3 0 3 4 5 5 3 3 0 1 4 4 W (G) = 2 4 1 0 5 5 7 5 4 5 0 4 3 5 4 5 4 0
Zvolme v´ ychoz´ı uzel, napˇr. ten, kter´ y je reprezentov´ an prvn´ım sloupcem (nebo ˇr´ adkem, matice je symetrick´ a). Vytvoˇrili jsme jednouzlovou kruˇznici C1 = u1 . Ze vˇsech nenulov´ ych ˇc´ısel v pˇr´ısluˇsn´em ˇr´ adku nebo sloupci vybereme to nejmenˇs´ı - nalezneme uzel u4 - viz krok 3. Vytvoˇrili jsme novou kruˇznici C2 = u1 u4 u1 . Nyn´ı hled´ ame minimum v ˇr´ adc´ıch 1 a 4 (vynech´ame pˇritom sloupce 1 a 4, nebot’ kaˇzd´ ym uzlem projdeme pr´ avˇe jednou). Tak nalezneme uzel u3 , kter´ y je danou hranou spojen s uzlem, v jehoˇz ˇr´ adku jsme tento prvek naˇsli. Je to ˇctvrt´ y ˇr´ adek, tedy w(u3 , u4 ) = 1. Z´ısk´ ame kruˇznici C3 = u1 u3 u4 u1 . Podle kroku 4 v naˇsem algoritmu jsme dali nov´ y uzel pˇred ten, s n´ımˇz je spojen danou hranou s minim´ aln´ım ohodnocen´ım. Opˇet hled´ ame minim´ aln´ı prvek, tentokr´at v ˇr´ adc´ıch 1, 3, 4 s vynech´ an´ım stejn´ ych sloupc˚ u. Nalezneme uzel u2 v 1. ˇr´ adku. Zde jsme mˇeli nˇekolik moˇznost´ı, vybrali jsme tu prvn´ı.
W (G) = W (G) = W (G) =
3 0 3 4 5 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
0 3 3 0 3 3 2 4 7 5 3 5
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
0 3 3 2 7 3
3 3 0 1 4 4
2 4 1 0 5 5
7 5 4 5 0 4
3 5 4 5 4 0
0 3 3 2 7 3
3 0 3 4 5 5
Opˇet vytvoˇr´ıme novou kruˇznici C4 = u1 u3 u4 u2 u1 . V dalˇs´ıch kroc´ıch bychom pˇridali oba zbyl´e uzly a vytvoˇrili tak kruˇznici C6 = u1 u5 u3 u4 u2 u6 u1 . Cena t´eto kruˇznice w(C6 ) = 24. Nen´ı to vˇsak optim´aln´ı ˇreˇsen´ı, to m´ a cenu w(C) = 18 a pˇr´ısluˇsn´ a kruˇznice je C = u1 u4 u3 u2 u5 u6 u1 . V matici W (G) se jedn´a o silnˇe vyznaˇcen´e prvky: 0 3 3 2 7 3 3 0 3 4 5 5 3 3 0 1 4 4 W (G) = 2 4 1 0 5 5 7 5 4 5 0 4 3 5 4 5 4 0
88
Reference [1] W.J. Cook, W.H. Cunningham, W.R. Pulleyblank, A. Schrijver: Combinatorial Optimization. Wiley - Interscience, New York, 1998. ˇ ˇ Plzeˇ [2] R. Cada, T. Kaiser, Z. Ryj´ aˇcek: Diskr´etn´ı matematika. Skripta ZCU n, 2004. [3] M.R. Garey, D.S. Johnson: Computers and Intractability – a Guide to the Theory of NP– Completeness. Bell Laboratories 1979. ´ ˇ Plzeˇ [4] J. Holenda, Z. Ryj´ aˇcek: Line´ arn´ı algebra II – Uvod do diskr´etn´ı matematiky. Skripta ZCU n, 1995. [5] J. Hromkoviˇc: Algorithmics for Hard Problems. Springer, 2003. [6] B. Korte, J. Vygen: J.Combinatorial Optimization - Theory and Algorithms. Springer, 2003. [7] G. Chartrand, O.R. Oellerman: Applied and Algorithmic Graph Theory. Mc Graw-Hill, 1993. [8] L. Kuˇcera: Kombinatorick´e algoritmy. Matematick´ y semin´aˇr SNTL, Praha 1989. [9] L. Lov´ asz, M.D. Plummer: Matching Theory. Akad´emiai Kiad´o, Budapest, 1986, a Annals of Discrete Math. 29 (1986). [10] C.H. Papadimitriou, K. Steiglitz: Combinatorial Optimization – Algorithms and Complexity. Prentice-Hall, 1982. [11] J. Plesn´ık: Grafov´e algoritmy. Veda, Bratislava, 1983. [12] J. Plesn´ık, J. Dupaˇcov´ a, M. Vlach: Line´arne programovanie. Alfa, Bratislava, 1990.
89