16. Algoritmul Lui Dijkstra

download 16. Algoritmul Lui Dijkstra

of 3

Transcript of 16. Algoritmul Lui Dijkstra

  • 7/22/2019 16. Algoritmul Lui Dijkstra

    1/3

    16. Algoritmul lui Dijkstra

    Este destinat aflrii celor mai scurte ci de la un nod dat la toate

    celelalte noduri ale grafului;

    Se creeaz astfel un arbore de acoperire, care are ca rdcin nodul

    iniial dat !numit "i surs#, iar fiecare ramur reprezint cea mai scurt

    cale de la surs la toate nodurile pe care le conine.

    Acest arbore, $n general, difer de arborele de cost minim.

    %entru aplicarea acestui algoritm, se folosesc dou structuri de date

    au&iliare'

    ( Arborele S, care conine cile cele mai scurte ctre noduri; iniial,

    acest arbore conine numai nodul surs, dar el se completeaz cu un

    nou nod la fiecare parcurgere a ciclului )reed*;

    ( coada de prioriti +, care conine nodurile care nu sunt $n S, dar

    ctre care conduc legturi de la nodurile din S; la e&tragerea din coad,

    prioritatea ma&im aparine nodului pentru care distana de la surs

    este cea mai mic.

    niial, se creeaz structurile -ide S "i +, dup care se pune nodul surs

    $n +.

    iecrui nod din + i se ata"eaz ca informaie distana de la nodul surs

    p/n la nodul dat.

    Se intr apoi $ntr(un ciclu )reed*.

    0a fiecare parcurgere a ciclului se e&trage din + nodul de prioritate

    ma&im !deci cel pentru care distana de la nodul sursa este minim# "i

    se pune $n S.

    %entru a se putea reconstitui arborele, $n structurile S "i + fiecare

    element -a conine "i o referin la tatl acestuia, deci -a fi reprezentat

    prin urmtorul triplet'

    !tata2 nod3curent2 distan3la3surs2#

  • 7/22/2019 16. Algoritmul Lui Dijkstra

    2/3

    Este un algoritm care calculeaza drumurile minime de la un nod al unui

    graf la toate celelalte noduri din graf.

    )rafurile pe care poate lucra algoritmul lui Dijkstra sunt, in general,

    ponderate si orientate 4 arcele sunt orientate de la un nod la alt nod !nuse poate merge si in-ers# si au un anumit cost de care se -a tine seama in

    aflarea drumului minim.

    Daca graful este neponderat !arcele nu au costuri asociate# atunci drum

    minim intre doua noduri se considera drumul alcatuit din numar minim

    de arce.

    %entru a gasi drumul minim de la un nod 5 la un nod se poate aplica

    o cautare prin cuprindere pornind de la nodul 5 4 prima aparitie a lui in coada algoritmului de cautare prin cuprindere presupune e&istenta

    unui drum cu numar minim de arce de la 5 la , care poate fi

    reconstituit.

    %e un astfel de graf se poate aplica si algoritmul lui Dijkstra, daca

    transformam in prealabil graful intr(unul ponderat, asociind fiecarui

    arc acelasi cost.

    Drumul de cost minim intre doua noduri obtinut in urma aplicariialgoritmului lui Dijkstra -a a-ea si numar minim de arce din moment

    ce toate arcele au acelasi cost.

    Algoritmul lui Dijkstra functioneaza atat pe grafuri cone&e cat si pe

    grafuri necone&e.

    7n graf este cone& daca din orice nod al sau se poate ajunge in orice alt

    nod.

    n cazul grafurilor orientate, pentru ca intre doua noduri sa e&iste un

    drum in graf, nu este suficient sa e&iste o succesiune de arce intre cele

    doua noduri, ci arcele trebuie sa fie si orientate in sensul corespunzator.

    7n drum intr(un graf orientat trebuie sa parcurga numai arce orientate

    identic, de la nodul sursa pana la nodul destinatie.

  • 7/22/2019 16. Algoritmul Lui Dijkstra

    3/3

    Daca nu e&ista nici un drum de la nodul de start la un alt nod al grafului

    atunci algoritmul lui Dijkstra -a raporta e&istenta unui drum de

    lungime infinita intre ele 4 acest rezultat indica, de fapt, lipsa oricarui

    drum intre cele doua noduri

    ntrare'

    Algoritmul porneste de la un graf orientat si ponderat cu 8

    noduri;

    De asemenea, e ne-oie de un nod de start apartinand grafului 4

    acesta este nodul de la care se doreste aflarea drumurilor minime

    pana la celelalte noduri din graf.

    esire'

    9ezultatul algoritmului se prezinta sub forma unui tablou D cu 8

    intrari, continand distantele minime de la nodul de start la toate

    celelalte noduri din graf.