Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Concevoir un Algorithme Génétique | Algorithmes Génétiques
Algorithmes Bio-Inspirés
Section 2. Chapitre 4
single

single

Défi : Concevoir un Algorithme Génétique

Glissez pour afficher le menu

Tâche

Glissez pour commencer à coder

Vous devez implémenter la boucle principale d'un algorithme génétique afin de trouver la valeur maximale d'une fonction mathématique. La fonction à optimiser est une simple parabole : f(x) = -(x - 3)² + 10. Cette fonction atteint son sommet en x = 3, où sa valeur est 10.

Toutes les fonctions utilitaires (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) ainsi que la structure de la boucle principale vous sont fournies.

Votre tâche consiste à compléter la logique centrale du processus évolutif :

  1. À l'intérieur de la boucle principale for, commencez par évaluer l'ensemble de la population en appliquant la fitness_function à chaque individu. Stockez ces scores dans la liste fitness.
  2. Trouvez l'indice de l'individu le plus performant de la génération courante et stockez-le dans gen_best_idx. (Astuce : np.argmax() est utile ici).
  3. À l'intérieur de la boucle while len(new_population) < POP_SIZE:, créez un nouvel individu en :
  • Sélectionnant parent1 à l'aide de la fonction tournament_selection.
  • Sélectionnant parent2 à l'aide de la fonction tournament_selection.
  • Créant un child en combinant les parents avec la fonction arithmetic_crossover.
  • Appliquant une variation au child à l'aide de la fonction mutate.
  1. Après la boucle while, remplacez l'ancienne population par la new_population pour compléter la génération.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt