Minimalne drzewa spinaj ˛ace i najkrótsze ´scie˙zki
Transkrypt
Minimalne drzewa spinaj ˛ace i najkrótsze ´scie˙zki
TEORIA GRAFÓW I SIECI - ROZDZIA×VI Minimalne drzewa spinajace ¾ i najkrótsze ściez·ki Rozwaz·my problem budowy sieci kolejowej ÷ acz ¾ acej ¾ wybrane miasta. Sieć ma zapewniać moz·liwość podróz·y koleja¾ z dowolnego miasta do kaz·dego innego. Znane sa¾ odleg÷ ości miedzy ¾ miastami, a koszt budowy jest proporcjonalny do d÷ ugości torów. Zalez·y nam na minimalizacji kosztów, czyli na minimalizacji d÷ ugości linii kolejowej. Traktujac ¾ miasta jako wierzcho÷ ki, zaś tory miedzy ¾ nimi jako kraw¾ edzie, dostajemy pewien graf. Aby móc podróz·ować miedzy ¾ dowolnymi miastami, graf musi być spójny. Sieć kolejowa o minimalnej d÷ ugości nie moz·e zawierać cykli (bo z cyklu moz·na usunać ¾ kraw¾ edź bez utraty spójności). Tak wiec ¾ szukana sieć jest drzewem. Aby znaleźć teoretyczne rozwiazanie ¾ problemu, musimy zde…niować pojecie ¾ bed ¾ ace ¾ odpowiednikiem d÷ ugości torów lub kosztów ich budowy. Grafem z wagami (grafem waz·onym) nazywamy pare¾ (G; w), gdzie G jest grafem, zaś w : EG ! [0; 1) funkcja¾ wag przypisujac ¾ a¾ kraw¾ edziom liczby nieujemne. Liczbe¾ w (k) nazywamy waga¾ krawedzi ¾ k. Waga¾ podgrafu G0 nazywamy sum¾ e wag wszystkich kraw¾ edzi z G0 . Analogicznie de…niujemy graf skierowany z wagami. Istnieje moz·liwość rozszerzenia podanych de…nicji przez dopuszczenie wag ujemnych, ale na naszym wyk÷ adzie nie bedziemy ¾ tego robić. Minimalnym drzewem spinajacym ¾ grafu G nazywamy drzewo spinajace ¾ o najmniejszej wadze. Oczywiście, graf moz·e mieć wiele minimalnych drzew spinajacych. ¾ Zajmiemy sie¾ problemem znajdowania minimalnego drzewa spinajacego ¾ w gra…e spójnym z wagami. Drzewo to moz·na znaleźć badajac ¾ wagi wszystkich drzew spinajacych ¾ grafu. Z twierdzenia Cayleya wynika jednak, z·e juz· dla niezbyt duz·ego grafu K20 musielibyśmy sprawdzić 2018 drzew spinajacych, ¾ co nie wyglada ¾ zachecaj ¾ aco ¾ (oko÷ o 8 miliardów lat przy predkości ¾ milion drzew na sekunde). ¾ Omówimy dwa algorytmy znajdowania minimalnego drzewa spinajacego: ¾ algorytm Prima i algorytm Kruskala. Oba opieraja¾ sie¾ na metodzie budowania drzewa spinajacego ¾ przez dodawanie kolejnych kraw¾ edzi. Oba sa¾ tez· algorytmami zach÷ annymi, tzn. w kaz·dym kroku wybierana jest moz·liwość w danym momencie najkorzystniejsza. Zaczniemy od algorytmu Prima. Jest on wersja¾ algorytmu Drzewo, w której w kolejnych iteracjach wybierana jest kraw¾ edź o najmniejszej wadze, spośród tych, które moz·na wybrać. Niech (G; w) bedzie ¾ spójnym grafem z wagami oraz a dowolnie wybranym wierzcho÷ kiem. Prim(G; w; a) V0 := fag E0 := ; while VG n V0 6= ; do Wybierz kraw¾ edź bc o najmniejszej wadze taka, ¾ z·e b 2 V0 i c 2 VG n V0 V0 := V0 [ fcg 1 TEORIA GRAFÓW I SIECI - ROZDZIA×VI 2 E0 := E0 [ fbcg T := (V0 ; E0 ) Twierdzenie 1. Wynikiem dzia÷ania procedury Prim jest minimalne drzewo spinajace ¾ T spójnego grafu z wagami (G; w). Dowód. Oznaczmy V = VG . Z twierdzenia ?? wynika, z·e T jest drzewem spinajacym ¾ G. Rozwaz·my warunek (1) G0 = (V0 ; E0 ) jest podgrafem pewnego minimalnego drzewa spinajacego. ¾ Oczywiście, warunek (1) zachodzi na wejściu, czyli dla G0 = (fag ; ;). Pokaz·emy, z·e warunek (1) jest niezmiennikiem petli. ¾ Za÷ óz·my, z·e na poczatku ¾ iteracji, G0 jest podgrafem pewnego minimalnego drzewa spinajacego ¾ T0 , czyli E0 ET0 . Algorytm wybiera kraw¾ edź bc taka, ¾ z·e b 2 V0 i c 2 V n V0 . Moz·liwe sa¾ przypadki (a) bc 2 ET0 . Wtedy na końcu iteracji E0 ET0 . Oznacza to, z·e G0 jest podgrafem T0 , czyli zachodzi (1). (b) bc 2 = ET0 . W drzewie T0 istnieje ściez·ka prosta d ÷ acz ¾ aca ¾ b i c. Ściez·ka ta nie zawiera kraw¾ edzi bc 0 0 (bo bc 2 = ET0 ). Z w÷ asności ?? wynika, z·e d musi zawierać kraw¾ edź b c taka, ¾ z·e b0 2 V0 i c0 2 V n V0 . Poniewaz· c0 2 = V0 , wiec ¾ b0 c 0 2 = E0 . Rozwaz·my graf T 0 = (T0 n fb0 c0 g) [ fbcg . Na końcu iteracji mamy V0 V = VT 0 oraz E0 = E0 n fb0 c0 g (ET0 n fb0 c0 g) [ fbcg = ET 0 . Oznacza to, z·e G0 jest podgrafem T 0 . Aby udowodnić (1), wystarczy pokazać, z·e T 0 jest minimalnym drzewem spinajacym. ¾ Dla dowolnych wierzcho÷ ków z VT 0 = VT0 istnieje ściez·ka ÷ acz ¾ aca ¾ je w T0 . Zastepuj ¾ ac ¾ d 0 0 0 d 0 na tej ściez·ce kraw¾ edź b c ściez·ka¾ b bc c , dostajemy ściez·k¾ e÷ acz ¾ ac ¾ a¾ wybrane 0 0 0 wierzcho÷ ki w T . Oznacza to, z·e graf T jest spójny. Poniewaz· graf T ma tyle samo wierzcho÷ ków i tyle samo kraw¾ edzi co drzewo T0 , wiec ¾ z twierdzenia ?? wynika, z·e T 0 jest drzewem. W rozwaz·anej iteracji algorytm wybra÷kraw¾ edź bc, a nie b0 c0 . Wynika stad, ¾ z·e w (bc) w (b0 c0 ) i w konsekwencji w (T 0 ) w (T0 ). Zatem T 0 jest minimalnym drzewem spinajacym, ¾ co kończy dowód warunku (1) w tym przypadku. TEORIA GRAFÓW I SIECI - ROZDZIA×VI 3 Z (a) i (b) wnioskujemy, z·e (1) jest niezmiennikiem petli. ¾ Zatem po zakończeniu procedury, drzewo T = G0 jest podgrafem minimalego drzewa spinajacego, ¾ a wiec ¾ musi być minimalnym drzewem spinajacym. ¾ Algorytm Prima bywa tez· nazywany algorytmem Jarnika, algorytmem PrimaJarnika lub algorytmem DJP (Dijkstra-Jarnik-Prime). Implementujac ¾ algorytm Prima z uz·yciem macierzy sasiedztwa ¾ moz·na uzyskać z÷ oz·oność obliczeniowa¾ O (V 2 ). Uz·ywajac ¾ kopców binarnych lub kopców Fibonacciego moz·na dostać, odpowiednio, z÷ oz·oność O (E log V ) i O (E + V log V ). Poniz·szy przyk÷ ad ilustruje dzia÷ anie algorytmu Prima. w (T ) = 8. Omówimy teraz algorytm Kruskala. Wymaga on by kraw¾ edzie grafu by÷ y uporzad¾ kowane wed÷ ug niemalejacych ¾ wag. Niech (G; w) bedzie ¾ spójnym grafem z wagami, EG = fk1 ; k2 ; : : : ; km g oraz w (k1 ) w (k2 ) : : : w (km ). Kruskal(G; w) E0 := ; for i := 1 to m do if graf (VG ; E0 [ fki g) jest acykliczny then E0 := E0 [ fki g T := (VG ; E0 ) Twierdzenie 2. Wynikiem dzia÷ania procedury Kruskal jest minimalne drzewo spinajace ¾ T spójnego grafu z wagami (G; w). Dowód powyz·szego twierdzenia pominiemy. Moz·na go znaleźć w ksia¾z·ce "Matematyka dyskretna" Rossa i Wrighta. Idea dowodu jest podobna do idei dowodu twierdzenia 1 i polega na pokazaniu, z·e graf (VG ; E0 ) jest, w kaz·dej iteracji, podgrafem pewnego minimalnego drzewa spinajacego. ¾ Moz·na sprawdzić, z·e algorytm Kruskala dzia÷ a równiez· dla grafów niespójnych. Wynikiem jest wtedy minimalny las spinajacy. ¾ Ćwiczenie 1. Udowodni´c ostatnie twierdzenie. TEORIA GRAFÓW I SIECI - ROZDZIA×VI 4 Dzia÷ anie algorytmu Kruskala przedstawimy dla tego samego grafu, do którego zastosowaliśmy algorytm Prima. Ćwiczenie 2. Znale´z´c minimalne drzewa spinajace ¾ i ich wagi dla poni·zszych grafów. Zastosowa´c (1) Algorytm Kruskala. (2) Algorytm Prima, zaczynajac ¾ od dowolnie wybranego wierzcho÷ka. Operacje¾ powtórzy´c dla dwóch innych wierzcho÷ków. Ćwiczenie 3. W tabeli podane sa¾ odleg÷o´sci miedzy ¾ miastami (w milach). Towarzystwo naftowe chce utworzy´c rurociag ¾ przechodzacy ¾ bezpo´srednio miedzy ¾ miastami. Jaka jest minimalna d÷ugo´s´c rurociagu ¾ zapewniajacego ¾ przesy÷anie ropy z dowolnego miasta do ka·zdego innego? Narysowa´c schemat najkrótszego rurociagu. ¾ B Bismarck Des Moines Milwaukee Minneapolis Omaha Pierre Winnipeg D Mil Min O P W 670 758 427 581 211 369 361 252 132 492 680 332 493 690 759 357 394 431 391 650 521 Posiadacz atlasu samochodowego Polski stana÷przed ¾ problemem znalezienia najkrótszej drogi miedzy ¾ ×odzia¾ a Szczecinem. Problem ten ÷ atwo wyrazić w jezyku ¾ grafów. Polega on na znalezienu ściez·ki o najmniejszej wadze (sumie wag kraw¾ edzi) miedzy ¾ ustalonymi wierzcho÷ kami grafu waz·onego. TEORIA GRAFÓW I SIECI - ROZDZIA×VI 5 Niech (G; w) bedzie ¾ grafem lub digrafem z wagami. Waga¾ ściez·ki d = a0 k1::: kn an nazywamy sum¾ e wag kraw¾ edzi tej sciez·ki, tj. w (d) = w (k1 ) + : : : + w (kn ) : Dla ściez·ki trywialnej (bez kraw¾ edzi) przyjmujemy w (d) = 0. Najkrótsza¾ ściez·ka¾ ÷ acz ¾ aca ¾ wierzcho÷ ek a z wierzcho÷ kiem b nazywamy ściez·k¾ e o najmniejszej wadze spośród ÷ acz ¾ acych ¾ a z b. Wage¾ najkrótszej ściez·ki z a do b oznaczamy m (a; b). Jeśli nie istnieje najkrótsza ściez·ka z a do b, to przyjmujemy m (a; b) = 1. Uwaga 1. W naszych rozwa·zaniach pojawi÷y sie¾wcze´sniej´scie·zki o minimalnej liczbie krawedzi ¾ ÷¾ aczace ¾ ustalone wierzcho÷ki. Przyjmujac ¾ wagi wszystkich krawedzi ¾ równe 1, dostajemy wage¾ ¾ ´scie·zka o minimalnej liczbie krawedzi ¾ jest najkrótsza¾ ´scie·zki równa¾ jej d÷ugo´sci. Tak wiec ¾ wag w (k) = 1 dla k 2 EG . ´scie·zka¾wzgledem W÷ asność 1. Je·zeli wierzcho÷ek b jest osiagalny ¾ z wierzcho÷ka a w gra…e [digra…e] G, to istnieje najkrótsza ´scie·zka z a do b. W´sród najkrótszych ´scie·zek z a do b jest taka, w której nie powtarzaja¾sie¾ ani wierzcho÷ki ani krawedzie. ¾ Dowód. Za÷ óz·my, z·e wierzcho÷ ek b jest osiagalny ¾ z wierzcho÷ ka a. Moz·emy przyjać, ¾ z·e a 6= b. Z twierdzenia ?? wynika, z·e istnieje ściez·ka prosta bez powtarzajacych ¾ sie¾ wierzcho÷ ków z a do b. Poniewaz· liczba takich ściez·ek jest skończona, wiec ¾ moz·emy z nich wybrać ściez·k¾ elo najmniejszej wadze. Aby zakończyć dowód wystarczy pokazać, z·e l jest najkrótsza¾ ściez·ka¾ z a do b: Przypuśćmy nie wprost, z·e tak nie jest. Spośród wszystkich ściez·ek, które ÷ acz ¾ a¾ a z b i maja¾ wage¾ mniejsza¾ niz· l wybierzmy ściez·k¾ e d o najmniejszej liczbie kraw¾ edzi. Poniewaz· w (d) < w (l) wiec ¾ d nie jest ściez·ka¾ prosta¾ bez powtarzajacych ¾ sie¾ wierzcho÷ ków i musi sie¾ w niej powtarzać pewien wierzcho÷ ek c (tw. ??) d = a : : : c : : : c : : : b. Pomijajac ¾ w d podściez·k¾ e c : : : c dostajemy ściez·k¾ e d0 ÷ aczac ¾ a¾ a z b. Pominiete ¾ kraw¾ edzie 0 0 maja¾ wagi nieujmne, wiec ¾ w (d ) w (d) < w (l). Z drugiej strony d ma mniej kraw¾ edzi 0 niz· d. Zatem na mocy de…nicji d dostajemy w (d ) w (l). Otrzymana sprzeczność kończy dowód. Z ostatniej w÷ asności wynika, z·e najkrótsza¾ ściez·k¾ e moz·na wyznaczyć badajac ¾ wagi wszystkich ściez·ek prostych bez powtarzajacych ¾ sie¾ wierzcho÷ ków ÷ acz ¾ acych ¾ ustalone wierzcho÷ ki. Metoda ta nie ma jednak z·adnego praktycznego znaczenia. W dalszej cześci ¾ wyk÷ adu omówimy algorytmy szukania najkrótszych ściez·ek na tyle szybkie by móc je stosować w praktyce. Zaczniemy od sformu÷ owania kilku wariantów rozwaz·anego problemu. Szukanie najkrótszej ściez·ki miedzy ¾ ustalona¾ para¾ wierzcho÷ ków. Szukanie najkrótszej ściez·ki miedzy ¾ ustalonym wierzcho÷ kiem s, a pozosta÷ ymi wierzcho÷ kami grafu. Mówimy wtedy o problemie najkrótszych ściez·ek z jednym źród÷ em. W przypadku grafów skierowanych rozwaz·a sie¾ równiez· problem szukania TEORIA GRAFÓW I SIECI - ROZDZIA×VI 6 najkrótszych ściez·ek ze wszystkich wierzcho÷ ków do ustalonego wierzcho÷ ka t (najkrótsze ściez·ki z jednym ujściem). Szukanie najkrótszych ściez·ek miedzy ¾ wszystkimi parami wierzcho÷ ków. Oczywiście, znajac ¾ rozwiazanie ¾ problemu w jednym z wariantów, potra…my go rozwiazać ¾ w dwu pozosta÷ ych. Ze wzgledu ¾ na wydajność, dla róz·nych wariantów problemu stosuje sie¾ jednak róz·ne algorytmy. Na wyk÷ adzie ograniczymy sie¾ do dwóch algorytmów rozwiazuj ¾ acych ¾ problem najkrótszych ściez·ek z jednym źród÷ em. Zaczniemy od kilku uwag pokazujacych, ¾ z·e rozwaz·ania moz·emy ograniczyć do skierowanych grafów prostych. Jeśli wierzcho÷ ek b jest osiagalny ¾ z wierzcho÷ ka a, to istnieje najkrótsza ściez·ka z a do b w której nie powtarzaja¾ sie¾ wierzcho÷ ki, a wiec ¾ nie ma petli. ¾ Oznacza to, z·e usuniecie ¾ petli ¾ z grafu [digrafu] nie zmienia wag najkrótszych ściez·ek. Moz·emy wiec ¾ ograniczyć sie¾ do szukania najkrótszych ściez·ek w grafach i digrafach bez petli. ¾ Wagi najkrótszych ściez·ek nie zmienia¾ sie¾ równiez·, jeśli spośród kraw¾ edzi wielokrotnych ÷ acz ¾ acych ¾ ustalone wierzcho÷ ki usuniemy wszystkie oprócz kraw¾ edzi o najmniejszej wadze (jednej). Moz·emy wiec ¾ ograniczyć rozwaz·ania do grafów i digrafów bez kraw¾ edzi wielokrotnych, a uwzgledniaj ¾ ac ¾ poprzedni punkt, do grafów [digrafów] prostych. Przypuśćmy, z·e znamy metode¾ szukania najkrótszych ściez·ek dla skierowanych grafów prostych. Niech (G; w) bedzie ¾ nieskierowanym grafem prostym z wagami. Rozwaz·my skierowana¾wersje¾ grafu G, czyli digraf GS o tych samych wierzcho÷ kach oraz kraw¾ edziach zde…niowanych warunkiem (a; b) 2 EGS , fa; bg 2 EG : W digra…e GS de…niujemy wagi przyjmujac ¾ wS ((a; b)) = w (fa; bg). Za÷ oz·yliśmy, z·e w digra…e waz·onym (GS ; wS ) potra…my znaleźć najkrótsza¾ ściez·k¾ e d miedzy ¾ pewnymi wierzcho÷ kami. ×atwo sprawdzić, z·e najkrótsza¾ ściez·ka¾ miedzy ¾ tymi wierzcho÷ kami w 0 (G; w) jest ściez·ka d powsta÷ a z d przez zastapienie ¾ kraw¾ edzi (ai 1 ; ai ) kraw¾ edziami fai 1 ; ai g. Tak wiec ¾ moz·emy ograniczyć nasze rozwaz·ania do skierowanych grafów prostych. Ćwiczenie 4. Pokaza´c, ·ze je·zeli d = a0 a1 : : : an jest najkrótsza¾´scie·zka¾z a0 do an w prostym digra…e wa·zonym (GS ; wS ), to d0 = a0 a1 : : : an jest najkrótsza¾´scie·zka¾ miedzy ¾ tymi wierzcho÷kami w (G; w). Szukanie najkrótszych ściez·ek w prostych grafach skierowanych zaczniemy od udowodnienia dwóch ÷ atwych, ale bardzo przydatnych w÷ asności. W÷ asność 2. Pod´scie·zki najkrótszych ´scie·zek sa¾ najkrótszymi ´scie·zkami, tzn. je´sli d = a0 a1 : : : an jest najkrótsza¾´scie·zka¾ z a0 do an w wa·zonym gra…e skierowanym (G; w), to dla dowolnych 0 i < j n, pod´scie·zka d0 = ai : : : aj jest najkrótsza¾´scie·zka¾z ai do aj . Dowód. Przypuśćmy nie wprost, z·e istnieje ściez·ka d00 z ai do aj taka, z·e w (d00 ) < w (d0 ). Wtedy ściez·ka de = a0 : : : ai d00 aj : : : an TEORIA GRAFÓW I SIECI - ROZDZIA×VI 7 ÷ aczy ¾ a0 z an oraz w de < w (d), co jest sprzeczne z za÷ oz·eniem. W÷ asność 3 (Nierówność trójkata). ¾ Dla dowolnego wierzcho÷ka s i dowolnej krawedzi ¾ (a; b) grafu skierowanego z wagami (G; w) zachodzi m (s; b) m (s; a) + w (a; b) : Dowód. Za÷ óz·my najpierw, z·e a nie jest osiagalny ¾ z s. Nie istnieje wiec ¾ najkrótsza ściez·ka z s do a i stad ¾ m (s; a) + w (a; b) = 1 + w (a; b) = 1 m (s; b) : Za÷ óz·my z kolei, z·e a jest osiagalny ¾ z s. Z w÷ asności 1 wynika, z·e istnieje najkrótsza ściez·ka dsa z s do a. Dodajac ¾ do niej kraw¾ edź (a; b) dostajemy sciez·k¾ e dsa b ÷ acz ¾ ac ¾ a¾ s z b. Zatem m (s; b) w (dsa b) = w (dsa ) + w (b) = m (s; a) + w (a; b) : Niech G = (V; E) bedzie ¾ digrafem z wagami, zaś s ustalonym wierzcho÷ kiem G. Drzewem najkrótszych ściez·ek o korzeniu s nazywamy podgraf G0 = (V0 ; E0 ) digrafu G taki, z·e V0 sk÷ ada sie¾ ze wszystkich wierzcho÷ ków osiagalnych ¾ z s. G0 jest drzewem skierowanym z korzeniem s. Dla dowolnego wierzcho÷ ka a 2 V0 , jedyna ściez·ka z s do a w G0 jest najkrótsza¾ściez·ka¾ z s do a w G. Rozwaz·my waz·ony graf skierowany Wagi najkrótszych ściez·ek z wierzcho÷ ka s wynosza:¾ m (s; s) = 0; m (s; a) = 3; m (s; b) = 9; m (s; c) = 5; m (s; d) = 11 Drzewami najkrótszych ściez·ek sa¾ np. Omówimy dwa algorytmy rozwiazujace ¾ problem najkrótszych ściez·ek z jednym źród÷ em w prostym digra…e z wagami - algorytm Bellmana-Forda i algorytm Dijkstry. Istota dzia÷ ania obu algorytmów jest podobna. Dla ustalonego wierzcho÷ ka s, buduja¾one dwa wektory: p = [p (a)]a2V i l = [l (a)]a2V . Pierwszy jest wektorem poprzedników drzewa najkrótszych ściez·ek o korzeniu s. Jego znajomość pozwala na wyznaczenie najkrótszych ściez·ek z s do innych wierzcho÷ ków grafu. Drugi wektor przechowuje wagi najkrótszych ściez·ek o poczatku ¾ TEORIA GRAFÓW I SIECI - ROZDZIA×VI 8 s. Wektory sa¾ w stopniowo "poprawiane" w trakcie analizy kolejnych fragmentów grafu. Na poczatku ¾ jedyna¾ znana¾ nam najkrótsza¾ ściez·ka¾ jest ściez·ka trywialna z s do s. Zatem przyjmujemy l (s) = 0 i p (s) = ; (s nie ma na tej ściez·ce poprzednika). Dla pozosta÷ ych wierzcho÷ ków najkrótsze ściez·ki nie sa¾ znane. Przyjmujemy wiec ¾ p (a) = ; i l (a) = 1 dla a 6= s. Ustawienie wartości poczatkowych ¾ jest realizowane przez procedure¾ Init Init(G; s) for kaz·dy a 2 VG do l (a) := 1 p (a) := ; l (s) := 0 Po zainicjowaniu algorytmy rozpoczynaja¾"poprawianie" wektorów p i l. Polega to na badaniu kolejnych kraw¾ edzi i sprawdzaniu czy uwzglednienie ¾ badanej kraw¾ edzi nie zmniejszy wagi którejś ze znalezionych do tej pory najkrótszych ściez·ek. Operacja ta nazywa sie¾ relaksacja¾ krawedzi. ¾ Jest realizowana przez procedure¾ Relax. Relax(a; b) if l (a) + w (a; b) < l (b) then l (b) := l (a) + w (a; b) p (b) := a Przed rozpoczeciem ¾ relaksacji sa¾ zde…niowane biez·ace ¾ wartości l (a) i l (b), czyli wagi najkrótszych spośród znalezionych do tej pory ściez·ek z s do a i z s do b (moga¾ być równe 1 jez·eli z·adna ściez·ka nie zosta÷ a znaleziona). Mamy równiez· wierzcho÷ ki p (a) i p (b) bed ¾ ace ¾ poprzednikami a i b na tych ściez·kach (moz·e być ;). Rozwaz·my przypadek gdy l (a) < 1 oraz l (b) < 1. Oznacza to, z·e najkrótsza znaleziona do tej pory ściez·ka z s do a ma wage¾ l (a) i jest postaci dsa = s : : : p (a) a, zaś najkrótsza znaleziona do tej pory ściez·ka z s do b ma wage¾ l (b) i jest postaci dsb = s : : : p (b) b. Przyk÷ adowo przed rozpoczeciem ¾ relaksacji kraw¾ edzi (a; b) mamy l (a) = 9, l (b) = 13 oraz w (a; b) = 3. Procedura relaksacji bada czy po dodaniu kraw¾ edzi (a; b) do ściez·ki dsa dostaniemy ściez·k¾ eo mniejszej wadze niz· waga ściez·ki dsb . Jez·eli tak, to ściez·ka dsa b staje sie¾ najkrótsza¾(aktualnie) ściez·ka¾ z s do b. Jej wage¾ l (a) + w (a; b) wstawiamy wiec ¾ w l (b), zaś poprzednik b na tej ściez·ce, czyli a wstawiamy w p (b). W naszym przyk÷ adzie mamy l (a) + w (a; b) = 12 < l (b). TEORIA GRAFÓW I SIECI - ROZDZIA×VI 9 Zatem po relaksacji dostaniemy l (b) = 12 i p (b) = a. Jeśli waga ściez·ki dsa b nie jest mniejsza niz· waga dsa , to relaksacja nie wprowadza zmian. Jak wspomnieliśmy, algorytmy Bellmana-Forda i Dijkstry wykonuja¾ pewien zestaw relaksacji kraw¾ edzi. Róz·nica polega na liczbie i kolejności tych relaksacji. Niech (G; w) bedzie ¾ prostym grafem skierowanym z wagami, s dowolnym wierzcho÷ kiem G oraz n niech oznacza ilość wierzcho÷ ków tego grafu. Algorytm Bellmana-Forda polega na wykonaniu n 1 relaksacji wszystkich kraw¾ edzi grafu. Bellman-Ford(G; w; s) Init(G; s) for i := 1 to n 1 do for kaz·da kraw¾ edź (a; b) 2 E do Relax(a; b) Twierdzenie 3. Niech (G; w) bedzie ¾ prostym grafem skierowanym z wagami oraz s wierzcho÷kiem G. Wynikiem dzia÷ania procedury Bellman-Ford sa¾wektory l, p takie, ·ze (a) l (a) = m (s; a) dla a 2 V , czyli l sk÷ada sie¾ z wag najkrótszych ´scie·zek o poczatku ¾ s, (b) p jest wektorem poprzedników w G, (c) Gp jest drzewem najkrótszych ´scie·zek o korzeniu s. Dowód. Udowodnimy najpierw, z·e w dowolnym miejscu procedury Bellman-Ford zachodzi (1) l (x) m (s; x) dla x 2 V . Bezpośrednio po zainicjowaniu warunek zachodzi bo l (s) = 0 = m (s; s) oraz l (a) = 1 m (s; a) dla a 6= s. Pokaz·emy, z·e warunek (1) jest niezmiennikem relaksacji. Za÷ óz·my, z·e warunek zachodzi przed relaksacja¾ kraw¾ edzi (a; b). Wystarczy pokazać, z·e po relaksacji warunek zachodzi dla wierzcho÷ ka x = b (relaksacja mog÷ a zmienić tylko l (b)). Jeśli relaksacja zmieni÷ a wartość l (b), to korzystajac ¾ z nierówności (1) dla wierzcho÷ ka a oraz nierówności trójkata ¾ (w÷ asność 3) dostajemy l (b) = l (a) + w (a; b) m (s; a) + w (a; b) m (s; b) ; co kończy dowód (1). Pokaz·emy z kolei, z·e dla dowolnego x 2 V (2) Równość l (x) = m (s; x) jest niezmiennikiem relaksacji. W wyniku relaksacji wartość l (x) nie moz·e sie¾ zwiekszyć. ¾ Zatem (2) wynika z (1). Warunek (2) oznacza, z·e jeśli w trakcie wykonywania procedury, l (x) osiagnie ¾ wartość m (s; x), to juz· sie¾ nie zmieni. TEORIA GRAFÓW I SIECI - ROZDZIA×VI 10 Moz·emy przejść do dowodu warunku (a). Weźmy dowolny a 2 V . Mamy pokazać, z·e po wykonaniu ostatniej relaksacji zachodzi (3) l (a) = m (s; a). Jez·eli a nie jest osiagalny ¾ z s, to m (s; a) = 1 i na podstawie (1), l (s) = 1 = m (s; a). Jez·eli a = s, to po zainicjowaniu algorytmu mamy l (s) = 0 = m (s; s). Z (2) wnioskujemy, z·e równość pozostanie prawdziwa w trakcie wszystkich iteracji. Za÷ óz·my na koniec, z·e a jest osiagalny ¾ z s oraz a 6= s. Z w÷ asności 1 wynika, z·e istnieje najkrótsza ściez·ka sa1 : : : ak , która jest ściez·ka¾ bez powtarzajacych ¾ sie¾ wierzcho÷ ków (oznaczamy ak = a). Oczywiście 1 k n 1. Procedura Bellman-Ford wykonuje n 1 razy relaksacje¾ wszystkich kraw¾ edzi. Zatem ciag ¾ wszystkich relaksacji zawiera relaksacje kolejnych kraw¾ edzi ze ściez·ki sa1 : : : ak : : : (s; a1 ) : : :: : : (a1 ; a2 ) : : : : : : : : : (ak 1 ; ak ) : : : : : : | {z }| {z } | {z } i=1 i=2 i=k Po zainicjowaniu algorytmu równość (3) zachodzi dla wierzcho÷ ka a0 = s. Chcemy udowodnić (3) dla ak . W tym celu wystarczy pokazać, z·e jeśli przed relaksacja¾ kraw¾ edzi (ai 1 ; ai ) zachodzi równość l (ai 1 ) = m (s; ai 1 ), to po wykonaniu tej relaksacji mamy l (ai ) = m (s; ai ) (krok indukcyjny). Z w÷ asności 2 wynika, z·e sa1 : : : ai jest najkrótsza¾ ściez·ka¾ z s do ai . Zatem z de…nicji relaksacji i za÷ oz·enia indukcyjnego dostajemy def. relaksacji l (ai ) l (ai 1 ) + w (ai 1 ; ai ) za÷. ind. = m (s; ai 1 ) + w (ai 1 ; ai ) . w (sa1 : : : ai 1 ) + w (ai 1 ; ai ) = w (sa1 : : : ai ) = m (s; ai ) : Z (1) wnioskujemy zatem, z·e l (ai ) = m (s; ai ), co kończy dowód warunku (a). Udowodnimy teraz (b). Po zainicjowaniu algorytmu mamy p (s) = ; i l (s) = 0 = m (s; s). Na podstawie (2), z·adna relaksacja nie zmieni wartości l (s). W konsekwencji nie zmieni sie¾ równiez· wartość p (s), czyli w dowolnym miejscu procedury Bellman-Ford zachodzi p (s) = ;. Niech a bedzie ¾ wierzcho÷ kiem, dla którego na końcu procedury zachodzi p (a) 6= ;, czyli p (a) = b 2 V . Końcowa wartość p (a) musia÷ a zostać nadana w trakcie relaksacji kraw¾ edzi (b; a). Oznacza to, z·e (p (a) ; a) = (b; a) 2 E. Wynika stad, ¾ z·e p jest wektorem poprzedników w G, czyli zachodzi (b). Aby udowodnić (c) nalez·y pokazać, z·e po zakończeniu procedury Bellman-Ford, para Gp = (Vp ; Ep ) spe÷ nia warunki (4) a 2 Vp , a jest osiagalny ¾ z s. (5) Gp jest drzewem skierowanym z korzeniem s. (6) Dla kaz·dego a 2 Vp ściez·ka z s do a w Gp jest najkrótsza¾ ściez·ka¾ z s do a w G. Z de…nicji wynika, z·e relaksacja albo zmienia obie wartości l (a) i p (a), albo nie zmienia z·adnej. Zatem dla a 6= s, w dowolnym miejscu procedury, nierówność l (a) < 1 zachodzi wtedy i tylko wtedy, gdy p (a) 6= ;. Na końcu procedury mamy wiec ¾ a 2 Vp , p (a) 6= ; _ a = s , m (s; a) = l (a) < 1 , a jest osiagalny ¾ z s; TEORIA GRAFÓW I SIECI - ROZDZIA×VI 11 czyli zachodzi (4). Bezpośrednio po zainicjowaniu algorytmu mamy Gp = (fsg ; ;), czyli warunek (5) jest prawdziwy. Pokaz·emy, z·e (5) jest niezmiennikiem relaksacji. Za÷ óz·my, z·e przed relaksacja¾ kraw¾ edzi (a; b) graf Gp jest drzewem skierowanym o korzeniu s. Z twierdzenia ?? wynika, z·e (7) szkielet grafu Gp jest spójny, (8) indeg s = 0, (9) indeg a = 1 dla a 6= s. Musimy pokazać, z·e warunki te zachodza¾ po relaksacji kraw¾ edzi (a; b). Zauwaz·my przede wszystkim, z·e (8) wynika z udowodnionej wcześniej równości p (s) = ;. Moz·emy za÷ oz·yć, z·e ralaksacja zmienia l (b) i p (b). Zatem przed relaksacja¾ mamy l (a) + w (a; b) < l (b). W konsekwencji l (a) < 1, czyli p (a) 6= ;, a wiec ¾ a 2 Vp . W wyniku relaksacji kraw¾ edzi (a; b) w Gp nastapi÷ ¾ y nastepuj ¾ ace ¾ zmiany Jeśli przed relaksacja¾ by÷ o p (b) = ;, to relaksacja doda÷ a do Gp wierzcho÷ ek b oraz kraw¾ edź (a; b). Jeśli przed relaksacja¾ by÷ o p (b) = c 2 V , to relaksacja usune÷ ¾ a¾ z Gp kraw¾ edź (c; b) i doda÷ a kraw¾ edź (a; b). ×atwo sprawdzić, z·e w obu przypadkach warunki (7) i (9) zachodza¾ po zakończeniu relaksacji. Wynika stad, ¾ z·e (5) zachodzi w dowolnym miejscu procedury. Do zakończenia dowodu zosta÷ o pokazanie, z·e po zakończeniu procedury zachodzi (6). Niech (a; b) bedzie ¾ kraw¾ edzia¾ w Gp , czyli a = p (b). Wartość p (b) musia÷ a zostać nadana w trakcie relaksacji kraw¾ edzi (a; b). W trakcie tej relaksacji zosta÷ a tez· nadana wartość l (b) = l (a) + w (a; b) i wartości tej nie zmieni÷ a z·adna nastepna ¾ relaksacja. Zatem po zakończeniu procedury mamy w (a; b) = l (b) l (a) = m (s; b) m (s; a) : Dla dowolnej nietrywialnej ściez·ki sa1 : : : ak w Gp zachodzi wiec ¾ w (sa1 : : : ak ) = w (sa1 ) + w (a1 a2 ) + : : : + w (ak 1 ak ) = = (m (s; a1 ) = m (s; ak ) m (s; s)) + (m (s; a2 ) m (s; s) = m (s; ak ) ; m (s; a1 )) + : : : + (m (s; ak ) m (s; ak 1 )) = TEORIA GRAFÓW I SIECI - ROZDZIA×VI 12 czyli sa1 : : : ak jest najkrótsza¾ ściez·ka¾ z s do ak w G. Wynika stad ¾ (6). Z dowodu wynika, z·e algorytm Bellmana-Forda moz·e znaleźć najkrótsześciez·ki po mniejszej niz· n 1 liczbie iteracji. Potrzebna ilość iteracji jest równa maksymalnej liczbie kraw¾ edzi w najkrótszych ściez·kach ze źród÷ a s. W ksia¾z·ce "Wprowadzenie do algorytmów" jest omówiona ogólniejsza wersja algorytmu Bellmana-Forda. Dopuszczane sa¾ tam ujemne wagi kraw¾ edzi, pod warunkiem, z·e graf nie zawiera cykli o ujemnych wagach osiagalnych ¾ ze źród÷ a. Algorytm Bellmana-Forda nie jest zbyt szybki. Jego z÷ oz·oność obliczeniowa wynosi O (V E). Omówimy teraz algorytm Dijkstry, który dzieki ¾ odpowiedniej kolejności relaksacji, redukuje ich liczbe. ¾ Dowód poprawności tego algorytmu pominiemy. Opiera sie¾ on na tych samych metodach co dowód poprawności algorytmu Bellmana-Forda. Moz·na go znaleźć w ksia¾z·kach "Wprowadzenie do algorytmów" oraz "Matematyka dyskretna". Algorytm Dijkstry wykorzystuje zmienna¾V0 , w której pamietany ¾ jest zbiór przetworzonych wierzcho÷ ków czyli takich, dla których znaleźliśmy rzeczywiste najkrótsze ściez·ki. Dijkstra(G; w; s) Init(G; s) V0 := ; while V0 6= V do znajdź a 2 V n V0 o minimalnej etykiecie l (a) V0 := V0 [ fag for kaz·dy wierzcho÷ ek b 2 V n V0 do if (a; b) 2 E then Relax(a; b) Procedura w pierwszej iteracji znajduje źród÷ o s, dodaje je do V0 oraz wykonuje relaksacje wszystkich kraw¾ edzi wychodzacych ¾ z s. W kolejnych iteracjach znajdowane sa¾ wierzcho÷ ki o najmniejszej etykiecie l (a) i wykonywane sa¾ relaksacje kraw¾ edzi ÷ acz ¾ acych ¾ a z nieprzetworzonymi sasiadami. ¾ Twierdzenie 4. Niech (G; w) bedzie ¾ prostym grafem skierowanym z wagami oraz s wierzcho÷kiem G. Wynikiem dzia÷ania procedury Dijkstra sa¾wektory l, p takie, ·ze (a) l (a) = m (s; a) dla a 2 V , (b) p jest wektorem poprzedników w G, (c) Gp jest drzewem najkrótszych ´scie·zek o korzeniu s. Twierdzenie daje sie¾ wzmocnić. Moz·na pokazać, z·e po wykonaniu dowolnej liczby iteracji, równość l (a) = m (s; a) zachodzi dla a 2 V0 . Oznacza to, z·e znane sa¾ wagi najkrótszych ściez·ek do przetworzonych wierzcho÷ ków. Wektor p pozwala wyznaczyć te ściez·ki. Wynika stad, ¾ z·e algorytm Dijkstry moz·e s÷ uz·yć do szukania najkrótszej ściez·ki miedzy ¾ ustalonymi wierzcho÷ kami a i b. Traktujemy wtedy a jako źród÷ o i przerywamy procedure¾ w momencie gdy wierzcho÷ ek b zostanie dodany do V0 . Algorytm Dijkstry ma z÷ oz·oność obliczeniowa¾O (V 2 ). Jeśli stosujemy go do grafów wystar2 czajaco ¾ rzadkich, to przy odpowiedniej implementacji moz·na uzyskać O lnV V . TEORIA GRAFÓW I SIECI - ROZDZIA×VI W poniz·szym gra…e szukamy najkrótszych ściez·ek ze źród÷ a a. 13 TEORIA GRAFÓW I SIECI - ROZDZIA×VI a b c d e f g h INIT 1 0 ; 1 2 ; a 1 6 ; a 1 7 ; a 1 1 ; ; 1 1 ; ; 1 1 ; ; 1 1 ; ; 2 5 b 7 a 9 b 17 b 1 ; 1 ; 3 7 a 9 b 17 b 8 c 1 ; 4 9 b 16 d 8 c 1 ; 5 6 9 b 16 d 16 d 14 g 14 g 7 14 8 16 d m (a; h) = l (h) = 14 p p p p h !g !c !b !a Najkrótsza ściez·ka z a do h: abcgh Ćwiczenie 5. (Dla bardzo pracowitych). Wyznaczy´c najkrótsze ´scie·zki w gra…e z ostatniego przyk÷adu przy pomocy algorytmu Bellmana-Forda. Ćwiczenie 6. Korzystajac ¾ z algorytmu Dijkstry wyznaczy´c najkrótsze´scie·zki z wierzcho÷ka s oraz ich wagi. (1) (2) TEORIA GRAFÓW I SIECI - ROZDZIA×VI 15 (3) Wspomnijmy jeszcze o problemie najkrótszych ściez·ek miedzy ¾ wszystkimi parami wierzcho÷ ków. Problem moz·na rozwiazać ¾ traktujac ¾ kolejne wierzcho÷ ki jako źród÷ o i stosujac ¾ algorytm Dijkstry. Nie jest to jednak rozwiazanie ¾ optymalne. Istnieja¾ szybsze algorytmy rozwiazania ¾ tego problemu. Dwa z nich: algorytm Floyda-Warshalla i algorytm Johnsona sa¾ opisane w ksia¾z·ce "Wprowadzenie do algorytmów". Algorytmy te opieraja¾ sie¾ na innych pomys÷ ach niz· algorytm Bellmana-Forda i algorytm Dijkstry. Omówimy teraz krótko dwa klasyczne problemy zwiazane ¾ z szukaniem najkrótszych ściez·ek. Problem komiwojaz·era. Komiwojaz·er ma odwiedzić n miast. Znane sa¾ odleg÷ ości miedzy ¾ miastami. Szukamy najkrótszej drogi przechodzacej ¾ przez kaz·de miasto dok÷ adnie raz i wracajacej ¾ do punktu wyjścia. W jezyku ¾ teorii grafów problem przyjmuje nastepuj ¾ ac ¾ a¾ postać. (PK) W pe÷nym gra…e z wagami znale´z´c cykl Hamiltona o najmniejszej wadze. Podane sformu÷ owanie jest podstawowa¾wersja¾problemu komiwojaz·era. Rozwaz·ane sa¾jednak równiez· inne wersje. Podamy tutaj "bardziej z·yciowa" ¾ wersje¾ tego problemu. Graf pe÷ ny zastapimy ¾ spójnym i zrezygnujmy z wymagania by kaz·de miasto by÷ o odwiedzone dok÷ adnie raz. Dostajemy zatem nastepuj ¾ acy ¾ problem. (PK2) W spójnym gra…e z wagami znale´z´c najkrótsza´scie ¾ ¾ a¾zawierajac ¾ a¾wszystkie ·zke¾zamkniet wierzcho÷ki. W rozwaz·anym gra…e spójnym moz·emy oczywiście usunać ¾ wszystkie petle ¾ i wszystkie kraw¾ edzie wielokrotne, oprócz tych o najmniejszej wadze (jednej dla kaz·dej pary wierzcho÷ ków sasiednich). ¾ Oznacza to, z·e moz·emy ograniczyć rozwaz·ania do grafów prostych. Niech G = (V; E) bedzie ¾ prostym grafem spójnym oraz w : E ! [0; 1) funkcja¾ wag. Dla dowolnych a; b 2 V oznaczmy przez dab najkrótsza¾ściez·k¾ e z a do b. Niech G0 = (V; E0 ) bedzie ¾ grafem pe÷ nym o tych samych wierzcho÷ kach co G. Wagi w G0 de…niujemy przyjmujac: ¾ w0 (ab) = w (dab ) = m (a; b) : W÷ asność 4. Dla dowolnych wierzcho÷ków a; b; c TEORIA GRAFÓW I SIECI - ROZDZIA×VI 16 (1) Je´sli ab 2 E, to w0 (ab) w (ab), (2) w0 (ac) w0 (ab) + w0 (bc) (warunek trójkata). ¾ Ćwiczenie 7. Udowodni´c w÷asno´s´c 4. Twierdzenie 5. Niech (G; w) bedzie ¾ spójnym grafem prostym z wagami oraz (G0 ; w0 ) odpowiadajacym ¾ mu grafem pe÷nym. Je·zeli a1 a2 : : : an jest najkrótsza¾´scie·zka¾ z a1 do an w G0 , to d = da1 a2 da2 a3 : : : dan 1 an jest najkrótsza¾´scie·zka¾z a1 do an w G oraz w (d) = w0 (a1 a2 : : : an ) : Dowód. Równość w (d) = w0 (a1 a2 : : : an ) wynika z de…nicji w0 . Przypuśćmy nie wprost, z·e istnieje w G ściez·ka d0 z a1 do an krótsza niz· d. Wtedy z w÷ asności 4 dostajemy w0 (a1 a2 : : : an ) w0 (d0 ) w (d0 ) < w (d) = w0 (a1 a2 : : : an ) : Otrzymana sprzeczność kończy dowód. Twierdzenie 6. W pe÷nym gra…e z wagami spe÷niajacymi ¾ warunek trójkata ¾ istnieje cykl Hamiltona bed ¾ acy ¾ rozwiazaniem ¾ (PK2). Dowód. Pokaz·emy, z·e dla dowolnej ściez·ki zamknietej ¾ d zawierajacej ¾ wszystkie wierzcho÷ ki grafu istnieje cykl Hamiltona hd taki, z·e (1) w (hd ) w (d) : Moz·emy oczywiście za÷ oz·yć, z·e d nie jest cyklem Hamiltona, czyli w d powtarza sie¾ pewien wierzcho÷ ek a: d = a : : : xay : : : a: Przyjmijmy d1 = ( a : : : xy : : : a ; x 6= y; a : : : x : : : a ; x = y: Ściez·ka d1 zawiera wszystkie wierzcho÷ ki, jest zamknieta ¾ i ma mniej kraw¾ edzi niz· d. Z warunku trójkata ¾ i nieujemności wag wynika, z·e w (d1 ) w (d). Jez·eli w d1 powtarzaja¾sie¾ wierzcho÷ ki, to stosujac ¾ analogiczne rozumowanie znajdziemy ściez·k¾ e d2 zamkniet ¾ a, ¾ zawierajac ¾ a¾ wszystkie wierzcho÷ ki, spe÷ niajac ¾ a¾ nierówność w (d2 ) w (d1 ) oraz majac ¾ a¾ mniej kraw¾ edzi niz· d1 . Kontynuujac ¾ takie postepowanie ¾ (indukcja), po skończonej liczbie kroków znajdziemy cykl Hamiltona spe÷ niajacy ¾ (1). Poniewaz· w gra…e jest skończona ilość cykli Hamiltona, wiec ¾ istnieje cykl Hamiltona h0 o najmniejszej wadze. Cykl ten jest rozwiazaniem ¾ problemu (PK2), bo dla dowolnej ściez·ki zamknietej ¾ d zawierajacej ¾ wszystkie wierzcho÷ ki mamy w (h0 ) w (hd ) w (d) : Ćwiczenie 8. Rozwiaza´c ¾ problem komiwoja·zera w gra…e G0 z ostatniego przyk÷adu oraz w gra…e G (w wersji (PK2)). TEORIA GRAFÓW I SIECI - ROZDZIA×VI 17 Z dwóch ostatnich twierdzeń wynika, z·e problem (PK2) moz·na sprowadzić do nastepujacego ¾ zagadnienia. (PK3) W pe÷nym gra…e z wagami spe÷niajacymi ¾ warunek trójkata ¾ znale´z´c cykl Hamiltona o minimalnej wadze. Jest to szczególny przypadek problemu komiwojaz·era nazywany problemem komiwojaz·era z warunkiem trójkata. ¾ Podstawowym zagadnieniem dotyczacym ¾ problemu komiwojaz·era jest pytanie o istnienie "szybkiego" algorytmu rozwiazuj ¾ acego ¾ ten problem, tzn. dzia÷ ajacego ¾ w czasie wielomicenie grafu prostego anowym (f (n) = O nk dla pewnej liczby naturalnej k). Przekszta÷ (G; w) w graf pe÷ ny (G0 ; w0 ) polega na znalezieniu najkrótszych ściez·ek miedzy ¾ wszystkimi parami wierzcho÷ ków grafu. Z wcześniejszych rozwaz·ań wynika, z·e moz·na to zrobić w czasie wielomianowym. Gdyby zatem uda÷ o sie¾ w czasie wielomianowym znaleźć rozwiazanie ¾ (PK3), to potra…libyśmy równiez· znaleźć podobne rozwiazanie ¾ dla (PK2). Okazuje sie¾ jednak, z·e nawet dla problemu komiwojaz·era z warunkiem trójkata ¾ nie jest znany z·aden algorytm rozwiazuj ¾ acy ¾ ten problem w czasie wielomianowym. Nie zosta÷ o jednak udowodnione, z·e taki algorytm nie istnieje. Problem komiwojaz·era (w obu wersjach) nalez·y do klasy problemów NP-trudnych. Znalezienie rozwiazania ¾ któregokolwiek problemu NP-trudnego w czasie wielomianowym zapewnia istnienie podobnego rozwiazania ¾ dla szerokiej klasy problemów NP-zupe÷ nych (dla nich tez· takie rozwiazania ¾ nie sa¾ znane). Wed÷ ug niektórych informatyków uprawdopodobnia to hipoteze, ¾ z·e rozwiazania ¾ w czasie wielomianowych problemów NP-trudnych i NP-zupe÷ nych nie istnieja¾ (bo mimo olbrzymiej ilości prób z·adne nie zosta÷ o do tej pory znalezione). W praktyce do rozwiazywania ¾ problemu komiwojaz·era stosuje sie¾ algorytmy aproksymacyjne, dajace ¾ rozwiazania ¾ przybliz·one. Problem chińskiego listonosza (Mei-Ku Kuan, 1962). Listonosz wychodzi z poczty, przechodzi przez wszystkie ulice w swoim rejonie i wraca na poczte. ¾ Znaleźć najkrótsza¾ droge¾ jaka¾ musi pokonać. W jezyku ¾ teorii grafów problem ten brzmi nastepuj ¾ aco. ¾ (PChL) W spójnym gra…e z wagami znale´z´c najkrótsza´scie ¾ ¾ a¾zawierajac ¾ a¾wszystkie ·zke¾zamkniet krawedzie. ¾ Podobnie jak w przypadku problemu komiwojaz·era, nie jest znany z·aden algorytm rozwiazu¾ jacy ¾ problem chińskiego listonosza w czasie wielomianowym. Poniz·ej podamy rozwiaza¾ nia tego problemu w dwóch specy…cznych przypadkach. Najprostszy jest przypadek grafu eulerowskiego. W÷ asność 5. Je·zeli (G; w) jest eulerowskim grafem z wagami, to rozwiazaniem ¾ problemu chi´nskiego listonosza jest dowolny cykl Eulera. W÷ asność 6. Je·zeli (G; w) jest pó÷eulerowskim grafem z wagami oraz a, b wierzcho÷kami stopnia nieparzystego, to rozwiazaniem ¾ problemu chi´nskiego listonosza jest po÷¾ aczenie ´scie·zki Eulera z a do b i najkrótszej ´scie·zki z b do a. TEORIA GRAFÓW I SIECI - ROZDZIA×VI 18 Ćwiczenie 9. Udowodni´c w÷asno´s´c 6. Ćwiczenie 10. Znale´z´c rozwiazanie ¾ problemu chi´nskiego listonosza dla poni·zszego grafu. Poczta znajduje sie¾ w wierzcho÷ku a.