AI-For-Beginners/translations/da/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] c55d809b23 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00

README.md

Genetiske Algoritmer

Quiz før forelæsning

Genetiske Algoritmer (GA) er baseret på en evolutionær tilgang til AI, hvor metoder fra evolutionen af en population bruges til at finde en optimal løsning på et givet problem. De blev foreslået i 1975 af John Henry Holland.

Genetiske Algoritmer bygger på følgende ideer:

  • Gyldige løsninger på problemet kan repræsenteres som gener
  • Krydsning giver os mulighed for at kombinere to løsninger for at opnå en ny gyldig løsning
  • Udvælgelse bruges til at vælge mere optimale løsninger ved hjælp af en fitness-funktion
  • Mutationer introduceres for at destabilisere optimeringen og få os ud af lokale minima

Hvis du vil implementere en Genetisk Algoritme, skal du bruge følgende:

  • En metode til at kode vores problemløsninger ved hjælp af gener g∈Γ
  • På sættet af gener Γ skal vi definere en fitness-funktion fit: Γ→R. Mindre funktionsværdier svarer til bedre løsninger.
  • Definere en krydsningsmekanisme til at kombinere to gener for at få en ny gyldig løsning crossover: Γ2→Γ.
  • Definere en mutationsmekanisme mutate: Γ→Γ.

I mange tilfælde er krydsning og mutation ret simple algoritmer til at manipulere gener som numeriske sekvenser eller bitvektorer.

Den specifikke implementering af en genetisk algoritme kan variere fra tilfælde til tilfælde, men den overordnede struktur er som følger:

  1. Vælg en startpopulation G⊂Γ
  2. Vælg tilfældigt en af de operationer, der skal udføres i dette trin: krydsning eller mutation
  3. Krydsning:
  • Vælg tilfældigt to gener g1, g2 ∈ G
  • Beregn krydsning g=crossover(g1,g2)
  • Hvis fit(g)<fit(g1) eller fit(g)<fit(g2) - erstat det tilsvarende gen i populationen med g.
  1. Mutation - vælg et tilfældigt gen g∈G og erstat det med mutate(g)
  2. Gentag fra trin 2, indtil vi opnår en tilstrækkelig lille værdi af fit, eller indtil grænsen for antallet af trin er nået.

Typiske Opgaver

Opgaver, der typisk løses med Genetiske Algoritmer, inkluderer:

  1. Optimering af tidsplaner
  2. Optimal pakning
  3. Optimal skæring
  4. Acceleration af udtømmende søgning

✍️ Øvelser: Genetiske Algoritmer

Fortsæt din læring i følgende notebooks:

Gå til denne notebook for at se to eksempler på brug af Genetiske Algoritmer:

  1. Retfærdig opdeling af skat
  2. 8 Dronninge Problemet

Konklusion

Genetiske Algoritmer bruges til at løse mange problemer, herunder logistik og søgeproblemer. Feltet er inspireret af forskning, der kombinerede emner inden for psykologi og datalogi.

🚀 Udfordring

"Genetiske algoritmer er nemme at implementere, men deres adfærd er svær at forstå." kilde Lav lidt research for at finde en implementering af en genetisk algoritme, såsom løsning af et Sudoku-puslespil, og forklar, hvordan det fungerer som en skitse eller et flowdiagram.

Quiz efter forelæsning

Gennemgang & Selvstudie

Se denne fantastiske video, der taler om, hvordan en computer kan lære at spille Super Mario ved hjælp af neurale netværk trænet med genetiske algoritmer. Vi vil lære mere om, hvordan computere lærer at spille spil som dette i næste sektion.

Opgave: Diofantisk Ligning

Dit mål er at løse den såkaldte Diofantiske ligning - en ligning med heltalsrødder. For eksempel, betragt ligningen a+2b+3c+4d=30. Du skal finde de heltalsrødder, der opfylder denne ligning.

Denne opgave er inspireret af dette indlæg.

Tips:

  1. Du kan overveje rødderne at være i intervallet [0;30]
  2. Som et gen kan du overveje at bruge listen over rodværdier

Brug Diophantine.ipynb som udgangspunkt.