Seksjon 2. Kapittel 4
single
Utfordring: Bygg en Genetisk Algoritme
Sveip for å vise menyen
Oppgave
Sveip for å begynne å kode
Du skal implementere hovedløkken i en genetisk algoritme for å finne maksimumsverdien til en matematisk funksjon. Funksjonen som skal optimaliseres er en enkel parabel: f(x) = -(x - 3)² + 10. Denne funksjonen har et tydelig toppunkt ved x = 3, hvor verdien er 10.
Alle hjelpefunksjonene (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) og hovedstruktur for løkken er gitt.
Din oppgave er å fylle inn kjernelogikken for den evolusjonære prosessen:
- Inne i hovedløkken (
for-løkka) skal du først evaluere helepopulationved å brukefitness_functionpå hvert individ. Disse poengene lagres i listenfitness. - Finn indeksen til det individet som presterer best i nåværende generasjon, og lagre den i
gen_best_idx. (Tips:np.argmax()er nyttig her). - Inne i
while len(new_population) < POP_SIZE:-løkka skal du lage et nytt individ ved å:
- Velge
parent1med funksjonentournament_selection. - Velge
parent2med funksjonentournament_selection. * Lage etchildved å kombinere foreldrene medarithmetic_crossover-funksjonen. * Påføre variasjon påchildved å brukemutate-funksjonen.
- Etter
while-løkka skal du erstatte den gamlepopulationmednew_populationfor å fullføre generasjonen.
Løsning
Alt var klart?
Takk for tilbakemeldingene dine!
Seksjon 2. Kapittel 4
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår