Documente Academic
Documente Profesional
Documente Cultură
Pasul 1:
Selectm o muchie de cost minim (n cazul nostru, de cost 1) i obinem:
Pasul 2:
Selectm din nou o muchie de cost minim (costul minim fiind 1):
Pasul 3:
La acest pas nu mai putem selecta o muchie de cost 1, deoarece s-ar obine un
ciclu. Selectm muchia de cost 2:
Pas 4:
Selectnd, n final, muchia de cost 3, obinem un graf fr cicluri cu n-1 muchii,
deci un arbore:
Algoritmul lui Kruskal utilizeaz metoda Greedy, la fiecare pas fiind selectat o
muchie de cost minim, convenabil (care nu formeaz cicluri cu cele deja
selectate).
Aplicaii
Exercitiu varianta 1
Construieste copilul un graf, apoi aplica pas cu algoritmul lui Kruskal.
Exerciiu varianta 2
Se da un graf. Sa construiasca pas cu pas un apm folosind algoritmul lui
Kruskal.
Moment evaluare
Exerciiul 1 (gril)
Se d graful ... Considernd c prin aplicarea algoritmului lui Kruskal am
selectat deja muchiile ..., care muchie poate fi selectat la pasul urmtor?
Exerciiul 2 (gril)
Se d graful ... Care dintre urmtoarele grafuri pariale se pot obine dup
selectarea a ... muchii prin algoritmul lui Kruskal?
Exerciiul 3
Se d graful ... Cte componente conexe va avea graful parial obinut dup
selectarea a ... muchii din acest graf prin algoritmul lui Kruskal?
Implementare
Pentru implementarea algoritmului este necesar rezolvarea urmtoarelor dou
probleme:
cum extragem muchia de cost minim
cum testm dac muchia selectat formeaz sau nu cicluri cu cele deja
selectate.
Pentru a extrage minimul, o idee ar fi s sortm muchiile cresctor dup cost i
s parcurgem secvenial muchiile ordonate.
Pentru a realiza sortarea muchiilor grafului, vom reprezenta graful prin lista
muchiilor (un vector cu m componente, fiecare component fiind o structur n
care reinem cele dou extremiti i costul muchiei).
Declaraii Vizualizare
O muchie va forma cicluri cu muchiile deja selectate dac i numai dac ntre
extremitile muchiei exist cel puin un lan. Vizualizare
Cu alte cuvinte, muchia [x, y] ca forma cicluri cu muchiile deja selectate dac i
numai dac extremitile muchiei (x i y) sunt n aceeai component conex.
Pentru a testa dac o muchie formeaz cicluri cu muchiile deja selectate este
suficient s testm dac extremitile muchiei se gsesc n aceeai
component conex. Pentru aceasta va trebui s inem permanent evidena
componentelor conexe (arborilor) care se formeaz.
Reprezentarea informaiilor
n numrul de vrfuri
m numrul de muchii din graf
G graful dat, reprezentat prin lista muchiilor (un vector cu m componente,
fiecare component fiind o structur n care reinem cele dou extremiti i
costul muchiei).
A arborele parial de cost mimim, reprezentat ca un vector n-1 componente n
care vom reine indicii din G ai muchiilor selectate
c vector cu n componente n care vom reine evidena componentelor conexe
(c[i] = componenta conex creia i aparine vrful i). Componentele conexe
vor fi identificate printr-un reprezentant (vrful cu indicele cel mai mic din
componenta conex respectiv).
Pseudocod
Pas 1. Iniializare
Se citesc n, m i G (muchiile grafului).
Iniializm vectorul c: c[i]=i, pentru orice i=1,n (fiecare vrf reprezint o
component conex).
Pas 2. Sortare
Se ordoneaz muchiile din vectorul G cresctor dup cost.
Pas 3 Selectare muchii
Se repet de n-1 ori
se alege o muchie cost minim, care nu a mai fost selectat i care nu
formeaz cicluri cu muchiile deja selectate
se memoreaz indicele muchiei selectate n vectorul A
se unific componentele conexe ale extremitilor muchiei selectate.
Exemplu
Se d un graf. Se vede reprezentarea informaiilor.
Si se urmrete pe graf i pe reprezentarea informaiilor execuia algoritmului
scris n pseudocod.
Observaii
1. n cazul n care arborele parial de cost minim este gsit suficient de
repede, un numr mare de muchii rmn netestate i n acest caz se pierde
timp inutil cu sortarea acestor muchii. O alt idee, mai eficient, ar fi s
organizm muchiile grafului ca un min-heap, structur ce permite extragerea
eficient a muchiei de cost minim.
n acest caz, pentru organizarea muchiilor grafului ca heap sunt necesare O(m)
operaii.
Pentru extragerea fiecarei muchii de cost minim sunt necesare O(m log m)
operaii.
2. Selectarea unei muchii implic i o operaie de unificare a dou
componente conexe, operaie pe care am implementat-o n O(n). Acest pas se
poate optimiza pn la o complexitate medie de O(log n).
Moment
Surs C
Surs Pascal
Watch pe un exemplu/doua cu explicaii