Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera,...

151
Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana- Forda Cykl Eulera Wst ˛ ep Istnienie Wyznaczanie Najkrótsze ´ scie˙ zki Wst ˛ ep Dijkstra Bellman-Ford Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda zaj ˛ ecia 6. Marcin Andrychowicz, Tomasz Kulczy´ nski, Bla˙ zej Osi ´ nski

Transcript of Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera,...

Page 1: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Grafy c.d. — cykl Eulera, algorytm Dijkstry iBellmana-Forda

zajecia 6.

Marcin Andrychowicz, Tomasz Kulczynski, BłazejOsinski

Page 2: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Problem mostów królewieckich

Mosty Graf

1

2

3

4

Cykl EuleraCykl Eulera to cykl, który przechodzi przez wszystkiekrawedzie grafu dokładnie raz.

Page 3: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Problem mostów królewieckich

Mosty Graf

1

2

3

4

Cykl EuleraCykl Eulera to cykl, który przechodzi przez wszystkiekrawedzie grafu dokładnie raz.

Page 4: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Problem mostów królewieckich

Mosty Graf

1

2

3

4

Cykl EuleraCykl Eulera to cykl, który przechodzi przez wszystkiekrawedzie grafu dokładnie raz.

Page 5: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 6: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 7: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 8: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 9: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 10: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 11: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 12: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 13: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 14: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Przykład cyklu Eulera:

7

1 2

3 4

5

6

Page 15: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Pytaniaczy graf posiada cykl Eulera? (czy jest tzw.eulerowski)jak znalezc dowolny cykl Eulera?

Page 16: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera

Pytaniaczy graf posiada cykl Eulera? (czy jest tzw.eulerowski)jak znalezc dowolny cykl Eulera?

Page 17: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Euler?

GrafDlaczego ponizszy graf nie posiada cyklu Eulera?

1

2

3

4

Warunki konieczne:parzystosc stopni wierzchołkówspójnosc

Page 18: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Euler?

GrafDlaczego ponizszy graf nie posiada cyklu Eulera?

1

2

3

4

Warunki konieczne:parzystosc stopni wierzchołkówspójnosc

Page 19: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Euler?

GrafDlaczego ponizszy graf nie posiada cyklu Eulera?

1

2

3

4

Warunki konieczne:parzystosc stopni wierzchołkówspójnosc

Page 20: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Euler?

GrafDlaczego ponizszy graf nie posiada cyklu Eulera?

1

2

3

4

Warunki konieczne:parzystosc stopni wierzchołkówspójnosc

Page 21: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Eulera?

Podane warunki sa dostateczne!

dowód przez indukcje wzgledem ilosci krawedzibaza: dla grafu bez krawedzi zachodzikrok indukcyjny: zaczynamy z dowolnego wierzchołka vi poruszamy sie az trafimy znów do v . . .

Page 22: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Eulera?

Podane warunki sa dostateczne!

dowód przez indukcje wzgledem ilosci krawedzibaza: dla grafu bez krawedzi zachodzikrok indukcyjny: zaczynamy z dowolnego wierzchołka vi poruszamy sie az trafimy znów do v . . .

Page 23: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Czy graf posiada cykl Eulera?

Podane warunki sa dostateczne!

dowód przez indukcje wzgledem ilosci krawedzibaza: dla grafu bez krawedzi zachodzikrok indukcyjny: zaczynamy z dowolnego wierzchołka vi poruszamy sie az trafimy znów do v . . .

Page 24: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 25: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 26: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 27: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 28: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 29: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 30: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Dowód c.d.

Graf

7

1 2

3 4

5

6

Co dalej?

dlaczego trafilismy do v?w pozostałej czesci grafu cykl Eulera istnieje —(7,1,2,3,4,2,7)

łaczymy oba cykle — (7,5,4,6,7,1,2,3,4,2,7)

Page 31: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sciezka Eulera

Sciezka EuleraSciezka Eulera — sciezka przechodzaca przez kazdakrawedz dokładnie raz nie bedaca cyklemgraf musi byc spójnyniech p i k beda poczatkiem i koncem sciezki Eulerapo dodaniu krawedzi łaczacej p i k otrzymujemy grafeulerowskizatem w grafie musza istniec dokładnie dwa wierzchołkinieparzystego stopnia

Page 32: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sciezka Eulera

