scurt istoric al teoriei grafurilor

19
1. Scurt istoric al teoriei grafurilor Originile teoriei grafurilor se gasesc in rezolvarea unor probleme de jocuri si amuzamente matematice, care au atras atentia unor matematicieni de seama cum ar fi: Euler, Hamilton, Cayley, Sylvester, Birkoff. Data nasterii teoriei grafului este considerata a fi anul 1736, cand matematicianul Leonhard Euler a publicat un articol in care a clarificat problema celor 7 poduri si a prezentat metode pentru rezolvarea altor probleme de acelasi tip. Cu 200 ani mai tarziu aparea la Leipzic prima carte de teorie a grafurilor al carei autor este matematicianul maghiar Denes Koreg. In amintirea contributiei lui Euler unele notiuni si tipuri de grafuri de care acesta s-a ocupat sunt denumite de catre Koreg lant eulerian, graf eulerian etc. Un alt matematician care s-a ocupat de aceleasi probleme ca si Euler, dar care si-a publicat rezolvarile cercetarilor sale in anul 1873 a fost Carl Hierholzer. Alte izvoare ale teoriei grafurilor sunt: studiul retelelor electrice, problema celor 4 culori, aplicatiile teoriei grafurilor in chimie (initiate de Cayley), probleme hamiltoniene, grafuri planare. Fizicianul Kirchoff a studiat la mijlocul secolului al XIX-lea retele electrice cu metode care apartin astazi teoriei grafului contribuind la dezvoltarea acestei teorii. Termenul graf a fost folosit pentru prima data in sensul sau actual in 1878 de matematicianul Sylvester. Teoria grafurilor are numeroase apeluri in chimie, contribuind in mare masura la rezolvarea problemelor de numarare a grafurilor apartinand unor clase speciale. Teoria grafurilor este folosita in domenii variate: de la chimie la economie, de la studiul retelelor electrice la critica textelor de politica, devenind o disciplina majora. 2. Grafuri neorientate Definitie : Se numeste graf neorientat o pereche de multimi G = (A,B) in care A este multimea nodurilor (este finita si nevida) si B este multimea relatiilor/muchiilor. B = { (x,y) / x apartine lui A, y apartine lui A } Definitie : O muchie a apartine de B este deci o submultime cu elemente {x,y} de varfuri distincte din A si o vom nota (x,y) -

Upload: adrian0921

Post on 28-Jan-2016

355 views

Category:

Documents


11 download

DESCRIPTION

teoriei grafurilor, mecanica

TRANSCRIPT

Page 1: Scurt Istoric Al Teoriei Grafurilor

1. Scurt istoric al teoriei grafurilor Originile teoriei grafurilor se gasesc in rezolvarea unor probleme de jocuri si

amuzamente matematice, care au atras atentia unor matematicieni de seama cum ar fi: Euler, Hamilton, Cayley, Sylvester, Birkoff.

Data nasterii teoriei grafului este considerata a fi anul 1736, cand matematicianul Leonhard Euler a publicat un articol in care a clarificat problema celor 7 poduri si a prezentat metode pentru rezolvarea altor probleme de acelasi tip.

Cu 200 ani mai tarziu aparea la Leipzic prima carte de teorie a grafurilor al carei autor este matematicianul maghiar Denes Koreg. In amintirea contributiei lui Euler unele notiuni si tipuri de grafuri de care acesta s-a ocupat sunt denumite de catre Koreg lant eulerian, graf eulerian etc. Un alt matematician care s-a ocupat de aceleasi probleme ca si Euler, dar care si-a publicat rezolvarile cercetarilor sale in anul 1873 a fost Carl Hierholzer. Alte izvoare ale teoriei grafurilor sunt: studiul retelelor electrice, problema celor 4 culori, aplicatiile teoriei grafurilor in chimie (initiate de Cayley), probleme hamiltoniene, grafuri planare.

Fizicianul Kirchoff a studiat la mijlocul secolului al XIX-lea retele electrice cu metode care apartin astazi teoriei grafului contribuind la dezvoltarea acestei teorii. Termenul graf a fost folosit pentru prima data in sensul sau actual in 1878 de matematicianul Sylvester. Teoria grafurilor are numeroase apeluri in chimie, contribuind in mare masura la rezolvarea problemelor de numarare a grafurilor apartinand unor clase speciale.

Teoria grafurilor este folosita in domenii variate: de la chimie la economie, de la studiul retelelor electrice la critica textelor de politica, devenind o disciplina majora.

2. Grafuri neorientate

Definitie : Se numeste graf neorientat o pereche de multimi G = (A,B) in care A este multimea nodurilor (este finita si nevida) si B este multimea relatiilor/muchiilor. B = { (x,y) / x apartine lui A, y apartine lui A }

Definitie : O muchie a apartine de B este deci o submultime cu elemente {x,y} de varfuri distincte din A si o vom nota (x,y) - notatie muchie. Vom spune ca varfurile x si y sunt adiacente in G si ca ambele sunt incidente cu muchia (x,y).

Varfurile x si y se mai numesc si extremitatile muchiei (x,y).

Daca B1 si B2 sunt 2 muchii care au o extremitate comuna,ele vor fi numite de asemenea incidente.

A = {1,2,3,4,5} B = {(1,2),(1,3),(2,3),(2,5)}

Exemplu: -1 este adiacent cu 2 si 3 -1 si 2 sunt extremitatile (1,2) - nodul 1 este incident cu (1,2) - (5,2) si (2,3) sunt incidente

Page 2: Scurt Istoric Al Teoriei Grafurilor

2.1. Gradul unui nod la grafurile neorientateGradul unui nod x , notat cu d(x), reprezinta numarul muchiilor care trec prin nodul x (incidente cu nodul x).

Exemplu: - d(1)=2

Nodul care are gradul 1 se numeste nod terminal. Nodul care are gradul 0 se numeste nod izolat.

Proprietati: 1. d + (x) + d - (x) = d(x) 2. Daca un graf are m muchii sau arce atunci: d( x1 )+d(x2 ) + ... + d(xn ) = 2m

2.2. LanturiSe numeste lant o succesiune de noduri x1 ... xk , cu proprietatea ca oricare doua noduri

vecine (xi, xi+1 ) apartin de B. x1, xk sunt extremitatile lantului Lungimea lantului este egala cu numarul de muchii care il compun, k-1. Daca nodurile din lant sunt distincte, atunci lantul este elementar, in caz contrar este

neelementar.

Exemplu: 1,2,3,1,4 - Lant neelementar (lungime 4)

1,2,3,4 - Lant elementar (lungime 3)

1,2,3,1,2,5 - Lant neelementar (lungime 5)

1,2,3,5 - Nu este lant

2.3. CicluriSe numeste ciclu intr-un graf neorientat un lant x1, x2 ... xk cu proprietea ca x1=xk si

oricare 2 muchii (xi, xi+1) sunt distincte.Daca un ciclu are toate nodurile distincte 2 cate 2 cu exceptia capetelor, atunci el se

numeste ciclu elementar, in caz contrar neelementar.

Exemplu:

1,2,3,4,1 - Ciclu elementar

2,3,4,1,2 - Ciclu elementar

1,2,3,4,2,3,1 - Nu este ciclu

1,2,3,4,2,5,1 - Ciclu neelementar

Page 3: Scurt Istoric Al Teoriei Grafurilor

3. Grafuri orientate

Definitie: Se numeste graf orientat o multime ordonata (A,B) in care A este multimea nodurilor (finita si nevida), iar B este multimea arcelor.

Definitie: Pentru muchia (x,y) nodul x reprezinta extremitatea initiala,iar y extremitatea finala a muchiei. De remarcat faptul ca la grafurile orientate muchia (x,y) este diferita de muchia(y,x). Raman valabile notiunile de varfuri adiacente si varfuri incidente cu o muchie prezentate la grafuri neorientate.

3.1. Gradul unui nod la grafurile orientateGradul exterior al unui varf x notat cu d + (x), reprezinta numarul arcelor care ies din

nodul x,adica nr arcelor de forma (x,y)apartine de B. Gradul interior al unui varf x notat cu d - (x), reprezinta numarul arcelor care intra in

nodul x,adica nr arcelor de forma (x,y)apartine de B.

A = {1,2,3,4,5} B = {(1,2),(2,1),(2,3),(3,1),(5,2)}

Exemplu: d(1)=3; d + (1)=1; d - (1)=2

Proprietati: 1. d + (x1) + d + (x2) + ... + d + (xn) = m 2. d - (x1) + d - (x2) + ... + d - (xn) = m

3.2. DrumuriSe numeste lant o succesiune de arce u1 , u2 ... uk , cu proprietatea ca oricare doua

arce de pe pozitii consecutive au un nod comun. Nu conteaza ordinea de parcurgere.

Se numeste drum o succesiune de noduri x1 , x2 ... xk cu proprietatea ca (xi ,xi+1 ) este arc. Conteaza ordinea de parcurgere.

Daca nodurile sunt distincte, drumul se numeste elementar, in caz contrar este neelementar.

Exemplu:

Page 4: Scurt Istoric Al Teoriei Grafurilor

Lanturi

(1,2),(2,3),(3,4) - Da (1,2),(5,2),(2,3) – Da (1,2),(2,1),(1,3) – Nu

  (1,2),(2,3),(1,5),(5,2) - Nu

Drumuri

1,2,3,1,2 - Drum neelementar 1,2,3,4 - Drum elementar 3,1,2,5 - Nu este drum

3.3. CircuiteSe numeste circuit intr-un graf un drum x1, x2 ... xk cu proprietate ca x1 = xk si arcele

(xi, xi+1) sa fie distincte doua cate doua. Un circuit in care toate nodurile sunt distincte cu exceptia capetelor se numeste circuit

elementar.

Exemplu:

1,2,3,1 - Circuit elementar

2,3,1,2 - Circuit elementar

1,2,3,1,2,1 - Nu este circuit

4. Reprezentarea grafurilor in memorie

4.1. Reprezentarea prin matrice de adiacenta

A. Pentru grafuri neorientate a[i,j] = 1, daca intre i si j este muchie ; a[i,j] = 0 altfel

Observatie: Pe diagonala principala toate elementele sunt 0 (nu avem bucle). Matricea este simetrica fata de diagonala principala, deci: a[i,j] = a[j,i].

B. Pentru grafuri orientate

Page 5: Scurt Istoric Al Teoriei Grafurilor

a[i,j] = 1, daca exista arcul (i,j); a[i,j] = 0, altfel.

4.2. Liste de adiacenta Pentru fiecare nod se memoreaza o lista a vecinilor sai. Pentru intregul graf este necesar un vector de liste (P) in care P i este adresa primului

element al listei asociate lui i.

NodLista de adiacenta

asociata1 2,3,5

2 1,3

3 1,2

4 -

5 1

De exemplu, pentru i = 1, informatia din lista figurata mai sus se va completa astfel: p[1] — 2 — 3 — 5.

Nod Lista de adiacenta

asociata

1 2,3

2 1,3

3 2

4 -

5 1Observatie: pentru grafurile orientate se memoreaza in lista lui i nodurile k pentru care

exista arcul (i,k)

1.3. Matrice arce-noduri Este o matrice b de dimensiune linii si m coloane in care:

- elementul b[i][j]= 1,daca i reprezinta extremitatea initiala a arcului;- elementul b[i][j]= -1,daca i reprezinta extremitatea finala a arcului;- elementul b[i][j]= 0,daca nodul i nu este nici o extremitate pt arcul cu nr j .

Este folosita in special pentru grafurile orientate.

Page 6: Scurt Istoric Al Teoriei Grafurilor

5. Parcurgerea grafurilor

Parcurgerea unui graf presupune vizitarea (prelucrarea) nodurilor grafului, o singura data fiecare, intr-o anumita ordine.

Nodurile vizitate sunt legate intre ele direct sau indirect. In functie de ordinea relativa a nodurilor exista 2 metode de parcurgere:

1. Metoda parcurgerii pe latime - Breadth First (BF) 2. Metoda parcurgerii in adancime - Depth First (DF)

5.1. Metoda parcurgerii pe latime - Breadth First (BF) A. Pentru grafuri neorientate

Se porneste de la un nod oarecare x.

Se viziteaza toti vecinii directi ai nodului x daca nu au fost deja

vizitati.

Fiecare dintre nodurile vizitate la pasul anterior devine nod curent si este prelucrat la fel ca nodul x.

x = 1

1, 2, 3, 4, 6, 7, 8, 9, 5

B. Pentru grafuri orientate Observatie: algoritmul se adapteaza astfel incat sa poata fi luati in considerare toti

vecinii unui nod.

Page 7: Scurt Istoric Al Teoriei Grafurilor

5.2. Metoda parcurgerii in adancime - Depth First (DF)

A. Pentru grafuri neorientate Se porneste de la un nod oarecare x. Se alege primul vecin al lui x care nu a fost inca vizitat,de ex y,dupa care se trece la

primul vecin nevizitat al lui y si asa mai departe pana cand se parcurge in adancime ramura respectiva.

Cand s-a ajuns la capatul ei, se revine la nodul din care s-a plecat ultima data si se parcurge urmatorii sai vecini nevizitati.

B.Pentru grafuri orientate Parcurgerea este similara, punandu-se conditia de parcurgere a tuturor vecinilor unui

nod indiferent de sens.

6. Tipuri de grafuri

6.1. Graf partial

Fie G=(A,B) si G1 = (A1, B1 ).

Spunem ca G 1 este un graf partial al lui G daca A=A 1 si B 1 este inclus sau egal cu B.

Un graf partial se obtine dintr-un graf, indepartand o parte dintre muchiile sale si pastrand toate nodurile acestuia.

Page 8: Scurt Istoric Al Teoriei Grafurilor

6.2. Subgraful unui graf

Fie G=(A, B) si G1 = (A1, B1);A1 inclus sau egal cu A; B1 inclus sau egal cu B.

B1 = {(x,y) / oricare x,y apartine A1 daca (x,y) apartine de B => (x,y) apartine de B1} Subgraful se obtine din graful initial selectand o parte din nodurile sale si o parte din

nodurile adiacente cu acesta.

6.3. Graf complet

Un graf este complet daca oricare doua varfuri distince sunt adiacente.

Proprietăţi:1. Un graf neorientat cu n noduri are n(n-1)/2 muchii. 2. Exista un singur graf complet neorientat cu n noduri. 3. Exista mai multe grafuri orientate complete cu n noduri.

Page 9: Scurt Istoric Al Teoriei Grafurilor

6.4.Grafuri bipartite

Fie G=(A,B) neorientat. G este bipartit daca exista doua multimi, A1 si A2 astfel incat A1 A2 = Ø si A1 A2 = A, iar oricare muchie (x,y) apartinand lui B are un capat in multimea A1 si celalalt in A2 .

Un graf bipartit este bipartit complet daca fiecare nod din multimea A1 este adiacent cu toate nodurile din A2 si reciproc.

6.5.Grafuri conexe

Un graf este conex daca este format dintr-un singur nod sau daca intre oricare doua noduri ale sale exista cel putin un lant.

Aplicand algoritmul de parcurgere in latime a unui graf putem stabili daca un graf este conex sau nu astfel: daca in urma parcurgerii vor fi vizitate toate nodurile grafului atunci graful este conex, in caz contrar nu este conex.

Page 10: Scurt Istoric Al Teoriei Grafurilor

A. Pentru grafuri neorientate

B. Pentru grafuri orienate

Se numeste componenta conexa a unui graf G un subgraf conex al grafului si care este maximal in raport cu aceasta proprietate (daca i se adauga un nod isi pierde aceasta proprietate).

Observatie: pentru grafurile orientate nu se tine cont de orientarea arcelor. Daca numarul componentelor conexe dintr-un graf este mai mare decat 1, atunci graful nu este conex.U graf conex are o sigura componenta conexa care cuprinde nodurile sale. Un graf fara ciclu se numeste aciclic.

Teorema :Un graf neorientat conex cu n noduri si n-1 muchii este aciclic maximal cu aceasta proprietate. Daca se adauga o noua muchie graful nu mai este aciclic.

Proprietati: 1. Daca un graf cu n noduri are p comp conexe, atunci numarul minim de muchii care

trebuie adaugat ca sa devina conex este p-1. 2. Daca un graf conex cu n noduri are n-1 muchii, atunci orice pereche de noduri este

legata printr-un lant si numai unul. 3. Daca un graf neorientatat cu n noduri si m muchii este conex, numarul maxim de muchii

care se pot elimina pentru a obtine un graf partial conex este: m-n+1. 4. Daca un graf are n noduri,m muchii si p componente conex, numarul de muchii care

trebuie eliminate pentru a obtine un graf partial aciclic este egal cu m-n+p.

Teorema: Un graf care nu contine noduri izolate este eulerian daca si numai daca este conex si gradul tuturor nodurilor sunt numere pare.

Page 11: Scurt Istoric Al Teoriei Grafurilor

6.6. Grafuri tare conexe Un graf este tare conex daca ar un singur nod sau daca oricare ar fi (x,y) exista drum

de la x la y si exista drum de la y la x.

Determinarea componentelor tare conexe: Se poate realiza prin 2 metode: Utilizand metoda DF/BF Utilizand matricea drumurilor

O componenta tare conexa este un subgraf conex al grafului si care este maximal in raport cu aceasta proprietate.

Observatie: reunind toate arcele din componentele tare conexe se poate obtine o multime mai mica decat multimea arcelor grafului initial.

Se poate construi un graf al componentelor tare conexe in care fiecare componenta tare conexa formeaza un nod iar arcele simuleaza legaturile dintre ele.

Determinarea componentelor tare conexe utilizand matricea drumurilor d(i,j) = 1, daca exista drum de la i la j d(i,j) = 0, altfel G31:

Componentele tare conexe se determina cu ajutorul algoritmului lui Roy- Warshall.

6.7.Grafuri Hamiltonian

1. Lant hamiltonian: lant elementar care contine toate nodurile grafului. 2. Ciclu hamiltonian: ciclu elementar care contine toate nodurile grafului. 3. Graf hamiltonian: graf care contine un ciclu hamiltonian.

Page 12: Scurt Istoric Al Teoriei Grafurilor

Conditii de suficienta:

Teorema lui Dirac: Fie G dat prin perechea (A,B). Daca G are un numar de cel putin 3 varfuri astfel incat gradul fiecarui nod respecta conditia d(x)=n/2, atunci graful este hamiltonian. Un graf hamiltonian nu poate avea noduri izolate.

6.8. Grafuri euleriene

1. Ciclu eulerian: ciclu care trece prin toate muchiile unui graf exact o data. 2. Graf eulerian: graf care contine cel putin un ciclu eulerian G33:G34:G35: 3. Teorema : Fie un graf conex fara noduri izolate cu n= 3 noduri. Graful este eulerian

daca si numai daca pentru oricare nod al sau, x, d(x) este par.

A. Problema podurilor din Koningsberg

Adeseori suntem tentati sa credem simplul fapt de a traversa strazi sau poduri nu implica nici o idee deosebita. Iata însa ca exista o celebra problema de traversare în care singura idee implicata este aceea de “traversare”, problema celor sapte poduri din

Page 13: Scurt Istoric Al Teoriei Grafurilor

Königsberg . Aceasta banala si totusi foarte controversata problema a dus la aparitia si dezvoltarea teoriei grafurilor.

Problema se pune cam asa:

Orasul Königsberg era asezat pe coasta Marii Baltice, la gurile râului Pregel. Pe râu erau doua insule legate de tarmuri si între ele de sapte poduri ca în figura 1.

Oamenii care cutreierau aceste insule au observat ca daca porneau de pe malul sudic al râului, nu puteau sa-si planifice plimbarea astfel încât sa traverseze fiecare pod o singura data. Se parea ca ori trebuia sa sara un pod ori sa-l traverseze de doua ori.

În anul 1735 Euler a descoperit ca nu mai are rost sa se încerce, propunând urmatoarea analiza a problemei, din punct de vedere matematic:

Sa consideram mai întâi insula estica (Figura 2):

Sa consideram acum insula vestica: sunt cinci poduri care duc pe ea, iar cinci este din nou numar impar. Asadar plimbarea începe în afara insulei, si deci trebuie sa se termine pe insula vestica.

Aceasta înseamna ca plimbarea se termina în doua locuri diferite simultan ceea ce e imposibil.

Solutia data de Euler este tipica pentru personalitatea si ingeniozitatea sa. Tot el a scris în anul 1736 prima lucrare de teorie a grafurilor despre problema acestor sapte poduri. Un ciclu al unui graf G care contine toate muchiile lui G se numeste ciclu eulerian . Un graf G care are un ciclu eulerian se numeste graf eulerian.

Un graf G fara vârfuri izolate este eulerian daca si numai daca este conex si gradele tuturor vârfurilor sale sunt numere pare.

Din punct de vedere al teoriei grafurilor, problema se pune cam asa: cele patru regiuni (insule si maluri) A,B,C,D si cele sapte poduri le reprezentam în graful urmator (fig.3.):

Page 14: Scurt Istoric Al Teoriei Grafurilor

Figura 3

Muchiile grafului reprezentând posibilitatile de trecere de pe un mal pe un pod si reciproc.

Problema are solutie daca acest graf contine un ciclu eulerian. Un astfel de ciclu, utilizeaza la fiecare trecere printr-un vârf doua muchii ce nu mai pot fi folosite pentru o noua trecere. Cum fiecare dintre cele patru vârfuri (A,B,C,D) au grade impare, rezulta ca ultima muchie va ramâne nefolosita sau va fi folosita pentru a face trecerea de final (pentru a încheia plimbarea). Aceasta ar însemna ca ori va ramâne la unul din vârfuri, o muchie nefolosita (fapt ce demonstreaza ca nu avem un ciclu eulerian) ori plimbarea ar trebui sa se termine în mai multe locuri simultan ceea ce e iarasi imposibil.

