Documente Academic
Documente Profesional
Documente Cultură
Kruskal Algoritmul lui Kruskal, scris de Joseph Kruskal Trebuie sa conectam 3 orase la o retea telefonica:
în 1956, este un algoritm în teoria grafurilor care Bucuresti, Timisoara si Arad.
găseşte arborele parţial de cost minim pentru un Necesar cablu: 1300 km.
graf conex ponderat (graf in care fiecare muchie
are asociat un cost). Cu alte cuvinte, găseşte
submulţimea muchiilor care formează un arbore
care include toate vârfurile şi care este minimizat
din punct de vedere al costului. Dacă graful nu
este conex, atunci algoritmul găseşte un arbore
parţial de cost minim pentru fiecare componentă
conexă. Algoritmul lui Kruskal este un exemplu E inutil sa executam toate cele trei conexiuni, numai
de algoritm greedy. doua din ele sunt suficiente pentru o comunicare in
bune conditii intre oricare 2 orase.
De exemplu, legatura Timisoara – Arad ar putea
lipsi, caz in care necesarul de cablu devine 1240 km.
Algoritmul lui Lee presupune doi paşi importanţi: Aplicaţia #1 -> Problema Labirintului
1. Primul şi poate cel mai important pas este Se dă o matrice cu M linii şi N coloane. Ştiind
Lee-Le Gall folosirea unei Cozi, sub forma unui vector de locul de plecare, marcat cu -1, se cere să se
structuri (de preferabil), care va menţine toţi determine drumul de lungime minimă până la o
paşii pe care o să-i facem de acum în colo. În ieşire, iar in caz că nu există, se va afişa-1
această coadă se pun, pentru fiecare pas,
Rezolvare
locurile care s-au marcat la punctul anterior.
După cum observaţi, este o aplicaţie a algoritmului
2. Se marchează cu numere consecutive toate
lui Lee. Această problemă se poate rezolva şi cu
locurile posibile prin care putem trece,
metoda backtracking, dar această metodă nu este una
parcurgând în ordine elementele cozii, până
eficientă, complexitatea fiind O(4(M*N)),
când nu mai putem marca, sau am ajuns la (M*N)
sau O(3 ) după caz, ceea ce este foarte mult. În
final.
primul pas vom pune în coadă coordonatele locului
de plecare, urmând apoi să parcurgem pe rând
coada, până când nu mai există cale de ieşire sau am
găsit una. Vă voi da un exemplu pentru a vă arata
mai bine cum se marchează fiecare vecin în parte: