Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Algorytmy i struktury danych
Cz¦±¢ trzecia
Prowadz¡cy: dr Andrzej Mróz,
Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika
1 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Grafy = kombinatoryczne modele opisuj¡ce rozmaite rzeczywiste sytuacje.
Wierzchoªki = miejsca na pªaszczy¹nie/w przestrzeni, zjawiska, procesy...
Kraw¦dzie = poª¡czenia, powi¡zania, zale»no±ci mi¦dzy obiektami reprezentowanymi przez wierzchoªki ...
2 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Grafy = kombinatoryczne modele opisuj¡ce rozmaite rzeczywiste sytuacje.
Wierzchoªki = miejsca na pªaszczy¹nie/w przestrzeni, zjawiska, procesy...
Kraw¦dzie = poª¡czenia, powi¡zania, zale»no±ci mi¦dzy obiektami reprezentowanymi przez wierzchoªki ...
2 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Grafy = kombinatoryczne modele opisuj¡ce rozmaite rzeczywiste sytuacje.
Wierzchoªki = miejsca na pªaszczy¹nie/w przestrzeni, zjawiska, procesy...
Kraw¦dzie = poª¡czenia, powi¡zania, zale»no±ci mi¦dzy obiektami reprezentowanymi przez wierzchoªki ...
2 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« zycznych:sie¢ drogowa, kolejowa, lotnicza... (zagadnienia transportowe, GPS),
pomieszczenia, korytarze w budynkach... (m.in. gry komputerowe), sieci energetyczne, sieci komputerowe, itp. 3 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« zycznych:sie¢ drogowa, kolejowa, lotnicza... (zagadnienia transportowe, GPS),
pomieszczenia, korytarze w budynkach... (m.in. gry komputerowe), sieci energetyczne, sieci komputerowe, itp. 3 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« zycznych:sie¢ drogowa, kolejowa, lotnicza... (zagadnienia transportowe, GPS),
pomieszczenia, korytarze w budynkach... (m.in. gry komputerowe), sieci energetyczne, sieci komputerowe, itp. 3 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« zycznych:sie¢ drogowa, kolejowa, lotnicza... (zagadnienia transportowe, GPS),
pomieszczenia, korytarze w budynkach... (m.in. gry komputerowe), sieci energetyczne, sieci komputerowe, itp. 3 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów, relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,
pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów,
relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,
pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów, relacje (w sensie matematycznym),
relacje mi¦dzy lud¹mi, pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów, relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,
pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów, relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,
pracownicy przepªyw zada«,
struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów, relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,
pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Zastosowania teorii grafów
Przykªady poª¡cze« logicznych:obrazowanie hierarchii drzewa (genealogia, rozwój populacji, zawody sportowe),
nast¦pstwo czasowe procesów, relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,
pracownicy przepªyw zada«, struktura organizacji, przydziaª zasobów, itp. 4 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Reprezentacja grafu przypomnienie
Sposoby reprezentowania grafu nieskierowanego G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}w pami¦ci komputera:Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ ej, 1, i ∈ ej. 5 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Reprezentacja grafu przypomnienie
Sposoby reprezentowania grafu nieskierowanego G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}w pami¦ci komputera:Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ ej, 1, i ∈ ej. 5 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Reprezentacja grafu przypomnienie
Sposoby reprezentowania grafu nieskierowanego G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}w pami¦ci komputera:Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ ej, 1, i ∈ ej. 5 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Reprezentacja grafu przypomnienie
Sposoby reprezentowania grafu nieskierowanego G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}w pami¦ci komputera:Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ ej, 1, i ∈ ej. 5 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Reprezentacja grafu przypomnienie
Sposoby reprezentowania grafu nieskierowanego G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}w pami¦ci komputera:Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ ej, 1, i ∈ ej. 5 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu
Przeszukiwanie grafu= systematyczne przechodzenie wzdªu» jego kraw¦dzi w celu odwiedzenia wszystkich wierzchoªków.
Sªu»y m.in. do zbierania informacji o strukturze grafu. Algorytmy grafowe cz¦sto zaczyna si¦ od przeszukania wej±ciowego grafu.
Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj¡ podstawowych algorytmów przeszukiwania. Dwie metody przeszukiwania grafu:
w gª¡b(ang. depth-rst search, DFS), wszerz(ang. breadth-rst search, BFS).
Na ogóª zakªadamy, »e graf jest reprezentowany przez listy s¡siedztwa.
Oznaczenia: Adj = tablica list s¡siedztwa; dla u ∈ V , Adj[u] = lista s¡siadów u w grae G.
6 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu
Przeszukiwanie grafu= systematyczne przechodzenie wzdªu» jego kraw¦dzi w celu odwiedzenia wszystkich wierzchoªków.
Sªu»y m.in. do zbierania informacji o strukturze grafu.
Algorytmy grafowe cz¦sto zaczyna si¦ od przeszukania wej±ciowego grafu.
Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj¡ podstawowych algorytmów przeszukiwania. Dwie metody przeszukiwania grafu:
w gª¡b(ang. depth-rst search, DFS), wszerz(ang. breadth-rst search, BFS).
Na ogóª zakªadamy, »e graf jest reprezentowany przez listy s¡siedztwa.
Oznaczenia: Adj = tablica list s¡siedztwa; dla u ∈ V , Adj[u] = lista s¡siadów u w grae G.
6 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu
Przeszukiwanie grafu= systematyczne przechodzenie wzdªu» jego kraw¦dzi w celu odwiedzenia wszystkich wierzchoªków.
Sªu»y m.in. do zbierania informacji o strukturze grafu. Algorytmy grafowe cz¦sto zaczyna si¦ od przeszukania wej±ciowego grafu.
Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj¡ podstawowych algorytmów przeszukiwania. Dwie metody przeszukiwania grafu:
w gª¡b(ang. depth-rst search, DFS), wszerz(ang. breadth-rst search, BFS).
Na ogóª zakªadamy, »e graf jest reprezentowany przez listy s¡siedztwa.
Oznaczenia: Adj = tablica list s¡siedztwa; dla u ∈ V , Adj[u] = lista s¡siadów u w grae G.
6 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu
Przeszukiwanie grafu= systematyczne przechodzenie wzdªu» jego kraw¦dzi w celu odwiedzenia wszystkich wierzchoªków.
Sªu»y m.in. do zbierania informacji o strukturze grafu. Algorytmy grafowe cz¦sto zaczyna si¦ od przeszukania wej±ciowego grafu.
Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj¡ podstawowych algorytmów przeszukiwania.
Dwie metody przeszukiwania grafu: w gª¡b(ang. depth-rst search, DFS), wszerz(ang. breadth-rst search, BFS).
Na ogóª zakªadamy, »e graf jest reprezentowany przez listy s¡siedztwa.
Oznaczenia: Adj = tablica list s¡siedztwa; dla u ∈ V , Adj[u] = lista s¡siadów u w grae G.
6 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu
Przeszukiwanie grafu= systematyczne przechodzenie wzdªu» jego kraw¦dzi w celu odwiedzenia wszystkich wierzchoªków.
Sªu»y m.in. do zbierania informacji o strukturze grafu. Algorytmy grafowe cz¦sto zaczyna si¦ od przeszukania wej±ciowego grafu.
Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj¡ podstawowych algorytmów przeszukiwania. Dwie metody przeszukiwania grafu:
w gª¡b(ang. depth-rst search, DFS), wszerz(ang. breadth-rst search, BFS).
Na ogóª zakªadamy, »e graf jest reprezentowany przez listy s¡siedztwa.
Oznaczenia: Adj = tablica list s¡siedztwa; dla u ∈ V , Adj[u] = lista s¡siadów u w grae G.
6 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu
Przeszukiwanie grafu= systematyczne przechodzenie wzdªu» jego kraw¦dzi w celu odwiedzenia wszystkich wierzchoªków.
Sªu»y m.in. do zbierania informacji o strukturze grafu. Algorytmy grafowe cz¦sto zaczyna si¦ od przeszukania wej±ciowego grafu.
Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj¡ podstawowych algorytmów przeszukiwania. Dwie metody przeszukiwania grafu:
w gª¡b(ang. depth-rst search, DFS), wszerz(ang. breadth-rst search, BFS).
Na ogóª zakªadamy, »e graf jest reprezentowany przez listy s¡siedztwa.
Oznaczenia: Adj = tablica list s¡siedztwa; dla u ∈ V , Adj[u] = lista s¡siadów u w grae G.
6 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Z ustalonego wierzchoªka ¹ródªowego w si¦gamy coraz gª¦biej w graf, je»eli jest to tylko mo»liwe.
badamy wszystkie niezbadane dot¡d kraw¦dzie ostatnio odwiedzonego wierzchoªka v,
gdy wszystkie kraw¦dzie v s¡ zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony,
proces kontynuujemy dopóki wszystkie wierzchoªki osi¡galne z wierzchoªka ¹ródªowego w nie zostan¡ odwiedzone.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
7 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Z ustalonego wierzchoªka ¹ródªowego w si¦gamy coraz gª¦biej w graf, je»eli jest to tylko mo»liwe.
badamy wszystkie niezbadane dot¡d kraw¦dzie ostatnio odwiedzonego wierzchoªka v,
gdy wszystkie kraw¦dzie v s¡ zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony,
proces kontynuujemy dopóki wszystkie wierzchoªki osi¡galne z wierzchoªka ¹ródªowego w nie zostan¡ odwiedzone.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
7 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Z ustalonego wierzchoªka ¹ródªowego w si¦gamy coraz gª¦biej w graf, je»eli jest to tylko mo»liwe.
badamy wszystkie niezbadane dot¡d kraw¦dzie ostatnio odwiedzonego wierzchoªka v,
gdy wszystkie kraw¦dzie v s¡ zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony,
proces kontynuujemy dopóki wszystkie wierzchoªki osi¡galne z wierzchoªka ¹ródªowego w nie zostan¡ odwiedzone.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
7 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Z ustalonego wierzchoªka ¹ródªowego w si¦gamy coraz gª¦biej w graf, je»eli jest to tylko mo»liwe.
badamy wszystkie niezbadane dot¡d kraw¦dzie ostatnio odwiedzonego wierzchoªka v,
gdy wszystkie kraw¦dzie v s¡ zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony,
proces kontynuujemy dopóki wszystkie wierzchoªki osi¡galne z wierzchoªka ¹ródªowego w nie zostan¡ odwiedzone.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
7 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Z ustalonego wierzchoªka ¹ródªowego w si¦gamy coraz gª¦biej w graf, je»eli jest to tylko mo»liwe.
badamy wszystkie niezbadane dot¡d kraw¦dzie ostatnio odwiedzonego wierzchoªka v,
gdy wszystkie kraw¦dzie v s¡ zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony,
proces kontynuujemy dopóki wszystkie wierzchoªki osi¡galne z wierzchoªka ¹ródªowego w nie zostan¡ odwiedzone.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
7 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Z ustalonego wierzchoªka ¹ródªowego w si¦gamy coraz gª¦biej w graf, je»eli jest to tylko mo»liwe.
badamy wszystkie niezbadane dot¡d kraw¦dzie ostatnio odwiedzonego wierzchoªka v,
gdy wszystkie kraw¦dzie v s¡ zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony,
proces kontynuujemy dopóki wszystkie wierzchoªki osi¡galne z wierzchoªka ¹ródªowego w nie zostan¡ odwiedzone.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
7 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Nale»y zatem zapami¦tywa¢ stany, w jakich znajduj¡ si¦ w danej chwili wierzchoªki.
Ka»dy wierzchoªek posiada jeden z 3 kolorów:
biaªy wszystkie wierzchoªki na pocz¡tku;
wierzchoªek odwiedzany po raz pierwszy kolorujemy naszaro; wierzchoªek przetworzony (= lista jego s¡siadów jest caªkowicie zbadana
) kolorujemy naczarno.
8 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Nale»y zatem zapami¦tywa¢ stany, w jakich znajduj¡ si¦ w danej chwili wierzchoªki.
Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy wszystkie wierzchoªki na pocz¡tku;
wierzchoªek odwiedzany po raz pierwszy kolorujemy naszaro; wierzchoªek przetworzony (= lista jego s¡siadów jest caªkowicie zbadana) kolorujemy naczarno.
8 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Nale»y zatem zapami¦tywa¢ stany, w jakich znajduj¡ si¦ w danej chwili wierzchoªki.
Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy wszystkie wierzchoªki na pocz¡tku;
wierzchoªek odwiedzany po raz pierwszy kolorujemy naszaro;
wierzchoªek przetworzony (= lista jego s¡siadów jest caªkowicie zbadana) kolorujemy naczarno.
8 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Nale»y zatem zapami¦tywa¢ stany, w jakich znajduj¡ si¦ w danej chwili wierzchoªki.
Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy wszystkie wierzchoªki na pocz¡tku;
wierzchoªek odwiedzany po raz pierwszy kolorujemy naszaro; wierzchoªek przetworzony (= lista jego s¡siadów jest caªkowicie zbadana) kolorujemy naczarno.
8 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny;
6 end;
9 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS-Visit(G, u)1 begin
2 kolor(u) := szary; 3 forka»dy v ∈ Adj[u]do
4 ifkolor(v) = biaªythen DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; @ @ @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 9 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS(G) 1 begin 2 forka»dy u ∈ V(G)do 3 kolor(u) := biaªy; 4 forka»dy u ∈ V(G)do5 ifkolor(u) = biaªythen
6 DFS-Visit(G, u); 7 end;
Zªo»ono±¢ czasowa: O(|V | + |E|),
Zªo»ono±¢ pami¦ciowa: O(|V |) (przechowywanie kolorów, przechowywanie wierzchoªków na stosie rekurencji).
10 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS(G) 1 begin 2 forka»dy u ∈ V(G)do 3 kolor(u) := biaªy; 4 forka»dy u ∈ V(G)do5 ifkolor(u) = biaªythen
6 DFS-Visit(G, u); 7 end;
Zªo»ono±¢ czasowa: O(|V | + |E|),
Zªo»ono±¢ pami¦ciowa: O(|V |) (przechowywanie kolorów, przechowywanie wierzchoªków na stosie rekurencji).
10 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
DFS(G) 1 begin 2 forka»dy u ∈ V(G)do 3 kolor(u) := biaªy; 4 forka»dy u ∈ V(G)do5 ifkolor(u) = biaªythen
6 DFS-Visit(G, u); 7 end;
Zªo»ono±¢ czasowa: O(|V | + |E|),
Zªo»ono±¢ pami¦ciowa: O(|V |) (przechowywanie kolorów, przechowywanie wierzchoªków na stosie rekurencji).
10 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Podstawowe zastosowania:
Sprawdzanie spójno±ci grafu.
Wyznaczanie skªadowych spójno±ci grafu.
Wyznaczanie silnie spójnych skªadowych (w wersji dla grafu skierowanego).
Sortowanie topologiczne grafu zorientowanego (bez zorientowanych cykli).
11 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Podstawowe zastosowania:
Sprawdzanie spójno±ci grafu.
Wyznaczanie skªadowych spójno±ci grafu.
Wyznaczanie silnie spójnych skªadowych (w wersji dla grafu skierowanego).
Sortowanie topologiczne grafu zorientowanego (bez zorientowanych cykli).
11 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Podstawowe zastosowania:
Sprawdzanie spójno±ci grafu.
Wyznaczanie skªadowych spójno±ci grafu.
Wyznaczanie silnie spójnych skªadowych (w wersji dla grafu skierowanego).
Sortowanie topologiczne grafu zorientowanego (bez zorientowanych cykli).
11 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Podstawowe zastosowania:
Sprawdzanie spójno±ci grafu.
Wyznaczanie skªadowych spójno±ci grafu.
Wyznaczanie silnie spójnych skªadowych (w wersji dla grafu skierowanego).
Sortowanie topologiczne grafu zorientowanego (bez zorientowanych cykli).
11 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu w gª¡b
Podstawowe zastosowania:
Sprawdzanie spójno±ci grafu.
Wyznaczanie skªadowych spójno±ci grafu.
Wyznaczanie silnie spójnych skªadowych (w wersji dla grafu skierowanego).
Sortowanie topologiczne grafu zorientowanego (bez zorientowanych cykli).
11 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Z ustalonego wierzchoªka ¹ródªowego s przegl¡damy kolejne wierzchoªki z niego osi¡galne.wierzchoªki w odlegªo±ci (=najmniejszej liczbie kraw¦dzi) k od ¹ródªa s¡ odwiedzane przed wierzchoªkami w odlegªo±ci k + 1, granica mi¦dzy wierzchoªkami odwiedzonymi i nieodwiedzonymi jest przekraczana jednocze±nie na caªej jej szeroko±ci.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
12 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Z ustalonego wierzchoªka ¹ródªowego s przegl¡damy kolejne wierzchoªki z niego osi¡galne.wierzchoªki w odlegªo±ci (=najmniejszej liczbie kraw¦dzi) k od ¹ródªa s¡ odwiedzane przed wierzchoªkami w odlegªo±ci k + 1,
granica mi¦dzy wierzchoªkami odwiedzonymi i nieodwiedzonymi jest przekraczana jednocze±nie na caªej jej szeroko±ci.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
12 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Z ustalonego wierzchoªka ¹ródªowego s przegl¡damy kolejne wierzchoªki z niego osi¡galne.wierzchoªki w odlegªo±ci (=najmniejszej liczbie kraw¦dzi) k od ¹ródªa s¡ odwiedzane przed wierzchoªkami w odlegªo±ci k + 1, granica mi¦dzy wierzchoªkami odwiedzonymi i nieodwiedzonymi jest przekraczana jednocze±nie na caªej jej szeroko±ci.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
12 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Z ustalonego wierzchoªka ¹ródªowego s przegl¡damy kolejne wierzchoªki z niego osi¡galne.wierzchoªki w odlegªo±ci (=najmniejszej liczbie kraw¦dzi) k od ¹ródªa s¡ odwiedzane przed wierzchoªkami w odlegªo±ci k + 1, granica mi¦dzy wierzchoªkami odwiedzonymi i nieodwiedzonymi jest przekraczana jednocze±nie na caªej jej szeroko±ci.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
12 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Z ustalonego wierzchoªka ¹ródªowego s przegl¡damy kolejne wierzchoªki z niego osi¡galne.wierzchoªki w odlegªo±ci (=najmniejszej liczbie kraw¦dzi) k od ¹ródªa s¡ odwiedzane przed wierzchoªkami w odlegªo±ci k + 1, granica mi¦dzy wierzchoªkami odwiedzonymi i nieodwiedzonymi jest przekraczana jednocze±nie na caªej jej szeroko±ci.
Je»eli po powy»szym procesie pozostanie jakikolwiek nie
odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj¡c go jako nowy wierzchoªek ¹ródªowy.
Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan¡ odwiedzone.
12 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy, szary lub czarny (podobnie jak w DFS). Na pocz¡tku wszystkie wierzchoªki s¡ biaªe.
Wierzchoªki szare s¡ przechowywane w kolejce FIFO. Po jej opuszczeniu kolorujemy je na czarno.
13 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy, szary lub czarny (podobnie jak w DFS). Na pocz¡tku wszystkie wierzchoªki s¡ biaªe.
Wierzchoªki szare s¡ przechowywane w kolejce FIFO.
Po jej opuszczeniu kolorujemy je na czarno.
13 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy, szary lub czarny (podobnie jak w DFS). Na pocz¡tku wszystkie wierzchoªki s¡ biaªe.
Wierzchoªki szare s¡ przechowywane w kolejce FIFO. Po jej opuszczeniu kolorujemy je na czarno.
13 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 14 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 14 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 1 15 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 1 2 16 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 1 2 5 17 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 1 2 5 4 18 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 2 5 4 19 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 5 4 20 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 5 4 3 21 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 5 4 3 6 22 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 4 3 6 23 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 3 6 24 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 6 25 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end @ @ @ @ v f 1 vf2 vf3 v f 4 5vf vf6 Q: 26 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS(G)
1 begin
2 forka»dy u ∈ V(G)do
3 kolor(u) := biaªy; 4 forka»dy u ∈ V(G)do
5 ifkolor(u) = biaªythen
6 BFS-Visit(G, u); 7 end;
Zªo»ono±¢ czasowa: O(|V | + |E|),
Zªo»ono±¢ pami¦ciowa: O(|V |) (przechowywanie kolorów, kolejka).
27 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS(G)
1 begin
2 forka»dy u ∈ V(G)do
3 kolor(u) := biaªy; 4 forka»dy u ∈ V(G)do
5 ifkolor(u) = biaªythen
6 BFS-Visit(G, u); 7 end;
Zªo»ono±¢ czasowa: O(|V | + |E|),
Zªo»ono±¢ pami¦ciowa: O(|V |) (przechowywanie kolorów, kolejka).
27 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
BFS(G)
1 begin
2 forka»dy u ∈ V(G)do
3 kolor(u) := biaªy; 4 forka»dy u ∈ V(G)do
5 ifkolor(u) = biaªythen
6 BFS-Visit(G, u); 7 end;
Zªo»ono±¢ czasowa: O(|V | + |E|),
Zªo»ono±¢ pami¦ciowa: O(|V |) (przechowywanie kolorów, kolejka).
27 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Zastosowanie: znajdowanie najkrótszej drogi pomi¦dzy wierzchoªkami s i v.
Modykacja procedury BFS-Visit: przechowywaniewektora poprzednikówπ.
Tj. poprzednikiem wierzchoªka v na najkrótszej drodze z s do v jest wierzchoªek π[v];
poprzednikiem wierzchoªka π[v] jest wierzchoªek π[π[v]]...
28 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Zastosowanie: znajdowanie najkrótszej drogi pomi¦dzy wierzchoªkami s i v.
Modykacja procedury BFS-Visit: przechowywaniewektora poprzednikówπ.
Tj. poprzednikiem wierzchoªka v na najkrótszej drodze z s do v jest wierzchoªek π[v];
poprzednikiem wierzchoªka π[v] jest wierzchoªek π[π[v]]...
28 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Zastosowanie: znajdowanie najkrótszej drogi pomi¦dzy wierzchoªkami s i v.
Modykacja procedury BFS-Visit: przechowywaniewektora poprzednikówπ.
Tj. poprzednikiem wierzchoªka v na najkrótszej drodze z s do v jest wierzchoªek π[v];
poprzednikiem wierzchoªka π[v] jest wierzchoªek π[π[v]]...
28 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Przygotowanie: forka»dy u ∈ V(G)do begin kolor(u) := biaªy; π[u] := ∞ end; 29 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Zmodykowany BFS: BFS-Visit(G, s) 1 begin 2 kolor(s) := szary; 3 Q := {s}; 4 whileQ <> ∅ do begin 5 u := Head(Q); 6 forka»dy v ∈ Adj[u]do7 ifkolor(v) = biaªythen begin
8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end 30 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Po wykonaniu BFS-Visit(G, s) w wektorze π zakodowane s¡ najkrótsze drogi z wierzchoªka ¹ródªowego s do wszystkich wierzchoªków v osi¡galnych z s.Wypisanie drogi z s do v od ko«ca:
PrintPathRev(s, v)
1 begin
2 ifs = vthenwypisz(v)
3 else ifπ[v] = ∞thenwypisz('Nie ma drogi')
4 else begin 5 whilev <> sdo begin 6 wypisz(v); 7 v := π[v] 8 end; 9 wypisz(s) 10 end 11 end; 31 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Po wykonaniu BFS-Visit(G, s) w wektorze π zakodowane s¡ najkrótsze drogi z wierzchoªka ¹ródªowego s do wszystkich wierzchoªków v osi¡galnych z s.Wypisanie drogi z s do v od ko«ca:
PrintPathRev(s, v)
1 begin
2 ifs = vthenwypisz(v)
3 else ifπ[v] = ∞thenwypisz('Nie ma drogi')
4 else begin 5 whilev <> sdo begin 6 wypisz(v); 7 v := π[v] 8 end; 9 wypisz(s) 10 end 11 end; 31 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Przeszukiwanie grafu wszerz
Wypisanie drogi z s do v od pocz¡tku:PrintPath(s, v)
1 begin
2 ifs = vthenwypisz(v)
3 else ifπ[v] = ∞thenwypisz('Nie ma drogi')
4 else begin 5 PrintPath(s, π[v]); 6 wypisz(v) 7 end 8 end; 32 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Grafem z wagaminazywamy graf (skierowany) G = (V , E) wraz zfunkcj¡ wagi w : E → R.
Dla dowolnej drogi W = (e1,e2, . . . ,ek) w grae G, ei ∈E,
deniujemy jejwag¦jako liczb¦ w(W ) := Pk
i=1w(ei).
Reprezentacje skierowanych grafów z wagami:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, (i, j) /∈ E, w(i, j), (i, j) ∈ E.
Listy s¡siedztwa: tablica Adj[1..n], gdzie Adj[i] = wska¹nik do listy s¡siadów i, tj. tych wierzchoªków j, »e (i, j) ∈ E. Ka»dy s¡siad j wierzchoªka i zawiera pole z wag¡ w(i, j).
33 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Grafem z wagaminazywamy graf (skierowany) G = (V , E) wraz zfunkcj¡ wagi w : E → R.
Dla dowolnej drogi W = (e1,e2, . . . ,ek) w grae G, ei ∈E,
deniujemy jejwag¦jako liczb¦ w(W ) := Pk
i=1w(ei).
Reprezentacje skierowanych grafów z wagami:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, (i, j) /∈ E, w(i, j), (i, j) ∈ E.
Listy s¡siedztwa: tablica Adj[1..n], gdzie Adj[i] = wska¹nik do listy s¡siadów i, tj. tych wierzchoªków j, »e (i, j) ∈ E. Ka»dy s¡siad j wierzchoªka i zawiera pole z wag¡ w(i, j).
33 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Grafem z wagaminazywamy graf (skierowany) G = (V , E) wraz zfunkcj¡ wagi w : E → R.
Dla dowolnej drogi W = (e1,e2, . . . ,ek) w grae G, ei ∈E,
deniujemy jejwag¦jako liczb¦ w(W ) := Pk
i=1w(ei).
Reprezentacje skierowanych grafów z wagami:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, (i, j) /∈ E, w(i, j), (i, j) ∈ E.
Listy s¡siedztwa: tablica Adj[1..n], gdzie Adj[i] = wska¹nik do listy s¡siadów i, tj. tych wierzchoªków j, »e (i, j) ∈ E. Ka»dy s¡siad j wierzchoªka i zawiera pole z wag¡ w(i, j).
33 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Grafem z wagaminazywamy graf (skierowany) G = (V , E) wraz zfunkcj¡ wagi w : E → R.
Dla dowolnej drogi W = (e1,e2, . . . ,ek) w grae G, ei ∈E,
deniujemy jejwag¦jako liczb¦ w(W ) := Pk
i=1w(ei).
Reprezentacje skierowanych grafów z wagami: Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, (i, j) /∈ E, w(i, j), (i, j) ∈ E.
Listy s¡siedztwa: tablica Adj[1..n], gdzie Adj[i] = wska¹nik do listy s¡siadów i, tj. tych wierzchoªków j, »e (i, j) ∈ E. Ka»dy s¡siad j wierzchoªka i zawiera pole z wag¡ w(i, j).
33 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Grafem z wagaminazywamy graf (skierowany) G = (V , E) wraz zfunkcj¡ wagi w : E → R.
Dla dowolnej drogi W = (e1,e2, . . . ,ek) w grae G, ei ∈E,
deniujemy jejwag¦jako liczb¦ w(W ) := Pk
i=1w(ei).
Reprezentacje skierowanych grafów z wagami: Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z),
Ai,j =
0, (i, j) /∈ E, w(i, j), (i, j) ∈ E.
Listy s¡siedztwa: tablica Adj[1..n], gdzie Adj[i] = wska¹nik do listy s¡siadów i, tj. tych wierzchoªków j, »e (i, j) ∈ E. Ka»dy s¡siad j wierzchoªka i zawiera pole z wag¡ w(i, j).
33 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Ustalmy graf G = (V , E) z wagami w : E → R. Waga najkrótszej drogiz u do v, dla u, v ∈ V , to liczba δ(u, v) :=(
min{w(W ) : u v }, gdy istnieje droga z u do v ,W
∞, w p.p.
Warianty problemu:
Najkrótsze drogi z jednym ¹ródªem.
Najkrótsze drogi z jednym wierzchoªkiem docelowym. Najkrótsza droga mi¦dzy par¡ wierzchoªków.
Najkrótsze drogi mi¦dzy wszystkimi parami wierzchoªków.
34 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Ustalmy graf G = (V , E) z wagami w : E → R. Waga najkrótszej drogiz u do v, dla u, v ∈ V , to liczba δ(u, v) :=(
min{w(W ) : u v }, gdy istnieje droga z u do v ,W
∞, w p.p.
Warianty problemu:
Najkrótsze drogi z jednym ¹ródªem.
Najkrótsze drogi z jednym wierzchoªkiem docelowym. Najkrótsza droga mi¦dzy par¡ wierzchoªków.
Najkrótsze drogi mi¦dzy wszystkimi parami wierzchoªków.
34 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Ustalmy graf G = (V , E) z wagami w : E → R. Waga najkrótszej drogiz u do v, dla u, v ∈ V , to liczba δ(u, v) :=(
min{w(W ) : u v }, gdy istnieje droga z u do v ,W
∞, w p.p.
Warianty problemu:
Najkrótsze drogi z jednym ¹ródªem.
Najkrótsze drogi z jednym wierzchoªkiem docelowym. Najkrótsza droga mi¦dzy par¡ wierzchoªków.
Najkrótsze drogi mi¦dzy wszystkimi parami wierzchoªków.
34 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Ustalmy graf G = (V , E) z wagami w : E → R. Waga najkrótszej drogiz u do v, dla u, v ∈ V , to liczba δ(u, v) :=(
min{w(W ) : u v }, gdy istnieje droga z u do v ,W
∞, w p.p.
Warianty problemu:
Najkrótsze drogi z jednym ¹ródªem.
Najkrótsze drogi z jednym wierzchoªkiem docelowym.
Najkrótsza droga mi¦dzy par¡ wierzchoªków.
Najkrótsze drogi mi¦dzy wszystkimi parami wierzchoªków.
34 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Ustalmy graf G = (V , E) z wagami w : E → R. Waga najkrótszej drogiz u do v, dla u, v ∈ V , to liczba δ(u, v) :=(
min{w(W ) : u v }, gdy istnieje droga z u do v ,W
∞, w p.p.
Warianty problemu:
Najkrótsze drogi z jednym ¹ródªem.
Najkrótsze drogi z jednym wierzchoªkiem docelowym. Najkrótsza droga mi¦dzy par¡ wierzchoªków.
Najkrótsze drogi mi¦dzy wszystkimi parami wierzchoªków.
34 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Ustalmy graf G = (V , E) z wagami w : E → R. Waga najkrótszej drogiz u do v, dla u, v ∈ V , to liczba δ(u, v) :=(
min{w(W ) : u v }, gdy istnieje droga z u do v ,W
∞, w p.p.
Warianty problemu:
Najkrótsze drogi z jednym ¹ródªem.
Najkrótsze drogi z jednym wierzchoªkiem docelowym. Najkrótsza droga mi¦dzy par¡ wierzchoªków.
Najkrótsze drogi mi¦dzy wszystkimi parami wierzchoªków.
34 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Problem ujemnych wag, problem cykli o wadze ujemnej...Najkrótsze drogi z jednym ¹ródªem s ∈ V . Oznaczenia i konwencje:
π[v] poprzednik wierzchoªka v na tymczasowej najkrótszej drodze z s do v.
Dla a ∈ R ∪ {∞}, a + ∞ = ∞ + a = ∞.
Dla a ∈ R ∪ {−∞}, a + (−∞) = (−∞) + a = −∞.
Dla ka»dego v ∈ V trzymamy atrybut d[v] = oszacowanie wagi najkrótszej drogi = górne ograniczenie wagi najkrótszej drogi z s do v.
35 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Problem ujemnych wag, problem cykli o wadze ujemnej...Najkrótsze drogi z jednym ¹ródªem s ∈ V . Oznaczenia i konwencje:
π[v] poprzednik wierzchoªka v na tymczasowej najkrótszej drodze z s do v.
Dla a ∈ R ∪ {∞}, a + ∞ = ∞ + a = ∞.
Dla a ∈ R ∪ {−∞}, a + (−∞) = (−∞) + a = −∞.
Dla ka»dego v ∈ V trzymamy atrybut d[v] = oszacowanie wagi najkrótszej drogi = górne ograniczenie wagi najkrótszej drogi z s do v.
35 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Problem ujemnych wag, problem cykli o wadze ujemnej...Najkrótsze drogi z jednym ¹ródªem s ∈ V . Oznaczenia i konwencje:
π[v] poprzednik wierzchoªka v na tymczasowej najkrótszej drodze z s do v.
Dla a ∈ R ∪ {∞}, a + ∞ = ∞ + a = ∞.
Dla a ∈ R ∪ {−∞}, a + (−∞) = (−∞) + a = −∞.
Dla ka»dego v ∈ V trzymamy atrybut d[v] = oszacowanie wagi najkrótszej drogi = górne ograniczenie wagi najkrótszej drogi z s do v.
35 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Problem ujemnych wag, problem cykli o wadze ujemnej...Najkrótsze drogi z jednym ¹ródªem s ∈ V . Oznaczenia i konwencje:
π[v] poprzednik wierzchoªka v na tymczasowej najkrótszej drodze z s do v.
Dla a ∈ R ∪ {∞}, a + ∞ = ∞ + a = ∞.
Dla a ∈ R ∪ {−∞}, a + (−∞) = (−∞) + a = −∞.
Dla ka»dego v ∈ V trzymamy atrybut d[v] = oszacowanie wagi najkrótszej drogi = górne ograniczenie wagi najkrótszej drogi z s do v.
35 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Problem ujemnych wag, problem cykli o wadze ujemnej...Najkrótsze drogi z jednym ¹ródªem s ∈ V . Oznaczenia i konwencje:
π[v] poprzednik wierzchoªka v na tymczasowej najkrótszej drodze z s do v.
Dla a ∈ R ∪ {∞}, a + ∞ = ∞ + a = ∞.
Dla a ∈ R ∪ {−∞}, a + (−∞) = (−∞) + a = −∞.
Dla ka»dego v ∈ V trzymamy atrybut d[v] = oszacowanie wagi najkrótszej drogi = górne ograniczenie wagi najkrótszej drogi z s do v.
35 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Przygotowanie: Initialize(G, s) begin forka»dy v ∈ V(G)do begin d[v] := ∞; π[v] := ∞ end; d[s] := 0 end; 36 / 88 A. Mróz, WMiI, UMK NPrzeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Relaksacja(=osªabienie ogranicze«) kraw¦dzi (u, v)
sprawdzenie, czy przechodz¡c przez u, mo»na znale¹¢ krótsz¡ od dotychczas najkrótszej drogi do v. Je»eli tak, uaktualniamy warto±ci d[v] i π[v].
Relax(u, v, w)
begin
ifd[v] > d[u] + w(u,v)then begin d[v] := d[u] + w(u,v); π[v] := u end end; 37 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Relaksacja(=osªabienie ogranicze«) kraw¦dzi (u, v)
sprawdzenie, czy przechodz¡c przez u, mo»na znale¹¢ krótsz¡ od dotychczas najkrótszej drogi do v. Je»eli tak, uaktualniamy warto±ci d[v] i π[v].
Relax(u, v, w)
begin
ifd[v] > d[u] + w(u,v)then begin d[v] := d[u] + w(u,v); π[v] := u end end; 37 / 88 A. Mróz, WMiI, UMK N
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Algorytm Dijkstry.Dane: graf skierowany G = (V , E), nieujemna funkcja wagi w oraz wierzchoªek ¹ródªowy s ∈ V .
Wynik: dla ka»dego v ∈ V osi¡galnego z s, warto±¢ d[v] = δ(s, v) oraz poprzednik π[v] na najkrótszej drodze z s do v.
Strategia (zachªanna):
S = zbiór wierzchoªków, dla których wagi najkrótszych dróg s¡ policzone, tj. ∀v∈S d[v] = δ(s, v).
powtarzanie nast¦puj¡cych operacji:
bierzemy u ∈ V \ S o najmniejszej warto±ci d[v] (⇒ zbiór V \ S kolejka priorytetowa!);
dodajemy u do S i wykonujemy relaksacj¦ na wszystkich kraw¦dziach u → v.
38 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Algorytm Dijkstry.Dane: graf skierowany G = (V , E), nieujemna funkcja wagi w oraz wierzchoªek ¹ródªowy s ∈ V .
Wynik: dla ka»dego v ∈ V osi¡galnego z s, warto±¢ d[v] = δ(s, v) oraz poprzednik π[v] na najkrótszej drodze z s do v.
Strategia (zachªanna):
S = zbiór wierzchoªków, dla których wagi najkrótszych dróg s¡ policzone, tj. ∀v∈S d[v] = δ(s, v).
powtarzanie nast¦puj¡cych operacji:
bierzemy u ∈ V \ S o najmniejszej warto±ci d[v] (⇒ zbiór V \ S kolejka priorytetowa!);
dodajemy u do S i wykonujemy relaksacj¦ na wszystkich kraw¦dziach u → v.
38 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Algorytm Dijkstry.Dane: graf skierowany G = (V , E), nieujemna funkcja wagi w oraz wierzchoªek ¹ródªowy s ∈ V .
Wynik: dla ka»dego v ∈ V osi¡galnego z s, warto±¢ d[v] = δ(s, v) oraz poprzednik π[v] na najkrótszej drodze z s do v.
Strategia (zachªanna):
S = zbiór wierzchoªków, dla których wagi najkrótszych dróg s¡ policzone, tj. ∀v∈S d[v] = δ(s, v).
powtarzanie nast¦puj¡cych operacji:
bierzemy u ∈ V \ S o najmniejszej warto±ci d[v] (⇒ zbiór V \ S kolejka priorytetowa!);
dodajemy u do S i wykonujemy relaksacj¦ na wszystkich kraw¦dziach u → v.
38 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Algorytm Dijkstry.Dane: graf skierowany G = (V , E), nieujemna funkcja wagi w oraz wierzchoªek ¹ródªowy s ∈ V .
Wynik: dla ka»dego v ∈ V osi¡galnego z s, warto±¢ d[v] = δ(s, v) oraz poprzednik π[v] na najkrótszej drodze z s do v.
Strategia (zachªanna):
S = zbiór wierzchoªków, dla których wagi najkrótszych dróg s¡ policzone, tj. ∀v∈S d[v] = δ(s, v).
powtarzanie nast¦puj¡cych operacji:
bierzemy u ∈ V \ S o najmniejszej warto±ci d[v] (⇒ zbiór V \ S kolejka priorytetowa!);
dodajemy u do S i wykonujemy relaksacj¦ na wszystkich kraw¦dziach u → v.
38 / 88
A. Mróz, WMiI, UMK
Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw
Najkrótsze drogi w grae z wagami
Algorytm Dijkstry.Dane: graf skierowany G = (V , E), nieujemna funkcja wagi w oraz wierzchoªek ¹ródªowy s ∈ V .
Wynik: dla ka»dego v ∈ V osi¡galnego z s, warto±¢ d[v] = δ(s, v) oraz poprzednik π[v] na najkrótszej drodze z s do v.
Strategia (zachªanna):
S = zbiór wierzchoªków, dla których wagi najkrótszych dróg s¡ policzone, tj. ∀v∈S d[v] = δ(s, v).
powtarzanie nast¦puj¡cych operacji:
bierzemy u ∈ V \ S o najmniejszej warto±ci d[v] (⇒ zbiór V \ S kolejka priorytetowa!);
dodajemy u do S i wykonujemy relaksacj¦ na wszystkich kraw¦dziach u → v.
38 / 88
A. Mróz, WMiI, UMK