Sunteți pe pagina 1din 11

Arbore de cost minim

Schema unui arbore de cost minim


Algoritmul lui Kruskal
Algoritmul lui Kruskal are același rol ca și
algoritmul lui Prim,  și anume cel de a găsi
arborele parțial de cost minim. Acest algoritm a
fost descoperit în anul 1956, la 26 de ani după
algoritmul lui Prim. Deși ambii algoritmi au
același scop, algoritmul lui Kruskal
este greedy deoarece la început toate muchiile
din graf trebuie sortate crescător.
Cum functioneaza algoritmul
Pentru a intelege mai bine cum functioneaza acest algoritm, vom
rezolva impreuna problema Arborele partial de cost minim– de pe
infoarena. Vom desena mai jos exemplul din fisierul de intrare:
Primul pas din algoritmul lui Kruskal este sa sortam
nodurile in ordine crescatoare. Dupa ce am sortat
nodurile in ordine crescatoare, incepem cu cea mai mica
pereche si cream primul nostru arbore.
Pe masura ce algoritmul avanseaza de fiecare data
trebuie sa unim doi arbori mai mici. Trebuie sa avem
mare grija ca cei doi arbori sa nu fie deja conectati
(pentru a respecta proprietatea de arbore). Ca sa ne
apropriem de raspunsul final, trebuie sa unim arborele
mai mic, cu arborele mai mare.
for (i = 1; i <= n; i++)
viz[i] = c[i] = T[i] = 0;
cout << "nodul de start";
cin >> start;
viz[start] = 1;
for (k = 1; k <= n - 1; k++)
{
min = 10000;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
If (viz[i] == 1 && viz[j] == 0)
if (a[i][j] != 0)
if (a[i][j] < min) {
min = a[i][j];
n1 = i; n2 = j;
}
cost = cost + a[n1][n2];
viz[n2] = 1;
c[n2] = a[i][j];
T[n2] = n1;
}
Exemple practice

Zboruri
Drumuri
GPS
Zboruri

Back
Drumuri

Back
GPS

Back
Proiect realizat de : Canciuc Sebastian
Dan Odysseas
Moscaliuc Timotei
Lungu Mihail
Sub coordonarea :Doamnei Profesoare Hrisca Steluta Silvia

S-ar putea să vă placă și