• Nie Znaleziono Wyników

grafy wprowadzenie

N/A
N/A
Protected

Academic year: 2021

Share "grafy wprowadzenie"

Copied!
171
0
0

Pełen tekst

(1)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Grafy - Wprowadzenie

zaj ˛ecia 5.

Marcin Andrychowicz, Tomasz Kulczy ´nski, Bła˙zej Osi ´nski

(2)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Co to jest graf?

Graf

jest to obiekt matematyczny, który mo˙zna wyobra˙za´c sobie jako map ˛e, zawieraj ˛ac ˛a miasta i drogi

składa si ˛e ze zbioru wierzchołków (miast) i

kraw˛edzi(dróg)

dla wygody wierzchołki b ˛edziemy numerowa´c kolejnymi liczbami naturalnymi 1, 2, . . .

oto przykładowy graf o 7 wierzchołkach i 8 kraw ˛edziach: 1 2 3 4 5 6 7

(3)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Co to jest graf?

Graf

jest to obiekt matematyczny, który mo˙zna wyobra˙za´c sobie jako map ˛e, zawieraj ˛ac ˛a miasta i drogi

składa si ˛e ze zbioru wierzchołków (miast) i kraw˛edzi(dróg)

dla wygody wierzchołki b ˛edziemy numerowa´c kolejnymi liczbami naturalnymi 1, 2, . . .

oto przykładowy graf o 7 wierzchołkach i 8 kraw ˛edziach: 1 2 3 4 5 6 7

(4)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Co to jest graf?

Graf

jest to obiekt matematyczny, który mo˙zna wyobra˙za´c sobie jako map ˛e, zawieraj ˛ac ˛a miasta i drogi

składa si ˛e ze zbioru wierzchołków (miast) i kraw˛edzi(dróg)

dla wygody wierzchołki b ˛edziemy numerowa´c kolejnymi liczbami naturalnymi 1, 2, . . .

oto przykładowy graf o 7 wierzchołkach i 8 kraw ˛edziach: 1 2 3 4 5 6 7

(5)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Co to jest graf?

Graf

jest to obiekt matematyczny, który mo˙zna wyobra˙za´c sobie jako map ˛e, zawieraj ˛ac ˛a miasta i drogi

składa si ˛e ze zbioru wierzchołków (miast) i kraw˛edzi(dróg)

dla wygody wierzchołki b ˛edziemy numerowa´c kolejnymi liczbami naturalnymi 1, 2, . . .

oto przykładowy graf o 7 wierzchołkach i 8 kraw ˛edziach: 1 2 3 4 5 6 7

(6)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Gdzie wyst ˛epuj ˛

a grafy?

Przykładowe zastosowania grafów:

Mamy dan ˛a map ˛e i chcemy wiedzie´c czy z miasta A da si ˛e dojecha´c do miasta B.

Mamy dan ˛a map ˛e i chcemy dowiedzie´c si ˛e jak

najszybciej mo˙zna przejecha´c z miasta A do miasta B. Mamy dany zbiór zada ´n do wykonania i zbiór

pracowników. Dla ka˙zdego zadania, wiemy, którzy

pracownicy potrafi ˛a je wykona´c. Chcemy wiedzie´c, czy

da si ˛e przydzieli´c ka˙zdemu pracownikowi co najwy˙zej jedno zadanie, tak aby wszystkie zadania zostały wykonane.

(7)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Gdzie wyst ˛epuj ˛

a grafy?

Przykładowe zastosowania grafów:

Mamy dan ˛a map ˛e i chcemy wiedzie´c czy z miasta A da si ˛e dojecha´c do miasta B.

Mamy dan ˛a map ˛e i chcemy dowiedzie´c si ˛e jak

najszybciej mo˙zna przejecha´c z miasta A do miasta B.

Mamy dany zbiór zada ´n do wykonania i zbiór pracowników. Dla ka˙zdego zadania, wiemy, którzy

pracownicy potrafi ˛a je wykona´c. Chcemy wiedzie´c, czy

da si ˛e przydzieli´c ka˙zdemu pracownikowi co najwy˙zej jedno zadanie, tak aby wszystkie zadania zostały wykonane.

(8)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Gdzie wyst ˛epuj ˛

a grafy?

Przykładowe zastosowania grafów:

Mamy dan ˛a map ˛e i chcemy wiedzie´c czy z miasta A da si ˛e dojecha´c do miasta B.

Mamy dan ˛a map ˛e i chcemy dowiedzie´c si ˛e jak

najszybciej mo˙zna przejecha´c z miasta A do miasta B. Mamy dany zbiór zada ´n do wykonania i zbiór

pracowników. Dla ka˙zdego zadania, wiemy, którzy pracownicy potrafi ˛a je wykona´c. Chcemy wiedzie´c, czy da si ˛e przydzieli´c ka˙zdemu pracownikowi co najwy˙zej jedno zadanie, tak aby wszystkie zadania zostały wykonane.

(9)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Oznaczenia

Oznaczenia

V (G) - zbiór wierzchołków grafu G

E (G) - zbiór kraw ˛edzi grafu G notacja skrócona: V i E przykład: 1 2 3 4 5 6 7 V = {1, 2, 3, 4, 5, 6, 7} E = {(1, 2), (2, 3), (3, 4), (4, 5), (2, 5), (3, 6), (6, 7)}

(10)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Oznaczenia

Oznaczenia

V (G) - zbiór wierzchołków grafu G E (G) - zbiór kraw ˛edzi grafu G

notacja skrócona: V i E przykład: 1 2 3 4 5 6 7 V = {1, 2, 3, 4, 5, 6, 7} E = {(1, 2), (2, 3), (3, 4), (4, 5), (2, 5), (3, 6), (6, 7)}

(11)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Oznaczenia

Oznaczenia

V (G) - zbiór wierzchołków grafu G E (G) - zbiór kraw ˛edzi grafu G notacja skrócona: V i E przykład: 1 2 3 4 5 6 7 V = {1, 2, 3, 4, 5, 6, 7} E = {(1, 2), (2, 3), (3, 4), (4, 5), (2, 5), (3, 6), (6, 7)}

(12)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Oznaczenia

Oznaczenia

V (G) - zbiór wierzchołków grafu G E (G) - zbiór kraw ˛edzi grafu G notacja skrócona: V i E przykład: 1 2 3 4 5 6 7 V = {1, 2, 3, 4, 5, 6, 7} E = {(1, 2), (2, 3), (3, 4), (4, 5), (2, 5), (3, 6), (6, 7)}

(13)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

´

Scie˙zka

´ Scie˙zka ´

scie˙zk ˛ał ˛acz ˛ac ˛a wierzchołki v0i vnnazywamy ci ˛ag (v0,v1, . . . ,vn), taki, ˙ze ka˙zde dwa kolejne wierzchołki, tego ci ˛agu s ˛a poł ˛aczone kraw ˛edzi ˛a

´scie˙zka (1, 2, 3, 4) ł ˛acz ˛ac ˛a wierzchołki 1 i 4:

1 2 3

4

5

6 7

długo´sci ˛a ´scie˙zki nazywamy ilo´s´c kraw ˛edzi na tej

(14)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

´

Scie˙zka

´ Scie˙zka ´

scie˙zk ˛ał ˛acz ˛ac ˛a wierzchołki v0i vnnazywamy ci ˛ag (v0,v1, . . . ,vn), taki, ˙ze ka˙zde dwa kolejne wierzchołki, tego ci ˛agu s ˛a poł ˛aczone kraw ˛edzi ˛a

´scie˙zka (1, 2, 3, 4) ł ˛acz ˛ac ˛a wierzchołki 1 i 4:

1 2 3

4 5

6 7

długo´sci ˛a ´scie˙zki nazywamy ilo´s´c kraw ˛edzi na tej

(15)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

´

Scie˙zka

´ Scie˙zka ´

scie˙zk ˛ał ˛acz ˛ac ˛a wierzchołki v0i vnnazywamy ci ˛ag (v0,v1, . . . ,vn), taki, ˙ze ka˙zde dwa kolejne wierzchołki, tego ci ˛agu s ˛a poł ˛aczone kraw ˛edzi ˛a

´scie˙zka (1, 2, 3, 4) ł ˛acz ˛ac ˛a wierzchołki 1 i 4:

1 2 3

4 5

6 7

długo´sci ˛a ´scie˙zki nazywamy ilo´s´c kraw ˛edzi na tej ´scie˙zce; powy˙zsza ´scie˙zka ma długo´s´c 3

(16)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Droga

Droga

jest to ´scie˙zka, której wszystkie wierzchołki s ˛a ró˙zne

´scie˙zka (1, 2, 3, 6, 7, 3, 4), NIE b ˛ed ˛a drog ˛a, ł ˛acz ˛ac ˛a

wierzchołki 1 i 4: 1 2 3 4 5 6 7

(17)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Droga

Droga

jest to ´scie˙zka, której wszystkie wierzchołki s ˛a ró˙zne ´scie˙zka (1, 2, 3, 6, 7, 3, 4), NIE b ˛ed ˛a drog ˛a, ł ˛acz ˛ac ˛a wierzchołki 1 i 4: 1 2 3 4 5 6 7

(18)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Cykl

Cykl

jest to ´scie˙zka, której pierwszy i ostatni wierzchołek s ˛a takie same

przykładowy cykl długo´sci 4:

1 2 3

4 5

6 7

cykl prosty to cykl na którym wierzchołki si ˛e nie

(19)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Cykl

Cykl

jest to ´scie˙zka, której pierwszy i ostatni wierzchołek s ˛a takie same

przykładowy cykl długo´sci 4:

1 2 3

4 5

6 7

cykl prosty to cykl na którym wierzchołki si ˛e nie

(20)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Cykl

Cykl

jest to ´scie˙zka, której pierwszy i ostatni wierzchołek s ˛a takie same

przykładowy cykl długo´sci 4:

1 2 3

4 5

6 7

cykl prosty to cykl na którym wierzchołki si ˛e nie powtarzaj ˛a (nie licz ˛ac pierwszego i ostatniego)

(21)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Stopie ´n wierzchołka

Stopie ´n wierzchołka

to liczba wychodz ˛acych z niego kraw ˛edzi

stopie ´n wierzchołka i oznaczamy deg[i] przykładowy graf i stopnie poszczególnych wierzchołków: 1 2 3 4 5 6 7 i 1 2 3 4 5 6 7 deg[i] 1 3 4 2 2 2 2

(22)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Stopie ´n wierzchołka

Stopie ´n wierzchołka

to liczba wychodz ˛acych z niego kraw ˛edzi stopie ´n wierzchołka i oznaczamy deg[i]

przykładowy graf i stopnie poszczególnych wierzchołków: 1 2 3 4 5 6 7 i 1 2 3 4 5 6 7 deg[i] 1 3 4 2 2 2 2

(23)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Stopie ´n wierzchołka

Stopie ´n wierzchołka

to liczba wychodz ˛acych z niego kraw ˛edzi stopie ´n wierzchołka i oznaczamy deg[i] przykładowy graf i stopnie poszczególnych wierzchołków: 1 2 3 4 5 6 7 i 1 2 3 4 5 6 7 deg[i] 1 3 4 2 2 2 2

(24)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Spójno´s´c

Spójno´s´c

graf nazywamy spójnym, je´sli istnieje ´scie˙zka ł ˛acz ˛aca dowolne dwa jego wierzchołki

przykład grafu spójnego:

1 2 3

4 5

6 7

przykład grafu niespójnego:

1 2 3

4 5

6 7

(25)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Spójno´s´c

Spójno´s´c

graf nazywamy spójnym, je´sli istnieje ´scie˙zka ł ˛acz ˛aca dowolne dwa jego wierzchołki

przykład grafu spójnego:

1 2 3

4 5

6 7

przykład grafu niespójnego:

1 2 3

4 5

6 7

(26)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Spójno´s´c

Spójno´s´c

graf nazywamy spójnym, je´sli istnieje ´scie˙zka ł ˛acz ˛aca dowolne dwa jego wierzchołki

przykład grafu spójnego:

1 2 3

4 5

6 7

przykład grafu niespójnego:

1 2 3

4 5

6 7

(27)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Multigrafy

Multigraf

to graf w którym par ˛e wierzchołków mo˙ze ł ˛aczy´c wi ˛ecej ni˙z jedna kraw ˛ed´z (tzw. kraw˛edzie wielokrotne):

1 2 3

4 5

6 7

lub zawieraj ˛acy kraw ˛ed´z ł ˛acz ˛ac ˛a wierzchołek z samym

sob ˛a (tzw. p˛etla): 1 2 3 4 5 6 7

(28)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Multigrafy

Multigraf

to graf w którym par ˛e wierzchołków mo˙ze ł ˛aczy´c wi ˛ecej ni˙z jedna kraw ˛ed´z (tzw. kraw˛edzie wielokrotne):

1 2 3

4 5

6 7

lub zawieraj ˛acy kraw ˛ed´z ł ˛acz ˛ac ˛a wierzchołek z samym sob ˛a (tzw. p˛etla): 1 2 3 4 5 6 7

(29)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Digrafy

Digraf — graf skierowany

to graf którego kraw ˛edzie s ˛a skierowane, czyli posiadaj ˛a wyró˙zniony pocz ˛atek i koniec

skierowanie mo˙ze przykładowo oznacza´c, ˙ze dana droga jest jednokierunkowa

przykładowy digraf: 1 2 3 4 5 6 7 nowa definicja ´scie˙zki

(2, 3, 6)NIE jest ´scie˙zk ˛a (2, 5, 4, 3, 6) jest ´scie˙zk ˛a

(30)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Digrafy

Digraf — graf skierowany

to graf którego kraw ˛edzie s ˛a skierowane, czyli posiadaj ˛a wyró˙zniony pocz ˛atek i koniec

skierowanie mo˙ze przykładowo oznacza´c, ˙ze dana droga jest jednokierunkowa

przykładowy digraf: 1 2 3 4 5 6 7 nowa definicja ´scie˙zki

(2, 3, 6)NIE jest ´scie˙zk ˛a (2, 5, 4, 3, 6) jest ´scie˙zk ˛a

(31)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Digrafy

Digraf — graf skierowany

to graf którego kraw ˛edzie s ˛a skierowane, czyli posiadaj ˛a wyró˙zniony pocz ˛atek i koniec

skierowanie mo˙ze przykładowo oznacza´c, ˙ze dana droga jest jednokierunkowa

przykładowy digraf: 1 2 3 4 5 6 7

nowa definicja ´scie˙zki

(2, 3, 6)NIE jest ´scie˙zk ˛a (2, 5, 4, 3, 6) jest ´scie˙zk ˛a

(32)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Digrafy

Digraf — graf skierowany

to graf którego kraw ˛edzie s ˛a skierowane, czyli posiadaj ˛a wyró˙zniony pocz ˛atek i koniec

skierowanie mo˙ze przykładowo oznacza´c, ˙ze dana droga jest jednokierunkowa

przykładowy digraf: 1 2 3 4 5 6 7 nowa definicja ´scie˙zki

(2, 3, 6)NIE jest ´scie˙zk ˛a (2, 5, 4, 3, 6) jest ´scie˙zk ˛a

(33)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Digrafy

Digraf — graf skierowany

to graf którego kraw ˛edzie s ˛a skierowane, czyli posiadaj ˛a wyró˙zniony pocz ˛atek i koniec

skierowanie mo˙ze przykładowo oznacza´c, ˙ze dana droga jest jednokierunkowa

przykładowy digraf: 1 2 3 4 5 6 7 nowa definicja ´scie˙zki

(2, 3, 6)NIE jest ´scie˙zk ˛a (2, 5, 4, 3, 6) jest ´scie˙zk ˛a

(34)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Digrafy

Digraf — graf skierowany

to graf którego kraw ˛edzie s ˛a skierowane, czyli posiadaj ˛a wyró˙zniony pocz ˛atek i koniec

skierowanie mo˙ze przykładowo oznacza´c, ˙ze dana droga jest jednokierunkowa

przykładowy digraf: 1 2 3 4 5 6 7 nowa definicja ´scie˙zki

(2, 3, 6)NIE jest ´scie˙zk ˛a (2, 5, 4, 3, 6) jest ´scie˙zk ˛a

(35)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo 1 2 3 4 5 6 7 Drzewo to graf

spójny niezawieraj ˛acy cykli prostych (tzw.

acykliczny)

w którym dokładnie jedna droga ł ˛aczy ka˙zd ˛a par ˛e

wierzchołków

spójny, ale usuni ˛ecie dowolnej kraw ˛edzi rozspójnia go

wszystkie powy˙zsze definicje s ˛a równowa˙zne!

(36)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo 1 2 3 4 5 6 7 Drzewo to graf

spójny niezawieraj ˛acy cykli prostych (tzw. acykliczny)

w którym dokładnie jedna droga ł ˛aczy ka˙zd ˛a par ˛e

wierzchołków

spójny, ale usuni ˛ecie dowolnej kraw ˛edzi rozspójnia go

wszystkie powy˙zsze definicje s ˛a równowa˙zne!

(37)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo 1 2 3 4 5 6 7 Drzewo to graf

spójny niezawieraj ˛acy cykli prostych (tzw. acykliczny)

w którym dokładnie jedna droga ł ˛aczy ka˙zd ˛a par ˛e wierzchołków

spójny, ale usuni ˛ecie dowolnej kraw ˛edzi rozspójnia go

wszystkie powy˙zsze definicje s ˛a równowa˙zne!

(38)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo 1 2 3 4 5 6 7 Drzewo to graf

spójny niezawieraj ˛acy cykli prostych (tzw. acykliczny)

w którym dokładnie jedna droga ł ˛aczy ka˙zd ˛a par ˛e wierzchołków

spójny, ale usuni ˛ecie dowolnej kraw ˛edzi rozspójnia go

wszystkie powy˙zsze definicje s ˛a równowa˙zne!

(39)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo 1 2 3 4 5 6 7 Drzewo to graf

spójny niezawieraj ˛acy cykli prostych (tzw. acykliczny)

w którym dokładnie jedna droga ł ˛aczy ka˙zd ˛a par ˛e wierzchołków

spójny, ale usuni ˛ecie dowolnej kraw ˛edzi rozspójnia go wszystkie powy˙zsze definicje s ˛a równowa˙zne!

(40)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo 1 2 3 4 5 6 7 Drzewo to graf

spójny niezawieraj ˛acy cykli prostych (tzw. acykliczny)

w którym dokładnie jedna droga ł ˛aczy ka˙zd ˛a par ˛e wierzchołków

spójny, ale usuni ˛ecie dowolnej kraw ˛edzi rozspójnia go wszystkie powy˙zsze definicje s ˛a równowa˙zne!

(41)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Drzewo rozpinaj ˛ace

drzewo A rozpina graf B, wtw. gdy V (A) = V (B) i E (A) ⊂ E (B) przykład: 1 2 3 4 5 6 7

(42)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Drzewo rozpinaj ˛ace

drzewo A rozpina graf B, wtw. gdy V (A) = V (B) i E (A) ⊂ E (B) przykład: 1 2 3 4 5 6 7

(43)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo ukorzenione

1 2 3 4 5 6 Definicje

drzewo ukorzenione to drzewo, którego jeden z wierzchołków został wyszczególniony (tzw. korze´n)

ojcemwierzchołka v nazywamy najbli˙zszy wierzchołek

na ´scie˙zce od v do korzenia

synemwierzchołka v nazywamy dowolny wierzchołek,

(44)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo ukorzenione

1 2 3 4 5 6 Definicje

drzewo ukorzenione to drzewo, którego jeden z wierzchołków został wyszczególniony (tzw. korze´n) ojcemwierzchołka v nazywamy najbli˙zszy wierzchołek na ´scie˙zce od v do korzenia

synemwierzchołka v nazywamy dowolny wierzchołek,

(45)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia

Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Drzewa

Przykładowe drzewo ukorzenione

1 2 3 4 5 6 Definicje

drzewo ukorzenione to drzewo, którego jeden z wierzchołków został wyszczególniony (tzw. korze´n) ojcemwierzchołka v nazywamy najbli˙zszy wierzchołek na ´scie˙zce od v do korzenia

synemwierzchołka v nazywamy dowolny wierzchołek, którego ojcem jest v

(46)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5?

czy graf jest spójny? czy graf jest acykliczny?

(47)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5?

czy graf jest spójny? czy graf jest acykliczny?

Odpowied´z

(48)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5?

czy graf jest spójny? czy graf jest acykliczny?

(49)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5?

czy graf jest spójny? czy graf jest acykliczny?

Odpowied´z

(50)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5? czy graf jest spójny?

czy graf jest acykliczny?

(51)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5? czy graf jest spójny?

czy graf jest acykliczny?

Odpowied´z

(52)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5? czy graf jest spójny?

czy graf jest acykliczny?

(53)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przykładowe problemy grafowe

Graf 1 2 3 4 5 6 7 Problemy grafowe

czy istnieje ´scie˙zk ˛a ł ˛acz ˛aca 1 i 5?

jaka jest najkrótsza ´scie˙zka ł ˛acz ˛aca 1 i 5? czy graf jest spójny?

czy graf jest acykliczny?

Odpowied´z

(54)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Reprezentacje grafu

konieczno´s´c przyj ˛ecia jakiego´s sposobu opisywania grafów na wej´sciu

reprezentacja w programie:

macierz s ˛asiedztwa listy s ˛asiedztwa

(55)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Reprezentacje grafu

konieczno´s´c przyj ˛ecia jakiego´s sposobu opisywania grafów na wej´sciu

reprezentacja w programie:

macierz s ˛asiedztwa listy s ˛asiedztwa

(56)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Reprezentacje grafu

