Algorithme Génétique
Algorithme Génétique
Algorithme Génétique
1 Présentation du projet
1.1 Introduction
La sélection naturelle est un concept ayant prouvé son efficacité dans de nombreux domaines et bien au
delà de la théorie de l’évolution en biologie. Les concepts de l’évolution et de l’hérédité peuvent être utilisés
dans le cadre de nombreux problèmes d’optimisation et ont permis l’émergence d’une approche connaissant
de plus en plus de succès dans le domaine de l’optimisation «ămulticritère », les algorithmes génétiques.
Dans ce projet, nous nous proposons d’implanter une version générique des algorithmes génétiques et d’en
dériver deux version permettant de résoudre des problèmes classiques d’optimisation.
1
1.2.1 Fonctionnement d’un algorithme génétique
Avant de pouvoir utiliser un algorithme générique, il est nécessaire de pouvoir définir pour le problème
donnéă :
– Une méthode permettant de représenter la solution sous une forme manipulable par la machine, la
plupart du temps, il s’agit d’un vecteur de valeurs booléennes.
– Une fonction permettant de calculer la qualité d’une solution.
Initialisation Un ensemble de plusieurs solutions est engendré de manière aléatoire. Cet ensemble consti-
tue ce qui est appelé la population initiale. La taille de la population initiale dépend de la nature du pro-
blème et surtout de l’existence de nombreux optima locaux. Typiquement, les populations peuvent conte-
nir plusieurs milliers de solution possible. Habituellement, la population initiale est engendrée de manière
aléatoire afin de couvrir complètement le domaine des solutions possibles.
Sélection A une époque donnée, un échantillon de la population existante est sélectionné afin d’en-
gendre la nouvelle génération. La sélection s’effectue selon un processus de sélection des solutions ayant
la meilleure adéquation. Plusieurs fonction de sélection sont possibles, la plus simple consisté à sélection-
ner les solutions ayant la meilleur adéquation, d’autres fonctions stochastiques de sélections sont moins
sélectives et ont pour but de préserver des solutions ayant une « médiocre adéquation » afin d’éviter une
convergence vers un optimum local.
Reproduction L’étape suivante consiste à construire un nouvel ensemble de solutions à partie de l’en-
semble des solutions venant d’être sélectionné. Des nouvelles solutions peuvent être engendrées à partir de
solutions courantes par deux techniques, soit par le croisement d’une paire de solutions, soit par la mutation
de deux solutions.
Croisement Une paire de solutions parmi les solutions précédemment est sélectionnée. Chacune des
solutions est en fait un vecteur de bits (1 b1 , . . . ,1 bn ) et (2 b1 , . . . ,2 bn ). Nous choisissons au hasard un point
de coupure k tel que k ≥ 1 et k < n. Un premier descendant des solutions (1 b1 , . . . ,1 bn ) et (2 b1 , . . . ,2 bn )
est construit en concaténant aux k premiers bits de la première solutions les k−1 derniers bits de la seconde
solution. De même un deuxième descendant en concaténant aux k premiers bits de la première solutions
les k − 1 derniers bits de la seconde solution. Au final la paire de solutions s’écrit comme suit :
(1 b1 , . . . ,1 bk ,2 bk+1 , . . . ,2 bn ) et (2 b1 , . . . ,2 bk ,1 bk+1 , . . . ,1 bn )
Mutation La mutation standard dans le cadre d’un algorithme génétique consiste en la probabilité
qu’un bit appartenant à une séquence de bits représentant une solution possible puisse changer d’état,
c’est-à-dire passer de zéro à un ou passer de un à zéro. La méthode standard consiste à générer une variable
aléatoire pour chacun des bits dans une séquence. Cette variable aléatoire va permettre de déterminer si le
bit doit être modifier ou non.
Terminaison Le processus générationnel continue tant qu’une condition de terminaison n’est pas at-
teinte. Les conditions de terminaison sont plus diverses et parmi les conditions de terminaisons les plus
courantes nous pouvons citeră :
– Une solution vérifie un critère d’adéquation
– Le nombre maximal d’itérations est atteint
– Le temps d’exécution maximal est atteint
– La qualité des meilleures solutions a atteint un plateau et les itérations successives ne semblent plus
produire de meilleurs résultats.
Bien entendu, ces conditions de terminaisons peuvent être combinées entre elles.
2
Description de l’algorithme en pseudo-code
Sélection la population initiale \\
Repeat \\
Sélectionne une partie de la population en fonction de leur adéquation
Sélectionne les paires des meilleures solutions pour construire de \\
nouvelles solutions. \\
Produit une nouvelle génération en combinant les paires des meilleures \\
solutions et en introduisant des mutations. \\
Until la condition de terminaison est vérifiée