Algoritam Greedy Search pristup je rješavanju problema koji uvijek odabire najbolju dostupnu opciju u svakom koraku bez razmatranja dugoročnog utjecaja odluke. Iako ne jamči pronalaženje globalno optimalnog rješenja, ova metoda često djeluje brzo i jednostavna je za implementaciju.
Kako radi
- Inicijalizacija: Počnite s praznim ili početnim rješenjem.
- Lokalni optimalni izbor: U svakom koraku odaberite lokalno optimalan izbor na temelju funkcije cilja ili definiranih kriterija.
- Primijeni izbor: Primijeni optimalni izbor na trenutno rješenje.
- Ponavljanje: Ponavljajte korake od 2 do 4 dok se ne može napraviti bolji lokalni izbor.
Primjer: Knapsack Problem
Razmotrimo Knapsack Problem, gdje imamo naprtnjaču s maksimalnom težinom i popis predmeta s težinama i vrijednostima. Cilj je odabrati predmete koji će maksimizirati ukupnu vrijednost u naprtnjači. Pristup Greedy Search za ovaj problem je odabir stavki na temelju najvećeg omjera vrijednosti i težine.
Primjer koda u C++
U ovom primjeru koristimo pristup Greedy Search za rješavanje Knapsack Problem. Predmete razvrstavamo na temelju opadajućeg omjera vrijednosti i težine i odabiremo predmete s najvećim omjerom koji još uvijek odgovaraju ograničenju težine naprtnjače.