konieczno´s´c przyj ˛ecia jakiego´s sposobu opisywania grafów na wej´sciu

reprezentacja w programie:

macierz s ˛asiedztwa listy s ˛asiedztwa

(57)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Reprezentacje grafu

konieczno´s´c przyj ˛ecia jakiego´s sposobu opisywania grafów na wej´sciu

reprezentacja w programie:

macierz s ˛asiedztwa listy s ˛asiedztwa

(58)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Graf 1 2 3 4 5 6 7 Opis grafu 78 2 1 2 3 3 4 4 5 5 2 3 6 . . .

(59)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Graf 1 2 3 4 5 6 7 Opis grafu 78 2 1 2 3 3 4 4 5 5 2 3 6 . . .

(60)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Graf 1 2 3 4 5 6 7 Opis grafu 7 8 2 1 2 3 3 4 4 5 5 2 3 6 . . .

(61)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Reprezentacje grafu

Graf 1 2 3 4 5 6 7 Opis grafu 7 8 2 1 2 3 3 4 4 5 5 2 3 6 . . .

(62)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Macierz s ˛

asiedztwa

Graf 1 2 3 4 5 6 7

Jego macierz s ˛asiedztwa

1 2 3 4 5 6 7 1 0 1 0 0 0 0 0 2 1 0 1 0 1 0 0 3 0 1 0 1 0 1 1 4 0 0 1 0 1 0 0 5 0 1 0 1 0 0 0 6 0 0 1 0 0 0 1 7 0 0 1 0 0 1 0

(63)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Macierz s ˛

asiedztwa

Graf 1 2 3 4 5 6 7

Jego macierz s ˛asiedztwa

1 2 3 4 5 6 7 1 0 1 0 0 0 0 0 2 1 0 1 0 1 0 0 3 0 1 0 1 0 1 1 4 0 0 1 0 1 0 0 5 0 1 0 1 0 0 0 6 0 0 1 0 0 0 1 7 0 0 1 0 0 1 0

(64)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Macierz s ˛

asiedztwa

Graf 1 2 3 4 5 6 7

Jego macierz s ˛asiedztwa

1 2 3 4 5 6 7 1 0 1 0 0 0 0 0 2 1 0 1 0 1 0 0 3 0 1 0 1 0 1 1 4 0 0 1 0 1 0 0 5 0 1 0 1 0 0 0 6 0 0 1 0 0 0 1 7 0 0 1 0 0 1 0

(65)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Implementacja

Implementacja

Kod programu tworz ˛acego reprezentacj ˛e grafu w postaci macierzy s ˛asiedztwa znajduje si ˛e w notatkach.

(66)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Listy s ˛

asiedztwa

Graf 1 2 3 4 5 6 7

Jego listy s ˛asiedztwa

1: 2 2: 1 5 3 3: 2 5 4 6 4: 3 5 5: 2 4 6: 7 3 7: 3 6

(67)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Listy s ˛

asiedztwa

Graf 1 2 3 4 5 6 7

Jego listy s ˛asiedztwa

1: 2 2: 1 5 3 3: 2 5 4 6 4: 3 5 5: 2 4 6: 7 3 7: 3 6

(68)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Implementacja

Implementacja

Kod programu tworz ˛acego reprezentacj ˛e grafu w postaci list s ˛asiedztwa znajduje si ˛e w notatkach.

(69)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przeszukiwanie grafu

Przeszukiwanie grafu

to poruszanie si ˛e od wierzchołka do wierzchołka wzdłu˙z kraw ˛edzi

przypomina to odkrywanie labiryntu

wiele algorytmów grafowych u˙zywa takiego modelu post ˛epowania

2 podstawowe rodzaje przeszukiwa ´n:

DFS BFS

(70)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przeszukiwanie grafu

Przeszukiwanie grafu

to poruszanie si ˛e od wierzchołka do wierzchołka wzdłu˙z kraw ˛edzi

przypomina to odkrywanie labiryntu

wiele algorytmów grafowych u˙zywa takiego modelu post ˛epowania

2 podstawowe rodzaje przeszukiwa ´n:

DFS BFS

(71)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przeszukiwanie grafu

Przeszukiwanie grafu

to poruszanie si ˛e od wierzchołka do wierzchołka wzdłu˙z kraw ˛edzi

przypomina to odkrywanie labiryntu

wiele algorytmów grafowych u˙zywa takiego modelu post ˛epowania

2 podstawowe rodzaje przeszukiwa ´n:

DFS BFS

(72)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Przeszukiwanie grafu

Przeszukiwanie grafu

to poruszanie si ˛e od wierzchołka do wierzchołka wzdłu˙z kraw ˛edzi

przypomina to odkrywanie labiryntu

wiele algorytmów grafowych u˙zywa takiego modelu post ˛epowania

2 podstawowe rodzaje przeszukiwa ´n:

DFS BFS

(73)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Strategia jeste´s w komnacie K

je´sli z K istnieje korytarz do komnaty, w której jeszcze nie byłe´s, to przejd´z do tej komnaty

je´sli takiego korytarza nie ma, to wró´c korytarzem, którym po raz pierwszy wszedłe´s do K

(74)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Strategia jeste´s w komnacie K

je´sli z K istnieje korytarz do komnaty, w której jeszcze nie byłe´s, to przejd´z do tej komnaty

je´sli takiego korytarza nie ma, to wró´c korytarzem, którym po raz pierwszy wszedłe´s do K

(75)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Strategia jeste´s w komnacie K

je´sli z K istnieje korytarz do komnaty, w której jeszcze nie byłe´s, to przejd´z do tej komnaty

je´sli takiego korytarza nie ma, to wró´c korytarzem, którym po raz pierwszy wszedłe´s do K

(76)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(77)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(78)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(79)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(80)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(81)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(82)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(83)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(84)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(85)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(86)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(87)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(88)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(89)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(90)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Odkrywanie labiryntu

Przykład 8 1 2 3 4 5 6 7

(91)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

DFS

Przedstawiony schemat nosi nazw ˛e DFS (deapth-first search), czyli przeszukiwania w gł ˛ab.

Jak zapisa´c to na komputerze?

Aby zbada´c wierzchołek K :

oznacz K jako odwiedzony

zbadaj rekurencyjnie wszystkie nieodwiedzone

wierzchołki s ˛asiaduj ˛ace z K

Cho´c mo˙ze to wygl ˛ada´c zaskakuj ˛aco, powy˙zszy algorytm to

ten sam schemat post ˛epowania. Spójrzmy na przykład raz jeszcze.

(92)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

DFS

Przedstawiony schemat nosi nazw ˛e DFS (deapth-first search), czyli przeszukiwania w gł ˛ab.

Jak zapisa´c to na komputerze?

Aby zbada´c wierzchołek K : oznacz K jako odwiedzony

zbadaj rekurencyjnie wszystkie nieodwiedzone

wierzchołki s ˛asiaduj ˛ace z K

Cho´c mo˙ze to wygl ˛ada´c zaskakuj ˛aco, powy˙zszy algorytm to

ten sam schemat post ˛epowania. Spójrzmy na przykład raz jeszcze.

(93)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

DFS

Przedstawiony schemat nosi nazw ˛e DFS (deapth-first search), czyli przeszukiwania w gł ˛ab.

Jak zapisa´c to na komputerze?

Aby zbada´c wierzchołek K : oznacz K jako odwiedzony

zbadaj rekurencyjnie wszystkie nieodwiedzone wierzchołki s ˛asiaduj ˛ace z K

Cho´c mo˙ze to wygl ˛ada´c zaskakuj ˛aco, powy˙zszy algorytm to

ten sam schemat post ˛epowania. Spójrzmy na przykład raz jeszcze.

(94)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

DFS

Przedstawiony schemat nosi nazw ˛e DFS (deapth-first search), czyli przeszukiwania w gł ˛ab.

Jak zapisa´c to na komputerze?

Aby zbada´c wierzchołek K : oznacz K jako odwiedzony

zbadaj rekurencyjnie wszystkie nieodwiedzone wierzchołki s ˛asiaduj ˛ace z K

Cho´c mo˙ze to wygl ˛ada´c zaskakuj ˛aco, powy˙zszy algorytm to ten sam schemat post ˛epowania. Spójrzmy na przykład raz jeszcze.

(95)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(96)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(97)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(98)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(99)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(100)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(101)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(102)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(103)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(104)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(105)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(106)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(107)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(108)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(109)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(110)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)?

(111)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Przykład 8 1 2 3 4 5 6 7 Zagadka

Co tworz ˛a kraw ˛edzie po których przeszli´smy (pogrubione)? Drzewo rozpinaj ˛ace całego grafu.

(112)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Implementacja

Implementacja

(113)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Analiza zło˙zono´sci czasowej

ka˙zdy wierzchołek raz odwiedzamy i oznaczamy jako odwiedzony — O(|V |)

dla ka˙zdego wierzchołka musimy przejrze´c wszystkich

jego s ˛asiadów; ile to trwa? To ju˙z zale˙zy od

reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c czasowa algorytmu DFS

wynosi O(|V |2)dla grafu w postaci macierzy

s ˛asiedztwa i O(|E | + |V |) dla grafu w postaci list

(114)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Analiza zło˙zono´sci czasowej

ka˙zdy wierzchołek raz odwiedzamy i oznaczamy jako odwiedzony — O(|V |)

dla ka˙zdego wierzchołka musimy przejrze´c wszystkich jego s ˛asiadów; ile to trwa? To ju˙z zale˙zy od

reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c czasowa algorytmu DFS

wynosi O(|V |2)dla grafu w postaci macierzy

s ˛asiedztwa i O(|E | + |V |) dla grafu w postaci list

(115)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Analiza zło˙zono´sci czasowej

ka˙zdy wierzchołek raz odwiedzamy i oznaczamy jako odwiedzony — O(|V |)

dla ka˙zdego wierzchołka musimy przejrze´c wszystkich jego s ˛asiadów; ile to trwa? To ju˙z zale˙zy od

reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c czasowa algorytmu DFS

wynosi O(|V |2)dla grafu w postaci macierzy

s ˛asiedztwa i O(|E | + |V |) dla grafu w postaci list

(116)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Analiza zło˙zono´sci czasowej

ka˙zdy wierzchołek raz odwiedzamy i oznaczamy jako odwiedzony — O(|V |)

dla ka˙zdego wierzchołka musimy przejrze´c wszystkich jego s ˛asiadów; ile to trwa? To ju˙z zale˙zy od

reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c czasowa algorytmu DFS

wynosi O(|V |2)dla grafu w postaci macierzy

s ˛asiedztwa i O(|E | + |V |) dla grafu w postaci list

(117)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS

Analiza zło˙zono´sci czasowej

ka˙zdy wierzchołek raz odwiedzamy i oznaczamy jako odwiedzony — O(|V |)

dla ka˙zdego wierzchołka musimy przejrze´c wszystkich jego s ˛asiadów; ile to trwa? To ju˙z zale˙zy od

reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c czasowa algorytmu DFS wynosi O(|V |2)dla grafu w postaci macierzy

s ˛asiedztwa i O(|E | + |V |) dla grafu w postaci list s ˛asiedztwa.

(118)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS — analiza zło˙zono´sci pami ˛eciowej

Potrzebujemy pami ˛eci na:

tablic ˛e warto´sci logicznych, mówi ˛acych czy odwiedzili´smy dany wierzchołek — O(|V |)

wywołania rekurencyjne — O(|V |)

reprezentacj ˛e grafu; ile ona zajmuje? To ju˙z zale˙zy od reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c pami ˛eciowa algorytmu DFS

(119)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS — analiza zło˙zono´sci pami ˛eciowej

Potrzebujemy pami ˛eci na:

tablic ˛e warto´sci logicznych, mówi ˛acych czy odwiedzili´smy dany wierzchołek — O(|V |) wywołania rekurencyjne — O(|V |)

reprezentacj ˛e grafu; ile ona zajmuje? To ju˙z zale˙zy od reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c pami ˛eciowa algorytmu DFS

(120)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS — analiza zło˙zono´sci pami ˛eciowej

Potrzebujemy pami ˛eci na:

tablic ˛e warto´sci logicznych, mówi ˛acych czy odwiedzili´smy dany wierzchołek — O(|V |) wywołania rekurencyjne — O(|V |)

reprezentacj ˛e grafu; ile ona zajmuje? To ju˙z zale˙zy od reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c pami ˛eciowa algorytmu DFS

(121)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS — analiza zło˙zono´sci pami ˛eciowej

Potrzebujemy pami ˛eci na:

tablic ˛e warto´sci logicznych, mówi ˛acych czy odwiedzili´smy dany wierzchołek — O(|V |) wywołania rekurencyjne — O(|V |)

reprezentacj ˛e grafu; ile ona zajmuje? To ju˙z zale˙zy od reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c pami ˛eciowa algorytmu DFS

(122)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS — analiza zło˙zono´sci pami ˛eciowej

Potrzebujemy pami ˛eci na:

tablic ˛e warto´sci logicznych, mówi ˛acych czy odwiedzili´smy dany wierzchołek — O(|V |) wywołania rekurencyjne — O(|V |)

reprezentacj ˛e grafu; ile ona zajmuje? To ju˙z zale˙zy od reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c pami ˛eciowa algorytmu DFS

(123)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

DFS — analiza zło˙zono´sci pami ˛eciowej

Potrzebujemy pami ˛eci na:

tablic ˛e warto´sci logicznych, mówi ˛acych czy odwiedzili´smy dany wierzchołek — O(|V |) wywołania rekurencyjne — O(|V |)

reprezentacj ˛e grafu; ile ona zajmuje? To ju˙z zale˙zy od reprezentacji grafu:

w przypadku macierzy s ˛asiedztwa: O(|V |) dla jednego wierzchołka, czyli ł ˛acznie O(|V |2)

w przypadku list s ˛asiedztwa: O(deg[K ]) dla jednego wierzchołka, czyli ł ˛acznie O(|E |)

Podsumowuj ˛ac, zło˙zono´s´c pami ˛eciowa algorytmu DFS jest taka sama jak czasowa.

(124)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Zastosowania algorytmu DFS

Problem

Czy istnieje ´scie˙zka ł ˛acz ˛aca wierzchołki A i B.

Rozwi ˛azanie

Uruchamiamy algorytm DFS z wierzchołka A a nast ˛epnie sprawdzamy czy wierzchołek B jest oznaczony jako odwiedzony.

(125)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Zastosowania algorytmu DFS

Problem

Czy istnieje ´scie˙zka ł ˛acz ˛aca wierzchołki A i B.

Rozwi ˛azanie

Uruchamiamy algorytm DFS z wierzchołka A a nast ˛epnie sprawdzamy czy wierzchołek B jest oznaczony jako odwiedzony.

(126)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Zastosowania algorytmu DFS

Problem

Czy graf jest spójny?

Rozwi ˛azanie

Uruchamiamy algorytm DFS z dowolnego wierzchołka a nast ˛epnie sprawdzamy czy wszystkie wierzchołki s ˛a oznaczone jako odwiedzone.

(127)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Zastosowania algorytmu DFS

Problem

Czy graf jest spójny?

Rozwi ˛azanie

Uruchamiamy algorytm DFS z dowolnego wierzchołka a nast ˛epnie sprawdzamy czy wszystkie wierzchołki s ˛a oznaczone jako odwiedzone.

(128)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Zastosowania algorytmu DFS

Problem

Znale´z´c dowoln ˛a ´scie˙zk˛e ł ˛acz ˛ac ˛a wierzchołki A lub B, b ˛ad´z stwierdzi´c, ˙ze taka nie istnieje.

Rozwi ˛azanie

W tym celu, w trakcie działania algorytmu DFS,

zapami ˛etamy dla ka˙zdego wierzchołka v numer wierzchołka z którego wywołali´smy DFS(v). Oznaczymy go ojc[v ] i nazwiemy ojcem wierzchołka v . Sk ˛ad si ˛e wzi ˛eła ta nazwa?. Znajd´zmy ´scie˙zk˛e ł ˛acz ˛ac ˛a 3 i 8 w widzianym ostatnio grafie.

(129)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Zastosowania algorytmu DFS

Problem

Znale´z´c dowoln ˛a ´scie˙zk˛e ł ˛acz ˛ac ˛a wierzchołki A lub B, b ˛ad´z stwierdzi´c, ˙ze taka nie istnieje.

Rozwi ˛azanie

W tym celu, w trakcie działania algorytmu DFS,

zapami ˛etamy dla ka˙zdego wierzchołka v numer wierzchołka z którego wywołali´smy DFS(v). Oznaczymy go ojc[v ] i nazwiemy ojcem wierzchołka v . Sk ˛ad si ˛e wzi ˛eła ta nazwa?. Znajd´zmy ´scie˙zk˛e ł ˛acz ˛ac ˛a 3 i 8 w widzianym ostatnio grafie.

(130)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Szukanie ´scie˙zki

DFS 8 1 2 3 4 5 6 7 Tablica ojców i 1 2 3 4 5 6 7 8 ojc[i] 7 8 4 6 4 2 4 x

(131)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Szukanie ´scie˙zki

DFS 8 1 2 3 4 5 6 7 Tablica ojców i 1 2 3 4 5 6 7 8 ojc[i] 7 8 4 6 4 2 4 x

(132)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Szukanie ´scie˙zki

DFS 8 1 2 3 4 5 6 7 Tablica ojców i 1 2 3 4 5 6 7 8 ojc[i] 7 8 4 6 4 2 4 x

(133)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Szukanie ´scie˙zki

DFS 8 1 2 3 4 5 6 7 Tablica ojców i 1 2 3 4 5 6 7 8 ojc[i] 7 8 4 6 4 2 4 x

(134)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

Szukanie ´scie˙zki

DFS 8 1 2 3 4 5 6 7 Tablica ojców i 1 2 3 4 5 6 7 8 ojc[i] 7 8 4 6 4 2 4 x

(135)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

BFS

BFS (breadth-first search), czyli przeszukiwanie wszerz:

zaczynamy od dowolnego wierzchołka K

odwiedzamy wszystkich s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów s ˛asiadów

(136)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

BFS

BFS (breadth-first search), czyli przeszukiwanie wszerz:

zaczynamy od dowolnego wierzchołka K

odwiedzamy wszystkich s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów s ˛asiadów

(137)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

BFS

BFS (breadth-first search), czyli przeszukiwanie wszerz:

zaczynamy od dowolnego wierzchołka K odwiedzamy wszystkich s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów s ˛asiadów

(138)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

BFS

BFS (breadth-first search), czyli przeszukiwanie wszerz:

zaczynamy od dowolnego wierzchołka K odwiedzamy wszystkich s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów s ˛asiadów

(139)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

BFS

BFS (breadth-first search), czyli przeszukiwanie wszerz:

zaczynamy od dowolnego wierzchołka K odwiedzamy wszystkich s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów K

odwiedzamy wszystkich s ˛asiadów s ˛asiadów s ˛asiadów K . . .

(140)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

Przykład 8 1 2 3 4 5 6 7

(141)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

Przykład 8 1 2 3 4 5 6 7

(142)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

Przykład 8 1 2 3 4 5 6 7

(143)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

Kolejka

Przejdziemy teraz do dokładniejszego opisu algorytmu BFS. B ˛edzie on korzystał z kolejki FIFO, wi ˛ec jest to dobry moment, aby j ˛a przypomnie´c.

(144)

Grafy - Wpro-wadzenie

Wst ˛ep

Podstawowe poj ˛ecia Rodzaje grafów Problemy grafowe Reprezentacje grafu Przeszukiwanie grafu Wst ˛ep DFS BFS Problemy

BFS

Jak to zapisa´c na komputerze?

tworzymy pust ˛a kolejk˛e

wrzucamy do niej dowolny wierzchołek dopóki kolejka nie jest pusta

wyci ˛agnij wierzchołek z kolejki (oznaczmy go v ) rozpatrz ka˙zdego s ˛asiada v i je´sli nie był jeszcze wrzucony do kolejki, to wrzu´c go do kolejki

Obraz

graf nazywamy spójnym, je´sli istnieje ´scie˙zka ł ˛ acz ˛ aca dowolne dwa jego wierzchołki

Cytaty

Powiązane dokumenty

→ po tej instrukcji mo˙zna umie´sci´c polecenia dotycz ˛ ace stylu całego dokumentu oraz doł ˛ aczy´c pakiety poszerzaj ˛ ace mo˙zliwo´sci L A TEX ’a za pomoc ˛

G= {V, E}, gdzie V jest zbiorem wierzchołków (węzłów) i E zbiorem krawędzi BIALY – kolor nadawany nie odwiedzonym wierzchołkom.. SZARY – kolor nadawany

Algorytm Floyda-Warshalla jest przykładem algorytmu wyznaczającegon koszt najkrótszej ścieżki między każdą parą wierzchołków w grafie ważonym. Do

Jak wcze´sniej wspomnieli´smy, drzewa spinaj ¾ ace otrzymane w wyniku dzia÷ ania algorytmu Drzewo mo· zna traktowa´c jako uporz ¾ adkowane drzewa z wyró· znionym korzeniem.. Porz

[r]

Graf jest spójny, jeżeli z każdego wierzchołka da się dojść do wszystkich pozostałych. W przeciwnym wypadku graf jest określany jako

10 krawędzi musi pracowicie przeliczyć wszystkie wierzchołki leżące w odległości 1, potem 2, i tak dalej aż do odległości 9 od startowego, by mieć szansę znaleźć

Je´sli ´zródło d´zwi ˛eku jest nieruchome wzgl ˛edem obserwatora, obserwator słyszy d´zwi ˛ek o niezmienionej cz ˛esto´sci. Je´sli ´zródło d´zwi ˛eku porusza si ˛e