Documente Academic
Documente Profesional
Documente Cultură
BCO Curs 2
BCO Curs 2
operationale
- curs 2 -
• Vom spune că nodul i este atins din nodul s dacă există un drum de la s la
i format din arce permise. Putem determina drumuri de valoare minimă
de la s la toate celelalte noduri ale grafului sau considera cazul particular
al determinării drumului de valoare minimă de la s la t, în ipoteza că
toate valorile arcelor permise sunt nenegative.
Algoritmul Dijkstra
Algoritmul Dijkstra
Algoritmul Dijkstra
Algoritmul Dijkstra
Exemplul 1.3. Aplicaţi metoda DISKTRA pentru a determina drumurile de valoare minimă
de la nodul s la nodurile ce pot fi atinse din s în graful din figura 1.15. Fiecărei muchii îi este
asociat un cost valabil în ambele sensuri de parcurgere pe muchiile neorientate.
Algoritmul Dijkstra
• Inițializare:
• Folosim 2 liste:
• lista nodurilor vizitate (cu eticheta permanentă) P;
• lista nodurilor nevizitate (cu eticheta temporară) T;
• Setăm distanța dintre nodul de start către nodul de start ca fiind 0.
• Setăm distanțele dintre nodul de start și toate celelalte noduri ca fiind ∞
• Trecem în tabel (Nod, mindist, prednod) aceste distanțe.
• Iterație:
• Vizităm nodul nevizitat (din lista T) cu distanța cea mai mică față de nodul de
start (inițial nodul nevizitat ales este cel de start);
• Pentru nodul curent ales, examinăm vecinii nevizitați;
• Pentru nodul curent ales calculăm distanța fiecărui vecin nevizitat față de
nodul de start;
• Dacă distanța calculată este mai mică decât cea cunoscută, actualizăm distanța
minimă și nodurile precedente pentru fiecare distanță actualizată;
• Adaugăm nodul curent ales la lista nodurilor vizitate. Nodul acesta nu va mai fi
vizitat din nou. T
• Repetăm iterația până când vizităm toate nodurile ( )