Greedy Search-algoritmen er en problemløsende tilnærming som alltid velger det beste tilgjengelige alternativet ved hvert trinn uten å ta hensyn til den langsiktige konsekvensen av beslutningen. Selv om det ikke garanterer å finne den globalt optimale løsningen, fungerer denne metoden ofte raskt og er enkel å implementere.
Hvordan det fungerer
- Initialisering: Start med en tom eller initial løsning.
- Lokalt optimalt valg: På hvert trinn velger du det lokalt optimale valget basert på målfunksjonen eller definerte kriterier.
- Bruk valg: Bruk det optimale valget på gjeldende løsning.
- Gjenta: Gjenta trinn 2 til 4 til du ikke kan gjøre noe bedre lokalt valg.
Eksempel: Knapsack Problem
Tenk på Knapsack Problem, hvor vi har en ryggsekk med maksimal vekt og en liste over varer med vekter og verdier. Målet er å velge varer for å maksimere den totale verdien i ryggsekken. En Greedy Search-tilnærming for dette problemet er å velge varer basert på det høyeste verdi-til-vekt-forholdet.
Kodeeksempel i C++
I dette eksemplet bruker vi Greedy Search-tilnærmingen for å løse Knapsack Problem. Vi sorterer varene basert på synkende verdi-til-vekt-forhold og velger varer med det høyeste forholdet som fortsatt passer innenfor ryggsekkens vektgrense.