Systèmes Intelligents
Chapitre 7: Techniques évolutionnaires.
L’évolution peut-elle être intelligente?
Intelligence
La capacité d’un système à adapter son comportement à
un environnement en changement.
Les calculs évolutionnaires simulent l’évolution sur
un ordinateur.
Le résultat est une série d’algorithmes d’optimisation,
habituellement basé sur un ensemble de règles simples.
L’optimisation améliore itérativement la qualité des
solutions jusqu’à ce qu’une solution optimale soit obtenue.
GIND5439 – Gabriel Cormier, Université de Moncton 2
Calcul évolutionnaire
Algorithme génétique
Stratégies évolutionnistes
Programmation génétique
On simule l’évolution en utilisant
Sélection
Reproduction
Mutation
Optimisation par essaim de particules
GIND5439 – Gabriel Cormier, Université de Moncton 3
compétition et sélection. Université de Moncton 4 . GIND5439 – Gabriel Cormier.Évolution naturelle Le 1er juillet 1858. mutation. Charles Darwin présente sa théorie d’évolution. Théorie de sélection naturelle de Weismann Concept de génétique de Mendel Néo-Darwinisme Basé sur les principes de reproduction.
GIND5439 – Gabriel Cormier. Université de Moncton 5 . 1989) Performance évolutionnaire Une mesure de la capacité d’un organisme à anticiper des changements dans son environnement. Mesure de la capacité de prédire des changements environnementaux et y réagir rapidement. (Hoffman. 1994). 1989) La qualité qui est optimisée dans la nature (Atmar.Évolution naturelle Qu’est-ce que l’évolution? Processus qui mène à la maintenance ou l’augmentation de la capacité d’une population à survivre et se reproduire dans un environnement spécifique (Hartl & Clark.
1932) Représente un environnement quelconque par un paysage. GIND5439 – Gabriel Cormier. Une population se déplace le long de la pente vers la crête pendant l’évolution.Évolution naturelle Topologie adaptive (Wright. Université de Moncton 6 . Une crête correspond à la performance optimisée d’une espèce. L’environnement change continuellement.
des lapins plus rapides veut dire que les renards doivent être plus rapides. GIND5439 – Gabriel Cormier. Université de Moncton 7 . En même temps. Des lapins lents et rapides s’entrecroisent. Ont une performance supérieure. Certains lapins lents survivent aussi. Au fil des ans la population entière de lapins devient plus rapide pour faire face aux changements dans leur environnement.Évolution naturelle Michalewicz (1996) Considère une population de lapins Certains lapins sont plus rapides que d’autres. La population s’adapte pour répondre aux défis environnementaux. Deux parents de performance supérieure: Il y a une bonne chance qu’une combinaison de leur gènes produiront un rejeton qui a une performance supérieure. L’environnement pourrait favoriser des lapins lents mais intelligents.
Simulation de l’évolution
Toutes les méthodes
Créer une population d’individus
Évaluer leur performance
Générer une nouvelle population à l’aide
d’opérateurs génétiques (sélection, reproduction,
mutation)
Répéter ce processus plusieurs fois
GIND5439 – Gabriel Cormier, Université de Moncton 8
Algorithme génétique
Classe d’algorithmes de recherche stochastiques
basés sur l’évolution biologique.
John Holland (1975), principal créateur
Les premiers algorithmes utilisaient des séquences
de bits; maintenant, des algorithmes avec du
codage réel existent.
Cependant, l’algorithme génétique codé binaire
demeure plus populaire, même si l’algorithme
génétique codé réel est plus performant.
GIND5439 – Gabriel Cormier, Université de Moncton 9
Algorithme génétique
Algorithme de Holland
Utilise une série d’étapes pour se déplacer d’une
population de « chromosomes » à une autre.
Ces chromosomes consistent en un nombre de
gènes, et chaque gène est une séquence de bits.
1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1
GIND5439 – Gabriel Cormier, Université de Moncton 10
GIND5439 – Gabriel Cormier. L’opérateur de mutation change la valeur des gènes de façon aléatoire. Université de Moncton 11 . Quand la reproduction a lieu. Au fil du temps les chromosomes moins performants disparaissent. L’opérateur de croisement échange des parties de deux chromosomes.Algorithme génétique Deux mécanismes sont le lien entre l’algorithme génétique et le problème à résoudre: Encodage Évaluation On utilise une mesure de la performance d’un chromosome (ou individu) pour faire la reproduction.
exchange parts of the two selected chromosomes and create two offspring With mutation probability pm.Algorithme génétique de base Start Generate Population of chromosomes of Size N : x.)…f(xn) Is the termination Yes condition satisfied ? Stop No Select a pair of chromosomes for mating With crossover probability pc.…xn Calculate fitness of each chromosome :f( x. randomly change the gene values in the two offspring chromosomes Place the resulting chromosomes in the new population No Is size of new population equal to N ? Yes Replace the current chromosomes population with new population GIND5439 – Gabriel Cormier. Université de Moncton 12 .
GIND5439 – Gabriel Cormier. Choisir la taille de la population. Étape 3: Générer aléatoirement une population de taille N. …. x2.xN. x1. la probabilité de croisement pc et la probabilité de mutation pm. Université de Moncton 13 . Étape 2: Définir une fonction objective pour mesurer la performance des individus. N.Algorithme génétique de base Étape 1: Représenter le problème comme un chromosome de longueur fixe.
Étape 6: On crée une paire de rejetons en appliquant les opérateurs génétiques: croisement et mutation.Algorithme génétique de base Étape 4: Calculer la performance de chaque individu: f(x1). …. Université de Moncton 14 . Les parents sont choisis avec une probabilité reliée à leur performance. Étape 5: Choisir une paire de chromosomes pour reproduction. f(xN). f(x2). GIND5439 – Gabriel Cormier.
et répéter le processus jusqu’à ce que la condition d’arrêt soit atteinte. Étape 10: Retourner à l’étape 4. Étape 9: Remplacer la population initiale (parents) par la nouvelle population (rejetons).Algorithme génétique de base Étape 7: On place les rejetons dans une nouvelle population. GIND5439 – Gabriel Cormier. Étape 8: Répéter l’étape 5 jusqu’à ce que la taille de la nouvelle population soit N. Université de Moncton 15 .
Université de Moncton 16 . Le nombre de générations peut varier beaucoup. on s’attend à trouver un ou plusieurs individus qui satisfont les critères d’évaluation. Les algorithmes génétiques utilisent une méthode de recherche stochastique. À la fin de toutes les générations.Algorithme génétique Chaque itération est appelée une génération. la performance d’une population peut demeurer fixe pour un certain nombre de générations avant qu’un individu plus performant apparaisse. de 50 – 500 typiquement. GIND5439 – Gabriel Cormier.
001. La valeur de la fonction objective est f(x) = 15x – x2. On peut donc construire un chromosome avec seulement 4 gènes: Entier Code binaire Entier Code binaire Entier Code binaire 1 0001 6 0110 11 1011 2 0010 7 0111 12 1100 3 0011 8 1000 13 1101 4 0100 9 1001 14 1110 5 0101 10 1010 15 1111 La taille de la population est N = 6.Algorithme génétique: exemple Calculer la valeur maximale de la fonction (15x – x2) quand x varie entre 1 et 15. Université de Moncton 17 . On suppose que x prend seulement des valeurs entières. La probabilité de croisement est pc = 0.7. GIND5439 – Gabriel Cormier. La probabilité de mutation est pm = 0.
2 X3 0001 1 14 6. Université de Moncton 18 . Nom du Séquence Entier Performance du Rapport de chromosome de bits chromosome performance.8 GIND5439 – Gabriel Cormier.Algorithme génétique: exemple On crée la population initiale. On aura 6 séquences de 4 bits choisies aléatoirement. % X1 1100 12 36 16.4 X5 0111 7 56 25.5 X2 0100 4 44 20.4 X4 1110 14 14 6. On calcule la performance de chaque individu.7 X6 1001 9 54 24.
5 X2: 20.5% 16.2 X3: 6.4% X5: 25.1 GIND5439 – Gabriel Cormier.3% 36.Algorithme génétique: exemple Pour faire la sélection d’individus. 100 0 X1: 16. on utilise la technique de la roue de roulette (Goldberg. Université de Moncton 19 .5 43. 1991).8% 49.7 X6: 24. Davis.2% 75.4% X4: 6. 1989.
un point de croisement où on brisera en deux les deux parents.Algorithme génétique: exemple Croisement On choisit. Pour notre exemple. GIND5439 – Gabriel Cormier. aléatoirement. Université de Moncton 20 . On échange les parties de ces individus. Si une paire des chromosomes n’ont pas de croisement. soit les 2 premiers bits. il y a alors clonage: les deux rejetons sont exactement pareils aux parents. Ceci crée deux nouveaux individus.
Algorithme génétique: exemple X6i 1 0 00 1 0 1 00 00 X2i X1i 1 11 00 00 0 11 11 11 X5i X2i 0 1 0 0 0 1 1 1 X5i GIND5439 – Gabriel Cormier. Université de Moncton 21 .
Le rôle est de garantir que l’algorithme de recherche ne reste pas prit dans un optimum local.01. La probabilité de mutation est faible en nature. L’opérateur de mutation varie un bit choisit aléatoirement (de 0 à 1 ou 1 à 0).Algorithme génétique: exemple Mutation La mutation représente un changement dans un gène. La mutation est un opérateur secondaire. Université de Moncton 22 . GIND5439 – Gabriel Cormier. La mutation peut se produire dans n’importe quel gène avec une possibilité quelconque. typiquement entre 0.001 et 0. et donc est maintenue faible dans les algorithmes génétiques.
Université de Moncton 23 .Algorithme génétique: exemple X6'i 1 0 0 0 X2'i 0 1 0 10 X1'i 1 1 1 1 1 1 X1"i X5'i 0 1 01 01 X2i 0 1 0 0 1 0 X2"i X5i 0 1 1 1 GIND5439 – Gabriel Cormier.
Algorithme génétique: exemple Crossover Generation i X1 i 1 1 0 0 f = 36 X6 i 1 0 00 1 0 1 00 00 X2 i X2 i 0 1 0 0 f = 44 X3 i 0 0 0 1 f = 14 X4 i 1 1 1 0 f = 14 X1 i 0 1 11 00 00 0 11 11 11 X5 i X5 i 0 1 1 1 f = 56 X6 i 1 0 0 1 f = 54 X2 i 0 1 0 0 0 1 1 1 X5 i Generation ( i + 1) X1 i+ 1 1 0 0 0 f = 56 Mutation X2 i+ 1 0 1 0 1 f = 50 X6' i 1 0 0 0 X3 i+ 1 1 0 1 1 f = 44 X2' i 0 1 0 0 1 X4 i+ 1 0 1 0 0 f = 44 X1' i 0 1 1 1 1 1 1 X1" i X5 i+ 1 0 1 1 0 f = 54 X6 i+ 1 0 1 1 1 f = 56 X5' i 0 1 1 0 1 0 X2 i 0 1 0 0 1 0 X2" i X5 i 0 1 1 1 Cycle GIND5439 – Gabriel Cormier. Université de Moncton 24 .
Algorithme génétique: exemple 60 60 f(x) 50 50 40 40 30 30 20 20 10 10 0 0 0 5 10 15 0 5 10 15 x x (a) Chromosome: position initiale. (b) Chromosome: positions finales. Université de Moncton 25 . GIND5439 – Gabriel Cormier.
Pour représenter les variables comme un chromosome. Université de Moncton 26 . on va concaténer les deux séquences de bits: 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 x y GIND5439 – Gabriel Cormier. y ) = (1 − x) e − (x − x − y ) e 3 3 où x et y varient entre -3 et +3.Algorithme génétique Supposons qu’on veut trouver le maximum d’une fonction de deux variables: 2 − x 2 −( y +1)2 − x2 − y 2 f ( x.
est divisé en deux séquences de 8 bits: 1 0 0 0 1 0 1 0 et 0 0 1 1 1 0 1 1 On convertit ensuite de binaire à décimal: 10001010 2 = 1× 27 + 0 × 26 + 0 × 25 + 0 × 2 4 + 1× 23 + 0 × 2 2 + 1× 21 + 0 × 20 = 138 et 001110112 = 0 × 27 + 0 × 26 + 1× 25 + 1× 2 4 + 1× 23 + 0 × 2 2 + 1× 21 + 1× 2 0 = 59 GIND5439 – Gabriel Cormier. On fait ceci en deux étapes: Un chromosome. Université de Moncton 27 . dans ce cas 16 bits.Algorithme génétique Choisir la taille de la population (ex. Calculer la performance de chaque chromosome. 6) et générer aléatoirement une population initiale.
il faut multiplier les résultats obtenus auparavant par 0.0235294 et soustraire 3.0235294) − 3 = 0.Algorithme génétique Il faut maintenant convertir ces valeurs à une valeur entre -3 et 3. Un bit représente une valeur de: ∆S 3 − (−3) 6 1bit = = = = 0.0235294 2 −1 n 2 −1 8 255 où ∆S représente l’intervalle des valeurs. Pour obtenir la valeur réelle de x et y.2470572 59 → (59)(0.6117654 GIND5439 – Gabriel Cormier. et n est le nombre de bits.0235294) − 3 = −1. 138 → (138)(0. Université de Moncton 28 .
7 et une probabilité de mutation de 0. dans ce cas-ci. On utilise. GIND5439 – Gabriel Cormier. L’algorithme génétique calculera 100 génération de 6 individus avant de s’arrêter. Il est pratique courante de spécifier le nombre maximal de génération.Algorithme génétique On utilise les valeurs décodées de x et y pour calculer la performance de l’individu. Ex: On décide que 100 générations est le maximum. une probabilité de croisement de 0. Université de Moncton 29 .001.
GIND5439 – Gabriel Cormier.Algorithme génétique Emplacement des chromosomes: population initiale. Université de Moncton 30 .
GIND5439 – Gabriel Cormier. Université de Moncton 31 .Algorithme génétique Emplacement des chromosomes: première génération.
GIND5439 – Gabriel Cormier. Université de Moncton 32 .Algorithme génétique Emplacement des chromosomes: maximum local.
GIND5439 – Gabriel Cormier.Algorithme génétique Emplacement des chromosomes: maximum global. Université de Moncton 33 .
7. Université de Moncton 34 .2 0.1 Best 0 Average -0.7 0. pm = 0.Algorithme génétique pc = 0.1 0 10 20 30 40 50 60 70 80 90 100 Generations Performance en fonction du nombre de générations: maximum local.5 0.6 0. GIND5439 – Gabriel Cormier.001 0.3 0.4 Fitness 0.
4 Average 0.8 1.01 1.Algorithme génétique pc = 0. GIND5439 – Gabriel Cormier.6 Best 0.0 0.7.6 1. Université de Moncton 35 .4 1.2 Fitness 1.2 0 10 20 30 40 50 60 70 80 90 100 Generations Performance en fonction du nombre de générations: maximum global.8 0. pm = 0.
8 0. GIND5439 – Gabriel Cormier.8 1.2 Fitness 1. pm = 0.0 0.4 1.4 Average 0.Algorithme génétique pc = 0.2 0 2 4 6 8 10 12 14 16 18 20 Generations Performance pour 20 générations de 60 individus.001 1.6 Best 0.6 1.7. Université de Moncton 36 .
c’est très bien adapté cependant aux algorithmes génétiques. GIND5439 – Gabriel Cormier. les techniques classiques ne peuvent pas garantir une solution. Université de Moncton 37 . Les contraintes multiples rendent difficile la solution de ce type de problème. L’ordonnancement des ressources est un problème particulièrement complexe.Exemple: cédule de maintenance On voit ici un autre exemple de l’utilité des algorithmes génétiques. Une des applications les plus fructueuses de l’algorithme génétique est le problème d’ordonnance des ressources.
Cette tâche a plusieurs contraintes: bris. GIND5439 – Gabriel Cormier. Le but ici est de trouver une cédule qui permettra de maximiser la puissance en réserve pendant l’année.Exemple: cédule de maintenance Le problème ici est d’ordonnancer la maintenance de centrales électriques. Il faut souvent réviser la cédule avec peu d’avis. Des centrales électriques sont conçues pour opérer très longtemps avec de la maintenance préventive. délai dans l’obtention d’équipements. interruption de service. Université de Moncton 38 . etc.
leur capacité.Exemple: cédule de maintenance Unité Capacité (MW) Nombre d’intervalles nécessaire pour maintenance 1 20 2 2 15 2 3 35 1 4 40 1 5 15 1 6 15 1 7 10 1 Centrales. Université de Moncton 39 . et le nombre d’intervalles de maintenance requis. GIND5439 – Gabriel Cormier.
Exemple: cédule de maintenance On sépare l’année en 4 intervalles.demande GIND5439 – Gabriel Cormier. La réserve de puissance pendant un intervalle doit être plus grande que la demande en puissance. 90. respectivement. Réserve = Capacité totale – (Pperdue maintenance) . 65 et 70 MW. D’autres contraintes: La maintenance d’une unité commence au début de l’intervalle et se termine à la fin de l’intervalle. On veut optimiser la réserve de puissance pendant les intervalles. Université de Moncton 40 . la demande en puissance pendant ces intervalles est: 80.
Exemple: cédule de maintenance
Il faut maintenant trouver un encodage pour bien représenter le
problème et ses contraintes.
Dans ce cas-ci, on utilise des gènes à 4 bits pour représenter les
intervalles de maintenance.
Unité Maintenance possible
1 1100, 0110, 0011
2 1100, 0110, 0011
3 1000, 0100, 0010, 0001
4 1000, 0100, 0010, 0001
5 1000, 0100, 0010, 0001
6 1000, 0100, 0010, 0001
7 1000, 0100, 0010, 0001
GIND5439 – Gabriel Cormier, Université de Moncton 41
Exemple: cédule de maintenance
Encodage, ex: pour l’unité 1, le 1100 veut
dire qu’il est en maintenance pendant les
intervalles 1 et 2.
1 1 0 0 « 1 » veut dire maintenance,
« 0 » veut dire pas de
maintenance
Intervalle 4
Intervalle 1 Intervalle 3
Intervalle 2
GIND5439 – Gabriel Cormier, Université de Moncton 42
Exemple: cédule de maintenance
Il faut maintenant définir la fonction objective.
On fera la somme de la puissance des unités qui sont en
maintenance, et on calculera la réserve nette.
Exemple: Soit un chromosome quelconque:
0110 0011 0001 1000 0100 0010 1000
La somme de la puissance des unités en
maintenance est:
Intervalle1 : 0 × 20 + 0 ×15 + 0 × 35 + 1× 40 + 0 × 15 + 0 × 15 + 1× 10 = 50
Intervalle 2 : 1× 20 + 0 × 15 + 0 × 35 + 0 × 40 + 1× 15 + 0 ×15 + 0 ×10 = 35
Intervalle 3 : 1× 20 + 1×15 + 0 × 35 + 0 × 40 + 0 ×15 + 1× 15 + 0 ×10 = 50
Intervalle 4 : 0 × 20 + 1× 15 + 1× 35 + 0 × 40 + 0 × 15 + 0 ×15 + 0 ×10 = 50
GIND5439 – Gabriel Cormier, Université de Moncton 43
20. Université de Moncton 44 . la performance aurait été 0. GIND5439 – Gabriel Cormier. dans ce cas.Exemple: cédule de maintenance On calcule la réserve: Intervalle1 : 150 − 50 − 80 = 20 Intervalle 2 : 150 − 35 − 90 = 25 Intervalle 3 : 150 − 50 − 65 = 35 Intervalle 4 : 150 − 50 − 70 = 30 La performance du chromosome est la plus petite réserve. Si on aurait obtenu une réserve négative.
Exemple: cédule de maintenance Il faut maintenant construire les opérateurs génétiques. GIND5439 – Gabriel Cormier. Université de Moncton 45 . sinon on retrouverait des cédules illogiques ou fausses. Dans ce cas-ci. les opérations de mutation et croisement ne peuvent se faire que sur des blocs de 4 bits.
Université de Moncton 46 .Exemple: cédule de maintenance Exemple de croisement: Parent 1: 0110 0011 0001 1000 0100 0010 1000 Parent 2: 1100 0110 0100 0001 0010 1000 0100 Point de croisement Rejeton 1: 0110 0011 0001 1000 0010 1000 0100 Rejeton 2: 1100 0110 0100 0001 0100 0010 1000 GIND5439 – Gabriel Cormier.
Exemple: cédule de maintenance Exemple de mutation x 0110 0011 0001 1000 0100 0010 1000 0110 0011 0100 1000 0100 0010 1000 GIND5439 – Gabriel Cormier. Université de Moncton 47 .
Exemple: cédule de maintenance On peut maintenant faire travailler l’algorithme. Ces paramètres peuvent varier beaucoup selon le type de problème. Cependant. la probabilité de croisement et la probabilité de mutation. Une règle générale est d’utiliser une population 6 ou 7 fois plus grande que le nombre de variables à optimiser. Il ne faut surtout pas se limiter à une seule valeur! GIND5439 – Gabriel Cormier. Quand aux probabilités de croisement et mutation. il faut choisir la taille de la population. il faudra commencer avec une valeur standard et essayer différentes valeurs par la suite. Université de Moncton 48 .
GIND5439 – Gabriel Cormier. Université de Moncton 49 .Exemple: cédule de maintenance Les pages 238 et 239 montrent les résultats pour différentes populations et taux de mutation. On voit dans ces graphes que l’optimum est une réserve de 25MW à chaque intervalle.
GIND5439 – Gabriel Cormier.Exemple: cédule de maintenance 150 Unit 2 Unit 2 Unit 1 Unit 4 Unit 7 Unit 1 Unit 6 Unit 3 Réserve 100 Unit 5 Puissance (MW) Réserve Réserve Réserve 50 0 1 2 3 4 Intervalle de temps Après 50 générations: la plus petite réserve est 15 MW. Université de Moncton 50 .
Université de Moncton 51 .Exemple: cédule de maintenance 150 Unit 1 Unit 1 Unit 2 Unit 3 Unit 6 Unit 2 Unit 4 Unit 7 Unit 5 100 Réserve Puissance (MW) Réserve Réserve Réserve 50 0 1 2 3 4 Intervalle de temps Après 100 générations: la plus petite réserve est 25 MW. GIND5439 – Gabriel Cormier.
Cependant. c’est-à-dire qu’on utilise des chiffres réels. c’est moins utilisé (plus récent). GIND5439 – Gabriel Cormier. Les opérateurs (sélection. La performance est aussi bonne. Il existe aussi un algorithme génétique à codage réel.Algorithme génétique: codage réel L’algorithme génétique vu jusqu’à présent utilisait un codage binaire. Université de Moncton 52 . reproduction et mutation) sont différents.
Chaque individu est composé d’une valeur de k variables. x2 et x3. Ex: soit un problème à 3 variable.Algorithme génétique: codage réel La création de la population initiale est la même: un nombre n d’individus sont créés aléatoirement. Université de Moncton 53 . selon le problème. x1. Les individus ont la forme: x1 x1 x1 I1 x2 I2 … In x2 x2 x3 x3 x3 GIND5439 – Gabriel Cormier.
L . entre 1.5. GIND5439 – Gabriel Cormier. Le meilleur individu a un RW de na. RW = (n − i ) a i = 0. Université de Moncton 54 . n − 1 Où a est un exposant. une technique qui fonctionne bien est celle de Davis [1991]. et ainsi de suite. 1.Sélection Il existe plusieurs méthodes de sélection. le 2e meilleur a un RW de (n-1)a.0 et 1. On associe un poids relatif (RW) à chaque individu selon sa performance.
GIND5439 – Gabriel Cormier. l’individu est choisit pour reproduction. Selon la partie entière du PR. Université de Moncton 55 .Sélection On calcule ensuite une probabilité de reproduction: RWi PRi = 1 n ∑ RWi L’individu avec le meilleur poids relatif aura la meilleure chance de se reproduire.
Université de Moncton 56 .9 est choisit 1 fois pour reproduction. GIND5439 – Gabriel Cormier. Un individu avec un PR de 1. Ces individus choisis vont dans un groupe de reproduction d’où on choisira les individus qui vont se reproduire. il est choisit 2 fois pour reproduction.Sélection Ex: Si un individu a un PR de 2.1.
3 Population I4: 1.4 I2: 2.3 I2 I1: 1. Université de Moncton 57 .3 I3: 0.9 I4 I2 I6 Après évaluation I1 I3 du PR Groupe pour reproduction GIND5439 – Gabriel Cormier.Sélection: exemple Population I5: 0.7 I6: 1.
5 ⋅ P2 GIND5439 – Gabriel Cormier. il faut passer à la reproduction.5 ⋅ P1 + 0.5 ⋅ P1 + 1.Reproduction Une fois le groupe de reproduction créé. On crée 3 rejetons selon l’équation suivante: R1 = 0.5 ⋅ P1 − 0. On choisit aléatoirement 2 parents P1 et P2 parmi les individus du groupe de reproduction. Université de Moncton 58 . On utilise la technique de Wright [1991].5 ⋅ P2 R2 = 1.5 ⋅ P2 R3 = −0.
GIND5439 – Gabriel Cormier. Ces 2 meilleurs rejetons deviennent les individus de la prochaine génération. Université de Moncton 59 . afin de garder la taille de la population constante.Reproduction On choisit les 2 meilleurs rejetons parmi les 3 créés. Le croisement (la reproduction) est appliquée sur chaque variable.
5⋅ x2 + 0.5⋅2 x1 ⎤ R1 = ⎢ 1 ⎥ R2 = ⎢ 1 ⎥ R3 = ⎢ ⎥ ⎣0. dans un problème à deux variables.5⋅1 x1 − 0. Université de Moncton 60 .5⋅2 x1 ⎤ ⎡1.5⋅ x2 ⎦ ⎣1.5⋅ x2 + 1.5⋅ x2 ⎦ ⎣− 0. ⎡ 1 x1 ⎤ ⎡ 2 x1 ⎤ P1 = ⎢ 1 ⎥ P2 = ⎢ 2 ⎥ ⎣ x2 ⎦ ⎣ x2 ⎦ Les rejetons sont: ⎡ 0.5⋅1 x1 + 0.Reproduction Ex: Soit deux parents.5⋅ x2 ⎦ 2 2 1 2 GIND5439 – Gabriel Cormier.5⋅ x2 − 0.5⋅1 x1 + 1.5⋅2 x1 ⎤ ⎡ − 0.
Université de Moncton 61 . Génération p GIND5439 – Gabriel Cormier. I5 I3 Génération p Groupe après reproduction.Reproduction Population croisement R1 I2 R2 I4 R3 Population I2 I6 I1 I3 On prend I1 les 2 meilleurs I4 I2 I6 Groupe pour reproduction.
Mutation La mutation est la dernière étape avant de passer à la prochaine génération. GIND5439 – Gabriel Cormier. La technique de Michalewicz produit une mutation non-uniforme: L’amplitude maximale de la mutation diminue au fur et à mesure que le nombre de générations augmente. Université de Moncton 62 . Plusieurs fonctions existent pour effectuer la mutation. une technique populaire est la technique de Michalewicz [1992].
entre 1 et 5 GIND5439 – Gabriel Cormier.Mutation Mutation de Michalewicz: On vérifie en premier s’il y a mutation selon la probabilité de mutation. et on modifie la variable comme suit: ⎧ xi + δ (max(xi ) − xi ) pile xi ' = ⎨ ⎩ xi − δ ( xi − min ( xi )) face Où b r = nombre aléatoire entre 0 et 1 ⎛ t⎞ δ ( y ) = r ⋅ y ⋅ ⎜1 − ⎟ t = génération actuelle T = génération maximale ⎝ T⎠ b = exponentiel. pm. Université de Moncton 63 . Si oui. on lance une pièce de monnaie.
Université de Moncton 64 .Algorithme génétique Une fois la mutation effectuée. on passe à la prochaine génération et on refait le processus de sélection. croisement et mutation jusqu’à ce que la génération maximale soit atteinte. ou que l’objectif (erreur minimale) soit atteint. GIND5439 – Gabriel Cormier.
si on utilise la règle de 6 ou 7 fois le nombre de variables. Dans ce cas-ci. on devrait avoir 12 – 14 individus.Algorithme génétique: exemple On va refaire l’exemple précédent de la fonction à deux variables: 2 − x 2 −( y +1)2 − x2 − y 2 f ( x. GIND5439 – Gabriel Cormier. avec 2 variables. Il faut définir la taille de la population. Université de Moncton 65 . y ) = (1 − x) e − (x − x − y ) e 3 3 L’intervalle de calcul est le même: -3 à +3.
Algorithme génétique: exemple 2 1.5 0 -0. Université de Moncton 66 .5 1 0.5 -4 -2 -3 0 -2 -1 2 0 1 4 2 3 Fonction à optimiser GIND5439 – Gabriel Cormier.
094. Université de Moncton 67 . Ex: deux individus pourraient être: x y I1 = {0. leur performance est: f(I1) = 0.Algorithme génétique: exemple On crée un population initiale.671} I2 = {2.0066 GIND5439 – Gabriel Cormier. -0.953} Il faut évaluer la performance des individus: Si on reprend nos deux individus.354.2376 f(I2) = 0. 1.
5(0.5(0.094) ⎫ ⎧ 2.964 ⎫ R3 = ⎨ ⎬=⎨ ⎬=⎨ ⎬ ⎩ − 0 .5( −0 .5 y1 + 0.5 x2 ⎫ ⎧ 0. Université de Moncton 68 .671) − 0.5(2.5 x1 − 0.5 x1 + 1. -0. I2 = {2.5(2.224 ⎫ R1 = ⎨ ⎬=⎨ ⎬=⎨ ⎬ ⎩0 .5 x2 ⎫ ⎧ − 0.5 y 2⎭ ⎩1.671}.354) + 0.5( −0.5( −0.953) ⎭ ⎩ − 2 .Algorithme génétique: exemple Il faut évaluer le RW et le PR de chaque individu.694.094) ⎫ ⎧− 0. 671) + 1.5 x1 + 0. 5(1.953) ⎭ ⎩0 . et ensuite faire le croisement.5 x2 ⎫ ⎧ 1.5(2. 1.5 y 2⎭ ⎩ − 0 . 5 y1 − 0.265 ⎭ GIND5439 – Gabriel Cormier.671) + 0. 5(1.953}): ⎧ 0.5(1.354.5 y1 + 1.5 y 2⎭ ⎩0 .983 ⎭ ⎧ − 0.354) + 1.953) ⎭ ⎩ 2.5(0.516⎫ R2 = ⎨ ⎬=⎨ ⎬=⎨ ⎬ ⎩1.354) − 0.359 ⎭ ⎧1. Leur trois rejetons sont (I1 = {0.094) ⎫ ⎧1. Supposons qu’on choisit nos 2 individus pour croisement.
Algorithme génétique: exemple On évalue maintenant la performance des rejetons. Université de Moncton 69 . pour trouver les 2 meilleurs: f(R1) = 0.1307 f(R2) = 0. on continu le processus. les 2 meilleurs rejetons sont les rejetons 1 et 2. GIND5439 – Gabriel Cormier. Bien que la performance des rejetons n’est pas meilleure à celles des parents.0001 Dans ce cas-ci.0028 f(R3) = 0.
5((2.Algorithme génétique: exemple Il reste à vérifier pour une mutation.08 GIND5439 – Gabriel Cormier.983 − 2. Si une mutation se produit (ex: rejeton 2). on choisit un paramètre pour mutation (ex: y). On lance une pièce de monnaie. Université de Moncton 70 .983) − (− 3))⎜1 − ⎟ = 2. et on obtient face.903 ⎝ T⎠ ⎝ 100 ⎠ aléatoire y ' = 2.903 = 0. ⎧ y + δ (max( y ) − y ) pile y' = ⎨ ⎩ y − δ ( y − min ( y )) face b 3 ⎛ t⎞ ⎛ 1 ⎞ δ ( y ) = r ⋅ y ⋅ ⎜1 − ⎟ = 0.
024. dans ce cas. Université de Moncton 71 . Si on aurait été à la 80e génération.8372 On voit. l’amplitude de la mutation n’aurait été que de 0. que la mutation a de beaucoup amélioré l’individu.Algorithme génétique: exemple On évalue la performance de l’individu muté: f(R1) = 0. GIND5439 – Gabriel Cormier.
Université de Moncton 72 . GIND5439 – Gabriel Cormier. croisement et mutation jusqu’à ce qu’on obtienne une erreur acceptable ou un nombre maximum de générations.Algorithme génétique: exemple On répète le processus de sélection.
Algorithme génétique: exemple 1.2 pm = 0.2.8 MaxGen = 100.8 Maximum 0.4 0.6 POP = 15. a = 1.2 0 0 10 20 30 40 50 60 70 80 90 100 Generation Exemple de simulation.85.4 pc = 0. 1. avec élitisme GIND5439 – Gabriel Cormier.0.6 Moyenne 0. 1. 1 b = 3. Université de Moncton 73 .001. 1. Fitness 0.
paru dans le Journal of Robotic Systems en 2002. Université de Moncton 74 . GIND5439 – Gabriel Cormier. singularity-free workspace.Algorithme génétique: exemple On fera ici un exemple de design d’un robot. d’un article par Marise Gallant et Roger Boudreau. The synthesis of planar parallel manipulators with prismatic joints for an optimal.
Robot parallèle: robot dont les membres sont en parallèle (ex: simulateurs de vol) Espace de travail: l’espace (les positions) que le robot peut atteindre pour faire un travail quelconque.Algorithme génétique: exemple Il s’agit ici faire le design d’un robot parallèle pour atteindre un espace de travail pré- déterminé. Université de Moncton 75 . GIND5439 – Gabriel Cormier.
il est facile de calculer son espace de travail. et pas d’équations inverses. on ne peut pas faire le calcul inverse.Algorithme génétique: exemple Le problème est le suivant: si on veut un espace de travail quelconque. comment designer le robot (dimensions physiques comme la longueur des bras) pour qu’il puisse atteindre cet espace de travail? Si on connaît les dimensions d’un robot. GIND5439 – Gabriel Cormier. Université de Moncton 76 . il y a trop de possibilités. Cependant.
Université de Moncton 77 .Algorithme génétique: exemple Exemple: robot parallèle à 3 membres. Robot parallèle GIND5439 – Gabriel Cormier.
Algorithme génétique: exemple Espace de travail voulu GIND5439 – Gabriel Cormier. Université de Moncton 78 .
La fonction objective est la différence d’aire entre l’espace de travail voulu et l’espace de travail réel. GIND5439 – Gabriel Cormier.Algorithme génétique: exemple Le problème ici est assez complexe. Université de Moncton 79 . On a 6 variables à optimiser.
Algorithme génétique: exemple Évolution de la performance GIND5439 – Gabriel Cormier. Université de Moncton 80 .
Algorithme génétique: exemple On voit bien qu’au fur et à mesure que le nombre de générations augmente. que la différence d’aire diminue. GIND5439 – Gabriel Cormier. avec des résultats similaires. Université de Moncton 81 . L’algorithme génétique fut appliqué à 4 types de robots parallèles.
GIND5439 – Gabriel Cormier. oiseaux. insectes). Elle est basée sur le comportement social de groupes d’animaux (poissons. Université de Moncton 82 .Optimisation par essaim de particules L’optimisation par essaim de particules (particle swarm optimization) est une technique d’optimisation développée récemment (Kennedy et Eberhart. 1995).
Université de Moncton 83 .iupui. Lorsqu’une abeille trouve une bonne source.Optimisation par essaim de particules Des simulations sont disponibles à http://www. GIND5439 – Gabriel Cormier. Elles vont voler partout dans les alentours de la ruche. toutes les autres abeilles vont converger vers ce point.edu/~eberhart/web/PSObook.html On peut expliquer l’algorithme par une analogie: Des abeilles sortent de la ruche pour trouver du pollen des fleurs.engr.
Chaque particule représente une solution possible au problème. On suppose que 2 facteurs influencent le comportement d’une particule. On crée une population de particules.Optimisation par essaim de particules L’algorithme d’optimisation par essaim de particules est encore plus simple que celui de l’algorithme génétique. GIND5439 – Gabriel Cormier. Université de Moncton 84 . Facteur social (les autres particules). Facteur individuel (la particule).
Université de Moncton 85 . évidement.Optimisation par essaim de particules Chaque particule a une position. et aussi une vitesse: la particule se déplace dans l’espace de recherche. La position future est fonction de 4 facteurs: La position actuelle La vitesse précédente La meilleure position obtenue de la particule La meilleure position obtenue de toutes les particules GIND5439 – Gabriel Cormier.
pi est la meilleure position obtenue par la particule i. GIND5439 – Gabriel Cormier. Typiquement. et pg est la meilleure position obtenue par n’importe quelle particule.Optimisation par essaim de particules La position est ajustée selon: ⎧ vi (t ) = vi (t − 1) + ϕ1r1 ( pi − xi (t − 1) ) + ϕ 2 r2 ( p g − xi (t − 1) ) r r r r r r ⎨r r r ⎩ xi (t ) = xi (t − 1) + vi (t ) où ϕ1 et ϕ2 sont des constantes. on limite la vitesse entre +Vmax et –Vmax. Université de Moncton 86 . rx est un nombre aléatoires entre 0 et 1.
évaluer la meilleure performance obtenue. Université de Moncton 87 .Optimisation par essaim de particules Le pseudo-code pour l’algorithme est: Créer une population initiale Si la performance est meilleure que Pour chaque particule. la performance alors pi = xi Choisir la particule avec la meilleure performance (pg) Modifier la vitesse et la position de toutes les particules GIND5439 – Gabriel Cormier.
OEP: exemple On va refaire l’exemple de la fonction à deux variables: 2 − x 2 −( y +1)2 − x2 − y 2 f ( x. Université de Moncton 88 . On choisit une population de 20 particules. y ) = (1 − x) e − (x − x − y ) e 3 3 L’intervalle de calcul est le même: -3 à +3. Il faut définir la taille de la population. GIND5439 – Gabriel Cormier.
Ex: deux particules pourraient être: x y P1 = {0. Ces particules ressembleront beaucoup aux individus de l’algorithme génétique. -0.0066 GIND5439 – Gabriel Cormier.094.671} P2 = {2. 1.354. Université de Moncton 89 .OEP: exemple On crée alors une population de particules.2376 f(P2) = 0.953} Il faut évaluer la performance des particules: f(P1) = 0.
354.1135. si la performance actuelle est meilleure que la meilleure performance obtenue (pour cette particule). Université de Moncton 90 . alors pi = xi. alors p1 = {0.671} Il faut maintenant trouver la particule qui a la meilleure performance. 1. GIND5439 – Gabriel Cormier. Ex: Si la performance précédente de la particule 1 était 0.OEP: exemple Pour chacune des particules. Ceci devient pg.
⎡v x ⎤ ⎡v x ⎤ ⎛ ⎡ px ⎤ ⎡ x ⎤ ⎞ ⎛ ⎡ px ⎤ ⎡ x ⎤ ⎞ ⎜ ⎟ ⎢v ⎥ = ⎢v ⎥ + ϕ1 ⋅ r1 ⋅ ⎜⎜ ⎢ p ⎥ − ⎢ ⎥ ⎟⎟ + ϕ 2 ⋅ r2 ⋅ ⎜ ⎢ p ⎥ − ⎢ ⎥ ⎟ ⎣ y ⎦i ⎣ y ⎦i ⎝ ⎣ y ⎦i ⎣ y⎦i ⎠ ⎝ ⎣ y ⎦ g ⎣ ⎦i ⎠ y ⎡ x ⎤ ⎡ x ⎤ ⎡vx ⎤ ⎢ y ⎥ = ⎢ y ⎥ + ⎢v ⎥ ⎣ ⎦i ⎣ ⎦i ⎣ y ⎦i Pour chaque variable. Université de Moncton 91 . GIND5439 – Gabriel Cormier.OEP: exemple On a maintenant toute l’information pour calculer les nouvelles position. on calcule une vitesse et une nouvelle position.
6 0. Université de Moncton 92 .OEP: exemple 1.2 1 Fitness 0.2 Maximum Moyenne 0 0 10 20 30 40 50 60 70 80 90 100 Generation Exemple de résultat.8 0.4 0.8 1. GIND5439 – Gabriel Cormier.6 1.4 1.
GIND5439 – Gabriel Cormier. cependant. etc. il y a moins de calculs à faire avec l’optimisation par essaim de particules. En général. Université de Moncton 93 . PR. puisqu’on a pas les opérations de croisement. de RW. les résultats obtenus sont similaires à ceux de l’algorithme génétique.OEP: exemple Pour cet exemple.