• Nie Znaleziono Wyników

Część 3

N/A
N/A
Protected

Academic year: 2021

Share "Część 3"

Copied!
331
0
0

Pełen tekst

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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)do

5 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

(57)

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)do

5 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

(58)

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)do

5 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

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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

(72)

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]do

7 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

(73)

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]do

7 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

(74)

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]do

7 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

(75)

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]do

7 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

(76)

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]do

7 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

(77)

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]do

7 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

(78)

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]do

7 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

(79)

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]do

7 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

(80)

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]do

7 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

(81)

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]do

7 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

(82)

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]do

7 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

(83)

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]do

7 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

(84)

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]do

7 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

(85)

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]do

7 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

(86)

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

(87)

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

(88)

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

(89)

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

(90)

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

(91)

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

(92)

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

(93)

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]do

7 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

(94)

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

(95)

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

(96)

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

(97)

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

(98)

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

(99)

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

(100)

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

(101)

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

(102)

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

(103)

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

(104)

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

(105)

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

(106)

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

(107)

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

(108)

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

(109)

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

(110)

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

(111)

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

(112)

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

(113)

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 N

(114)

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

(115)

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

(116)

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

(117)

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

(118)

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

(119)

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

(120)

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

Cytaty

Powiązane dokumenty

– Jeśli następny bit wejściowy jest równy 0, to następna wartość wyjściowa jest taka sama, jak poprzednio. – Jeśli następny bit wejściowy jest równy 1, to nastąpi

A.Sierszeń, Ł.Sturgalewski, „Technologie sieci WAN”, Projektowanie i Realizacja Sieci Komputerowych, Politechnika Łódzka, 2014 V.Amato, W.Lewis „Akademia sieci CISCO”,

L.L.Peterson, B.S.Davie – Sieci komputerowe – podejście systemowe”, Nakom, Poznań 2000 Mark Sportack, Sieci komputerowe, Księga Eksperta, Helion, Warszawa 2008.

• Zasoby sieci zarezerwowane dla poszczególnych strumieni danych (w oparciu o protokół RSVP). • Implementacja protokołu wymagana na każdym

– 13 „root” serwerów (root servers) - ftp://ftp.rs.internic.net/domain/named.root – Serwery główne (top-level domain servers) – domeny krajowe, funkcyjne.. –

2G - HSCSD Transmisja danych w GSM D:57 kb/s, U:14 kb/s Opłata naliczania za czas połączenia 2,5G – GPRS Pakietowa transmisja danych 30-80 kb/s Opłaty za ilość przesłanych

podtrzymana sesja BGP, jeśli nie nadejdzie wiadomość KEEPALIVE lub UPDATE), identyfikator routera BGP (RouterID) oraz opcjonalne parametry wykorzystywane przy zestawieniu sesji BGP.

Na podstawie ustalonych w poprzednich komunikatach dwóch liczb losowych (klienta i serwera) oraz ustalonego przez klienta wstępnego klucza sesji obie strony generują klucz