KMA/TGD1
Teorie graf˚ u, diskr´ etn´ı optimalizace a v´ ypoˇ cetn´ı sloˇ zitost 1 Pracovn´ı texty pˇ redn´ aˇ sek http://www.kma.zcu.cz/TGD1 Obsahem pˇredmˇetu KMA/TGD1 jsou z´aklady algoritmick´e teorie graf˚ u a v´ ypoˇcetn´ı sloˇzitosti. Pˇredmˇet navazuje na pˇredmˇet KMA/DMA Diskr´etn´ı matema” tika“, zaˇrazen´ y do prvn´ıho roˇcn´ıku bakal´aˇrsk´eho studia FAV, a znalosti v rozsahu z´akladn´ıch skript [1] jsou podm´ınkou porozumˇen´ı tomuto textu. Kapitoly 1 – 7 rozˇsiˇruj´ı a prohlubuj´ı pˇredchoz´ı poznatky z pˇredmˇetu Diskr´etn´ı matema” tika“ a d´avaj´ı orientaci v z´akladn´ıch pojmech teorie graf˚ u a jejich aplikaci na vybran´e probl´emy diskr´etn´ı optimalizace, se zamˇeˇren´ım pˇredevˇs´ım na algoritmickou str´anku dan´e problematiky. Z hlediska celkov´e koncepce pˇredmˇetu TGD1 tyto kapitoly vytv´aˇrej´ı apar´at pro kapitoly 8 – 9. Tˇeˇziˇstˇem pˇredmˇetu jsou kapitoly 8 – 9, jejichˇz obsahem je u ´vod do teorie v´ ypoˇcetn´ı sloˇzitosti a NP-´ uplnosti. Pochopen´ı filosofie v´ ypoˇcetn´ı sloˇzitosti, NP-´ uplnosti a vlastnost´ı probl´em˚ u z tˇr´ıd P, NP a NPC je hlavn´ı dovednost´ı, kterou by si student mˇel z tohoto pˇredmˇetu odn´est. Na pˇredmˇet KMA/TGD1 v letn´ım semestru navazuje pˇredmˇet KMA/TGD2, v nˇemˇz se vyuˇzij´ı znalosti pojm˚ u z teorie graf˚ u a v´ ypoˇcetn´ı sloˇzitosti. Jeho obsahem je dalˇs´ı prohlouben´ı poznatk˚ u z teorie graf˚ u se zamˇeˇren´ım pˇredevˇs´ım na probl´emy diskr´etn´ı optimalizace na grafech a s´ıt´ıch a jejich algoritmick´e aspekty. Tento text je pomocn´ ym textem k pˇredn´aˇsk´am, a v ˇz´adn´em pˇr´ıpadˇe 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. Na konci textu je uveden pˇrehled z´akladn´ı literatury, kter´a o teorii graf˚ u a NP-´ uplnosti existuje v ˇcesk´em (a v jednom pˇr´ıpadˇe slovensk´em) jazyce. Z t´eto literatury lze doporuˇcit k doplˇ nuj´ıc´ımu studiu zejm´ena knihu [6], j´ıˇz je tento text bl´ızk´ y zejm´ena v kapitol´ach 8 a 9. Dˇekuji studentovi FAV (a nyn´ı jiˇz kolegovi) Pˇremyslu Holubovi za pˇrepis m´ ych pracovn´ıch pozn´amek do TEXu, kter´ y se stal z´akladem tohoto textu, a kolegovi Tom´ aˇsi Kaiserovi, kter´ y je autorem nˇekter´ ych pas´aˇz´ı kapitoly 2. 3. ledna 2007, Z. Ryj´aˇcek
V t´eto verzi textu bylo opraveno nˇekolik drobn´ ych chyb. 20. z´aˇr´ı 2014, Z. Ryj´aˇcek 1
Obsah 1 Algoritmy a v´ ypoˇ cetn´ı sloˇ zitost – intuitivn´ı pˇ r´ıstup 2 Toky v s´ıt´ıch 2.1 S´ıt’, existence toku v s´ıti . . . . . . . . 2.2 S´ıt’ s jedn´ım zdrojem a jedn´ım stokem 2.3 Maxim´aln´ı tok . . . . . . . . . . . . . 2.4 Ford–Fulkerson˚ uv algoritmus . . . . . 2.5 Edmonds–Karp˚ uv algoritmus . . . . . 2.6 Dokonˇcen´ı d˚ ukazu vˇety 2.1 . . . . . .
3
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
5 5 7 8 9 11 11
3 Grafy a matice 3.1 Distanˇcn´ı matice ohodnocen´eho orientovan´eho grafu a Floyd˚ uv algoritmus 3.2 Rozloˇzitelnost matic a struktura orientovan´ ych graf˚ u . . . . . . . . . . . . 3.3 Slabˇe rozloˇziteln´e matice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Regul´arn´ı matice a perfektn´ı p´arov´an´ı v bigrafu . . . . . . . . . . . . . . . 3.5 Struktur´aln´ı matice a generick´ a hodnost . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
12 12 13 16 19 20
4 M´ıry souvislosti grafu 4.1 Mosty, artikulace, bloky grafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Hranov´ y a uzlov´ y stupeˇ n souvislosti grafu . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Charakterizaˇcn´ı vˇety k-souvisl´ ych graf˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 23 25 27
5 Prohled´ av´ an´ı graf˚ u a algoritmy k-souvislosti 5.1 Algoritmus prohled´av´ an´ı grafu . . . . . . . . . . . . . . . . 5.2 Pouˇzit´ı backtrackingu . . . . . . . . . . . . . . . . . . . . . 5.3 Algoritmy zjiˇst’ov´ an´ı k-souvislosti . . . . . . . . . . . . . . . 5.4 Backtracking pro generov´ an´ı hamiltonovsk´ ych cest a cykl˚ u. 5.5 Heuristiky pro hled´an´ı hamiltonovsk´e kruˇznice . . . . . . .
. . . . .
29 29 32 33 33 34
6 Nez´ avislost, dominance, klikovost a j´ adro grafu 6.1 Neorientovan´e grafy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 J´adro orientovan´eho grafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36 36 42
7 Barevnost grafu 7.1 k-obarvitelnost a chromatick´e ˇc´ıslo grafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Barven´ı map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Hranov´e barven´ı a rozklady graf˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44 44 47 48
8 Modely v´ ypoˇ ctu 8.1 Poˇc´ıtaˇc s libovoln´ ym pˇr´ıstupem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ˇ 8.2 Casov´ a a pamˇet’ov´ a n´aroˇcnost v´ ypoˇctu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Probl´emy (jazyky) tˇr´ıdy P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 51 53 54
9 Teorie NP-´ uplnosti 9.1 Logick´e formule . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Probl´em splnitelnosti logick´ ych formul´ı – SAT . . . . . . . . . . 9.3 Probl´em k-SAT a polynomialita probl´emu 2-SAT . . . . . . . . 9.4 Probl´em existence nez´avisl´e mnoˇziny uzl˚ u dan´e velikosti – IND 9.5 Tˇr´ıda NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6 Polynomi´ aln´ı redukce a NP-´ upln´e probl´emy . . . . . . . . . . . 9.7 NP-´ uplnost probl´emu SAT – Cookova vˇeta . . . . . . . . . . . . 9.8 Nˇekter´e dalˇs´ı NP-´ upln´e probl´emy . . . . . . . . . . . . . . . . .
55 55 57 57 60 62 65 66 69
. . . . . .
. . . . . .
. . . . . .
2
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . . . .
. . . . . .
. . . . .
. . . . . . . .
. . . . . .
. . . . .
. . . . . . . .
. . . . . .
. . . . .
. . . . . . . .
. . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . . . . .
1
Algoritmy a v´ ypoˇ cetn´ı sloˇ zitost – intuitivn´ı pˇ r´ıstup
Z pˇredmˇetu KMA/DMA Diskr´etn´ı matematika zn´ame ˇradu prakticky pouˇziteln´ ych ( efektivn´ıch“) algo” ritm˚ u, umoˇzn ˇuj´ıc´ıch ˇreˇsit nˇekter´e probl´emy z teorie graf˚ u: Dijkstr˚ uv algoritmus pro nalezen´ı minim´aln´ı cesty mezi dvˇema uzly grafu, algoritmus ˇc´ıslov´an´ı uzl˚ u pro testov´an´ı acykliˇcnosti grafu a dalˇs´ı. Poznali jsme i probl´emy, u nichˇz jsme konstatovali, ˇze efektivn´ı“ algoritmus pro jejich ˇreˇsen´ı nen´ı zn´am ” sem patˇr´ı napˇr´ıklad probl´em rozhodnout o tom, zda dan´ y neorientovan´ y graf je hamiltonovsk´ y. Apar´at, kter´ y umoˇzn´ı postavit tuto klasifikaci probl´em˚ u z hlediska efektivnosti“ pˇr´ısluˇsn´ ych algoritm˚ u na pevn´ y ” z´aklad, vybudujeme v (kl´ıˇcov´ ych) kapitol´ ach 8 – 9 tohoto pˇredmˇetu. Zde si u ´vodem na intuitivn´ı u ´rovni naznaˇc´ıme ot´azky, kter´e budou hlavn´ım pˇredmˇetem naˇseho z´ajmu. Veˇsker´e u ´vahy v tomto odstavci jsou pouze motivaˇcn´ıho charakteru a bez n´aroku na pˇresnost; pojmy, kter´e zde zavedeme, z´ıskaj´ı pˇresn´ y obsah aˇz v kapitol´ach 8 – 9. Algoritmy, kter´e b´ yvaj´ı povaˇzov´ any za rychl´e, potˇrebuj´ı ke zpracov´an´ı vstupn´ıch dat velikosti n ˇcas, kter´ y b´ yv´a zpravidla shora omezen funkcemi typu n, n log n, n2 , n3 a podobnˇe, tj. ˇcasovou n´aroˇcnost v´ ypoˇctu je moˇzno shora odhadnout polynomem. Naproti tomu algoritmy, kter´e pracuj´ı metodou hrub´e ” s´ıly“, tj. v podstatˇe prob´ır´ an´ım vˇsech moˇznost´ı, vyˇzaduj´ı alespoˇ n 2n krok˚ u, pokud prob´ır´ame vˇsechny podmnoˇziny dan´e n-prvkov´e mnoˇziny, n! krok˚ u, pokud prob´ır´ame vˇsechny permutace dan´e n-prvkov´e mnoˇziny, nebo dokonce nn krok˚ u, pokud prob´ır´ame vˇsechna zobrazen´ı dan´e n-prvkov´e mnoˇziny do sebe. Funkce, ud´avaj´ıc´ı poˇcet krok˚ u algoritmu jako funkci n (velikosti vstupn´ıch dat) je tedy alespoˇ n exponenci´aln´ı. Dramatick´ y rozd´ıl mezi polynomi´aln´ımi a exponenci´aln´ımi algoritmy dobˇre ilustruje n´asleduj´ıc´ı tabulka ud´avaj´ıc´ı ˇcas, kter´ y je potˇrebn´ y ke zpracov´an´ı vstupn´ıch dat velikosti n, jestliˇze je nutno prov´est f (n) operac´ı a proveden´ı jedn´e operace trv´a jednu mikrosekundu. ................................................................................................................................................................................................................................................................................................................................................................................................................................................ ... ...... ... ... ...... ... ... ...... .. ... ............................................................................................................................................................................................................................................................................................................................................................................. ...... ... ... ... ... ... ... . . . . ... . . . . ... ...... n 2 3 4 .... .... .... .... ... .... .. ............................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... ...... .. ..................................................................................................................................................................................................................................................................................................................................................................................................................................................... .... .... .... .... .... ........ .... ... ... ... ... ... ...... ... .. .. .. .. ... ..... ... ................................................................................................................................................................................................................................................................................................................................................................................................................................................................. ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... .... .. ............................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ... ... ... ... ...... ... . ... ...... ... ... ... ... . 9 ... .... .. .. .. .. ... ................................................................................................................................................................................................................................................................................................................................................................................................................................................................... .. ..... .. ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... ...... .. ... ... ... ... ..................................................................................................................................................................................................................................................................................................................................................................................................................................................... .... ........ .... .... .... .... .... ... ...... ... ... ... ... ... ... .... .. .. .. .. .. ................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... .... .. .. .. .. .. ................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... .... .. .. .. .. .. ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................
poˇcet operac´ı f (n)
velikost vstupn´ıch dat n
n
n
n
2
n!
20
0,4 ms
8 ms
0,2 s
1s
77 000 let
40
1,6 ms
64 ms
2,6 s
12 dn´ı
—
60
3,6 ms
0,2 s
13 s
36 600 let
—
80
6,4 ms
0,5 s
41 s
3, 6 · 10 let
—
100
10 ms
1s
100 s
—
—
200
40 ms
8s
27 min
—
—
500
0,25 s
125 s
17 hod
—
—
1000
1s
17 min
12 dn´ı
—
—
Jeˇstˇe l´epe je tento rozd´ıl patrn´ y z n´asleduj´ıc´ı tabulky. Vych´az´ıme v n´ı z pˇredpokladu, ˇze jsme schopni dan´ ym algoritmem s ˇcasovou n´aroˇcnost´ı f (n) zpracovat v dan´em ˇcasov´em limitu vstupn´ı data velikosti n = 100 a pt´ame se, jak se zvˇetˇs´ı velikost u ´loh, kter´e jsme schopni zpracovat ve stejn´em ˇcasov´em limitu, jestliˇze zv´ yˇs´ıme rychlost v´ ypoˇctu 10×, 100×, 1000×. .................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ...... ... ... ...... ... ... ...... ... ... ................................................................................................................................................................................................................................................................................................................................................................................ ... ... ... ... ... ...... ... n ... ... ... ... ... ...... ... 2 3 4 ... ... ... ... ... .... .. ............................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... .. .. .. .. ... .... .. ................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... ... ... ... ... ...... .. ............................................................................................................................................................................................................................................................................................................................................................................................................................................................. ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... .. ... ... ... ... ..... ... .............................................................................................................................................................................................................................................................................................................................................................................................................................................................. ... ... ... ... ... ...... ... ... ... ... ... ... ...... ... ... .... .. .. .. .. .. ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................
poˇcet operac´ı f (n)
zrychlen´ı v´ ypoˇctu
n
n
n
2
n!
1×
100
100
100
100
100
10×
316
215
177
103
100
100×
1000
464
316
106
100
1000×
3162
1000
562
109
101
3
N´azornˇe zde vid´ıme, ˇze pro exponenci´aln´ı algoritmy je typick´e, ˇze nad jistou mezn´ı velikost´ı vstupn´ıch dat nar´aˇz´ıme na bari´eru, nad n´ıˇz ani zv´ yˇsen´ı rychlosti v´ ypoˇctu o nˇekolik ˇr´ad˚ u nem˚ uˇze znatelnˇe zvˇetˇsit velikost zpracovateln´ ych u ´loh. Bylo by jistˇe moˇzno nam´ıtat, ˇze algoritmy s ˇcasovou n´aroˇcnost´ı ˇr´adu n100 , 2100 n a podobnˇe jsou polynomi´aln´ı, a pˇresto budou v praxi nepouˇziteln´e, zkuˇsenost ale ukazuje, ˇze podaˇr´ı-li se u nˇekter´e u ´lohy nal´ezt polynomi´aln´ı algoritmus, pak se zpravidla dalˇs´ım v´ yvojem podaˇr´ı sn´ıˇzit stupeˇ n i koeficienty polynomu na rozumn´e“ hodnoty. Jedinou dosud zn´amou v´ yjimkou je u ´loha (re´aln´eho) line´arn´ıho programov´ an´ı, ” kde v praxi bˇeˇznˇe pouˇz´ıvan´ y simplexov´ y algoritmus (pozn´ame jej v navazuj´ıc´ım pˇredmˇetu KMA/TGD2) m´a v nejhorˇs´ım pˇr´ıpadˇe exponenci´aln´ı ˇcasovou n´aroˇcnost, ale pˇresto je v bˇeˇzn´ ych situac´ıch“ v´ yhodnˇejˇs´ı ” neˇz ned´avno nalezen´ y polynomi´aln´ı (Chaˇcijan˚ uv) algoritmus. V´ ypoˇcetn´ı sloˇzitost dan´eho algoritmu budeme tedy mˇeˇrit pomoc´ı funkce f (n), kter´a ud´av´a ˇcasovou n´aroˇcnost v´ ypoˇctu (poˇcet krok˚ u algoritmu) jako funkci velikosti vstupn´ıch dat. Algoritmus budeme povaˇzovat za efektivn´ı, jestliˇze tuto funkci f (n) lze shora odhadnout polynomem p(n). Pokud takov´ y odhad neexistuje, budeme algoritmus povaˇzovat za neefektivn´ı. Probl´emy, ˇreˇsiteln´e polynomi´aln´ımi (efektivn´ımi) algoritmy budeme naz´ yvat probl´emy tˇr´ıdy P. Do tˇr´ıdy P patˇr´ı vˇetˇsina probl´em˚ u, kter´e jsme dosud poznali: minim´aln´ı kostra, minim´aln´ı a kritick´a cesta, acykliˇcnost grafu, distanˇcn´ı matice. Vˇsimneme si zde toho, ˇze algoritmy, kter´e ˇreˇs´ı tyto u ´lohy, pracuj´ı vesmˇes deterministicky, tj. v kaˇzd´em kroku je jednoznaˇcnˇe urˇcen krok n´asleduj´ıc´ı. Na druh´e stranˇe, u ˇrady u ´loh prostˇe z principi´aln´ıch d˚ uvod˚ u polynomi´aln´ı algoritmus z´ıskat nelze. Jako pˇr´ıklad staˇc´ı uv´est u ´lohu generovat vˇsechny kostry dan´eho grafu – v´ıme, ˇze neorientovan´ y graf na n uzlech m˚ uˇze m´ıt aˇz nn−2 r˚ uzn´ ych koster. Mezi tˇemito skupinami je tˇret´ı skupina u ´loh, pro kter´e dosud nen´ı nalezen efektivn´ı algoritmus, ale tak´e nen´ı dok´az´ ana jeho neexistence. Pro tyto u ´lohy je charakteristick´e, ˇze podaˇr´ı-li se n´am n´ahodou“ ” nal´ezt ˇreˇsen´ı, pak je moˇzn´e v polynomi´aln´ım ˇcase provˇeˇrit jeho spr´avnost. K nalezen´ı tohoto ˇreˇsen´ı jsou ovˇsem zn´amy – pˇri zachov´ an´ı poˇzadavku polynomiality – pouze algoritmy nedeterministick´e, kter´e pracuj´ı s n´ahodn´ ym generov´ an´ım (jakoˇzto modelem uh´adnut´ı“ hledan´eho ˇreˇsen´ı). Je zde ovˇsem moˇznost ” nalezen´ı ˇreˇsen´ı deterministicky hrubou silou (prob´ır´an´ım vˇsech moˇznost´ı), poˇcet krok˚ u takov´ ych algoritm˚ u je ale nejm´enˇe exponenci´aln´ı. Stejnou n´aroˇcnost m´a zodpovˇezen´ı ot´azky existence ˇreˇsen´ı v pˇr´ıpadˇe, kdy odpovˇed’ je z´aporn´a. Typick´ ym pˇredstavitelem u ´lohy z t´eto tˇr´ıdy je u ´loha rozhodnout, zda v dan´em grafu existuje hamiltonovsk´ a kruˇznice: podaˇr´ı-li se n´am hamiltonovskou kruˇznici uh´adnout“, pak se ” v polynomi´aln´ım ˇcase pˇresvˇedˇc´ıme o spr´avnosti ˇreˇsen´ı – pro deterministick´e nalezen´ı hledan´e kruˇznice nebo ovˇeˇren´ı jej´ı neexistence jsou ale zn´am´e jen neefektivn´ı postupy typu hrub´a s´ıla. Dalˇs´ı podobn´e u ´lohy pozn´ame v kapitol´ ach 6 a 7. Tˇr´ıda u ´loh, ˇreˇsiteln´ ych nederministicky v polynomi´aln´ım ˇcase, se naz´ yv´a tˇr´ıda NP (nedeterministicky polynomi´aln´ı) a obecnˇe plat´ı P ⊂ NP. Nen´ı ale dosud zn´amo, jestli je P = NP nebo jestli je P ̸= NP. A co v´ıce: ve tˇr´ıdˇe NP existuje cel´a ˇrada u ´loh, o nichˇz je dok´az´ano, ˇze kdyby se podaˇrilo naj´ıt polynomi´aln´ı algoritmus pro nˇekterou z nich, pak z tohoto algoritmu lze odvodit polynomi´aln´ı algoritmy i pro vˇsechny ´ ostatn´ı probl´emy t´eto tˇr´ıdy. Ulohy t´eto podskupiny jsou tedy co do efektivnosti ˇreˇsen´ı ekvivalentn´ı bud’to jsou vˇsechny ˇreˇsiteln´e v polynomi´aln´ım ˇcase, nebo neexistuje efektivn´ı algoritmus pro ˇz´adnou z nich. Dosud ale nen´ı zn´amo, kter´a z tˇechto moˇznost´ı nast´av´a. Tyto u ´lohy se naz´ yvaj´ı NP-´ upln´e a patˇr´ı mezi nˇe napˇr´ıklad zm´ınˇen´ y probl´em existence hamiltonovsk´e kruˇznice. Mezi NP-´ upln´e u ´lohy patˇr´ı mnoh´e d˚ uleˇzit´e u ´lohy z nejr˚ uznˇejˇs´ıch oblast´ı diskr´etn´ı matematiky, teoretick´e informatiky, z operaˇcn´ı alal´ yzy, teorie k´odov´an´ı, z teorie ˇc´ısel a dalˇs´ıch oblast´ı. Probl´em efektivn´ı ˇreˇsitelnosti tˇechto u ´loh, tj. ot´azka, zda plat´ı P = NP nebo P ̸= NP, zvan´ y NP-probl´em, patˇr´ı mezi nejd˚ uleˇzitˇejˇs´ı otevˇren´e probl´emy modern´ı matematiky, a pˇres velk´e u ´sil´ı z˚ ust´ av´ a st´ale nevyˇreˇsen. Vˇseobecnˇe se ale pˇredpokl´ad´a, ˇze tyto tˇr´ıdy rovny nejsou. Poznamenejme, ˇze to, co bylo dosud ˇreˇceno, se t´ yk´a rozhodovac´ıch u ´loh, tj. u ´loh, u nichˇz v´ ystupem je odpovˇed’ ANO ˇci NE na danou ot´azku. U optimalizaˇcn´ıch u ´loh (najdˇete nejvˇetˇs´ı, nejmenˇs´ı, nejlepˇs´ı atd. objekt z dan´e mnoˇziny) je nutno u ´lohu nejprve pˇrev´est na rozhodovac´ı u ´lohu, kter´a je z hlediska existence efektivn´ıho algoritmu s danou u ´lohou ekvivalentn´ı. Konkr´etn´ı pˇr´ıklady pozn´ame ve druh´e ˇc´ asti tohoto textu.
4
2
Toky v s´ıt´ıch
Teorie tok˚ u v s´ıt´ıch je motivov´ ana u ´lohami z kategorie tzv. dopravn´ıch probl´em˚ u, v nichˇz je c´ılem optimalizovat pˇrepravu nˇejak´eho produktu v transportn´ı s´ıti, pˇr´ıpadnˇe optimalizovat strukturu t´eto s´ıtˇe. Jedn´a se o u ´lohu s bohat´ ymi aplikacemi, a to jak teoretick´eho charakteru v teorii graf˚ u (mnoh´e grafov´e u ´lohy, v nichˇz nikde nic neteˇce“ lze ˇreˇsit pˇrevodem na toky), tak i pˇri praktick´em ˇreˇsen´ı optimalizaˇcn´ıch ” probl´em˚ u. V tomto pˇredmˇetu se omez´ıme na ot´azku existence toku v obecn´e s´ıti a na probl´em maxim´aln´ıho toku v s´ıti s jedn´ım zdrojem a jedn´ım stokem. Obecnou optimalizaˇcn´ı u ´lohu, kdy je nav´ıc u kaˇzd´e hrany zad´ana cena a minimalizujeme celkovou cenu toku, pozn´ame v navazuj´ıc´ım pˇredmˇetu KMA/TGD2.
2.1
S´ıt’, existence toku v s´ıti
⃗ s ohodnocen´ım hran r : H(G) ⃗ −→ (0, ∞) a ohodnocen´ım uzl˚ Definice 2.1. S´ıt’ je orientovan´ y graf G u ⃗ −→ R. a : U (G) S´ıt’ je tedy orientovan´ y graf s kladn´ym re´ aln´ym ohodnocen´ım hran a s re´ aln´ym (pˇripouˇst´ıme i z´aporn´e hodnoty) ohodnocen´ım uzl˚ u. ⃗ povaˇzovat za oˇc´ıslovan´e ˇc´ısly 1, . . . , n (kde n = |V (G)|). ⃗ V t´eto kapitole budeme uzly grafu G Ohod⃗ ⃗ nocen´ı a(i) uzlu i ∈ U (G) budeme kr´atce znaˇcit ai , a obdobnˇe ohodnocen´ı r((i, j)) hrany (i, j) ∈ H(G) budeme kr´atce znaˇcit rij (i, j = 1, . . . , n). Obdobn´ y je i v´ yznam ˇc´ısel xij v n´asleduj´ıc´ı definici. ⃗ s´ıt’ s ohodnocen´ım uzl˚ ⃗ je nez´aporn´e Definice 2.2. Bud’ G u ai a s ohodnocen´ım hran rij . Tok v s´ıti G ⃗ hranov´e ohodnocen´ı x : H(G) −→ ⟨0, ∞), splˇ nuj´ıc´ı n´asleduj´ıc´ı podm´ınky: ⃗ plat´ı 1. pro kaˇzd´ y uzel i ∈ U (G) ∑
xij −
⃗ j;(i,j)∈H(G)
∑
xji = ai ,
⃗ j;(j,i)∈H(G)
⃗ plat´ı 2. pro kaˇzdou hranu (i, j) ∈ H(G) 0 ≤ xij ≤ rij .
Pˇ r´ıklad. Mˇejme jistou mnoˇzinu mˇest, oˇc´ıslovan´ ych ˇc´ısly 1, . . . , n, a tato mˇesta jsou spojena ˇzelezniˇcn´ı ⃗ na n uzlech tak, ˇze (i, j) ∈ H(G) ⃗ pr´avˇe tehdy, jestliˇze i-t´e mˇesto je bezprostˇrednˇe s´ıt´ı. Sestroj´ıme graf G spojeno ˇzeleznic´ı s j-t´ ym mˇestem (pˇredpokl´ad´ame-li obousmˇernost trat´ı, dostaneme vˇzdy dvojici hran (i, j) a (j, i)). Ve zm´ınˇen´ ych mˇestech se vyr´ab´ı a spotˇrebov´av´a jist´ y produkt. Velikost v´ yroby v i-t´em mˇestˇe za jednotku ˇcasu oznaˇcme bi , velikost spotˇreby za jednotku ˇcasu oznaˇcme ci a poloˇzme ai = bi − ci , i = 1, . . . , n. Oznaˇcme rij celkov´e mnoˇzstv´ı produktu, kter´e lze pˇrev´ezt po trati (i, j) za jednotku ˇcasu (obecnˇe m˚ uˇze b´ yt rij ̸= rji ). Jestliˇze ˇc´ısla xij maj´ı v´ yznam skuteˇcn´eho mnoˇzstv´ı produktu, kter´e se za jednotku ˇcasu pˇreprav´ı po trati (i, j), tj. z i-t´eho mˇesta do j-t´eho mˇesta, pak evidentnˇe pro kaˇzdou trat’ ⃗ bude platit 0 ≤ xij ≤ rij , coˇz je podm´ınka 2 z definice 2.2. V kaˇzd´em uzlu i pˇritom mus´ı (i, j) ∈ H(G) platit z´akon zachov´ an´ı“, podle nˇehoˇz rozd´ıl celkov´eho mnoˇzstv´ı produktu vyvezen´eho ( vyt´ekaj´ıc´ıho“) ” ” ⃗ a celkov´eho mnoˇzstv´ı produktu pˇrivezen´eho ( vt´ z uzlu i po vˇsech hran´ach (i, j) ∈ H(G) ekaj´ıc´ıho“) do ” ⃗ mus´ı b´ uzlu i po vˇsech hran´ach (j, i) ∈ H(G) yt roven mnoˇzstv´ı produktu, jeˇz se v i-t´em uzlu nedost´av´a“ ” (pˇri ai < 0), resp. jeˇz v i-t´em uzlu pˇreb´ yv´a“ (pˇri ai > 0), coˇz je podm´ınka 1 z definice 2.2. ”
5
⃗ pak se ˇc´ıslo ai naz´ ⃗ se ˇc´ıslo rij Definice 2.3. Je-li i ∈ U (G), yv´a intenzita uzlu i; pro (i, j) ∈ H(G) naz´ yv´a propustnost hrany (i, j). Je-li ai > 0, pak se uzel i naz´ yv´a zdroj, pˇri ai < 0 se uzel i naz´ yv´a stok. Je-li ai = 0, budeme ˇr´ıkat, ˇze uzel i je neutr´aln´ı uzel. Pˇ r´ıklad.
−2 2 3 •............................................................................................................................................................•..
0 •
............................... ........ ............ ....... .. ........ ........ ....... . . . . . . ........ ........ ........ ........ ....... . . . . . . ............ ..... . . . . ........ . . .. ..........................................................................................................................................................................
2
3 •
1
−1 2 2 •............................................................................................................................................................•..
−3 •
1
Jak se snadno pˇresvˇedˇc´ıme, v ˇz´ adn´e ze s´ıt´ı na obr´azku neexistuje tok (zd˚ uvodnˇete si proˇc). Vid´ıme tedy, ˇze v dan´e s´ıti obecnˇe nemus´ı tok existovat. Naˇs´ım prvn´ım u ´kolem bude vyjasnˇen´ı podm´ınek, za nichˇz v dan´e s´ıti existuje (alespoˇ n jeden) tok. Nejprve ale zavedeme nˇekter´e potˇrebn´e pojmy a oznaˇcen´ı. Definice 2.4.
⃗ je s´ıt’, A ⊂ U (G) ⃗ je mnoˇzina uzl˚ ⃗ \ A. Mnoˇzina hran Necht’ G u, a poloˇzme A¯ = U (G) ¯ = {(x, y) | x ∈ A, y ∈ A} ¯ (A, A)
⃗ se naz´ yv´a ˇrez s´ıtˇe G. ˇ Pozn´ amka. Cten´ aˇr se snadno pˇresvˇedˇc´ı, ˇze naˇse definice ˇrezu je orientovanou analogi´ı pojmu separace, zn´am´eho z pˇredmˇetu KMA/DMA (viz kap. 10.4 skript Diskr´etn´ı matematika“). Pouˇz´ıv´ame zde term´ın ” ˇrez“ (kter´ y byl vyhrazen pro minim´aln´ı separace), protoˇze je to v t´eto souvislosti v literatuˇre obvyklejˇs´ı. ” Uvid´ıme pozdˇeji, ˇze v d˚ uleˇzit´ ych situac´ıch budou ˇrezy, kter´e n´as budou zaj´ımat, splˇ novat podm´ınku minimality. ⃗ je s´ıt’ a A ⊂ U (G) ⃗ je mnoˇzina jej´ıch uzl˚ Necht’ G u. Zavedeme n´asleduj´ıc´ı oznaˇcen´ı: ∑ ⃗ −→ R funkce na U (G), ⃗ oznaˇc´ıme f (A) = je-li f : U (G) fi , i∈A
∑
⃗ −→ R funkce na H(G), ⃗ oznaˇc´ıme g(A, A) ¯ = je-li g : H(G)
gij .
¯ (i,j)∈(A,A)
Tvrzen´ı 2.1.
⃗ je s´ıt’, x je tok v G ⃗ a necht’ A ⊂ U (G) ⃗ je mnoˇzina uzl˚ ⃗ Pak plat´ı Necht’ G u G. ¯ − x(A, ¯ A). a(A) = x(A, A)
D˚ ukaz. Podle definice toku (definice 2.2) pro mnoˇzinu A plat´ı: ∑ ∑ ∑ ∑ ∑ a(A) = ai = ( xij − xji ) = i∈A
i∈A
⃗ j;(i,j)∈H(G)
⃗ j;(j,i)∈H(G)
∑
i∈A j;(i,j)∈H(G) ⃗
xij −
∑
∑
xji .
i∈A j;(j,i)∈H(G) ⃗
V tomto v´ yrazu je prvn´ı ˇclen roven celkov´em souˇctu hodnot tok˚ u, vyt´ekaj´ıc´ıch ze vˇsech uzl˚ u mnoˇziny ¯ prvn´ı v´ A – z tˇechto tok˚ u nˇekter´e smˇeˇruj´ı do jin´ ych uzl˚ u z A, nˇekter´e do uzl˚ u z A; yraz je tedy roven ¯ Obdobnˇe druh´ x(A, A) + x(A, A). y v´ yraz je roven celkov´em souˇctu hodnot tok˚ u, vt´ekaj´ıc´ıch do vˇsech ¯ takˇze je roven x(A, A) + x(A, ¯ A). uzl˚ u mnoˇziny A, z nichˇz nˇekter´e pˇrich´ azej´ı z uzl˚ u z A, jin´e z uzl˚ u z A, Odtud dost´av´ame ¯ − (x(A, A) + x(A, ¯ A)), a(A) = (x(A, A) + x(A, A))
6
odkud ¯ − x(A, ¯ A). a(A) = x(A, A) 2 ⃗ = 0 a pro kaˇzdou mnoˇzinu uzl˚ ⃗ je Vˇ eta 2.1. V s´ıti existuje tok, pr´avˇe kdyˇz a(U (G)) u A ⊂ U (G) ¯ a(A) ≤ r(A, A). D˚ ukaz. 1. Dok´aˇzeme, ˇze podm´ınky vˇety jsou pro existenci toku nutn´e. Pˇredpokl´adejme tedy, ˇze v s´ıti ⃗ existuje tok. Protoˇze pro kaˇzdou hranu (i, j) ∈ H(G) ⃗ plat´ı 0 ≤ xij ≤ rij , je x(A, A) ¯ ≤ r(A, A) ¯ a G ¯ A) ≥ 0. Z tvrzen´ı 2.1 tedy vypl´ ¯ Speci´alnˇe pro A = U (G) ⃗ je A¯ = ∅, takˇze x(A, yv´ a, ˇze a(A) ≤ r(A, A). ⃗ a(U (G)) = 0. 2. Tvrzen´ı o tom, ˇze podm´ınky vˇety jsou postaˇcuj´ıc´ı, dok´aˇzeme pozdˇeji (v kapitole 2.6) po vyˇsetˇren´ı jednoho d˚ uleˇzit´eho speci´aln´ıho pˇr´ıpadu. 2
2.2
S´ıt’ s jedn´ım zdrojem a jedn´ım stokem
⃗ s jedn´ım zdrojem z a jedn´ım stokem s; vˇsechny ostatn´ı uzly s´ıtˇe Jako speci´aln´ı pˇr´ıpad uvaˇzujme s´ıt’ G ⃗ ’ G necht jsou neutr´aln´ı. Je-li intenzita zdroje z rovna ˇc´ıslu a ≥ 0, pak nutnˇe mus´ı m´ıt stok intenzitu −a ⃗ nemohl podle vˇety 2.1 existovat ˇz´adn´ (jinak by v s´ıti G y tok). Jestliˇze v naˇs´ı s´ıti existuje nˇejak´ y tok x, pak pˇr´ısluˇsn´a hodnota intenzity zdroje vyjadˇruje mnoˇzstv´ı produktu“, pˇrepraven´eho po s´ıti ze zdroje z ” do stoku s. Toto ˇc´ıslo, tj. pˇr´ısluˇsn´ a intenzita zdroje, se naz´ yv´a velikost toku x a budeme ji znaˇcit |x|. ⃗ pak zˇrejmˇe funkce x splˇ Poloˇz´ıme-li a = 0 a xij = 0 pro vˇsechna i, j, pro nˇeˇz (i, j) ∈ H(G), nuje podm´ınky definice 2.2 a tedy je tokem. Kr´atce ˇreˇceno - v kaˇzd´e s´ıti existuje alespoˇ n jeden tok, a sice tok nulov´e velikosti. M´a tedy smysl pt´at se na nejvˇetˇs´ı moˇznou velikost toku v dan´e s´ıti. ⃗ je s´ıt’ s jedn´ım zdrojem z a jedn´ım stokem s, a necht’ x je tok v G. ⃗ Rekneme, ˇ Definice 2.5. Necht’ G ′ ⃗ ⃗ ˇze tok x je maxim´ aln´ı tok v G, jestliˇze pro kaˇzd´ y tok x v G plat´ı |x′ | ≤ |x|.
⃗ je s´ıt’ s jedn´ım zdrojem z a jedn´ım stokem s, a necht’ (A, A) ¯ je ˇrez s´ıtˇe G. ⃗ Definice 2.6. Necht’ G ˇ ıslo r(A, A) ¯ se naz´ ¯ C´ yv´ a propustnost ˇrezu (A, A). ˇ ¯ ⃗ ⃗ plat´ı Rekneme, ˇze ˇrez (A, A) je minim´aln´ı ˇrez s´ıtˇe G, jestliˇze pro kaˇzd´ y ˇrez (A′ , A¯′ ) s´ıtˇe G ¯ ≤ r(A′ , A¯′ ). r(A, A) ⃗ dva uzly G, ⃗ pak ˇrekneme, ˇze ˇrez (A, A) ¯ oddˇeluje uzly u, v, jestliˇze u ∈ A a v ∈ A. ¯ Jsou-li u, v ∈ U (G) ⃗ je s´ıt’ s jedn´ım zdrojem z a jedn´ım stokem s, necht’ (A, A) ¯ je ˇrez s´ıtˇe G, ⃗ oddˇeluj´ıc´ı Tvrzen´ı 2.2. Necht’ G ⃗ Pak plat´ı: z a s, a necht’ x je tok v G. ¯ − x(A, ¯ A), (i) |x| = x(A, A) ¯ (ii) |x| ≤ r(A, A). D˚ ukaz. Tvrzen´ı (i) je pˇr´ım´ ym d˚ usledkem tvrzen´ı 2.1, (ii) plyne ihned z tvrzen´ı (i) a z vlastnosti 2 z definice toku. 2
7
2.3
Maxim´ aln´ı tok
N´as v t´eto kapitole zaj´ım´ a pˇredevˇs´ım maxim´aln´ı tok, jeho vlastnosti a moˇzn´e postupy jeho hled´an´ı. Jeden pokus o takov´ y postup by mohl vypadat napˇr´ıklad tak, ˇze zaˇcneme s nulov´ ym tokem a postupnˇe jej modifikujeme podle n´asleduj´ıc´ıho pravidla: existuje-li orientovan´a cesta P ze z do s, jej´ıˇz ˇz´adnou hranou zat´ım ‘neteˇce’ cel´ y povolen´ y objem (propustnost t´eto hrany), pak pˇriˇcteme k hodnot´am toku na hran´ach cesty P maxim´ aln´ı moˇzn´e ˇc´ıslo c, pro kter´e nebude pˇrekroˇcena propustnost ˇz´adn´e z hran. Protoˇze pˇriˇc´ıtan´a velikost je pro vˇsechny hrany cesty stejn´a, snadno ovˇeˇr´ıme, ˇze dostaneme opˇet tok. Jeho velikost bude nav´ıc vˇetˇs´ı neˇz velikost p˚ uvodn´ıho toku. Uvedenou u ´pravu opakujeme, dokud lze naj´ıt orientovan´e cesty s poˇzadovanou vlastnost´ı. Pokud takov´a cesta neexistuje, n´aˇs tok je jistˇe maxim´aln´ı — nebo ne? Ne. Pˇr´ıklad, kter´ y ukazuje, ˇze tato metoda je pˇr´ıliˇs naivn´ı, je uveden na obr´azku. Dejme tomu, ˇze jsme v s´ıti na obr´azku (a) v prvn´ım kroku naˇsli tok, zn´azornˇen´ y tuˇcnˇe na obr. (b). N´aˇs algoritmus skonˇcil ⃗ m´a vˇsak zjevnˇe s tokem o velikosti 1, hledan´a orientovan´ a cesta P neexistuje. Maxim´aln´ı tok v s´ıti G velikost 2. .............. ..................• . . 1................................. ........ ...........................1.
............... ....................• . ... 1...................................... .......................... ............................0
... ........ ...... ....... ... ....... ........ ... ....... ............. ........ . . . . . . . . ...................... . ... ............ . ............... ....... ... ............ ........ ... ....... .. ........ . . . . . . ... ....... ..... . . . . ........ . . . . ........ ....... . ... ....... ....... ............. ............ .............. .......................................
z•
•s
1
1
• (a)
......... ........ .......... ....... ......... .......... ........ ......... ......... ............. ......... ......... . . . . . . ....................... . ......... ............ ................. ....... ......... ........... ........ ......... ......... ... . ........ . . . . . . . ......... ....... ...... . . . . . ........ . . . . . ... ........ ....... .......... ....... .......... ............. .................. ............... ............................................
z•
1
•s
1
0
• (b)
1
Lze nam´ıtnout, ˇze probl´em byl zp˚ usoben nevhodnou volbou cesty P v prvn´ım kroku. To je pravda, d´a se totiˇz dok´azat, ˇze pro kaˇzdou s´ıt’ existuje posloupnost ‘vhodn´ ych’ v´ ybˇer˚ u cesty P , pro kterou n´am skuteˇcnˇe vyjde maxim´aln´ı tok. Pot´ıˇz je v tom, ˇze nem´ame po ruce ˇz´adn´ y n´avod, jak poznat vhodn´ y v´ ybˇer od nevhodn´eho. Proto n´am nezbude neˇz tento postup definitivnˇe zavrhnout. V pˇr´ıˇst´ım odd´ılu si uk´aˇzeme tzv. Ford–Fulkerson˚ uv algoritmus, kter´ y danou u ´lohu ˇreˇs´ı uspokojivˇe. Zavedeme nyn´ı nˇekolik pojm˚ u, na kter´ ych je tento algoritmus zaloˇzen, a vyuˇzijeme je v d˚ ukazu velmi d˚ uleˇzit´e vˇety, Ford–Fulkersonovy vˇety o maxim´aln´ım toku. ⃗ Polocesta z u do w je posloupnost u = v0 , h1 , v1 , h2 , . . . , hk , vk = w, Definice 2.7. Necht’ u, w ∈ U (G). kde vi jsou navz´ ajem r˚ uzn´e uzly, hi jsou hrany a pro kaˇzd´e i = 1, . . . , k plat´ı bud’ hi = vi−1 vi (pak jde o souhlasnou hranu dan´e polocesty) nebo hi = vi vi−1 (nesouhlasn´a hrana). ⃗ Rezerva polocesty P je nez´aporn´e ˇc´ıslo Necht’ x je tok v s´ıti G. ( ) Θ(P ) = min {rij − xij | (i, j) je souhlasn´a hrana P } ∪ {xij | (i, j) je nesouhlasn´a hrana P} . Polocesta P je rezervn´ı, jestliˇze Θ(P ) > 0. ˇ Rekneme-li, ˇze hrana (i, j) je nasycen´ a, je-li xij = rij , a ˇze je nulov´ a, pokud xij = 0, pak polocesta je rezervn´ı, pr´avˇe kdyˇz neobsahuje ˇz´ adnou souhlasnou nasycenou ani nesouhlasnou nulovou hranu. Nav´ıc, dohodneme se, ˇze trivi´aln´ı polocestu (tj. polocestu o jedin´em uzlu) budeme tak´e povaˇzovat za rezervn´ı. Na v´ yznam t´eto definice ukazuje n´asleduj´ıc´ı tvrzen´ı. ⃗ je s´ıt’ s jedn´ım zdrojem z a jedn´ım stokem s, a necht’ x je tok v G. ⃗ Existuje-li Tvrzen´ı 2.3. Necht’ G ⃗ v G rezervn´ı polocesta ze z do s vzhledem k x, pak tok x nen´ı maxim´aln´ı. D˚ ukaz. Necht’ Θ > 0 je rezerva polocesty xij + Θ xij − Θ x′ij = xij
⃗ nov´ P ze z do s. Definujeme v G y tok x′ pˇredpisem: je-li (i, j) souhlasn´a hrana P, je-li (i, j) nesouhlasn´a hrana P, jinak.
Snadno ovˇeˇr´ıme, ˇze x′ je opˇet tok. Protoˇze vˇsak |x′ | = |x| + Θ, tok x nen´ı maxim´aln´ı.
8
2
Nyn´ı m˚ uˇzeme dok´azat nejd˚ uleˇzitˇejˇs´ı tvrzen´ı t´eto kapitoly. ⃗ s´ıt’ s jedn´ım zdrojem z a jedn´ım stokem s. Velikost maxim´aln´ıho Vˇ eta 2.2. [Ford, Fulkerson] Bud’ G ⃗ toku v G je rovna propustnosti minim´aln´ıho ˇrezu, oddˇeluj´ıc´ıho z a s. ⃗ Oznaˇcme R mnoˇzinu vˇsech uzl˚ D˚ ukaz. Necht’ x je maxim´aln´ı tok v G. u w, pro kter´e existuje rezervn´ı polocesta ze z do w. Jistˇe z ∈ R (d´ıky pr´azdn´e“ polocestˇe) a s ∈ / R (protoˇze jinak by podle tvrzen´ı 2.3 ” nemohl tok x b´ yt maxim´aln´ı). ¯ je nutnˇe nasycen´a, protoˇze jinak bychom museli do mnoˇziny R pˇridat Kaˇzd´a hrana (i, j) ∈ (R, R) ¯ R) je nulov´a. Plat´ı tedy x(R, R) ¯ = r(R, R) ¯ a x(R, ¯ R) = 0. jej´ı koncov´ y uzel. Podobnˇe kaˇzd´ a hrana z (R, Podle tvrzen´ı 2.2 (i) je ¯ − x(R, ¯ R) = r(R, R). ¯ |x| = x(R, R) ¯ kter´ Naˇsli jsme tedy ˇrez (R, R), y oddˇeluje z a s a jeho propustnost je rovna velikosti toku x. Podle tvrzen´ı 2.2 (ii) mus´ı j´ıt o minim´aln´ı ˇrez. 2 Vˇsimnˇeme si, ˇze jsme vlastnˇe dok´azali opaˇcnou implikaci k tvrzen´ı 2.3: neexistuje-li ˇz´adn´a rezervn´ı polocesta ze zdroje do stoku, potom mnoˇzina R (definovan´a jako v d˚ ukazu vˇety 2.2) neobsahuje stok, a ¯ Podle tvrzen´ı 2.2 (ii) je x nutnˇe maxim´aln´ı tok. tedy |x| = r(R, R).
2.4
Ford–Fulkerson˚ uv algoritmus
Myˇslenka d˚ ukazu vˇety 2.2 ukazuje metodu, kter´a umoˇzn ˇuje efektivnˇe ovˇeˇrit, zda je dan´ y tok x maxim´aln´ı. Staˇc´ı zkonstruovat mnoˇzinu R vˇsech uzl˚ u, kter´e jsou dosaˇziteln´e ze zdroje po rezervn´ı polocestˇe. Pokud s ∈ R, pak n´aˇs tok x nen´ı maxim´aln´ı a nalezen´a polocesta ze z do s umoˇzn ˇuje pˇrej´ıt k toku o vˇetˇs´ı ¯ s propustnost´ı |x|. Podle tvrzen´ı 2.2 velikosti. Pokud na druhou stranu s ∈ / R, pak jsme naˇsli ˇrez (R, R) (ii) je tento ˇrez d˚ ukazem, ˇze x je maxim´aln´ı tok. Na myˇslence rezervn´ı polocesty je zaloˇzen nejjednoduˇsˇs´ı algoritmus pro hled´an´ı maxim´aln´ıho toku, tzv. Ford–Fulkerson˚ uv algoritmus. Algoritmus 2.1.
(Ford–Fulkerson˚ uv algoritmus)
⃗ 1. Jako v´ ychoz´ı tok x zvolme nulov´ y tok: xij := 0 pro kaˇzdou hranu (i, j) ∈ H(G). ⃗ existuje nˇejak´ 2. Jestliˇze v grafu G a xij + Θ xij := x −Θ ij xij
rezervn´ı polocesta P ze z do s, upravme podle n´ı tok x: pokud (i, j) je souhlasn´a hrana polocesty P , pokud (i, j) je nesouhlasn´a hrana polocesty P , pokud (i, j) neleˇz´ı na P ,
a pokraˇcujme bodem (2). 3. V pˇr´ıpadˇe, ˇze rezervn´ı polocesta ze z do s neexistuje, je tok x maxim´aln´ı. Zp˚ usob hled´an´ı rezervn´ı polocesty nen´ı v tomto algoritmu specifikov´an — m˚ uˇzeme prostˇe vz´ıt prvn´ı, kterou najdeme. Aby byl tento postup pouˇziteln´ y, je nutn´e zaruˇcit, ˇze algoritmus po koneˇcn´em poˇctu krok˚ u skonˇc´ı. V s´ıti s celoˇc´ıseln´ ymi propustnostmi hran to nen´ı tak tˇeˇzk´e. ⃗ propustnosti vˇsech hran cel´a ˇc´ısla, pak Ford–Fulkerson˚ Tvrzen´ı 2.4. Jsou-li v s´ıti G uv algoritmus skonˇc´ı po koneˇcn´em poˇctu krok˚ u.
9
D˚ ukaz. Pˇredevˇs´ım si vˇsimnˇeme, ˇze po proveden´ı kaˇzd´eho kroku algoritmu z´ısk´ame tok, jehoˇz hodnota na kaˇzd´e hranˇe je celoˇc´ıseln´ a. V´ ychoz´ı nulov´ y tok totiˇz tuto vlastnost m´a, a d´ıky celoˇc´ıselnosti propustnost´ı je cel´e i ˇc´ıslo Θ, o kter´e mˇen´ıme hodnoty toku. Velikost toku v kaˇzd´em kroku vzroste pr´avˇe o ˇc´ıslo Θ, kter´e je vˇetˇs´ı nebo rovno jedn´e. Velikost maxim´aln´ıho toku je pˇritom shora omezena propustnost´ı minim´aln´ıho ˇrezu. Poˇcet krok˚ u je tedy koneˇcn´ y. 2 D´a se uk´azat, ˇze algoritmus je koneˇcn´ y i v pˇr´ıpadˇe, ˇze propustnosti jsou racion´aln´ı ˇc´ısla. Pro obecn´e re´aln´e propustnosti vˇsak (ponˇekud pˇrekvapivˇe) existuj´ı pˇr´ıpady s´ıt´ı, kdy Ford–Fulkerson˚ uv algoritmus koneˇcn´ y nen´ı. My se ve zbytku t´eto kapitoly omez´ıme na s´ıtˇe s celoˇc´ıseln´ ymi propustnostmi hran. ⃗ Jinou slabinou naˇseho algoritmu je, ˇze doba jeho prov´adˇen´ı z´avis´ı nejen na poˇctu uzl˚ u a hran s´ıtˇe G (coˇz je pˇrirozen´e), ale tak´e na propustnostech hran. Uvaˇzme s´ıt’ na n´asleduj´ıc´ım obr´azku, ve kter´e Q je nˇejak´e velk´e ˇc´ıslo. ............ ...............• Q.................................. ........ ............................Q . ........ ... ........ ........ ... ........ ....... ... ........... ........ . ... ....... . . . . . .......................... . . ... ........... ................. ... ....... ........ ............ ... ........ ....... . . . . . . . . ....... .. ... ........ ........ .. ........ ....... . .. . ....... ....... ............. ............ .............. ........................................
z•
•s
1
Q
Q • Pokud v kaˇzd´em kroku algoritmu neˇst’astnou n´ahodou pouˇzijeme rezervn´ı polocestu, kter´a proch´az´ı svislou hranou, zmˇen´ı se velikost toku vˇzdy jen o 1, takˇze budeme potˇrebovat 2Q krok˚ u. Pˇ r´ıklad. Najdˇeme maxim´aln´ı tok v s´ıti na n´asleduj´ıc´ım obr´azku. a ............ ...............•..... ...........................1 ................... .... d .......... ........ . ...................... . . . . . ..... .... ..........................• ...... .....2 . . . ............. ..... . . . . ................... ....... . . 2 . . ..... .... ....... 4 ....... ........... . . . . . . . . . . . . . . . . .
. ....... ..... ....... .. ....... ...... ... ...... ..... ....... ..... ..... ......... ....... ...... .... ....... ........ ....... ... ...... ..... ........ ....... . . ..... . . . . . . . . . . ......................... ....... ......................................................................................................... . . . . ........................ ...... ....... .. ...... . . . . . ...... ..... ....... ........... . . . ...... ....... ........ . . . . . ..... ... ...... ....... ... ...... ........... ....... ...... ....... ..... ............. ......... ...... ....... ...... ....... .... ...... .................. ....... .... . . . . . . . ...... . . . . . . . . ....... ... ... ...... ............................................. .... ...... . .......... ........ ........................... ....................... .................................... ...........
z•
2 1
b 1 • 2
•s
• e
2
1
• 1 c Poˇc´ateˇcn´ı nulov´ y tok snadno zvˇetˇs´ıme pod´el nˇekolika orientovan´ ych cest ze z do s. Dejme tomu, ˇze jsme pˇridali hodnotu 1 na cest´ach zads, zces a zbds a dostali jsme tok velikosti 3 na n´asleduj´ıc´ım obr´azku (zde dvojice ˇc´ısel u hrany (i, j) m´a v´ yznam (xij , rij )). a (1, 1) d ........... .....................•............................................. ........................... ..... ........ . . . ..... . ...... ...............................• ... . . . . . . . ....... .............. ...(0, 2) ..... ..... (1, 2) .................... . .......(2, 4) . . . ..... ....... .......... ....... . .... . . . . . . . . . . ....... ..... ....... . ....... .... ............. ...... ....... .... . ...... . . . . . . . . . . . ....... . . . .... ....... .. ... . . . (1, 1) . ....... ... . . . . . . . . . . . . ..... .... . b ... . (1, 2) . ..... . . . . . . . ......................... . . . . . . . . .. s z •...............................................................................................•....................... ........................ ..............• ............ ....... .... ...... ..... ....... .. . . . .......... . ...... . . . ..... .... ....... . ...... . . . . . . . . (0, 2) . . . ........ .. ...... ....... ....... ......... ...... ..... ....... ...... ....... ...... ..... .................... ....... .... ........ ......... (1, 1) (1, 1)..................... . .............(0, .................................................... 2) .......... ... ..................... • ................ ..... .................................... e ........... • (1, 1) c Nyn´ı uˇz ˇz´adn´ a orientovan´ a cesta ze z do s s nenulovou rezervou neexistuje, a mohli bychom se domn´ıvat, ˇze jsme naˇsli maxim´aln´ı tok. Pokud ale sestroj´ıme mnoˇzinu R jako v d˚ ukazu Ford–Fulkersonovy vˇety, ´ zjist´ıme, ˇze s ∈ R, a to kv˚ uli polocestˇe zbecds s rezervou 1. Upravou toku pod´el t´eto polocesty dostaneme n´asleduj´ıc´ı tok velikosti 4. a ......... ................................ (1, 1) ................... .......................• ........... ................... ...... d . . . ..... . . . ............ ..... ...... ....(0, ...... . 2) ....................................................................•..............................(3, 4) . . . ..... (1, 2) ... . . . . . . . ....... ..... ..... ...... . ..... . . ....... . . . . . . . . ..... ....... . ....... ... ....... ..... ....... ...... ....... ...... .......... ..... (1, 1) ........... ..... ....... ........ ....... . . . . . . . . . b . . ..... .... (2, 2) ...... ... ....... ... .......................... . . ..... .................................................................................................................. . ....... . s . z ...•................ . . .............• ... ...• . . . . . . . . . .... ....... .............. . . ....... ....... ........ . . ...... . . . ....... .... ..... ...... ....... ...... ..... ....... . ............... . (1, 2) . . . . . ...... . . . . . ....... ...... .... ....... ....... ........ . ...... ....... ..... ....... ........ ......................... .............. (1, 1) .... (1, 1)..................... . .............(1, ....................................................... 2) .......... .... ....... ..................... ...• ................ .... .................................... .......... e • (0, 1) c 10
Provedeme-li opˇet kontrolu maximality (konstrukci mnoˇziny R), zjist´ıme, ˇze tentokr´at s ∈ / R, takˇze ¯ = tok je jiˇz skuteˇcnˇe maxim´aln´ı. Uzly mnoˇziny R jsou oznaˇceny krouˇzky, minim´aln´ı ˇrez je (R, R) {(a, d), (b, d), (z, c), (e, s)}.
2.5
Edmonds–Karp˚ uv algoritmus
Nesn´az se z´avislost´ı ˇcasov´e n´aroˇcnosti algoritmu na propustnostech ˇreˇs´ı modifikace Ford–Fulkersonova algoritmu, zn´am´ a jako Edmonds–Karp˚ uv algoritmus. Myˇslenka je jednoduch´a: zvol´ıme vˇzdy nejkratˇs´ı rezervn´ı polocestu ze z do s (tj. takovou, kter´a m´a minim´aln´ı poˇcet hran). D´a se uk´azat (my to dˇelat nebudeme), ˇze v takov´em pˇr´ıpadˇe je poˇcet opakov´an´ı kroku (2) algoritmu nez´avisl´ y na propustnostech a ⃗ a n = |U (G)|. ⃗ ˇcin´ı v nejhorˇs´ım pˇr´ıpadˇe zhruba m2 n, kde m = |H(G)| Jak ale zm´ınˇenou nejkratˇs´ı rezervn´ı polocestu naj´ıt? Napˇr´ıklad tzv. prohled´ av´ an´ım do ˇs´ıˇrky. Prohled´av´an´ı graf˚ u je postup, kter´ y je z´akladem mnoha efektivn´ıch algoritm˚ u a podrobnˇeji se j´ım budeme zab´ yvat v kapitole 5. Nyn´ı si jen pop´ıˇseme jednu z iterac´ı kroku (2). Dejme tomu, ˇze m´ame nˇejak´ y tok x a hled´ame nejkratˇs´ı rezervn´ı polocestu ze z do s. (a) Necht’ T je strom na jedin´em uzlu z. D´ale mˇejme seznam uzl˚ u L s jedinou poloˇzkou z. Vˇsechny uzly ⃗ kromˇe zdroje jsou na zaˇc´ s´ıtˇe G atku neoznaˇcen´e, zdroj je oznaˇcen´y. (b) Je-li L ̸= ∅, pak necht’ v je prvn´ı uzel seznamu L. – Je-li v = s, algoritmus konˇc´ı. Jednoznaˇcnˇe urˇcen´a polocesta spojuj´ıc´ı z a s ve stromu T je hledan´a nejkratˇs´ı polocesta. Uprav´ıme pod´el t´eto polocesty tok x jako ve Ford–Fulkersonovˇe algoritmu. – Jinak oznaˇc´ıme vˇsechny neoznaˇcen´e sousedy w uzlu v, pro nˇeˇz vw je nenasycen´a hrana nebo wv je nenulov´ a hrana, ve stromu T je pˇripoj´ıme hranami k v, a pˇrid´ame je na konec seznamu L. Vyˇrad´ıme uzel v ze seznamu L a pokraˇcujeme bodem (b). (c) V pˇr´ıpadˇe L = ∅ rezervn´ı polocesta spojuj´ıc´ı z a s neexistuje a tok x je tedy maxim´aln´ı.
2.6
Dokonˇ cen´ı d˚ ukazu vˇ ety 2.1
Vr´at´ıme se nyn´ı k obecn´emu pˇr´ıpadu s´ıtˇe s v´ıce zdroji a v´ıce stoky a dok´aˇzeme tvrzen´ı o tom, ˇze podm´ınky vˇety 2.1 jsou postaˇcuj´ıc´ı pro existenci toku. Tvrzen´ı dok´aˇzeme tak, ˇze hledan´ y tok sestroj´ıme pˇrevodem na vˇetu 2.2. ⃗ je a(U (G)) ⃗ = 0 a pro kaˇzd´ ¯ je a(A) ≤ r(A, A). ¯ Sestroj´ıme novou s´ıt’ G ⃗′ Necht’ tedy v s´ıti G y ˇrez (A, A) ⃗ s jedn´ım zdrojem a jedn´ım stokem tak, ˇze ke G pˇrid´ame nov´ y fiktivn´ı“ zdroj z a nov´ y fiktivn´ı“ stok s ” ” ⃗ podle n´asleduj´ıc´ıch pravidel: a spoj´ıme je s uzly s´ıtˇe G • je-li ai > 0, pak pˇridej hranu (z, i) s propustnost´ı ai a uzlu i dej novou intenzitu ai = 0, • je-li ai < 0, pak pˇridej hranu (i, s) s propustnost´ı −ai a uzlu i dej novou intenzitu ai = 0, • je-li ai = 0, pak nedˇelej nic, ⃗ (viz obr´azek). i = 1, . . . , |U (G)| ................................................................................................................................................................................... ... ............... ............. e hrany stoky ..... ............................nov´ . . . . . . . . . . . . . . . . . . . .................... .................... . . . . . . . . . . . .. ... . .................. ... .................. ......... ............ ......................................... .............................................. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ................................................................................................... ....................... .................................... ........ ............................................... ... ................................................................ ... ............ ... .... .................. ............ . ............ . . ... ............ ............ . . . . .. . . ............ . . . . . . .. . ....... ............ . . . . . . . . . . . . . . . ............ .. ..... .................. ................... ................... ............... ......................................................................................................................................................................................
nov´ e hrany..........................................•zdroje
z •
• • . . . •
⃗ p˚ uvodn´ı s´ıt’ G
• • • . . . •
s •
¯ vypl´ Z pˇredpokladu a(A) ≤ r(A, A) yv´ a, ˇze ˇrez ({z}, {z}) je minim´aln´ım ˇrezem, oddˇeluj´ıc´ım z a s. Podle ⃗ ′ existuje tok, kter´ Ford-Fulkersonovy vˇety 2.2 tedy v s´ıti G y nasycuje hrany ˇrezu ({z}, {z}). Je vˇsak ⃗ ⃗ ’ zˇrejm´e, ˇze restrikce takto sestrojen´eho toku na p˚ uvodn´ı s´ıt G je hledan´ y tok v s´ıti G. 11
3
Grafy a matice
V pˇredmˇetu KMA/DMA Diskr´etn´ı matematika jsme poznali z´akladn´ı zp˚ usoby popisu grafu a jeho vlastnost´ı pomoc´ı matic (incidenˇcn´ı matice, matice sousednosti, matice vzd´alenost´ı). V tomto odstavci si uk´aˇzeme nˇekter´e dalˇs´ı souvislosti mezi grafov´ ymi pojmy a pojmy z line´arn´ı algebry.
3.1
Distanˇ cn´ı matice ohodnocen´ eho orientovan´ eho grafu a Floyd˚ uv algoritmus
Pˇripomeˇ nme si n´asleduj´ıc´ı definici (viz [1], kap. 12.3, nebo [4], kap. 5.4). ⃗ je orientovan´ ⃗ = {v1 , . . . , vn } a s hraDefinice 3.1. Necht’ G y ohodnocen´ y graf s mnoˇzinou uzl˚ u U (G) w w n ⃗ → (0, ∞). Matice D (G) ⃗ = [d ] nov´ ym ohodnocen´ım w : H(G) a pˇredpisem ij i,j=1 , definovan´ w dw ij = d (vi , vj ),
⃗ se naz´ yv´a w-distanˇcn´ı matice grafu G.
i, j = 1, . . . , n
1
⃗ (pomoc´ı upraven´eho n´asoben´ı matic) jiˇz zn´ame - viz tvrzen´ı Jednu metodu v´ ypoˇctu matice Dw (G) 12.6 v textu [1]. V´ ypoˇcetn´ı sloˇzitost algoritmu zaloˇzen´eho na t´eto metodˇe je O(n4 ). Jedn´ım z nejlepˇs´ıch zn´am´ ych postup˚ u pro ˇreˇsen´ı t´eto u ´lohy je Floyd˚ uv algoritmus, jehoˇz v´ ypoˇcetn´ı sloˇzitost je pouze O(n3 ). Algoritmus 3.1.
(Floyd˚ uv algoritmus)
1. Poloˇz D0 = [d0ij ]ni,j=1 , kde 0 0 dij = wij ∞
pro i = j, ⃗ pro i = ̸ j , (i, j) ∈ H(G), ⃗ pro i = ̸ j , (i, j) ̸∈ H(G).
2. Pro k = 1, . . . , n postupnˇe vypoˇc´ıt´ av´ame matice Dk = [dki,j ]ni,j=1 , kde k−1 dkij = min{dk−1 , dk−1 ij ik + dkj }.
(∗)
⃗ 3. Dn = Dw (G).
Vˇ eta 3.1.
⃗ grafu G ⃗ v ˇcase O(n3 ). Algoritmus 3.1 nalezne w-distanˇcn´ı matici Dw (G)
D˚ ukaz. Indukc´ı podle k dok´ aˇzeme, ˇze ˇc´ıslo dkij je rovno minim´aln´ı w-d´elce orientovan´e cesty P⃗ z vi do vj takov´e, ˇze pro jej´ı uzly plat´ı U (P⃗ ) ⊂ {vi , vj } ∪ {v1 , . . . , vk } (tj. dkij je d´elka minim´aln´ı cesty z vi do vj mnoˇzinou uzl˚ u {1, . . . , k}). 1. Pro k = 0 je tvrzen´ı zˇrejm´e. 2. Necht’ tvrzen´ı plat´ı pro k − 1 < n a zvolme pevnˇe indexy i, j tak, ˇze 1 ≤ i, j ≤ n. Je-li P⃗ orientovan´a cesta z vi do vj minim´aln´ı w-d´elky takov´a, ˇze U (P⃗ ) ⊂ {vi , vj } ∪ {v1 , . . . , vk }, pak bud’to vk ∈ / U (P⃗ ), a k−1 ⃗ pak je podle indukˇcn´ıho pˇredpokladu jej´ı w-d´elka rovna dij , nebo vk ∈ U (P ), a pak je jej´ı w-d´elka (opˇet k−1 podle indukˇcn´ıho pˇredpokladu) rovna dk−1 ik + dkj . 1V
textu [1] je pouˇ z´ıv´ an n´ azev matice v´ aˇ zen´ ych vzd´ alenost´ı.“ ”
12
Algoritmus vypoˇc´ıt´ av´ a n matic D1 , . . . , Dn ˇr´adu n, pˇriˇcemˇz d´elka v´ ypoˇctu kaˇzd´eho prvku (krok 2 algoritmu) nez´avis´ı na n. Celkem tedy n-kr´at vypoˇc´ıt´av´ame n2 prvk˚ u matice, v´ ypoˇcetn´ı sloˇzitost je tedy O(n3 ). 2 Pˇ r´ıklad. Pro graf na n´asleduj´ıc´ım obr´azku postupnˇe dost´av´ame: u1 •
....................... ........ ...................................... ......... ......... ....... ........ ......... . . . ..... . . . . ......... .. ..... ......... ......... ..... ........ ......... . . . . . . . ..... ......... ...... . . . . . ......... . . . . .... ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... ............................................................ .............................................................. . . . . ............................ . . . . . . . . ..... ............................................. ................ . ..... ............................... ..... .................................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... ................................................................... .... .. ...... ....... .............................. ..... ..... ....... . .... . . . ..... . . . . . . . . . . . . . ..... .... . .. ..... ..... .............. ... ... ..... ............. ..... ... .... ..... ............. ..... ....... ......... ....... .............. ..... ....... ...... ............. ............. . . . . . . . . . . . . . . . . . . ....... ...... ..... ................. ..... .....
4
8 8 4
u2 •
3
7
3
• u5
3 3
u3 •
D0 =
D2 =
D4 =
0 4 ∞ ∞ 0 3 ∞ ∞ 0 7 ∞ ∞ 3 8 ∞
∞ ∞ ∞ 8 ∞ 4 ; 0 3 3 0
0 4 ∞ 0 ∞ ∞ 7 11 3 7
∞ 12 ∞ 8 ∞ 4 ; 0 3 3 0
0 4 7 ∞ 0 3 ∞ ∞ 0 7 11 14 3 7 10
7 3 0 14 10
∞ 11 ∞ 7 ∞ 4 ; 0 3 3 0
• u4
D1 =
D3 =
0 4 ∞ ∞ ∞ ∞ 0 3 ∞ 8 ∞ ∞ 0 ∞ 4 ; 7 11 ∞ 0 3 3 7 ∞ 3 0 0 4 7 ∞ 0 3 ∞ ∞ 0 7 11 14 3 7 10
⃗ = D5 = Dw (G)
0 4 10 0 7 11 6 10 3 7
∞ 11 ∞ 7 ∞ 4 ; 0 3 3 0 7 3 0 13 10
14 11 10 7 7 4 . 0 3 3 0
⃗ lze tak´e nal´ezt v ˇcase O(n3 ) pomoc´ı Dijkstrova algoritmu. Dijkstr˚ Pozn´ amka. Matici Dw (G) uv algoritmus umoˇzn ˇuje nal´ezt vzd´alenosti ze zvolen´eho pevn´eho uzlu do vˇsech ostatn´ıch uzl˚ u grafu, tj. jeden ˇr´adek distanˇcn´ı matice, v ˇcase O(n2 ). Opakujeme-li tento postup n-kr´at pro r˚ uzn´e v´ ychoz´ı uzly, dostaneme ⃗ v O(n3 ) kroc´ıch. matici Dw (G)
3.2
Rozloˇ zitelnost matic a struktura orientovan´ ych graf˚ u
Definice 3.2.
ˇ Ctvercov´ a matice A se naz´ yv´a rozloˇziteln´ a, lze-li ji napsat ve tvaru [ ] A11 A12 A= , 0 A22
kde A11 a A22 jsou ˇctvercov´e matice ˇr´ adu alespoˇ n 1 a 0 je nulov´a matice, anebo lze-li ji do tohoto tvaru pˇrev´est permutac´ı ˇr´ adk˚ u a stejnou permutac´ı sloupc˚ u. ˇ Ctvercov´ a matice, kter´a nen´ı rozloˇziteln´a, se naz´ yv´a nerozloˇziteln´a.
13
Pozn´ amka.
1. Ekvivalentnˇe: A je rozloˇziteln´a, jestliˇze existuje permutaˇcn´ı matice P tak, ˇze [ ] A11 A12 PAPT = . 0 A22
2. Prov´ad´ıme-li v matici permutaci ˇr´ adk˚ u a stejnou permutaci sloupc˚ u, pak hovoˇr´ıme o simult´ ann´ıch permutac´ıch. Pˇ r´ıklad. 1. Matice
3 0 2 0
10 4 1 0 5 2 3 0
je rozloˇziteln´a, protoˇze prohozen´ım 2. a 3. ˇr´adku a 3 4 2 2 0 0 0 0 2. Matice
0 0 0 4
0 0 2 0
8 6 1 1
2. a 3. sloupce se pˇrevede do tvaru 10 8 5 1 . 1 6 3 1 1 0 0 0
0 3 0 0
je nerozloˇziteln´ a, ale prozat´ım jedin´a moˇznost, jak to um´ıme dok´azat, je provˇeˇren´ı vˇsech permutac´ı ˇr´adk˚ u a sloupc˚ u. N´asleduj´ıc´ı vˇeta poskytuje efektivn´ı algoritmus pro testov´an´ı rozloˇzitelnosti matice pˇrevodem na grafovou u ´lohu. Vˇ eta 3.2.
⃗ ohodnocen´ Bud’ G y orientovan´ y graf. Plat´ı:
⃗ silnˇe souvisl´ ⃗ nerozloˇziteln´a. a) Je-li G y, pak je matice W(G) ⃗ 1, . . . , G ⃗ k kvazikomponenty grafu G, ⃗ oˇc´ıslovan´e tak, ˇze v kondenzaci G ⃗ C jsou pouze hrany b) Jsou-li G ⃗ ⃗ ⃗ (Gk , Gℓ ) pro k < ℓ, a oˇc´ıslujeme-li uzly grafu G souhlasnˇe s oˇc´ıslov´an´ım kvazikomponent, tj. tak, ⃗k a j ∈ G ⃗ ℓ pro k < ℓ, pak i < j, pak matice W(G) ⃗ m´a tvar ˇze je-li i ∈ G W11 W12 W13 . . . W1k 0 W22 W23 . . . W2k ⃗ = 0 W(G) 0 W33 . . . W3k , ... 0 0 0 . . . Wkk ⃗ i ), i = 1, . . . , k, a tyto matice jsou jiˇz nerozloˇziteln´e. kde Wii = W(G
⃗ rozloˇziteln´a, pak G ⃗ nen´ı silnˇe souvisl´ D˚ ukaz. a) Dok´aˇzeme ekvivalentn´ı implikaci: je-li W(G) y. ⃗ Necht’ tedy W(G) m´a (pˇr´ıpadnˇe po permutaci) tvar [ ] ⃗ = A11 A12 . W(G) 0 A22 ⃗ odpov´ıd´a pˇreˇc´ıslov´an´ı uzl˚ ⃗ Je zˇrejm´e, ˇze simult´ ann´ı permutaci ˇr´ adk˚ u a sloupc˚ u matice W(G) u grafu G. ’ Bud U1 , resp. U2 , mnoˇzina uzl˚ u odpov´ıdaj´ıc´ıch matici A11 , resp. A22 . Pak z ˇz´adn´eho uzlu mnoˇziny U2 14
nevede hrana do nˇekter´eho uzlu z U1 , a tedy z ˇz´adn´eho uzlu mnoˇziny U2 neexistuje orientovan´a cesta do ⃗ tedy nen´ı silnˇe souvisl´ nˇekter´eho uzlu z U1 . Graf G y. ⃗ ⃗ ⃗ oˇc´ıslovan´e podle vˇety 3.2. Pak mezi ˇz´adn´ b) Necht’ G1 , . . . , Gk jsou kvazikomponenty grafu G, ymi ⃗ i, G ⃗ j pro i > j neexistuje hrana z G ⃗ i do G ⃗ j . To znamen´a, ˇze matice W(G) ⃗ dvˇema kvazikomponentami G je n´asleduj´ıc´ıho tvaru: ... ⃗1 ⃗2 ⃗3 ⃗k uzly G uzly G uzly G uzly G ⃗1 uzly G ⃗2 uzly G ⃗3 uzly G ... ⃗k uzly G
.......................................................................................................................................................................................................................................................................................................................................................................... .. .. .. .. .. .. ... ... ... ... ... ... ... ... ... ... ... ... 12 13 1k . . . . . . . .................................................1 . . ........................................................................................................................................................................................................................................................................................................................... .. .... .... .... .... .... ... . . ... . . ... ... ... 23 2k 2 ... .. .. .. .. ... ................................................................................................................................................................................................................................................................................................................................................................................ .... .... .... .... .... .... ... ... ... ... ... ... 3k .. .. .. ... .. .. 3 ..................................................................................................................................................................................................................................................................................................................................................................................... ... ... ... ... ... ... ... ... ... ... ... ... .. .. .. ... .. .. ..................................................................................................................................................................................................................................................................................................................................................................................... ... ... ... ... ... ... ... ... ... ... ... ... .. .. .. .. ... ... . .........................................................................................................................................................................................................................................................................................................................................................k ..........................
⃗ ) W(G 0
W
⃗ ) W(G
W
...
W
W
...
W
0 ...
0 ...
⃗ ) W(G ...
...
...
W ...
0
0
0
...
⃗ ) W(G
⃗ i je silnˇe souvisl´ Pˇritom kaˇzd´ a kvazikomponenta G y graf, a tedy podle (jiˇz dok´azan´e) ˇc´asti a) jsou vˇsechny ⃗ matice W(Gi ) nerozloˇziteln´e. 2 D˚ usledek 3.1.
ˇ ⃗ Ctvercov´ a matice A je nerozloˇziteln´a, pr´avˇe kdyˇz jej´ı diagram G(A) je silnˇe souvisl´ y.
Pˇ r´ıklad. Diagramem matice
0 0 0 4
0 0 2 0
1 0 0 0
0 3 0 0
(viz pˇr´ıklad pˇred vˇetou 3.2) je cyklus d´elky 4, kter´ y je silnˇe souvisl´ y. Matice je tedy nerozloˇziteln´a. Pˇ r´ıklad. Pˇreved’te n´asleduj´ıc´ı matici
0 1 0 0 0 5 7 0 9 10 0 13
0 0 6 0 0 0
2 0 0 0 0 0
3 0 0 8 11 0
0 4 0 0 12 14
simult´ann´ımi permutacemi na horn´ı blokovˇe troj´ uheln´ıkov´ y tvar. ˇ sen´ı: s pouˇzit´ım vˇety 3.2. Diagram matice m´a 3 kvazikomponenty s mnoˇzinami uzl˚ Reˇ u {1, 4, 5}, {2, 6} a {3}. Pˇreˇc´ıslov´ an´ı uzl˚ u definuje simult´ ann´ı permutaci, kterou se matice pˇrevede do tvaru 0 7 8 0 0 0 2 0 3 0 1 0 0 9 11 0 10 12 . 0 0 0 6 5 0 0 0 0 0 0 4 0 0 0 0 13 14
15
3.3
Slabˇ e rozloˇ ziteln´ e matice
Definice 3.3. P a Q tak, ˇze
ˇ Rekneme, ˇze ˇctvercov´ a matice A je slabˇe rozloˇziteln´a, jestliˇze existuj´ı permutaˇcn´ı matice [ PAQ =
A11 0
A12 A22
] ,
kde A11 a A22 jsou ˇctvercov´e matice ˇr´ adu alespoˇ n 1 a 0 je nulov´a matice. ˇ Ctvercov´ a matice, kter´a nen´ı slabˇe rozloˇziteln´a, se naz´ yv´a u ´plnˇe nerozloˇziteln´a. Pozn´ amka. 1. Kaˇzd´ a rozloˇziteln´ a matice je slabˇe rozloˇziteln´a, ale nikoliv naopak. 2. Ekvivalentn´ı definice: A je slabˇe rozloˇziteln´a, jestliˇze existuje permutaˇcn´ı matice P tak, ˇze PA je rozloˇziteln´a.
Pˇ r´ıklad. 1. Nerozloˇziteln´ a matice
0 0 0 4
0 0 2 0
0 3 0 0
1 0 0 0
je slabˇe rozloˇziteln´ a: staˇc´ı prohodit prvn´ı sloupec s tˇret´ım a druh´ y sloupec se ˇctvrt´ ym. 2. Matice
1 0 1 0 0
0 1 0 0 1
1 0 0 0 1
0 0 1 1 0
0 1 0 1 0
je u ´plnˇe nerozloˇziteln´ a, ale prozat´ım to neum´ıme dok´azat (jinak neˇz hrubou silou). ⃗ jehoˇz mnoˇzinu uzl˚ Definice 3.4. Bigraf je orientovan´ y graf G, u lze rozloˇzit na disjunktn´ı nepr´azdn´e 2 ⃗ je u ∈ U1 a v ∈ U2 . podmnoˇziny U1 , U2 tak, ˇze pro kaˇzdou hranu (u, v) ∈ H(G) ⃗ je bigrafem, pr´avˇe kdyˇz G ⃗ je (acyklick´ Pozn´ amka. 1. Graf G y) graf na n ≥ 2 uzlech, jehoˇz kaˇzd´ y uzel je vstupn´ı nebo v´ ystupn´ı. 2. Symetrizace bigrafu je bipartitn´ı neorientovan´ y graf (tj. neorientovan´ y graf s chromatick´ ym ˇc´ıslem 2 – bl´ıˇze v kap. 7). Definice 3.5. Bud’ A = [aij ] ˇctvercov´ a matice ˇr´adu n; oznaˇcme U1 mnoˇzinu ˇr´adkov´ ych index˚ u a U2 ⃗ mnoˇzinu sloupcov´ ych index˚ u matice A. Bigraf matice A je orientovan´ y graf B(A) s mnoˇzinou uzl˚ u U = U1 ∪ U2 a mnoˇzinou hran H = {(i, j)| i ∈ U1 , j ∈ U2 , aij ̸= 0}. 2 Tj.
⃗ U1 ̸= ∅ ̸= U2 . U1 ∩ U2 = ∅, U1 ∪ U2 = U (G),
16
Pˇ r´ıklad. Matice
A=
1 0 1 0 0
0 1 0 0 1
1 0 0 0 1
0 0 1 1 0
0 1 0 1 0
m´a bigraf 1 •............................................................................................................................•... 1’ ....... ....... .
. ....... ......
... .. 2 •.......................................................................................................................................................•.. 2’
⃗ B(A) =
.......... ... ....... .....
.......... . .... ..... .............
.. . ...... .. 3 •............................................................................ ............................•.... 3’ ... . ................ ..... ..... ..........................
....... .... .. 4 •................................................................................................................................................................•.. 4’ . . ............ ...........
.... 5 •....
Pozn´ amka.
. ........... ........... ................. ..................... ...............
• 5’
Je zˇrejm´e, ˇze tak´e naopak, kaˇzd´emu bigrafu lze zˇrejm´ ym zp˚ usobem pˇriˇradit matici.
⃗ bigraf s mnoˇzinou uzl˚ ⃗ = U1 ∪U2 . Mnoˇzina V ⊂ U1 , ∅ ̸= V ̸= U1 , se naz´ u U (G) yv´a Definice 3.6. Bud’ G ⃗ stabiln´ı mnoˇzina v G, jestliˇze pro mnoˇzinu uzl˚ u ⃗ W = {j ∈ U2 | ∃i ∈ V tak, ˇze (i, j) ∈ H(G)} plat´ı |W | ≤ |V |.
Vˇ eta 3.3. mnoˇzina.
ˇ ⃗ Ctvercov´ a matice A je slabˇe rozloˇziteln´a, pr´avˇe kdyˇz v jej´ım bigrafu B(A) existuje stabiln´ı
D˚ ukaz. 1. Necht’ A je slabˇe rozloˇziteln´ a, tj. existuj´ı permutaˇcn´ı matice P a Q tak, ˇze [ ] A11 A12 PAQ = . 0 A22 Oznaˇc´ıme-li V mnoˇzinu index˚ u druh´eho blokov´eho ˇr´adku matice PAQ a W mnoˇzinu index˚ u druh´eho ⃗ blokov´eho sloupce matice PAQ, pak v B(PAQ) vˇsechny hrany, vych´azej´ıc´ı z uzl˚ u ve V , vedou do uzl˚ u ⃗ v W , a protoˇze A22 je ˇctvercov´ a, je |V | = |W |, tj. V je stabiln´ı. Zbytek vypl´ yv´a z toho, ˇze B(A) se od ⃗ B(PAQ) liˇs´ı jen ˇc´ıslov´ an´ım ˇr´ adk˚ u a sloupc˚ u, tj. uzl˚ u v U1 a v U2 . ⃗ 2. Naopak, je-li V stabiln´ı mnoˇzina B(A), tj. pro pˇr´ısluˇsnou W je |W | ≤ |V |, pak v U1 oˇc´ıslujeme nejprve uzly mimo V a potom uzly mnoˇziny V , a obdobnˇe v U2 oˇc´ıslujeme nejprve uzly mimo W a potom uzly mnoˇziny W . Provedeme-li v matici A odpov´ıdaj´ıc´ı permutaci ˇr´adk˚ u a sloupc˚ u, bude m´ıt poˇzadovan´ y tvar. 2 Pˇ r´ıklad. Zjistˇete, zda je matice A=
0 0 2 0 3
5 2 0 0 0
−1 0 0 −3 3 0 1 0 1 2 −1 0 0 −2 2
rozloˇziteln´a, slabˇe rozloˇziteln´ a nebo u ´plnˇe nerozloˇziteln´a. 17
1. Diagram matice A je n´asleduj´ıc´ı graf:
1 •
................ ............. ............ ...... ....... .. .............. ...... ....... .... ...... . . . . . ...... .... ...... ... ... ...... ...... .. .. ...... ...... .. .... ...... . . . . ...... . . . . . .... ...... . . . . . . . . . ...... . . .... . . . . ...... . . . . . . .... ...... . . . . . . . . . . ...... . . .... . . . . . ...... . . . . . . .... ...... . . . . . . . . . . ...... . . .............. . . . ...... . . . . . . . . ............. . . . . .......... ............. .. .................. .... . ..... ........ ................. . . ..... ........ .. . . . . . . . . . ..... ........ ..... ....... . . . . . . . . . . ....... ..... ... .... .. ........ ..... ....... ... ..... ....... .... ..... ....... ..... ... ........ .. ....... ..... ..... ....... .... ....... ..... ..... ....... . . . ..... . .. ............ . . . . . . . ..... .... .. ... ... .. .............. ............. ..... ..... ............. .. .. ..... ..... ..... .... ..... ..... ... .. .... ....... . ........ ............. .............. ........... ................. ........... ........ ........ ...................... ..... .. .....................................................................................
⃗ G(A):
2•
•5
• 3
• 4
(V obr´azku nejsou zakresleny smyˇcky na uzlech 2, 3, 4 a 5, kter´e nemaj´ı vliv na silnou souvislost grafu). ⃗ Protoˇze je G(A) silnˇe souvisl´ y, je A nerozloˇziteln´a. 2. Bigraf matice A je n´asleduj´ıc´ı graf:
⃗ B(A) :
1 •........................................
• 1’
2•
• 2’
3•
• 3’
4•
• 4’
5•
• 5’
........ ................. ............... ...... ......... ... ...... .... ...... ...... ......................... ..... ...... ..... ................ . . . .... ..................................................................................................................... ................. ...... ...... ... ...... ............. .. .......... .......... .............. . . . . . . . . . ........ .... .... ..... ...... .......... ..... ..................................... ..... .. . . ...................................................................................................................... ...... . ....... ................ . . ...... . .. . ...... .... ......................... ................... ...... .. ......... ............... ........... ........ . ..... ............................................................................................................... . ...... .............. .. . . . . . . . . . . ..... ... ......... ........... ... ......... ........ ... ......... ............... ... ............ .........................................................................................
Snadno se pˇresvˇedˇc´ıme, ˇze mnoˇzina V = {1, 2, 4} je stabiln´ı, nebot’ odpov´ıdaj´ıc´ı podmnoˇzina mnoˇziny U2 je W = {2′ , 3′ , 4′ }, a tedy |V | = |W |. Po proveden´ı pˇr´ısluˇsn´ ych permutac´ı je matice A pˇrevedena do tvaru 2 1 0 1 0 3 2 0 0 −2 0 0 5 −1 0 PAQ = 0 0 2 −3 3 0 0 0 2 −1 Matice A tedy je slabˇe rozloˇziteln´ a.
Pˇ r´ıklad. Matice
A=
1 0 1 0 0
0 1 0 0 1
je u ´plnˇe nerozloˇziteln´ a, protoˇze jej´ı bigraf 1 •.......................................................................................................................•... 1’ ....... ....... .
.. ...... ......
... .. 2 •........................................................................................................................................................•... 2’
⃗ B(A) =
.......... .... ....... .....
......... .... .. ..... .............
.. .. .. ...... 3 •............................................................................ .............................•.... 3’ ... . .......................... ..... .......................
....... .. ..... 4 •.............................................................................................................................................................•.. 4’ . .. ........... ............
.... 5 •.....
. ........... ........... ................. ..................... ...............
• 5’
18
1 0 0 0 1
0 0 1 1 0
0 1 0 1 0
⃗ nem´a stabiln´ı mnoˇzinu. Neexistence stabiln´ı mnoˇziny v B(A) je snadno vidˇet pˇri jeho n´asleduj´ıc´ım izomorfn´ım nakreslen´ı. 1 •......................................................................................................................•.... 1’ ........... ........... .......... .............
......... 5 •.................................................................................................................................•.. 3’
⃗ B(A) =
............... ... .... ...............
....... .. 2 •...............................................................................................................................•.. 2’ . ... ..... ...................... .. .. . ....
....... . 4 •.............................................................................................................................•.. 5’ ..... .....
........... ........... . .......
....... .. 3 •......................................................................................•.. 4’
3.4
Regul´ arn´ı matice a perfektn´ı p´ arov´ an´ı v bigrafu
Poznatky z odstavce 3.3 ukazuj´ı, ˇze bigraf matice by mohl b´ yt vhodn´ ym n´astrojem studia tˇech vlastnost´ı matic, kter´e nez´avis´ı na permutac´ıch ˇr´ adk˚ u a sloupc˚ u. Jinou takovou vlastnost´ı je regularita matice. V tomto odstavci si uk´aˇzeme, zda a jak lze z bigrafu matice poznat, zda je tato matice regul´arn´ı. ˇ ⃗ je line´arn´ı, jestliˇze pro kaˇzd´ Definice 3.7. Rekneme, ˇze bigraf G y uzel u ∈ U1 je d− zd´ y ⃗ (u) = 1 a pro kaˇ G + uzel v ∈ U2 je dG ⃗ (v) = 1. ⃗ line´ ⃗ definuj´ı vz´ajemnˇe jednoznaˇcn´e Pozn´ amka. Je-li G arn´ı bigraf, pak nutnˇe |U1 | = |U2 | a hrany G zobrazen´ı U1 na U2 . ⃗ bigraf a G ⃗1 ⊂ G ⃗ jeho line´arn´ı podbigraf, pak ˇr´ık´ame, ˇze G ⃗ 1 je p´arov´an´ı v G. ⃗ Definice 3.8. Je-li G ⃗1 ⊂ G ⃗ p´arov´ ⃗ takov´e, ˇze U (G ⃗ 1 ) = U (G) ⃗ (tj. G ⃗ 1 je faktorem bigrafu G), ⃗ pak ˇr´ık´ame, ˇze Je-li G an´ı v G ⃗ 1 je perfektn´ı p´arov´ ⃗ G an´ı v G. ⃗ Vˇ eta 3.4. 1. Je-li A regul´arn´ı matice, pak jej´ı bigraf B(A) m´a perfektn´ı p´arov´an´ı. ⃗ ⃗ ⃗ 2. Jestliˇze bigraf G m´ a perfektn´ı p´arov´ an´ı, pak existuje regul´arn´ı matice A takov´a, ˇze B(A) = G. D˚ ukaz. 1. Je-li A regul´arn´ı, pak det(A) ̸= 0, a tedy v sumˇe (definice determinantu) ∑ det(A) = zn(π)a1,π(1) · . . . · an,π(n) π
je pro alespoˇ n jednu permutaci π0 pˇr´ısluˇsn´ y souˇcin a1,π0 (1) · . . . · an,π0 (n) nenulov´ y. Hrany, odpov´ıdaj´ıc´ı ⃗ prvk˚ um tohoto souˇcinu, urˇcuj´ı perfektn´ı p´arov´an´ı v B(A). ⃗ m´ ⃗ 1 . Sestrojme matici A n´asleduj´ıc´ım pˇredpisem: 2. Necht’ naopak G a perfektn´ı p´arov´an´ı G ⃗ 1 jsou rovny jedn´e, – prvky matice A odpov´ıdaj´ıc´ı hran´am perfektn´ıho p´arov´an´ı G ⃗ – prvky A odpov´ıdaj´ıc´ı hran´am G leˇz´ıc´ım mimo perfektn´ı p´arov´an´ı jsou rovny ˇc´ıslu ε, 0 < ε < 1, – ostatn´ı prvky matice A jsou rovny 0. Pak pro | det(A)| dostaneme doln´ı odhad
∑ zn(π)a | det(A)| = | ∑ 1,π(1) · . . . · an,π(n) | ≥ |a1,π0 (1) · . . . · an,π0 (n)π| − | zn(π ′ )a1,π′ (1) · . . . · an,π′ (n) |, π′
⃗ 1, kde π0 je permutace, pro kterou prvky a1,π0 (1) , . . . , an,π0 (n) odpov´ıdaj´ı hran´am perfektn´ıho p´arov´an´ı G a v posledn´ı sumˇe sˇc´ıt´ ame pˇres vˇsechny permutace π ′ r˚ uzn´e od π0 . Odtud d´ale dostaneme ∑ | det(A)| ≥ 1 − | zn(π ′ )a1,π′ (1) · . . . · an,π′ (n) | ≥ 1 − ε · n! . π′
19
Pro pevn´e n je lim ε · n! = 0 ,
ε→0+
a tedy pˇri dostateˇcnˇe mal´em ε > 0 bude det(A) ̸= 0.
2
1 0 0 A1 = 2 0 0 −1 1 2
Pˇ r´ıklad. 1. Matice
je singul´arn´ı, protoˇze jej´ı bigraf •...............................................................................................................................•... ⃗ 1) = B(A
......... ..... ........... ............ ........... .. ....... . . .................... . . . ...... .............. ...... ..................... . . . . . . . .................... . . . . . . . ......................................................................................
•.............
•
•
•
nem´a perfektn´ı p´arov´ an´ı. 2. Uvaˇzujme matici
1 A2 = 2 1 Jej´ı bigraf ⃗ 2) = B(A
−1 2 1 1 . 0 1
•.........................................................................................................................................................................•... ....... ................... ...... ............ ................ .... .......... .......... .....
•.....................................................................................................................................................................•.. .... ................ .......... ........... ........... ....... .......... .......
•...................................................................................................•... m´a perfektn´ı p´arov´ an´ı, pˇrestoˇze A2 je singul´arn´ı. Tento pˇr´ıklad ukazuje, ˇze v prvn´ım tvrzen´ı vˇety 3.4 neplat´ı ekvivalence. Pozn´ amka.
Modifikujme matici A2 z pˇredchoz´ıho pˇr´ıkladu n´asleduj´ıc´ım zp˚ usobem. 1 −1 2 A2 (a) = 2 1 1 1 0 a
Pak zˇrejmˇe det A2 (a) = 3a − 3, a tedy A2 (a) je singul´arn´ı pr´avˇe kdyˇz a = 1. Tedy A2 (a) je regul´arn´ı pro skoro vˇsechny“ hodnoty parametru a. Tento pˇr´ıklad motivuje u ´vahy n´asleduj´ıc´ıho odstavce. ”
3.5
Struktur´ aln´ı matice a generick´ a hodnost
´ Uvodem poznamenejme, ˇze pˇresn´e proveden´ı d˚ ukaz˚ u vˇsech tvrzen´ı tohoto odstavce by si vyˇzadovalo apar´at, kter´ y pˇresahuje r´amec l´atky vyuˇcovan´e na inˇzen´ yrsk´ ych oborech FAV, a proto bude v´ yklad v nˇekter´ ych ˇc´ astech v´ıce intuitivn´ı neˇz v jin´ ych kapitol´ach. Odstavec je zaˇrazen do pˇredmˇetu protoˇze ukazuje zaj´ımavou souvislost mezi r˚ uzn´ ymi oblastmi matematiky, a m´a pˇr´ım´e aplikace v teorii ˇr´ızen´ı. V pˇredchoz´ım odstavci jsme poznali souvislost mezi regularitou matice A a vlastnostmi jej´ıho bigrafu ⃗ B(A). Vˇeta 3.4 ale nen´ı ekvivalence, pouze implikace. Podstata t´eto obt´ıˇze“ je v tom, ˇze zat´ımco hodnost ” matice (a speci´alnˇe regularita) z´avis´ı nejen na struktuˇre rozm´ıstˇen´ı nulov´ ych a nenulov´ ych prvk˚ u v dan´e ⃗ matici, ale i na jejich konkr´etn´ıch hodnot´ach, bigraf B(A) popisuje pouze strukturu rozm´ıstˇen´ı nulov´ ych a nenulov´ ych prvk˚ u, a na jejich konkr´etn´ıch hodnot´ach nez´avis´ı. Chceme-li tedy dostat ekvivalenci, mus´ıme naj´ıt maticov´ y pojem s podobn´ ymi vlastnostmi.
20
Struktur´ aln´ı matice ˇr´ adu n ≥ 1 je ˇctvercov´a matice ˇr´adu n, u n´ıˇz je d´ana pouze struktura nulov´ ych a nenulov´ ych prvk˚ u, ale nejsou urˇceny jejich konkr´etn´ı hodnoty (na struktur´aln´ı matici tedy m˚ uˇzeme – ponˇekud pˇresnˇeji – pohl´ıˇzet jako na funkci hodnot jej´ıch nenulov´ ych prvk˚ u). Struktur´aln´ı matice budeme znaˇcit obvykl´ ym zp˚ usobem s kˇr´ıˇzkem“ na m´ıstˇe nenulov´ ych prvk˚ u. Pˇr´ıkladem takov´ ych struktur´aln´ıch ” matic jsou tedy n´asleduj´ıc´ı dvˇe matice. 0 0 × × × 0 A1 = 0 0 × ; A2 = × × 0 . × × × 0 0 × Povˇsimnˇeme si jiˇz nyn´ı toho, ˇze zat´ımco u matice A2 existuj´ı hodnoty nenulov´ ych prvk˚ u, pˇri nichˇz je vznikl´a matice regul´arn´ı, je matice A1 singul´arn´ı pro kaˇzdou volbu sv´ ych nenulov´ ych prvk˚ u. Je-li A struktur´ aln´ı matice ˇr´ adu n, maj´ıc´ı ℓ nenulov´ ych prvk˚ u (ℓ ≤ n2 ), pak jej´ı determinant det(A) je polynomem ˇr´ adu ℓ v ℓ promˇenn´ ych, jimiˇz jsou nenulov´e prvky A. Napˇr´ıklad, snadno zjist´ıme ˇze det(A2 ) = α1,1 α2,2 α3,3 − α1,2 α2,1 α3,3 , zat´ımco det(A1 ) je nulov´ y polynom. Pokud det(A) nen´ı nulov´ ym polynomem, pak je rovnice det(A) = 0 algebraickou rovnic´ı ˇr´adu ℓ v ℓ promˇenn´ ych, a tedy mnoˇzina vˇsech jej´ıch ˇreˇsen´ı je algebraickou varietou dimenze r ≤ ℓ − 1 v ℓ-rozmˇern´em prostoru Rℓ . 3 Z teorie m´ıry 4 je zn´amo, ˇze pro r < ℓ m´a kaˇzd´a r-rozmˇern´a algebraick´a varieta v Rℓ nulovou ℓrozmˇernou m´ıru 5 . To znamen´a, ˇze pokud det(A) nen´ı nulov´ y polynom, pak mnoˇzina vˇsech ˇreˇsen´ı rovnice det(A) = 0 je podmnoˇzinou nulov´e m´ıry v prostoru Rℓ . Odtud plyne, ˇze je-li A struktur´aln´ı matice ˇr´adu n s ℓ nenulov´ ymi prvky α1 , . . . , αℓ takov´a, ˇze det(A) nen´ı nulov´ y polynom, pak pˇri n´ahodn´e volbˇe parametr˚ u α1 , . . . , αℓ 6 je pravdˇepodobnost jevu det(A) = 0 rovna nule. Komplement´arn´ı jev det(A) ̸= 0 m´a tedy pravdˇepodobnost 1. Pro danou struktur´aln´ı matici A jsou tedy pouze n´asleduj´ıc´ı dvˇe moˇznosti: (i) polynom det(A) je nenulov´ y, a pˇri n´ahodn´e volbˇe nenulov´ ych prvk˚ u matice A je matice A regul´arn´ı s pravdˇepodobnost´ı 1, (ii) polynom det(A) je nulov´ y a matice A je singul´arn´ı pˇri kaˇzd´e volbˇe jej´ıch nenulov´ ych prvk˚ u. V prvn´ım pˇr´ıpadˇe ˇr´ık´ ame, ˇze struktur´aln´ı matice A je genericky regul´ arn´ı, ve druh´em pˇr´ıpadˇe je A genericky singul´ arn´ı. Nyn´ı j´ıˇz snadno odvod´ıme n´asleduj´ıc´ı tvrzen´ı, kter´e d´av´a hledanou ekvivalenci. Vˇ eta 3.5. Necht’ A je ˇctvercov´ a struktur´aln´ı matice. Pak je matice A genericky regul´arn´ı, pr´avˇe kdyˇz ⃗ jej´ı bigraf B(A) m´a perfektn´ı p´arov´ an´ı. 2
D˚ ukaz. D˚ ukaz vˇety 3.5 plyne ihned z vˇety 3.4. Pˇ r´ıklad. Struktur´ aln´ı matice
A=
0 × 0 × 0 × × 0 × × 0 × 0 × 0 × 0 0 0 0 × 0 × 0 0 × 0 0 0 × 0 0 0 × 0 ×
3 Uveden´ e pojmy zde pˇresnˇ e nedefinujeme (nebot’ by to pˇres´ ahlo r´ amec tohoto textu), a spol´ eh´ ame na geometrickou pˇredstavu a intuici ˇ cten´ aˇre. Napˇr´ıklad – v prostoru R3 je mnoˇ zina vˇsech ˇreˇsen´ı algebraick´ e rovnice xy − z = 0 hyperbolick´ y paraboloid, coˇ z je objekt dimenze 2 (parametrizovateln´ y dvˇ ema parametry). Ve vyˇsˇs´ıch dimenz´ıch je situace analogick´ a, pouze obt´ıˇ znˇ eji pˇredstaviteln´ a geometrick´ ym n´ azorem. 4 Pro ˇ cten´ aˇre, kteˇr´ı neabsolvovali z´ aklady teorie m´ıry: m´ıra µ(M ) mnoˇ ziny M ⊂ Rℓ je – velmi zhruba ˇreˇ ceno – ˇ c´ıslo, kter´ e zobecˇ nuje pojem d´ elky, obsahu ˇ ci objemu do libovoln´ e dimenze. Tedy, m´ıra (jednorozmˇ ern´ a) kˇrivky je jej´ı d´ elka, m´ıra (dvourozmˇ ern´ a) plochy je jej´ı obsah, m´ıra (trojrozmˇ ern´ a) tˇ elesa je jeho objem atd. 5 N´ azornˇ e: kˇrivka v R3 m´ a nenulovou d´ elku, ale nulov´ y obsah i objem; obdobnˇ e plocha v R3 m´ a nenulov´ y obsah, ale nulov´ y objem. 6 pˇ ri libovoln´ em rozumn´ em“ spojit´ em rozdˇ elen´ı n´ ahodn´ eho vektoru [α1 , . . . , αℓ ] ”
21
m´a bigraf 1 •...................................................... ...........................................•.. 1’ ..... ... ..... ... ....................... .................... .. .. . .. .
....... .... .. 2 •............................................................................................. ...........................................................................•.... 2’ ..... ......... ....................... . ......................... ........................... . . .. . .
⃗ B(A) =
.. . ....... ...... . ... 3 •..........................................................................................................................................................................•.. 3’ ... .. .. ...... ................. ............. .............. ........... ....... ... ...........................
............ .. .. . .... 4 •.................................................................................... .......................................•.... 4’ . ..... .....
................ ....... ... . . ............................................... ....... ..... ......... ......... . . . . . . ....... ........... ..... . . . . . . . . . . . ................................... ... . . . . . . ....................................................................................
.. .. 5 •...........................................................
• 5’
6•
• 6’
⃗ Povˇsimnˇeme si toho, ˇze v B(A) vedou z mnoˇziny uzl˚ u V = {1, 3, 5, 6} ⊂ U1 hrany pouze do uzl˚ u mnoˇziny ′ ′ ′ ⃗ W = {2 , 4 , 6 } ⊂ U2 . Kdyby B(A) mˇel perfektn´ı p´arov´an´ı, tak by z kaˇzd´eho uzlu mnoˇziny V musela ⃗ vych´azet pr´avˇe jedna hrana tohoto p´arov´ an´ı, coˇz nen´ı moˇzn´e, protoˇze |W | < |V |. Bigraf B(A) tedy nem´a perfektn´ı p´arov´ an´ı a matice A je genericky singul´arn´ı. Pˇredchoz´ı u ´vahy je moˇzno jeˇstˇe trochu zobecnit. Z line´arn´ı algebry v´ıme, ˇze hodnost libovoln´e nenulov´e re´aln´e matice A je rovna ˇr´ adu jej´ı nejvˇetˇs´ı regul´arn´ı podmatice (pˇresnˇeji: nejvˇetˇs´ımu ˇc´ıslu k, pro kter´e v matici A existuje regul´arn´ı podmatice ˇr´adu k). Tuto alternativn´ı definici hodnosti je moˇzno pˇren´est na struktur´aln´ı matice a generickou regularitu. Necht’ A je struktur´aln´ı matice. Nejvˇetˇs´ı pˇrirozen´e ˇc´ıslo k, pro kter´e v matici A existuje genericky regul´arn´ı podmatice ˇr´ adu k, se naz´ yv´ a generick´ a hodnost matice A a znaˇc´ı se gh(A). ⃗ se naz´ ⃗ a znaˇc´ı se ν(B). ⃗ Poˇcet hran nejvˇetˇs´ıho p´arov´ an´ı v bigrafu B yv´a p´ arovac´ı ˇc´ıslo bigrafu B Aplikac´ı vˇety 3.5 na nejvˇetˇs´ı genericky regul´arn´ı podmatici ihned dostaneme n´asleduj´ıc´ı tvrzen´ı. Vˇ eta 3.6.
⃗ Necht’ A je struktur´aln´ı matice. Pak gh(A) = ν(B(A)).
⃗ Pˇ r´ıklad. Bud’ A matice z pˇr´ıkladu za vˇetou 3.5. V´ıme jiˇz, ˇze A je genericky singul´arn´ı, protoˇze B(A) ⃗ ⃗ nem´a perfektn´ı p´arov´ an´ı. Snadno ale v B(A) najdeme p´arov´an´ı velikosti 5, a tedy gh(A) = ν(B(A)) = 5. To znamen´a, ˇze pˇri n´ ahodn´em“ dosazen´ı nenulov´ ych prvk˚ u do matice A bude m´ıt v´ ysledn´a re´aln´a matice ” s pravdˇepodobnost´ı 1 hodnost 5. Z´avˇerem tohoto odstavce zd˚ uraznˇeme, ˇze nejvˇetˇs´ı p´arov´an´ı v libovoln´em bigrafu je moˇzno naj´ıt v polynomi´aln´ım ˇcase pˇrevodem u ´lohy na u ´lohu maxim´aln´ıho toku n´asleduj´ıc´ı konstrukc´ı, jej´ıˇz obdobu jiˇz zn´ame z d˚ ukazu vˇety 2.1 (viz str. 11). ⃗ je bigraf s mnoˇzinou uzl˚ ⃗ = U1 ∪ U2 . Bigrafu B ⃗ pˇriˇrad´ıme s´ıt’ s jedn´ım zdrojem z a Necht’ B u U (B) ⃗ jedn´ım stokem s tak, ˇze k B pˇrid´ ame nov´ y uzel z a nov´ y uzel s, a pˇrid´ame – hrany (z, u) pro vˇsechny uzly u ∈ U1 , – hrany (v, s) pro vˇsechny uzly v ∈ U2 (viz obr´azek). Propustnosti vˇsech hran jsou rovny jedn´e. U1
U2
................................................................................................................................................................... . .. .............. ............ ............ nov´ nov´ e hrany.................................... e hrany .. ............. ............. .......... .... . . . . . . . . . . . ............. . . . . . . . . . . . . . . . . ..... .. ... . ............... ...... .......... .... ............................................... ..................................... . . . ............... ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......... .. ... ....... . ......................... .................................... ......... ... .................................................................................................................. ..................................................... .................. ... ... .......... . . .......... ............... . ... . .......... .......... . . . . . . . . . . . . .......... .. ....... . . .. . . .......... . . . . . . . .... . .......... ... ................ .......... ...... .............. ........... ............. .............. ......................................................................................................................................................................
z •
• • • . . . •
⃗ bigraf B
• • • . . . •
s •
⃗ (celoˇc´ıseln´ ⃗ s nenulov´ Najdeme-li v G y) maxim´aln´ı tok, pak hrany bigrafu B ym tokem urˇcuj´ı nejvˇetˇs´ı ⃗ p´arov´an´ı v B.
22
4
M´ıry souvislosti grafu
V cel´e n´asleduj´ıc´ı kapitole term´ın “graf” znamen´a neorientovan´ y graf.
4.1
Mosty, artikulace, bloky grafu
Definice 4.1. Hrana {x, y} ∈ H(G) se naz´ yv´a most grafu G, jestliˇze v grafu G neexistuje ˇz´adn´a kruˇznice, kter´a ji obsahuje. Pˇ r´ıklad. Kaˇzd´ a hrana stromu je jeho mostem; pˇr´ıkladem mostu je t´eˇz hrana {x, y} na n´asleduj´ıc´ım obr´azku. ........... •......................... ...• ..... .. ..... ....... ... ..... ... ..... ....... ... ..... .... ......... . . . . . . . . . . ....... x ... y ..... .. ..... ....... . ................................................................................................................................ .... .... •........... ..... ..........•. ... ....... • ....... ... ...... ... ....... ... .............. ............. .
..... . . ..... .... ........ ..... .. ..... ..... ... ..... ............
•
•
Tvrzen´ı 4.1. Je-li graf G souvisl´ y a hrana {x, y} jeho most, pak graf G − {x, y}, vznikl´ y odstranˇen´ım hrany {x, y} z G, je nesouvisl´ y. D˚ ukaz. Kdyby graf G − {x, y} byl souvisl´ y, existovala by v nˇem cesta P z x do y. Cesta P by spolu s hranou {x, y} tvoˇrila v grafu G kruˇznici, obsahuj´ıc´ı hranu {x, y}, coˇz je spor. 2 Vˇ eta 4.1.
M´ a-li souvisl´ y graf G most, pak m´a alespoˇ n dva uzly lich´eho stupnˇe.
D˚ ukaz. Oznaˇcme G′ nesouvisl´ y graf, kter´ y vznikne odstranˇen´ım mostu z grafu G. Kdyby mˇel graf G stupnˇe vˇsech uzl˚ u sud´e, tak by v kaˇzd´e komponentˇe grafu G′ byl pr´avˇe jeden uzel lich´eho stupnˇe, coˇz zˇrejmˇe nelze (uzl˚ u lich´eho stupnˇe je sud´ y poˇcet). 2 Pˇ r´ıklad. N´asleduj´ıc´ı dva grafy ukazuj´ı, ˇze uzly lich´eho stupnˇe mohou b´ yt uzly mostu i nˇekter´e jin´e dva uzly grafu (uzly lich´ ych stupˇ n˚ u jsou zakrouˇzkov´any). •.........................
•
•
•
•
•
....... ............. ..... ......... ........ ......... ..... ..... ...... .. .. ...... ..... ..... ...... .... ..... ........... . . . . . . . . . ...... .......... ..... . ... .. ................. ........ .... ..... ...... ... . ... ........ .... .. . ...... ..... ....................................................................................................................................................................................................................................... .... ...... ... ..... .......... .. .... . ....................... . . . . . . . ........ ..... . . . . . . . . ...... ... ... . ......... ..... . . . . . . . . . . ...... .. .. ...... ..... .. ...... ... . ...... ..... ......... ........ ......... .......... ....... ..
. ........ ....... .... ....... ....... ... .. ....... ....... . . . ....... . . ... ... . ....... ................ ............ ........ .. ... ........ ... ... ................... . . . ... . . ... . . . ............................................................................. ... . . ... . . ..... ............ ...................... . . . . . . . . . ... . . . . . . . ... . ....... ..... . . . . . . . ... . . ... . ....... .. ....... ... .............. ....... .... ............. ........
•
•
•
•
•
•
•
•
•
•
Uzlovou analogi´ı pojmu mostu grafu je pojem artikulace grafu. Definice 4.2. Uzel x ∈ U (G) je artikulace grafu G, jestliˇze existuj´ı hrany {x, y1 } a {x, y2 }, kter´e nepatˇr´ı souˇcasnˇe t´eˇze kruˇznici grafu G. Pˇ r´ıklad. (i) Kaˇzd´ y nekoncov´ y uzel stromu je jeho artikulace. (ii) Uzel x na n´asleduj´ıc´ım obr´azku je artikulac´ı. •.........................
•
•
........... .... ....... ............. ....... ....... .... ....... . ....... ....... ....... .... ....... ....... ... ............. ....... ............... ... . . . .. . . . . . . ...... ..... ............ . . ....... . . ... . . ....... ....... . ..... . . . . . . . . . . ... . . . . . ....... .. ....... ............. .... .............. ............ ....
• x
•
•
•
23
Pozn´ amka. 1) Grafy na n´asleduj´ıc´ım obr´azku ukazuj´ı, ˇze existence artikulace v grafu nem´a (na rozd´ıl od mostu) ˇz´adn´ y vliv na paritu stupˇ n˚ u uzl˚ u. •
•..........................
•
•
. ... .................... ............... ..... ............................... ......... .... .. ........... ......... ..... .... ..... ..... ........... ......... ........ ..... ... . ..... . . . . . . . . . . . . . . . ........... ..... . ... .... ..... ......... ........... .... ... ..... .......................................................................... ....................................................................... ..... ... ...... .............. . . . ..... . . . . . . . . . . . . . . ... ......... ..... ..... ... ........ . . . . . . . . . . . . . . . .. . . ..... . . . ......... ..... ...... ... . . . . . ..... . . . . . . . . . . . . . . . . . ......... ..... .... ..... .. ...... ......... ..... .. ..... ............................. ................ ................. ...
... ........ .. ....... .... ........ ........ .... .. ........ ........ . . ........ . . . . ... ... ........ .... .. ... ........ ............... . . . . ... . .... .... ........... . . . . . . ... .. . ........ ...... . . . . . . . . .... ... . . ........ .... . . . . . . . .. . . .. . . ........ .. ........ .... ... ............... .......... ........... ..
•
•
• • sud´e stupnˇe vˇsech uzl˚ u
•
•
•
• vˇsechny uzly maj´ı lich´e stupnˇe
•
2) Je-li hrana {x, y} mostem, pak oba uzly x, y jsou artikulacemi. Jinak ˇreˇceno: nem´a-li graf artikulaci, pak nem˚ uˇze m´ıt ani most. ˇ Definice 4.3. Bud’ G graf, G′ ⊂ G jeho souvisl´ y podgraf. Rekneme, ˇze G′ je blok grafu G, jestliˇze: ′ a) G nem´a artikulaci, y graf bez artikulace takov´ y, ˇze G′ ⊂ G′′ ⊂ G, pak G′′ = G′ . b) jestliˇze G′′ je souvisl´ Pozn´ amka. 1) Blok je maxim´aln´ı souvisl´ y podgraf bez artikulace. 2) Je-li {x, y} most, pak podgraf o jedin´e hranˇe {x, y} je blok G (kaˇzd´ y most je blokem grafu). Tvrzen´ı 4.2. Bud’ G souvisl´ y graf. Pak G nem´a artikulaci pr´avˇe kdyˇz pro kaˇzd´e dvˇe jeho hrany existuje kruˇznice, na n´ıˇz obˇe leˇz´ı. D˚ ukaz. 1. Jestliˇze G m´a artikulaci, pak podle definice artikulace existuj´ı hrany {x, y1 }, {x, y2 }, neleˇz´ıc´ı na kruˇznici. 2. Necht’ naopak existuje dvojice hran h1 , h2 , neleˇz´ıc´ı na t´eˇze kruˇznici. Kdyby h1 , h2 mˇely spoleˇcn´ y uzel x, pak x je artikulac´ı a jsme hotovi. Tedy kaˇzd´a takov´a dvojice hran h1 , h2 je ve vzd´alenosti alespoˇ n 1. Zvolme h1 , h2 tak, ˇze jejich vzd´alenost (tj. minimum vzd´alenost´ı jejich uzl˚ u) je nejmenˇs´ı moˇzn´a, a necht’ P = u1 u2 . . . uk je pˇr´ısluˇsn´ a nejkratˇs´ı cesta. Zvolme oznaˇcen´ı tak, ˇze h1 = {u1 , v1 } a h2 = {uk , v2 }. Z minimality cesty P plyne, ˇze existuje kruˇznice C1 , obsahuj´ıc´ı hrany {u1 , v1 } a {uk−1 , uk }. Protoˇze uk nen´ı artikulac´ı, existuje kruˇznice C2 , obsahuj´ıc´ı {uk−1 , uk } a {uk , v2 }. Podle pˇredpokladu C2 neobsahuje h1 . Mnoˇzina hran H(C1 ) ∪ H(C2 ) tedy definuje uzavˇren´ y tah, obsahuj´ıc´ı hrany h1 , h2 pr´avˇe jednou. Z tohoto tahu lze zˇrejm´ ym zp˚ usobem vybrat poˇzadovanou kruˇznici. 2 D˚ usledek 4.1.
Pro kaˇzd´e dvˇe hrany bloku, kter´ y nen´ı mostem, existuje kruˇznice, na n´ıˇz obˇe leˇz´ı.
Vˇ eta 4.2. Bud’te G1 , G2 dva bloky grafu G. Pak bud’to G1 = G2 , nebo G1 a G2 nemaj´ı ˇz´adnou spoleˇcnou hranu. D˚ ukaz. Necht’ h je hrana G1 i G2 . Je-li h most, tak je vˇse zˇrejm´e. Necht’ tedy hrana h leˇz´ı na alespoˇ n jedn´e kruˇznici. Oznaˇcme Gh podgraf grafu G, tvoˇren´ y tˇemi jeho hranami, jeˇz leˇz´ı spolu s hranou h na nˇekter´e kruˇznici. Blok G1 obsahuje hranu h a tedy dle d˚ usledku 4.1 je G1 ⊂ Gh . Obdobnˇe i G2 ⊂ Gh . Z konstrukce grafu Gh a z tvrzen´ı 4.2 ale plyne, ˇze kaˇzd´e dvˇe hrany Gh spolu leˇz´ı na kruˇznici a tedy Gh nem´a artikulaci. Z maximality blok˚ u pak jiˇz plyne rovnost G1 = G2 = Gh . 2 Pozn´ amka. Situace je podobn´a jako u komponent s t´ım rozd´ılem, ˇze bloky nemus´ı b´ yt uzlovˇe disjunktn´ı, mus´ı vˇsak b´ yt hranovˇe disjunktn´ı.
24
Definice 4.4. Bud’ G souvisl´ y graf, B1 , . . . , Br vˇsechny jeho bloky a x1 , . . . , xs vˇsechny jeho artikulace. Graf B(G), definovan´ y pˇredpisem U (B(G)) = {x1 , . . . , xs , B1 , . . . , Br }, H(B(G)) = {{a, b} | ∃i, j tak, ˇze a = xi , b = Bj a xi ∈ U (Bj )} , se naz´ yv´a blokov´ y graf grafu G. Pˇ r´ıklad.
•.....
•.......................
•
•
.... ........ ........ ... ..... .......... ..... .......... ....... ... .. ..... ..... ..... ..... ....... ..... ..... ..... ..... ... ... ....... ..... ..... ..... ..... . . . . . 3 .. . . ....... . . . ..... ..... .... ....... ..... ..... ..... ... .... ..... ....... ..... . . ..... . . . . . . . . . 6 ... . . . . . ..... ....... ..... ... ... . . . . . ....... ... . . . ..... ... . . . ..... ..... .. ......... 1 . ..... . 2 . . . . ... . 4 . . ......................................................................................................................................................................... ..... . . ... . . . ... . . . . . . 7 1 ..... ..... ... ... ........ . ..... ... . . . . . . . . . . ... . . . . . ..... 3 . .... ... .... ....... ... . . . . . . . . . . ... . . . . . . . . . ..... ..... ... .. . ... . ..... . . . . . . . . . . ... . . . . . . . . . ..... ..... . .. .... ..... ..... ....... ... .... ..... ............................................................................. ..... ....... ... ..... ..... ..... ...... .. 2 ..... ..... ..... ..... .......... ... ............. ..... 5 .... ..... . . . . . . . . . . ....... . . .... ..... ... ..... ..... .. .... ... ..... .. ..... ... .......... .
G
B
x •
B
•
x
B
•
B
•
B
•
• x
•
B
•
B
•
•
B2 •.......
B(G)
... ... ... 6 ... ... ................... ... ....... ....... ....... ....... ... ....... ....... . . . . . ... . ....... ....... 1 ... 2.................. 1 7 ....... 3 . . . 4 . .......................................................... . . .................................................................................................................................................. . . ..... ..... ... ... ... ... ... ... ... ... ... ... ..... ..... ... ... ... ... .. ..
B •
B •
x
•
B3 •
B •
x •
x •
B •
B5 •
Zˇrejm´a, leˇc d˚ uleˇzit´ a vlastnost blokov´eho grafu je pops´ana v n´asleduj´ıc´ı vˇetˇe. Vˇ eta 4.3.
4.2
Pro kaˇzd´ y souvisl´ y graf G je blokov´ y graf B(G) stromem.
Hranov´ y a uzlov´ y stupeˇ n souvislosti grafu
Jednoduch´e a intuitivnˇe zˇrejm´e pojmy mostu a artikulace dostanou hlubˇs´ı v´ yznam, jestliˇze je zobecn´ıme na v´ıceprvkov´e mnoˇziny. Definice 4.5. Bud’ G souvisl´ y, x, y ∈ U (G), x ̸= y. Mnoˇzina B ⊂ H(G) takov´a, ˇze 1) kaˇzd´ a cesta z uzlu x do uzlu y obsahuje alespoˇ n jednu hranu mnoˇziny B, 2) ˇz´adn´a vlastn´ı podmnoˇzina mnoˇziny B nem´a vlastnost 1), se naz´ yv´a hranov´ y ˇrez grafu G mezi uzly x a y. Pozn´ amka. (i) Odstranˇen´ım mnoˇziny B z grafu G se pˇreruˇs´ı vˇsechny cesty mezi uzly x a y, graf G − B bude nesouvisl´ y a uzly x a y budou leˇzet v r˚ uzn´ ych komponent´ach. y hranov´ y ˇrez. (ii) Most je vlastnˇe jednoprvkov´ (iii) Zd˚ uraznˇeme, ˇze v definici ˇrezu se poˇzaduje minimalita – viz mnoˇziny silnˇe vytaˇzen´ ych hran na n´asleduj´ıc´ım obr´azku.
25
•
•
•
........................................................................... ..... ..... ..... ..... ..... ..... . . . . ..... ... . . . ..... . ... . ..... . . . ..... ... . . . . ... ...... ..... ..... ..... ..... . ..... .... . . . . ..... . ..... ..... ..... ..... ..... ..... ..... ..... ....................................................................
•
•
•
je ˇrez
•
........................................................................... ..... ..... ..... ..... ..... ..... . . . . ..... ... . . . ..... . ... . ..... . . . ..... ... . . . . ... ...... ..... ...... ..... ...... . ..... .... . . . . . ..... ..... ...... ..... ...... ..... ...... ..... ..... ......................................................................
•
•
•
• • nen´ı ˇrez - nen´ı minim´aln´ı
Definice 4.6. Nejmenˇs´ı poˇcet prvk˚ u hranov´eho ˇrezu mezi uzly x a y se naz´ yv´a hranov´ y stupeˇ n souvislosti grafu G mezi uzly x a y a znaˇc´ı se hG (x, y). Jestliˇze oˇc´ıslujeme uzly grafu ˇc´ısly 1, . . . , n a poloˇz´ıme hij = hG (i, j), m˚ uˇzeme hranovou souvislost grafu plnˇe popsat pomoc´ı matice hranov´e souvislosti HG = [hij ]ni,j=1 grafu G. Pˇ r´ıklad.
1 •..........................................................................................•................4...... ... ... .... ... ..... ... ..... ... ... ..... . ... . . ... . . ... ..... ... ... ..... . ... . . ... ... . ... . . . ... ... ... . . . . ... ... ... . . . . ... ... ... . . . ... . ... ... . . . ... . . ... ... ........ ... ... ...... . .................................................................................
2•
..... ..... ..... ..... ..... ..... ..... ....
•5
HG =
•3
− 2 2 2 1 2 − 2 3 1 2 2 − 2 1 2 3 2 − 1 1 1 1 1 −
Nyn´ı si uk´aˇzeme analogick´e zobecnˇen´ı pojmu artikulace. Definice 4.7. Bud’ G souvisl´ y graf, x, y ∈ U (G), x ̸= y. Nepr´azdn´a mnoˇzina A ⊂ U (G) takov´a, ˇze 1) kaˇzd´ a cesta z x do y obsahuje alespoˇ n jeden uzel z mnoˇziny A, 2) ˇz´adn´a vlastn´ı podmnoˇzina mnoˇziny A nem´a vlastnost 1), se naz´ yv´a uzlov´ y ˇrez grafu G mezi uzly x a y. Pozn´ amka. (i) Odstranˇen´ım uzlov´eho ˇrezu dostaneme opˇet nesouvisl´ y graf. (ii) Artikulace je jednoprvkov´ y uzlov´ y ˇrez. Definice 4.8. Nejmenˇs´ı poˇcet prvk˚ u uzlov´eho ˇrezu, oddˇeluj´ıc´ıho uzly x a y, se naz´ yv´a uzlov´ y stupeˇ n souvislosti grafu G mezi uzly x a y a znaˇc´ı se uG (x, y). Neexistuje-li uzlov´ y ˇrez mezi x a y, tj. jsou-li uzly x a y sousedn´ı, klademe uG (x, y) = |U (G)| − 1. Z uzlov´ ych stupˇ n˚ u souvislosti grafu m˚ uˇzeme analogicky sestavit matici uzlov´e souvislosti UG grafu G. Pˇ r´ıklad. Pro graf z pˇredchoz´ıho pˇr´ıkladu dost´av´ame n´asleduj´ıc´ı matici UG . 1 •..........................................................................................•.................4...... ... ..... ..... ... ..... ... ... ..... ... ... ..... ... ..... . ... . . ... ... . ... . . . ... ... ... . . . . ... ... ... . . . . ... ... ... . . . ... . ... ... . . ... . . ... ... . ... . . ... . . ... ... ......... ... ... ...... .................................................................................
2•
..... ..... ..... ..... ..... ..... ..... ....
•3
•5
UG =
− 4 2 4 1
4 2 4 1 − 4 4 1 4 − 4 1 4 4 − 4 1 1 4 −
Definice 4.9. Nejmenˇs´ı z ˇc´ısel uG (x, y) nazveme uzlov´ y stupeˇ n souvislosti grafu G a budeme je znaˇcit u(G). Nejmenˇs´ı z ˇc´ısel hG (x, y) nazveme hranov´ y stupeˇ n souvislosti grafu G a budeme je znaˇcit h(G). ˇ Rekneme, ˇze graf G je uzlovˇe (hranovˇe) k-souvisl´ y, jestliˇze u(G) ≥ k (h(G) ≥ k). 26
Pozn´ amka. ˇ (i) Casto se pro jednoduchost pouˇz´ıv´ a pojem k-souvislost ve v´ yznamu uzlov´e k-souvislosti. Pokud tedy v dalˇs´ım textu bude ˇreˇc o hranov´e k-souvislosti, bude toto vˇzdy explicitnˇe uvedeno. (ii) Pro nesouvisl´e grafy klademe u(G) = h(G) = 0 (pˇr´ısluˇsn´e ˇrezy jsou pak pr´azdn´e mnoˇziny). Symbolem δ(G) oznaˇc´ıme minim´ aln´ı stupeˇ n grafu G, tj. δ(G) = min{d(x)|x ∈ U (G)}. Vˇ eta 4.4.
Pro kaˇzd´ y graf G s alespoˇ n 2 uzly plat´ı u(G) ≤ h(G) ≤ δ(G).
D˚ ukaz. 1. Druh´a nerovnost je zˇrejm´ a, nebot’ mnoˇzina vˇsech hran, obsahuj´ıc´ıch dan´ y uzel, je hranov´ ym ˇrezem. 2. Dok´aˇzeme prvn´ı nerovnost. Je-li h(G) = 0, pak zˇrejmˇe u(G) = 0, a je-li h(G) = 1, pak graf G m´a most a tedy t´eˇz u(G) = 1. Necht’ tedy h(G) > 1, a necht’ B je minim´aln´ı hranov´ y ˇrez, maj´ıc´ı k ≥ 2 hran. Odstraˇ nme z G nˇekter´ ych k − 1 hran z ˇrezu B. T´ım vznikne graf s mostem {u, v}. Mnoˇzinu A ⊂ U (G) sestroj´ıme tak, ˇze pro kaˇzdou odstranˇenou hranu vybereme jeden jej´ı uzel r˚ uzn´ y od uzlu u i v (mnoˇzina A m´a nejv´ yˇse k − 1 prvk˚ u). - Je-li graf G′ , kter´ y vznikl odstranˇen´ım mnoˇziny A z grafu G, nesouvisl´ y, pak u(G) ≤ k − 1. - Je-li G′ souvisl´ y, pak je to graf s mostem {u, v}. Ale graf G m´a alespoˇ n k + 2 uzl˚ u (kdyby jich mˇel jen k + 1, tak by z rovnosti h(G) = k plynulo, ˇze se jedn´a o graf Kk+1 a u(G) = k), a tedy odstranˇen´ım u nebo v vznikne k-prvkov´ y uzlov´ y ˇrez. V kaˇzd´em pˇr´ıpadˇe tedy u(G) ≤ k. 2 Pˇ r´ıklad. N´asleduj´ıc´ı dva grafy ukazuj´ı, ˇze ve vˇetˇe 4.4 mohou nastat rovnosti i ostr´e nerovnosti. •
•
......... ......... .................. .................. ...... .. ... ..... ...... .. ... ..... ..... .... .... ........... ..... .... .... ........... . . . . . . . . . . ... ... ...... ...... ..... ..... ...... ...... ... ... ... ... ..... ..... ...... ...... ... ... ... ... ...... ...... ...... ...... ... ... ..... .. .. ...... ...... ...... ...... .. .. . ... . ...... . . . . . . . . . . . . . . . . ........................................................................................................................................................................................................................................................................................... . . . . . . ... ....... ... ... ... ... ......... ..... ... . . . . . . . . . . . . . . . . . . . . . . . . . ... ...... ...... . ... ... ... .... ... ...... ... ...... ... ..... ... ... ........... ... ........... .... ......... ......... . . ... . . . . . . . . ... . . . .. .... ... ......... ..... ... ......... ........... ...... ... ... .. ........... ...... .... .. ..... ...... .... ... ........... ... ...... .......... .. .. ..... ... . ................ ... . . . .. . . . . . . .... ... .. . ... . ... ... ..... .......... .......... ... ... ... .... ... .... ..... ........... ..... ........... .. ... ... . ... ... ..... ...... ...... ...... ...... ... ..... ...... ..... ...... ...... ..... .... ... .. .......... ...... .. .. ...... .. ......... .. .......... ... ... ........ . ............ ......... ..... ............. ......... ...................................................................................................................................................................................................................................................
•
•
•
•
•
•
•
•
u(G) = 2, h(G) = 3, δ(G) = 4
Vˇ eta 4.5.
•....................................................................................................................................................................................................................................................................................................•....... ......... . . .. ......... ......... .... .... ......... ........ ... ... ......... ........ ......... ......... .. ... ......... ........ . . . . . . ... . ... . ........................................................................................................... ... ... . ... .. ... ... . ... ... .. ... . ... ... .. ... . ... ... .. ... ... . ... . . ... ... . ... . . ... ... . ... . . ... ... . .................................................................................................................. . . . . . ... . ... . ......... ...... . . . . . . . ... . . ... . . ......... ...... . . . . . . . ... . . . ... . ......... ...... . . . . . . . . ... . . .. . . ......... .. ......... .... ... ................ ..........................................................................................................................................................................................................................................................................
•
•
•
•
•
u(G) = h(G) = δ(G) = 3
•
V kaˇzd´em grafu G s alespoˇ n 2 uzly plat´ı h(G) ≤
2|H(G)| . |U (G)|
∑ D˚ ukaz. Plat´ı zn´am´ a rovnost dG (u) = 2|H(G)|. Protoˇze d(x) ≥ δ(G) pro kaˇzd´ y uzel x, dost´av´ame ∑ . Podle vˇ e ty 4.4 je h(G) ≤ δ(G). 2 dG (u) ≥ |U (G)|δ(G), a porovn´ an´ım dostaneme δ(G) ≤ 2|H(G)| |U (G)|
4.3
Charakterizaˇ cn´ı vˇ ety k-souvisl´ ych graf˚ u
Vˇ eta 4.6. (Ford, Fulkerson) Graf G je hranovˇe k-souvisl´ y mezi uzly a a b, a ̸= b, pr´avˇe kdyˇz v nˇem existuje k hranovˇe disjunktn´ıch cest, vedouc´ıch z a do b.
27
⃗ n´asleduj´ıc´ım D˚ ukaz. D˚ ukaz provedeme pˇrevodem na probl´em maxim´aln´ıho toku v s´ıti. Sestrojme s´ıt’ G ⃗ ⃗ zp˚ usobem. Graf G je symetrick´ a orientace grafu G, uzel a je zdrojem a uzel b stokem v s´ıti G, propustnosti vˇsech hran jsou rovny jedn´e. V takto zkonstruovan´e s´ıti budeme hledat maxim´aln´ı tok. 1) Necht’ je graf G hranovˇe k-souvisl´ y mezi uzly a a b. Pak neexistuje hranov´ y ˇrez o m´enˇe neˇz k ⃗ Podle hran´ach mezi tˇemito uzly v grafu G. Proto z´aroveˇ n neexistuje takov´ y hranov´ y ˇrez ani v G. ⃗ existuje celoˇc´ıseln´ Ford-Fulkersonovy vˇety o maxim´aln´ım toku a minim´aln´ım ˇrezu v s´ıti G y tok z uzlu a do uzlu b velikosti k. Protoˇze propustnosti jsou rovny jedn´e, jsou hodnoty toku na vˇsech hran´ ach rovny 0 nebo 1. Mnoˇzina hran s tokem velikosti 1 definuje poˇzadovan´ y syst´em hranovˇe disjunktn´ıch cest. 2) Necht’ naopak v grafu G existuje k hranovˇe disjunktn´ıch cest mezi uzly a a b. Pak jsou to i cesty ⃗ Po kaˇzd´e takov´e cestˇe v G ⃗ poˇsleme tok o velikosti 1, vytvoˇr´ıme tak tok velikosti k. Proto v s´ıti G. ⃗ i v grafu G), a graf G je tedy mezi m´a kaˇzd´ y hranov´ y ˇrez mezi uzly a a b alespoˇ n k hran (v s´ıti G uzly a a b hranovˇe k-souvisl´ y. 2 Vˇ eta 4.7. (Menger) Graf G je uzlovˇe k-souvisl´ y mezi nesousedn´ımi uzly a a b, pr´avˇe kdyˇz v nˇem existuje k uzlovˇe disjunktn´ıch cest, vedouc´ıch z a do b. ⃗ n´asleduj´ıc´ım pˇredpisem: D˚ ukaz. Zavedeme s´ıt’ G ⃗ U (G) = {(x, i)| x ∈ U (G), i = 1, 2}, ⃗ = {((x, 1), (x, 2)) | x ∈ U (G)} ∪ {((x, 2), (y, 1)) | {x, y} ∈ H(G)} . H(G) (N´azornˇe ˇreˇceno: kaˇzd´ y uzel x grafu G rozdˇel´ıme na dva “polouzly” (x, 1) a (x, 2), a d´ale vytvoˇr´ıme hrany dvoj´ıho druhu: hrany, spojuj´ıc´ı “p˚ ulky” uzl˚ u, tj. ((x, 1) (x, 2)), a hrany, vznikl´e z hran v G, tj. hrany ((x, 2) , (y, 1)) ). Propustnosti hran zvol´ıme n´asleduj´ıc´ım zp˚ usobem: u hran typu ((x, 1) (x, 2)) poloˇz´ıme propustnost rovnu jedn´e a u hran druh´eho typu (tj. ((x, 2), (y, 1)) ) bude propustnost nekoneˇcn´a. Zdrojem je uzel (a, 2), stokem je uzel (b, 1). Pro takto sestrojenou s´ıt’ bude d˚ ukaz analogick´ y d˚ ukazu FordFulkersonovy vˇety. 2 Pozn´ amka. Myˇslenky d˚ ukaz˚ u vˇet 4.6 a 4.7 maj´ı samostatnou d˚ uleˇzitost, nebot’ d´avaj´ı algoritmy, umoˇzn ˇuj´ıc´ı urˇcen´ı hranov´e, resp. uzlov´e souvislosti grafu. Konstrukce z d˚ ukazu vˇety 4.7 (tj. “p˚ ulen´ı uzl˚ u”) je standardn´ı metoda, pˇrev´ adˇej´ıc´ı uzlovou souvislost na hranovou souvislost, umoˇzn ˇuj´ıc´ı pouˇz´ıt apar´at tok˚ u v s´ıt´ıch i na uzlovou souvislost. Pro vznikl´e “p˚ ulky uzl˚ u” se nˇekdy pouˇz´ıvaj´ı term´ıny “vstupn´ı polouzel” a “v´ ystupn´ı polouzel”. ⃗ v d˚ Pˇ r´ıklad. N´asleduj´ıc´ı obr´azek ilustruje konstrukci s´ıtˇe G ukazu vˇety 4.7. G
x •
........ ..... ... ..... ..... .. ..... ..... .... ......... . . . . ..... .... ..... .... ..... ..... ..... ... ..... ..... ..... ... ..... . ..... . . . . . ..... . ... . . . . . . ..... . ... . . . ..... . . . . ..... .... . . . . . ..... . ... . . . . ..... . . . ... . ..... . . . . . ..... . ... . . . . . . ... ...... .... ..... ..... . ..... ..... . . ..... ..... . . . . . . ..... .... ..... .... ..... ..... ... ..... ..... ..... ..... ... ..... . ..... . . . . . .. ..... .... ..... ..... ..... ..... ... ..... ..... .. ..... ..... ..... .... ......... ..... .. ..... ..... .. ..... ............ ..
a•
•b
• y
(x, 1) 1 .....(x, 2) ...... ..• ........................................................................• ................. ................................... ................. ..... ........
⃗ G
... ... ..... . .. . .. . ..... ..... ...... ............................... .... ..... ......... ..... .. . . . ..... .......... .. ................. ......... ..... ................ ..... . . . . . ......... ..... ... . .................. . . ............. . . . ... .... ......... . . . . . . . . . . . . . .............. .. . ... .. ..... ......... .............. ... .. ..... .......... ........ ........ . . . . . . . . . . ......... ..... ... ... . ...... . . . . . . . . ......... . ..... . . . . ... .. ... ......... ...... . . ..... . . . . . . . . . . . ......... ... .. ....... ..... ... . . . . . . . ......... . . . . . . . ... . .............. .. . .................. . . . . . . . . . . . . . . . . . . . . . .......................................................................... ........................................................................... ..... . . . . .. .. . . ..... . ............... . .............. ........ ......... .. .... ..... . . . . . . . ... ......... ..... .. .. ......... ..... ......... ..... ........ .... .. .... . . . . ......... . . . . . . . . . . . . . ... ......... ....... ..... ......... ... ......... .... ... ..... ......... .............. ... ... ..... ......... ............ ... .............. ... ............ ............ . ... . .. . .............. . . . . . ... ..... .......... ........ .... ... .. ..... ... ................ ......... ..... .................... .. . .. ..... ......... ..... ..... . ..... .............................. ..... ..... . . . ....... ........ ......... ......... . ............ ................... ......... .... ......... ............................................................................... .....
∞
∞
(a, 1)•
∞ 1 • (a, 2) ∞ ∞
∞
• (y, 1)
28
1
• (y, 2)
∞ ∞ (b, 1) • 1 ∞ ∞
•(b, 2)
5
Prohled´ av´ an´ı graf˚ u a algoritmy k-souvislosti
5.1
Algoritmus prohled´ av´ an´ı grafu
Zaˇcneme obecn´ ym sch´ematem prohled´av´ an´ı graf˚ u, kter´e je, jak uvid´ıme, uˇziteˇcn´e jako z´aklad mnoha algoritm˚ u. Naˇs´ım u ´kolem je probrat systematicky vˇsechny uzly a hrany grafu, ev. na nich prov´est nˇejak´ yu ´kol. Oznaˇcme N mnoˇzinu uzl˚ u, kter´e jeˇstˇe nebyly probr´any, M mnoˇzinu hran, kter´e jeˇstˇe nebyly probr´any, D mnoˇzinu uzl˚ u, kter´ ych jiˇz bylo dosaˇzeno, ale ze kter´ ych by jeˇstˇe mohly v´est neprobran´e hrany. Algoritmus 5.1.
(Prohled´ av´ an´ı grafu)
1. N := U (G), M := H(G), D := ∅.
(inicializace)
2. Je-li N = ∅, v´ ypoˇcet konˇc´ı. (test ukonˇcen´ı) 3. Zvol v ∈ N a poloˇz N := N \ {v} , D := {v}. (volba prvn´ıho uzlu v komponentˇe) 4. Zvol libovolnˇe w ∈ D. (volba poˇc´ ateˇcn´ıho uzlu hrany) 5. Hledej hranu v M obsahuj´ıc´ı w: (test pouˇzitelnosti w) - neexistuje: D := D \ {w}, a je-li D = ∅, jdi na 2, je-li D ̸= ∅, jdi na 4. - existuje: jdi na 6. 6. Zvol h = {w, z} ∈ M , “projdi” ji, (tj. proved’ na n´ı urˇcen´ yu ´kol), a poloˇz M := M \ {h}; je-li z ∈ N , pak N := N \ {z} , D := D ∪ {z}, jdi na 4. Snadno se ovˇeˇr´ı n´asleduj´ıc´ı tvrzen´ı. Vˇ eta 5.1. Algoritmus 5.1 prohled´a graf G v ˇcase O(n+m), kde n je poˇcet uzl˚ u a m poˇcet hran grafu G. Pozn´ amka. 1. Bod 2 - test ukonˇcen´ı. Jedn´a se skuteˇcnˇe o ukonˇcen´ı algoritmu, nebot’ v tomto bodˇe je vˇzdy D = ∅ a nen´ı tedy nic k dalˇs´ımu prohled´av´an´ı. 2. V bodˇe 4 algoritmu jsou v z´asadˇe tˇri moˇzn´e implementace: - volbu prov´ adˇet n´ahodnˇe, - br´at uzel, kter´ y je v mnoˇzinˇe D nejdelˇs´ı dobu, tj. interpretace mnoˇziny D jako fronty, y je v D nejkratˇs´ı dobu, tj. interpretace mnoˇziny D jako z´asobn´ıku. - br´at uzel, kter´ Postup, kter´ y vznikne druhou interpretac´ı (D jako fronta) se naz´ yv´a prohled´ av´ an´ı do ˇs´ıˇrky, posledn´ı interpretace (D jako z´asobn´ık) se naz´ yv´a prohled´ av´ an´ı do hloubky. Oba tyto postupy maj´ı svoji d˚ uleˇzitost a, jak uvid´ıme, lze pomoc´ı nich z´ıskat mnoho informac´ı o zkouman´em grafu.
29
Pˇ r´ıklad. Prohled´ av´ an´ı grafu do ˇs´ıˇrky. Zde a v dalˇs´ıch podobn´ ych pˇr´ıkladech se pro jednoznaˇcnost budeme ˇr´ıdit konvenc´ı, podle n´ıˇz v kaˇzd´em kroku, kdy je nˇekolik moˇznost´ı v´ ybˇeru uzlu, algoritmus zvol´ı uzel s nejmenˇs´ım ˇc´ıslem. 12 •................
...... ..... ...... ...... ...... ...... ...... ...... ...... ....
• 13
10 •
....... ...... ... ...... ... ...... . . . . . .... .. ...... ... ..... ... ...... . . . . . ... .... . . . . ... ... . . . . . ... .......... ... .. .... .......... ... ...... ... ... ..... ... ... ...... ...... ... ... ...... ... ... ...... ... ...... ... ...... ... ... ........ ... .. ... ............ ... ...... ........... ...... ..... ... ...... ...... . . . ... . ...... ..... ...... ... ...... . . ...... . . ... . ... ...... . . . . ... . ...... .. ...... ... .......... ..... ........... ... .......... ... ........ ...... ... ...... ... ...... ...... ... ...... ... ...... ... ...... ..... ... ...... ... ..... . ... ...... .. ... ...... .... . . . . . ... ... . . . . .... . ... . ...... ... ... ...... ... ... ...... . . . . ... . ... ... ... ... .......... ... ........... ... .......... ....... ... ...... ... ... ........ ...... ... ...... ... ... ...... ...... . . . . . . .... ... ...... ... .... ..... ...... ... ... ..... ...... ... ... ... ...... ...... . . . . . . ... ... . ...... .. ...... ..... .. ...... ... ... ...... .. ..... ... ... ........... ... ... . . ... ........ . . . . ... ... . ...... ... . . . . . ... ... . . ...... ... . . . . . ... ... . . ...... .... . . . . ... ... . . ...... .... . . . . ... ... . . ..... ... . . . . . . .. ... . . ...... .. ...... .... ... .......... ..... .. ........... ..... .
9•
• 8
1•
• 11
•3
2•
•7
• 5
4•
•6
D 1 1, 2 1, 2, 3 1, 2, 3, 8 1, 2, 3, 8, 9 2, 3, 8, 9 2, 3, 8, 9 2, 3, 8, 9, 4 2, 3, 8, 9, 4, 5 3, 8, 9, 4, 5 3, 8, 9, 4, 5 8, 9, 4, 5 8, 9, 4, 5 8, 9, 4, 5, 10 8, 9, 4, 5, 10, 11 9, 4, 5, 10, 11 9, 4, 5, 10, 11 4, 5, 10, 11 4, 5, 10, 11 5, 10, 11 5, 10, 11, 6 5, 10, 11, 6, 7 10, 11, 6, 7 11, 6, 7 6, 7 6, 7 7 ∅
Nyn´ı je sice mnoˇzina D pr´azdn´ a, ale jeˇstˇe nebyly probr´any vˇsechny uzly grafu. Provedeme tedy volbu nov´eho uzlu, kter´ y zbyl v mnoˇzinˇe N (krok 2).
w 1 1 1 1 1 2 2 2 2 3 3 8 8 8 8 9 9 4 4 5 5 5 10 11 6 6 7
D 12 12, 13 13 ∅
prohled´avan´a hrana 12 13 18 19 23 24 25 35 89 8 10 8 11 9 10 45 56 57 67 -
w 12 12 13
prohled´avan´a hrana 12 13 -
Vˇsimnˇeme si, ˇze tento postup prob´ır´ a uzly postupnˇe podle vzd´alenosti od uzlu 1, tedy nejprve probere vˇsechny uzly ve vzd´alenosti 1, pak vˇsechny uzly ve vzd´alenosti 2, atd. Proto hovoˇr´ıme o prohled´av´an´ı do ˇs´ıˇrky.
30
Pˇ r´ıklad. Vezmeme si tent´ yˇz graf, ale aplikujeme prohled´av´an´ı do hloubky. D 1 1, 2 1, 2, 3 1, 2, 3 1, 2, 3, 5 1, 2, 3, 5 1, 2, 3, 5, 4 1, 2, 3, 5, 4 1, 2, 3, 5 1, 2, 3, 5, 6 1, 2, 3, 5, 6, 7 1, 2, 3, 5, 6, 7 1, 2, 3, 5, 6 1, 2, 3, 5 1, 2, 3 1, 2 1 1, 8 1, 8, 9 1, 8, 9 1, 8, 9, 10 1, 8, 9, 10 1, 8, 9 1, 8 1, 8, 11 1, 8 1 12 12, 13 12 ∅
w 1 2 3 3 5 5 4 4 5 6 7 7 6 5 3 2 1 8 9 9 10 10 9 8 11 8 1 12 13 12
prohled´avan´ a hrana 12 23 31 35 52 54 42 56 67 75 18 89 91 9 10 10 8 8 11 12 13 -
Vˇsimnˇeme si, ˇze kroky pˇri prohled´av´ an´ı do hloubky jsou troj´ıho typu: a) objeven´ı nov´eho uzlu, b) nalezen´ı hrany do jiˇz existuj´ıc´ıho uzlu, c) zpˇetn´ y krok. Hrany prohled´avan´e pˇri kroc´ıch a) tvoˇr´ı strom zvan´ y strom prohled´ av´ an´ı (pro nesouvisl´e grafy jde samozˇrejmˇe o les prohled´av´ an´ı). Hrany prohled´avan´e pˇri kroc´ıch b) se naz´ yvaj´ı chordy. Je zvykem oba tyto druhy hran br´at jako orientovan´e, pˇriˇcemˇz jejich orientace n´am ukazuje smˇer prohled´av´an´ı. Pak lze ˇr´ıci, ˇze zpˇetn´e kroky jdou vˇzdy po hran´ach stromu proti jejich orientaci. Podle zpˇetn´ ych krok˚ u se algoritmu prohled´av´ an´ı do hloubky ˇr´ık´ a backtracking. Pˇ r´ıklad. Ukaˇzme si strom prohled´av´ an´ı a chordy na grafu z pˇredchoz´ıho pˇr´ıkladu. Hrany stromu jsou vyznaˇceny norm´aln´ı ˇcarou, chordy jsou zobrazeny ˇc´arkovanˇe.
31
6 7 •.....................................................................................................................................•...
11 •
..... .............. ....... . .... .... .... .... .... . . . . .... .... .... .... .... .... .... .... .... . . . .... . .... ... .... .... . .... .... .... .... .... .... ....... .... ... ........ .... .. .................. . ............... ........... ........... ........... ............ . . ............................................................................................................................. . .... .................... . .......... ... ............... ................ ....... ... .. . . .... .. .. ... ... . . . . . . . . . .... ... ... .... .. .. . ... . . . . . . . . . . . . . . .... ... .... . ... ... ... .. .... .... ... ... ... .... ... .... .... .... ... .... .... ... .... .... .... ... .... .... .... ... ... ... ... . . . . . . . . . . . . . . . . . . . . .... ... .... .... .... .... ... .... .... ... ... ... .... . .... ... ... .... . ...... ................ ...... ............... ....... ............... ...... .............. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........... ........... ........... ........... .................................................................................................................................................... ........... ........... ........... ..........
5•
•3
• 2
• 4
8•
• 10
• 1
13 •......................
. .... .... .... .... .... .... .... .... .... .... .... .... .... ....
• 12
• 9
Prohled´av´an´ı graf˚ u lze pouˇz´ıt pro ˇreˇsen´ı u ´loh souvisej´ıc´ıch se souvislost´ı, komponentami apod. Se souvislost´ı a komponentami grafu je to jednoduch´e – kaˇzd´ y pr˚ uchod 3. krokem totiˇz urˇcuje novou komponentu. M´ame tedy ihned n´asleduj´ıc´ı tvrzen´ı. Tvrzen´ı 5.1.
5.2
Komponenty grafu lze nal´ezt v ˇcase O(m + n).
Pouˇ zit´ı backtrackingu
Artikulace grafu V n´asleduj´ıc´ım si uk´aˇzeme algoritmy na hled´an´ı artikulac´ı v grafech. Tuto u ´lohu lze ˇreˇsit i naivn´ım pˇr´ıstupem, spoˇc´ıvaj´ıc´ım v postupn´em odstranˇen´ı vˇzdy jednoho uzlu a zkoum´an´ı, zda vzrostl poˇcet komponent. Tento postup prov´ ad´ı n-kr´at backtracking a tedy m´a ˇcasovou sloˇzitost O (n(m + n)). Jak si uk´aˇzeme, u ´lohu lze ˇreˇsit podstatnˇe rychleji jedn´ım chodem backtrackingu, a tedy s ˇcasovou sloˇzitost´ı pouze O(m + n). Je-li uzel v artikulace grafu G, pak vˇetev grafu G je maxim´aln´ı souvisl´a ˇc´ast G, v n´ıˇz uzel v nen´ı artikulac´ı. Vˇsimnˇeme si n´asleduj´ıc´ı vlastnosti backtrackingu: je zˇrejm´e, ˇze backtracking, jakmile do nˇejak´e vˇetve vejde, tak ji projde celou a pak ji teprve opust´ı. Nelze z takov´e vˇetve vyj´ıt jinudy, neˇz pr´avˇe artikulac´ı a z vlastnost´ı backtrackingu ihned plyne, ˇze vˇetev bude probr´ana cel´a. Speci´alnˇe, vejde-li algoritmus zaloˇzen´ y na backtrackingu do koncov´eho bloku, neopust´ı jej, dokud jej cel´ y neprozkoum´a. T´eto vlastnosti se vyuˇz´ıv´a pˇri hled´an´ı blok˚ u a artikulac´ı graf˚ u. Ot´azkou vˇsak z˚ ust´av´a, jak pˇri zpˇetn´em kroku pozn´ame, ˇze jsme v artikulaci. Tarjan v roce 1972 navrhl n´asleduj´ıc´ı postup. 1. Uzly oˇc´ıslujeme poˇrad´ım, ve kter´em byly zaˇrazeny do stromu prohled´av´an´ı, a tato ˇc´ısla oznaˇc´ıme p(x). y uzel x soubˇeˇznˇe postupnˇe vypoˇc´ıt´av´ame doln´ı ˇc´ıslo r(x) podle n´asleduj´ıc´ıch pravidel: 2. Pro kaˇzd´ a) pˇri objeven´ı nov´eho uzlu poloˇz´ıme r(x) = p(x), b) pˇri nalezen´ı chordy xy poloˇz´ıme r(x) = min {p(y), r(x)}, c) pˇri zpˇetn´em kroku z x do y poloˇz´ıme r(y) = min {r(y), r(x)}. Snadno je vidˇet, ˇze ˇc´ıslo r(x) ud´av´ a nejmenˇs´ı poˇradov´e ˇc´ıslo uzlu, do nˇehoˇz se lze z uzlu x dostat orientovanou cestou, skl´adaj´ıc´ı se z hran stromu a pˇr´ıpadnˇe (na konci) z pr´avˇe jedn´e chordy. Nyn´ı jiˇz lze poznat artikulaci podle n´asleduj´ıc´ıho pravidla. Uzel x s p(x) > 1 je artikulac´ı, pr´avˇe kdyˇz existuje jeho n´asledn´ık y ve stromu prohled´av´an´ı takov´ y, ˇze plat´ı r(y) ≥ p(x). Jinak ˇreˇceno, pr´avˇe kdyˇz existuje takov´ y n´asledn´ık, z nˇehoˇz se nelze dostat chordou do uzlu s niˇzˇs´ım p(u), neˇz m´a uzel x. Uvedli jsme, ˇze tento postup lze pouˇz´ıt i pro hled´an´ı blok˚ u grafu. Chceme-li generovat bloky grafu, tak vˇzdy, kdyˇz pˇri zpˇetn´em kroku nalezneme artikulaci x, d´ame na v´ ystup vˇsechny hrany prozkouman´e mezi prvn´ım (dopˇredn´ ym) a druh´ ym (zpˇetn´ ym) pr˚ uchodem uzlu x a t´ımto postupem nalezneme vˇsechny bloky grafu.
32
Dalˇ s´ı modifikace backtrackingu Artikulace a bloky jsme d´ıky backtrackingu nalezli v ˇcase O(m + n). Existuje podobn´a metoda, kter´a pˇri stejn´e ˇcasov´e sloˇzitosti vyhled´a kvazikomponenty a urˇc´ı kondenzaci pro orientovan´e grafy. Je opˇet zaloˇzena na backtrackingu, konkr´etnˇe na jeho modifikaci pro grafy s orientovan´ ymi hranami. Urˇcen´ı kvazikomponent, resp. kondenzace, je sice moˇzn´e i z distanˇcn´ı matice, ale samo nalezen´ı distanˇcn´ı matice m´a ˇcasovou sloˇzitost O(n3 ).
5.3
Algoritmy zjiˇ st’ov´ an´ı k-souvislosti
Backtracking lze vyuˇz´ıt i pro hled´an´ı biartikulac´ı (dvouuzlov´ ych ˇrez˚ u) a 3-komponent (maxim´aln´ıch 3-souvisl´ ych podgraf˚ u) a ˇcasov´ a sloˇzitost je opˇet O(m + n). Pro vyˇsˇs´ı souvislosti graf˚ u jiˇz podobn´e jednoduch´e postupy zaloˇzen´e na backtrackingu nejsou zn´am´e. Vˇzdy lze ale pouˇz´ıt obecn´ y postup, zaloˇzen´ y na pˇrevodu na probl´em nalezen´ı maxim´aln´ıho toku v s´ıti, kter´ y jsme poznali v d˚ ukazech Ford-Fulkersonovy a Mengerovy vˇety z kapitoly vˇenovan´e m´ır´am souvislosti grafu. Hranov´ a souvislost Obecnˇe je hG (a, b) rovna velikosti maxim´aln´ıho toku v s´ıti, jeˇz vznikne symetrickou orientac´ı grafu G s jednotkovou propustnost´ı vˇsech hran, povaˇzujeme-li uzel a za zdroj a uzel b za stok. Touto metodou z´ısk´ame ˇreˇsen´ı v ˇcase O(n3 ) (s pouˇzit´ım nejrychlejˇs´ıho zn´am´eho – Dinicova – algoritmu na maxim´aln´ı tok). Chceme-li zjistit hranovou souvislost grafu, provedeme v´ yˇse uveden´ y postup pro vˇsechny dvojice uzl˚ u a urˇc´ıme tak h(G) v √ ˇcase O(n5 ). Nejlepˇs´ı zn´am´e vylepˇsen´ı (Even, Hopcroft, Tarjan) sniˇzuje odhad ˇcasov´e sloˇzitosti na O(m2 n), kde m = |H(G)|. Protoˇze obecnˇe plat´ı m ∼ n2 , ˇcasov´a sloˇzitost tohoto postupu je nejv´ yˇse O(n4.5 ). Uzlov´ a souvislost Uzlov´a souvislost mezi dvˇema uzly se urˇc´ı pomoc´ı myˇslenky z d˚ ukazu Mengerovy vˇety (“ˇstˇepen´ı uzl˚ u” a ˇ pˇrevod na toky). Casov´ a n´aroˇcnost tohoto postupu je, stejnˇe jako v pˇr´ıpadˇe hranov´e souvislosti, O(n3 ) (odhady ˇcasov´e sloˇzitosti pro hranovou souvislost se jen n´asob´ı konstantou). Pro cel´ y graf dostaneme sloˇzitost O(n4.5 ), tedy stejnou, jako pro hranovou souvislost. Oba tyto postupy jsou nejlepˇs´ı zn´am´e pro k-souvislost pro k ≥ 4.
5.4
Backtracking pro generov´ an´ı hamiltonovsk´ ych cest a cykl˚ u
Prohled´av´an´ı graf˚ u umoˇzn ˇuje algoritmizovat i jin´e probl´emy, kdy v grafu potˇrebujeme prob´ırat cel´ y strom prohled´av´ an´ı. Nyn´ı si uvedeme pˇr´ıklad, ve kter´em budeme modifikovat backtracking pro generov´ an´ı hamiltonovsk´ ych cest a cykl˚ u (tj. cest a cykl˚ u proch´azej´ıc´ıch vˇsemi uzly grafu). Modifikace backtrackingu Obecn´e schema backtrackingu budeme modifikovat n´asleduj´ıc´ımi pravidly. 1) Nebereme v u ´vahu chordy, 2) pˇri |D| = n testujeme existenci hrany do poˇc´ateˇcn´ıho uzlu; v´ ysledkem je cesta (hrana neexistuje) nebo cyklus (hrana existuje), 3) pˇri zpˇetn´em kroku se v kaˇzd´em uzlu u pt´ame, zda existuje n´asledn´ık s vyˇsˇs´ım ˇc´ıslem, do nˇejˇz jsme z u jeˇstˇe neˇsli; jakmile jej ale nalezneme, tak pˇri n´asledn´em dopˇredn´em pohybu prozkoum´av´ ame opˇet vˇsechny uzly grafu, kter´e nejsou v mnoˇzinˇe D.
33
Pˇ r´ıklad. Mˇejme d´an n´asleduj´ıc´ı graf a hledejme hamiltonovsk´e cesty a cykly.
1 .............. .....................• .. ................... .......
. ....... ....... .............. ....... ....... . ....... .. ....... ....... .. ....... ....... . . . . . . . ....... ... . . . . . . . . ....... . . ..... . . . ....... . . . . ... . ....... . . . . . . . . ....... .. . ..... . . . . ............ . . . . ....... . . . ............ . . . . ............................................................................................................................................................................................................................. ....................... . ..... .. . . ... ............ ...... .... . . . . . . . . . . ...... ... ...... ...... .. ... ... ...... ...... .. . . . . ... .. . . . . . . ...... . ... .. ...... ...... ...... .... ...... ... .. . . . . . . . . . . ...... ... ...... ... ......... ... ...... ... ... ... ........... ...... ...... ...... ... .. ... ...... ...... .. . . ... . . .. . . . . . . .......... ... ... ... ... ... ...... ........... ... ... ... ...... ...... ...... .. ...... ... ... ...... .. ...... . . . .. ... . . . . . . ...... .. ...... ............. .... ... ........... ....... ...... ......... ......... ................ .......................... .. ....... ...... ............................................................................................................................. ..
2 •
3 •
4 •
• 5
D 1 1, 3 1, 3, 2 1, 3, 2, 4 1, 3, 2, 4, 5
w 1 3 2 4 5
1, 1, 1, 1, 1, 1,
3, 3, 3 3, 3, 3,
2, 4 2
4 2 3 4 5 2
1, 1, 1, 1, 1, 1,
3, 3, 3 3, 3, 3,
4, 5 4
4 4, 5 4, 5, 2
5 5, 2 5, 2, 4
1, 3, 5, 2 1, 3, 5 1, 3 1, ∅
5 4 3 5 2 4 2 5 3 1
prohled´avan´a hrana 13 32 24 45 ⃗ test (5, 1) ∈ H(G) ne - cesta 1 − 3 − 2 − 4 − 5 34 45 52 ⃗ test (2, 1) ∈ H(G) ano - cyklus 1 − 3 − 4 − 5 − 2 − 1 35 52 24 ⃗ test (4, 1) ∈ H(G) ano - cyklus 1 − 3 − 5 − 2 − 4 − 1 KONEC
Nalezli jsme jednu cestu a dva cykly. Kdybychom chtˇeli naj´ıt i cesty, zaˇc´ınaj´ıc´ı v jin´ ych uzlech, tak bychom museli aplikovat algoritmus s pˇr´ısluˇsn´ ym v´ ychoz´ım uzlem. Nyn´ı bychom mohli pro ohodnocen´ y graf vyˇc´ıslit sumu cen hran na hamiltonovsk´ ych cyklech a ˇreˇsit u ´lohu obchodn´ıho cestuj´ıc´ıho. Tento algoritmus samozˇrejmˇe nen´ı efektivn´ı. Backtracking sice pracuje v ˇcase O(m + n), ale hodnoty m, n jsou hodnotami pro pˇr´ısluˇsn´ y rozhodovac´ı strom, nikoliv pro graf G. Je zˇrejm´e, ˇze poˇcet uzl˚ u rozdodovac´ıho stromu obecnˇe roste exponenci´alnˇe vzhledem k poˇctu uzl˚ u grafu G. Christofides uv´ad´ı pro podobn´e pokusy empirick´ y vzorec, podle nˇehoˇz za jednu sekundu je zpracov´an graf s pˇribliˇznˇe 25 uzly a kaˇzd´e dalˇs´ı zv´ yˇsen´ı poˇctu uzl˚ u o dva prodlouˇz´ı v´ ypoˇcet v´ıce neˇz na dvojn´asobek p˚ uvodn´ıho ˇcasu. Odtud vych´az´ı n´asleduj´ıc´ı orientaˇcn´ı tabulka ˇcasov´e n´aroˇcnosti. poˇcet uzl˚ u ˇcas
5.5
50 1.6 hodiny
60 2.14 dne
70 68.7 dne
80 6 let
Heuristiky pro hled´ an´ı hamiltonovsk´ e kruˇ znice
Heuristika je polynomi´aln´ı postup, kter´ y neprobere vˇsechny moˇznosti, ale v nˇekter´ ych pˇr´ıpadech “um´ı” d´at odpovˇed’. M´a tzv. or´ akulum, kter´e j´ı ˇrekne, co prob´ırat nemus´ı. V´ ysledek aplikace heuristiky je zpravidla bud’ kladn´a odpovˇed’, nebo heuristika “nev´ı” (tj. heuristika zpravidla neum´ı d´at z´apornou odpovˇed’). I pˇri odpovˇedi “nev´ım” vˇsak pˇresto m˚ uˇze kladn´e ˇreˇsen´ı probl´emu existovat. Uvedeme zde dvˇe heuristiky pro hled´an´ı hamiltonovsk´e kruˇznice v grafu. P´ osova heuristika P´osova heuristika se snaˇz´ı o pˇr´ımoˇcar´e prodluˇzov´an´ı cesty. Pokud to nen´ı moˇzn´e, tedy pokud neexistuje hrana z koncov´eho uzlu do nˇejak´eho voln´eho, vezme hranu do nˇekter´eho uzlu cesty a provede modifikaci, 34
zn´azornˇenou na n´asleduj´ıc´ım obr´azku. ......................................................... ........ ........... ....... ........ ...... ...... . . . . . . ...... ...... ..... ..... ..... . . . ..... ... . . . .. .. ................................................................................ ....... ....... ..............................................................................................................
.. ....... ....... ..... ....... ....... ...... ....... ....... ...... . .. ..... ..... .. . . ..... ... ........................................................................................................................................................................................................................
x•1
•
x•i
• xi+1
•
•
x•1
• z
•
x•i
• xi+1
•
•
• z
P´osova heuristika tedy vybere uzel x1 , najde cestu do dalˇs´ıho uzlu x2 atd. Kdyˇz doraz´ı do uzlu z, odkud pˇr´ım´e pokraˇcov´ an´ı nen´ı moˇzn´e, mus´ı m´ıt takov´ y uzel hranu do nˇekter´eho z jiˇz prohledan´ ych uzl˚ u (napˇr xi ). Odstran´ı se hrana {xi , xi+1 }, pˇrid´a se {z, xi } a pokraˇcuje se v uzlu xi+1 . Je vˇsak nutn´a ochrana proti zacyklen´ı. Pokud tato heuristika nenalezne ˇreˇsen´ı, pˇreˇc´ısluj´ı se uzly a aplikuje se znovu. Testy t´eto heuristiky uk´azaly (i pˇres jej´ı jednoduchost) velmi dobr´e v´ ysledky. Jin´a dobr´a heuristika je zaloˇzena na pojmu uz´avˇeru grafu, maj´ıc´ım ovˇsem i samostatnou d˚ uleˇzitost. Nejprve ale uvedeme nˇekolik tvrzen´ı, potˇrebn´ ych pro zaveden´ı pojmu uz´avˇeru grafu. Vˇ eta 5.2.
Necht’ G je graf na n ≥ 3 uzlech. Je-li δ(G) ≥
(Dirac)
n 2,
pak je G hamiltonovsk´ y.
Diracova vˇeta plyne ihned z n´asleduj´ıc´ıho obecnˇejˇs´ıho tvrzen´ı. Vˇ eta 5.3. (Ore) Necht’ G je graf na n ≥ 3 uzlech. Jestliˇze pro vˇsechny dvojice nesousedn´ıch uzl˚ u x, y grafu G plat´ı d(x) + d(y) ≥ n, pak je graf G hamiltonovsk´ y. D˚ ukaz Oreho vˇety je zaloˇzen na n´asleduj´ıc´ım lemmatu. Lemma 5.1. (Ore) Necht’ u, v jsou dva nesousedn´ı uzly grafu G takov´e, ˇze d(u) + d(v) ≥ n. Pak G je hamiltonovsk´ y, pr´avˇe kdyˇz graf G + {u, v} (vznikl´ y pˇrid´an´ım hrany {u, v} do G) je hamiltonovsk´ y. D˚ ukaz. y, je zˇrejmˇe G + {u, v} t´eˇz hamiltonovsk´ y. 1. Je-li G hamiltonovsk´ 2. Necht’ naopak G + {u, v} je hamiltonovsk´ y; chceme uk´azat, ˇze graf G je rovnˇeˇz hamiltonovsk´ y. V G + {u, v} existuje hamiltonovsk´ a kruˇznice C. Nen´ı-li {u, v} na C, pak je kruˇznice C i v grafu G a jsme s d˚ ukazem hotovi. Necht’ tedy {u, v} ∈ H(C). Odstranˇen´ım hrany {u, v} z´ısk´ame v grafu G hamiltonovskou cestu P mezi uzly u a v. Oˇc´ıslujme jej´ı uzly u = x1 , x2 , . . . , xn−1 , xn = v. Oznaˇc´ıme: M = {xi | {u, xi+1 } ∈ H(G)}, N = {xi | {xi , v} ∈ H(G)}. Pak |M | = d(u) a |N | = d(v), a tedy podle pˇredpokladu lemmatu je |M | + |N | = d(u) + d(v) ≥ n. Je zˇrejm´e, ˇze uzel v nen´ı v ˇz´ adn´e z mnoˇzin M, N , a tedy je nutnˇe |M ∪ N | < n. Proto je nutnˇe M ∩N ̸= ∅. Zvolme xi ∈ M ∩N . Pak ale kruˇznice, urˇcen´a posloupnost´ı uzl˚ u (u = x1 ), x2 , . . . , xi , (v = xn ), xn−1 , . . . , xi+1 , (x1 = u) (viz obr.) je hamiltonovsk´a kruˇznice v G. 2 ....... ....... ....... ....... . ....... ....... ....... ....... ....... ....... ....... ..... ...... .. ...... ....... .. ....... .... ....... ..... ....... . ....... ... ....... ....... ...... ....... ....... ....... ...... ....... ....... .... . . . . . . ....... ....... .... ..... . . . ...... ........... . ....... .. . ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
• u = x1
•
•
•
•
•
•
• xi
• xi+1
•
•
•
•
• xn = v
.................................................................. ......................................................................................... ................. ............ ...................... ................ .......... ............ ............... ............. ......... .......... ............. ........... ........ ......... ........... .......... . . . . . . . . . . . . . . . . ....... ......... .... . ...... . . . . ....... . . . . . . . . . . . . . .............. ...... ..... . . . . . . . . . . . . . .... ... ........... ..... . . . . . . . . . . . ................................................................................................................................................................................................ ................................................................................................................................................................................................................................................................
• u = x1
•
•
•
•
•
•
• xi
• xi+1
35
•
•
•
•
• xn = v
Oreho vˇeta se z tohoto lemmatu dok´aˇze snadno. Protoˇze podle pˇredpokladu vˇety vˇsechny dvojice nesousedn´ıch uzl˚ u splˇ nuj´ı podm´ınku d(x) + d(y) ≥ n, m˚ uˇzeme pˇridat do grafu G vˇsechny chybˇej´ıc´ı hrany. Vznikl´ yu ´pln´ y graf je samozˇrejmˇe hamiltonovsk´ y, a tedy je hamiltonovsk´ y i graf G. Bondy s Chv´ atalem (1974) zjistili, ˇze z Oreho lemmatu lze z´ıskat podstatnˇe v´ıce. Definice 5.1. Uz´avˇerem grafu G nazveme graf cl(G), kter´ y vznikne z grafu G postupn´ ym rekurentn´ım pˇrid´av´an´ım vˇsech hran {u, v}, splˇ nuj´ıc´ıch podm´ınku Oreho lemmatu. Zd˚ uraznˇeme zde, ˇze pˇri konstrukci uz´avˇeru se v kaˇzd´em kroku pˇred pˇrid´an´ım hrany {u, v} testuje Oreho podm´ınka d(u) + d(v) ≥ n na aktu´aln´ım grafu (nikoliv tedy na p˚ uvodn´ım grafu G). Tedy, uz´avˇer m˚ uˇze b´ yt u ´pln´ ym grafem, i kdyˇz v p˚ uvodn´ım grafu G zdaleka ne vˇsechny dvojice nesousedn´ıch uzl˚ u splˇ nuj´ı Oreho podm´ınku. Snadn´ ym pˇr´ıkladem je graf G = C5 + h (tj. kruˇznice C5 s jednou pˇridanou hranou), maj´ıc´ı 5 uzl˚ u, z nichˇz 3 jsou stupnˇe 2, ale cl(G) je pˇresto u ´pln´ y graf. Tvrzen´ı 5.2.
Pro kaˇzd´ y graf G je jeho uz´avˇer cl(G) urˇcen jednoznaˇcnˇe.
D˚ ukaz. Necht’ graf G m´ a dva uz´avˇery G1 a G2 ; necht’ G1 vznikl pˇrid´an´ım hran e1 , e2 , . . . , em a G2 vznikl pˇrid´an´ım hran f1 , f2 , . . . , fn . Uk´aˇzeme, ˇze kaˇzd´a hrana ei je obsaˇzena v G2 a kaˇzd´a hrana fi je v G1 . D˚ ukaz provedeme sporem, budeme tedy pˇredpokl´adat, ˇze existuje hrana {u, v} = ek+1 , kter´a nen´ı v grafu G2 a vˇsechny pˇredch´ azej´ıc´ı hrany ei , i ≤ k, v G2 jsou. Oznaˇc´ıme graf H = G ∪ {e1 , . . . , ek }. Podle definice grafu G1 mus´ı b´ yt dH (u) + dH (v) ≥ n, ale, podle volby hrany ek+1 , vˇsechny pˇredchoz´ı hrany ei , i ≤ k jsou v G2 . Graf H je tedy podgrafem grafu G2 . Tedy i v grafu G2 mus´ı b´ yt splnˇena podm´ınka dG2 (u) + dG2 (v) ≥ n. To znamen´a, ˇze v G2 existuje hrana {u, v} = ek+1 , coˇz je spor. Stejn´ ym zp˚ usobem bychom uk´azali, ˇze kaˇzd´a hrana fj je v grafu G1 , proto G1 = G2 . 2 Vˇ eta 5.4. (Bondy, Chv´ atal) graf G hamiltonovsk´ y.
Necht’ G je graf s alespoˇ n tˇremi uzly. Je-li cl(G) u ´pln´ y graf, potom je
Pozn´ amka. Myˇslenka d˚ ukazu Oreho lemmatu poskytuje polynomi´aln´ı algoritmus na nalezen´ı hamiltonovsk´e kruˇznice v grafu G, jehoˇz uz´avˇerem je u ´pln´ y graf. Jak jiˇz bylo uvedeno dˇr´ıve, obecnˇe je probl´em existence hamiltonovsk´e kruˇznice NP-´ upln´ y.
6 6.1
Nez´ avislost, dominance, klikovost a j´ adro grafu Neorientovan´ e grafy
V tomto odstavci term´ın “graf” znamen´a neorientovan´ y graf. Definice 6.1. Mnoˇzina A ⊂ U (G) se naz´ yv´a nez´avisl´a mnoˇzina grafu G (nˇekdy “vnitˇrnˇe stabiln´ı”), jestliˇze ˇz´adn´e dva uzly mnoˇziny A nejsou spojeny hranou. Pˇ r´ıklad. Klasick´ ym pˇr´ıkladem aplikace nez´avisl´e mnoˇziny je tzv. u ´loha o vys´ılaˇc´ıch. Uzly grafu odpov´ıdaj´ı televizn´ım vys´ılaˇc˚ um, hrany spojuj´ı uzly-vys´ılaˇce, kter´e se vz´ajemnˇe ruˇs´ı (a tedy nemohou vys´ılat na stejn´em kan´ alu). Hled´ame maxim´aln´ı mnoˇzinu vys´ılaˇc˚ u, kter´e se vz´ajemnˇe neruˇs´ı. Pozn´ amka. Je-li A ⊂ G nez´ avisl´ a a A′ ⊂ A, pak A′ je tak´e nez´avisl´a. M´a tedy smysl pt´at se na maxim´aln´ı nez´avisl´e mnoˇziny. Definice 6.2.
Nez´avislost grafu G (znaˇc´ıme α(G)) je nejvˇetˇs´ı poˇcet prvk˚ u nez´avisl´e mnoˇziny grafu G.
36
Pozn´ amka. Zd˚ uraznˇeme: nejvˇetˇs´ı, nikoliv maxim´ aln´ı ! V tom je z´asadn´ı rozd´ıl, jak n´am ukazuje n´asleduj´ıc´ı pˇr´ıklad. Pˇ r´ıklad. •
•
•
................................................................................ . ... ....... . ... ... ... ... ... ... ... ... ..... ... ..... ... ..... .. .. .. ... ... ... . . . ... ... ... ... ... .. .. ... ... ... . . ............. ................ . . ..... ......................................................................................................................................... . . . . .. .... ...... . . . . .. . .............. .......... . .. .. .. .... . . ... . ... .. . ... . . . . . . ... ... ... . . . . .. . ... . . . ... ... . ... ... ... .... ... ... ... ... ... .. ... ... ...... .. .................................................................................
•
•
•
•
•
•
•
...... .... ..... ................................................................................... .... ...... ...... ...... . .. ......... .. .... .. .... . . . ... ..... ... ..... ... ..... ... ... ... ... ... ... ... ... ... ... ... ... .............. ... ... ... .. . .. ..... . ........ .... . . . . . ......................................................................................................................... ..... ..... . . ... . .. ..... ........... ... . ... . ... .. .. .... .. ... . . . ... . . ... . ... . . . . . . ... ... ... . . ... .... ... ... ... ... . . ... ... ... ... .................. .. ..... ................................................................................ .... ...............
•
•
•
•
•
•
•
•
•
•
............. ............. ..... ....................................................................................... .... ........ ........ ....... ....... .. .. . ....... .. .... .......... . . ... ... ..... ... ... ..... ... .. ... ... ... ... ... .. ... ... ... .. . . . . ... .. ... ... ... .. ... .. .. ..... .. . . . . . . ....................................................................................................................... ... ... . ... . . .. ... .. ... ... . ... . ... .. .. .... .. .... . . . . . ... . ... ... . . . . . . ... ... ... . . . ... ... ... .... ... .... . . ... .. .................. .................. ..... ............................................................................................ ... . . .............. ..............
•
•
•
•
•
•
•
•
•
•
Zakrouˇzkovan´e uzly jsou uzly patˇr´ıc´ı do nez´avisl´ ych mnoˇzin. Ve vˇsech tˇrech pˇr´ıpadech jsou tyto nez´avisl´e mnoˇziny maxim´aln´ı, ale nejvˇetˇs´ı je jen v posledn´ım pˇr´ıpadˇe. Tedy, α(G) = 4. Pozn´ amka. V anglicky psan´e literatuˇre se maxim´aln´ı × nejvˇetˇs´ı rozliˇsuje jako maximal × maximum (takˇze napˇr´ıklad “nejvˇetˇs´ı nez´avisl´ a mnoˇzina” se anglicky ˇrekne “a maximum independent set”). Pozn´ amka. I z hlediska algoritmick´e sloˇzitosti je rozd´ıl mezi hled´an´ım nejvˇetˇs´ı a maxim´aln´ı nez´avisl´e mnoˇziny velmi z´asadn´ı. Nalezen´ı nejvˇetˇs´ı nez´avisl´e mnoˇziny je NP-tˇeˇzk´ y probl´em (s jedin´ ymi zn´am´ ymi postupy typu “hrub´a s´ıla” se sloˇzitost´ı O(2n )), zat´ımco nalezen´ı maxim´aln´ı nez´avisl´e mnoˇziny je polynomi´aln´ı probl´em, ˇreˇsiteln´ y snadno postupy typu hladov´eho algoritmu. Definice 6.3. Mnoˇzina B ⊂ U (G) se naz´ yv´a (uzlov´e) pokryt´ı grafu G, jestliˇze pro kaˇzdou hranu {x, y} ∈ H(G) je x ∈ B nebo y ∈ B (mohou b´ yt i oba). Je-li B pokryt´ı G a B ′ ⊃ B, pak B ′ je tak´e pokryt´ı. M´a tedy smysl hledat nejmenˇs´ı pokryt´ı
Pozn´ amka. grafu G. Definice 6.4.
Pokr´ yvac´ı ˇc´ıslo grafu G (znaˇc´ıme β(G)) je poˇcet prvk˚ u nejmenˇs´ıho pokryt´ı grafu G.
Pˇ r´ıklad. 1. Dopravn´ı u ´lohy, kontrola vˇsech spojnic z minim´aln´ıho poˇctu uzl˚ u (policist´e na kˇriˇzovatk´ ach, minimalizujeme jejich poˇcet tak, aby kontrolovali vˇsechny ulice). 2. Doplˇ nky nez´avisl´ ych mnoˇzin z obr´azk˚ u pˇr´ıkladu na t´eto stranˇe jsou pokryt´ı grafu G. Pˇredchoz´ı pˇr´ıklad pˇr´ımo motivuje n´asleduj´ıc´ı vˇetu. Vˇ eta 6.1.
Mnoˇzina A ⊂ U (G) je nez´avisl´a, pr´avˇe kdyˇz B = U (G) \ A je pokryt´ı G.
D˚ ukaz. A je nez´avisl´ a ⇔ ˇz´ adn´ a hrana nem´a oba konce v A ⇔ kaˇzd´a hrana m´a alespoˇ n jeden konec v B ⇔ B je pokryt´ı. 2 D˚ usledek 6.1.
Pro kaˇzd´ y graf G plat´ı α(G) + β(G) = |U (G)|.
D˚ ukaz. Je-li A nejvˇetˇs´ı nez´avisl´ a mnoˇzina v G, pak U (G) \ A je nejmenˇs´ı pokryt´ı.
37
2
N´asleduj´ıc´ı vˇeta ukazuje jednu zaj´ımavou souvislost mezi nez´avislost´ı a dalˇs´ımu vlastnostmi grafu. Vˇ eta 6.2. novsk´ y.
(Chv´ atal, Erd˝ os)
Necht’ G je k-souvisl´ y graf (k ≥ 2) s α(G) ≤ k. Pak je G hamilto-
D˚ ukaz. Pˇredpokl´adejme, ˇze G nen´ı hamiltonovsk´ y, a necht’ C je nejdelˇs´ı kruˇznice v G. Pak C nen´ı hamiltonovsk´ a kruˇznice v G, a tedy graf G − U (C) m´a alespoˇ n jednu nepr´azdnou komponentu H. Podle Mengerovy vˇety 4.7 7 existuje k uzlovˇe disjunktn´ıch cest P1 , . . . , Pk tak, ˇze Pi m´a koncov´e uzly xi ∈ U (H) a yi ∈ U (C), a vnitˇrn´ı uzly Pi jsou mimo U (H) ∪ U (C), i = 1, . . . , k. Oznaˇcme zi ∈ U (C) n´asledn´ıka uzlu yi na C (pˇri nˇejak´e pevnˇe zvolen´e orientaci kruˇznice C), i = 1, . . . , k, a necht’ z0 je libovoln´ y uzel v H. Pak se snadno pˇresvˇedˇc´ıme, ˇze mnoˇzina M = {z0 , z1 , . . . , zk } je nez´avisl´a mnoˇzina v G, protoˇze v opaˇcn´em pˇr´ıpadˇe bychom snadno sestrojili kruˇznici, kter´a je delˇs´ı neˇz C. Pak ale M je (k + 1)-prvkov´a nez´avisl´a mnoˇzina v G, coˇz je spor s pˇredpokladem α(G) ≤ k. 2 Obdobnou technikou lze dok´azat i n´asleduj´ıc´ı vˇetu, tematicky souvisej´ıc´ı s tvrzen´ımi odstavce 5.5. Vˇ eta 6.3. (Dirac) Necht’ G je k-souvisl´ y graf (k ≥ 2). Pak pro kaˇzdou mnoˇzinu M ⊂ U (G), |M | ≤ k, existuje v grafu G kruˇznice C takov´ a, ˇze M ⊂ U (C). D˚ ukaz. Pˇredpokl´adejme, ˇze takov´ a kruˇznice v G neexistuje, zvolme C tak, aby obsahovala co nejv´ıce prvk˚ u mnoˇziny M , a necht’ H, Pi , xi a yi m´a stejn´ y v´ yznam jako v d˚ ukazu vˇety 6.2. Protoˇze C neobsahuje vˇsechny prvky M , lze H zvolit tak, ˇze existuje z ∈ U (H) ∩ M . Uzly y1 , . . . , yk dˇel´ı kruˇznici C na k cest a protoˇze |M | ≤ k, alespoˇ n jedna z tˇechto cest neobsahuje ˇz´adn´ y prvek mnoˇziny M . Pak lze ale snadno nal´ezt kruˇznici C ′ takovou, ˇze (U (C) ∩ M ) ∪ {z} ⊂ U (C ′ ), coˇz je spor s volbou kruˇznice C. 2 Pokusme se nyn´ı hledat odpovˇed’ na ot´azku, kter´a je v jist´em smyslu opakem nez´avislosti grafu: hledejme podmnoˇziny uzl˚ u, kter´e jsou vˇsechny spojeny hranami. Definice 6.5. Podgraf K ⊂ G se naz´ yv´a klika grafu G, jestliˇze a) K je u ´pln´ y podgraf ´pln´ y podgraf, pak K = K ′ . b) jestliˇze K ⊂ K ′ ⊂ G a K ′ je u Tedy, jinak ˇreˇceno, klika je maxim´aln´ı u ´pln´ y podgraf. Pˇ r´ıklad. V tomto grafu je kaˇzd´ y z plnˇe vytaˇzen´ ych troj´ uheln´ık˚ u K3 klikou (je maxim´aln´ı), ale nen´ı nejvˇetˇs´ı. Nejvˇetˇs´ı klika je K4 - v obr´azku je zakreslena ˇc´arkovanˇe. •
.. ........... . ....... .. ................... .. . ............ .... . . . . . . . . .. . ......... .. .. ...... .. ........... .... ... . . . . ....... .............. ... . . . . . . . . ..... ... . . ... ..... ........ .. . .. .. . . . . . ....... . . . . . . ... ....... . . . . . . . . . .... .. . .. ....... . ... .................. ............. ....... . .. ...... .... ... . ............... . . . . . . . . . . .. . . ....... . ...... ........ ........ ..................... .... ...... .......... ....... ... .. ..... .. . .................... ... ......... ..... .. ....... ... .. ........ ........ . ... ....... ...... ........ .. . . . .. ..... ... ....... ... . . ... ... ... . ... ....... ..... ......... ... . . . . . . ... ....... ....... ........ .. . . . . ....... ................. .... . . ..... ... .. ....... .......... ... .. . ........ .. ....... ...... ... . . ............. ............
•
•
•
•
•
•
Definice 6.6.
Klikovost grafu (znaˇc´ıme ω(G)) je nejvˇetˇs´ı poˇcet uzl˚ u kliky grafu G.
7 Pˇ resnˇ eji vzato – potˇrebujeme zde obecnˇ ejˇs´ı verzi Mengerovy vˇ ety, kter´ a ˇr´ık´ a, ˇ ze v k-souvisl´ em grafu existuje k uzlovˇ e disjunktn´ıch cest i mezi kaˇ zd´ ymi dvˇ ema disjunktn´ımi souvisl´ ymi podgrafy. D˚ ukaz tohoto tvrzen´ı je analogick´ y d˚ ukazu vˇ ety 4.7.
38
Pˇ r´ıklad. Pro graf z minul´eho pˇr´ıkladu je ω(G) = 4.
Definice 6.7.
( ) ( ) ¯ = U (G), U (G) \ H(G) se naz´ Necht’ G je graf. Potom graf G yv´a doplnˇek grafu G. 2
Pˇ r´ıklady: 1)
G:
¯ = P4 G
•
•
• 2)
G = P3
G = C5
•...................... ................
•
•
•
•
•
•
¯ = C5 ≃ G G
•
......... ...• ..... ..... •.....................................................................................................................................................•..
•
•
....................... ............ ............ ........... ............ ............ ... ..... ... .. ... ... ... ... ... ... ... ... ..... . ... ........................................................................................
•
•
... ..... ..... ..... ..... ..... ..... ..... . . . . ..... ..... ......... ........... ..... ......... ..... ..... . . . . ..... .. ..... ..... ... ..... ................................................................
• •
•
¯ = P3 ≃ G G •..............
.... ... .. ... ... ... ... ...
• 3)
•
•............................................................•....... ... ... ... ... ... ... ... ... ... .
•
.... .... ..... ..... ........ ..... . ..... ........ ... ............. ........... ............ . . .... ............................... ........ . . . . .. . .. .. ..... ............... ................ ........ .... ........ ..... .. ........ .... .... ......... ........... ............. .... ..........
........................... ............ ............ ........... . ...................................................................................................... ... .... ... ... ... ... ... ... ... ... ... ... . .... ......................................................................................
......... ......... .... ................ ............... ........ ..... .... ..... . ....... ............... ..... ........ ........ .... ............... . . . ........ .... .. .... ............. .............. ....... ...........
•
Pozn´ amka. Pokud je graf izomorfn´ı se sv´ ym doplˇ nkem, hovoˇr´ıme o autokomplement´arn´ım grafu (napˇr. P3 , C5 ). Napˇ r . na ˇ s esti uzlech vˇ s ak takov´ y graf neexistuje (graf na ˇsesti uzlech spolu se sv´ ym doplˇ nkem () m´a celkem 62 = 15 hran, coˇz je lich´ y poˇcet). Vˇ eta 6.4.
Necht’ G je graf. Pak ¯ α(G) = ω(G).
D˚ ukaz. Mnoˇzina A ⊂ U (G) je nez´avisl´ a, pr´avˇe kdyˇz ˇz´adn´e dva jej´ı uzly nejsou spojeny hranou, tedy ¯ jsou kaˇzd´e dva jej´ı uzly spojeny hranou. Odtud plyne, ˇze A je maxim´aln´ı nez´avisl´a pr´avˇe kdyˇz v G ¯ kliku. mnoˇzina, pr´avˇe kdyˇz A tvoˇr´ı v grafu G 2 Pˇ r´ıklad. ... ...... ...... ... ..... ... ................ .. .................... .............. . . . . . . .. ...... ......... ....... ...... . .. ... ....... ......... ... .... ....... ..... ..... . ... ....... ............. . . . ... . . . . . . . . ... ....... ..... ..... ....... .......... ... . ... . . . . . . . .... ... ..... ... . . . . . . . . . . . . . . ... .. ..... . . . . . . . . ..... . . ... ......... .... . . . . . . . . ... . . . . . . . ... ........ .... . . . . . ... . . . . . . . . . ..... ........................ .................... . . . . . . .... . . . . .. . .. ..... ... ..... ................................................................ . ... ... . ..................... ... ...................... . . ....... ... . ..... . . . ... . . . . . . ....... ...... .... .. ... ... ....... ..... .... ....... ... ..... . ....... . . ...... ....... ..... ...... ....... ..... ... ..... .. ....... ... . .. ....... . ... ....... .......... ...... ....... ...... .. . .... . ....... ..... .. ... ... ....... ...... ..... ....... ....... ....... ..... ... ... ..... ................. .. .. ............. .. ............................. .............. .. ... .. ... ..... ...... ....
•
G:
•
•
•
•
•
•
... ...... ...... .... .. ... ................ ... .. ... ... .. . . ... ... .. .. . . . .............. ............. ............. .. ........................................................... .. ........ ....... ... .......... .............. ........................................................... ... . .. ..... ........................... ... ............................................................ ......... ............... ................................. ... ... ............. .... .... ............. .. ..... ............. .. ......................... .. .. ... ... ... ... ... ... .. .. .. . ............... ..... ... .... ..... ...... ....
¯: G
•
•
•
•
•
•
•
... ...... ...... .... ... ... ................ .... ... ... ... ... . .... ... ... ... ... ... .............. . . . ..... ...... .... ................... .. .. .. .... ... ... ... ... ... .. . ... ... ... .. . ... .. ... . .. ... . . ... . . ... ... . ... .. ... . ... . . . . . . . . . . ............... . . ..... ... .... ..... ... .... ..... ...... ..... ...... .... ....
•
•
≃
•
•
•
•
•
¯ =4 α(G)
ω(G) = 4
Definice 6.8. Mnoˇzina B ⊂ U (G) se naz´ yv´a dominantn´ı mnoˇzina (t´eˇz vnˇejˇskovˇe stabiln´ı) grafu G, jestliˇze pro kaˇzd´ y uzel x ̸∈ B existuje uzel y ∈ B takov´ y, ˇze {x, y} ∈ H(G). 39
Jinak ˇreˇceno, B je dominantn´ı, jestliˇze kaˇzd´ y uzel leˇz´ı v B, nebo v n´ı m´a souseda. Pozn´ amka. Je-li B dominantn´ı a B ′ ⊃ B, pak B ′ je tak´e dominantn´ı. M´a tedy smysl pt´at se na minim´aln´ı a na nejmenˇs´ı dominantn´ı mnoˇzinu. Definice 6.9. Poˇcet prvk˚ u nejmenˇs´ı dominantn´ı mnoˇziny grafu G se naz´ yv´a ˇc´ıslo dominance grafu G a znaˇc´ı se γ(G). Pˇ r´ıklad. Opˇet je potˇreba d˚ uslednˇe rozliˇsovat mezi minim´aln´ı a nejmenˇs´ı dominantn´ı mnoˇzinou: Minim´aln´ı
Minim´aln´ı
Nejmenˇs´ı γ(G) = 1
.......... .......... ..... ........................................................................ .... ............... ............. .... ... ..... ... ..... . . . . . . ... . ... .. ... .... ... ... ... ... . ... ... ... ... .... ..... ... ... ... .. .. ... ... . . . . . . ... ... .. .. .. . . ... . . . . .. . ................................................................................................................................... . ... . . . . . . ... ... .. ... .... . . . . ... ... ... .. ... ... ... ... .... ..... ... . . . . . ... ... .. .... ... ... ... ... ... ... ... ... ... ... ..... ... ..... ... ............. .............. . . . . . . . . .... ..................................................................... .... ............ ...........
............. ............................................................................... ....... ... ... ... ..... ... ..... . .... ... . ... ... ... ... ... ... ... ... ... ... . . . . . . . . ... .. ... ... ... ... .. .. ... ... . . . . . ... . . . . ... .. .. .. ... . . . . . . .. . . ................................................................................................................................... . ... . . . .. . . ... .. ... .... ... . . . ... .. .. ... .... . . ... . . .. .. ... .... ... . . . . . ... ... .. .... ... ... ... ... ... ... ... ... ... ... ..... ... ..... ... ............. .............. . . . . . . . .... ...................................................................... .... ............ ...........
.......................................................................... .. ... ... .. .... ... ..... ... ... ... ... ... ... . ... ... . ... ... .. ... . . . . . . . ... .. ... ... .. . . . . . ... ... .. .. .. . ... . . . . . ... . .. .. ... . . . . . . . . . . ....... ......................................................................................................................................... ... .................. .. ... . .. ... ... . . . ... .. .. ... .... . . ... . . .. .. ... .... ... . . . . . ... ... .. .... ... ... ... ... ... ... ... ... ... ... ..... ... ..... ... ... ... ... ... . . . . ................................................................
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Vˇ eta 6.5. Necht’ A ⊂ U (G) je nez´avisl´ a mnoˇzina grafu G. Pak A je maxim´aln´ı nez´avisl´a mnoˇzina, pr´avˇe kdyˇz A je dominantn´ı. D˚ ukaz. Necht’ A je nez´avisl´ a mnoˇzina. 1) Je-li A dominantn´ı, potom kaˇzd´ y uzel mimo A m´a v A souseda, z ˇcehoˇz vypl´ yv´a, ˇze ˇz´adn´ y takov´ y uzel jiˇz nelze pˇridat do A pˇri zachov´an´ı nez´avislosti. A je tedy maxim´aln´ı. 2) Je-li A maxim´aln´ı nez´avisl´ a mnoˇzina, pak do n´ı nelze pˇridat ˇz´adn´ y uzel pˇri zachov´an´ı nez´avislosti. Odtud plyne, ˇze kaˇzd´ y uzel nepatˇr´ıc´ı do A m´a v A souseda, a tedy A je dominantn´ı. 2 Vˇ eta 6.6.
Kaˇzd´ a maxim´aln´ı nez´avisl´ a mnoˇzina je minim´aln´ı dominantn´ı mnoˇzina grafu G.
D˚ ukaz. Podle pˇredchoz´ı vˇety je maxim´aln´ı nez´avisl´a mnoˇzina dominantn´ı. Je tedy tˇreba dok´azat, ˇze je minim´aln´ı dominantn´ı. Kdyby nebyla minim´aln´ı, tak v n´ı existuje uzel x takov´ y, ˇze A\{x} je dominantn´ı. Potom uzel x je sousedem nˇejak´eho uzlu z mnoˇziny A. Ale to znamen´a, ˇze A by uˇz nebyla nez´avisl´a, coˇz je spor. 2 Pozn´ amka. Implikaci ve vˇetˇe nelze obr´atit. Minim´aln´ı dominantn´ı mnoˇzina totiˇz nemus´ı b´ yt nez´avisl´a (viz obr´azek). •...........................................................................•............................................................................•.......
... .... .... ... ... ... ... ... ... ... . . . . .......... ......... .......... .... ....................................................................................................................................................................... ..... ... ... .. ... ... .. ... ... . .............. .............. .............. .... .... .... .... ... ... ... ... ... ... ... .. .......................................................................................................................................................
D˚ usledek 6.2.
•
•
•
•
•
•
Pro kaˇzd´ y graf G plat´ı γ(G) ≤ α(G).
40
2
D˚ ukaz. Plyne z pˇredchoz´ıho.
Pˇ r´ıklady. N´ asleduj´ıc´ı pˇr´ıklady ukazuj´ı, ˇze v nerovnosti v d˚ usledku 6.2 m˚ uˇze nastat rovnost i ostr´a nerovnost. ........ ..................................................• ... ..• ... ... .. ... ... ... ... .. ... .. .. ... .......... .. .... ..... ... .... ..... ...• . 1) 2) . . . . . . . . . . ....... . . ... ... .. . ... .. ... ....... ... ... . .. ... .. ... ... .. ... ... ... ... ... ..... ... ... ... ... ... .. ... . . . ... . . . . ..... ... .. ..... . .. . . ... . . .... ... . . ... . . . ... ... ... .. .... . . ... . .... ... ... . .. . . ... . . . . ... ... . . ... .. ... .. ... ... .... .... ... ... ..... ... .. .. ... ... ... ... .. .. ... .. ... ... ... ... . . .. . ....... .....................................................
....... .. ....... ....... ....... ...... ....... .. ....... ................... ........... ..... . . . .... ......... ......... ... ............. ............ ... ... ... ... ... . . ... .. . . ... . ... ... ... ... ... ... ... ... ...............................................
•
•
•
• • α(G) = γ(G) = 2
3)
• • α(G) = γ(G) = 2
.......... .................................................. .... ... ............. ... ... . . ... ... ... ... . ... . .. ... . . ... .. . . ... .. . ... . ... .............. . . . .... .... ... ... ............. ... ... ... . ... . .. ... . . ... .. ... ... ... ... ... ... ... .. . . . . . . . . . ... . . ................................................. .... ............
•
•
•
•
•
•
•
•
•
•......
... ... . ..... ... ..... .. ..... .... . . ..... .... ......... . ..... ... ..... ................. ... ..................................................................... .. . .. . ..................... . . . ... .... ........ . . . . ..... ... . .... . ..... . . . ...... ..... ... . ..... ... ..... ... ... ..
•.............
•
•
•
• • γ(G) = 2
.......... ..... .. .... ............ ... .... ........... ... ............. ......... .... ... ....... ... . ............ ... ............. ..... .... ... . ..... . . . . ..... .. ...... ..... ... ..... ..... .. ..... .................................................................. ... .... ............ . ........ ..... .... ........ . . . . . ..... .... ........ ..... ..... . . . . . . ..... .... . . ............. ..... .... ... .. . ... .... ......... ......... .... ........... .......... . ............... . . .... . .... ..........
•
•
................................................ ... ... ... ... ... ... . . ... ... ... ... . ... . .. ... . . ... .. . . ........... ................ .. . . ... ... ... .... .... .... ............ ............ ... ... ... . . ... ... ... ... . ... . ... ... ... ... ... ... ... ... ................................................
• • α(G) = 3
4)
•
•
•
•
•
•
•
•
•
γ(G) = 1
α(G) = n
Definice 6.10. Mnoˇzina uzl˚ u C ⊂ U (G), kter´a je souˇcasnˇe nez´avisl´a i dominantn´ı, se naz´ yv´a j´adro grafu G. Vˇ eta 6.7.
Kaˇzd´ y neorientovan´ y graf m´a j´adro.
D˚ ukaz. J´adrem je vlastnˇe kaˇzd´ a maxim´aln´ı nez´avisl´a mnoˇzina, protoˇze podle vˇety 6.6 je i dominantn´ı. 2 Pozn´ amka. Pˇripomeˇ nme, ˇze rozhodnut´ı, zda v dan´em grafu G existuje nez´avisl´a mnoˇzina dan´e velikosti, je klasick´ y NP-´ upln´ y probl´em, a tud´ıˇz nejsou zn´amy ˇz´adn´e efektivn´ı algoritmy, umoˇzn ˇuj´ıc´ı nalezen´ı ˇc´ısla α(G). (Podrobnˇeji se tˇemito ot´azkami budeme zab´ yvat v kapitole 9.) Naproti tomu, nalezen´ı maxim´aln´ı nez´avisl´e mnoˇziny je snadn´e hladov´ ym algoritmem (zvol´ıme libovoln´ y uzel, odstran´ıme jej i s jeho sousedy a ve zbyl´em grafu postup opakujeme). Tento postup je jednak polynomi´aln´ım algoritmem pro nalezen´ı j´adra neorientovan´eho grafu, ale z´aroveˇ n heuristikou, poskytuj´ıc´ı doln´ı odhad ˇc´ısla α(G). Situace je obdobn´a s klikovost´ı, dominanc´ı i pokr´ yvac´ım ˇc´ıslem. Vˇzdy je moˇzno snadno naj´ıt maxim´aln´ı, resp. minim´aln´ı mnoˇziny v polynomi´aln´ım ˇcase, zat´ımco pˇr´ısluˇsn´a ot´azka pro nejvˇetˇs´ı, resp. nejmenˇs´ı mnoˇziny je NP-tˇeˇzk´ a.
41
6.2
J´ adro orientovan´ eho grafu
⃗ orientovan´ ˇ ık´ame, ˇze mnoˇzina A ⊂ U (G) ⃗ je nez´avisl´a, jestliˇze ˇz´adn´e dva Definice 6.11. Bud’ G y graf. R´ jej´ı uzly nejsou spojeny hranou. Pozn´ amka.
Definice nez´avisl´e mnoˇziny je tedy shodn´a pro orientovan´e i neorientovan´e grafy.
⃗ orientovan´ ⃗ Mnoˇzina C se naz´ ⃗ jestliˇze Definice 6.12. Bud’ G y graf, C ⊂ U (G). yv´a j´adro grafu G, (i) C je nez´avisl´ a mnoˇzina, ⃗ \ C existuje y ∈ C tak, ˇze (x, y) ∈ H(G). ⃗ (ii) pro kaˇzd´ y x ∈ U (G) N´azornˇe – podm´ınka (ii) ˇr´ık´ a, ˇze z kaˇzd´eho uzlu mimo j´adro existuje hrana do j´adra. ⃗ cyklus lich´e d´elky, pak G ⃗ nem´a j´adro. To se nahl´edne snadno: zvol´ıme-li (symetrie) Pˇ r´ıklad. Je-li G prvn´ı uzel j´adra libovolnˇe, pak z (i) a (ii) vypl´ yv´a, ˇze v C leˇz´ı “kaˇzd´ y druh´ y” uzel cyklu, ale posledn´ı uzel nelze zahrnout do C ani nechat mimo C. Jedna z motivac´ı pojmu j´adra poch´ az´ı z teorie her. Uvedeme si dva jednoduch´e pˇr´ıklady. Pˇ r´ıklad. Na hrom´adce je deset z´apalek, hr´aˇci stˇr´ıdavˇe ub´ıraj´ı jednu nebo dvˇe. Vyhr´av´a ten, kter´ y vezme posledn´ı z´apalku. Pozic´ım hry (poˇcet z´apalek, kter´e z˚ ustaly ve hˇre) pˇriˇrad´ıme uzly grafu a vˇsechny moˇzn´e tahy n´am vytvoˇr´ı hrany grafu (viz n´asleduj´ıc´ı obr´azek). 9
7 •
5 •
3
1 •
... ... ...... ...... ...... ...... ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ ............... ......... ...................................... ................... ......... ................... ......... ...................................... ..... . . . . ..... . . . . . . . . . . . . . . ........ . . . . ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... . . . . . . . . . . ..... . . . . . . . . . . . . ..... ..... ..... ..... ... ... ... ... ... ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... ..... ..... ..... ..... ... ... ... ... ... . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . ..... ..... ..... ..... ... ... ... ... ... . . . . . ..... . . . . . . . . . . . . . . . . . . . . . . . ..... ..... ..... ..... ..... ... ... ... ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... ....... ....... ....... ....... ... ... ... ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............................. .............. ..... .............. ..... ................ ......... .............. ..... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. .... .............. ..............
•
• 10
• 8
•
•
• 4
6
• 2
0
•
Uzly patˇr´ıc´ı do j´adra jsou opˇet zakrouˇzkov´any. Hr´aˇc, kter´ y prvn´ı t´ahne do j´adra, m´a moˇznost pˇri jak´emkoliv tahu soupeˇre t´ahnout zpˇet do j´adra (2. vlastnost), ale soupeˇr tuto moˇznost nem´a (1. vlastnost). Hr´aˇc, kter´ y zaˇc´ın´a, tedy nem˚ uˇze prohr´at (samozˇrejmˇe, neudˇel´ a-li chybu). Obecnˇ e: Jestliˇze graf, odpov´ıdaj´ıc´ı hˇre, m´a j´adro, pak hr´aˇc, kter´ y prvn´ı t´ahl do j´adra, m´a strategii, zaruˇcuj´ıc´ı to, ˇze neprohraje (m˚ uˇze ovˇsem doj´ıt k rem´ıze - pˇri pohybu v cyklu). Pˇ r´ıklad. ........... ...................... . ...... ......................................... ..... ..... ........ . . . . ..... ....... .... . ....... . ..... . ....... ..... ..... ....... ..... ..... . ....... . . ..... . ....... ..... .......... ....... ..... . ..... ............ . .............. . . ........... .... ......... . . . . . . . . . . . . ........................................................................................................................................... ... . . . ..... ......... ........... ............ . . . . . . . . ..... ...... ....... ..... . . . . . . . ..... . . . . .. ..... ..... ....... ..... ....... ..... . . . . . . . . ..... . . ... ..... ..... ....... ..... ..... ........ .. . ..... ....... ................................................ .................... .............
• c
• Z
• a
• d
• K
• b Z – zaˇc´atek hry, K – konec hry. Vyhr´av´a ten, kter´ y prvn´ı t´ahne do K. Zaˇc´ınaj´ıc´ı hr´aˇc A si nalezne j´adro → t´ahne do j´adra. Protihr´aˇc B: kdyby na d, tak A vyhraje. Tedy na a. A: kdyby na d, vyhraje B. Tedy na c. B: kdyby na d, vyhraje A. Tedy na Z, ˇc´ımˇz si vynut´ı rem´ızu cyklem. To je t´ım, ˇze B m´a tak´e tah do j´adra, zvol´ıme-li jin´e j´adro, jak´e n´am ukazuje n´asleduj´ıc´ı obr´azek:
42
• c
...... ..... ................. ..... ........................... ..... ....... ..... . . . . .. ..... .. ..... .............. ..... ....... ..... ..... ....... ..... ..... . . ....... . ..... . ....... ... ..... ............. . ..... ... .............. ... . . ... ......................... .. ........................................................................................................................................................ ... ....... . ................... . . . . . . ....................... ............ .................. . . . . .............. . . ..... ..... ...... ... . . . ..... . . . . . . . . ..... .... ....... ..... ..... ....... ..... ..... ............. ..... ..... .. ..... . ..... .............. . . . ....... . .............. ....................... ...............
• Z
• a
b
• d
• K
•
Ot´ azka: Kdy m´a orientovan´ y graf j´adro? Napˇr´ıklad lich´ y cyklus j´adro nem´a, zat´ımco kaˇzd´a symetrick´a orientace neorientovan´eho grafu ano. Vˇ eta 6.8.
Kaˇzd´ y acyklick´ y graf m´a j´adro.
⃗ → N0 (ohodnocen´ı D˚ ukaz. Oˇc´ıslujme uzly podle vˇety o acyklick´ ych grafech a definujme funkci f : U (G) uzl˚ u cel´ ymi nez´aporn´ ymi ˇc´ısly): f (un ) = 0 ⃗ f (ui ) = min{k ∈ N0 ; k ̸∈ {f (vj ); (ui , vj ) ∈ H(G)}}, i = n − 1, . . . , 1. Tato funkce se naz´ yv´a Grundyho funkce. ⃗ f (x) = 0}. Pak C je j´adro. Oznaˇcme C = {x ∈ U (G); 2 Pˇ r´ıklad. Na n´asleduj´ıc´ım obr´azku jsou hodnoty Grundyho funkce jednotliv´ ych uzl˚ u zakrouˇzkov´any. ............
6 ........1.........
•
•
....... ................................................................................................................................................ .................... .............. ........ ... .... . ....... ..... . ...... .............. ... . . . . . . . . . . . . .... .. 4 ....0 ... ....... ....... ......... ...... ..... ..... ... .....5. ...2.... .............. ..... ... ........ ...... ........ ..... . . . . . . . . . . . . . ... . .......... ....... ... . . . . . . ... . . . ... ........... . . . ... . . . . .............. ............. .................... . . ........... ....... . ... . . . . . . . . 3 .....1 . . . . . . . . ...... ...... ... . . ....... ... ... . . . . . . . ..... ...... ... ... . .. . ..... . . . . . ...... ... ... ..... . .. . . . . . . ..... ... ..... . ... . . . . . . . . . . ... ..... .... ..... . ... . . . . . ... . . . ...... ............................................. .. ... . . . ...... ............ ... .... ........ . . .. ... . . . . . . . . . . ............ ..... .. ... . ..... . . ... . . . . . . . . . . . . . . . . . ............ ..... ...3... 2 . ..... . . . . ... . . . . . . . . . . . . . . . . . . . ............ . ........ .......... ............ .. .............. . . . . . ............ ..................... .......... . ....... . . . . . . . .. ...... ....... .................................................................................................................................................................................................................................... .. . 1 .....2....... .......
•
•
•
•
........
• 7 .........0...........
Plat´ı jeˇstˇe v´ıce. Vˇ eta 6.9.
Kaˇzd´ y orientovan´ y graf bez cykl˚ u lich´e d´elky m´a j´adro.
D˚ ukaz. (myˇslenka). J´adro grafu bez lich´ ych cykl˚ u lze nal´ezt n´asleduj´ıc´ım postupem. ⃗ 0 je v´ ⃗ (tj. kvazikomponenta, odpov´ıdaj´ıc´ı v´ 1. Necht’ G ystupn´ı kvazikomponenta grafu G ystupn´ımu ⃗ uzlu kondenzace). Zvolme libovolnˇe x ∈ U (G0 ) a poloˇzme ⃗ 0 )| z y do x existuje orientovan´ S0 = {y ∈ U (G y sled sud´e d´elky}. (Poznamenejme, ˇze sled nulov´e d´elky je tak´e sud´ y sled, a tedy x ∈ S0 .) D´ıky pˇredpokladu neexistence ⃗ lich´ ych cykl˚ u je S0 j´adrem G0 . ⃗0 = G ⃗ (tj. G ⃗ je silnˇe souvisl´ 2. Je-li G y), jsme hotovi. V opaˇcn´em pˇr´ıpadˇe poloˇz´ıme ⃗1 = G ⃗ − (S0 ∪ {y ∈ U (G)| ⃗ ∃z ∈ S0 tak, ˇze (y, z) ∈ H(G)}), ⃗ G ⃗ 1 cel´ a pro graf G y postup opakujeme. ⃗ sjednocen´ım takto nalezen´ 3. Skonˇc´ı-li uveden´ y postup po k kroc´ıch, je j´adro S grafu G ych mnoˇzin: S = S0 ∪ S1 ∪ . . . S k . 2
43
Pozn´ amka. Myˇslenky d˚ ukaz˚ u vˇet 6.8 a 6.9 d´avaj´ı z´aroveˇ n algoritmy pro nalezen´ı j´adra (v tˇechto speci´aln´ıch pˇr´ıpadech). Poznamenejme jeˇstˇe, ˇze charakterizaˇcn´ı vˇeta orientovan´ ych graf˚ u s j´adrem nen´ı zn´ama, a ot´azka existence j´adra v obecn´em orientovan´em grafu je NP-´ upln´ y probl´em.
7
Barevnost grafu
Pˇ r´ıklad. (rozvrh hodin) Je d´an kurs, obsahuj´ıc´ı M pˇredn´aˇsek, pˇriˇcemˇz nˇekter´e pˇredn´aˇsky nemohou ´ prob´ıhat souˇcasnˇe (stejn´ y uˇcitel, stejn´ı studenti, stejn´a specializovan´a laboratoˇr apod.) Ukolem je zjistit, v jak´em nejkratˇs´ım ˇcase lze odpˇredn´ aˇset cel´ y kurs. A U V
1 2 3
B U U
C W V V
U, V, W . . . uˇcitel´e A, B, C . . . pˇredmˇety 1, 2, 3 . . . tˇr´ıdy
Pˇredmˇet C m´a speci´aln´ı uˇcebnu Strukturu v´ yuky pop´ıˇseme grafem tak, ˇze jednotliv´ ym vyuˇcovac´ım pˇredmˇet˚ um pˇriˇrad´ıme uzly grafu, a dvojic´ım pˇredmˇet˚ u, kter´e nelze pˇredn´ aˇset ve stejnou dobu, pˇriˇrad´ıme hrany grafu. Graf t´eto u ´lohy pak bude vypadat takto: 1C ............ .....• 3C •
....... .. .......... ... ... ....... ... ..... ............ .. ...... ... . ...... ... ... ...... ... ...... ... ... ...... ... . ...... ... . . . . . . . . . . . .... ... ...... ....................... ... . .............. . . . . ............... ... ...... ... .......... . .... .... . . . . . . . . . . . . . . .. . ..... . .............. ... ..... ... .. ... . ..... . . . . . . . . . . . . . . ... . . . . ..................... ... ..... . .. .. ..... ..... ... ..... .............................. .... .. ..... . . . ..... . . . . . . . . . ... ............... ... . . ... .... . . . . . . . . . . . . . . . . . . ........................ . ... ... . . ... .... . . . . . . . . . . . . . . . ................................................................................................................................................................................................................................. ... . ..... . . . . ... .... . .... . . ..... . . . . . . . . . . ..... . . ..... ... . ..... ...... ..... ..... ..... ... ... ..... ...... ..... . . . . . . . . . . . . . . . ... .. . ..... .. .. .. ...... ..... ... .. ..... ..... .... .... ........... ... .. ......... ..... .... ...... ...... ...... ............... ....... ....
1A •
• 2C
1B •
2B •
1C •
......... .......... .......... ........ ............. ..... ....... ..... ..... ..... ...... ..... ......... . . . . ...... ..... ...... ..... ..... ..... ...... ..... ........ . . . . . . . . ...... ..... ... ... . . . . .... . . . . . . ... ............................................................................... .... . . . . . . . ..... ... ... . ... . . . . ... . . ..... ... .. . . ... . . . . . . ..... ... ... . ... . . . . . . ..... ... .... .. . ..... . . . .. ..... . . . . ... .... ..... .. ... ..... ......... .... . ........ . .... . .... ... ... ..... ..... ... ..... ......... ... ... ..... ..... ... ... .... ..... .... . . . . . . . ... ..... . .... ..... .... .... ..... ... ..... .... ..... ... ..... .... ..... ..................................................................................... ..... . . . . . ..... . .... ..... ........ .... . ..... ..... ..... ......... ..... ..... ..... ..... ..... ..... . . . . . ..... .... ..... ..... ..... ........... ......... ................. ..
• 1B
≃
• 1A
2B •
2A•
• 2A
• 2C
•3C Uzl˚ um pˇridˇel´ıme vyuˇcovac´ı hodiny tak, ˇze sousedn´ı uzly nebudou m´ıt stejn´a ˇc´ısla (hrany grafu ˇr´ıkaj´ı, ˇze dan´e pˇredn´ aˇsky nesm´ı prob´ıhat souˇcasnˇe). Po chv´ıli pokus˚ u zjist´ıme, ˇze – pˇrekvapivˇe – dan´ y kurs nelze narozvrhovat do 3 hodin; potˇrebujeme alespoˇ n 4 vyuˇcovac´ı hodiny. Pˇ r´ıklad. (s´ıt’ vys´ılaˇ c˚ u) Vytvoˇr´ıme n´asleduj´ıc´ı graf: uzly grafu odpov´ıdaj´ı vys´ılaˇc˚ um TV, hrany spojuj´ı dvojice vys´ılaˇc˚ u, kter´e se navz´ ajem ruˇs´ı, a tedy nemohou vys´ılat na stejn´em kan´alu. C´ılem je nal´ezt minim´aln´ı poˇcet kan´ al˚ u pro vys´ıl´ an´ı.
7.1
k-obarvitelnost a chromatick´ eˇ c´ıslo grafu
Definice 7.1. Graf G se naz´ yv´ a k-obarviteln´ y, jestliˇze kaˇzd´emu jeho uzlu lze pˇriˇradit jednu z “barev” 1 . . . k tak, ˇze ˇz´ adn´e dva sousedn´ı uzly nemaj´ı stejnou barvu. Pozn´ amka.
Kaˇzd´ y graf je |U (G)|-obarviteln´ y (kaˇzd´ y uzel jinou barvou).
Definice 7.2. Nejmenˇs´ı pˇrirozen´e ˇc´ıslo k, pro kter´e je graf G k-obarviteln´ y, se naz´ yv´a chromatick´e ˇc´ıslo (barevnost) grafu G a znaˇc´ı se χ(G).
44
Pˇ r´ıklad. Graf z pˇr´ıkladu o rozvrhu hodin m´a barevnost 4. ´ Pozn´ amka. Uloha nalezen´ı chromatick´eho ˇc´ısla grafu je ekvivalentn´ı u ´loze rozloˇzen´ı mnoˇziny uzl˚ u grafu na minim´aln´ı poˇcet nez´avisl´ ych podmnoˇzin. Pˇ r´ıklad. Je-li Je-li Je-li Je-li
G G G G
kruˇznice sud´e d´elky, pak χ(G) = 2. kruˇznice lich´e d´elky, pak χ(G) = 3. strom, pak χ(G) = 2. u ´pln´ y graf, pak χ(G) = n.
Tvrzen´ı 7.1.
Necht’ G obsahuje jako podgraf u ´pln´ y graf Kk . Pak χ(G) ≥ k.
D˚ ukaz. Kk m´ a chromatick´e ˇc´ıslo k, G tedy mus´ı m´ıt chromatick´e ˇc´ıslo ≥ k.
2
Pozn´ amka. Graf z pˇr´ıkladu o rozvrhu hodin ukazuje, ˇze ve vˇetˇe m˚ uˇze platit ostr´a nerovnost. Tento graf neobsahuje jako podgraf ˇz´ adn´ y K4 , ale pˇresto χ(G) = 4. Horn´ı odhad chromatick´eho ˇc´ısla d´av´ a n´asleduj´ıc´ı tvrzen´ı. Pro kaˇzd´ y graf G plat´ı χ(G) ≤ ∆(G) + 1, kde ∆(G) je maxim´aln´ı stupeˇ n grafu G.
Vˇ eta 7.1.
D˚ ukaz. Indukc´ı podle n = |U (G)|. 1. pro n = 1 je tvrzen´ı zˇrejm´e: ∆(G) = 0 a χ(G) = 1. 2. necht’ tvrzen´ı plat´ı pro kaˇzd´ y graf s n−1 uzly a G m´a n uzl˚ u. Sestrojme G′ odstranˇen´ım libovoln´eho ′ uzlu u. Pak G m´ a n − 1 uzl˚ u a maxim´aln´ı stupeˇ n ≤ ∆(G); podle indukˇcn´ıho pˇredpokladu je obarviteln´ y ∆(G) + 1 barvami. Uzel u m´a stupeˇ n nejv´ yˇse ∆(G), a tedy jeho sousedi maj´ı nejv´ yˇse ∆(G) barev – lze jej tedy obarvit tou z ∆(G) + 1 barev, kterou ˇz´adn´ y z jeho soused˚ u nem´a. 2 Tato vˇeta se d´a jeˇstˇe zes´ılit: Vˇ eta 7.2. (Brooks) Pro kaˇzd´ y graf G plat´ı χ(G) ≤ ∆(G) aˇz na tyto dvˇe v´ yjimky: I. G m´ a komponentu K(∆(G)+1) , II. ∆(G) = 2 a G m´a za komponentu kruˇznici lich´e d´elky. Je-li G souvisl´ y graf, kter´ y nen´ı u ´pln´ ym grafem ani kruˇznic´ı lich´e d´elky, pak χ(G) ≤
D˚ usledek 7.1. ∆(G). Pˇ r´ıklad.
•
•..............................................................................................................•........ ... ..... . . ..... ..... ... ... ..... ..... ... ... ..... ..... ... ... ..... ..... ...................................... ... ... ... . ... . ... ... .. ... . ... ... ... .. ... . ... . ... . ... . ... ... . . ... . ............................... ... . . ... . . ..... ... ... . . . . ... . . ... ..... ... . . . . ... .. . . . ..... ..... .... ... ......... ..... .. ... ...... ..... .. ........ . .........................................................................................
•
•
•
•
•
•
. .......... ........ ........ ........ ............. .......... ......... . . . . ... ..... ... .. ... ...... ..... ... ... ..... ..... .. ... ..... ..... ..... . . . ... ...... ... .... . . . . ... ..... ... .... . . ..... . . .................................................................. ... ..... . . . . . ..... ..... .... ... . . . . . . . ..... . . . ..... ... .... ..... . . . . . . . . . ..... ..... ... ... . . . . . . . . ..... . . ..... .... .... ..... . . . . . . . . ......... ... ............ . . . . . . . ...... ................ ... ....... .......... . . . . . . . . . . . . . . .. .. .......... ... ......... .... .......... .............. ..... ....... ................... ... ....... . .... ... . . . . ... .. ... .... ... ... ... ..... ... .... ... .. ... .... ... .. . . . . ..... . ..............................................................................................
•
•
χ(G) = 2 ∆(G) = 3
•
• •
45
•
• •
• χ(G) = ∆(G) = 4
Pˇrirozenou ot´azkou je, kdy m´a graf malou barevnost. Prvn´ı krok je trivi´aln´ı: χ(G) = 1 ⇐⇒ H(G) = ∅. Naproti tomu, grafy barevnosti 2 jiˇz tvoˇr´ı d˚ uleˇzitou a pomˇernˇe bohatou tˇr´ıdu. Vˇ eta 7.3.
χ(G) = 2 pr´ avˇe kdyˇz H(G) ̸= ∅ a G neobsahuje kruˇznici lich´e d´elky.
D˚ ukaz. 1. M´a-li G kruˇznici lich´e d´elky, pak G zˇrejmˇe nen´ı 2-obarviteln´ y. 2. Necht’ G nem´ a kruˇznici lich´e d´elky, indukc´ı podle poˇctu kruˇznic dok´aˇzeme 2-obarvitelnost. (i) Jestliˇze G nem´a kruˇznici, pak je to strom a χ(G) = 2. (ii) Necht’ kaˇzd´ y graf bez lich´ ych kruˇznic s nejv´ yˇse k − 1 kruˇznicemi je 2-obarviteln´ y; G m´a k sud´ ych kruˇznic. Odstraˇ nme hranu {x, y} nˇekter´e kruˇznice C, pak zbyl´ y graf je podle indukˇcn´ıho pˇredpokladu 2-obarviteln´ y; protoˇze C je sud´a, maj´ı x a y r˚ uzn´e barvy a obarven´ı lze pˇren´est na graf G. 2 Pozn´ amka. Kaˇzd´ y graf barevnosti 2 je podgrafem nˇekter´eho u ´pln´eho bipartitn´ıho grafu Km,n . (D˚ ukaz: kaˇzdou monochromatickou tˇr´ıdu uzl˚ u grafu G um´ısti do jedn´e partity grafu Kn,m ). Proto se jim ˇr´ık´a bipartitn´ı grafy. Je zˇrejm´e, ˇze o tom, zda je dan´ y graf bipartitn´ı, je moˇzno rozhodnout v polynomi´aln´ım ˇcase (napˇr´ıklad hladov´ ym algoritmem). Pro χ(G) ≥ 3 je to ale uˇz horˇs´ı, o ˇcemˇz n´as pˇresvˇedˇc´ı n´asleduj´ıc´ı vˇeta: Vˇ eta 7.4.
´ Uloha: “urˇcete, zda je dan´ y graf G 3-obarviteln´ y” je NP-´ upln´a. 2
D˚ ukaz. Vˇetu dok´aˇzeme v kapitole 9.
´ Pozn´ amka. Uloha 3-obarvitelnosti je NP-´ upln´a dokonce i pro rovinn´e grafy; dokonce i pro rovinn´e grafy s ∆(G) ≤ 4 (kter´e jsou 4-obarviteln´e podle Brooksovy vˇety). Pozn´ amka. Urˇcen´ı barevnosti grafu je zˇrejmˇe ekvivalentn´ı s nalezen´ım rozkladu U (G) na minim´aln´ı poˇcet nez´avisl´ ych mnoˇzin. Odtud plyne n´asleduj´ıc´ı tvrzen´ı: Vˇ eta 7.5. Pro graf G s chromatick´ ym ˇc´ıslem χ(G) a nez´avislost´ı α(G) plat´ı: 1. χ(G)α(G) ≥ |U (G)|, 2. χ(G) + α(G) ≤ |U (G)| + 1. D˚ ukaz. 1. V optim´aln´ım obarven´ı grafu G χ(G) barvami je kaˇzd´a monochromatick´a tˇr´ıda uzl˚ u nez´avislou mnoˇzinou o nejv´ yˇse α(G) prvc´ıch. y jinou barvou r˚ uznou od t´e 2. Nejvˇetˇs´ı nez´avislou mnoˇzinu obarv´ıme 1. barvou a zbyl´e uzly kaˇzd´ prvn´ı. Pak α(G) + poˇcet barev = |U (G)| + 1 ; ale pravdˇepodobnˇe existuje lepˇs´ı obarven´ı grafu G, proto ≤. 2 Pozn´ amka. Nalezen´ı χ(G) je ovˇsem NP-tˇeˇzk´a u ´loha. Myˇslenka druh´e ˇc´asti d˚ ukazu poskytuje n´asleduj´ıc´ı heuristiku: avislou mnoˇzinu, – hledej v G nez´ – obarvi ji 1 barvou a vyhod’, – ve zbytku grafu postup opakuj.
46
Heuristika, pˇres svoji jednoduchost, je pouˇz´ıvan´a a d´av´a sluˇsn´e v´ ysledky. Jin´a pouˇz´ıvan´ a heuristika, tzv. “sekvenˇcn´ı barven´ı”, je zaloˇzena na myˇslence d˚ ukazu vˇety 7.1. V kaˇzd´em kroku barv´ı uzel nejniˇzˇs´ı barvou, kterou jeˇstˇe nem´a ˇz´adn´ y z jeho soused˚ u (varianty jsou ve volbˇe barven´eho uzlu: n´ahodnˇe, od nejvˇetˇs´ıch stupˇ n˚ u apod.)
7.2
Barven´ı map
Pˇ r´ıklad. Pokus´ıme se obarvit mapu tak, jak je zvykem na tzv. “politick´ ych map´ach”, tj. tak, aby sousedn´ı st´aty mˇely r˚ uzn´e barvy. Sousedn´ımi st´aty pˇritom rozum´ıme ty, kter´e spolu soused´ı v nekoneˇcnˇe mnoha bodech. Snaˇz´ıme se samozˇrejmˇe minimalizovat poˇcet pouˇzit´ ych barev. Barven´ı mapy se d´a pˇrev´est na urˇcen´ı barevnosti (du´aln´ıho) rovinn´eho grafu (viz obr´azek). Rovinnost graf˚ u zat´ım budeme uvaˇzovat jen intuitivnˇe, pozdˇeji se k jejich definici vr´at´ıme. .. .. .. ......... .. .... .... .... ..... ......... .. ... ... ... .... . .. .... . . . ... . .......................... .. . ... . . . . .. . . . . . . .. .................................... . .. . . . . . . .. . . . . . . . ......... . . ........ . . . . . .. . . . . . . . . ....... .. .. .. . . . . . . . . . . . .. ........ .. ........ . .. .. . . . . . . . . . . . . .. .. ....... .... .. ... . . . . . . . . . . . . . . . . .... . ... .. .. . . .. . . . . . . . . . . . . .. . .. ... . .. . ..... .. ... .. ... ................................ .. .. ... ........... .. ..... .. .. ......... ... ............ .. .. ... ... ..... ... ..... .. .. ... .... ............ .... .. ... .. .. .. ........ ... .. ..... ... ............ ... ... .. .. ..... ...................................... . .. .... ... .. . . . . . . . . . . . . . . . . . . . . . .............................. . .. .. ..... ... .. . .. ...... . ..... ..... . . .. . ... . . . . . . . . . . . . . . . . . . . . ... .. .. ..... .... ...... ...... .. .. ... .......... .... .. . . . . ... . . . . . . . . . . . .. . . ... . .... ........ .. . .. .. ... .. ....... . . . .. . . . . . ... ............... ........ . . . ..... .. . . . .. ... . ... ..... .. .. .. .. .... ..... .. ... .. ....... .. .. .. .. .. ....... .. .. ..... .......... ... ... .. .. ... .. ... .. .. ... . . ............................................................... .. .. .. .. .. ... ..... . ................... ... .... .. . .. .. .. ...... . .. ................ . . . . .. . . .... ................................. . ... . . . . . ... .. .. .. ... . . .. ... . . ....... . . . . ............ . . . . . .. . . . . . . .. .. .. ...... .. .. .. . .. ... ... . . .. . . .. ........ . . . . .. . . . . . . .... .. ....... . .... ... ... .. .. . ..... . . . . .. . .. . . . . . . . . . . ..... ... ....... .. . ... .. . ...... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... ... .. .. .. .. ....... . . .. .... . .... ..... .. ........ ... .. ... .. .... ... .. ...... ..... ............ .... ... ... ... . .. .. ....... ..... .. . .. .... .......... .. .. ... .. .. .... .... .. .. . .. ....... .... .. ................ ..... .. .. ...... ..... .. ..... .......................................... .. . . . .. .... .......... ....... ... . . . . . . ................ .. ..... ..... .......................... .. .. .. .................... ......... .... ... .. .. ............... ...... .. .. .......................................... .. .. .. .. .......... .. .............................................. .. .. .. .. . ........ .. . . .. . . . . . . . .... .. . .......... .. .... .. . .. . . . . . ... . ... ... ... .... . . .. . . . . . . .. . . . . . . . . . .... ... . . .... ..... .. . ..... .. .. .. ... ..... ... .... ...... ... . . ..... ......... ... . ..
•
•
•
•
•
•
•
•
•
•
•
•
V dan´em pˇr´ıpadˇe k obarven´ı potˇrebuji 4 barvy. D´a se uk´azat, ˇze 4 barvy tak´e vˇzdy staˇc´ı: Vˇ eta 7.6.
Kaˇzd´ y rovinn´ y graf je 4-obarviteln´ y.
Tato vˇeta d´av´ a ˇreˇsen´ı jednoho z nejproslulejˇs´ıch probl´em˚ u cel´e historie teorie graf˚ u – tzv. Probl´emu ˇctyˇr barev. V rovinˇe tedy staˇc´ı 4 barvy. Jak je tomu na ploch´ach vyˇsˇs´ıch rod˚ u, n´am ukazuje n´asleduj´ıc´ı vˇeta: Vˇ eta 7.7.
(Heawood˚ uv vzorec)
Je-li G uloˇziteln´ y na plochu rodu γ, pak [ ] √ 7 + 1 + 48γ χ(G) ≤ . 2
Vzorec uvedl Heawood uˇz roku 1890, d˚ ukaz byl kompletnˇe dokonˇcen (pro rod 0, tj. rovinu) aˇz v roce 1977. Tento odstavec zakonˇc´ıme pˇr´ıkladem jedn´e aplikace barven´ı grafu. Pˇ r´ıklad. (rozklad grafu na vrstvy rovinn´ ych graf˚ u) Necht’ je d´an graf G a jeho nakreslen´ı v rovinˇe (pˇri nˇemˇz se nˇekter´e hrany mohou “prot´ınat” mimo uzel). Oˇc´ıslujeme hrany grafu G a sestroj´ıme graf G′ tak, ˇze uzly G′ odpov´ıdaj´ı hran´am G a dva uzly G′ jsou sousedn´ı pr´avˇe kdyˇz odpov´ıdaj´ıc´ı hrany grafu G se prot´ınaj´ı. Nalezneme-li obarven´ı grafu G′ , pak kaˇzd´a monochromatick´a tˇr´ıda uzl˚ u v G′ odpov´ıd´a mnoˇzinˇe neprot´ınaj´ıc´ıch se hran grafu G, tj. rovinn´emu podgrafu. To znamen´a, ˇze jsme H(G) rozloˇzilli na χ(G′ ) 47
rovinn´ ych podgraf˚ u. Uk´aˇzeme si to na pˇr´ıkladu grafu K3,3 na n´asleduj´ıc´ım obr´azku (ˇc´ısla v krouˇzc´ıch znamenaj´ı barvy uzl˚ u v obarven´ı grafu G′ ). •.................................3.
•
4
5
2
1
G:
7 •
. ............ ........... ..... .. ..... ............ .. ... ..... ........ .... .. ..... ........ ..... .. ..... ........ ..... .... ........ ... ....... ......... .... . . . . . . . . . . . . . . . . . . ... . ........ .... ..... ..... ....... . ... ... ............ ..... ........... ..... ... ... .. .. ..... ..... .. ... ... ..... ........ .............. .... .............. ......... ........ ... .......... ....... . ..... ..... . ... . ........ . . ... . . ... . . . . ... . . . . . . . . . . . .... ... ........... ... ........ ... ....... . ... . . . . ... . . . . . . . . . . ....... .... ..... ........ ..... ... ... ... . ... . . . . . . . . . . . . . . . . . ... ..... ... ............ ... .......... ... . . . . . . . . . . . . . . . . . ....... ..... ..... . ... ... ... ... ........... . . . . . . . . . . . . . . . . ....... ..... .... ..... .. ..... ... ...... .......... . . . . . . . . . . . . . ............. .... ..... ... .... ... .............. . . . . . . . . . . . . . . . .............. ........... . . .......... .
•
6
8
•
9 ... ..... ... .....
•
......... ... ...
......... ... ...
8 ..........2............. •...... . ... ..
′
G :
... ... .. .. ... .... ... .. ... .... ... ... ... ... ... . ... . . ... ... ... ... ... ... ... ... ... ... ... ... ... . . ... ... ... .. . . ... . ... ... ........... .... . . ... . . . ...... ..... 1 ... ... . . . ... .. .... ............... ... . . ... . ... .. . . ... . . . . . . . . ... ... .. ..... .... ... ... .. ... .... 1 ..... . . . ... . . . .............. ... .... .. ... . . . ... .. ... .... . . . ... . ... .... . ... .... ... .... . ... ... ... ... . . ........ . . . .. ..... ..... ..................................................................................... ... 3 ... ... ... ............ ... ... ... ... ... ... ... . . ... .. ... ... ... ... ... ... ... ... . . ... . ... ..... ... ... ...... . . . . . . . . ... .... ..... 2 ... ..............
4
1
•
3
.... .... ..............
•
9
.... ........... ........ ........ ..... ..... .... .... 3 ..... ..............
•
.. ...... ......
• 7 ..........1.............
5
•
2 •
•
... .....
... ..... .... ....
1
•
... ..... ... ............ ........ ........
6
•
•
... .....
• 6 ...........3.............
•
•
3
•
... ..... .... ........... ........ ........
2 ..........2............. •............
....... ........ ........ ........ ........ ........ ........ ........ .................... .............. .... .... 3 .. . ................ .. . ..... ... ..... ..... . . . . . . ... . . . . ..... ... .... . .... . . .. . ..... . . ... . . ..... . . . . . . . . .. ..... ..... ..... .... ......... ..... .. .... ... ..... ... ..... ..... ........... . ... ..... .... ......... ........ ........ . ........ ........ ......... ....... . . . . .. .. . . .. .. . . .. .. . . .. .. . . . . .... ........ ........ ........ . ........ ........ ......... ........ ................. ............ . . . . . . . .. .. . ... ..... 2 ... .. . .. ............... .. .. . ....... . .. ... ..... ...... . . . . . . . . . . . . . . . . . . . ..... .... ..... . ..... .... .... . .............. ..... .. ... ... . ..... ........ ... ..... ..... ....... . ... ....................... . .... . . ... ................. .... ....... . . ... ..... .... ......... ........ ........ . ........ ........ ......... ....... . . . . . .. .. . . .. .. . .. . .. . .. .. . . . ........ ........ .. ........ ........ ......... ........ ....... ........ . . . . . . . . . . . . . . .... ..... .... . . .. .. ..... .... 1 .... ... ... .. . .. . . . . . ............ ....... . . . . . .... ......... ...... .......... ... . ... ..... ........ .......... ..... . ..... ..... . .............. .................... . . . . ... ...... ........ . . .... ..... ........ ......... .... . ......... ................................... . .... . ......................................... . . .... . . . . . . . . . . . ... ... ..... ... ........ ........ ........ ........ ........ ........ ........ ... .....
•
•
9
•
5
• 4
•
•
•
8
•
•
•
7 •
Samozˇrejmˇe, pˇri praktick´em pouˇzit´ı metody je tˇreba nejdˇr´ıve nakreslit graf G s pokud moˇzno mal´ ym poˇctem pr˚ useˇc´ık˚ u hran a pak teprve konstruovat G′ . Pak lze graf K3,3 (dokonce i K6 nebo K4,4 ) rozloˇzit jen na dvˇe vrstvy.
7.3
Hranov´ e barven´ı a rozklady graf˚ u
Hranov´e obarven´ı grafu lze do jist´e m´ıry povaˇzovat za hranovou analogii n´am jiˇz zn´am´eho pojmu uzlov´eho obarven´ı. Definice 7.3. Hranov´e obarven´ı grafu G je zobrazen´ı H(G) do N. Dobr´e hranov´e obarven´ı grafu G je takov´e hranov´e obarven´ı grafu G, pˇri nˇemˇz ˇz´adn´e dvˇe hrany t´eˇze barvy nemaj´ı spoleˇcn´ y uzel. Graf G je hranovˇe k-obarviteln´ y, jestliˇze existuje jeho hranov´e obarven´ı k barvami. Chromatick´ y index χ′ (G) grafu G je nejmenˇs´ı ˇc´ıslo k, pro nˇeˇz je graf G hranovˇe k-obarviteln´ y. Pozn´ amka. Nˇekdy se m´ısto “dobr´e hranov´e obarven´ı” pouˇz´ıv´a term´ın “pˇr´ıpustn´e hranov´e obarven´ı” (angl. “proper edge coloring”). Pˇ r´ıklad. Z Brooksovy vˇety v´ıme, ˇze chromatick´e ˇc´ıslo grafu G je (aˇz na dvˇe v´ yjimky) shora omezeno maxim´aln´ım stupnˇem ∆(G). Naproti tomu, graf G = Kn,n m´a ∆(G) = n, ale χ(G) = 2 – pro uzlov´e obarven´ı tedy neexistuje doln´ı mez, kter´a by byla funkc´ı ∆(G). N´asleduj´ıc´ı vˇeta ukazuje, ˇze u hranov´eho obarven´ı je situace odliˇsn´ a. Vˇ eta 7.8.
(Vizing) Pro kaˇzd´ y graf G plat´ı ∆(G) ≤ χ′ (G) ≤ ∆(G) + 1.
48
2
D˚ ukaz. Prvn´ı nerovnost je zˇrejm´ a, druhou nebudeme dokazovat. Pˇ r´ıklad. Urˇcete ˇc´ıslo χ′ (K8 ). Podle Vizingovy vˇety je χ′ (K8 ) ≥ ∆(K8 ) = 7. Uk´aˇzeme, ˇze dobr´e obarven´ı 7 barvami existuje.
Metoda prvn´ı – geometrick´ a. Oˇc´ıslujeme uzly grafu G ˇc´ısly 1, . . . , 8, nakresl´ıme uzel 8 “dovnitˇr” a spoj´ıme dle obr´azku (lev´a ˇc´ ast). Vznikl´ y obr´azek sedmkr´at rotujeme, pˇriˇcemˇz pˇri kaˇzd´e rotaci d´ame hran´am dalˇs´ı barvu. Sjednocen´ım vytvoˇren´e mnoˇziny hran dostaneme graf K8 , hranovˇe obarven´ y 7 barvami. Povˇsimnˇeme si toho, ˇze kaˇzd´a monochromatick´a tˇr´ıda hran tvoˇr´ı ve vznikl´em grafu p´arov´an´ı (v tomto pˇr´ıpadˇe perfektn´ı). 1 •......
1 •
. .... .
7 •........................................................................................•.. 2
0=7 •
•8 6 •......................................................................................................•.. 3
6•
.... ... .. ... ..
5 •.............................................•.. 4
•2 •∞
5•
•3 •4
Metoda druh´ a – algebraick´ a. Pracujeme v aritmetice modulo 7. Uzly oˇc´ıslujeme podle obr´azku (prav´a ˇc´ast). Chromatick´e tˇr´ıdy jsou tvoˇreny n´asleduj´ıc´ımi mnoˇzinami hran. tˇr´ıda hrany 1 {1, ∞} {2, 0} {3, 6} {4, 5} 2 {2, ∞} {3, 1} {4, 0} {5, 6} 3 {3, ∞} {4, 2} {5, 1} {6, 0} 4 {4, ∞} {5, 3} {6, 2} {0, 1} 5 {5, ∞} {6, 4} {0, 3} {1, 2} 6 {6, ∞} {0, 5} {1, 4} {2, 3} 7 {0, ∞} {1, 6} {2, 5} {3, 4} Povˇsimnˇeme si toho, ˇze pˇri t´eto konstrukci dalˇs´ı chromatick´e tˇr´ıdy dostaneme z prvn´ı postupn´ ym pˇriˇc´ıt´an´ım jedn´e. Definujeme-li v pˇredchoz´ım pˇr´ıkladu d´elku hrany {i, j} pˇredpisem min{i − j, j − i} (mod 7), pak v kaˇzd´e chromatick´e tˇr´ıdˇe jsou hrany vˇsech r˚ uzn´ ych d´elek 1, 2, 3, ∞. Toto pozorov´an´ı umoˇzn ˇuje naˇsi konstrukci zobecnit: barv´ıme hrany grafu K2n , pracujeme v aritmetice modulo 2n − 1, d´elka hrany je ˇc´ıslo min{i − j, j − i} (mod 2n − 1), d´elky hran v kaˇzd´e chromatick´e tˇr´ıdˇe jsou 1, 2, . . . , n, ∞, a vˇse funguje obdobnˇe. T´ım je dok´az´ ana ˇc´ ast n´asledujıc´ıho tvrzen´ı. Vˇ eta 7.9.
Pro n ≥ 2 plat´ı χ′ (K2n−1 ) = χ′ (K2n ) = 2n − 1.
D˚ ukaz. a) Pro K2n je vˇeta uˇz dok´az´ ana v pˇredchoz´ım pˇr´ıkladu (naˇsli jsme obarven´ı 2n − 1 barvami a l´epe to podle Vizingovy vˇety nejde). b) Podle Vizingovy vˇety je χ′ (K2n−1 ) ≤ 2n − 1 (pˇr´ısluˇsn´e obarven´ı dostaneme ihned napˇr. tak, ˇze z K2n s obarven´ım z pˇredchoz´ıho pˇr´ıkladu vynech´ame jeden uzel). Zb´ yv´a dok´azat, ˇze K2n−1 nelze obarvit ∆(G) = 2n − 2 barvami. Necht’ naopak takov´e obarven´ı existuje. Pak je mnoˇzina H(K2n ) rozloˇzena na 2n − 2 monochromatick´ ych tˇr´ıd, a v kaˇzd´e z nich je nejv´ yˇse n − 1 hran. Ale poˇcet hran grafu K2n−1 je ( ) (2n−1)(2n−2) |H(K2n−1 )| = 2n−1 = = (2n − 1)(n − 1) > (2n − 2)(n − 1), coˇz je spor. 2 2 2 Jak jsme jiˇz poznamenali, je-li graf K2n obarven 2n − 1 barvami, pak kaˇzd´a monochromatick´a tˇr´ıda hran je 1-faktorem (perfektn´ım p´arov´ an´ım). Dost´av´ame tak rozklad grafu K2n na 2n − 1 1-faktor˚ u. Tuto konstrukci rozkladu grafu K2n na izomorfn´ı grafy lze d´ale zobecnit.
49
Pˇ r´ıklad. Graf K8 lze rozloˇzit na 7 kopi´ı grafu P4 . Rozklad dostaneme analogick´ ym postupem z jedn´e ˇ ısla kopie P4 s ohodnocen´ım dle obr´azku postupn´ ym pˇriˇc´ıt´an´ım jedn´e (ovˇsemˇze v aritmetice modulo 7). C´ v krouˇzc´ıch znamenaj´ı d´elky hran. .......... .......... .......... .......... . . . . .....∞.... ..... 3 .... ..... 2 .... ..... 1 .... .......... .......... .......... .......... ...............................................................................................................................................
• 3
• 0
• 2
• 1
• ∞
Z tohoto pˇr´ıkladu je ihned vidˇet myˇslenka d˚ ukazu n´asleduj´ıc´ıho tvrzen´ı (zde symbolem ℓ(h) znaˇc´ıme d´elku hrany h). Vˇ eta 7.10. Bud’ G graf o n hran´ach. Existuje-li ohodnocen´ı uzl˚ u grafu G ˇc´ısly 0, 1, . . . , n − 1, ∞ takov´e, ˇze (i) pro kaˇzd´e dvˇe hrany h1 , h2 ∈ H(G) je ℓ(h1 ) ̸= ℓ(h2 ), (ii) {ℓ(h1 ), . . . , ℓ(hn )} = {1, . . . , n − 1, ∞}, pak existuje rozklad grafu K2n na 2n − 1 kopi´ı grafu G. Pozn´ amka. Uzlov´e ohodnocen´ı s vlastnostmi z vˇety 7.10 se naz´ yv´a “graceful labelling” (ˇcesky snad “p˚ uvabn´e ohodnocen´ı”). Jedna ze zn´am´ ych a dosud otevˇren´ ych hypot´ez ˇr´ık´a, ˇze kaˇzd´ y strom m´a p˚ uvabn´e ohodnocen´ı. Uvedeme si jeˇstˇe jeden pˇr´ıklad podobn´e obecn´e konstrukce rozkladu grafu. ˇ sen´ı je na Pˇ r´ıklad. M´ ame graf osmistˇenu a pokouˇs´ıme se o jeho rozloˇzen´ı na dva faktory 2. stupnˇe. Reˇ n´asleduj´ıc´ım obr´azku (ˇc´ısla 1 a 2 u hran n´am ud´avaj´ı, ve kter´em faktoru se hrana nal´ez´a). ... • ........ .... ...... ....... ........ . . . .. . ... ... ..... .... ... .... ... ... ... ... ... .. .. .... .. ... . . ... ... 1 1 ..... ..... . . ... ... ... . . . . .. ... . . 2 ...... ....... .. ... ... 2 .......................................• 2...... .......• ........ . .... ..... ... ........ ..... . . ... ..... ... .. ... .. ... ..... ... ... ........ ... . . . . . . .. 1 ..... .... 2 1 .......... ...... ... ...... 2 ..... ... ...... ... ..... ..... ... ........ ........... .....• . .. ... 1......................... .........................2 ................. ........... . . . . . . . . . . . . . . . . .......... ............. ........ ............... .......... ...... . . ... ...... .. .... •..........................................................................................................................................•
1
´ eˇsnˇe jsme tedy graf 4. stupnˇe rozloˇzili na dva podgrafy 2. stupnˇe. Jde to vˇzdy? Odpovˇed’ n´am d´a Uspˇ n´asleduj´ıc´ı vˇeta. Vˇ eta 7.11. faktory.
Kaˇzd´ y pravideln´ y graf 4. stupnˇe se d´a rozloˇzit na dva kvadratick´e (= pravideln´e 2. stupnˇe)
D˚ ukaz. G je eulerovsk´ y; sestroj´ıme tedy eulerovsk´ y tah a jeho hrany oˇc´ıslujeme stˇr´ıdavˇe 1 a 2. Toto oˇc´ıslov´an´ı ud´av´ a pˇr´ısluˇsnost hran k faktor˚ um. 2 Pˇ r´ıklad. Na z´avˇer odstavce si uk´aˇzeme, jak lze rozklad grafu pouˇz´ıt na ˇreˇsen´ı jednoho klasick´eho hlavolamu. ´ M´ame 4 kostky se stˇenami, obarven´ ymi ˇctyˇrmi barvami (ˇzlutou, modrou, ˇcervenou a zelenou). Ukolem je sestavit kostky do sloupeˇcku tak, aby na ˇz´adn´e stranˇe nebyly dvˇe stˇeny stejn´e barvy. Po sestaven´ı bude kaˇzd´ a barva jednou na kaˇzd´e stˇenˇe vzniknuvˇs´ıho hranolu. Pro kaˇzdou kostku nakresl´ıme graf, v nˇemˇz barvy (uzly) jsou spojeny hranou pr´avˇe tehdy, jsou-li na protilehl´ ych stˇen´ach.
50
.......... ..... .... ..........
.......... ..... .... ..........
1
2
............ .... ... ..........
ˇzl •
•m
•m
................................................ ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ..
•z
........... .... ... ...........
3
ˇzl •
... ... .. ... ... ... ... ... .............................................
ˇc •
........... .... ... ...........
ˇc •
ˇzl •.......
•...... m
ˇzl •....................................................•.... m
.... ... .. ... ... ... ..
... ... .. ... ... ............... .... ... ..........
•z
4
... .... ..... ..... ..... . . . . ..... ..... ..... ...............................................
•z •z ˇc • ˇc • Tyto grafy poskl´ad´ ame do jedin´eho grafu s t´ım, ˇze ohodnot´ıme hrany ˇc´ısly podle toho, z kter´eho grafu byly pouˇzity. ........ ...... ......... ... ... . ..... ... ... ...... ....... ............................................................................................................................................... . .. ... ..... .......... ......................... ........... .......... ......................................................................... ............. .... .... ... ... .... ... ... .... ... ... . . . ... ... .... ... ... .... ..... ... ... ... ... ... ..... ... .... ..... ... ... ... ..... . .. .. .. . . ..... ..... . .. .... ..... .... . . ... ... . . . . .... ... ... ... .... .... ..... ... ... ... ..... .... ... ... .. ..... .. ... ... ... .. .. ..... . . . . .. . . . . . . ... ... . . ... .. . . . . . .... ... . .. .... . . ... . . . ... . . ... .. .. ... . . . .... ... . . . . ... .. .. ..... ... ... ... ... ... ..... ... ... ... .. .. ..... ..... ... ... ... ... ... ..... . ... .. .. . . ... ... .. ... ... ... ... ... ......... ... ... ... ... ... ....... ... ... ... ... ... ....... ... .. .. ............. ......... . . . . . . ........................................................................................................................................................ . . . . . ................ .... . . . . . . . . . . . . . .... . . ... ..................... . ................................................. ... . ... .. ...... ....... ..........
1 • ˇzl
2
•m
4
2
3
ˇc• 3
3
4
1
1 2
•z
4
´ Ukolem je nal´ezt dva hranovˇe disjunktn´ı podgrafy, kter´e jsou pravideln´e 2. stupnˇe a maj´ı hrany vˇsech ˇctyˇr p˚ uvodn´ıch graf˚ u. Tyto podgrafy ukazuje n´asleduj´ıc´ı obr´azek. 2 ... m ......• ˇzl •.......................... ˇzl •......................................................................................................•........ m ......... ........... ........ .... ... . . . . . . . . . . . .... . ..................4 ... ... ..................... . ... .. 2
.... ... ... ... .. ... .. ... . ... ... .... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ......................................................................................................
ˇc •
3
1
•z
... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... .... ... ... ... ... ... . . ... .. ... . .. ... . .. ... . ... .. . ... .. . ..... . . . . . . ...... .... . . ........ . . . . .... .......... ......................................................
3
ˇc •
1
•z
4
Z tˇechto graf˚ u jiˇz sestav´ıme ˇreˇsen´ı u ´lohy.
8
Modely v´ ypoˇ ctu
V t´eto a n´asleduj´ıc´ı kapitole vyuˇzijeme dosud poznan´e pojmy a poznatky z teorie graf˚ u jako apar´at, na nˇemˇz vybudujeme z´aklady teorie v´ ypoˇcetn´ı sloˇzitosti. Zejm´ena d´ame pˇresn´ y obsah pojmu NP-´ uplnosti (kter´ y jsme dosud ch´ apali sp´ıˇse intuitivnˇe), a z´avˇerem i NP-´ uplnost nˇekter´ ych z´akladn´ıch probl´em˚ u dok´aˇzeme. Chceme-li precizovat pojmy jako “ˇcasov´a n´aroˇcnost v´ ypoˇctu”, “polynomi´aln´ı probl´em”, “efektivn´ı algoritmy” a podobnˇe, mus´ıme nejprve naj´ıt vhodn´ y abstraktn´ı model pro samotn´ y v´ ypoˇcet, popsan´ y algoritmem. Je mnoho moˇzn´ ych definic algoritmu (napˇr. Turing˚ uv poˇc´ıtaˇc, rekurzivn´ı funkce, program v nˇekter´em programovac´ım jazyku apod.). Tzv. “Churchova teze” ˇr´ık´a, ˇze kaˇzd´a u ´loha, algoritmizovateln´a podle nˇekter´e definice, je algoritmizovateln´a i podle vˇsech ostatn´ıch definic.
8.1
Poˇ c´ıtaˇ c s libovoln´ ym pˇ r´ıstupem
My budeme pouˇz´ıvat jako model v´ ypoˇctu tzv. poˇc´ıtaˇc s libovoln´ym pˇr´ıstupem, jehoˇz model je zobrazen na n´asleduj´ıc´ım obr´azku. Jeho popis je sice komplikovanˇejˇs´ı neˇz napˇr. u Turingova poˇc´ıtaˇce, ale tato nev´ yhoda je kompenzov´ ana mnohem snazˇs´ı prac´ı s modelem (kter´ y je bliˇzˇs´ı re´aln´emu poˇc´ıtaˇci). V anglick´e literatuˇre b´ yv´a tento model oznaˇcov´ an zkratkou RAM (“Random Access Machine”).
51
vstupn´ı jednotka
.................. ... ... ... ... ... ... ... ... ... ................
vstupn´ı p´ aska ... ... ... .
... ... ... .
pole
... ... ... .
... ... ... .
.. ......... .......... .. vstupn´ ı .... .. ... .... hlava .. ..
... ... ... .
... ... ... .
... ... ... .
... ... ... .
... ... ... .
... ... ... .
...
Programov´ a jednotka ı registr 0 ..............pracovn´ ................................................................................
Program
v´ ystupn´ı jednotka
.................. ... ... ... ... ... ... ... ... ... ................
Aritmetick´ a
y registr 1 ..............indexov´ ................................................................................
jednotka
et’ov´ a buˇ nka 2 .............pamˇ .................................................................................
Programov´ y
...............................................................
registr
...............................................................
et’ov´ a buˇ nka 3 .............pamˇ .................................................................................
... ... .. .
... ... .. .
...............................................................
4 .................................................................................................
............................................. ...............................................................
5 ..............................................................................................
...............................................................
..............................................................................................
. . .
. . .
... ... ... ... ... ... ... ... ... ... ... ........ ......... ...
v´ ystupn´ı hlava
pole
... ... .. .
... ... .. .
... ... .. .
... ... .. .
... ... .. .
... ... .. .
... ... .. .
... ... .. .
...
v´ ystupn´ı p´ aska
V pol´ıch vstupn´ı i v´ ystupn´ı p´asky jsou cel´a ˇc´ısla libovolnˇe velk´a. Pamˇet’ov´ ych bunˇek je neomezen´ y poˇcet a lze do nich vkl´adat neomezenˇe velk´a ˇc´ısla. ˇ ısla pˇred registry a pamˇet’ov´ C´ ymi buˇ nkami ud´avaj´ı adresu. Nad´ale pojem “poˇc´ıtaˇc” nebo “stroj” znamen´a vˇzdy tento abstraktn´ı model. Pˇrehlednˇe uvedeme definice z´ akladn´ıch pojm˚ u, t´ ykaj´ıc´ıch se poˇc´ıtaˇce s libovoln´ ym pˇr´ıstupem. Konfigurace poˇc´ıtaˇce: pˇriˇrazen´ı, kter´e kaˇzd´emu – poli vstupn´ı p´asky – poli v´ ystupn´ı p´asky ’ – pamˇet ov´e buˇ nce – programov´emu registru pˇriˇrazuje cel´e ˇc´ıslo (= popis okamˇzit´eho stavu poˇc´ıtaˇce). Poˇc´ ateˇcn´ı konfigurace: existuje n takov´e, ˇze – pole vstupn´ı p´asky s adresami n, n + 1, . . . ystupn´ı p´asky – vˇsechna pole v´ – vˇsechny pamˇet’ov´e buˇ nky obsahuj´ı nuly a programov´ y registr m´a hodnotu 1. 8 8 Tedy
na pol´ıch vstupn´ı p´ asky s adresami 0, . . . , n − 1 jsou vstupn´ı data.
52
V´ypoˇcet poˇc´ıtaˇce: posloupnost konfigurac´ı C0 , C1 , . . . takov´a, ˇze C0 je poˇc´ateˇcn´ı konfigurace, a krok je d´an nˇekter´ ym z pˇr´ıkaz˚ u (viz d´ale). Program poˇc´ıtaˇce: koneˇcn´ a posloupnost p1 , . . . , pn pˇr´ıkaz˚ u. Pˇr´ıkazy: – pˇresuny v pamˇeti – LOAD operand do pracovn´ıho registru uloˇz´ı hodnotu operandu (ostatn´ı nezmˇenˇeno) – STORE operand do pamˇet’. buˇ nky s adresou rovnou adrese operandu uloˇz´ı obsah prac. registru – aritmetick´e pˇr´ıkazy – ADD operand k obsahu pracovn´ıho registru se pˇriˇcte hodnota operandu – SUBTRACT operand od obsahu prac. registru se odeˇcte hodnota operandu obsah pracovn´ıho registru se n´asob´ı hodnotou operandu – MULTIPLY operand – DIVIDE operand obsah prac. registru se dˇel´ı hodnotou operandu – vstupy, v´ystupy – READ do prac. registru d´a obsah aktu´aln´ıho pole vstupn´ı p´asky a posune hlavu o 1 vpravo – WRITE obsah prac. registru uloˇz´ı do aktu´aln´ıho pole v´ ystupn´ı p´asky a posune hlavu o 1 vpravo – skoky – JUMP n´ avˇeˇst´ı uloˇz´ı n´avˇeˇst´ı do programov´eho registru – JZERO n´ avˇeˇst´ı provede pˇr´ıkaz JUMP, pokud je obsah pracovn´ıho registru roven nule – JGE n´ avˇeˇst´ı provede pˇr´ıkaz JUMP, pokud obsah prac. registru je ≥ 0 N´avˇeˇst´ım rozum´ıme ˇc´ıslo instrukce ˇci pˇr´ıkazu programu, tj. pˇrirozen´e ˇc´ıslo. – zastaven´ı – STOP ukonˇc´ı v´ ypoˇcet – ACCEPT ukonˇc´ı v´ ypoˇcet, u rozhodovac´ıch u ´loh m´a pravdivostn´ı hodnotu 1 – REJECT tot´eˇz jako ACCEPT, ale d´av´a hodnotu 0 Zp˚ usoby zad´ an´ı operandu: – j (j je pˇrirozen´e ˇc´ıslo nebo nula) - adresa operandu je j, hodnota operandu je obsah buˇ nky s adresou j. – ∗j (j je cel´e ˇc´ıslo) - adresa operandu je i + j, kde i je obsah indexov´eho registru, hodnota je obsah buˇ nky s adresou i + j. – = j (j je cel´e ˇc´ıslo) - hodnota je j, adresa nen´ı definov´ana. Adresovac´ı chyba: nastane, kdyˇz se u operandu ∗j objev´ı okamˇzit´a hodnota i + j z´aporn´a. V´ ypoˇcet se v takov´emto pˇr´ıpadˇe zastav´ı.
8.2
ˇ Casov´ a a pamˇ et’ov´ a n´ aroˇ cnost v´ ypoˇ ctu
ˇ Definice 8.1. Rekneme, ˇze v´ ypoˇcet poˇc´ıtaˇce trval dobu t, jestliˇze – v t-t´em kroku doˇslo k: – proveden´ı pˇr´ıkazu zastaven´ı, nebo – adresovac´ı chybˇe, nebo – dˇelen´ı nulou, – v kroc´ıch 0, 1, . . . , t − 1 ˇz´ adn´ y z uveden´ ych pˇr´ıpad˚ u nenastal. ˇ Rekneme, ˇze v´ ypoˇcet poˇc´ıtaˇce pracoval s pamˇet´ı velikosti m, jestliˇze – nebyl proveden pˇr´ıkaz s adresou > m, – byl proveden pˇr´ıkaz s adresou = m. Pozn´ amka. To znamen´a, ˇze pouˇz´ıv´ ame tzv. uniformn´ı hodnocen´ı pamˇeti, tj. takov´e, pˇri nˇemˇz se nepˇrihl´ıˇz´ı k obsahu buˇ nek a jeho velikosti.
53
Toto hodnocen´ı je zpravidla lepˇs´ı neˇz logaritmick´e (pˇri nˇemˇz se pˇri odhadu doby, potˇrebn´e pro proveden´ı pˇr´ıkazu, vych´ az´ı z d´elky bin´arn´ıho z´apisu ˇc´ısla, s n´ımˇz se operuje), m´a vˇsak h´aˇcek: fakt, ˇze nepˇrihl´ıˇz´ıme k velikosti obsahu bunˇek, lze vyuˇz´ıt ke “zrychlen´ı” t´ım, ˇze napˇr. ˇr´adek matice uloˇz´ıme jako jedno ˇc´ıslo. Tato “´ uspora” je samozˇrejmˇe jen zd´anliv´a. Aby vˇsak nedoch´azelo k podobn´ ym nepˇresnostem, dohodneme se takto: Omezen´ı 1. Necht’ p je pevnˇe dan´ y polynom. Pˇripouˇst´ıme jen v´ ypoˇcty, pro nˇeˇz v ˇz´adn´e buˇ nce pamˇeti nen´ı ˇc´ıslo v absolutn´ı hodnotˇe vˇetˇs´ı neˇz p(max{n, |c1 |, |c2 |, . . . , |cn |}), kde c1 , . . . , cn jsou vstupn´ı data. Kdyby nastal pˇr´ıpad, ˇze toto omezen´ı je pˇr´ıliˇs siln´e, rozdˇel´ıme velk´a ˇc´ısla do nˇekolika bunˇek a pˇresuny v pamˇeti provedeme posloupnost´ı pˇr´ıkaz˚ u. Jak ale vyˇreˇs´ıme omezen´ı rozsahu pamˇeti? Zˇrejmˇe plat´ı, ˇze poˇcet bunˇek pamˇeti nebude vˇetˇs´ı neˇz poˇcet krok˚ u v´ ypoˇctu. Ale rozsah pamˇeti je d´an nejvˇetˇs´ı adresou, nikoliv poˇctem bunˇek, nen´ı tedy z´aruka, ˇze uveden´a nerovnost bude splnˇena. Plat´ı ale n´asleduj´ıc´ı vˇeta. Vˇ eta 8.1. Necht’ f je funkce a M poˇc´ıtaˇc, kter´ y kaˇzdou vstupn´ı posloupnost d´elky n zpracuje v ˇcase ( ) yˇz f (n). Pak existuje poˇc´ıtaˇc M ′ , kter´ y zpracuje t´ yˇz vstup v ˇcase O (f (n))2 a v pamˇeti O(f (n)) a d´a t´ v´ ystup. D˚ ukaz. (myˇslenka) Poˇc´ıtaˇc M ′ kop´ıruje v´ ypoˇcet poˇc´ıtaˇce M s t´ım rozd´ılem, ˇze kdykoliv M ukl´ad´a ˇc´ıslo c na adresu a, poˇc´ıtaˇc M ′ ukl´ ad´ a do dvojice prvn´ıch voln´ ych pamˇet’ov´ ych bunˇek ˇc´ıslo a a c (technick´e detaily simulace nejsou pro n´as aˇz tak d˚ uleˇzit´e, nebudeme se jimi bl´ıˇze zab´ yvat). Jasn´e je, ˇze: – M ′ pracuje v pamˇeti O(f (n)), nebot’ ukl´ad´a nejv´ yˇse dvojici u ´daj˚ u pro kaˇzd´ y krok poˇc´ıtaˇce M , ( ) u a provede je nejv´ yˇse f (n) kr´at. – M ′ pracuje v ˇcase O (f (n))2 , nebot’ potˇrebuje O(f (n)) krok˚ 2 D˚ usledek 8.1. Jestliˇze existuje poˇc´ıtaˇc, kter´ y kaˇzdou vstupn´ı posloupnost d´elky n zpracuje v polynomi´aln´ım ˇcase, pak existuje poˇc´ıtaˇc, kter´ y kaˇzdou vstupn´ı posloupnost zpracuje v polynomi´aln´ım ˇcase i pamˇeti. Tedy - pˇri definici polynomiality se staˇc´ı omezit na ˇcasovou sloˇzitost.
8.3
Probl´ emy (jazyky) tˇ r´ıdy P
Definice 8.2. Vstupn´ımi daty nebo slovem nazveme koneˇcnou posloupnost nul a jedniˇcek. D´elkou slova rozum´ıme poˇcet ˇclen˚ u posloupnosti vstupn´ıch dat. Jazykem nazveme koneˇcnou (nebo i nekoneˇcnou) mnoˇzinu slov. Definice 8.3. Pˇrij´ımac´ı poˇc´ıtaˇc je poˇc´ıtaˇc, kter´ y m´a n´asleduj´ıc´ı dvˇe vlastnosti: (i) jeho program neobsahuje pˇr´ıkazy WRITE ani STOP, (ii) pro kaˇzd´e slovo w se v´ ypoˇcet zastav´ı po koneˇcn´em poˇctu krok˚ u proveden´ım pˇr´ıkaz˚ u ACCEPT nebo REJECT (aniˇz by doˇslo k adresovac´ı chybˇe nebo dˇelen´ı nulou). ˇ Rekneme, ˇze pˇrij´ımac´ı poˇc´ıtaˇc pˇrij´ım´ a slovo w, pokud se v´ ypoˇcet zastav´ı pˇr´ıkazem ACCEPT , a odm´ıt´a slovo q, pokud v´ ypoˇcet skonˇc´ı pˇr´ıkazem REJECT. Mnoˇzina pˇrij´ıman´ ych slov se naz´ yv´ a jazyk pˇrij´ıman´ y poˇc´ıtaˇcem. Pozn´ amka. Smysl pr´avˇe zaveden´eho pojmu je v tom, ˇze pˇrij´ımac´ı poˇc´ıtaˇc je abstraktn´ım modelem algoritmu, ˇreˇs´ıc´ıho rozhodovac´ı probl´em (napˇr. existence hamiltonovsk´e kruˇznice v dan´em grafu).
54
ˇ Definice 8.4. Necht’ J je jazyk a f : N → N. Casov´ a (pamˇet’ov´a) sloˇzitost jazyka J je nejv´ yˇse f , jestliˇze existuje pˇrij´ımac´ı poˇc´ıtaˇc M , kter´ y pˇrij´ım´a J a kaˇzd´e slovo jazyka J d´elky n zpracuje v ˇcase (pamˇeti) f (n). Definice 8.5. Tˇr´ıda P je tˇr´ıda vˇsech jazyk˚ u J, pro nˇeˇz existuje polynom p takov´ y, ˇze ˇcasov´a sloˇzitost jazyka J je nejv´ yˇse p. Pˇ r´ıklady jazyk˚ u tˇr´ıdy P: posloupnosti vstupn´ıch dat odpov´ıdaj´ıc´ı: – souvisl´ ym graf˚ um, – k-souvisl´ ym graf˚ um ∀k ≥ 1, – acyklick´ ym orientovan´ ym graf˚ um, . . . Pozn´ amka. Jestliˇze pojem pˇrij´ımac´ıho poˇc´ıtaˇce je abstraktn´ım modelem algoritmu, ˇreˇs´ıc´ıho rozhodovac´ı probl´em, pak pojem jazyka je modelem tohoto probl´emu. Zd˚ uraznˇeme zde, ˇze pˇri zkoum´an´ı pˇr´ısluˇsnosti jazyka ( = probl´emu) do nˇekter´e z tˇr´ıd mus´ı j´ıt vˇzdy o rozhodovac´ı probl´em (napˇr. “je dan´ y graf souvisl´ y?”). Optimalizaˇcn´ı probl´emy mus´ıme nejprve na rozhodovac´ı u ´lohu pˇrev´est. Napˇr. m´ısto u ´lohy nalezen´ı minim´aln´ı kostry mus´ıme uvaˇzovat rozhodovac´ı probl´em zda existuje kostra ceny ≤ k pro nˇejak´e pˇredem pevnˇe dan´e k.
9
Teorie NP-´ uplnosti
Zaˇcneme zd´anlivˇe jinde - u logick´ ych formul´ı.
9.1
Logick´ e formule
Pro u ´ˇcely tohoto odstavce vystaˇc´ıme s nejjednoduˇsˇs´ı definic´ı booleovsk´e promˇenn´e a logick´e formule. Logick´ a (booleovsk´ a) promˇenn´ a je promˇenn´a, kter´a nab´ yv´a hodnot 0 (false) a 1 (true). Definice logick´e formule je konstruktivn´ı: (i) konstanty 0 a 1 a kaˇzd´ a logick´ a promˇenn´a jsou logick´ ymi formulemi, (ii) jsou-li f , g logick´e formule, pak je logick´a formule i v´ yraz f¯, f ∧ g, f ∨ g, f ⇒ g, f ⇔ g, f ⊕ g. (Zde symbol f ⊕ g oznaˇcuje tzv. ”vyluˇcovac´ı nebo”, kter´e m´a hodnotu 1 pr´avˇe kdyˇz m´a hodnotu 1 pr´avˇe jeden z argument˚ u f , g.) Definice 9.1. M´a-li formule pro dan´e hodnoty promˇenn´ ych hodnotu 1, ˇr´ık´ame, ˇze je splnˇena. Formule, kter´a je splnˇena pro vˇsechny hodnoty promˇenn´ ych, se naz´ yv´a tautologie. ˇ Rekneme, ˇze formule f promˇenn´ ych x1 , x2 , . . . , xn je splniteln´a, jestliˇze existuj´ı hodnoty x1 , x2 , . . . , xn , pro kter´e je f splnˇena. Pˇ r´ıklad. Uvaˇzujme logickou formuli f (x, y, z) = (x ⇒ y¯) ∧ (¯ x ⇒ z). Zjist´ıme, pro kter´e hodnoty promˇenn´ ych je formule f splnˇena. x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
x ¯ 1 1 1 1 0 0 0 0
y¯ 1 1 0 0 1 1 0 0
x ⇒ y¯ 1 1 1 1 1 1 0 0
x ¯⇒z 0 1 0 1 1 1 1 1
f 0 1 0 1 1 1 0 0 55
Naˇse formule je tedy splniteln´a a je splnˇena pro vektory promˇenn´ ych [0, 0, 1], [0, 1, 1, ], [1, 0, 0, ] a [1, 0, 1]. Pˇ r´ıklad. Formule f (x, y, z) = (x ⇒ (y ∨ z)) ∧ (y ⊕ z) nab´ yv´a hodnoty 0 pro vˇsechny vektory [x, y, z] (ovˇeˇrte tabulkou) a tedy nen´ı splniteln´a. Definice 9.2. Promˇenn´e a jejich negace se naz´ yvaj´ı liter´aly. Liter´aly a disjunkce dvou ˇci v´ıce liter´al˚ u se naz´ yvaj´ı (disjunktivn´ı) klauzule. Je-li formule disjunktivn´ı klauzul´ı nebo konjunkc´ı dvou ˇci v´ıce disjunktivn´ıch klauzul´ı, ˇr´ık´ame, ˇze formule je v konjunktivn´ı norm´aln´ı formˇe (tvaru). Je-li formule v konjunktivn´ı norm´aln´ı formˇe a kaˇzd´a klauzule obsahuje liter´aly vˇsech promˇenn´ ych, ˇr´ık´ame, ˇze formule je v u ´pln´e konjunktivn´ı norm´aln´ı formˇe (tvaru). Pozn´ amka. N´ azev “konjunktivn´ı norm´aln´ı forma”, resp. “´ upln´a konjunktivn´ı norm´aln´ı forma” budeme ´ v n´asleduj´ıc´ım zkracovat KNF, resp. UKNF. Pˇ r´ıklad. Formule f (x, y, z) = (x ⇒ y¯) ∧ (¯ x ⇒ z) nen´ı v konjunktivn´ı norm´aln´ı formˇe (KNF). V´ıme ale (viz pˇr´ıklad za definic´ı 9.1), kdy je tato formule splnˇena a kdy ne. Vezmeme ty hodnoty promˇenn´ ych, kdy formule splnˇena nen´ı a sloˇz´ıme formuli (x ∨ y ∨ z) ∧ (x ∨ y¯ ∨ z) ∧ (¯ x ∨ y¯ ∨ z) ∧ (¯ x ∨ y¯ ∨ z¯), ´ kter´a je v UKNF. Posledn´ı dva ˇcleny lze zapsat ve tvaru x ¯ ∨ y¯, podobnˇe i prvn´ı dva ˇcleny slouˇc´ıme do tvaru x ∨ z. Formule ´ pak z´ısk´a n´asleduj´ıc´ı podobu: f (x, y, z) = (x ∨ z) ∧ (¯ x ∨ y¯). Formule je v KNF, ale jiˇz ne v UKNF. ´ Pozn´ amka. Lze dok´azat, ˇze pro danou formuli existuje vˇzdy jen jedin´a UKNF (je tedy urˇcena jednoznaˇcnˇe). Pro KNF toto obecnˇe neplat´ı – t´eˇze formuli m˚ uˇze odpov´ıdat nˇekolik r˚ uzn´ ych KNF. Napˇr. formuli z pˇredchoz´ıho pˇr´ıkladu lze zapsat rovnˇeˇz ve tvaru f (x, y, z) = (x ∨ y ∨ z) ∧ (x ∨ y¯ ∨ z) ∧ (¯ x ∨ y¯), coˇz je tak´e KNF (nikoliv vˇsak u ´pln´ a). Analogicky lze definovat disjunktivn´ı norm´aln´ı formu (DNF): Definice 9.3. Liter´ aly a konjunkce dvou ˇci v´ıce liter´al˚ u se naz´ yvaj´ı (konjunktivn´ı) klauzule. Je-li formule konjunktivn´ı klauzul´ı nebo disjunkc´ı dvou ˇci v´ıce konjunktivn´ıch klauzul´ı, ˇr´ık´ame, ˇze formule je v disjunktivn´ım norm´aln´ım tvaru (formˇe). ´ Pozn´ amka. Analogicky m˚ uˇzeme t´eˇz definovat u ´plnou DNF (UDNF), a analogick´e tvrzen´ı plat´ı pro ´ jednoznaˇcnost, resp. nejednoznaˇcnost UDNF, resp. DNF (plyne z principu duality). ´ Pˇ r´ıklad. UDNF formule uveden´e v pˇr´ıkladu za definic´ı 9.1 je f (x, y, z) = (¯ x ∧ y¯ ∧ z) ∨ (¯ x ∧ y ∧ z) ∨ (x ∧ y¯ ∧ z¯) ∨ (x ∧ y¯ ∧ z). Opˇet je moˇzno sluˇcovat dvojice klauzul´ı aˇz do tvaru f (x, y, z) = (¯ x ∧ z) ∨ (x ∧ y¯), coˇz je DNF, ale jiˇz ne u ´pln´ a. Vˇ eta 9.1.
´ ´ Kaˇzdou nekonstantn´ı logickou formuli lze vyj´adˇrit v UDNF i UKNF.
D˚ ukaz. Myˇslenka d˚ ukazu je naznaˇcena v pˇredeˇsl´ ych pˇr´ıkladech, kde je vlastnˇe pops´ana konstrukce tˇechto u ´pln´ ych forem. 2
56
9.2
Probl´ em splnitelnosti logick´ ych formul´ı – SAT
N´asleduj´ıc´ı probl´em, naz´ yvan´ y “probl´em splnitelnosti logick´ ych formul´ı” (anglicky “satisfiability problem” – odtud zkratka “SAT”) bude m´ıt pro n´as z´asadn´ı d˚ uleˇzitost. SAT Vstup: logick´ a formule f (x1 , x2 , . . . , xn ) v promˇenn´ ych x1 , x2 , . . . , xn v KNF (tj. f = c1 ∧ c2 ∧ . . . ∧ cm , kde ci jsou klauzule promˇenn´ ych x1 , x2 , . . . , xn ). ´ Ukol: zjistit, zda je formule f splniteln´ a. Pˇ r´ıklad. Mˇejme logickou formuli f = (x ∨ y ∨ z¯) ∧ (¯ x ∨ y¯) ∧ (¯ x ∨ z) ∧ (x ∨ z¯) ∧ (¯ x ∨ y¯ ∨ z) ∧ (y ∨ z). Podaˇr´ı-li se n´am “uh´adnout” hodnoty x = 1, y = 0, z = 1, pak snadno ovˇeˇr´ıme, ˇze f (1, 0, 1) = 1, a v´ıme, ˇze je splniteln´a. Naproti tomu formule g(x, y, z) = (x ∨ y ∨ z) ∧ (x ∨ z¯) ∧ (x ∨ y¯ ∨ z) ∧ (¯ x ∨ y ∨ z) ∧ (¯ x ∨ y¯) ∧ (¯ x ∨ y ∨ z¯) splniteln´a nen´ı. Tento fakt ale neum´ıme algoritmicky efektivnˇe zjistit, museli bychom prozkoumat 23 moˇznost´ı (vˇsechna moˇzn´ a pˇriˇrazen´ı hodnot promˇenn´ ym x, y, z). I dalˇs´ı u ´lohy, napˇr. k-obarvitelnost, hamiltonovskost, existence kliky velikosti k, maj´ı obdobn´ y charakter. Pokud ˇreˇsen´ı existuje a “n´ahodou” se n´am ho podaˇr´ı uhodnout, pak ovˇeˇren´ı, ˇze to, co jsme uhodli, opravdu splˇ nuje podm´ınky u ´lohy, je moˇzno prov´est v polynomi´aln´ım ˇcase. Pokud vˇsak ˇreˇsen´ı u ´lohy neexistuje, pak tento fakt nejsme schopni algoritmicky efektivnˇe (tj. v polynomi´aln´ım ˇcase) ovˇeˇrit. V odstavci 9.4 si uk´aˇzeme, ˇze tato shoda nen´ı v˚ ubec n´ahodn´a, protoˇze, jak uvid´ıme v odst. 9.7, probl´em SAT je jedn´ım ze z´akladn´ıch NP-´ upln´ ych probl´em˚ u. Nejprve si ale uk´aˇzeme, ˇze omez´ıme-li se na formule, v nichˇz kaˇzd´a klauzule m´a d´elku nejv´ yˇse 2, pak je u ´loha splnitelnosti takov´ ych formul´ı ˇreˇsiteln´a v polynomi´aln´ım ˇcase.
9.3
Probl´ em k-SAT a polynomialita probl´ emu 2-SAT
´ Uloha k-SAT je speci´aln´ım pˇr´ıpadem u ´lohy SAT, v nˇemˇz se omezujeme na formule, u nichˇz kaˇzd´a klauzule m´a d´elku nejv´ yˇse k (kde k je pˇredem dan´e pˇrirozen´e ˇc´ıslo). V tomto odstavci si uk´aˇzeme, ˇze u ´loha 2-SAT je ˇreˇsiteln´a v polynomi´aln´ım ˇcase. Poznamenejme, ˇze v odstavci 9.8 pozn´ame, ˇze jiˇz pro k = 3 je u ´loha 3-SAT NP-´ upln´ a. k-SAT Vstup: logick´ a formule tvaru f (x1 , x2 , . . . , xn ) =
m ∧ i=1
k ∨
aij ,
j=1
kde kaˇzd´e aij je rovno xℓ nebo x ¯ℓ pro vhodn´e ℓ = 1, . . . , n (tj. f je formule v KNF, kter´a m´a m klauzul´ı d´elky k). ´ Ukol: zjistit, zda je formule f splniteln´ a. ´ Pozn´ amka. Ulohu k-SAT jsme zformulovali pro formule s klauzulemi d´elky pr´avˇe k. Je vˇsak snadno vidˇet, ˇze kaˇzdou formuli s klauzulemi d´elky nejv´yˇse k lze ekvivalentnˇe zapsat tak, ˇze m´a klauzule d´elky pr´ avˇe k tak, ˇze v kratˇs´ıch“ klauzul´ıch opakujeme nˇekter´ y liter´al. ”
57
Speci´aln´ım pˇr´ıpadem u ´lohy k-SAT pro k = 2 je n´asleduj´ıc´ı probl´em. 2-SAT Vstup: logick´ a formule f (x1 , . . . , xn ) = (a1 ∨b1 )∧(a2 ∨b2 )∧. . . , ∧(am ∨bm ), kde kaˇzd´e ai , bi (i = 1, . . . m) je rovno xℓ nebo x ¯ℓ pro vhodn´e ℓ = 1, . . . , n (tj. f je formule v KNF s klauzulemi d´elky 2). ´ Ukol: zjistit, zda je formule f splniteln´ a. Vˇ eta 9.2.
2-SAT ∈ P.
D˚ ukaz. D˚ ukaz vˇety spoˇc´ıv´ a v tom, ˇze uk´aˇzeme myˇslenku konstrukce polynomi´an´ıho algoritmu pro u ´lohu 2-SAT. Necht’ f = C1 ∧ C2 ∧, . . . , ∧Cm je formule v promˇenn´ ych x1 , . . . , xn s klauzulemi o 2 liter´alech. ⃗ f n´ ⃗ f ) = {x1 , . . . , xn , x Sestroj´ıme orientovan´ y graf G asleduj´ıc´ı konstrukc´ı: U (G ¯1 , . . . , x ¯n }, a pro kaˇzdou ⃗ f obˇe hrany (¯ klauzuli Ci = (a ∨ b) budou v G a, b) a (¯b, a) (uvˇedomme si, ˇze ¯b = b). Napˇr´ıklad, pro formuli ⃗ f na n´asleduj´ıc´ım obr´azku. f (x1 , x2 , x3 ) = (x1 ∨ x ¯2 ) ∧ (¯ x1 ∨ x ¯2 ) ∧ (¯ x2 ∨ x3 ) je pˇr´ısluˇsn´ y graf G x ¯1 x ¯2 x ¯3 •........................................................................................................................................•........................................................................................•.. ⃗f G
. ...... .. . ...... ..... ...... ...... ...... .......... ......... ..... ........... ...... ...... ...... ...... ...... ...... ...... ...... . . . . . .. . .....................................................................................................................................................................................
• • • x1 x2 x3 Pˇred vlastn´ım d˚ ukazem vˇety 9.2 nejprve dok´aˇzeme nˇekolik pomocn´ ych tvrzen´ı. Lemma 9.1.
⃗ f orientovan´ ⃗ f existuje i orientovan´ Existuje-li v G y sled z a do b, pak v G y sled z ¯b do a ¯.
⃗ f , nebot’ zˇrejmˇe (a, b) ∈ H(G ⃗ f ) pr´avˇe kdyˇz (¯b, a D˚ ukaz lemmatu 9.1 plyne ihned z konstrukce grafu G ¯) ∈ ⃗ H(Gf ). 2 Splˇ nuj´ıc´ı pˇriˇrazen´ı je kaˇzd´ y vektor t ∈ {0, 1}n , pro kter´ y f (t) = 1 (tj. takov´e pˇriˇrazen´ı hodnot promˇenn´ ym x1 , . . . , xn , ˇze pro tyto hodnoty je formule f splnˇena). Je-li a liter´al a t ∈ {0, 1}n pˇriˇrazen´ı hodnot promˇenn´ ym x1 , . . . , xn , pak hodnotu liter´alu a po dosazen´ı vektoru hodnot t budeme znaˇcit a(t). ⃗ f cesta z a do b, pak pro kaˇzd´e splˇ Lemma 9.2. Existuje-li v G nuj´ıc´ı pˇriˇrazen´ı t je a(t) = 1 ⇒ b(t) = 1. ⃗ f , pak v f existuje klauzule (¯ D˚ ukaz. Je-li (a, b) hrana G a ∨ b). Protoˇze t je splˇ nuj´ıc´ı, m´a (po dosazen´ı vektoru t) kaˇzd´ a klauzule hodnotu 1. Tedy i (¯ a(t) ∨ b(t)) = 1. Je-li a(t) = 1, pak a ¯(t) = 0, a tedy nutnˇe b(t) = 1. Zbytek d˚ ukazu plyne snadnou indukc´ı. 2 ⃗ i grafu G ⃗ f a pro kaˇzd´e uzly Lemma 9.3. Je-li t splˇ nuj´ıc´ı pˇriˇrazen´ı, pak pro kaˇzdou kvazikomponentu G ¯ ⃗ a, b ∈ U (Gi ) je a(t) = b(t) (a tedy tak´e a ¯(t) = b(t)). D˚ ukaz lemmatu 9.3 plyne ihned z lemmat 9.1 a 9.2.
2
⃗ f neobsahuje souˇcasnˇe Lemma 9.4. Formule f je splniteln´a pr´avˇe kdyˇz ˇz´adn´a kvazikomponenta grafu G nˇekterou promˇennou i jej´ı negaci. ⃗ f souˇcasnˇe a = xi i D˚ ukaz. a) Necht’ t je splˇ nuj´ıc´ı pˇriˇrazen´ı. Je-li v nˇekter´e kvazikomponentˇe grafu G b=x ¯i , pak podle lemmatu 9.3 mus´ı b´ yt xi (t) = x ¯i (t), coˇz je spor. Podm´ınka vˇety je tedy nutn´a.
58
⃗ f neobsahuje b) Uk´aˇzeme, ˇze podm´ınka vˇety je postaˇcuj´ıc´ı. Necht’ tedy ˇz´adn´a kvazikomponenta grafu G souˇcasnˇe ˇz´adnou promˇennou i jej´ı negaci; sestroj´ıme splˇ nuj´ıc´ı pˇriˇrazen´ı t. ⃗ ⃗ ⃗ ⃗ 1 je vstupn´ı, G ⃗ s je Oznaˇcme G1 , . . . , Gs kvazikomponenty grafu Gf v acyklick´em oˇc´ıslov´an´ı (tj. G v´ ystupn´ı a hrany z Gi do Gj existuj´ı pouze pro i < j). Konstrukce pˇriˇrazen´ı t. Postupujeme pro j = s, s − 1, . . . , 1, pro kaˇzdou promˇennou xi urˇc´ıme nejvˇetˇs´ı ⃗ j , a poloˇz´ıme index j0 takov´ y, ˇze xi nebo x ¯i je v G 0 ⃗ xi = 1, jestliˇze xi ∈ U (Gj0 ), ⃗ j ). xi = 0, jestliˇze x ¯i ∈ U (G 0 ⃗ j nem˚ Protoˇze v G uˇze b´ yt souˇcasnˇe xi i x ¯i , je toto pˇriˇrazen´ı jednoznaˇcn´e. 0 Zb´ yv´a dok´azat, ˇze t je splˇ nuj´ıc´ı, tj. ˇze kaˇzd´a klauzule m´a hodnotu 1. Pˇredpokl´adejme naopak, ˇze nˇejak´a klauzule C = (a ∨ b) m´a hodnotu 0. Pak a nem´a hodnotu 1, protoˇze v okamˇziku pˇriˇrazen´ı uˇz a ¯ mˇel hodnotu 1 v nˇejak´e kvazikomponentˇe s vyˇsˇs´ım indexem. Oznaˇc´ıme: ⃗ i kvazikomponentu obsahuj´ıc´ı a, G 1 ⃗ i kvazikomponentu obsahuj´ıc´ı b, G 2 ⃗ i kvazikomponentu obsahuj´ıc´ı a G ¯, 3 ¯ ⃗ Gi4 kvazikomponentu obsahuj´ıc´ı b. ⃗ i , a tedy i1 < i3 . Obdobnˇe Pak a nem´a hodnotu 1, protoˇze v okamˇziku pˇriˇrazen´ı uˇz a ¯ mˇel hodnotu 1 v G 3 ⃗ i , odkud i2 < i4 . Ale protoˇze b nem´a hodnotu 1, protoˇze v okamˇziku pˇriˇrazen´ı uˇz ¯b mˇel hodnotu 1 v G 4 ⃗ f ), je i3 ≤ i2 , a obdobnˇe z (¯b, a) ∈ H(G ⃗ f ) plyne i4 ≤ i1 . Celkem tedy i1 < i3 ≤ i2 < i4 ≤ i1 , (¯ a, b) ∈ H(G coˇz je spor. Kaˇzd´ a klauzule m´a tedy hodnotu 1, tj. f je splnˇena. 2 Nyn´ı m˚ uˇzeme dokonˇcit d˚ ukaz vˇety 9.2. Graf Gf m´a |U (Gf )| = 2n uzl˚ u a |H(Gf )| = 2m hran, tj. jeho velikost je polynomi´aln´ı funkc´ı rozmˇeru formule f . Protoˇze kvazikomponenty, kondenzaci i acyklick´e ˇc´ıslov´an´ı lze nal´ezt v polynomi´aln´ım ˇcase, d´av´a lemma 9.4 polynomi´aln´ı algoritmus pro rozhodnut´ı, zda f je splniteln´a. 2 Pˇ r´ıklad. Necht’ f (x1 , x2 , x3 ) = (¯ x1 ∨ x ¯3 ) ∧ (x2 ∨ x ¯3 ) ∧ (¯ x1 ∨ x3 ) ∧ (x2 ∨ x3 ). Graf Gf (viz obr´azek) je acyklick´ y, a pro acyklick´e oˇc´ıslov´ an´ı jeho uzl˚ u dan´e tabulkou: uzel x1 x2 x3 x ¯1 x ¯2 x ¯3 acyklick´e oˇc´ıslov´ an´ı 1 5 4 6 2 3 dostaneme splˇ nuj´ıc´ı pˇriˇrazen´ı t = (0, 1, 1). x ¯2 x ¯1 x ¯3 •........................................................ ........ ... .. ......................................................................................................................................................................................... . . . . . . . . • .............................. ...... ...............• . . . . . . . . . . . . .... ........ .... ⃗f G
........... ............... ..... ........... ........... ......... .......... ........... ................................ .......... ........ ..... ............... . . . . . . . . . . . . . . . . ........... ..... . ...... ............ ........... .... ........... ...... ......................................... ........... .. .. . ...... ........... ..................................................................................................................................................................................... . . . . .. ........ ................ ................................................. . . . . . .. ....... 1 3
• x
• x2
• x
Pˇ r´ıklad. Necht’ f (x1 , x2 , x3 ) = (x1 ∨ x2 ) ∧ (¯ x1 ∨ x2 ) ∧ (¯ x2 ∨ x3 ) ∧ (¯ x2 ∨ x ¯3 ). Graf Gf (viz obr´azek) je silnˇe souvisl´ y, a tedy f nen´ı splniteln´a. x ¯1 ..... x ¯2 x ¯3 •..........................................................................................................•..........................................................................................................................................•... ⃗f G
...... . ...... .. .. . ...... ...... ..... ..... ...... ...... ...... ...... ...... .......... ...... .......... ......... ......... . . . . . . ...... .......... ...... .......... ...... ...... ..... ..... ...... ...... ...... ...... ......... ...... ...... ...... ........... .......... ...... ............... . . . . . . . . . . . . . ...............................................................................................................................................................................................
• x1
• x2
• x3
V n´asleduj´ıc´ım odstavci uvid´ıme, ˇze bez omezen´ı d´elky klauzul´ı je probl´em SAT ekvivalentn´ı s u ´lohou nal´ezt v dan´em neorientovan´em grafu nez´avislou mnoˇzinu pˇredepsan´e velikosti . 59
9.4
Probl´ em existence nez´ avisl´ e mnoˇ ziny uzl˚ u dan´ e velikosti – IND
Probl´emem IND (angl “independent set” - nez´avisl´a mnoˇzina) rozum´ıme n´asleduj´ıc´ı u ´lohu. IND Vstup: neorientovan´ y graf G na n uzlech a pˇrirozen´e ˇc´ıslo k ≤ n. ´ Ukol: zjistit, zda v grafu G existuje nez´avisl´a mnoˇzina uzl˚ u velikosti alespoˇ n k. ´ Pozn´ amka. Uloha IND je ˇcasto zamˇen ˇov´ana s u ´lohou zjiˇstˇen´ı ˇc´ısla nez´avislosti α(G) dan´eho grafu G. Urˇcen´ı hodnoty α(G) (stejnˇe jako kter´ehokoliv jin´eho parametru grafu) je vˇsak optimalizaˇcn´ım, a nikoliv rozhodovac´ım probl´emem, a tedy nem´a smysl hovoˇrit o jeho pˇr´ısluˇsnosti ˇci nepˇr´ısluˇsnosti do tˇr´ıdy P. ´ Ulohu lze vˇsak snadno pˇrev´est na n-n´ asobn´e proveden´ı u ´lohy IND pro r˚ uzn´e hodnoty konstanty k. Odtud ihned plyne, ˇze α(G) lze urˇcit v polynomi´aln´ım ˇcase pr´avˇe kdyˇz pˇr´ısluˇsn´a rozhodovac´ı u ´loha IND patˇr´ı do tˇr´ıdy P, a tedy z hlediska polynomiality ˇci nepolynomiality jsou obˇe u ´lohy ekvivalentn´ı. Pˇ r´ıklad. Je d´an graf G s uzly x1 , x2 , . . . , xn a ˇc´ıslo k. Sestroj´ıme formuli f (u1 , u2 , . . . , un ) takovou, ˇze f je splnˇena pr´avˇe kdyˇz mnoˇzina N = {xi ∈ U (G)|ui = TRUE} je nez´avisl´a mnoˇzina o alespoˇ n k prvc´ıch. Poloˇz´ıme f (u1 , . . . , un ) = f1 (u1 , . . . , un ) ∧ f2 (u1 , . . . , un ), kde ∧ (i) f1 (u1 , . . . , un ) = (¯ ui ∨ u ¯j ), (xi ,xj )∈H(G)
(ii) f2 (u1 , . . . , un ) je formule, kter´a m´a hodnotu TRUE pr´avˇe tehdy, kdyˇz alespoˇ n k z promˇenn´ ych u1 , . . . , un m´ a hodnotu TRUE (na toto existuj´ı standardn´ı konstrukce, kter´e zde nebudeme uv´adˇet). Napˇr´ıklad, pro graf G uveden´ y na obr´azku je formule f1 tvaru f1 = (¯ u1 ∨ u ¯2 ) ∧ (¯ u2 ∨ u ¯3 ) ∧ (¯ u3 ∨ u ¯4 ) ∧ (¯ u4 ∨ u ¯5 ) ∧ (¯ u2 ∨ u ¯4 ). ......... ............ .................. ....... ..... ..... ..... .... .... . . . .... ... . . ... .. ... . . ... ... . . ..................................................................................................................................................
G
• x1
• x2
• x3
• x4
• x5
Je zˇrejm´e, ˇze f1 je splnˇena pr´avˇe tehdy, kdyˇz mnoˇzina N = {xi |ui = 1} je nez´avisl´a. Pozn´ amka. Vˇsimnˇeme si, ˇze d´elka formule f1 je polynomi´aln´ı funkc´ı n, nebot’ poˇcet klauzul´ı je roven poˇctu hran grafu (kter´ y je nejv´ yˇse O(n2 )). Pro formuli f2 plat´ı tot´eˇz. To znamen´a, ˇze jsme naˇsli polynomi´ aln´ı redukci IND na SAT. Z tohoto faktu vypl´ yvaj´ı n´asleduj´ıc´ı d˚ usledky. Zformulujeme si je jiˇz nyn´ı, i kdyˇz ponˇekud nepˇresnˇe – pojmy v nich pouˇzit´e dostanou pˇresn´ y obsah v odstavci 9.6. D˚ usledek 9.1.
´ Uloha SAT je alespoˇ n tak tˇeˇzk´a jako u ´loha IND.
D˚ usledek 9.2. Kdybychom mˇeli polynomi´aln´ı algoritmus na SAT, bylo by moˇzn´e vytvoˇrit polynomi´aln´ı algoritmus i na IND. Pˇ r´ıklad. Necht’ je nyn´ı naopak d´ana logick´a formule v KNF tvaru mi m ∧ ∨ f (u1 , u2 , . . . , un ) = aij , i=1
kde kaˇzd´e aij je tvaru uk nebo u ¯k pro vhodn´e k. 60
j=1
Sestroj´ıme graf G n´ asleduj´ıc´ı konstrukc´ı: U (G) = {xij | i = 1, . . . , m ; j = 1, . . . , mi }, H(G) = {{xij , xpq }| i = p a j ̸= q} ∪ {{xij , xpq }| i ̸= p, j = q a aij = a ¯pq }. Uk´aˇzeme, ˇze v G existuje nez´avisl´ a mnoˇzina velikosti m pr´avˇe kdyˇz f je splniteln´a. a) Je-li f (u1 , . . . , uk ) = 1, pak v kaˇzd´e klauzuli existuje alespoˇ n jeden liter´al, kter´ y je roven jedn´e, a pˇr´ısluˇsn´e uzly v G jsou nez´avisl´e. b) Naopak, je-li M nez´ avisl´ a mnoˇzina velikosti m v G, pak kaˇzd´ y uzel je z jin´e kliky (tj. z jin´e klauzule). V pˇr´ısluˇsn´e klauzuli poloˇz pˇr´ısluˇsn´ y liter´al = 1 (z nez´avislosti M plyne, ˇze nem˚ uˇze nikde doj´ıt ke sporu definov´ an´ım stejn´e promˇenn´e dvˇema zp˚ usoby). Pˇr´ıpadn´e zbyl´e promˇenn´e dodefinujeme libovolnˇe. Pak kaˇzd´ a klauzule = 1 a tedy i f = 1. Nalezli jsme tedy polynomi´ aln´ı redukci SAT na IND. Konstrukci grafu G ilustrujme na formuli f = (u1 ∨ u ¯2 ∨ u3 ) ∧ (¯ u1 ∨ u ¯2 ∨ u ¯3 ) ∧ (u1 ∨ u2 ). Graf G, sestrojen´ y pomoc´ı v´ yˇse uveden´e konstrukce, a pravdivostn´ı tabulka formule f jsou na obr´azku. u1 0 0 0 0 1 1 1 1
..... ..... ..... ..... ..... ..... .... ................................................................................................................................................................................................. .... ... .... ................... ............... . . . . .. . .. . .... ..... .... ..... ... . . ... ... ... ............................................................................................. . . . ... . . . . . . . . . . . . ... ... . ............. ... .. ... .................. . . . . . . ... . .. . ...... . ...... .......... .................. ..... .... ................................................................................................................... ... .. .. ... .. ... .............. ... .. ... . . .. .... ... ... .. ... .... ... ... ... ..... ... .... ... ...... ... ..... .......................................................................................................
•
•
•
•
•
•
•
•
u2 0 0 1 1 0 0 1 1
u3 0 1 0 1 0 1 0 1
c1 1 1 0 1 1 1 1 1
c2 1 1 1 1 1 1 1 0
c3 0 0 1 1 1 1 1 1
f 0 0 0 1 1 1 1 0
Jak snadno provˇeˇr´ıme, nez´avisl´e mnoˇziny velikosti 3 v G odpov´ıdaj´ı vektor˚ um booleovsk´ ych promˇenn´ ych, pro nˇeˇz je f splnˇena (jedna z nez´avisl´ ych mnoˇzin v G je v obr´azku tvoˇrena zakrouˇzkovan´ ymi uzly). Z nalezen´e polynomi´aln´ı redukce SAT na IND ihned vypl´ yvaj´ı n´asleduj´ıc´ı dvˇe skuteˇcnosti. D˚ usledek 9.3.
´ Uloha IND je alespoˇ n tak tˇeˇzk´a jako u ´loha SAT.
D˚ usledek 9.4. Kdybychom mˇeli polynomi´aln´ı algoritmus na IND, bylo by moˇzn´e vytvoˇrit polynomi´aln´ı algoritmus i na SAT. Porovn´an´ım d˚ usledk˚ u 9.2 a 9.4 pak dost´av´ame n´asleduj´ıc´ı pˇrekvapiv´e zjiˇstˇen´ı. D˚ usledek 9.5.
SAT ∈ P
pr´avˇe kdyˇz
IND ∈ P .
Nyn´ı jiˇz asi tuˇs´ıme nˇekter´e hlubˇs´ı souvislosti, ale k jejich formulaci potˇrebujeme precizovat z´akladn´ı pojmy: - co to je polynomi´aln´ı redukce dvou probl´em˚ u, - jak to je s t´ım “lehk´ ym uh´adnut´ım” ˇci “tˇeˇzk´ ym zam´ıtnut´ım”.
61
9.5
Tˇ r´ıda NP
Zaˇcnˇeme nejprve tou druhou ot´azkou. Definice 9.4. Nedeterministick´ y algoritmus se v nˇekter´ ych kroc´ıch m˚ uˇze libovolnˇe rozhodnout pro nˇekter´e z nˇekolika moˇzn´ ych r˚ uzn´ ych pokraˇcov´an´ı. Pˇ r´ıklad. Uvaˇzujme probl´em IND a n´asleduj´ıc´ı algoritmus. Vstup: graf G s uzly u1 , . . . , un a pˇrirozen´e ˇc´ıslo k ≤ n. 1) X := 0 (inicializace) 2) pro i = 1, 2, . . . , n proved’: a) bud’to X := X ∪ {ui }, b) nebo X := X (nedeterministick´y krok) avislosti) 3) Jestliˇze {ui , uj } ∈ H(G) pro nˇekter´e ui , uj ∈ X, pak REJECT (test nez´ 4) Je-li |X| ≥ k pak ACCEPT, jinak REJECT (test |X| ≥ k) V d˚ usledku nedeterministiˇcnosti 2. kroku je 2n moˇzn´ ych r˚ uzn´ ych v´ ypoˇct˚ u. Podstatn´e ale je to, ˇze v G existuje nez´avisl´ a mnoˇzina o alespoˇ n k uzlech pr´avˇe kdyˇz existuje v´ ypoˇcet, konˇc´ıc´ı ACCEPT. Proto definujeme: Definice 9.5. Nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc m´a (nav´ıc oproti dˇr´ıve definovan´emu pˇrij´ımac´ımu poˇc´ıtaˇci) pˇr´ıkaz CHOOSE L1, L2, kde L1, L2 jsou n´avˇeˇst´ı. Smysl pˇr´ıkazu CHOOSE L1, L2 lze ekvivalentnˇe zapsat takto: vyber si JUMP L1 nebo JUMP L2. ˇ Definice 9.6. Rekneme, ˇze slovo w je pˇrij´ım´ano nedeterministick´ ym pˇrij´ımac´ım poˇc´ıtaˇcem M , jestliˇze existuje pˇr´ıpustn´ y v´ ypoˇcet poˇc´ıtaˇce M s poˇc´ateˇcn´ı konfigurac´ı danou slovem w a konˇc´ıc´ı ACCEPT. V opaˇcn´em pˇr´ıpadˇe ˇrekneme, ˇze nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc odm´ıt´a slovo w. ˇ Rekneme, ˇze M pˇrij´ım´ a jazyk J, jestliˇze pro kaˇzd´e slovo w je w ∈ J ⇔ M pˇrij´ım´a w. Jak je to s d´elkou v´ ypoˇctu? - kdyˇz M pˇrij´ım´ a w: pˇri prvn´ım ACCEPT to v´ıme a nemus´ıme d´al poˇc´ıtat, - kdyˇz M odm´ıt´ a w: mus´ıme pokraˇcovat, dokud neukonˇc´ıme vˇsechny pˇr´ıpustn´e v´ ypoˇcty. Proto definujeme: ˇ Definice 9.7. Rekneme, ˇze nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc M zpracuje slovo w v ˇcase nejv´ yˇse t, jestliˇze: - bud’to M pˇrij´ım´ a w, a existuje pˇr´ıpustn´ y v´ ypoˇcet urˇcen´ y slovem w a konˇc´ıc´ı ACCEPT po nejv´ yˇse t kroc´ıch, - nebo M odm´ıt´ a w a kaˇzd´ y pˇr´ıpustn´ y v´ ypoˇcet konˇc´ı po nejv´ yˇse t kroc´ıch. ˇ Definice 9.8. Rekneme, ˇze nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc M pracuje v polynomi´alnˇe omezen´em ˇcase, jestliˇze existuje polynom p takov´ y, ˇze libovoln´e slovo d´elky n zpracuje v ˇcase nejv´ yˇse p(n). Pˇ r´ıklad. Mˇejme nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc M z pˇr´ıkladu pˇred definic´ı 9.5. Kaˇzd´ y pˇr´ıpustn´ y n v´ ypoˇcet probˇehne v polynomi´aln´ım ˇcase, ale moˇzn´ ych pˇr´ıpustn´ ych v´ ypoˇct˚ u je 2 .
62
Pˇ r´ıklad. M definuji takto: - vstup: graf G na n uzlech - n´ahodnˇe vygeneruj faktor grafu G - test souvislosti: ne → REJECT - test kruˇznice (pravideln´ y graf stupnˇe 2): ne → REJECT ano → ACCEPT Kaˇzd´ y v´ ypoˇcet je polynomi´aln´ı; pˇrij´ıman´ a slova jsou hamiltonovsk´e grafy (pˇrij´ıman´ y jazyk). Definice 9.9. Tˇr´ıda NP je tˇr´ıda vˇsech jazyk˚ u J takov´ ych, ˇ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. Pozn´ amka. Jak uˇz jsme poznamenali na konci odstavce 8.3, pojem pˇrij´ımac´ıho poˇc´ıtaˇce je abstraktn´ım modelem algoritmu, ˇreˇs´ıc´ıho rozhodovac´ı probl´em, a pojem jazyka je modelem tohoto ˇreˇsen´eho probl´emu. Z definice 9.9 tedy vypl´ yv´ a, ˇze vˇsechny probl´emy z tˇr´ıdy NP (tj. probl´emy, jejichˇz modelem je jazyk patˇr´ıc´ı do tˇr´ıdy NP) mus´ı b´ yt probl´emy rozhodovac´ı. V pˇr´ıpadˇe optimalizaˇcn´ıho probl´emu je nutno uvaˇzovan´ y probl´em nejprve pˇrev´est na probl´em rozhodovac´ı (tak, jak jsme to napˇr´ıklad uˇcinili pˇri definici probl´emu IND v odstavci 9.4). Pˇ r´ıklad. Uvaˇzujme n´asleduj´ıc´ı u ´lohu. HAM Vstup: neorientovan´ y graf G na n uzlech. ´ Ukol: zjistit, zda v grafu G existuje hamiltonovsk´a kruˇznice. Pak algoritmus z pˇr´ıkladu pˇred definic´ı 9.9 dokazuje, ˇze HAM ∈ NP. Poznamenejme, ˇze podobnˇe algoritmus z pˇr´ıkladu pˇred definic´ı 9.5 dokazuje ˇze IND ∈ NP. Vˇ eta 9.3.
P ⊂ NP
D˚ ukaz. Deterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc je speci´aln´ı pˇr´ıpad nedeterministick´eho.
2
Pozn´ amka. Jak jsme jiˇz poznamenali v kapitole 1, pro probl´emy tˇr´ıdy NP je typick´e, ˇze podaˇr´ı-li se n´am n´ahodou uh´adnout“ ˇreˇsen´ı, pak ovˇeˇren´ı jeho spr´avnosti je moˇzno prov´est v polynomi´aln´ım ” ˇcase. Na u ´rovni abstraktn´ıho poˇc´ıtaˇce jakoˇzto modelu algoritmu je toto uh´adnut´ı“ modelov´ano pojmem ” nedeterminismu. Pro probl´emy (jazyky) z tˇr´ıdy P tedy um´ıme ˇreˇsen´ı v polynomi´aln´ım ˇcase nal´ezt, a pokud jiˇz ˇreˇsen´ı m´ame, um´ıme t´eˇz v polynomi´aln´ım ˇcase verifikovat jeho spr´avnost. U probl´em˚ u tˇr´ıdy NP jiˇz rezignujeme na poˇzadavek polynomi´aln´ıho nalezen´ı ˇreˇsen´ı (to je na u ´rovni abstraktn´ıho poˇc´ıtaˇce modelov´ano nedeterminismem jakoˇzto modelem uh´ adnut´ı“), st´ale vˇsak z˚ ust´av´a v platnosti druh´ y poˇzadavek – kdyˇz ” uˇz jsme ˇreˇseni uh´ adli“ (neterministicky vygenerovali), um´ıme v polynomi´aln´ım ˇcase ovˇeˇrit (verifikovat) ” jeho spr´avnost. Proto se o probl´emech tˇr´ıdy NP tak´e ˇcasto hovoˇr´ı jako o polynomi´ alnˇe verifikovateln´ych probl´emech.
63
Pˇ r´ıklad. Uvaˇzujme posloupnost graf˚ u {Gi }∞ ıˇz prvn´ı tˇri ˇcleny vid´ıme na n´asleduj´ıc´ım obr´azku. i=1 , jej´ •..............................................................................................................................................•........ . .......... .. .. .. ... ........................ ... .. . .. .• G1 ....... ........ .. ... ..... ......... .. .. .... ..... .. .. ... ... .... ..... ..... ..... ... .... ... .. ..... ..... ... ..... .. .. ........ ..... ... ........ ... ... ... .. ... ... ........ ...... .. ..... .. ... .... ........ ..... ..... .... ..... . . . ... ... . ..... ... ... ... . . . ... ... ..... . ... ... ..... ........ ... ... . ... ... .......... ... ... . ... ... ......... ................... ...... .......... .......... ........ ...... ................... .......... .... .........................................................................................
•
•
•
•
•
•
....... ................. ...... .. ... ..... ..... .... .... ........... . . . . . ...... . ...... ...... ... ..... ...... 2 .............. ... ... ...... .. .. ..... ... ..................................................................................................................... . ... ........... . ..... .. . ... ... ....... ..... .... . . . . . . . . ... ...... ... ........ .. ........ .......... ... ... ...... . ... ... . ...... .. ... ... ........... ........... ..... .. ... ........... .. . . . . ... ... ... .. ......... ... .. ..... ........... ..... .... ... ... ........... ...... .. .. .... .. . ... .. ....... ...................................................................................
G •
•
•
•
•
•
•
•
•
•
•
............................................................................. ..... .............. .. ... ... ....... ............. ... ... ... ... .......... ... .... . .. . . 3 ...... .... ................... ................... ...... ....... . . . . . . ... . . . . . . . . . . .......... ...... .. . . . . . . . . ............. ..... . ... ......... .... ... .......... .... ................ .. ......... . . . . ... ... .... .......... ......... ............ .... .................. ... ........ .... ......... ........... ... ... . ......... ... .. ...... . . . . . . . . . . . .. ... .. . ... .... .............. .............. .... ..... ............ ... .. ... .... ... ... .... .... ... .. .............. .............. .... ..... ....... .... ..... ........ ...................................................................
G
•
• •
•
•
•
• •
•
•
Tyto grafy maj´ı zaj´ımavou vlastnost: pro kaˇzd´ y jejich uzel x plat´ı, ˇze mnoˇzina N (x) vˇsech soused˚ u uzlu x indukuje vˇzdy tent´ yˇz graf, izomorfn´ı s cestou d´elky 3. Nav´ıc, vid´ıme, ˇze graf s touto vlastnost´ı m˚ uˇze b´ yt libovolnˇe velik´ y. Pokusme se tuto ot´azku otoˇcit, a uvaˇzujme n´asleduj´ıc´ı rozhodovac´ı u ´lohu. Vstup: neorientovan´ y graf H na n uzlech. ´ Ukol: zjistit, zda existuje graf G, v nˇemˇz okol´ı kaˇzd´eho uzlu indukuje podgraf izomorfn´ı s grafem H. Tento probl´em, v literatuˇre zn´am´ y jako Trachtˇenbrot-Zykov˚ uv probl´em, je pˇr´ıkladem rozhodovac´ıho probl´emu, kter´ y nepatˇr´ı do tˇr´ıdy NP. Pot´ıˇz je v tom, ˇze i pˇri mal´em grafu H (tj. pˇri mal´e velikosti vstupn´ıch dat) m˚ uˇze b´ yt hledan´ y graf G velik´ y, a nem´ame pˇredem ˇz´adn´ y odhad jeho velikosti. I kdyby se n´am tedy podaˇrilo graf G n´ ahodnˇe uh´adnout“, nem˚ uˇzeme zaruˇcit, ˇze ovˇeˇren´ı jeho vlastnost´ı bude ” provediteln´e v ˇcase, kter´ y je polynomi´aln´ı funkc´ı velikosti vstupn´ıch dat. Tento pˇr´ıklad znovu ukazuje, ˇze zjiˇstˇen´ı, ˇze nˇejak´ y probl´em je ve tˇr´ıdˇe NP, je zjiˇstˇen´ı pozitivn´ı: nevypl´ yv´a z nˇej sice jeˇstˇe ˇreˇsitelnost v polynomi´aln´ım ˇcase, ale je zde jist´a ˇsance (jen kdyby se podaˇrilo odstranit ten nedeterminismus ...), a jsou probl´emy, kter´e jsou jeˇstˇe podstatnˇe horˇs´ı. Pozn´ amka. M´ ame-li za u ´kol prakticky“ vyˇreˇsit nˇejak´ y probl´em, popsan´ y jazykem J, o nˇemˇz se ” domn´ıv´ame, ˇze nejsp´ıˇse nebude ve tˇr´ıdˇe P, setk´av´ame se s nˇekolika r˚ uzn´ ymi ot´azkami, na nˇeˇz odpovˇed´ı bude vhodn´ y algoritmus: (i) pt´ame se, zda je J ∈ P, (ii) pt´ame se, zda je alespoˇ n J ∈ NP (nebo je jeˇstˇe h˚ uˇre ...), (iii) hled´ame pˇresn´e ˇreˇsen´ı postupy typu hrub´a s´ıla“ (prob´ırkou vˇsech moˇznost´ı), ” (iv) rezignujeme na pˇresn´e ˇreˇsen´ı (protoˇze postupy typu ad (iii) jsou ˇcasovˇe pˇr´ıliˇs n´aroˇcn´e), pouˇzijeme heuristiku a spokoj´ıme se s pˇribliˇzn´ ym ˇreˇsen´ım. Pro odpovˇed’ na kaˇzdou z tˇechto ot´azek potˇrebujeme jin´ y typ algoritmu. Z´akladn´ı vlastnosti tˇechto algoritm˚ u shrnuje n´asleduj´ıc´ı tabulka.
(i) (ii) (iii) (iv)
Algoritmus Dokazuje J ∈ P Dokazuje J ∈ NP Hrub´ a s´ıla“ ” Heuristika
Deterministick´ y ANO NE ANO ANO
Polynomi´aln´ı ANO ANO NE ANO
Pˇrij´ım´a J ANO ANO ANO NE
Vid´ıme, ˇze nalezen´ı algoritmu, kter´ y m´a vˇsechny tˇri pˇekn´e“ vlastnosti (deterministick´ y, polynomi´aln´ı, ” pˇrij´ım´a J) je moˇzn´e 9 pouze ve tˇr´ıdˇe P, a mimo P mus´ıme na jednu z tˇechto vlastnost´ı rezignovat.
9 Samozˇ rejmˇ e
pˇri souˇ casn´ eu ´ rovni pozn´ an´ı; kdyby bylo P = NP, tak by situace vypadala jinak.
64
9.6
Polynomi´ aln´ı redukce a NP-´ upln´ e probl´ emy
Nejprve precizujeme pojem “vz´ajemn´eho pˇrevodu” u ´loh. Definice 9.10. Pˇrekl´ adac´ı poˇc´ıtaˇc je poˇc´ıtaˇc M s libovoln´ ym pˇr´ıstupem takov´ y, ˇze pro kaˇzd´ y jeho v´ ypoˇcet (dan´ y libovolnou poˇc´ ateˇcn´ı konfigurac´ı) plat´ı: - kaˇzd´e proveden´ı WRITE zap´ıˇse na v´ ystupn´ı p´asku ˇc´ıslo 0 nebo 1, - po koneˇcn´em poˇctu krok˚ u se v´ ypoˇcet zastav´ı proveden´ım STOP. Posloupnost nul a jedniˇcek, zapsanou na v´ ystupn´ı p´asce pˇri v´ ypoˇctu urˇcen´em slovem w, oznaˇc´ıme M (w). Jinak ˇreˇceno - pˇrekl´ adac´ı poˇc´ıtaˇc poskytuje funkci z mnoˇziny vˇsech slov do sebe. ˇ Definice 9.11. Rekneme, ˇze jazyk J1 je redukovateln´ y na jazyk J2 (znaˇc´ıme J1 ▹ J2 ), jestliˇze existuje deterministick´ y pˇrekl´ adac´ı poˇc´ıtaˇc M pracuj´ıc´ı v polynomi´alnˇe omezen´em ˇcase takov´ y, ˇze pro kaˇzd´e slovo w je w ∈ J1 ⇔ M (w) ∈ J2 . Nejprve nˇekolik snadn´ ych tvrzen´ı. Vˇ eta 9.4. 1) J1 ▹ J2 , J2 ▹ J3 ⇒ J1 ▹ J3 (tranzitivita) 2) J1 ▹ J2 , J2 ∈ N P ⇒ J1 ∈ N P 3) J1 ▹ J2 , J2 ∈ P ⇒ J1 ∈ P D˚ ukaz. 1) Jestliˇze M1 realizuje J1 ▹ J2 a M2 realizuje J2 ▹ J3 , pak M realizuj´ıc´ı J1 ▹ J3 z´ısk´ame jako sloˇzen´ı M1 a M2 : - program M2 zap´ıˇseme za program M1 , - pˇr´ıkaz STOP v programu M1 vˇsude nahrad´ıme skokem na prvn´ı instrukci M2 , - uprav´ıme n´avˇeˇst´ı v programu M2 , vstupy a v´ ystupy, tak aby odpov´ıdaly adres´am a ˇc´ısl˚ um pˇr´ıkaz˚ u. 2) , 3) - obdobn´ ym zp˚ usobem. 2 Pozn´ amka. J1 ▹ J2 znamen´a, ˇze J2 je alespoˇ n tak tˇeˇzk´ y jako J1 (kdybychom mˇeli polynomi´aln´ı algoritmus na J2 , mˇeli bychom jej i na J1 – z´ıskali bychom jej sloˇzen´ım s algoritmem, jenˇz je pops´an poˇc´ıtaˇcem, realizuj´ıc´ım pˇrevod J1 ▹ J2 ). Pˇr´ıklady z odstavce 9.4 d´avaj´ı v pr´avˇe zaveden´e terminologii polynomi´aln´ı redukce IND ▹ SAT a SAT ▹ IND. Nyn´ı jsme pˇripraveni na zaveden´ı pojmu NP-´ uplnosti, hlavn´ıho t´ematu tohoto odd´ılu. Definice 9.12. Jazyk J se naz´ yv´ a NP-´ upln´ y, jestliˇze plat´ı 1) J ∈ N P 2) pro kaˇzd´ y J ′ ∈ N P je J ′ ▹ J. Tˇr´ıdu NP-´ upln´ ych jazyk˚ u oznaˇc´ıme NPC (NP-complete). Jin´ ymi slovy: probl´em je NP-´ upln´ y, jestliˇze n´aleˇz´ı do tˇr´ıdy NP a kter´ ykoliv jin´ y probl´em z tˇr´ıdy NP lze na nˇej polynomi´alnˇe pˇrev´est. Tedy – NP-´ upln´e probl´emy jsou “nejtˇeˇzˇs´ı” probl´emy ze tˇr´ıdy NP. Vˇ eta 9.5.
Plat´ı: bud’ P = N P , nebo P ∩ N P C = ∅.
65
D˚ ukaz. Kdyby K ∈ P ∩ N P C, tak by pro libovoln´ y J ∈ N P bylo J ▹ K (nebot’ K ∈ N P C), a tedy J ∈ P (nebot’ K ∈ P ). 2 Pozn´ amka. 1. Je-li J1 , J2 ∈ N P C, pak J1 ▹ J2 i J2 ▹ J1 . 2. NPC je tˇr´ıda “nejtˇeˇzˇs´ıch” u ´loh v NP. Nyn´ı vid´ıme, ˇze tyto u ´lohy jsou co do obt´ıˇznosti ekvivalentn´ı. 3. Jsou tedy dvˇe moˇznosti: (i) P ⊂ N P, N P C ⊂ N P, P ∩ N P C = ∅, (ii) P = N P C = N P . Nev´ı se vˇsak, kter´a z uveden´ ych moˇznost´ı plat´ı. 4. Zd˚ uraznˇeme, ˇze podle definice 9.12 kaˇzd´ y NP-´ upln´ y probl´em patˇr´ı do tˇr´ıdy NP, a tedy je rozhoyt dovac´ım probl´emem. Optimalizaˇcn´ı probl´emy ( urˇcete α(G), ω(G), χ(G)“ apod.) nemohou b´ ” NP-´ upln´e, protoˇze nepatˇr´ı do NP, a je nutno je nejprve na rozhodovac´ı probl´emy pˇrev´est. 5. O jazyc´ıch J, kter´e splˇ nuj´ı podm´ınku 2) definice 9.12 (tj. pro kaˇzd´ y J ′ ∈ N P je J ′ ▹ J), ale nejsou nutnˇe ze tˇr´ıdy NP, se nˇekdy ˇr´ık´ a ˇze jsou NP-tˇeˇzk´e. Speci´alnˇe tedy jsou NP-tˇeˇzk´ ymi probl´emy optimalizaˇcn´ı verze NP-´ upln´ ych probl´em˚ u kter´e pozn´ame d´ale (urˇcen´ı α(G), ω(G), χ(G) atd.)
9.7
NP-´ uplnost probl´ emu SAT – Cookova vˇ eta
Aˇz do t´eto chv´ıle nev´ıme, zda v˚ ubec nˇejak´ y NP-´ upln´ y probl´em existuje. Jak uvid´ıme, Cookova vˇeta identifikuje probl´em SAT jako prvn´ıho “obyvatele” tˇr´ıdy NP. Ot´azkou vˇsak je, jak se d´a NP-´ uplnost nˇejak´eho probl´emu v˚ ubec dok´azat – jak dok´azat, ˇze vˇsechny probl´emy z tˇr´ıdy NP se daj´ı na dan´ y probl´em pˇrev´est? Zde se uk´aˇze s´ıla apar´atu abstraktn´ıho poˇc´ıtaˇce, kter´ y jsme zavedli: protoˇze kaˇzd´ y probl´em ze tˇr´ıdy NP je popsateln´ y abstraktn´ım poˇc´ıtaˇcem (nedeterministick´ ym polynomi´aln´ım pˇrij´ımac´ım), staˇc´ı uk´azat, ˇze se na SAT d´a pˇrev´est obecn´ y popis kaˇzd´eho takov´eho poˇc´ıtaˇce. Tato idea je z´aroveˇ n myˇslenkou d˚ ukazu Cookovy vˇety.
Vˇ eta 9.6.
(Cook)
SAT ∈ NPC.
Pozn´ amka. Uv´ aˇz´ıme-li definici NP-´ uplnosti, pak – v ˇreˇci pozn´amky na str. 63 – Cookova vˇeta ˇr´ık´a, ˇze kaˇzd´ y polynomi´alnˇe verifikovateln´ y probl´em lze redukovat na probl´em splnitelnosti logick´ ych formul´ı. V t´eto formulaci l´epe vynikne s´ıla Cookovy vˇety: ovˇeˇrit, ˇze dan´ y probl´em je polynomi´alnˇe verifikovateln´ y (tj. patˇr´ı do tˇr´ıdy NP) je ˇcasto velmi snadn´e, a tento ˇcasto t´emˇeˇr zˇrejm´ y fakt m´a hluboce netrivi´aln´ı d˚ usledek – redukovatelnost na SAT. D˚ ukaz. 1. SAT ∈ NP. To je celkem zˇrejm´e. Nedeterministicky pˇriˇrad´ıme promˇenn´ ym hodnoty 0, 1 a urˇc´ıme hodnotu formule f pro tyto hodnoty promˇenn´ ych (coˇz lze prov´est v ˇcase u ´mˇern´em d´elce formule). Tedy SAT ∈ NP. 2. “Zb´ yv´a” dok´azat, ˇze pro kaˇzd´ y J ∈ NP je J▹ SAT. Necht’ tedy: - J ∈ NP, - M je nedeterministick´ y pˇrij´ımac´ı poˇc´ıtaˇc, pˇrij´ımaj´ıc´ı J v ˇcase omezen´em polynomem p. ´ Ukol: pro kaˇzd´e slovo w ∈ J nal´ezt formuli fw v KNF tak, ˇze fw je splniteln´a, pr´avˇe kdyˇz M pˇrij´ım´a w. Oznaˇc´ıme: - n - d´elka slova w, - m = p(n), - q - poˇcet pˇr´ıkaz˚ u programu poˇc´ıtaˇce M . 66
Lze pˇredpokl´adat, ˇze - p je souˇcasnˇe polynom z Omezen´ı 1 z odst. 8.2 (jinak vezmeme maximum), - v´ ypoˇcet pracuje v pamˇeti nejv´ yˇse m (coˇz podle vˇety 8.1 lze). To znamen´a, ˇze - pouze prvn´ıch n pol´ı vstupn´ı p´asky obsahuje ˇc´ısla ̸= 0, - pouze prvn´ıch m pamˇet’ov´ ych bunˇek obsahje ˇc´ıslo ̸= 0, ’ - v ˇz´adn´e pamˇet ov´e buˇ nce nen´ı ˇc´ıslo vˇetˇs´ı neˇz m, - poˇcet krok˚ u poˇc´ıtaˇce je nejv´ yˇse m. K popisu vˇsech konfigurac´ı staˇc´ı zn´at hodnoty logick´ ych promˇenn´ ych: ai ,
i = 1, . . . , n :
ai = 1 ⇔
v i-t´em poli vstupn´ı p´asky je ˇc´ıslo 1,
bit ,
i = 1, . . . , n : t = 0... ,m
bit = 1 ⇔
po t-t´em kroku je vstupn´ı hlava na i-t´em poli p´asky,
cijt , i = 0 . . . m : cijt = 1 ⇔ j = 0, ±1, . . . , ±m t = 0, . . . m
v t-t´e konfiguraci je v i-t´e pamˇet’ov´e buˇ nce ˇc´ıslo j,
djt = 1 ⇔
v t-t´e konfiguraci je v programov´em registru ˇc´ıslo j.
djt ,
j = 1, . . . , q : t = 0, . . . , m
Poˇcet promˇenn´ ych je ( ) n + n(m + 1) + (m + 1)2 (2m + 1) + (m + 1)q = O(m3 ) = O p3 (n) , tj. je polynomi´alnˇe omezen. Maj´ı-li promˇenn´e popisovat kroky poˇc´ıtaˇce M , kter´ y v m kroc´ıch pˇrijme slovo w, mus´ı splˇ novat n´asleduj´ıc´ı podm´ınky: 1) hodnoty ai se shoduj´ı s 0 a 1 ve slovˇe w, 2) pro kaˇzd´e t existuje nejv´ yˇse jedno i tak, ˇze bit = 1 (mˇelo by vlastnˇe b´ yt “pr´avˇe jedno i”, ale to, ˇze hlava mus´ı nˇekde b´ yt, vyplyne z popisu pˇr´ıkaz˚ u a poˇc´ateˇcn´ı konfigurace), 3) pro kaˇzd´e i, t existuje pr´avˇe jedno j tak, ˇze cijt = 1 (tj. v kaˇzd´e buˇ nce je pr´avˇe jedno ˇc´ıslo), 4) pro kaˇzd´e t existuje pr´avˇe jedno j tak, ˇze djt = 1 (stejn´ y d˚ uvod pro programov´ y registr), 5) jestliˇze djm = 1, pak j je n´avˇeˇst´ı nˇekter´eho pˇr´ıkazu ACCEPT, 6) vztah hodnot promˇenn´ ych mezi t − 1 a t mus´ı odpov´ıdat prov´adˇen´emu pˇr´ıkazu poˇc´ıtaˇce. Poloˇz´ıme fw = fw1 ∧ fw2 ∧ fw3 ∧ fw4 ∧ fw5 ∧ fw6 , kde fwi je formule dan´a podm´ınkou i, i = 1, . . . , 6. Uk´aˇzeme, jak formule fwi sestrojit. a 1 1) Poloˇz Ai = { i , je-li i-t´ y prvek w roven { , a fw1 = A1 ∧ A2 ∧ . . . ∧ An . a ¯i 0 ∧ (¯ xi ∨ x ¯j ). 2) Nejprve definujeme pomocnou formuli g(x1 , . . . , xr ) vztahem g(x1 , x2 , . . . , xr ) = 1≤i<j≤r
Zˇrejmˇe g(x1 , x2 , . . . , xr ) je splnˇena pr´avˇe kdyˇz nejv´yˇse jedno xi = 1. Pomoc´ı t´eto formule nyn´ı sestav´ıme formuli fw2 : m ∧ fw2 = g(b1t , . . . bnt ). t=0
3) Poloˇz h(x1 , . . . xr ) = g(x1 , . . . xr ) ∧ (x1 ∨ x2 ∨ . . . ∨ xr ). Protoˇze x1 ∨ x2 ∨ . . . ∨ xr = 1 pr´avˇe kdyˇz alespoˇ n jedno xi = 1, je h(x1 , . . . xr ) = 1 ⇔ pr´ avˇe jedno xi = 1. Pomoc´ı tˇechto formul´ı lze napsat: m ∧ m ∧ fw3 = h(ci,−m,t , . . . , ci,0,t , . . . , ci,m,t ). i=0 t=0
67
4) Obdobnˇe z´ısk´ ame formuli pro fw4 : fw4 =
m ∧
h(d1,t , . . . dq,t ).
t=0
5) fw5 =
∨
djm , kde A je mnoˇzina n´avˇeˇst´ı vˇsech v´ yskyt˚ u pˇr´ıkazu ACCEPT.
j∈A
6) Toto je nejsloˇzitˇejˇs´ı. Form´ alnˇe poloˇzme fw6 =
q ∧
fw6r , kde formule fw6r popisuje p˚ usoben´ı r-t´eho
r=1
pˇr´ıkazu programu. Uk´aˇzeme si tuto ˇc´ast d˚ ukazu pouze na pˇr´ıkladu jednoho konkr´etn´ıho pˇr´ıkazu. Necht’ r-t´ y pˇr´ıkaz programu je ADD 8, coˇz znamen´a, ˇze do pracovn´ıho registru pˇriˇcteme obsah buˇ nky s adresou 8. Pro vˇsechna t = 1, . . . , m tedy mus´ı platit: je-li dr,t−1 = 1 (v konfiguraci t − 1 je v programov´em registru n´avˇeˇst´ı r pˇr´ıkazu ADD 8), pak z c0,x,t−1 ∧ c8,z,t−1 = 1 (v pracovn´ım registru je x, na adrese 8 je z) plyne c0,x+z,t = 1 (po t-t´em kroku je v pracovn´ım registru ˇc´ıslo x + z). Dostaneme tak formuli: m m ∧ ∧
m ∧
(dr,t−1 ⇒ ((c0,x,t−1 ∧ c8,z,t−1 ) ⇒ c0,x+z,t ))
t=1 x=−m z=−m
a po u ´pravˇe s uˇzit´ım vztahu (A ⇒ B) ⇔ (A¯ ∨ B) a de Morganova z´akona: f1 =
m m ∧ ∧
m ∧ (
) d¯r,t−1 ∨ c¯0,x,t−1 ∨ c¯8,z,t−1 ∨ c0,x+z,t .
t=1 x=−m z=−m
T´ım je pops´an u ´ˇcinek pˇr´ıkazu ADD 8; jeˇstˇe je tˇreba popsat, ˇze jestliˇze je dr,t−1 = 1, pak se kromˇe obsahu pracovn´ıho a programov´eho registru nic jin´eho nezmˇen´ı. K tomu pouˇzijeme pomocnou formuli: k(x, y) = (x ∨ y¯) ∧ (¯ x ∨ y). Je zˇrejm´e, ˇze k(x, y) = 1 ⇔ x = y. Pomoc´ı t´eto formule zap´ıˇseme poˇzadavky splnˇen´ı n´asleduj´ıc´ıch formul´ı: m m m ∧ ∧ ∧ f2 = (dr,t−1 ⇒ k(ci,j,t−1 , ci,j,t )) (kromˇe pracovn´ıho registru se obsah pamˇeti nemˇen´ı), f3 = f4 =
i=1 j=−m t=1 n ∧ m ∧
(dr,t−1 ⇒ k(bi,t−1 , bi,t )) (se vstupn´ı hlavou se nic nestalo),
i=1 t=1 q−1 m ∧ ∧
(dr,t−1 ⇒ k(dj,t−1 , dj+1,t )) (v programov´em registru se ˇc´ıslo zvˇetˇs´ı o 1).
j=1 t=1
Formule f2 , f3 a f4 zˇrejm´ ym zp˚ usobem uprav´ıme do KNF (obdobnˇe jako jsme upravili formuli f1 ), a formuli fw6r pak zap´ıˇseme jako konjunkci f1 ∧ f2 ∧ f3 ∧ f4 . Pro dokonˇcen´ı d˚ ukazu bychom museli podobnˇe popsat vˇsechny dalˇs´ı pˇr´ıkazy. D´ale je tˇreba provˇeˇrit polynomialitu naˇseho pˇrevodu. Jak jsme jiˇz uvedli, formule fw m´a O(p3 (n)) promˇenn´ ych, a z konstrukce vid´ıme, ˇze kaˇzd´a z n´ami sestrojen´ ych formul´ı fw1 , . . . , fw5 m´a nejv´ yˇse O(m2 ) = O(p2 (n)) klauzul´ı, a formule fw6r m´a O(m3 ) = O(p3 (n)) klauzul´ı. Po dokonˇcen´ı popisu zb´ yvaj´ıc´ıch pˇr´ıkaz˚ u programu bychom se pˇresvˇedˇcili, ˇze i poˇcet klauzul´ı vˇsech ostatn´ıch formul´ı fw6j , j = 1, . . . , q, a tedy i formule fw6 , je omezen polynomem v promˇenn´e n. 2 Pozn´ amka. Napˇr´ıklad, nedeterministick´ y krok (pˇr´ıkaz CHOOSE L1 , L2 ) se pop´ıˇse poˇzadavkem splnˇen´ı formule dr,t−1 ⇒ (dL1 ,t ∨ dL2 ,t ), neboli ekvivalentnˇe v KNF d¯r,t−1 ∨ dL1 ,t ∨ dL2 ,t .
68
Pozn´ amka. 1. Nyn´ı jiˇz v´ıme, ˇze tˇr´ıda NPC je nepr´azdn´a, nebot’ podle Cookovy vˇety je SAT ∈ NPC. 2. Jakmile v´ıme, ˇze NPC̸= ∅, je dokazov´an´ı NP-´ uplnosti dalˇs´ıch probl´em˚ u zpravidla snazˇs´ı. Je-li J ∈ NP, coˇz b´ yv´ a zˇrejm´e, pak k d˚ ukazu, ˇze J ∈ NPC, staˇc´ı uk´azat, ˇze K ▹ J pro nˇekter´ y vhodn´ y jazyk K ∈ NPC: z NP-´ uplnosti K plyne, ˇze vˇsechny jazyky z NP lze redukovat na K, a z tranzitivity (tvrzen´ı 1 vˇety 9.4) plyne redukovatelnost na J.
9.8
Nˇ ekter´ e dalˇ s´ı NP-´ upln´ e probl´ emy
Probl´ em 3-splnitelnosti logick´ ych formul´ı – 3-SAT. 3-SAT Vstup: logick´ a formule f (x1 , . . . , xn ) = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ . . . ∧ (ak ∨ bk ∨ ck ), kde kaˇzd´e ai , bi , ci (i = 1, . . . k) je rovno xℓ nebo x ¯ℓ pro vhodn´e ℓ = 1, . . . , n (tj. f je formule v KNF s klauzulemi d´elky 3). ´ Ukol: zjistit, zda je formule f splniteln´ a. Vˇ eta 9.7.
3-SAT ∈ NPC.
D˚ ukaz. 1. 3-SAT ∈ NP - to je zˇrejm´e, nebot’ 3-SAT je speci´aln´ı pˇr´ıpad SAT. 2. K d˚ ukazu 3-SAT ∈ NPC staˇc´ı redukovat SAT ▹ 3-SAT (tvrzen´ı 1 vˇety 9.4). K tomu n´am poslouˇz´ı mal´ y trik. Vˇsimnˇeme si nejprve tohoto: u1 ∨ u2 ∨ . . . ∨ um = 1 ⇔ existuje v takov´e, ˇze plat´ı (u1 ∨ . . . ∨ um−2 ∨ v) ∧ (um−1 ∨ um ∨ v¯) = 1 (d˚ ukaz je celkem zbyteˇcn´ y, rovnost je patrn´a na prvn´ı pohled). Ve formuli na prav´e stranˇe ekvivalence je prvn´ı klauzule o jeden liter´al kratˇs´ı a druh´a m´a d´elku 3. Postupn´ ym prov´adˇen´ım m˚ uˇzeme upravit libovolnou formuli v KNF tak, aby vˇsechny klauzule mˇely nejv´ yˇse tˇri liter´aly. Toho, aby vˇsechny klauzule mˇely d´elku pr´avˇe 3, dos´ahneme zˇrejm´ ym zp˚ usobem - opakov´an´ım liter´alu. 2
Nez´ avisl´ a mnoˇ zina – IND Vˇ eta 9.8.
IND ∈ NPC.
D˚ ukaz. Redukce SAT ▹ IND byla uvedena v odstavci 9.4. Pozn´ amka.
2
Uvaˇzujme n´asleduj´ıc´ı dvˇe varianty probl´emu IND, definovan´eho v odstavci 9.4.
IND= Vstup: neorientovan´ y graf G na n uzlech a pˇrirozen´e ˇc´ıslo k ≤ n. ´ Ukol: zjistit, zda v grafu G existuje nez´avisl´a mnoˇzina uzl˚ u velikosti k. INDk Vstup: neorientovan´ y graf G na n uzlech. ´ Ukol: zjistit, zda v grafu G existuje nez´avisl´a mnoˇzina uzl˚ u velikosti k. Probl´em IND= se od probl´emu IND liˇs´ı pouze t´ım, ˇze se pt´ame na existenci nez´avisl´e mnoˇziny velikosti pr´ avˇe k (m´ısto alespoˇ n k jako u IND). Snadno je vidˇet, ˇze probl´emy IND a IND= jsou ekvivalentn´ı: kaˇzd´a 69
mnoˇzina velikosti k je z´aroveˇ n mnoˇzinou velikosti alespoˇ n k, a naopak, existuje-li v G nˇejak´a nez´avisl´a mnoˇzina velikosti k ′ > k, pak kaˇzd´ a jej´ı podmnoˇzina velikosti k je tak´e nez´avisl´a. To znamen´a, ˇze plat´ı n´asleduj´ıc´ı fakt. Tvrzen´ı 9.1.
IND= ∈ NPC.
Probl´em INDk se od probl´emu IND= liˇs´ı pouze“ t´ım, ˇze ˇc´ıslo k nen´ı souˇc´ast´ı vstupn´ıch dat, ale je ” pevnˇe dan´e (tedy - hodnotu k n´am nezad´av´a nepˇr´ıtel“, ale zn´ame ji pˇredem). Protoˇze n-prvkov´a mnoˇzina (n) (n) ” ych podmnoˇzin a k = O(nk ), ˇreˇsen´ı probl´emu INDk hrubou silou“ (prob´ırkou vˇsech m´a k k-prvkov´ ” moˇznost´ı) m´a sloˇzitost O(nk ), a k je konstanta. Dok´azali jsme tak n´asleduj´ıc´ı fakt: Tvrzen´ı 9.2.
INDk ∈ P.
Vid´ıme pˇrekvapivou skuteˇcnost: zd´anlivˇe nepatrn´ y“ rozd´ıl – zda je ˇc´ıslo k pevnˇe dan´e nebo zda je ” souˇc´ast´ı vstupn´ıch dat – m˚ uˇze rozhodnout o tom, jestli je probl´em polynomi´aln´ı nebo NP-´ upln´ y. Je moˇzno nam´ıtnout, ˇze nepˇr´ıtel“ n´am u probl´emu IND= tak´e pˇrece vˇzdy zad´a konstantn´ı k. Kde je tedy rozd´ıl? ” Tento rozd´ıl vynikne tehdy, uvˇedom´ıme-li si, ˇze je-li k souˇca´st´ı vstupn´ıch dat, pak nemus´ı b´ yt konstantn´ı, ale m˚ uˇze z´aviset na konkr´etn´ı hodnotˇe n. Pˇredstavme si, ˇze n´am nepˇr´ıtel“ bude zad´avat posloupnost ” graf˚ u G1 , G2 , . . . takovou, ˇze |V (Gi )| = n = 2i, a ke kaˇzd´emu grafu Gi (na 2i uzlech) n´am zad´a hodnotu ych podmnoˇzin n-prvkov´e mnoˇziny V (Gi ) bude roven k = i = n2 , i = 1, 2, . . .. Pak poˇcet vˇsech k-prvkov´ ( ) ( ) √ n n 2i 2i(2i − 1) . . . (i + 1) 2i 2i − 1 i+1 = = = ... > 2i = 2 2 = ( 2)n , k i i(i − 1) . . . 1 i i−1 1 coˇz znamen´a, ˇze sloˇzitost algoritmu hrub´a s´ıla“ je na tˇechto vstupn´ıch datech alespoˇ n exponenci´aln´ı. ” Hranice mezi obˇema svˇety (polynomi´aln´ım a NP-´ upln´ ym) je velmi ostr´a, a ˇcasto velmi z´aleˇz´ı i na pˇresn´e formulaci probl´emu. Tot´eˇz plat´ı i pro n´asleduj´ıc´ı probl´emy COV a CLIQUE.
Uzlov´ e pokryt´ı – COV COV Vstup: neorientovan´ y graf G na n uzlech a pˇrirozen´e ˇc´ıslo k ≤ n. ´ Ukol: zjistit, zda v grafu G existuje pokryt´ı velikosti nejv´ yˇse k. Pozn´ amka. Zd˚ uraznˇeme opˇet, ˇze u ´loha je formulov´ana jako rozhodovac´ı probl´em. O pˇrevodu optimalizaˇcn´ıch u ´loh na rozhodovac´ı jsme se jiˇz zm´ınili u u ´lohy IND, zde (a u dalˇs´ıch u ´loh) plat´ı tot´eˇz. Vˇ eta 9.9.
COV ∈ NPC.
D˚ ukaz. 1. Pˇr´ısluˇsnost do tˇr´ıdy NP je zˇrejm´a (zformulujte si pˇr´ısluˇsn´ y algoritmus!). Je tedy tˇreba dok´azat existenci redukce. 2. IND ▹ COV, nebot’ M ⊂ U (G) je k-prvkov´a nez´avisl´a mnoˇzina pr´avˇe tehdy, kdyˇz U (G) \ M je n − k prvkov´e pokryt´ı. 2
Existence kliky pˇ redepsan´ e velikosti – CLIQUE CLIQUE Vstup: neorientovan´ y graf G na n uzlech a pˇrirozen´e ˇc´ıslo k ≤ n. ´ Ukol: zjistit, zda v grafu G existuje klika velikosti alespoˇ n k. 70
Vˇ eta 9.10.
CLIQUE ∈ NPC.
D˚ ukaz. Pˇr´ısluˇsnost do tˇr´ıdy NP je opˇet zˇrejm´a, a IND ▹ CLIQUE, nebot’ M ⊂ U (G) je k-prvkov´a ¯ nez´avisl´a mnoˇzina v G pr´ avˇe tehdy, kdyˇz M je k-prvkov´a klika v G. 2
3-obarvitelnost grafu – 3-COL k-COL Vstup: neorientovan´ y graf G na n uzlech a pˇrirozen´e ˇc´ıslo k ≤ n. ´ Ukol: zjistit, zda je graf G k-obarviteln´ y. Pro k = 1 a k = 2, tj. pro pˇr´ıpad 1- a 2-obarvitelnosti, jiˇz v´ıme z kapitoly 7, ˇze 1-COL∈ P a 2-COL∈ P . Pro k = 3 je uˇz ale vˇse jinak.
Vˇ eta 9.11.
3-COL ∈ NPC.
D˚ ukaz. 1. Zˇrejmˇe 3-COL ∈ NP (zformulujte si opˇet pˇr´ısluˇsn´ y algoritmus). 2. Uk´aˇzeme, ˇze 3-SAT ▹ 3-COL. Necht’ tedy f (x1 , . . . , xn ) = (a1 ∨b1 ∨c1 )∧. . .∧(ak ∨bk ∨ck ); sestroj´ıme graf G, kter´ y je 3-obarviteln´ y pr´avˇe tehdy, je-li formule f 3-splniteln´a. Barvy budeme oznaˇcovat ˇc´ısly 0, 1, 2. Provedeme nejprve dvˇe pozorov´ an´ı na mal´ ych grafech (viz obr´azek), kter´e n´am poslouˇz´ı jako “stavebn´ı kameny” pˇri konstrukci hledan´eho grafu. G1
G2
a •................................................•........................
....... .. ....... ... ....... .. .... ..... ... ...... ... ....... ... ............. .. ..... .........................................................
•d
b•
a •......................................................................................•....................
... ...... ..... ... ..... ... ... ... ..... ... ..... . . . . . ... .... ..... ... . . . . . . ... ..... .......................................... ... .. ... ..... ... ..... ... ......... .......... ........................................
b •....................................•.......................
• d
•
•
c •
•
•
V G1 je zˇrejm´e, ˇze: – jsou-li a, b obarveny stejnou barvou, pak d m´a tut´eˇz barvu, – jsou-li a, b obarveny r˚ uzn´ ymi barvami, pak d m´a libovolnou barvu. Obdobnˇe, v G2 je zˇrejm´e, ˇze: – jsou-li a, b, c obarveny stejnou barvou, pak d m´a tut´eˇz barvu, – m´a-li alespoˇ n jeden z uzl˚ u a, b, c jinou barvu neˇz ostatn´ı, pak d m˚ uˇze b´ yt obarven barvou 1. Graf G nyn´ı sestroj´ıme touto konstrukc´ı: - pro kaˇzdou promˇennou xi sestroj´ıme dvojici uzl˚ u xi , x ¯i a spoj´ıme ji hranou, ame tˇri uzly u, v, w tvoˇr´ıc´ı troj´ uheln´ık, - pˇrid´ - uzel w spoj´ıme se vˇsemi uzly xi , x ¯i , - pro kaˇzdou klauzuli formule f vytvoˇr´ıme jednu kopii grafu G2 , pˇriˇcemˇz uzly a, b, c budou totoˇzn´e s uzly liter´al˚ u klauzule, a uzel d bude sousedn´ı s uzlem u. Je tˇreba jeˇstˇe dok´azat, ˇze G je 3-obarviteln´ y pr´avˇe kdyˇz f je splniteln´a. Myˇslenku t´eto ˇc´asti d˚ ukazu ilustrujeme na pˇr´ıkladu. Mˇejme d´anu logickou formuli: f (x1 , . . . , x4 ) = (x1 ∨ x ¯2 ∨ x ¯3 ) ∧ (¯ x1 ∨ x3 ∨ x ¯4 ) ∧ (¯ x2 ∨ x3 ∨ x4 )
71
Sestroj´ıme graf G: ................................................................. ............. ......... .......... ....... ........ . ...... . . . . . . ...... .. ....... ..... ...... ..... . . . . . ..... ..... . . . . .... ... . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . ......... .... ....... . .... . . . . . . . . . . . . . . . ...... .... ..... ... . . . . . . . . .... . . . . . ..... .... ... . . . ... . . . . . . . .... ... ... ......................... ... . . . . . . . . . . ... . .... ... ... ......... .... . . . . . . . . . . . . . .... ... 2 ... 1 .. ... ........ . . . . . . . . .. ... 3 . . . . . . . . .... . ... .. .... .... ....... .......... . . . . . . . . . ... ... ... .. ...... ....... . . . . . . . . . . ... . . . . . ... ... ... ... ....... .. . ... ... .. . . .... .... ................................ .... .... .... ................................ ............................... ... .... ....... ....... . . . . . . . . . . . . . ... ... .. ... ...... ..... . . . . . . . . . . . .. . . .. ... .. .... .... .... .. ... ... ... ... .... ....... ...... .. . . . . . . . . . . . ... ... ... ... .. ... ...... ..... .. . . . . . . . . . . . ... ... .. .. .... .. .... . .. ... ....... .... . . . . . . . . . .. ... .. . .... . .... . .... .. ..... .... . . . . . ... . . . . .. .. ... ... ... . . .. . . ........... ..... ... . . . . ... ... ... .. .. . .... ... . . . ... . . . . . . . . . . . .. .. ........................... ........................... ........ .... ... ............................ . . . . . . . . . . .... .. .. ... .. .. . ....... .... . . . . . . . .... .... .. ... .. .. . ... ...... ...... . . . . . . . . . . . . ... .. .... ..... .. . ...... ........ ....... . . . . . . . . ... . . . ..... ... .. ..... .. . . ...... ....... . . . . . . . . . . ... . . . . .... ..... .... .. . ... ....... . . .............. . . . . . . ... . . . . . . ..... ..... .. ....... ......... . . ............. . . ... . . . . . .. . . . ...... ..... .... ...... .... . . .............. .. .. ... . . . .. . .. . . . . . .. . . ....... . .... .... ....... .. ...... . .. . ............ . . ... . . . . . . . . . . . . . . . . . . . . . ......... .... 2 ......... . ............... ..... . . . . . 1 ..... . . . . . . . . . . . . . . . . . . . . . .............................. .......... 3 .................................. ........ ........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... ... .................................. . .............................................. ............ ....... ... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... . . . . . . . .... ........... . . . . . . . . . ... .. ...... ........ . ...... .......... ...................... .... ... ... ............................. .. ....................................... .. .. ... ...... ........................................................................................................................................................................................ . . . . ... .. . . . . . . ...... . . ... . . .. .. .. . ... ... ...... ................................................................................................................................ .. . ... . . .. ... .. .. .. .. .. ........................................................ . . . . . . . . ... . . . .. .. .......................................................................................... .. .. ... .. .... . . . . . . . . . . . . . . . . .. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . .......... .................... ........................................................................ . .. .. . .... . . . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . ...................................... .............................. .......... ... .. .. .... ........................... ... .. ... . .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ........... . . . . . . . . ................... . ............................. .......... ... ....................... ....................................................................................................................... ....... ........
•d
•
•d
•
•
•
•
x ¯
u •
•d
•
•
•
•
•
•
•
•
•
•
•
x ¯ •
¯ •x
¯4 •x
• x1
• x2
• x3
• x4
• w
• v
Uk´aˇzeme, ˇze G je 3-obarviteln´ y, pr´avˇe kdyˇz f je splniteln´a. 1. Pˇredevˇs´ım: G je 3-obarviteln´ y ⇔ G je 3-obarviteln´ y tak, ˇze uzel u m´a barvu 0, uzel v barvu 1 a uzel w barvu 2 (pokud tomu tak nen´ı, vhodnˇe pˇreˇc´ıslujeme barvy, abychom dostali tento v´ ysledek). 2. Uzel w m´ a nyn´ı barvu 2. Potom uzly xi , x ¯i maj´ı barvy z mnoˇziny {0, 1} a lze je interpretovat jako hodnoty logick´ ych promˇenn´ ych. 3. A nyn´ı jiˇz lze ps´at: Formule f je 3-splniteln´a ⇔ existuje pˇriˇrazen´ı hodnot 0, 1 promˇenn´ ym xi tak, ˇze v kaˇzd´e klauzuli je alespoˇ n jednou jedniˇcka ⇔ vˇsechny uzly di mohou m´ıt barvu r˚ uznou od 0 ⇔ graf G je 3-obarviteln´ y. 2 Pozn´ amka. 1. NP-´ uplnost probl´emu k-obarvitelnosti pro k > 3 se dok´aˇze analogicky, ale d˚ ukaz je sloˇzitˇejˇs´ı (z´akladn´ı konstrukce je obdobn´a, ale grafy, pouˇz´ıvan´e jako stavebn´ı kameny“, jsou kompliko” vanˇejˇs´ı). 2. Mezi z´akladn´ı NP-´ upln´e probl´emy patˇr´ı tak´e probl´em HAM (existence hamiltonovsk´e kruˇznice). Pˇr´ısluˇsnost do tˇr´ıdy NP jsme dok´azali v pˇr´ıkladu pˇred definic´ı 9.9; NP-´ uplnost dokazovat nebudeme. 3. Poznamenejme jeˇstˇe, ˇze rozhodnut´ı, zda pro dan´ y neorientovan´ y graf G plat´ı χ′ (G) = ∆(G) nebo ′ χ (G) = ∆(G) + 1 (viz Vizingova vˇeta - Vˇeta 7.8), je tak´e NP-´ upln´ y probl´em.
72
Reference ˇ ˇ Plzeˇ [1] R. Cada, T. Kaiser, Z. Ryj´aˇcek: Diskr´etn´ı matematika. Skripta ZCU n, 2004. [2] J. Demel: Grafy a jejich aplikace. Academia, Praha 2002 [3] M. Fiedler: Speci´aln´ı matice a jejich pouˇzit´ı v numerick´e matematice. Teoretick´a kniˇznice inˇzen´ yra, SNTL, Praha 1981. ´ ˇ Plzeˇ do diskr´etn´ı matematiky. Skripta ZCU n, [4] J. Holenda, Z. Ryj´aˇcek: Line´arn´ı algebra II – Uvod 1995. ˇ ep´ [5] J. Kol´aˇr, O. Stˇ ankov´ a, M. Chytil: Logika, algebry a grafy. SNTL, Praha 1989. [6] L. Kuˇcera: Kombinatorick´e algoritmy. Matematick´ y semin´aˇr SNTL, Praha 1989. u. Matematick´ y semin´aˇr SNTL, Praha 1979. [7] J. Neˇsetˇril: Teorie graf˚ [8] J. Neˇsetˇril, J. Matouˇsek: Kapitoly z diskr´etn´ı matematiky. Karolinum, Praha 2000. [9] J. Plesn´ık: Grafov´e algoritmy. Veda, Bratislava, 1983.
73