Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim

Slides:



Advertisements
Prezentări similare
ROmanian Library Network Science & Technology
Advertisements

ELECTRONICĂ II Notiţe de curs Cursul nr. 8
Relatii intre radacini si coeficienti (relatiile lui Viète)
Aplicaţii Calculaţi media aritmetică şi suma pătratelor numerelor 10, 12, 57, 23, 99 folosind caseta statistică a calculatorului. Calculaţi valoarea expresiei.
aplicaţie Legile lui Kirchhoff
Determinarea divizorilor unui numar
-Algebra Relațională II-
Sistemul de pensii facultative - oportunitati si provocari 2008
Sisteme de calcul în timp real
Internet - notiuni generale
Frunza Alcătuire şi funcţii.
Programare Avansata cu FPGA - 1
TEORIA SISTEMELOR AUTOMATE
REȚELE INDUSTRIALE ȘI REȚELE INFORMATICE
Educație financiară Internet banking.
Structura sistemelor de calcul (03-5)
Ethernet.
CREAREA DE LINK-URI.
Railway PRO Investment Summit , București 2016
Profesor IOAN AIACOBOAIE
Masuri de sprijinire a contribuabililor aflati in dificultate financiara Temei legal: * Art.VIII si art. XI din OG 30/2011 pentru.
Procesarea și optimizarea interogărilor
Metode de predare a literaturii române axate pe tehnologia on-line
MEDIUL LIMBAJULUI DE PROGRAMARE STUDIAT
TOATE drepturile fundamentale pentru TOATE persoanele cu dizabilităţi!
Utilizarea funcţiei Istoric căutări
Activitatea Serviciului Informatizare-Comunicaţii în anul 2004
Activitatea Serviciului Informatizare-Comunicaţii în anul 2005
Inserarea hiperlegaturilor
Bazele Tehnologiei Informaţiei Curs 5
MODULUL III: NOILE TEHNOLOGII SI OPTIMIZAREA LOR IN EDUCATIE
Gestiunea blocajelor în Cloud
SORTAREA PRIN METODA BULELOR
PROIECTUL EDUCAŢIONAL
2. Unitatea aritmetică și logică
Evolutia Pietei Leasingului Imobiliar in Romania si CEE
Optimizarea funcțiilor de pierdere. Algoritmul coborârii pe gradient.
Parteneriatul Broker – Asigurator
Un nou tip de consumator? Tendinte si preferinte
Nivel, protocol, serviciu Modele de referinta Echipamente de retea
ALGORITMI PENTRU SORTAREA UNUI VECTOR
Servicii de Comert Electronic
Informatica in economie
METODĂ MODERNĂ DE DIAGNOSTICARE GEOMETRICĂ A CĂII
Ce este EURES ? EURES* - reţea de cooperare între Comisia Europeană, serviciile publice de ocupare a forţei de muncă din statele membre ale Spaţiului Economic.
Conferinta internationala “Intarirea Legitimitatii”
5. Introducere în arhitecturi paralele
CONFERINTA in parteneriat cu SECTRA si
MOBILITĂŢI INDIVIDUALE DE FORMARE CONTINUĂ
Cursul 10. SEO (Promovarea site-urilor web)
InstalSystem 5.
SME INTL Pachetul tranzactional SME INTL, contine: CONTURI CURENTE
SME BASIC Pachetul tranzactional SME BASIC, contine: CONTURI CURENTE
Cursul 7: Memorarea şi managementul informațiilor economice
SME FULL Pachetul tranzactional SME FULL, contine: CONTURI CURENTE
SME ADVANCED Pachetul tranzactional SME ADVANCED, contine:
Extinderea și Modernizarea
Teoremele lui Kirchhoff
A i r b o r.
Bine ați venit in cadrul Conventiei Primarilor pentru Clima & Energie Un angajament voluntar pentru a atinge indicatorii climatici si energetici.
DEZVOLTAREA INFRASTRUCTURII: Strategie si prognoze
Structura sistemelor de calcul (02-3)
TEORIA SISTEMELOR AUTOMATE
Sistemul de pensii facultative Oportunitati si provocari 2008
Autori: Cristian Silviu Mirescu – M.E.C.T. Mariana Robe – I.S.M.B.
Metodologia elaborării proiectelor de intervenţie
Tipuri de placi video,sunet si retea
Să înţelegem revendicările (e) Convertor electric de putere
Transcriere de prezentare:

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

Criterii de selectie a rutelor Minimum hop count Minimum cost

Retea

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

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

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

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

Exemplu Algoritm Dijkstra

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-5-3 1-4 1-4-5-6

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

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

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ă

Exemplu Algoritm Bellman-Ford

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 1-4-5-3 1-4-5-6

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

Circuite Virtuale problema

Reteaua G A C E F D B

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

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 4 3 1 2 0 0 0

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

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