Académique Documents
Professionnel Documents
Culture Documents
Cours Algorithmes Genetiques
Cours Algorithmes Genetiques
2003-2004
S.ROBERT
Sommaire
A. Définition
Il est facile d transformer une maximisation en une minimisation et vice versa par :
Maximisation de f Minimisation de -f
Catégorie:
2 Minima locaux
et Robustesse 0.5
0
Minimum global
-0.5
-0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2
x
3 grands types de méthodes d’exploration
1 Méthodes énumératives
r
On note les différentes valeurs prises par f pour chaque point x ={ x1, x2, …xN } compris dans un
espace fini, ou infini mais discrétisé. Puis, on extrait la valeur qui correspond au minimum de f.
Résolution des équations imposées par les conditions d’optimalité du premier et du second ordre.
x k 1 = x k + αk dk
+ dk représente la direction de la recherche
αk >0 un scalaire choisi tel que : f(xk+1) < f(xk).
Variantes de la méthode:
Méthode des plus fortes pentes. αk est choisi suivant une minimisation unidimensionnelle:
g(α k ) = f (x k − α k ∇f (x k ))
Méthode du gradient conjugué (plus rapide). Les directions de recherches ne sont plus
orthogonales mais conjuguées entre elles. La nouvelle direction dk est donnée par:
∇f(x k +1 )T ∇f(x k +1 )
d k 1 = -∇f (x k 1 ) + βk d k avec βk =
+ +
(Fletcher et Reeves)
∇f(x k )T ∇f(x k )
Toutefois le matrice H est très longue à calculer. Certaines méthodes la construise donc itérativement.
C’est la méthode BFGS ( Broyden-Fletcher-Goldfarb-Shanno):
qk H −1 s k
k
( ) avec φk ∈ [0,1] et v k = −
T
−1k k −1k k
H s H s qkq kT kT k
q s
T k
s k H −1 s k
+ φk s k H −1 s k v k v k
k +1 k T T T
H −1 = H −1 − +
kT
s H s −1k k kT k
q s
et sk=xk+1-xk=αkdk et qk=∇f(xk+1)-f(xk)
Elles explorent l’ espace de recherche dans des directions choisies aléatoirement en mémorisant le
meilleur élément rencontré à chaque itération.
Conclusion
Toutes les méthodes présentées n’offrent aucune garantie de trouver le
minimum global dans un délais raisonnable: Elles ne sont donc pas robustes.
Toutefois, elles ne sont pas inutiles. Elles ont déjà fait leurs preuves pour un
certain nombre de problèmes spécifiques. Leur rapidité, pour la plupart, n’est
plus à démontrer.
Cependant, lorsqu’on s’attaque à des problèmes plus physiques ou plus proche de
la « réalité » à savoir multidimensionnel, multimodal, discontinue, etc…
d’autres méthodes sont nécessaires.
S.Robert algorithmes génétiques 8
II. Présentation des A.G.
Principe de fonctionnement:
« Ils utilisent un choix aléatoire comme outil pour guider une recherche hautement intelligente »
(Goldberg)
• Les A.G. sont des méthodes qui permettent à une population de solutions (appelées individus)
d’é voluer par l’ intermédiaire d’ un certain nombre d’ opérateurs vers un état qui optimise l’ ensemble
de leur « aptitude » (ou fonction coût notée F).
• Cette évolution est fondée sur les mécanismes de la sélection naturelle et de la génétique: elle
repose, à la fois sur les principes de survie des structures les mieux adaptées, et sur les échanges
d’ information pseudo-aléatoire entre individus.
Chaînes artificielles
(Chromosomes)
Individu
Ils ne travaillent pas sur un point unique mais sur un ensemble de solutions potentielles .
L’exploration est dite « aveugle » car les A.G. n’utilisent que la valeur de la fonction f (et
pas d’autres informations supplémentaires comme la dérivée).
L’évolution des individus est réalisée par des opérateurs stocha stiques et non déterministes.
Les A.G ne donnent pas une solution unique mais un ensemble de solutions.
Mêmes les problèmes à variables dépendantes (problème d’épistasi e), insolvables par des
méthodes classiques, peuvent être résolus si la dépendance est faible. (Sinon, il ne reste plus
que les méthodes aléatoire…)
Le principal inconvénient des A.G. est le temps de recherche qui peut être long mais ceci au prix
d’une redoutable efficacité…
Notation (rappel):
r r Codage des N paramètres en individus I
On cherche x qui minimise f (x)
r
avec x = {x1 , x 2 ,..., x N } Création d’une population initiale de Nipop individus I
La sélection
Nouvelle génération de Npop Individus
Le croisement
La mutation non test oui
convergence Arrêt de l’algorithme
Représentation et définition
r
N : Nombre de paramètres décrivant le problème représenté par le vecteur x = {x1 , x 2 ,..., x N }
r
Individu : structure qui contient, en langage codé, une valeur de x
Individu I = x1 x2 xi … xN-1 xN
r
Evaluation d’un individu : F(I) = F(x) = f (x1 , x1 ,...x N )
Discrétisation
Codage binaire
Le codage/décodage pour chaque paramètre xi variant de xi0 a xih, s’effectue en plusieurs étapes:
C. Population initiale
Etape importante : Le choix des individus influe sur la rapidité de convergence vers
l’optimum global.
D. Fonction d’évaluation
2 Cas possibles:
r r r r r r
F(x) = Cmax − f (x) quand f (x) < Cmax F(x) = f (x) + Cmin quand f (x) + Cmin > 0
r r
F(x) = 0 sinon F(x) = 0 sinon
E. Sélection et reproduction
Cette étape est bien entendu précédée de l’étape d’ évaluation des individus composant la population.
La sélection s’effectue sur un ensemble d’individus appelé reproducteur qui est composé:
Considérons l’ensemble des 6 individus ci -dessous triés par ordre décroissant de leurs évaluations:
n° individu évaluation
1 00000010 50
2 10101010 35
3 11110101 21 Nrepr
4 01011000 18
5 10010011 10
6 00111110 2
Roue de loterie biaisée (roulette wheel): elle repose sur l’idée suivante:
Un individu avec une forte évaluation a une grande chance d’être sélectionné alors qu’un
individu avec un plus faible coût en a moins.
∑n
n =1
n
Puis les différentes probabilités cumulées: Pc = ∑P j
j=1
n° individu évaluation Pn Pc
1 00000010 50 0,2857 0,2857
2 10101010 35 0,2381 0,5238
On a donc le tableau suivant: 3 11110101 21 0,1905 0,7143
4 01011000 18 0,1429 0,8571
5 10010011 10 0,0952 0,9524
6 00111110 2 0,0476 1
Ensuite, un nombre aléatoire q compris entre 0 et 1 est tiré. On choisit alors le premier
individu en partant du haut qui possèdent une Pc supérieur à q.
Par exemple: Pour sélectionner un couple, on tire 2 nombres aléatoires: 0.15 et 0.60
Individus sélectionnés: 1 et 3
∑ F(I ) p
n p =1
Puis les différentes probabilités cumulées: Pc = ∑P j
j=1
n° individu évaluation Pn Pc
1 00000010 50 0,3676 0,3676
2 10101010 35 0,2574 0,625
On a donc le tableau suivant: 3 11110101 21 0,1544 0,7794
4 01011000 18 0,1324 0,9118
5 10010011 10 0,0735 0,9853
6 00111110 2 0,0147 1
Ensuite, un nombre aléatoire q compris entre 0 et 1 est tiré. On choisit alors le premier
individu en partant du haut qui possèdent une Pc supérieur à q.
Par exemple: Pour sélectionner un couple, on tire 2 nombres aléatoires: 0.15 et 0.60
Individus sélectionnés: 1 et 2
On prend de façon aléatoire un petit nombre d’individus (général ement 2) dans le groupe des
reproducteurs et on en extrait celui dont l’évaluation est la pl us faible.
Par exemple: Pour sélectionner 2 parents, on tire 2 couples de nombres aléatoires compris entre
1 et 6 : {1 , 3} et { 3 , 4}
Pas de nécessité de tri Combiné avec une sélection par seuil Gain de temps
Evite l’émergence des modes
F. Croisement
Définition : C’est la création de 2 enfants à partir d’un couple de 2 indi vidus appelés parents.
But : Enrichir la diversité de la population en utilisant l’informa tion génétique donnée par les
parents. C’est la première voie d’exploration de la surface d’erreur.
Principe : On choisit un nombre aléatoire appelé point de croisement compris entre 1 et Nbit-1 et
on échange les sous-chaînes terminales.
Croisement
011100110101010 011000110101010
Enfant 1 Enfant 2
G. Mutation
Définition : C’est la transformation d’un individu par modification d’un d e ces gènes.
But : C’est la deuxième voie d’exploration. Elle permet à l’A.G de ne pas converger trop
rapidement et donc de « s’enliser » autour d’un minimum local en explorant une région de
l’espace nouvelle.
Principe : Elle consiste à échanger un bit donné de 0 à 1 ou vice versa. Pour cela, on définit une
probabilité pm comme la probabilité qu’un bit subisse une mutation. Ainsi, on g énère
aléatoirement pm×Npop×Nbit couples de points appelés points de mutation définissant
respectivement l’ individu et le bit à muter.
Mutation
On a vu qu’à chaque itération, on crée une nouvelle population à l’aide des trois opérateurs
(sélection, croisement et mutation). Il existe plusieurs façons de procéder : Nous
présenterons ici 2 méthodes:
Modèle standard
On introduit une probabilité de croisement pour un individu noté pc
Ainsi, seuls pc × Npop individus vont être sélectionnés pour participer à un croisement.
Pour cela, on tire aléatoirement pour chaque individu un nombre r compris entre 0 et 1. Si ce
dernier est inférieur à pc l’individu est sélectionné pour le croisement
Evaluation
par F des Npop r > pc Population
Sélection de
individus intermédiaire Mutation
Npop individus
+ Npop(1-pc) de Npop inidividus
Tri individus
r < pc
Population
de la
Génération
Croisement pc × Npop enfants suivante
Modèle élitiste
On décide de préserver le ou les meilleurs individus de chaque génération.
Il existe plusieurs modèles possibles suivant le nombre d’indivi dus retenus (le plus
simple étant bien entendu de conserver le seul meilleur individu au cours des
générations) .
N pop
On ne conserve que les meilleurs
2
Evaluation par F N pop
Population
des Npop individus Groupe de 2
intermédiaire Mutation
+ reproducteurs individus de Npop inidividus
Tri
Sélection de
N pop couples
Population
4 de la
Génération
N pop suivante
Croisement enfants
2
Stratégie élitiste augmente considérablement les performances de l’AG pour certaines classes de
fonctions et s’avère décevante pour d’autres recherche locale accentuée au détriment d’une
exploration global des génotypes
S.Robert algorithmes génétiques 27
I. Condition de terminaison
Ces méthodes conservent des traces statistiques des différentes générations (moyenne des évaluations
d’une population, performance du meilleur individu de chaque gén ération, écart type etc…) et s’en
servent pour le test d’arrêt.
Par exemple: On mesure les progrès réalisés par les individus sur un nombre prédéfini g de
générations que l’on compare à une valeur ε fixée à l’avance.
L’A.G. s’arrête lorsque le nombre d’allèles convergents noté Nac atteint un certain pourcentage q
du nombre total N d’allèles.
Enoncé du problème:
2π
f (x) = 20 + x1 sin( x1 ) pour −2 ≤ x ≤ 8
3
28
26
Maximum de F
24
22 =
F=f
20 Maximum de f
18
16
14
12
-2 -1 0 1 2 3 4 5 6 7 8
S.Robert x algorithmes génétiques 31
-2<x<8 et p=0.01
l Exemple d’individu:
l=10 et = 1000
p
1101011010 Code la valeur 6.39
512=29<1000<210=1024
Nbit=10
0 est représenté par l’individu : 0011001100
pm×Npop×Nbit =0.05×8×10=4
mutations par génération
Population initiale:
représentation de la population initiale
Représentation binaire des individus:
28
0 1 0 0 0 1 0 1 0 1
26
0 0 1 0 1 1 0 1 0 0
24
1 1 0 0 0 0 1 0 1 1 22
1 0 1 1 0 1 1 1 0 1
F
20
0 1 1 0 0 0 0 1 0 1 18
1 0 1 1 1 0 0 1 0 0 16
1 1 1 1 1 0 0 1 0 0 14
12
0 1 1 0 1 0 0 0 1 0 -2 0 2 4 6 8
x
génotype:
0.7135 -0.2340 5.6186 5.1662 1.8118 5.2403 7.7451 2.0886
phénotype:
20.7114 20.1101 15.9744 14.9131 18.8993 14.7608 16.1967 18.0295
croisements:
0 1 0 0 0 1 0 1 0 1
Le chiffre 3 est tiré
0 1 0 0 0 1 0 1 0 1 4 nouveaux
enfants
sont créés
Le chiffre 9 est tiré 0 1 1 0 0 0 0 1 0 0
0 0 1 0 1 1 0 1 0 1
On ajoute au groupe de reproducteurs les 4 enfants créés auxquels on associe leurs efficacités:
N° Individu Evaluation
1 0 1 0 0 0 1 0 1 0 1 20.7114
2 0 0 1 0 1 1 0 1 0 0 20.1101
3 0 1 1 0 0 0 0 1 0 1 18.8993
4 0 1 1 0 1 0 0 0 1 0 18.0295
5 0 1 0 0 0 1 0 1 0 1 20.7049
6 0 1 0 0 0 1 0 1 0 1 20.7049
Enfants
7 0 1 1 0 0 0 0 1 0 0 18.9683
8 0 0 1 0 1 1 0 1 0 1 20.1072
Mutation:
N° Individu Evaluation
5 1 1 0 0 0 1 0 1 0 1 16.7654
3 0 0 1 0 0 0 0 1 0 1 20.6961
2 0 0 0 1 1 1 0 1 0 0 20.8406
0 0 0 1 1 1 0 1 0 0 28
0 1 0 0 0 1 0 1 0 1 26
0 1 0 0 0 1 0 1 0 1 24
0 0 1 0 0 0 0 1 0 1 22
0 0 1 0 1 1 0 1 0 1 20
F
0 1 1 0 0 0 0 1 0 0 18
0 1 1 0 1 0 0 0 1 0 16
1 1 0 0 0 1 0 1 0 1 14
12
-2 0 2 4 6 8
x
génotype:
-0.8661 0.7077 0.7077 -0.6999 -0.2307 1.7928 2.0860 5.7126
phénotype:
20.8406 20.7114 20.7049 20.6961 20.1072 18.9683 18.0295 16.7654
28 28
26 26
24 24
22 22
20
F
20
F
18 18
16 16
14 14
12 12
-2 0 2 4 6 8 -2 0 2 4 6 8
x x
28 28
26 26
24 24
22 22
20 20
F
18 18
16 16
14 14
12 12
-2 0 2 4 6 8 -2 0 2 4 6 8
x x
1 1 0 1 1 1 1 1 1 1 28
1 1 0 1 1 1 1 1 1 1 26
24
1 1 0 1 1 1 1 1 1 1
22
1 1 0 1 1 1 1 1 1 1
20
F
1 1 0 1 1 1 1 1 1 1 18
1 1 0 1 1 1 1 0 1 1 16
1 1 0 1 0 1 1 1 0 0 14
1 0 0 1 1 1 1 1 0 1 12
-2 0 2 4 6 8
x
génotype:
6.7488 6.7488 6.7488 6.7488 6.7488 6.7097 6.4066 4.2268
phénotype:
26.7488 26.7488 26.7488 26.7488 26.7488 26.6858 24.8203 22.2888
Génotype
Evaluation
27
26
25
1 20.8406 -0.8661
24
3 26.4697 6.6413
23
F
10 26.7057 6.7195
22
14 26.7229 6.7292
21
18 26.7488 6.7488 moyenne des évaluations d'une population
20 mémorisation du meilleur individu
Enoncé du problème:
On se propose maintenant de déterminer le maximum
de la fonction f suivante dépendante de 2 paramètres x1 et x2:
2π
f (x1 , x 2 ) = 20 + x1 sin( x1 ) + x 2 sin(4πx 2 ) pour −2 ≤ x1 ≤ 8 et 4 ≤ x 2 ≤ 6
3
6
10 20 10 1 10
20 2 1 0
15 15 25 0 5 2 15
5.8 30 25 30 30 5 20
25
25
25 30 20
25 20 25
5.6 20 15
20 15 15
15
15
10
10
10
15
15
5.4
15
20
20 25
20
25
5.2
20
20
25
25
20
15 15
x2
5
20
20
20
20
4.8
15
15
4.6
20
20
20
25
25
25
25
20
15
4.4
25
15
20
15
4.2
25
20
20
15
20
15 15
4
-2 -1 0 1 2 3 4 5 6 7 8
x1
S.Robert algorithmes génétiques 43
Résultat:
34
Génération
Evaluation
Génotype 32
x1 x2
30
1 29.0895 6.6510 4.0549
28
F
2 30.2355 6.6706 4.1647
4 30.6087 6.6510 4.1176 26 moyenne
7 30.6786 6.6706 4.1176 meilleur individu
24
8 30.8488 6.7488 4.1176
10 31.3578 6.7488 4.6196 22
0 5 10 15 20 25 30
11 31.8656 6.7488 5.1216
N° de la génération
14 32.2268 6.7488 5.6078
15 32.3713 6.7488 5.6235 L’optimum global est atteint au bout de 15 générations
Conclusion:
Les A.G. trouvent rapidement l’optimum global alors que les méthodes classiques
sont plutôt efficace pour affiner une solution dont on connaît la localisation.
Le principe est le même que le croisement exception faite du découpage de la chaîne initiale qui
s’ effectue maintenant en 3 parties.
Deux points de croisement aléatoires compris entre 1 et (Nbit-1) sont sélectionnés délimitant ainsi ces
3 zones puis un nouveau point compris entre 1 et 3 indique les sous-chaînes qui vont s’é changer.
Croisement à deux
points
011000110101010 011000110101010
Enfant 1 Enfant 2
B. Codage de Gray
Distance de Hamming da: nombre de bits par lesquels deux chromosomes diffèrent. Ici, da= 4
Le codage de Gray redéfinit les nombres binaires de sorte que la distance de Hamming entre deux
nombres consécutifs soit de 1.
Décimal Binaire Gray
1 1 1 1
0 0000 0000
1 0001 0001
1 0
Code binaire
Code Gray
3 0011 0010
Code Gray
4 0100 0110
XOR 0 5 0101 0111 XOR 0
0 6 0110 0101 0
7 0111 0100
0 8 1000 1100 0
0 XOR 9 1001 1101 0 XOR
10 1010 1111
La convergence est facilitée
S.Robert algorithmes génétiques 48
V. Améliorations de la technique de base
Une solution consiste à réajuster la fonction d’adaptation. La s élection ne s’opèrera donc plus
sur la fonction brute mais sur l’image de celle -ci après transformation.
∑ F(I)
N pop
F '
moy = Fmoy =
N pop
Contrôle du nombre de copie pour le meilleur individu :
'
Fmax = Cmult Fmoy 1.2 < Cmult < 2 Pour des petites populations
' Fmax
Fmin
Fmin Fmoy Fmax Fmin Fmoy
(Cmult=2)
Risque de valeur négatives
'
Fmax = 2 × Fmoy
'
'
Fmoy
Vers la fin de l’exécution,
• Fmoy est très proche de Fmax Fmin
• Présence de très mauvaises valeurs d’adaptations '
Fmin Fmoy Fmax
1.2
Effet nul 0.6
k=0.3
k=1
F'
1.1 0.5
k
1 0.4
D. Opérateurs de réarrangements
Introduits pour résoudre les problèmes d’optimisation combinatoi re
Inversion simple
Deux lieux d’inversion sont choisi au hasard entre 1 et N puis les deux
extrémités de cette partie coupée échangent leur place mais chaque
allèle garde la même signification c.a.d se rapporte toujours à la
même variable
Par exemple, si on numérote les allèles d’une même chaîne (représentation étendue) puis on
applique l’inversion entre les positions 4 et 7, on obtient:
1 2 3 4 5 6 7 8 9 1 2 3 4 7 6 5 8 9
0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0
Adaptation ne dépend pas du locus Opérateur sans effet immédiat sur l’adaptation
Opérateur qui permet de trouver le bon
Adaptation dépend du locus
arrangement dans les chaînes
Par exemple, prenons le cas de deux chaînes A et B dont l’une a subit une i nversion
Croisement
Point de croisement: 6
1 2 3 4 5 6 7 8 9 Inversion 1 2 3 4 7 6 5 8 9
1 2 3 4 7 6 7 8 9
0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0
0 1 1 0 1 1 0 1 1
(entre 4 et 7)
Chaîne A
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 5 8 9
1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0
Chaîne A
Tous les gènes ne sont plus représentés dans une même chaîne:
le calcul de l’adaptation est alors impossible!
Solution: seuls les chromosomes homologues sont autorisés au croisement (Bagley) : inefficacité !
Autre solution: création d’un opérateur unique qui combine les fonctions de l’ inversion et
du croisement
S.Robert algorithmes génétiques 55
On définie une section assortie comprise entre deux points de croisement choisis aléatoirement.
Puis on effectue un croisement grâce à des opérateurs d’échange position par position.
Prenons l’exemple de 2 chaînes A et B dont on ne représentera que les noms des allèles les composant:
1 4 6 5 10 3 7 8 9 2
On remplace les
Enfant 1 doublons par la
valeur inverse de
9 8 7 4 5 6 10 3 5 1
l’échange
Enfant 2
1 5 3 4 2 6 7 8 9 10 XXX456XXXX 2 6 4 1 9 8 7 5 10 3
Chaîne A Chaîne A’
7 8 9 10 1 5 3 4 2 6
9 8 7 5 10 3 2 6 4 1 X X X 5 10 3 X X X X
Chaîne B Chaîne B’
7 10 3 4 5 6 2 1 9 8 Suppression des
Enfant 1 Recopiage de la chaîne doublons
2 1 9 8 7 10 3
4 2 6 5 10 3 7 8 9 1 à partir du 2nd point 7891426
Enfant 2
Préserve l’ordre relatif des allèles
S.Robert algorithmes génétiques 57
Réalise une recombinaison sous la contrainte que chaque allèle et chaque locus
proviennent d’un parent ou de l’autre jusqu’à ce que l’on ait ré alisé un cycle.
Ensuite, les allèles sont respectivement recopiés pour compléter la chaîne.
A. Schéma de principe
Définition de la fonction f d’évaluation
Définition des N paramètres
Codage décimal:
Individu I = x1 x2 xi … xN-1 xN
C. Population initiale
Pour cela, on construit N vecteurs colonnes composés de Npop valeurs comprises entre xio et xih.
( xio et xih étant respectivement les limites inférieurs et supérieurs relatif au domaine de variation
du paramètre xi.)
D. Croisement
Parent 1 Parent 2
Pour le parent 1: x11 x12 x13 x14 x15 x16 x17 x21 x22 x23 x24 x25 x26 x27
1-2 Enfant 1
2-4 Enfant 2
4-7 Enfant 1
x11 x12 x23 x24 x15 x16 x17 x21 x22 x13 x14 x25 x26 x27
Enfant 1 Enfant 2
Croisement uniforme
Parent 1 Parent 2
x11 x12 x13 x14 x15 x16 x17 x21 x22 x23 x24 x25 x26 x27
x11 x22 x23 x14 x15 x16 x27 x21 x12 x13 x24 x25 x26 x17
Enfant 1 Enfant 2
On combine les valeurs des paramètres des 2 parents pour construire un nouveau point.
Pour le paramètre xi, on a:
β : paramètre compris entre 0 et 1
x i _ enfant1 = β.x1i + (1 − β).x 2i
xi_enfant1 : Valeur du paramètre xi pour l ’ enfant 1
x i _ enfant 2 = β.x 2i + (1 − β).x1i
x1i : Valeur du paramètre xi pour le parent 1
Cette modification des valeurs des paramètres peut s’effectuer sur tous les gènes ou seulement sur
une partie. Par exemple, si on introduit aléatoirement un point de croisement, le changement est
effectué seulement pour tous paramètres situés à gauche ou à droite de ce point.
On crée 3 enfants à partir de 2 parents dont les paramètres varient comme suit :
L ’enfant qui possèdent des valeurs de paramètre extérieur au doma ine est éliminé au profit des 2
autres. Sinon, on ne conserve que les deux meilleurs.
Si les valeurs créées sortent du domaine Création d ’un nouvel enfant à partir d ’un
autre paramètre β
S.Robert algorithmes génétiques 64
VI. L ’A.G. à valeurs continues D. Croisement
Q=4 x11 x12 x13 xQ x15 x16 x17 x21 x22 x23 xQ x25 x26 x27
x11 x12 x13 xQ x25 x26 x27 x21 x22 x23 xQ x15 x16 x17
Enfant 1 Enfant 2
E. Mutation
Mutation uniforme
Nombre de gènes qui vont subir la mutation: pm×Npop×N
La valeur du gène sélectionné au hasard sera remplacée par une nouvelle valeur prise
aléatoirement dans le domaine de variation du paramètre concerné.
Par exemple, le 7ème gène est sélectionné et 2<x7<10
Individu avant mutation Individu après mutation
1.2 3.2 5.1 1.0 4.2 1.1 8.5 1.2 3.2 5.1 1.0 4.2 1.1 2.2
Mutation au bornes
La valeur basse du domaine si r<0.5
La valeur du gène sélectionné au hasard sera remplacée par: (r: variable aléatoire compris entre 0 et 1)
La valeur haute du domaine si r ≥ 0.5
Par exemple, le 7ème gène est sélectionné et 2<x7<10 et r=0.8
Individu avant mutation Individu après mutation
1.2 3.2 5.1 1.0 4.2 1.1 8.5 1.2 3.2 5.1 1.0 4.2 1.1 10
A. Définition
Individu I Schème S
Distance entre la dernière et la première position fixée par des 0 ou des 1 dans une chaîne
Position 2 – position 1
Par exemple:
B. Propriétés
(k+1)Nbit schèmes différents à partir d’une chaîne de longueur Nbit et pour un alphabet de
cardinal k
Parallélisme implicite
A chaque génération un certain nombre de schèmes compris entre 2Nbit et N pop ×2 Nbit sont manipulés
Or, seul, environ N3pop sont traités de manières utiles Estimateur O(N 3pop ) de Holland
( Nombre d’entités traitées est supérieur à Npop !!! )
Un schème subit plusieurs modification au cours des générations suivant ces caractéristiques.
Considérons un schème S particulier possédant m(S,t) exemplaires à la génération t :
Notons F = ∑
F(I)
l’adaptation moyenne de la population
N pop
F(S)
m(S, t +1) = m(S, t) ×
F
Les schèmes qui seront favorisés pour la sélection sont ceux vérifiant :
F(S) > F
( Par exemple si F(S) = F + cF croissance de type exponentielle )
I peut être
Individu I est choisi pour représenté par:
effectuer un croisement :
S1 = • 1 • • • • 0 Destruction probable: δ grand
I=0111000
S2 = • • • 1 0 • • Bonne chance de survie: δ faible
δ(S)
Probabilité de destruction et de survie: pd = , ps = 1 − p d
N bit − 1
δ(S)
ps ≥ 1 - p c ×
N bit - 1
Les schèmes qui ont le plus de chance de survie sont ceux possédant une
longueur utile relativement courte
(1 - pm )
o(S)
; 1 - pm ×o(S) pour pm = 1
Les schèmes qui ont le plus de chance de survie sont ceux possédant un
ordre faible
f (H) δ(S)
m(S, t + 1) ≥ m(S, t) × 1 − p c [1 − o(S) × p m ]
f N bit − 1
f(H) δ(S)
m(S, t +1) ≤ m(S, t) × 1 - p c - o(S) ×p m
f N bit - 1
IX. Applications
A. Optimisation de fonctions
IX. Applications
Joueur 2 R = 6 : Récompense
(C)oopère (T)rahit O = 0: Orange
T = 12 : Tentation
Joueur 1
(C)oopère RR OT
(T)rahit TO PP P = 2 : Pénalité
Ce jeu devient intéressant lorsqu’on joue plusieurs parties avec le même adversaire. Le but
étant de guider les futures décisions afin de contrer sa stratégie.
Ce problème a suscité l’intérêt des théoriciens des jeux depuis plusieurs années ( tournois
informatiques)
Stratégie la plus performante: « Œil pour pour œil »
La décision dépend des choix des adversaires pendant les 3 derniers tours.
P P P : se code en 3 × 40 + 3 × 41 + 3 × 42 = 3 + 12 + 48 = 63
Par exemple:
P O T : se code en 1× 40 + 2 × 41 + 3 × 42 = 1 + 8 + 48 = 57
S.Robert algorithmes génétiques 77
Définition d’une stratégie à partir des trois derniers tours sou s la forme d’une chaîne
binaire de 64 bits composée de C (pour coopère) et de D (pour trahit)
64 bits
Problème concernant le début de la partie Ajout de 6 bits pour les prémisses à la partie
Détermination de l’évaluation d’un individu (chaîne de 70 bits) :
Axelrod a mis au point un environnement de 8 joueurs censés représenter 98% des
comportements observés dans les tournois. Chaque chaîne rencontre les 8 joueurs dans une
partie de 151 tours. L’évaluation est déterminée en fonction des points marqués par les 8
joueurs en procédant, par exemple, à une moyenne pondérée sur les 8 joueurs.
Les A.G. arrivent ainsi globalement à trouver des stratégies qui battent « œil pour œil »
S.Robert algorithmes génétiques 78
IX. Applications
Enoncé du problème:
Un voyageur de commerce hypothétique doit réaliser une tournée complète d’un ensemble
de villes donné tout en minimisant la distance totale parcourue. Ce dernier ne connaît pas
la distance qu’il parcourt jusqu’à ce qu’il il ait réalisé un to ur complet.
Codage du problème: Η
Y
4 Η
Chaque ville est représentée par son numéro. Η 8
Η 7
Par exemple, pour un problème comprenant 8 1 Η
Η 6
villes, un parcours possible peut être représenté 3
par la chaîne suivante: Η Η
2 5
23165847
X
Le but étant de trouver la bonne permutation des villes correspondante au trajet minimal
Problème extrêmement difficile à résoudre Temps de recherche généralement exponentiel
C’est un problème d’optimisation combinatoire utilisant des opér ateurs spécifiques (CPA, CO etc)