Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Réglage des Paramètres et Convergence | Algorithmes Génétiques
Algorithmes Bio-Inspirés

bookRéglage des Paramètres et Convergence

Note
Définition

L'ajustement des paramètres dans les algorithmes génétiques désigne la sélection et la modification de valeurs clés telles que le taux de mutation, la probabilité de croisement et la taille de la population afin de contrôler le comportement de l'algorithme et d'améliorer la convergence.

Ajustement statique vs dynamique des paramètres

Deux approches principales existent pour le contrôle des paramètres dans les algorithmes génétiques :

  • Ajustement statique des paramètres : les paramètres tels que le taux de mutation, la probabilité de croisement et la taille de la population sont fixés avant le démarrage de l'algorithme et restent constants pendant l'exécution ;
  • Ajustement dynamique (adaptatif) des paramètres : les paramètres sont ajustés automatiquement en fonction des retours de la population ou de la progression de l'algorithme. L'ajustement adaptatif permet de maintenir la diversité et d'éviter la convergence prématurée.

L'ajustement statique est simple mais peut être sous-optimal lorsque les réglages optimaux évoluent dans le temps.
L'ajustement dynamique offre une flexibilité, améliorant à la fois la vitesse de convergence et la robustesse.

1234567891011121314151617181920212223242526272829
import numpy as np def adaptive_mutation_rate(population, min_rate=0.01, max_rate=0.2): """ Adjusts mutation rate based on population diversity. Diversity is measured as the average Hamming distance between individuals. """ def hamming_distance(ind1, ind2): return sum(a != b for a, b in zip(ind1, ind2)) n = len(population) if n < 2: return min_rate # No diversity in a single-individual population # Compute average Hamming distance distances = [] for i in range(n): for j in range(i + 1, n): distances.append(hamming_distance(population[i], population[j])) avg_distance = np.mean(distances) max_distance = len(population[0]) # Normalize diversity diversity = avg_distance / max_distance if max_distance else 0 # Inverse relationship: lower diversity -> higher mutation mutation_rate = max_rate - (max_rate - min_rate) * diversity return np.clip(mutation_rate, min_rate, max_rate)
copy

Lorsque la diversité de la population diminue, les individus deviennent trop similaires et l’algorithme risque la stagnation. Augmenter le taux de mutation à ces moments injecte de nouveaux matériaux génétiques, aidant à échapper aux optima locaux. Lorsque la diversité est élevée, réduire la mutation permet une exploitation plus ciblée des bonnes solutions. Ce contrôle adaptatif équilibre dynamiquement l’exploration et l’exploitation, améliorant la stabilité de la convergence.

123456789101112131415161718192021222324
import matplotlib.pyplot as plt # Simulate parameter and fitness changes for illustration generations = np.arange(1, 51) mutation_rates = np.linspace(0.2, 0.01, 50) + 0.02 * np.random.randn(50) avg_fitness = np.linspace(10, 90, 50) + 5 * np.random.randn(50) plt.figure(figsize=(10, 5)) plt.subplot(1, 2, 1) plt.plot(generations, mutation_rates, label="Mutation Rate") plt.xlabel("Generation") plt.ylabel("Mutation Rate") plt.title("Adaptive Mutation Rate Over Time") plt.legend() plt.subplot(1, 2, 2) plt.plot(generations, avg_fitness, color="green", label="Average Fitness") plt.xlabel("Generation") plt.ylabel("Average Fitness") plt.title("Population Fitness Over Time") plt.legend() plt.tight_layout() plt.show()
copy

Surveillance et convergence

Pour garantir une convergence et des performances fiables dans les algorithmes génétiques :

  • Utilisation de plages de paramètres issues de la littérature ou d’expériences antérieures ;
  • Utilisation de paramètres statiques pour les tâches simples, mais préférence pour un ajustement adaptatif pour les problèmes complexes ;
  • Surveillance de métriques telles que la diversité de la population, la meilleure et la moyenne de la fitness ;
  • Ajustement dynamique des paramètres pour maintenir l’équilibre entre exploration et exploitation.
question mark

Quelles affirmations concernant le réglage des paramètres et la convergence dans les algorithmes génétiques sont correctes ? Sélectionnez toutes les réponses qui s'appliquent.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3

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

Suggested prompts:

Can you explain how the adaptive mutation rate function works in more detail?

What are some other parameters that can be tuned adaptively in genetic algorithms?

How do I decide when to use static vs. dynamic parameter tuning?

Awesome!

Completion rate improved to 6.25

bookRéglage des Paramètres et Convergence

Glissez pour afficher le menu

Note
Définition

L'ajustement des paramètres dans les algorithmes génétiques désigne la sélection et la modification de valeurs clés telles que le taux de mutation, la probabilité de croisement et la taille de la population afin de contrôler le comportement de l'algorithme et d'améliorer la convergence.

Ajustement statique vs dynamique des paramètres

Deux approches principales existent pour le contrôle des paramètres dans les algorithmes génétiques :

  • Ajustement statique des paramètres : les paramètres tels que le taux de mutation, la probabilité de croisement et la taille de la population sont fixés avant le démarrage de l'algorithme et restent constants pendant l'exécution ;
  • Ajustement dynamique (adaptatif) des paramètres : les paramètres sont ajustés automatiquement en fonction des retours de la population ou de la progression de l'algorithme. L'ajustement adaptatif permet de maintenir la diversité et d'éviter la convergence prématurée.

L'ajustement statique est simple mais peut être sous-optimal lorsque les réglages optimaux évoluent dans le temps.
L'ajustement dynamique offre une flexibilité, améliorant à la fois la vitesse de convergence et la robustesse.

1234567891011121314151617181920212223242526272829
import numpy as np def adaptive_mutation_rate(population, min_rate=0.01, max_rate=0.2): """ Adjusts mutation rate based on population diversity. Diversity is measured as the average Hamming distance between individuals. """ def hamming_distance(ind1, ind2): return sum(a != b for a, b in zip(ind1, ind2)) n = len(population) if n < 2: return min_rate # No diversity in a single-individual population # Compute average Hamming distance distances = [] for i in range(n): for j in range(i + 1, n): distances.append(hamming_distance(population[i], population[j])) avg_distance = np.mean(distances) max_distance = len(population[0]) # Normalize diversity diversity = avg_distance / max_distance if max_distance else 0 # Inverse relationship: lower diversity -> higher mutation mutation_rate = max_rate - (max_rate - min_rate) * diversity return np.clip(mutation_rate, min_rate, max_rate)
copy

Lorsque la diversité de la population diminue, les individus deviennent trop similaires et l’algorithme risque la stagnation. Augmenter le taux de mutation à ces moments injecte de nouveaux matériaux génétiques, aidant à échapper aux optima locaux. Lorsque la diversité est élevée, réduire la mutation permet une exploitation plus ciblée des bonnes solutions. Ce contrôle adaptatif équilibre dynamiquement l’exploration et l’exploitation, améliorant la stabilité de la convergence.

123456789101112131415161718192021222324
import matplotlib.pyplot as plt # Simulate parameter and fitness changes for illustration generations = np.arange(1, 51) mutation_rates = np.linspace(0.2, 0.01, 50) + 0.02 * np.random.randn(50) avg_fitness = np.linspace(10, 90, 50) + 5 * np.random.randn(50) plt.figure(figsize=(10, 5)) plt.subplot(1, 2, 1) plt.plot(generations, mutation_rates, label="Mutation Rate") plt.xlabel("Generation") plt.ylabel("Mutation Rate") plt.title("Adaptive Mutation Rate Over Time") plt.legend() plt.subplot(1, 2, 2) plt.plot(generations, avg_fitness, color="green", label="Average Fitness") plt.xlabel("Generation") plt.ylabel("Average Fitness") plt.title("Population Fitness Over Time") plt.legend() plt.tight_layout() plt.show()
copy

Surveillance et convergence

Pour garantir une convergence et des performances fiables dans les algorithmes génétiques :

  • Utilisation de plages de paramètres issues de la littérature ou d’expériences antérieures ;
  • Utilisation de paramètres statiques pour les tâches simples, mais préférence pour un ajustement adaptatif pour les problèmes complexes ;
  • Surveillance de métriques telles que la diversité de la population, la meilleure et la moyenne de la fitness ;
  • Ajustement dynamique des paramètres pour maintenir l’équilibre entre exploration et exploitation.
question mark

Quelles affirmations concernant le réglage des paramètres et la convergence dans les algorithmes génétiques sont correctes ? Sélectionnez toutes les réponses qui s'appliquent.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3
some-alt