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.

Podobne dokumenty