Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Bouw een Genetisch Algoritme | Genetische Algoritmen
Bio-geïnspireerde Algoritmen
Sectie 2. Hoofdstuk 4
single

single

Uitdaging: Bouw een Genetisch Algoritme

Veeg om het menu te tonen

Taak

Veeg om te beginnen met coderen

Je krijgt de opdracht om de hoofdloop van een genetisch algoritme te implementeren om de maximale waarde van een wiskundige functie te vinden. De te optimaliseren functie is een eenvoudige parabool: f(x) = -(x - 3)² + 10. Deze functie heeft een duidelijk maximum bij x = 3, waar de waarde 10 is.

Alle hulpfuncties (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) en de structuur van de hoofdloop zijn al voor je beschikbaar.

Jouw taak is om de kernlogica van het evolutionaire proces in te vullen:

  1. Binnen de hoofd for-lus moet je eerst de gehele population evalueren door de fitness_function toe te passen op elk individu. Sla deze scores op in de lijst fitness.
  2. Zoek de index van het best presterende individu in de huidige generatie en sla deze op in gen_best_idx. (Tip: np.argmax() is hierbij handig).
  3. Binnen de while len(new_population) < POP_SIZE:-lus moet je een nieuw individu creëren door:
  • parent1 te selecteren met de functie tournament_selection.
  • parent2 te selecteren met de functie tournament_selection.
  • Een child te maken door de ouders te combineren met de functie arithmetic_crossover.
  • Variatie toe te passen op het child met de functie mutate.
  1. Na de while-lus vervang je de oude population door de new_population om de generatie te voltooien.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt