Prezentarea se încărcă. Vă rugăm să așteptați

Prezentarea se încărcă. Vă rugăm să așteptați

Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim

Prezentări similare


Prezentarea pe tema: "Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim"— Transcriere de prezentare:

1 Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim
Curs 9

2 Criterii de selectie a rutelor
Minimum hop count Minimum cost

3 Retea

4 Algoritm de cost minim decizia de rutare
Numar de hopuri Cost link inv. Proportional cu capacitatea Retea cu linkuri bidirectionale Cost asociat in ambele directii Costul caii = suma costurilor pe link Se cauta calea de cost minim pt toate perechile sursa si destinatie Costurile pot fi diferite pe cele doua sensuri

5 Algoritm Dijkstra Definitii
Caută calea cea mai scurtă de la un nod sursă la toate nodurile prin dezvoltarea de căi de lungime din ce în ce mai mare N = setul de noduri în reţea s = nod sursă T = setul de noduri încorporate în algoritm w(i, j) = cost link de la nod i la nod j w(i, i) = 0 w(i, j) =  dacă nu sunt direct conectate w(i, j)  0 dacă sunt direct conectate L(n) = costul căii celei mai ieftine de la nod s la node n cunoscută la terminare, L(n) este costul căii celei mai ieftine de la s la n

6 Algoritm Dijkstra Metoda
Pas 1 [Iniţializare] T = {s} Nod sursă L(n) = w(s, n) pentru n ≠ s Initial doar costuri link Pas 2 [Următorul Nod] Caută nod vecin necuprins în T cu cost minim faţă de s Incorporare nod în T Pas 3 [Update cale cea mai ieftină] L(n) = min[L(n), L(x) + w(x, n)] pentru toţi n Ï T Dacă al doilea termen este minimul, actualizare cale prin concatenare [Terminare ] Algoritmul se termină la incorporarea tuturor nodurilor

7 Algoritm Dijkstra Observatii
La terminare, valoarea L(x) asociată fiecărui nod x este costul (lungimea) căii de cost minimde la s la x. T defineşte calea cea mai ieftină dela s la fiecare alt nod O iteraţie a paşilor 2 şi 3 adaugă un nou nod în T

8 Exemplu Algoritm Dijkstra

9 Resultate la Exemplu Algoritm Dijkstra
Iteration T L(2) Path L(3) L(4) L(5) L(6) 1 {1} 2 1–2 5 1-3 1–4 - {1,4} 4 1-4-3 1-4–5 3 {1, 2, 4} {1, 2, 4, 5} 1-4-5–3 1-4-5–6 {1, 2, 3, 4, 5} 6 {1, 2, 3, 4, 5, 6} 1-2 1-4

10 Algoritm Bellman-Ford Definitii
Caută calea cea mai ieftină formată din cel mult un link Caută calea cea mai ieftină formată din cel mult două link-uri Şi aşa mai departe  s = nod sursă w(i, j) = cost link de la nod i la nod j w(i, i) = 0 w(i, j) =  dacă cele două noduri nu sunt conectate direct w(i, j)  0 dacă cele două noduri sunt conectate direct h = număr maxim link-uri în cale în pasul curent al algoritmului Lh(n) = costul căi cea mai ieftine de la s la n cu nu mai mult de h link-uri

11 Algoritm Bellman-Ford Metoda
Pas 1 [Iniţializare] L0(n) = , pentru toţi n  s Lh(s) = 0, pentru toţi h Pas 2 [Update] Pentru fiecare h  0 succesiv Pentru fiecare n ≠ s, calculează Lh+1(n)=minj[Lh(j)+w(j,n)] Conectează n cu nod predecesor j care atinge minimum Elimină orice conexiune a n cu nod predecesor diferit format în iteraţie anterioară Calea de la s la n se termină cu link de la j la n

12 Observatii Algoritm Bellman-Ford
La fiecare iteraţie a pasului 2 pentru h=K şi fiecare nod destinaţie n, algoritmul compară căile de la s la n de lungime K=1 cu calea de la iteraţia anterioară În funcţie de cost se menţine calea anterioară sau se actualizează

13 Exemplu Algoritm Bellman-Ford

14 Rezultate Examplu Bellman-Ford
h Lh(2) Path Lh(3) Lh(4) Lh(5) Lh(6) - 1 2 1-2 5 1-3 1-4 4 1-4-3 1-4-5 10 1-3-6 3

15 Comparatie B.-F. cu Dijkstra
Rezultatele celor doi algoritmi coincid Informaţii colectate Bellman-Ford Calculul în nodul n necesită cunoaşterea costului link-ului la toţi vecinii plus totalul costului de la fiecare vecin la s Fiecare nod poate menţine un set de costuri şi căi pt. fiecare alt nod Face schimb de informaţii cu vecinii direcţi Poate updata costurile şi căile pe baza informaţiile de la vecini şi costurile linkurilor locale Dijkstra Fiecare nod are nevoie de topologia completă Trebuie să cunoască costul tuturor linkurilor din reţea Schimbă informaţii cu toate celelalte noduri

16 Circuite Virtuale problema

17 Reteaua G A C E F D B

18 Exemple de circuite virtuale
Originea in nodul A. Originea in nodul B 0 – ABCD BCD 1 – AEFD BAE 2 – ABFD BF 3 – AEC 4 – AECDFB

19 Ordinea de creere Ordinea de creere a circuitelor virtuale este: ABCD, BCD, AEFD, BAE, ABFD, BF,AEC, AECDFB. Ex de la G-A E C D F B-G pachetul

20 B C A D E F Exemplu A C G 1 F 2 B D 1 E G 2 G B 1 E 2 3 4 C G 1 F 2 3
C G 1 F 2 A B D 1 E G 2 D G B 1 E 2 3 4 C G 1 F 2 3 A F 1 G 2 C 3 E D B 1 G E F

21 Rezultat Ex de la G-A E C D F B-G 4 3 1 2 0 0 0
pachetul a primit numerele de mai sus


Descărcați ppt "Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim"

Prezentări similare


Publicitate de la Google