Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Opbyg et Genetisk Algoritme | Genetiske Algoritmer
Bio-inspirerede Algoritmer
Sektion 2. Kapitel 4
single

single

Udfordring: Opbyg et Genetisk Algoritme

Stryg for at vise menuen

Opgave

Swipe to start coding

Du skal implementere hovedløkken i en genetisk algoritme for at finde maksimumværdien af en matematisk funktion. Funktionen, der skal optimeres, er en simpel parabel: f(x) = -(x - 3)² + 10. Denne funktion har et tydeligt toppunkt ved x = 3, hvor dens værdi er 10.

Alle hjælpefunktioner (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) samt hovedstruktur for løkken er givet på forhånd.

Din opgave er at udfylde den centrale logik i den evolutionære proces:

  1. Inden for hoved-for-løkken skal du først evaluere hele population ved at anvende fitness_function på hver enkelt individ. Gem disse scorer i listen fitness.
  2. Find indekset for det bedst præsterende individ i den aktuelle generation og gem det i gen_best_idx. (Tip: np.argmax() er nyttig her).
  3. Inden for løkken while len(new_population) < POP_SIZE: skal du oprette et nyt individ ved at:
  • Udvælge parent1 ved hjælp af funktionen tournament_selection.
  • Udvælge parent2 ved hjælp af funktionen tournament_selection.
  • Oprette et child ved at kombinere forældrene med funktionen arithmetic_crossover.
  • Anvende variation på child ved hjælp af funktionen mutate.
  1. Efter while-løkken skal du erstatte den gamle population med new_population for at fuldføre generationen.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt