Documente Academic
Documente Profesional
Documente Cultură
Dijk Stra
Dijk Stra
3 D
A
9 5 1
1 G
9 C 5 1 2 H
2 F 4
B
4 E 1
Calin Jebelean Algoritmul lui Dijkstra 8
Algoritmul lui Dijkstra
Algoritmul trebuie sa returneze urmatorul rezultat:
D= - 7 1 3 3 4 5 ∞
T= A E A A C E F -
A B C D E F G H
Tabloul D are cate o intrare pentru fiecare nod al grafului,
corespunzand lungimii drumului minim de la nodul A pana la
respectivul nod
Astfel, drumul minim de la A la A nu intereseaza (-), drumul
minim de la A la F are lungimea 4, drumul minim de la A la H nu
exista (∞), etc.
Calin Jebelean Algoritmul lui Dijkstra 9
Algoritmul lui Dijkstra
A este nodul de start – il marcam ca vizitat
Fiind primul pas, initializam tablourile D si T astfel:
D[x] este lungimea arcului direct de la A la nodul x pentru fiecare nod x
T[x] este nodul de start (sau indicele nodului de start in T – daca se doreste un
tablou de indicatori spre parinte clasic)
D: - 9 1 3 ∞ ∞ 9 ∞
3 D T: A A A A A A A A
A
9 5 1 A B C D E F G H
1 G
9 C 5 1 2 Nodurile marcate
H astfel sunt noduri
2 F 4 vizitate in graf de
B algoritmul lui Dijkstra
4 E 1
Calin Jebelean Algoritmul lui Dijkstra 10
Algoritmul lui Dijkstra
Cu alte cuvinte, presupunem ca drumurile
minime de la nodul A la celelalte noduri din
graf sunt alcatuite dintr-un singur arc, adica
arcul direct de la A la fiecare din nodurile
respective (simbolul ∞ semnifica lipsa arcului)
Astfel, drumurile minime gasite dupa primul
pas sunt cele ingrosate pe figura anterioara
D: - 9 1 3 3 6 8 ∞
3 D A B C D E F G H
A
9 5 1
1 G
9 C 5 1 2 H
2 F 4
B
4 E 1
Calin Jebelean Algoritmul lui Dijkstra 20
Algoritmul lui Dijkstra
Tabloul D este: - 9 1 3 3 6 8 ∞
A B C D E F G H
D: - 7 1 3 3 4 8 ∞
3 D A B C D E F G H
A
9 5 1
1 G
9 C 5 1 2 H
2 F 4
B
4 E 1
Calin Jebelean Algoritmul lui Dijkstra 24
Algoritmul lui Dijkstra
Tabloul D este: - 7 1 3 3 4 8 ∞
A B C D E F G H
D: - 7 1 3 3 4 5 ∞
3 D A B C D E F G H
A
9 5 1
1 G
9 C Nu exista drumuri mai
5 1 2 scurte spre B sau H
H
2 F 4
trecand prin G, deci
B tablourile D si T raman
4 E 1 nemodificate
D: - 7 1 3 3 4 5 ∞
3 D A B C D E F G H
A
9 5 1
1 G
9 C Nu exista drum mai
5 1 2 scurt spre H trecand
H
2 F 4
prin B, deci tablourile
B D si T raman
4 E 1 nemodificate
D: - 7 1 3 3 4 5 ∞
3 D A B C D E F G H
A
9 5 1
1 G
9 C Nu mai exista noduri
5 1 2 nemarcate care sa fie
H
2 F 4
actualizate, deci
B tablourile D si T raman
4 E 1 nemodificate
3 D
A
9 5 1
1 G
9 C 5 1 2 H
2 F 4
B
4 E 1
Calin Jebelean Algoritmul lui Dijkstra 32
Algoritmul lui Dijkstra
Tabloul T este: A E A A C E F -
A B C D E F G H