Dijkstra algoritmus A pozitv lkltsgek Lersa G V

  • Slides: 9
Download presentation
Dijkstra algoritmus A pozitív élköltségek

Dijkstra algoritmus A pozitív élköltségek

Leírása G = (V, E) Él súlyozott, irányított vagy irányítás nélküli gráfon keressük, egy

Leírása G = (V, E) Él súlyozott, irányított vagy irányítás nélküli gráfon keressük, egy s є V kezdőcsúcsból az összes u є V csúcsba vezető minimális költségű utat. Egyetlen célcsúcs nem jelentene könnyebbséget.

Algoritmus d[s]: = 0; ¶ [s]: = NIL; KÉSZ[s]: = 0 for all u

Algoritmus d[s]: = 0; ¶ [s]: = NIL; KÉSZ[s]: = 0 for all u є v {s} d[u]: = ∞; ¶ [u]: = NIL; KÉSZ[u]: = 0 for i: = 1 to n Felt. Minker (d[1. . n], u, d, ‘KÉSZ[j]: = 0’) KÉSZ[u]: = 1 for all v є Szomsz (u) KÉSZ[v] = 0 d[u] + c(u, v) < d[u]: = d[u]+c(u, v) ¶ [v]: = u / / SKIP S K I P

Kezdő állapot S 10 1 0 2 ∞ 5 1 3 3 ∞ 9

Kezdő állapot S 10 1 0 2 ∞ 5 1 3 3 ∞ 9 4 ∞ 1 11 5 ∞ A kezdőállapotban a kezdőcsúcs 0, a többi csúcs pedig végtelen súllyal szerepel az elsőbbségi sorban.

1. lépés S 10 1 0 2 10 5 1 3 3 ∞ 9

1. lépés S 10 1 0 2 10 5 1 3 3 ∞ 9 4 5 1 11 5 ∞ Kivesszük az 1 -es csúcsot a prioritási sorból. Aztán kiterjesztjük az 1 est, vagyis a szomszédjaira kiszámítjuk az 1 esből kimenő éllel meghosszabbított utat.

2. lépés S 10 1 0 2 8 5 1 3 3 14 9

2. lépés S 10 1 0 2 8 5 1 3 3 14 9 4 5 1 11 5 16 A 2 -es csúcsban már korábban is találtunk 10 hosszú utat, de a 4 -es csúcs kiterjesztésekor találunk, a 4 -es csúcson átmenő rövidebb 8 hosszú utat.

3. lépés S 10 1 0 2 8 5 1 3 3 9 9

3. lépés S 10 1 0 2 8 5 1 3 3 9 9 4 5 1 11 5 16 A 2 -es csúcs Kiterjesztésekor, a 3 -as csúcsban találunk egy rövidebb utat.

4. lépés S 10 1 0 2 8 5 1 3 3 9 9

4. lépés S 10 1 0 2 8 5 1 3 3 9 9 4 5 1 11 5 10 Ebben a lépésben is találunk egy rövidebb utat az 5 -ös csúcsban.

5. lépés S 1 0 2 8 5 1 3 3 9 4 5

5. lépés S 1 0 2 8 5 1 3 3 9 4 5 10 Az utolsó ábrán berajzoltuk a legrövidebb utak fáját alkotó éleket. Ezzel készen is vagyunk!