Algoritmul Greedy Search este o abordare de rezolvare a problemelor care alege întotdeauna cea mai bună opțiune disponibilă la fiecare pas, fără a lua în considerare impactul pe termen lung al deciziei. Deși nu garantează găsirea soluției optime la nivel global, această metodă funcționează adesea rapid și este ușor de implementat.
Cum functioneaza
- Inițializare: Începeți cu o soluție goală sau inițială.
- Alegerea optimă locală: la fiecare pas, alegeți alegerea optimă locală pe baza funcției obiective sau a criteriilor definite.
- Aplicați alegerea: Aplicați alegerea optimă soluției curente.
- Repetați: repetați pașii de la 2 la 4 până când nu se poate face o alegere locală mai bună.
Exemplu: Knapsack Problem
Luați în considerare Knapsack Problem, unde avem un rucsac cu o greutate maximă și o listă de articole cu greutăți și valori. Scopul este de a selecta articole pentru a maximiza valoarea totală din rucsac. O abordare Greedy Search pentru această problemă este de a selecta articole pe baza celui mai mare raport valoare-greutate.
Exemplu de cod în C++
În acest exemplu, folosim abordarea Greedy Search pentru a rezolva problema Knapsack Problem. Sortăm articolele în funcție de raportul descendent valoare-greutate și selectăm articolele cu cel mai mare raport care încă se încadrează în limita de greutate a rucsacului.