Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Dijkstra algoritmus. Egy minimális költségű utat keres élsúlyozott gráfban A gráf lehet irányított vagy irányítás nélküli Feltétele, hogy pozitív élsúlyok.

Hasonló előadás


Az előadások a következő témára: "Dijkstra algoritmus. Egy minimális költségű utat keres élsúlyozott gráfban A gráf lehet irányított vagy irányítás nélküli Feltétele, hogy pozitív élsúlyok."— Előadás másolata:

1 Dijkstra algoritmus

2 Egy minimális költségű utat keres élsúlyozott gráfban A gráf lehet irányított vagy irányítás nélküli Feltétele, hogy pozitív élsúlyok legyenek Külön ismeret nélkül nem hagyható ki egyetlen csúcs sem a vizsgálatból

3 Struktogram d[s] := 0; π[s] := NIL for all u ∈ V\{s} d[u] := ∞; π[u] := NIL Üres(KÉSZ); Üres(minQ); Feltölt(minQ) ¬ Üres-e(minQ) u := KiveszMin(minQ) KÉSZ := KÉSZ U {u} for all v ∈ Szomszéd(u)\KÉSZ d[u] + c(u, v) < d[v] d[v] := d[u] + c(u, v) SKIP π[v] := u Helyreállít(minQ) Dijkstra(G, s)

4 B A D E F C G d π s = A B C D E F G

5 B A D E F C G 0 NIL d π s = A B C D E F G d[s] := 0; π[s] := NIL

6 B A D E F C G 0∞∞∞∞∞∞ NIL d π s = A B C D E F G d[s] := 0; π[s] := NIL for all u ∈ V\{s}: d[u] := ∞ π[u] := NIL

7 B A D E F C G 0∞∞∞∞∞∞ NIL d π s = A B C D E F G Üres(KÉSZ) Üres(minQ) KÉSZ minQ

8 B A D E F C G 0∞∞∞∞∞∞ NIL d π s = A B C D E F G Feltölt(minQ) KÉSZ A0 B∞ C∞ D∞ E∞ F∞ G∞ minQ

9 B A D E F C G 0∞∞∞∞∞∞ NIL d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ B∞ C∞ D∞ E∞ F∞ G∞ minQ u = A A

10 B A D E F C G 026∞∞9∞ NILAA A d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ B2 C6 D∞ E∞ F9 G∞ minQ u = A A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP

11 B A D E F C G ∞ NILAABBA d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ C6 D5 E12 F9 G∞ minQ u = B A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP B

12 B A D E F C G ∞ NILAABDA d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ C6 E8 F9 G∞ minQ u = D A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP B D

13 B A D E F C G NILAABDAC d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ E8 F9 G17 minQ u = C A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP B D C

14 B A D E F C G NILAABDAE d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ F9 G12 minQ u = E A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP B D C E

15 B A D E F C G NILAABDAE d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ G12 minQ u = F A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP B D C E F

16 B A D E F C G NILAABDAE d π s = A B C D E F G ¬ Üres-e(minQ): u := KiveszMinQ KÉSZ := KÉSZ U {u} KÉSZ minQ u = G A for all v ∈ Szomszéd(u)\KÉSZ: ha d[u] + c(u,v) < d[v] akkor: d[v] := d[u] + c(u,v) π[v] := u Helyreállít(minQ), egyébként SKIP B D C E F G

17 B A D E F C G NILAABDAE d π s = A B C D E F G Egy lehetséges minimális költségű feszítőfája a gráfnak


Letölteni ppt "Dijkstra algoritmus. Egy minimális költségű utat keres élsúlyozott gráfban A gráf lehet irányított vagy irányítás nélküli Feltétele, hogy pozitív élsúlyok."

Hasonló előadás


Google Hirdetések