Ciclu eulerian : Fiind dat un graf neorientat, sa se verifice daca este graf eulerian si în caz afirmativ, sa se determine un ciclu eulerian al sau.

B. Determinarea unui ciclu eulerian

Se porneste de la un nod oarecare si se construieste un ciclu. Se parcurg nodurile din ciclul determinat anterior; daca exista un nod care mai are

muchii neincluse in ciclul anterior se onstruieste un nou ciclu provenind de le acest nod. Ciclul construit este inclus in ciclul initial in locul nodului gasit la pasul anterior.

pas 1: c1: 1,2,3,1

c2: 2,4,7,2

pas 2: c1: 1,2,4,7,2,3,1

c2: 7,5,10,7

pas 3: c1: 1,2,4,7,5,10,7,2,3,1

c2: 7,8,11,7

pas 4:

c1: 1,2,4,7,8,11,7,5,10,7,2,3,1

c2: 7,6,9,7

pas 5:

c1:

Page 15: Scurt Istoric Al Teoriei Grafurilor

1,2,4,7,6,9,7,8,11,7,5,10,7,2,3,1

7. Drumuri maxime/minime

Problemele de optim presupun ca fiecare muchie a grafului are asociat un anumit cost (de exemplu, distanta intre doua orase, i si y). Aceste informatii se memoreaza in matricea costurilor:

c(i,j) = costul asociat muchiei (i,j); c(i,j) = +8, daca nu exista muchia (i,j);

7.1. Algoritmi pentru determinarea costului minim/maxim: Pentru determinarea drumului de cost minim/maxim intre 2 noduri ale unui graf se poate

folosi: 1.Algoritmul lui Roy-Floyd 2.Algoritmul lui Dijkstra

1. Algoritmul lui Roy-Floyd Algoritmul foloseste un principiu asemanator cu cel care este utilizat pentru

determinarea matricei drumurilor: gasirea drumului ptim intre 2 noduri oarecare i si j prin descoperirea drumurilor optime care-l compun si care trec prin nodurile k, se face prin transformarea matricei costurilor.

Interpretarea datelor din matricea costurilor obtinute in urma transformarii se face astfel:drumul de la nodul i la nodul j are costul a i,j .Matricea nu furnizeaza info despre etichetele drumului cu costul minim.

Informatiile din matricea costurilor transformata prin algoritmul Roy-Floyd se pot folosi pentru a verifica daca exista drum cu costul minim intre 2 noduri de grafuri,iar in caz afirmativ se poate afisa lungimea lui si se poate descoperi drumul.

2. Algoritmul lui Dijkstra Algoritmul Dijkstra construieste drumurile cu costul minim care pornesc de la un nod

oarecare x-nodul sursa, pana la fiecare nod din graful G=(A,B), nodul destinatie. Exista o multime cu nodurile care au fost deja selectate - S si o coada de prioritati Q cu nodurile care nu au fost selectate inca: Q=V-S,astfel un nod y este declarat selectat,atunci cand s-a determinat costul final al drumului cu costul min de la nodul sursa x la el. Selectarea unui nod nu este echivalenta cu gasirea drumului cu costul minim deoarece este posibil ca in urma calcularii costului sa rezulte ca nu exista drum de la nodul x la acel drum.

In coada Q prioritatea cea mai mare o are nodul pentru care costul drumului are valoarea cea mai mica dintre toate costurile de drumuri care pornesc de la nodul x la celelalte noduri neselectate inca. La fiecare extragere a unui nod din coada de prioritati Q, nodul este adaugat la multimea S, iar coada de prioritati este reorganizata in functie de acest nod (se calculeaza costul rumurilor de la nodul x la nodurile ramase in coada, considerand ca unele drumuri daca trec si prin nodul extras pot sa-si micsoreze costul). Pentru calcularea drumurilor de lungime minima se intretine o multime in care se memoreaza costul drumurilor de la nodul x la nodurile neselectate, costuri care se recalculeaza la fiecare extragere de nod.

Drumul cu costul minim care porneste din nodul x este format din nodul initial x si creste pana cand coada de prioritati Q nu mai contine noduri.

Page 16: Scurt Istoric Al Teoriei Grafurilor