Heuristic Søk er en kraftig algoritmisk tilnærming som brukes til å finne løsninger i komplekse problemområder ved å ta informerte beslutninger basert på heuristikk eller tommelfingerregler. Det er spesielt nyttig når et uttømmende søk er upraktisk på grunn av den store søkeplassen.
Hvordan det fungerer
- Heuristic Evaluering: Algoritmen evaluerer hver tilstand i problemrommet ved hjelp av en heuristic funksjon. Denne funksjonen estimerer "lovendeheten" til hver stat når det gjelder dens nærhet til måltilstanden.
- Søkestrategi: Algoritmen velger den mest lovende staten basert på evalueringen heuristic. Den bruker en søkestrategi som Best-First Søk, A* Søk eller Greedy Søk.
- Tilstandsutvidelse: Den valgte tilstanden utvides ved å generere dens nabotilstander. Dette er potensielle kandidater til neste trinn.
- Gjenta: Prosessen gjentas iterativt, og tilstander velges og utvides til måltilstanden er funnet eller en avslutningsbetingelse er oppfylt.
Eksempel: Traveling Salesman Problem(TSP)
Tenk på Traveling Salesman-problemet, der en selger må besøke et sett med byer og gå tilbake til startbyen mens han minimerer den totale tilbakelagte distansen. En heuristic tilnærming kan være algoritmen for nærmeste nabo:
- Start i en tilfeldig by.
- På hvert trinn velger du den nærmeste ubesøkte byen som neste destinasjon.
- Gjenta til alle byene er besøkt, og gå deretter tilbake til startbyen.
Kodeeksempel i C++
I dette eksemplet brukes Nearest Neighbor Algorithm for å løse Traveling Salesman-problemet. Det er en heuristic tilnærming som velger den nærmeste ubesøkte byen på hvert trinn, noe som resulterer i en løsning som ofte er nær optimal.