3
2
21
21
pp
enf
pp
enf
yy
y
xx
x
+
=
=
r
Mutation
L’opération de mutation permet à l’algorithme de générer des solutions originales dans le domaine des solutions.
Afin de ne pas provoquer une convergence trop lente, l’opération de mutation ne s’effectue sur un paramètre
qu’avec une probabilité fixée à Pmut.
La mutation s’effectue simplement en utilisant une variable aléatoire
ε
comprise entre -1 et 1.
1,1, −∈+=
εε
avecXX
mut
Cependant cette méthode permet au paramètre d’avoir des valeurs inférieures ou supérieures aux bornes [0,1]. Pour
éviter ce désagrément, le coefficient ε sera multiplié par un facteur de distance α variant entre 0 et 1. Ce facteur de
distance est calculé selon la distance minimale qui existe avec l’une des bornes :
),min(
21
XBBXd −−=
Dans le cas de l’algorithme, les bornes étant fixées à 0 et 1 :
)1,min( XXd
La valeur maximale ou minimale que peut avoir ε est d, ce qui amène à dire que α = d.
Sélection
La sélection des individus va se baser selon deux principes :
− Récupérer les meilleurs individus
− Diversifier au maximum les solutions
Lorsque l’on travaille avec plusieurs fonctions d’évaluation proposant un compromis entre-elles, il n’existe pas de
solution optimale répondant à toutes les fonctions d’évaluation (voir T.42 du cours). Afin de récupérer les meilleurs
individus, un classement par rang de non-dominance est nécessaire. La récupération des individus se fait rang par
rang de manière à recomposer une nouvelle population de N individus. Cependant, arrivé au dernier rang à ajouter,
il arrive souvent que celui-ci soit trop grand pour terminer la composition de la population finale. Un nouveau
facteur de décision intervient pour obtenir les individus les plus intéressants, c'est-à-dire ceux qui permettent de
diversifier les solutions. La méthode permettant d’évaluer cette diversification consiste à calculer la distance qui
existe entre les individus voisins dans le rang de non-dominance au sein du domaine des solutions. Il ne reste alors
qu’à récupérer les individus avec les distances les plus élevées.
Implémentation sur Matlab de l’algorithme génétique :
Structure du programme
Le programme est écrit sur Matlab et composé par une série de fichiers. Seuls deux de ces fichiers, c'est-à-dire
GA.m et evaluationFonction.m sont à modifier pour une simple utilisation du programme, mais rien n’empêche
une modification des autres fichiers pour améliorer les performances de l’algorithme. Celui-ci n’est qu’une version
non optimale au niveau du code, mais permet déjà d’obtenir de très bons résultats en des temps raisonnables.
Le schéma ci-dessous regroupe les fichiers utilisés ainsi que les liaisons entre-eux.