Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Bygg en Genetisk Algoritme | Genetiske Algoritmer
Bio-inspirerte Algoritmer
Seksjon 2. Kapittel 4
single

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:

  1. Inne i hovedløkken (for-løkka) skal du først evaluere hele population ved å bruke fitness_function på hvert individ. Disse poengene lagres i listen fitness.
  2. 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).
  3. Inne i while len(new_population) < POP_SIZE:-løkka skal du lage et nytt individ ved å:
  • Velge parent1 med funksjonen tournament_selection.
  • Velge parent2 med funksjonen tournament_selection. * Lage et child ved å kombinere foreldrene med arithmetic_crossover-funksjonen. * Påføre variasjon på child ved å bruke mutate-funksjonen.
  1. Etter while-løkka skal du erstatte den gamle population med new_population for å fullføre generasjonen.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 4
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt