TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania...

137
G =(V,E ) V = {v 1 ,v 2 ,...,v n } E = {e 1 ,e 2 ,...,e m } e (u, v ) {u, v } {u, v }6 = {v,u} {u, v } {v,u} (u, v ) (v,u) (u, v )=(v,u)

Transcript of TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania...

Page 1: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

TEORIA GRAFÓW

Podstawowe de�nicje:

• Graf (nieskierowany) G = (V, E) � struktura skªadaj¡ca si¦ ze:

� zbioru wierzchoªków V = {v1, v2, . . . , vn} oraz

� zbioru kraw¦dzi E = {e1, e2, . . . , em}.

Z ka»d¡ kraw¦dzi¡ e skojarzona jest para wierzchoªków incydentnych

(u, v). Analiz¦ algorytmów grafowych mo»emy ograniczy¢ do przypad-

ków, w których para wierzchoªków jednoznacznie identy�kuje kraw¦d¹.

• Graf skierowany � dla ka»dej kraw¦dzi (oznaczanej tutaj jako ªuk) para

wierzchoªków incydentnych jest par¡ uporz¡dkowan¡ {u, v}.Zatem w gra�e skierowanym {u, v} 6= {v, u} ({u, v} i {v, u} oznacza dwa

ró»ne ªuki, podczas gdy w gra�e nieskierowanym (u, v) i (v, u) to ta

sama kraw¦d¹, tzn. (u, v) = (v, u)).

Page 2: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

• Ka»dej kraw¦dzi (ªukowi) b¦dziemy przypisywa¢ wag¦ (liczb¦), repre-

zentuj¡c¡ (w zastosowaniach praktycznych) np. dªugo±¢ drogi, koszt

budowy drogi, czas lub koszt przejazdu, niezawodno±¢ poª¡czenia, praw-

dopodobie«stwo przej±cia, przepustowo±¢.

• Rozmiar grafu b¦dziemy identy�kowa¢ przez liczb¦ wierzchoªków n

oraz liczb¦ kraw¦dzi (ªuków) m.

Page 3: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady grafów o rozmiarze n = 6 i m = 8

graf nieskierowany:

v1

v5

v4

v3

v2

v6

3

8

9

48

45

graf skierowany:

v1

v5

v4

v3

v2

v6

3 9

4 – 8

45

3

3

5

Page 4: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Struktury grafowe

Macierz wag � tablica 2-wymiarowa o rozmiarze n× n, w której warto±¢

na przeci¦ciu i-tego wiersza i j-tej kolumny oznacza wag¦ kraw¦dzi (i, j)

(ªuku {i, j}).

Je±li dany graf nie zawiera kraw¦dzi (i, j) to w odpowiadaj¡cej jej komórce

macierzy wpisujemy warto±¢ ∞. Warto±ci wyró»nione (zera, warto±ci uje-

mne, niesko«czono±ci, znaki nienumeryczne) znajduj¡ si¦ te» na przek¡tnej

macierzy (brak kraw¦dzi typu (i, i)).

Zauwa»my równie», »e macierz dla grafu nieskierowanego jest zawsze syme-

tryczna (w takim wypadku mo»na równie» przechowywa¢ tylko poªow¦ ma-

cierzy).

Zaj¦to±¢ pami¦ci � O(n2).

Page 5: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Lista kraw¦dzi � tablica 2-wymiarowa o rozmiarze m× 3 (lub 3 tablice

liniowe o dªugo±ci m), gdzie pierwsza kolumna (tablica) zawiera wierzchoªki

pocz¡tkowe, druga kolumna (tablica) � wierzchoªki ko«cowe, a trzecia ko-

lumna (tablica) � wagi wszystkich kraw¦dzi grafu. Kraw¦dzie nieistniej¡ce

nie musz¡ by¢ tutaj przechowywane.

Zaj¦to±¢ pami¦ci � O(m).

Page 6: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady struktur grafowych

3

8

9

48

45

5

[1]

[6]

[5]

[4]

[3]

[2]

[1] [2] [3] [4] [5] [6]

[1] – 5 3 4 8 9

[2] 5 – ∞ 4 ∞ 8

[3] 3 ∞ – ∞ 5 ∞

[4] 4 4 ∞ – ∞ ∞

[5] 8 ∞ 5 ∞ – ∞

[6] 9 8 ∞ ∞ ∞ –

Macierz wagA B W

(1) [1] [2] 5

(2) [1] [3] 3

(3) [1] [4] 4

(4) [1] [5] 8

(5) [1] [6] 9

(6) [2] [4] 4

(7) [2] [6] 8

(8) [3] [5] 5

Lista krawędzi

Page 7: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Poª¡czone listy s¡siadów � struktura skªadaj¡ca si¦ z tablicy n list, gdzie

lista dowi¡zana do komórki i-tej zawiera wszystkie kraw¦dzie incydentne z

wierzchoªkiem i-tym (waga kraw¦dzi i oznaczenie wierzchoªka).

Zauwa»my, »e w przypadku grafu nieskierowanego ka»da kraw¦d¹ (i, j) wy-

st¦puje w tej strukturze 2 razy � w li±cie i-tej oraz j-tej.

Zalet¡ struktury jest to, »e wszystkie kraw¦dzie (ªuki) z danego wierzchoªka

mamy zgrupowane w jednym miejscu (s¡ dost¦pne bez konieczno±ci prze-

szukiwania caªego grafu).

Zaj¦to±¢ pami¦ci � O(n + m).

Page 8: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

P¦k wyj±ciowy � odmiana poprzedniej struktury dla sytuacji, gdy nie wy-

konujemy na gra�e operacji dodawania / usuwania kraw¦dzi. Skªada si¦ z

3 tablic � pierwszej o dªugo±ci n oraz dwóch o dªugo±ci m.

Dwie ostatnie tablice zawieraj¡ odpowiednio etykiety wierzchoªków ko«co-

wych i wagi wszystkich kraw¦dzi, pogrupowane w zbiory ze sob¡ incydentne,

a pierwsza tablica (odpowiadaj¡ca wierzchoªkom pocz¡tkowym) zawiera

wska¹niki rozdzielaj¡ce poszczególne grupy (np. je±li wierzchoªek 1 ma

5 kraw¦dzi incydentnych, to komórki [1] i [2] pierwszej tablicy zawieraj¡

odpowiednio wska¹niki na komórki [1] i [6] tablicy drugiej).

Struktura posiada zalet¦ struktury wcze±niejszej � zgrupowanie kraw¦dzi

incydentnych poszczególnych wierzchoªków, przy braku typów wska¹niko-

wych.

Zaj¦to±¢ pami¦ci � O(n + m).

Page 9: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

[1]

[5]

[4]

[3]

[2]

[6]

3 9

4– 8

45

3

3

Przykłady struktur grafowych (c.d.)

[1]

[2]

[3]

[4]

[5]

[6]

[2] 5

Połączone listy sąsiadów

[3] 3 [4] 4 [6] 9

[1] 3 [6] -8

[1] 3

[2] 4

[1] 1[2] 5[3] 7[4] 8[5] -1[6] -1

Pęk wyjściowy

B W

[2] 5 (1)

[3] 3 (2)

[4] 4 (3)

[6] 9 (4)

[1] 3 (5)

[6] -8 (6)

[1] 3 (7)

[2] 4 (8)

Page 10: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Dalsze de�nicje

Droga (±cie»ka) z wierzch. v1 do vk w gra�e skierowanym G to ci¡g ªuków{{v1, v2}, {v2, v3}, . . . , {vk−1, vk}}, który mo»emy jednoznacznie okre±li¢ poprostu przez ci¡g (permutacj¦) wierzchoªków, przez które droga ta prze-biega, tj. {v1, v2, . . . , vk−1, vk}.

Wag¡ drogi b¦dziemy okre±la¢ sum¦ wag ªuków j¡ tworz¡cych.

Cykl � droga zamkni¦ta, tzn. taka, »e v1 = vk.

Graf acykliczny � graf nie zawieraj¡cy cykli.

Zauwa»my, »e z wierzchoªka s do t mo»e istnie¢ wiele ró»nych dróg, zatemnajkrótsz¡ drog¡ b¦dzie ta spo±ród dróg, która ma najmniejsz¡ wag¦.

Podgraf G′ = (V ′, E′) grafu G = (V, E) to graf o rozmiarze n′ ≤ n i m′ ≤ m,dla którego V ′ ⊆ V oraz E′ ⊆ E (tzn. wszystkie wierzchoªki i ªuki G′ nale»¡do G).

Page 11: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Graf spójny (nieskierowany) � graf, dla którego istnieje droga mi¦dzy

ka»d¡ par¡ wierzchoªków. Spójny graf skierowany to taki, którego wersja

nieskierowana jest spójna.

Drzewo � spójny, nieskierowany graf acykliczny. W drzewie, jak w ka»dym

gra�e spójnym (nieskierowanym), istnieje droga mi¦dzy ka»d¡ par¡ wierz-

choªków. Zatem doª¡czenie nowej kraw¦dzi spowoduje powstanie cyklu,

a usuni¦cie jakiejkolwiek kraw¦dzi z drzewa spowoduje jego rozspójnienie.

Wreszcie, w drzewie m = n− 1.

Drzewo rozpinaj¡ce (spinaj¡ce) T = (V T , ET ) � podgraf (nieskierowa-

nego, spójnego) grafu G = (V, E), który jest spójny i V T = V . Graf spójny

mo»e zawiera¢ wiele (do nn−2) ró»nych drzew rozpinaj¡cych, z których to

o najmniejszej wadze nazywamy Minimalnym Drzewem Rozpinaj¡cym

(Spinaj¡cym) � MST (ang. Minimum Spanning Tree).

Page 12: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady dróg z wierzchołka v5 do v

6

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

Page 13: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady dróg z wierzchołka v5 do v

6

v1

v5

v4

v3

v2

v6

3

8

6

48

45

5

Droga D1 {v5,v

3,v

1,v

2,v

6}

Waga D1: 5+3+5+8 = 21

Page 14: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady dróg z wierzchołka v5 do v

6

v1

v5

v4

v3

v2

v6

3

8

6

48

45

5

Droga D1 {v5,v

3,v

1,v

2,v

6}

Waga D1: 5+3+5+8 = 21

Droga D2 {v5,v

1,v

4,v

6}

Waga D2: 8+4+6 = 18

Page 15: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady drzew MST

v1

v5

v4

v3

v2

v6

3

8

6

48

45

5

Drzewo MST1

Waga MST1: 3+8+4+4+6 = 25

Page 16: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Przykłady drzew MST

v1

v5

v4

v3

v2

v6

3

8

6

48

45

5

Drzewo MST1

Waga MST1: 3+8+4+4+6 = 25

Drzewo MST2

Waga MST2: 5+3+5+8+6 = 27

Page 17: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytmy wyznaczania MST

Algorytm KRUSKALA (1956)

polega na doª¡czaniu kolejno kraw¦dzi w porz¡dku ich niemalej¡cych wag,

o ile doª¡czana kraw¦d¹ nie utworzy cyklu z ju» wybranymi kraw¦dziami.

Aby wyznaczy¢ zªo»ono±¢ obliczeniow¡ algorytmu, musimy znale¹¢ efek-

tywn¡ metod¦ sprawdzania, czy doª¡czana kraw¦d¹ utworzy cykl z ju»

doª¡czonymi.

Page 18: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Zauwa»my, »e doª¡czane kraw¦dzie nie musz¡ tworzy¢ spójnego grafu z

ju» doª¡czonymi (spójny graf na pewno otrzymujemy w pierwszym kroku �

gdy mamy doª¡czon¡ tylko 1 kraw¦d¹ � i potem mo»emy otrzyma¢ dopiero

w ostatnim kroku � gdy otrzymujemy peªne drzewo).

Zatem powy»sz¡ procedur¦ mo»emy skonstruowa¢ w ten sposób, »e two-

rzymy tablic¦ C o rozmiarze n i przy jej pomocy kolorujemy wierzchoªki.

Na pocz¡tku ka»dej komórce przypisujemy inn¡ warto±¢ (reprezentuj¡c¡ ko-

lor danego wierzchoªka), np. C[i] = i dla i = 1,2, . . . , n.

W trakcie dziaªania procedury, wierzchoªki nale»¡ce do tego samego pod-

drzewa b¦d¡ posiada¢ ten sam kolor.

Zatem na pocz¡tku ka»dy wierzchoªek nale»y do innego poddrzewa, a na

ko«cu wszystkie wierzchoªki musz¡ nale»e¢ do tego samego poddrzewa.

Page 19: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Gdy chcemy doª¡czy¢ powiedzmy kraw¦d¹ (u, v), to musimy rozpatrzy¢

nast¦puj¡ce przypadki:

1. �aden wierzchoªek (ani u, ani v) jeszcze nie zostaª wybrany (tzn. nie

doª¡czono jeszcze kraw¦dzi, która byªaby incydentna z u lub z v).

Zatem ka»dy z nich ma inny kolor (taki, którego nie posiada »aden inny

wierzchoªek).

Wtedy wierzchoªkowi u nadajemy kolor wierzch. v (C[u] = C[v]) lub

odwrotnie (C[v] = C[u]) � oba wierzchoªki otrzymuj¡ ten sam kolor,

a wi¦c nale»¡ od teraz do tego samego (nowego) poddrzewa. Taka

operacja oczywi±cie nie utworzy cyklu, a wi¦c jest dopuszczalna.

2. Jeden wierzch., np. u, byª ju» wcze±niej wybrany, a drugi, v, jeszcze nie.

Zatem doª¡czenie kraw¦dzi (u, v) nie spowoduje powstania cyklu.

Wtedy wierzchoªek jeszcze nie wybrany musimy doª¡czy¢ do poddrzewa,

do którego nale»y wierzchoªek u (tzn. wierzchoªkowi v przypisujemy ko-

lor wierzchoªka u: C[v] = C[u]).

Page 20: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

3. Oba wierzchoªki ju» wcze±niej zostaªy wybrane, z tym »e nale»¡ do ró»-

nych poddrzew (wierzchoªki u i v posiadaj¡ wi¦c ró»ne kolory, podobnie

jak we wcze±niejszych przypadkach).

Zatem doª¡czenie kraw¦dzi spowoduje poª¡czenie dwóch ró»nych pod-

drzew, ale nie spowoduje to powstania cyklu. W tej sytuacji wszyst-

kie wierzchoªki jednego poddrzewa musz¡ przyj¡¢ kolor drugiego, np.

C[i] = C[v] je±li C[i] == C[u].

4. Oba wierzchoªki ju» wcze±niej zostaªy wybrane i nale»¡ do tego samego

poddrzewa (posiadaj¡ ten sam kolor).

Wtedy próbujemy doª¡czy¢ now¡ kraw¦d¹ do istniej¡cego drzewa, co �

jak ju» wiadomo � zawsze spowoduje powstanie cyklu. Zatem taka

operacja jest zabroniona.

Podsumowuj¡c powy»sze, doª¡czenie kraw¦dzi (u, v) jest zabronione

(powstanie cykl) je±li C[u] == C[v] (przypadek 4). W przeciwnym wy-

padku nale»y doª¡czy¢ kraw¦d¹ i wykona¢ operacje na tablicy C opisane

odpowiednio w punktach 1, 2 lub 3.

Page 21: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Oczywi±cie sprawdzenie powy»szego warunku (C[u] == C[v]) zajmie O(1)

czasu, jednak przypadek 3 mo»e w skrajnej sytuacji wymaga¢ przekolo-

rowania n− 2 wierzchoªków (przy wprowadzeniu dodatkowych zmiennych

przechowuj¡cych informacje o rozmiarze poszczególnych poddrzew, opera-

cj¦ t¡ mo»na skróci¢ do bn/2c operacji). Zatem operacja sprawdzenia, czy

doª¡czenie pojedynczej kraw¦dzi do ju» doª¡czonych spowoduje powstanie

cyklu zajmie O(n) czasu.

Teraz mo»emy wróci¢ do wyznaczenia zªo»ono±ci caªego algorytmu Kru-

skala. Zale»y ona od kilku czynników.

Je±li do przechowywania grafu wykorzystamy list¦ kraw¦dzi i przed roz-

pocz¦ciem doª¡czania kraw¦dzi posortujemy t¡ struktur¦ niemalej¡co ze

wzgl¦du na wagi (co zajmie O(m logm) czasu) to b¦dziemy mogli nast¦p-

nie analizowa¢ kraw¦dzie po kolei, za ka»dym razem stosuj¡c procedur¦

sprawdzania cyklu.

Page 22: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Liczba takich iteracji, oznaczmy j¡ przez p, b¦dzie si¦ zawieraªa mi¦dzy n− 1(»adna z analizowanych kraw¦dzi nie tworzyªa cyklu) a m (dopiero ostatniakraw¦d¹ spowodowaªa doª¡czenie wszystkich wierzchoªków i zespójnieniepoddrzew). Zatem zªo»ono±¢ takiej wersji algorytmu Kruskala wyniesieO(m log m + pm).

Zauwa»my jednak, »e w przypadku grafów g¦stych (m >> n) tylko niewielkacz¦±¢ wszystkich kraw¦dzi b¦dzie analizowana. Wtedy sortowanie wszyst-kich b¦dzie niepotrzebne � zbyt rozrzutne.

Lepiej wtedy umie±ci¢ kraw¦dzie w kopcu i pobiera¢ za ka»dym razemnajkrótsz¡ z jeszcze nie doª¡czonych z korzenia.

Wtedy takie pobranie b¦dzie zajmowa¢ O(logm), a takich pobra« b¦dzie p,zatem zªo»ono±¢ caªego algorytmu wyniesie

O(p(log m + m)) = O(pm),

gdzie n ≤ p ≤ m.

Mo»liwe jest te» takie zaimplementowanie algorytmu Kruskala, »e jego zªo-»ono±¢ wyniesie O(m log m).

Page 23: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

Page 24: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

Page 25: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

Page 26: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

3. (v1,v

4) – 4

Page 27: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

2) – cykl

Page 28: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

2) – cykl

Page 29: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

2) – cykl

5. (v3,v

5) – 5

Page 30: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

2) – cykl

5. (v3,v

5) – 5

6. (v2,v

6) – 8

Page 31: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm KRUSKALA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v1,v

3) – 3

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

2) – cykl

5. (v3,v

5) – 5

6. (v2,v

6) – 8

waga MST: 24

Page 32: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA (1957)

rozpoczyna si¦ od wybrania dowolnego wierzchoªka i sukcesywnym doª¡cza-niu najbli»szego s¡siada (tj. wierzchoªka, który jest poª¡czony z którym± zju» doª¡czonych kraw¦dzi¡ o najmniejszej wadze).

Dzi¦ki temu, »e w ka»dym kroku algorytmu doª¡czamy nowy wierzchoªekdo istniej¡cego poddrzewa, nigdy nie spowoduje to powstania cyklu, awszystkich iteracji b¦dzie n− 1.

Intuicyjnie, najkorzystniej jest zastosowa¢ do tego algorytmu struktury po-zwalaj¡ce na efektywne wyszukiwanie wierzchoªków incydentnych w danym,a wi¦c np. poª¡czone listy s¡siadów.

Znalezienie kolejnego wierzchoªka do doª¡czenia b¦dzie w takim wy-padku wymagaªo przejrzenia list struktury odpowiadaj¡cych wierzchoªkomju» doª¡czonym i wybraniu kraw¦dzi o najmniejszej wadze. W najgorszymwypadku b¦dzie wi¦c musieli przejrze¢ wszystkie kraw¦dzie, a wi¦c poje-

dyncza iteracja zajmie O(m) czasu.

Zatem zªo»ono±¢ caªego algorytmu Prima to O(nm).

Page 33: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm Prima mo»na te» zaimplementowa¢ w taki sposób, »e wierzchoªki

oczekuj¡ce na doª¡czenie umie±cimy w kolejce Q:

pocz¡tkowo zawiera ona wszystkie wierzchoªki, w ka»dej iteracji pobierany

jest dokªadnie jeden, a algorytm ko«czy dziaªanie, gdy stanie si¦ ona pusta.

Kolejk¦ t¡ mo»na zaimplementowa¢ jako kopiec, w którym warto±ci¡ w¦-

zªa jest odªegªo±¢ danego wierzchoªka od najbli»szego wierzchoªka spo±ród

ju» doª¡czonych. Warto±ci te nale»y aktualizowa¢ po ka»dym doª¡czeniu

nowego wierzchoªka, ale za to mamy od razu dost¦pn¡ informacj¦, który

wierzchoªek ma by¢ doª¡czony jako nast¦pny. Takie podej±cie umo»liwia

uzyskanie zªo»ono±ci obliczeniowej algorytmu Prima O(m log n).

Z kolei, je±li zamiast zwykªego kopca, u»yjemy kopca Fibonacciego, uzy-

skamy zªo»ono±¢ O(m + n log n).

Page 34: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

Page 35: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

Page 36: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

Page 37: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

Page 38: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

Page 39: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

Page 40: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

Page 41: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

3. (v1,v

4) – 4

Page 42: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

3. (v1,v

4) – 4

Page 43: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

3) – 3

Page 44: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

3) – 3

Page 45: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

3) – 3

5. (v3,v

5) – 5

Page 46: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm PRIMA

v1

v5

v4

v3

v2

v6

3

8

9

48

45

5

1. (v6,v

2) – 8

2. (v2,v

4) – 4

3. (v1,v

4) – 4

4. (v1,v

3) – 3

5. (v3,v

5) – 5

waga MST: 24

Page 47: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytmy wyznaczania najkrótszych dróg

Algorytm DIJKSTRY (1959)

sªu»y do wyznaczania najkrótszych dróg z wyznaczonego w¦zªa (¹ródªa, s)

do wszystkich pozostaªych w¦zªów, w przypadku gdy wagi wszystkich ªu-

ków grafu s¡ nieujemne.

W trakcie dziaªania algorytmu, dla ka»dego w¦zªa, x, pami¦tane jest osza-

cowanie wagi najkrótszej drogi ze ¹ródªa: dsx. Przed rozpocz¦ciem dzia-

ªania algorytmu warto±ci te wynosz¡ ∞ dla wszystkich w¦zªów z wyj¡tkiem

¹ródªa, dla którego dss = 0.

Page 48: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

W ka»dym kroku znajdowany jest w¦zeª x∗, dla którego oszacowanie to

jest minimalne i nieustalone i jest ono ustalane (oznacza to, »e dla tego

w¦zªa znale¹li±my ju» drog¦ minimaln¡).

Nast¦pnie dokonuje si¦ relaksacji wszystkich ªuków wychodz¡cych z w¦zªa

x∗, tzn. je±li aktualne oszacowanie, dsy, badanego w¦zªa y, jest wi¦ksze ni»

suma oszacowania dsx∗ oraz wagi, wx∗y, ªuku {x∗, y} to dsy = dsx∗+ wx∗y.

Page 49: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Page 50: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 ∞ ∞ ∞ ∞ ∞

Page 51: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 ∞ ∞ ∞ ∞ ∞

Page 52: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 ∞ ∞ ∞ ∞ ∞

Page 53: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 ∞ ∞ ∞ ∞

Page 54: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 ∞ ∞ ∞ ∞

Page 55: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 ∞ ∞ ∞

Page 56: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 ∞ ∞ ∞

Page 57: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 ∞ ∞

Page 58: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 ∞ ∞

Page 59: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 ∞

Page 60: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 ∞

Page 61: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 12

Page 62: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 8 12

Page 63: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 8 12

Page 64: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 8 12

Page 65: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 8 12

Page 66: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 8 12

Page 67: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 12

Page 68: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 12

Page 69: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 12

Page 70: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 12

Page 71: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 12

Page 72: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 12

Page 73: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 12

Page 74: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 12

Page 75: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 12

Page 76: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 12

Page 77: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 12

Page 78: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 12

Page 79: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 12

Page 80: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 12

Page 81: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 9

Page 82: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Page 83: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Page 84: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v6}

Page 85: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v5,v

6}

Page 86: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v5,v

6}

Page 87: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v3,v

5,v

6}

Page 88: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v3,v

5,v

6}

Page 89: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v1,v

3,v

5,v

6}

Page 90: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm DIJKSTRY

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2Krok v

1v

2v

3v

4v

5v

6

1 0 5 3 4 8 122 0 5 3 4 7 123 0 5 3 4 7 124 0 5 3 4 7 125 0 5 3 4 7 96 0 5 3 4 7 9

Najkrótsza droga z v1 do v

6:

{ v1,v

3,v

5,v

6}

Page 91: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Zªo»ono±¢ obliczeniowa algorytmu Dijkstry:

Poniewa» w ka»dym kroku algorytmu ustalane jest oszacowanie jednego

w¦zªa, wi¦c wszystkich iteracji jest n.

W ka»dej iteracji nale»y wyznaczy¢ w¦zeª o najmniejszym oszacowaniu �

O(log n), je±li oszacowania w¦zªów nieustalonych b¦dziemy przechowywali

w kopcu.

W tej samej iteracji nale»y jeszcze dokona¢ relaksacji ªuków wychodz¡cych

z ustalonego � O(n).

Zatem caªkowita zªo»ono±¢ algorytmu wynosi O(n2). Mo»liwa jest jednak

taka implementacja algorytmu, aby osi¡gn¡¢ zªo»ono±¢ O(m logn).

Page 92: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

umo»liwia, w przeciwie«stwie do algorytmu Dijkstry, wyznaczanie najkrót-

szych dróg z wyznaczonego w¦zªa do pozostaªych przy dodatnich i ujem-

nych wagach. Warunkiem jest, aby graf nie zawieraª cykli o ujemnej

wadze, osi¡galnych ze ¹ródªa.

W algorytmie tym równie» wykorzystuje si¦ relaksacj¦ ªuków wychodz¡-

cych. Jednak »eby metod¦ t¡ mo»na byªo z powodzeniem wykorzysta¢ w

grafach z ujemnymi wagami, nale»y w ka»dej z n iteracji dokona¢ relaksacji

dla wszystkich m ªuków.

Prowadzi to do zªo»ono±ci O(nm).

Page 93: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Zauwa»my jednak, »e kolejno±¢ rozpatrywania ªuków do relaksacji mo»e

wpªywa¢ na efektywno±¢ algorytmu.

Np. w pierwszej iteracji zrelaksowanie najpierw ªuków wychodz¡cych ze

¹ródªa sprawi, »e w tej samej iteracji b¦dzie mo»liwe zrelaksowanie równie»

ªuków incydentnych do wcze±niej wspomnianych, a potem incydentnych z

tymi ostatnimi, itd.

Natomiast je±li zaczniemy relaksacj¦ od ªuków najbardziej oddalonych od

¹ródªa, to w pierwszej iteracji b¦dziemy mogli zrelaksowa¢ jedynie ªuki bez-

po±rednio wychodz¡ce ze ¹ródªa (pozostaªe zostan¡ zrelaksowane dopiero

w kolejnych iteracjach).

Oczywi±cie kolejno±¢ analizowania ªuków nie wpªywa na optymalno±¢ al-

gorytmu � ta jest gwarantowana (teoretycznie udowodniona).

Page 94: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

W zwi¡zku z powy»szym, ide¦ algorytmu Bellmana-Forda mo»na zastoso-

wa¢ do nast¦puj¡cej implementacji.

• Tworzymy kolejk¦ w¦zªów do rozpatrzenia. Jej funkcja jest taka, »e

najpierw relaksujemy ªuki wychodz¡ce z pierwszego w¦zªa z kolejki, po-

tem z w¦zªa drugiego, itd.

• W ka»dej iteracji do kolejki doª¡czamy w¦zªy incydentne z rozpatrywa-

nym, dla których nast¡piªa poprawa i o ile ju» si¦ tam nie znajduj¡.

• Pocz¡tkowo kolejka zawiera tylko ¹ródªo, a algorytm ko«czy si¦ gdy

w kolejce nie b¦dzie ju» »adnych w¦zªów.

• Dodatkowo, wa»ne jest miejsce umieszczania w¦zªów w kolejce:

� je±li w¦zeª ju» si¦ znajduje w kolejce, to zostaje na tym miejscu;

� je±li byª ju» wcze±niej w kolejce (ale obecnie nie znajduje si¦ w niej),

to jest umieszczany na jej pocz¡tku;

� w przeciwnym wypadku tra�a na koniec.

Page 95: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v1}

v1

v2

v3

v4

v5

v6

0 ∞ ∞ ∞ ∞ ∞

Page 96: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = { }

v1

v2

v3

v4

v5

v6

0 ∞ ∞ ∞ ∞ ∞

Page 97: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v2,v

3,v

4,v

5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 8 12

Page 98: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v3,v

4,v

5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 8 12

Page 99: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v3,v

4,v

5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 8 12

Page 100: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v4,v

5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 8 12

Page 101: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v4,v

5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 7 12

Page 102: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 7 12

Page 103: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v5,v

6}

v1

v2

v3

v4

v5

v6

0 5 3 4 7 12

Page 104: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v6}

v1

v2

v3

v4

v5

v6

0 5 3 4 7 12

Page 105: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = {v6}

v1

v2

v3

v4

v5

v6

0 5 3 4 7 9

Page 106: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = { }

v1

v2

v3

v4

v5

v6

0 5 3 4 7 9

Page 107: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm BELLMANA-FORDA

v1

v5

v4

v3

v2

v6

3 12

4 7

45

3

3

8

4 2

Q = { }

v1

v2

v3

v4

v5

v6

0 5 3 4 7 9

Page 108: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Wyznaczenie zªo»ono±ci obliczeniowej powy»szej implementacji jest kªo-

potliwe (w¦zªy mog¡ tra�a¢ wielokrotnie do kolejki) � mo»na wyznaczy¢

nawet takie przypadki, dla których b¦dzie to zªo»ono±¢ wykªadnicza. Jednak

zazwyczaj jest to maªo realne.

Oczywi±cie optymalno±¢ algorytmu jest zachowana.

Page 109: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Rozpatrzmy jeszcze szczególny przypadek zagadnienia:

najkrótsza droga ze ¹ródªa do okre±lonego (pojedynczego) w¦zªa.

W takim wypadku (i przy nieujemnych wagach) przewag¦ ma algorytm

Dijkstry, gdy» mo»emy go zako«czy¢ nie po n iteracjach, ale gdy zostanie

ustalone oszacowanie w¦zªa ko«cowego (przeznaczenia).

W najgorszym wypadku mo»e to by¢ oczywi±cie ostatnia (n-ta) iteracja, ale

cz¦sto b¦dzie to która± z iteracji wcze±niejszych.

Page 110: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Wyznaczanie maksymalnego przepªywu w sieciach

W tym zagadnieniu wagi ªuków nie reprezentuj¡ odlegªo±ci (jak przy najkrót-

szych drogach), tylko maksymalny mo»liwy przepªyw pomi¦dzy w¦zªami (in-

formacji, pªynu, gazu, itp.). Problem polega na wyznaczeniu takich warto±ci

przepªywu pomi¦dzy w¦zªami (nie wi¦kszych ni» maksymalne), aby przepªyw

ze ¹ródªa do okre±lonego w¦zªa ko«cowego byª jak najwi¦kszy.

Algorytm FORDA-FULKERSONA

dotyczy acyklicznych grafów skierowanych. Jest to jedna z podstawowych

idei w tym zakresie.

Najogólniej, polega ona na sukcesywnym wyszukiwaniu (dowolnych)

dróg ze ¹ródªa do uj±cia (w¦zªa ko«cowego).

Page 111: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Mo»na to zrobi¢ w ten sposób, »e b¦d¡c w ¹ródle, wybieramy pierwszy

w¦zeª incydentny (nale»y ustali¢ kolejno±¢ w¦zªów), z niego znowu wybie-

ramy pierwszy incydentny, itd.

W efekcie, albo dotrzemy do uj±cia, albo do innego w¦zªa ko«cowego

(z którego nie ma »adnych ªuków wychodz¡cych):

• Je±li dotarli±my do w¦zªa nie b¦d¡cego uj±ciem, to cofamy si¦ do

w¦zªa poprzedzaj¡cego i wybieramy kolejny w¦zeª incydentny

(je±li trzeba, to cofamy si¦ o wi¦cej ni» 1 w¦zeª).

�uki do w¦zªów, z których si¦ wycofujemy (gdy nie mo»na z nich osi¡-

gn¡¢ uj±cia), usuwamy.

• Je±li ostatni w¦zeª jest uj±ciem, to mamy wyznaczon¡ drog¦.

Page 112: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Ka»dorazowo, po wyznaczeniu jakiej± drogi, znajdowany jest w niej ªuk

o najmniejszym przepªywie i dan¡ drog¡ ustalamy przepªyw o takiej wªa-

±nie warto±ci, tzn. od przepªywu ka»dego ªuku z danej drogi odejmujemy

t¡ najmniejsz¡ warto±¢.

Nast¦pnie ªuki o zerowym przepªywie usuwamy z grafu.

Algorytm ko«czy dziaªanie, gdy usuniemy wszystkie ªuki wychodz¡ce ze

¹ródªa.

Warto±¢ przepªywu maksymalnego uzyskujemy poprzez zsumowanie prze-

pªywów ze wszystkich wyznaczonych dróg.

Wykazano, »e czas dziaªania algorytmu mo»e wzrosn¡¢ do niesko«czono±ci,

je±li wybór kolejnych w¦zªów w drogach b¦dzie dowolny.

Je±li natomiast zawsze b¦dziemy wyszukiwali drogi najkrótsze (o najmniej-

szej liczbie ªuków), to uzyskamy algorytm wielomianowy O(nm2). Tak¡

wersj¦ algorytmu nazywamy algorytmem Edmondsa-Karpa (1969).

Page 113: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 7

4

5

8

4 2

Page 114: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 7

4

5

8

4 2

Page 115: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 7

4

5

8

4 2

Page 116: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 7

4

5

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

Page 117: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 2

4

0

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

Page 118: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 2

4

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

Page 119: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 2

4

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

Page 120: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 2

4

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

Page 121: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 2

4

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

Page 122: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

3

4 2

4

8

4 2 Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 123: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

1

4 2

4

8

2 0 Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 124: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

1

4 2

4

8

2Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 125: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

1

4 2

4

8

2Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 126: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

1

4 2

4

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 127: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

4 2

4

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 128: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

4 2

4

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

Page 129: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

4 2

4

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 130: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

2 0

2

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 131: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

2

2

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 132: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

2

2

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 133: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

2

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 134: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 135: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 136: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

v1

v5

v4

v3

v2

v6

8

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

Page 137: TEORIA GRAFÓW - 3Ctomasz.kaplon.staff.iiar.pwr.wroc.pl/epo/2017_2018/w4.pdfAlgorytmy wyznaczania MST Algorytm KRUSKALA (1956) polega na doª¡czaniu kolejno kraw dzi w porz¡dku ich

Algorytm FORDA-FULKERSONA

Przepływy:

F(v1,v

2,v

6) = 5

F(v1,v

3,v

5,v

6) = 2

F(v1,v

4,v

2,v

6) = 2

v1

v5

v4

v3

v2

v6

3

4 7

4

5

8

4 2

Maks. przepływ = 9