Sv: Utvikling av en liten bil
Opprinnelig lagt inn av torsk, her.
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:
Hm. Morsomt.
Bortsett fra den tilfeldige genereringen innledningsvis og muteringen, så er prinsippene mye det samme som jeg lærer på skolen nå. 
|