Sv: Utvikling av en liten bil
Opprinnelig lagt inn av Joika, her.
Den regner vel ut den beste løsningen etter et bestemt antall forsøk, så beholder den det beste, og tester "villt" utifra denne et bestemt antall forsøk til, for så å beholde den beste igjen, som blir bedre enn den forrige beste osv?? Etterhvert vil algoritmen har større sammenligningsgrunnlag og progresjonen øker i tempo. Eller? :gjetter:
En genetisk algoritme jobber på «individer», som er representasjoner av mulig løsninger. I starten (generasjon #0) er disse løsningene tilfeldig generert. Alle individene (kalt populasjonen) blir testet på problemet som skal løses, og blir tildelt en score utfra hvor godt de løser dette problemet. Funksjonen som regner ut denne scoren kalles fitness-funksjonen, og en korrekt beregning av fitness er viktig for at algoritmen skal lykkes.
Når alle individer/løsniner er vurdert, får disse «parre seg» for å lage en ny generasjon løsninger, ved at biter fra en løsning kombineres med biter fra en annen. Funksjonen som gjør denne parringen kalles vanligvis for en crossover-funksjon (siden den typisk krysser to løsninger). Utvalget av hvem som får parre seg er slik at individer som scoret høyt har større sjanse til å få formert seg, men alle har en viss sjanse. Noen GA-er viderefører også for eksempel de 5 beste individene direkte til neste generasjon for å ikke miste gode løsninger.
Til slutt utsettes noen av individene for mutasjon ved å tilfeldig endre på noen løsninger, dette for å forsikre en viss diversitet i populasjonen og dermed forsøke å unngå for tidlig stagnasjon. En god mutasjonsfunksjon er dermed også viktig for et godt resultat.
En genetisk algoritme vil typisk stagnere etter en god del generasjoner, og jeg syns egentlig denne ser ut til å gjøre det ganske fort. Men det er lenge siden jeg drev med dette, kjenner jeg. :gammel:
|