Sectie 2. Hoofdstuk 4
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:
- Binnen de hoofd
for-lus moet je eerst de gehelepopulationevalueren door defitness_functiontoe te passen op elk individu. Sla deze scores op in de lijstfitness. - 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). - Binnen de
while len(new_population) < POP_SIZE:-lus moet je een nieuw individu creëren door:
parent1te selecteren met de functietournament_selection.parent2te selecteren met de functietournament_selection.- Een
childte maken door de ouders te combineren met de functiearithmetic_crossover. - Variatie toe te passen op het
childmet de functiemutate.
- Na de
while-lus vervang je de oudepopulationdoor denew_populationom de generatie te voltooien.
Oplossing
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 2. Hoofdstuk 4
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.