Sektion 2. Kapitel 4
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:
- Inden for hoved-
for-løkken skal du først evaluere helepopulationved at anvendefitness_functionpå hver enkelt individ. Gem disse scorer i listenfitness. - 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). - Inden for løkken
while len(new_population) < POP_SIZE:skal du oprette et nyt individ ved at:
- Udvælge
parent1ved hjælp af funktionentournament_selection. - Udvælge
parent2ved hjælp af funktionentournament_selection. - Oprette et
childved at kombinere forældrene med funktionenarithmetic_crossover. - Anvende variation på
childved hjælp af funktionenmutate.
- Efter
while-løkken skal du erstatte den gamlepopulationmednew_populationfor at fuldføre generationen.
Løsning
Var alt klart?
Tak for dine kommentarer!
Sektion 2. Kapitel 4
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat