En genetisk algoritme er en algoritme, der efterligner processen med naturlig udvælgelse. De hjælper med at løse optimerings- og søgeproblemer. Genetiske algoritmer er en del af den større klasse af evolutionære algoritmer. Genetiske algoritmer efterligner naturlige biologiske processer som f.eks. arv, mutation, selektion og crossover.

Begrebet genetiske algoritmer er en søgeteknik, der ofte anvendes inden for datalogi til at finde komplekse, ikke-oplagte løsninger på algoritmiske optimerings- og søgeproblemer. Genetiske algoritmer er globale søgeheuristikker.

Hvordan fungerer en genetisk algoritme?

En genetisk algoritme arbejder med en population af kandidatløsninger (ofte kaldet kromosomer). Hver generation skabes ved at vælge de bedst præsterende kandidater (baseret på en fitnessfunktion), kombinere dem (crossover), og lave tilfældige ændringer (mutation). Over mange generationer udvikler populationen sig typisk mod bedre løsninger.

Vigtige komponenter

  • Repræsentation: Hvordan en løsning kodes — f.eks. som en binær streng, en vektor af tal eller en permutation.
  • Population: Et sæt af kandidatløsninger der udvikles over tid.
  • Fitnessfunktion: En målestok for hvor god en kandidat er i forhold til opgaven. Den styrer udvælgelsen.
  • Udvælgelse: Metoder til at vælge forældre til næste generation (se nedenfor).
  • Crossover: Kombination af to (eller flere) forældre for at skabe børn — bringer nye kombinationer af egenskaber.
  • Mutation: Små tilfældige ændringer for at bevare diversitet og undgå lokal optima.
  • Erstatningsstrategi: Hvordan man vælger hvilke kandidater der fortsætter til næste generation (f.eks. elitisme).
  • Stopkriterier: Når algoritmen stopper: efter et antal generationer, opnået fitness eller ingen forbedring.

Udvælgelsesmetoder

  • Roulette (fitness-proportionel): Sandsynlighed proportional med fitness.
  • Tournament: Tilfældigt vælg k kandidater, og vælg den bedste af dem — robust og nem at implementere.
  • Rank: Kandidater rangeres efter fitness, og sandsynligheder gives efter rang i stedet for absolut fitness.

Crossover og mutation — eksempler

  • One-point crossover: Et skæringspunkt vælges; dele byttes mellem forældrene.
  • Two-point / uniform crossover: Flere skæringspunkter eller byttebits med en sandsynlighed for hver position.
  • Mutation: For binære repræsentationer vendes en bit med lille sandsynlighed; for reelle værdier kan man tilføje støj (f.eks. gaussisk).

Typisk kørsel (oversigt)

  1. Initialiser en population tilfældigt.
  2. Evaluer fitness for hver kandidat.
  3. Gentag indtil stopkriterium:
    • Vælg forældre efter udvalgsmekanisme.
    • Skab børn med crossover.
    • Pålæg mutation på børnene.
    • Evaluer børnenes fitness.
    • Skift til næste generation ifølge erstatningsstrategi.
  4. Returner den bedste fundne løsning.

Fordele og begrænsninger

  • Fordele: Kan finde gode løsninger på komplekse, ikkelineære og multimodale problemer; fleksibel repræsentation; let at parallelisere.
  • Begrænsninger: Stokastisk (ingen garanti for optimal løsning); kan være beregningskrævende; risiko for premature convergence (hænger fast i lokale optimaler) hvis diversiteten misteres.

Anvendelser

Genetiske algoritmer bruges bredt, bl.a.:

  • Optimering af funktioner og parametre inden for ingeniørvidenskab.
  • Planlægning og skemalægning (f.eks. produktionsplaner, ruteplanlægning).
  • Design og automatiseret søgning i maskinlæring (hyperparameter-tuning, arkitektursøgning).
  • Evolutionsbaserede simulationer og kunstig liv-forskning.

Praktiske tips til implementering

  • Vælg en repræsentation som passer naturligt til problemet (fx permutation for rækkefølgebaserede problemer).
  • Tune parametre (populationsstørrelse, crossover- og mutationsrate) eksperimentelt — der findes ingen universelt bedste sætning.
  • Brug elitisme (bevar de bedste løsninger) for at sikre, at løsninger ikke går tabt.
  • Overvej hybridisering med lokale søgemetoder (memetiske algoritmer) for at accelerere finjustering.
  • Overvåg populationens diversitet og juster mutation eller selection for at undgå stagnation.

Afsluttende bemærkning

Genetiske algoritmer er et kraftfuldt, naturinspireret værktøj til optimering og søgning. Deres succes afhænger af en god problemrepræsentation, en velvalgt fitnessfunktion og omhyggelig parameteropsætning. For mange praktiske problemer er de en effektiv måde at finde gode løsninger, især når traditionelle deterministiske metoder fejler eller er for langsomme.