Metoda Greedy este o tehnică de proiectare a algoritmilor care construiește soluția pas cu pas, alegând la fiecare pas cea mai bună opțiune locală, în speranța obținerii soluției globale optime. Pentru a fi aplicabilă, problema trebuie să respecte proprietatea de substructură optimală și proprietatea alegerii lacome. Algoritmii greedy sunt eficienți datorită complexităților temporale reduse (de obicei O(n log n) sau O(n)), dar nu garantează întotdeauna optimul global.
Metoda Greedy (sau „algoritmul lacom”) este o tehnică de proiectare a algoritmilor folosită pentru rezolvarea problemelor de optimizare. Ea presupune construirea soluției pas cu pas, alegând la fiecare pas cea mai bună alegere locală („lacomă”) în speranța că aceasta va duce la o soluție globală optimă.
Condiții de aplicabilitate:
Atenție: Metoda Greedy nu garantează întotdeauna optimul global, de aceea trebuie demonstrat sau verificat pentru fiecare problemă.
- Drumuri minime – algoritmul Dijkstra
În practică, multe probleme de Bac se rezolvă greedy prin sortare prealabilă și apoi parcurgere secvențială cu alegerea elementelor care maximizează sau minimizează un anumit criteriu.
Presupunem că avem monede de valori 1, 5, 10, 25 (sistem canonic). Pentru a plăti suma S, alegem la fiecare pas cea mai mare monedă care nu depășește suma rămasă.
Algoritmul este greedy: la fiecare pas, alegem moneda de valoare maximă posibilă. În sistemele monetare canonice (euro, dolar), această metodă dă numărul minim de monede. Se implementează prin sortarea descrescătoare a monedelor și parcurgerea lor.
Avem n obiecte, fiecare cu greutate g[i] și valoare v[i]. Capacitatea rucsacului este C. Se cere valoarea maximă care poate fi transportată, putând lua fracțiuni din obiecte.
Algoritmul:
Exemplu practic: Obiecte: (v=60, g=10) raport=6; (v=100, g=20) raport=5; (v=120, g=30) raport=4; C=50
Algoritmul este optimal pentru varianta fracționară.
Avem n activități, fiecare cu start s[i] și sfârșit f[i]. Se cere numărul maxim de activități care pot fi desfășurate fără suprapunere (o persoană poate participa la o singură activitate la un moment dat).
Algoritmul:
Exemplu practic: Activități: (1,2), (2,3), (3,4), (0,5), (5,7)
Metoda este optimală.
De pe o tablă de șah (n x n), un cal pleacă dintr-o poziție și trebuie să viziteze toate căsuțele o singură dată. Varianta greedy alege la fiecare pas mutarea cu cele mai puține opțiuni viitoare (regula lui Warnsdorff).
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.