Sciezka EuleraSciezka Eulera — sciezka przechodzaca przez kazdakrawedz dokładnie raz nie bedaca cyklemgraf musi byc spójnyniech p i k beda poczatkiem i koncem sciezki Eulerapo dodaniu krawedzi łaczacej p i k otrzymujemy grafeulerowskizatem w grafie musza istniec dokładnie dwa wierzchołkinieparzystego stopnia

Page 33: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sciezka Eulera

Sciezka EuleraSciezka Eulera — sciezka przechodzaca przez kazdakrawedz dokładnie raz nie bedaca cyklemgraf musi byc spójnyniech p i k beda poczatkiem i koncem sciezki Eulerapo dodaniu krawedzi łaczacej p i k otrzymujemy grafeulerowskizatem w grafie musza istniec dokładnie dwa wierzchołkinieparzystego stopnia

Page 34: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sciezka Eulera

Sciezka EuleraSciezka Eulera — sciezka przechodzaca przez kazdakrawedz dokładnie raz nie bedaca cyklemgraf musi byc spójnyniech p i k beda poczatkiem i koncem sciezki Eulerapo dodaniu krawedzi łaczacej p i k otrzymujemy grafeulerowskizatem w grafie musza istniec dokładnie dwa wierzchołkinieparzystego stopnia

Page 35: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sciezka Eulera

Sciezka EuleraSciezka Eulera — sciezka przechodzaca przez kazdakrawedz dokładnie raz nie bedaca cyklemgraf musi byc spójnyniech p i k beda poczatkiem i koncem sciezki Eulerapo dodaniu krawedzi łaczacej p i k otrzymujemy grafeulerowskizatem w grafie musza istniec dokładnie dwa wierzchołkinieparzystego stopnia

Page 36: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera w grafach skierowanych

Warunki konieczne:z wierzchołka nr. 1 da sie dojsc do kazdego innegodo kazdego wierzchołka wchodzi tyle samo krawedzi ilez niego wychodzipowyzsze warunki sa dostateczne

Page 37: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera w grafach skierowanych

Warunki konieczne:z wierzchołka nr. 1 da sie dojsc do kazdego innegodo kazdego wierzchołka wchodzi tyle samo krawedzi ilez niego wychodzipowyzsze warunki sa dostateczne

Page 38: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Cykl Eulera w grafach skierowanych

Warunki konieczne:z wierzchołka nr. 1 da sie dojsc do kazdego innegodo kazdego wierzchołka wchodzi tyle samo krawedzi ilez niego wychodzipowyzsze warunki sa dostateczne

Page 39: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Wyznaczanie cyklu Eulera

Wyznaczanie cyklu Eulera

umiemy juz sprawdzic czy cykl Eulera istnieje, ale jakgo znalezc?słuzy do tego algorytm Fleury’ego, który działatroche na zasadzie opisanego dowodudziała zarówno dla grafów skierowanych jak inieskierowanychjest rekurencyjnyzaczynamy od dowolnego wierzchołka

Page 40: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Wyznaczanie cyklu Eulera

Wyznaczanie cyklu Eulera

umiemy juz sprawdzic czy cykl Eulera istnieje, ale jakgo znalezc?słuzy do tego algorytm Fleury’ego, który działatroche na zasadzie opisanego dowodudziała zarówno dla grafów skierowanych jak inieskierowanychjest rekurencyjnyzaczynamy od dowolnego wierzchołka

Page 41: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Wyznaczanie cyklu Eulera

Wyznaczanie cyklu Eulera

umiemy juz sprawdzic czy cykl Eulera istnieje, ale jakgo znalezc?słuzy do tego algorytm Fleury’ego, który działatroche na zasadzie opisanego dowodudziała zarówno dla grafów skierowanych jak inieskierowanychjest rekurencyjnyzaczynamy od dowolnego wierzchołka

Page 42: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Wyznaczanie cyklu Eulera

Wyznaczanie cyklu Eulera

umiemy juz sprawdzic czy cykl Eulera istnieje, ale jakgo znalezc?słuzy do tego algorytm Fleury’ego, który działatroche na zasadzie opisanego dowodudziała zarówno dla grafów skierowanych jak inieskierowanychjest rekurencyjnyzaczynamy od dowolnego wierzchołka

Page 43: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Wyznaczanie cyklu Eulera

Wyznaczanie cyklu Eulera

umiemy juz sprawdzic czy cykl Eulera istnieje, ale jakgo znalezc?słuzy do tego algorytm Fleury’ego, który działatroche na zasadzie opisanego dowodudziała zarówno dla grafów skierowanych jak inieskierowanychjest rekurencyjnyzaczynamy od dowolnego wierzchołka

Page 44: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Aby przetworzyc wierzchołek v :dopóki istnieje krawedz z v :

usun ta krawedz i przetwórz wierzchołek do któregoprowadziławypisz v

wypisane wierzchołki czytane w odwrotnej kolejnoscitworza cykl Eulera (pierwszy wierzchołek nie jestpowtórzony na koncu)dlaczego to działa? popatrzmy na przykład

Page 45: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Aby przetworzyc wierzchołek v :dopóki istnieje krawedz z v :

usun ta krawedz i przetwórz wierzchołek do któregoprowadziławypisz v

wypisane wierzchołki czytane w odwrotnej kolejnoscitworza cykl Eulera (pierwszy wierzchołek nie jestpowtórzony na koncu)dlaczego to działa? popatrzmy na przykład

Page 46: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Aby przetworzyc wierzchołek v :dopóki istnieje krawedz z v :

usun ta krawedz i przetwórz wierzchołek do któregoprowadziławypisz v

wypisane wierzchołki czytane w odwrotnej kolejnoscitworza cykl Eulera (pierwszy wierzchołek nie jestpowtórzony na koncu)dlaczego to działa? popatrzmy na przykład

Page 47: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Aby przetworzyc wierzchołek v :dopóki istnieje krawedz z v :

usun ta krawedz i przetwórz wierzchołek do któregoprowadziławypisz v

wypisane wierzchołki czytane w odwrotnej kolejnoscitworza cykl Eulera (pierwszy wierzchołek nie jestpowtórzony na koncu)dlaczego to działa? popatrzmy na przykład

Page 48: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Aby przetworzyc wierzchołek v :dopóki istnieje krawedz z v :

usun ta krawedz i przetwórz wierzchołek do któregoprowadziławypisz v

wypisane wierzchołki czytane w odwrotnej kolejnoscitworza cykl Eulera (pierwszy wierzchołek nie jestpowtórzony na koncu)dlaczego to działa? popatrzmy na przykład

Page 49: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Aby przetworzyc wierzchołek v :dopóki istnieje krawedz z v :

usun ta krawedz i przetwórz wierzchołek do któregoprowadziławypisz v

wypisane wierzchołki czytane w odwrotnej kolejnoscitworza cykl Eulera (pierwszy wierzchołek nie jestpowtórzony na koncu)dlaczego to działa? popatrzmy na przykład

Page 50: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 51: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 52: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 53: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 54: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 55: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 56: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 57: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 58: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 59: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 60: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 61: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 62: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 63: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 64: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 65: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 66: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 67: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 68: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 69: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 70: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

7

1 2

3 4

5

6

Wyjscie7 2 4 3 2 1 7 6 4 5

Page 71: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Usuwanie krawedzidla macierzy sasiedztwa — łatwedla list sasiedztwa:

dla grafów skierowanych — metoda pop_back()dla grafów nieskierowanych — a co z krawedzia "wdruga strone"?problem ten pominiemy do czasu az poznamy klaseset

Page 72: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Usuwanie krawedzidla macierzy sasiedztwa — łatwedla list sasiedztwa:

dla grafów skierowanych — metoda pop_back()dla grafów nieskierowanych — a co z krawedzia "wdruga strone"?problem ten pominiemy do czasu az poznamy klaseset

Page 73: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Usuwanie krawedzidla macierzy sasiedztwa — łatwedla list sasiedztwa:

dla grafów skierowanych — metoda pop_back()dla grafów nieskierowanych — a co z krawedzia "wdruga strone"?problem ten pominiemy do czasu az poznamy klaseset

Page 74: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Usuwanie krawedzidla macierzy sasiedztwa — łatwedla list sasiedztwa:

dla grafów skierowanych — metoda pop_back()dla grafów nieskierowanych — a co z krawedzia "wdruga strone"?problem ten pominiemy do czasu az poznamy klaseset

Page 75: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Usuwanie krawedzidla macierzy sasiedztwa — łatwedla list sasiedztwa:

dla grafów skierowanych — metoda pop_back()dla grafów nieskierowanych — a co z krawedzia "wdruga strone"?problem ten pominiemy do czasu az poznamy klaseset

Page 76: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Implementacja

ImplementacjaImplementacja algorytmu Fleury’ego znajduje sie wnotatkach.

Page 77: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Fleury’ego

Analiza złozonosci — lista sasiedztwa:Po kazdej krawedzi przechodzimy dokładnie raz —złozonosc O(|E |).

Page 78: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Grafy wazone

Grafy wazonegrafem wazonym lub inaczej siecia nazywamy graf,którego krawedzie posiadaja w pewnym sensie"długosci"przykład grafu wazonego:

6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Page 79: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Grafy wazone

Grafy wazonegrafem wazonym lub inaczej siecia nazywamy graf,którego krawedzie posiadaja w pewnym sensie"długosci"przykład grafu wazonego:

6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Page 80: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Grafy wazone

Grafy wazone

owe liczby bedziemy nazywac waga, długoscia albokosztem krawedzidługosc sciezki to suma długosci jej krawedzi

Page 81: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Grafy wazone

Grafy wazone

owe liczby bedziemy nazywac waga, długoscia albokosztem krawedzidługosc sciezki to suma długosci jej krawedzi

Page 82: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Pytania

jaka jest najkrótsza sciezka z wierzchołka v do w?jakie sa najkrótsze sciezki z wierzchołka v dowszystkich pozostałych wierzchołków?jakie sa najkrótsze sciezki pomiedzy wszystkimi paramiwierzchołków?

Page 83: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Pytania

jaka jest najkrótsza sciezka z wierzchołka v do w?jakie sa najkrótsze sciezki z wierzchołka v dowszystkich pozostałych wierzchołków?jakie sa najkrótsze sciezki pomiedzy wszystkimi paramiwierzchołków?

Page 84: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Pytania

jaka jest najkrótsza sciezka z wierzchołka v do w?jakie sa najkrótsze sciezki z wierzchołka v dowszystkich pozostałych wierzchołków?jakie sa najkrótsze sciezki pomiedzy wszystkimi paramiwierzchołków?

Page 85: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Najkrótsze sciezki

zazwyczaj nie da sie policzyc najkrótszej sciezki z v dow bez liczenia najkrótszych sciezek z v do wszystkichpozostałych wierzchołkówdlatego tez skupimy sie na liczeniu wszystkichnajkrótszych sciezek z pojedynczego zródła (oznaczmyje s)

Page 86: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Najkrótsze sciezki

zazwyczaj nie da sie policzyc najkrótszej sciezki z v dow bez liczenia najkrótszych sciezek z v do wszystkichpozostałych wierzchołkówdlatego tez skupimy sie na liczeniu wszystkichnajkrótszych sciezek z pojedynczego zródła (oznaczmyje s)

Page 87: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Zarys metody postepowania

w kazdej chwili obliczen bedziemy trzymali pewnesciezki z s do pozostałych wierzchołkówkonkretniej bedziemy trzymali 2 tablice:

dis[v ] — długosc najkrótszej znalezionej sciezki z s dovojc[v ] — ostatni nie liczac v wierzchołek na najkrótszejsciezce z s do v

Page 88: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Zarys metody postepowania

w kazdej chwili obliczen bedziemy trzymali pewnesciezki z s do pozostałych wierzchołkówkonkretniej bedziemy trzymali 2 tablice:

dis[v ] — długosc najkrótszej znalezionej sciezki z s dovojc[v ] — ostatni nie liczac v wierzchołek na najkrótszejsciezce z s do v

Page 89: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Zarys metody postepowania

w kazdej chwili obliczen bedziemy trzymali pewnesciezki z s do pozostałych wierzchołkówkonkretniej bedziemy trzymali 2 tablice:

dis[v ] — długosc najkrótszej znalezionej sciezki z s dovojc[v ] — ostatni nie liczac v wierzchołek na najkrótszejsciezce z s do v

Page 90: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Najkrótsze sciezki

Zarys metody postepowania

w kazdej chwili obliczen bedziemy trzymali pewnesciezki z s do pozostałych wierzchołkówkonkretniej bedziemy trzymali 2 tablice:

dis[v ] — długosc najkrótszej znalezionej sciezki z s dovojc[v ] — ostatni nie liczac v wierzchołek na najkrótszejsciezce z s do v

Page 91: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sytuacja w trakcie obliczen

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 ∞ ∞ 73 29 0ojc[v ] 6 x x 1 6 x

Page 92: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Relaksacja krawedzi

Relaksacja krawedzipodstawowa operacja w rozwazanych algorytmachbedzie relaksacja krawedzirelaksacja krawedzi v → w polega na sprawdzeniu, czyprzejscie najkrótsza znana sciezka z s do v anastepnie krawedzia z v do w nie daje krótszej sciezkiz s do w niz obecnie znanaif dis[v]+waga(v,w) < dis[w]

dis[w]=dis[v]+waga(v,w)ojc[w]=v

Page 93: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Relaksacja krawedzi

Relaksacja krawedzipodstawowa operacja w rozwazanych algorytmachbedzie relaksacja krawedzirelaksacja krawedzi v → w polega na sprawdzeniu, czyprzejscie najkrótsza znana sciezka z s do v anastepnie krawedzia z v do w nie daje krótszej sciezkiz s do w niz obecnie znanaif dis[v]+waga(v,w) < dis[w]

dis[w]=dis[v]+waga(v,w)ojc[w]=v

Page 94: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Relaksacja krawedzi

Relaksacja krawedzipodstawowa operacja w rozwazanych algorytmachbedzie relaksacja krawedzirelaksacja krawedzi v → w polega na sprawdzeniu, czyprzejscie najkrótsza znana sciezka z s do v anastepnie krawedzia z v do w nie daje krótszej sciezkiz s do w niz obecnie znanaif dis[v]+waga(v,w) < dis[w]

dis[w]=dis[v]+waga(v,w)ojc[w]=v

Page 95: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Relaksacja krawedzi

Relaksacja krawedzipodstawowa operacja w rozwazanych algorytmachbedzie relaksacja krawedzirelaksacja krawedzi v → w polega na sprawdzeniu, czyprzejscie najkrótsza znana sciezka z s do v anastepnie krawedzia z v do w nie daje krótszej sciezkiz s do w niz obecnie znanaif dis[v]+waga(v,w) < dis[w]

dis[w]=dis[v]+waga(v,w)ojc[w]=v

Page 96: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Relaksacja krawedzi

Relaksacja krawedzipodstawowa operacja w rozwazanych algorytmachbedzie relaksacja krawedzirelaksacja krawedzi v → w polega na sprawdzeniu, czyprzejscie najkrótsza znana sciezka z s do v anastepnie krawedzia z v do w nie daje krótszej sciezkiz s do w niz obecnie znanaif dis[v]+waga(v,w) < dis[w]

dis[w]=dis[v]+waga(v,w)ojc[w]=v

Page 97: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstrypokazemy teraz najbardziej znany algorytm liczenianajkrótszych sciezek z pojedynczego zródła —algorytm Dijkstry

algorytm ten Działa tylko dla grafów o nieujemnychwagach krawedzijest to załozenie czesto spełnione, np. kiedy wagiodpowiadaja odległosciom

Page 98: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstrypokazemy teraz najbardziej znany algorytm liczenianajkrótszych sciezek z pojedynczego zródła —algorytm Dijkstry

algorytm ten Działa tylko dla grafów o nieujemnychwagach krawedzijest to załozenie czesto spełnione, np. kiedy wagiodpowiadaja odległosciom

Page 99: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstrypokazemy teraz najbardziej znany algorytm liczenianajkrótszych sciezek z pojedynczego zródła —algorytm Dijkstry

algorytm ten Działa tylko dla grafów o nieujemnychwagach krawedzijest to załozenie czesto spełnione, np. kiedy wagiodpowiadaja odległosciom

Page 100: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 101: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 102: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 103: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 104: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 105: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 106: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Algorytm Dijkstryoznacz wszystkie wierzchołki jako nieodwiedzone(vis[v ] = false)dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0dopóki istnieje nieodwiedzony wierzchołek oskonczonej odległosci:

niech v bedzie wierzchołkiem nieodwiedzonym onajmniejszej odległoscioznacz v jako odwiedzonyzrelaksuj wszystkie krawedzie wychodzace z v

Page 107: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] ∞ ∞ ∞ ∞ ∞ 0ojc[v ] x x x x x xvis[v ] 0 0 0 0 0 0

Page 108: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 ∞ ∞ ∞ 29 0ojc[v ] 6 x x x 6 xvis[v ] 0 0 0 0 1 0

Page 109: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 ∞ ∞ 50 29 0ojc[v ] 6 x x 5 6 xvis[v ] 0 0 0 0 1 1

Page 110: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 92 ∞ 50 29 0ojc[v ] 6 1 x 5 6 xvis[v ] 1 0 0 0 1 1

Page 111: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 82 86 50 29 0ojc[v ] 6 4 4 5 6 xvis[v ] 1 0 0 1 1 1

Page 112: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 82 86 50 29 0ojc[v ] 6 4 4 5 6 xvis[v ] 1 1 0 1 1 1

Page 113: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Graf6

1

23

4

5

41

51

50

36

38

45

29

21

32

32

29

Tablice

v 1 2 3 4 5 6dis[v ] 41 82 86 50 29 0ojc[v ] 6 4 4 5 6 xvis[v ] 1 1 1 1 1 1

Page 114: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Analiza złozonosci — listy sasiedztwa:

złozonosc pamieciowa O(|V |+ |E |)kazda krawedz relaksujemy co najwyzej raz — czasO(|E |)O(|V |) razy wybieramy wierzchołek o najmniejszejodległosci, co zajmuje jednorazowo czas O(|V |), czyliłacznie O(|V |2)złozonosc czasowa O(|V |2 + |E |) = O(|V |2)da sie ta złozonosc poprawic, ale o tym bedzie kiedyindziej . . .

Page 115: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Analiza złozonosci — listy sasiedztwa:

złozonosc pamieciowa O(|V |+ |E |)kazda krawedz relaksujemy co najwyzej raz — czasO(|E |)O(|V |) razy wybieramy wierzchołek o najmniejszejodległosci, co zajmuje jednorazowo czas O(|V |), czyliłacznie O(|V |2)złozonosc czasowa O(|V |2 + |E |) = O(|V |2)da sie ta złozonosc poprawic, ale o tym bedzie kiedyindziej . . .

Page 116: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Analiza złozonosci — listy sasiedztwa:

złozonosc pamieciowa O(|V |+ |E |)kazda krawedz relaksujemy co najwyzej raz — czasO(|E |)O(|V |) razy wybieramy wierzchołek o najmniejszejodległosci, co zajmuje jednorazowo czas O(|V |), czyliłacznie O(|V |2)złozonosc czasowa O(|V |2 + |E |) = O(|V |2)da sie ta złozonosc poprawic, ale o tym bedzie kiedyindziej . . .

Page 117: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Analiza złozonosci — listy sasiedztwa:

złozonosc pamieciowa O(|V |+ |E |)kazda krawedz relaksujemy co najwyzej raz — czasO(|E |)O(|V |) razy wybieramy wierzchołek o najmniejszejodległosci, co zajmuje jednorazowo czas O(|V |), czyliłacznie O(|V |2)złozonosc czasowa O(|V |2 + |E |) = O(|V |2)da sie ta złozonosc poprawic, ale o tym bedzie kiedyindziej . . .

Page 118: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Analiza złozonosci — listy sasiedztwa:

złozonosc pamieciowa O(|V |+ |E |)kazda krawedz relaksujemy co najwyzej raz — czasO(|E |)O(|V |) razy wybieramy wierzchołek o najmniejszejodległosci, co zajmuje jednorazowo czas O(|V |), czyliłacznie O(|V |2)złozonosc czasowa O(|V |2 + |E |) = O(|V |2)da sie ta złozonosc poprawic, ale o tym bedzie kiedyindziej . . .

Page 119: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 120: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 121: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 122: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 123: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 124: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 125: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 126: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Dijkstry

Dlaczego to działa?

po rozpatrzeniu v wartosc dis[v ] juz sie nie zmieni, borozpatrujemy wierzchołki coraz bardziej odległe od sudowodnimy, ze w momencie odwiedzania v najkrótszasciezka z s do v ma długosc dis[v ]:

dowód przez indukcje "w czasie"baza — w momencie wejscia do s zachodzi dis[s] = 0krok indukcyjny — załózmy, ze odwiedzamy v :najkrótsza sciezka do v musi biec tylko przez juzodwiedzone wierzchołki, bo v ma najnizsza wartosc wtablicy dis sposród nieodwiedzonych wierzchołkówjest wiec ona postaci (s, x1, . . . , xn, v) dla odwiedzonychxirozwazylismy ja relaksujac krawedz xn → v

Page 127: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Implementacja

ImplementacjaImplementacja algorytmu Dijkstry znajduje sie w notatkach.

Page 128: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Sieci z ujemnymi wagamiprzypomnijmy, ze algorytm Dijkstry nie dział dla sieci zujemnymi wagamitakie sieci czasem pojawiaja sie w zadaniach, np:

Mamy n róznych przedmiotów oraz informacjeo mozliwych transakcjach postaci: "przedmiotA mozna wymienic na B zyskujac/dopłacajacC zł". Masz przedmiot nr. 1 a chcesz miecprzedmiot nr. n. Ile musisz minimalnie wydaclub ile mozesz maksymalnie zarobic?

Page 129: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Sieci z ujemnymi wagamiprzypomnijmy, ze algorytm Dijkstry nie dział dla sieci zujemnymi wagamitakie sieci czasem pojawiaja sie w zadaniach, np:

Mamy n róznych przedmiotów oraz informacjeo mozliwych transakcjach postaci: "przedmiotA mozna wymienic na B zyskujac/dopłacajacC zł". Masz przedmiot nr. 1 a chcesz miecprzedmiot nr. n. Ile musisz minimalnie wydaclub ile mozesz maksymalnie zarobic?

Page 130: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 131: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 132: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 133: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 134: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 135: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 136: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Sieci z ujemnymi wagami

Ujemne cykle

zastanówmy sie co by sie stało, gdybysmy szukalinajkrótszych sciezek w grafie z ujemnym cyklem osumie wag −c (c > 0)niech v nalezy do takiego cyklujaka jest długosc najkrótszej sciezki z v do vjesli przejdziemy po cyklu to otrzymujemy sciezke okoszcie −cjesli przejdziemy po cyklu dwukrotnie to otrzymujemysciezke o koszcie −2cjesli przejdziemy po cyklu trzykrotnie to otrzymujemysciezke o koszcie −3c . . .widzimy, ze najkrótsza sciezka z v do v nie istnieje!

Page 137: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda

dlatego tez załózmy, ze rozwazamy graf z ujemnymiwagami, ale bez ujemnych cyklido liczenia najkrótszych sciezek w takim grafie mozemyuzyc algorytmu Bellmana-Forda

Page 138: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda

dlatego tez załózmy, ze rozwazamy graf z ujemnymiwagami, ale bez ujemnych cyklido liczenia najkrótszych sciezek w takim grafie mozemyuzyc algorytmu Bellmana-Forda

Page 139: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda:

dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0powtórz |V | − 1 razy ponizszy krok:

zrelaksuj wszystkie krawedzie w dowolnej kolejnosci

Page 140: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda:

dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0powtórz |V | − 1 razy ponizszy krok:

zrelaksuj wszystkie krawedzie w dowolnej kolejnosci

Page 141: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda:

dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0powtórz |V | − 1 razy ponizszy krok:

zrelaksuj wszystkie krawedzie w dowolnej kolejnosci

Page 142: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Algorytm Bellmana-Forda:

dla kazdego v ∈ V ustaw dis[v ] =∞ustaw dis[s] = 0powtórz |V | − 1 razy ponizszy krok:

zrelaksuj wszystkie krawedzie w dowolnej kolejnosci

Page 143: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Dlaczego to działa?

po 1-szym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z 1 krawedzipo 2-gim wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej 2 krawedzipo k -tym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej k krawedzinajkrótsze sciezki składaja sie z co najwyzej |V | − 1,gdyz dłuzsze sciezki zawieraja cykl o nieujemnej wadze

Page 144: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Dlaczego to działa?

po 1-szym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z 1 krawedzipo 2-gim wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej 2 krawedzipo k -tym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej k krawedzinajkrótsze sciezki składaja sie z co najwyzej |V | − 1,gdyz dłuzsze sciezki zawieraja cykl o nieujemnej wadze

Page 145: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Dlaczego to działa?

po 1-szym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z 1 krawedzipo 2-gim wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej 2 krawedzipo k -tym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej k krawedzinajkrótsze sciezki składaja sie z co najwyzej |V | − 1,gdyz dłuzsze sciezki zawieraja cykl o nieujemnej wadze

Page 146: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Dlaczego to działa?

po 1-szym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z 1 krawedzipo 2-gim wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej 2 krawedzipo k -tym wykonaniu petli mamy policzone najkrótszesciezki do wierzchołków dla których najkrótsza sciezkaskłada sie z co najwyzej k krawedzinajkrótsze sciezki składaja sie z co najwyzej |V | − 1,gdyz dłuzsze sciezki zawieraja cykl o nieujemnej wadze

Page 147: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Wykrywanie ujemnych cykli

zastanówmy sie co by sie stało, gdybysmy wykonali|V |-ta iteracje petlijesli uda nam sie cokolwiek zrelaksowac, to wiemy, zew grafie istnieje ujemny cykljesli w grafie istnieje ujemny cykl, to uda nam sie coszrelaksowac — gdybysmy nic nie zrelaksowali tokolejne powtórzenia petli tez nic by nie relaksowały azatem pomimo dopuszczenia sciezek składajacych siez dowolnie wielu krawedzi nie otrzymali bysmy sciezeko dowolnie małym koszcie — sprzecznoscotrzymujemy zatem prosty test na sprawdzanie czy grafzawiera ujemny cykl

Page 148: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Wykrywanie ujemnych cykli

zastanówmy sie co by sie stało, gdybysmy wykonali|V |-ta iteracje petlijesli uda nam sie cokolwiek zrelaksowac, to wiemy, zew grafie istnieje ujemny cykljesli w grafie istnieje ujemny cykl, to uda nam sie coszrelaksowac — gdybysmy nic nie zrelaksowali tokolejne powtórzenia petli tez nic by nie relaksowały azatem pomimo dopuszczenia sciezek składajacych siez dowolnie wielu krawedzi nie otrzymali bysmy sciezeko dowolnie małym koszcie — sprzecznoscotrzymujemy zatem prosty test na sprawdzanie czy grafzawiera ujemny cykl

Page 149: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Wykrywanie ujemnych cykli

zastanówmy sie co by sie stało, gdybysmy wykonali|V |-ta iteracje petlijesli uda nam sie cokolwiek zrelaksowac, to wiemy, zew grafie istnieje ujemny cykljesli w grafie istnieje ujemny cykl, to uda nam sie coszrelaksowac — gdybysmy nic nie zrelaksowali tokolejne powtórzenia petli tez nic by nie relaksowały azatem pomimo dopuszczenia sciezek składajacych siez dowolnie wielu krawedzi nie otrzymali bysmy sciezeko dowolnie małym koszcie — sprzecznoscotrzymujemy zatem prosty test na sprawdzanie czy grafzawiera ujemny cykl

Page 150: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Algorytm Bellmana-Forda

Wykrywanie ujemnych cykli

zastanówmy sie co by sie stało, gdybysmy wykonali|V |-ta iteracje petlijesli uda nam sie cokolwiek zrelaksowac, to wiemy, zew grafie istnieje ujemny cykljesli w grafie istnieje ujemny cykl, to uda nam sie coszrelaksowac — gdybysmy nic nie zrelaksowali tokolejne powtórzenia petli tez nic by nie relaksowały azatem pomimo dopuszczenia sciezek składajacych siez dowolnie wielu krawedzi nie otrzymali bysmy sciezeko dowolnie małym koszcie — sprzecznoscotrzymujemy zatem prosty test na sprawdzanie czy grafzawiera ujemny cykl

Page 151: Grafy c.d. --- cykl Eulera, algorytm Dijkstry i Bellmana ... · Grafy c.d. — cykl Eulera, algorytm Dijkstry i Bellmana-Forda Cykl Eulera Wstep˛ Istnienie Wyznaczanie Najkrótsze

Grafy c.d. —cykl Eulera,

algorytmDijkstry i

Bellmana-Forda

Cykl EuleraWstep

Istnienie

Wyznaczanie

NajkrótszesciezkiWstep

Dijkstra

Bellman-Ford

Implementacja

ImplementacjaImplementacja algorytmu Bellmana-Forda znajduje sie wnotatkach.