Vous êtes sur la page 1sur 93

GIND5439

Systmes Intelligents

Chapitre 7: Techniques volutionnaires.


Lvolution peut-elle tre intelligente?
Intelligence
La capacit dun systme adapter son comportement
un environnement en changement.
Les calculs volutionnaires simulent lvolution sur
un ordinateur.
Le rsultat est une srie dalgorithmes doptimisation,
habituellement bas sur un ensemble de rgles simples.
Loptimisation amliore itrativement la qualit des
solutions jusqu ce quune solution optimale soit obtenue.

GIND5439 Gabriel Cormier, Universit de Moncton 2


Calcul volutionnaire
Algorithme gntique
Stratgies volutionnistes
Programmation gntique
On simule lvolution en utilisant
Slection
Reproduction
Mutation
Optimisation par essaim de particules

GIND5439 Gabriel Cormier, Universit de Moncton 3


volution naturelle
Le 1er juillet 1858, Charles Darwin prsente
sa thorie dvolution.
Thorie de slection naturelle de Weismann
Concept de gntique de Mendel
No-Darwinisme
Bas sur les principes de reproduction, mutation,
comptition et slection.

GIND5439 Gabriel Cormier, Universit de Moncton 4


volution naturelle
Quest-ce que lvolution?
Processus qui mne la maintenance ou laugmentation
de la capacit dune population survivre et se reproduire
dans un environnement spcifique (Hartl & Clark, 1989)
Performance volutionnaire
Une mesure de la capacit dun organisme anticiper des
changements dans son environnement. (Hoffman, 1989)
La qualit qui est optimise dans la nature (Atmar, 1994).
Mesure de la capacit de prdire des changements
environnementaux et y ragir rapidement.

GIND5439 Gabriel Cormier, Universit de Moncton 5


volution naturelle
Topologie adaptive (Wright, 1932)
Reprsente un environnement quelconque par un
paysage.
Une crte correspond la performance optimise
dune espce.
Une population se dplace le long de la pente
vers la crte pendant lvolution.
Lenvironnement change continuellement.

GIND5439 Gabriel Cormier, Universit de Moncton 6


volution naturelle
Michalewicz (1996)
Considre une population de lapins

Certains lapins sont plus rapides que dautres.


Ont une performance suprieure.
Certains lapins lents survivent aussi.
Des lapins lents et rapides sentrecroisent.
Deux parents de performance suprieure:
Il y a une bonne chance quune combinaison de leur gnes produiront un
rejeton qui a une performance suprieure.
Au fil des ans la population entire de lapins devient plus rapide pour
faire face aux changements dans leur environnement.
En mme temps, des lapins plus rapides veut dire que les renards
doivent tre plus rapides.
Lenvironnement pourrait favoriser des lapins lents mais intelligents.
La population sadapte pour rpondre aux dfis environnementaux.

GIND5439 Gabriel Cormier, Universit de Moncton 7


Simulation de lvolution
Toutes les mthodes
Crer une population dindividus
valuer leur performance
Gnrer une nouvelle population laide
doprateurs gntiques (slection, reproduction,
mutation)
Rpter ce processus plusieurs fois

GIND5439 Gabriel Cormier, Universit de Moncton 8


Algorithme gntique
Classe dalgorithmes de recherche stochastiques
bass sur lvolution biologique.
John Holland (1975), principal crateur
Les premiers algorithmes utilisaient des squences
de bits; maintenant, des algorithmes avec du
codage rel existent.
Cependant, lalgorithme gntique cod binaire
demeure plus populaire, mme si lalgorithme
gntique cod rel est plus performant.

GIND5439 Gabriel Cormier, Universit de Moncton 9


Algorithme gntique
Algorithme de Holland
Utilise une srie dtapes pour se dplacer dune
population de chromosomes une autre.
Ces chromosomes consistent en un nombre de
gnes, et chaque gne est une squence 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


Algorithme gntique
Deux mcanismes sont le lien entre lalgorithme
gntique et le problme rsoudre:
Encodage
valuation
On utilise une mesure de la performance dun
chromosome (ou individu) pour faire la reproduction.
Quand la reproduction a lieu,
Loprateur de croisement change des parties de deux
chromosomes.
Loprateur de mutation change la valeur des gnes de
faon alatoire.
Au fil du temps les chromosomes moins performants
disparaissent.

GIND5439 Gabriel Cormier, Universit de Moncton 11


Algorithme gntique de base
Start

Generate Population of chromosomes of Size N : x,xn

Calculate fitness of each chromosome :f( x,)f(xn)

Is the termination Yes


condition satisfied ? Stop
No
Select a pair of chromosomes for mating

With crossover probability pc, exchange parts of the two selected


chromosomes and create two offspring

With mutation probability pm, 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


Algorithme gntique de base
tape 1:
Reprsenter le problme comme un chromosome
de longueur fixe.
Choisir la taille de la population, N, la probabilit
de croisement pc et la probabilit de mutation pm.
tape 2:
Dfinir une fonction objective pour mesurer la
performance des individus.
tape 3:
Gnrer alatoirement une population de taille N,
x1, x2, ,xN.
GIND5439 Gabriel Cormier, Universit de Moncton 13
Algorithme gntique de base
tape 4:
Calculer la performance de chaque individu: f(x1),
f(x2), , f(xN).
tape 5:
Choisir une paire de chromosomes pour
reproduction.
Les parents sont choisis avec une probabilit
relie leur performance.
tape 6:
On cre une paire de rejetons en appliquant les
oprateurs gntiques: croisement et mutation.
GIND5439 Gabriel Cormier, Universit de Moncton 14
Algorithme gntique de base
tape 7:
On place les rejetons dans une nouvelle population.
tape 8:
Rpter ltape 5 jusqu ce que la taille de la nouvelle
population soit N.
tape 9:
Remplacer la population initiale (parents) par la nouvelle
population (rejetons).
tape 10:
Retourner ltape 4, et rpter le processus jusqu ce
que la condition darrt soit atteinte.

GIND5439 Gabriel Cormier, Universit de Moncton 15


Algorithme gntique
Chaque itration est appele une gnration.
Le nombre de gnrations peut varier beaucoup, de 50
500 typiquement.
la fin de toutes les gnrations, on sattend
trouver un ou plusieurs individus qui satisfont les
critres dvaluation.
Les algorithmes gntiques utilisent une mthode
de recherche stochastique; la performance dune
population peut demeurer fixe pour un certain
nombre de gnrations avant quun individu plus
performant apparaisse.

GIND5439 Gabriel Cormier, Universit de Moncton 16


Algorithme gntique: exemple
Calculer la valeur maximale de la fonction (15x x2) quand x varie
entre 1 et 15.
On suppose que x prend seulement des valeurs entires. On peut
donc construire un chromosome avec seulement 4 gnes:
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.


La probabilit de croisement est pc = 0.7.
La probabilit de mutation est pm = 0.001.
La valeur de la fonction objective est f(x) = 15x x2.

GIND5439 Gabriel Cormier, Universit de Moncton 17


Algorithme gntique: exemple
On cre la population initiale.
On aura 6 squences de 4 bits choisies
alatoirement.
On calcule la performance de chaque individu.

Nom du Squence Entier Performance du Rapport de


chromosome de bits chromosome performance, %
X1 1100 12 36 16.5
X2 0100 4 44 20.2
X3 0001 1 14 6.4
X4 1110 14 14 6.4
X5 0111 7 56 25.7
X6 1001 9 54 24.8

GIND5439 Gabriel Cormier, Universit de Moncton 18


Algorithme gntique: exemple
Pour faire la slection dindividus, on utilise la technique de la roue de
roulette (Goldberg, 1989; Davis, 1991).

100 0
X1: 16.5%
16.5
X2: 20.2%
75.2 X3: 6.4%
X4: 6.4%
X5: 25.3%
36.7 X6: 24.8%
49.5 43.1

GIND5439 Gabriel Cormier, Universit de Moncton 19


Algorithme gntique: exemple
Croisement
On choisit, alatoirement, un point de croisement
o on brisera en deux les deux parents.
Pour notre exemple, soit les 2 premiers bits.
On change les parties de ces individus.
Ceci cre deux nouveaux individus.
Si une paire des chromosomes nont pas de
croisement, il y a alors clonage: les deux rejetons
sont exactement pareils aux parents.

GIND5439 Gabriel Cormier, Universit de Moncton 20


Algorithme gntique: 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
Algorithme gntique: exemple
Mutation
La mutation reprsente un changement dans un gne.
La mutation est un oprateur secondaire.
Le rle est de garantir que lalgorithme de recherche ne reste
pas prit dans un optimum local.
Loprateur de mutation varie un bit choisit alatoirement
(de 0 1 ou 1 0).
La mutation peut se produire dans nimporte quel gne
avec une possibilit quelconque.
La probabilit de mutation est faible en nature, et donc est
maintenue faible dans les algorithmes gntiques,
typiquement entre 0.001 et 0.01.

GIND5439 Gabriel Cormier, Universit de Moncton 22


Algorithme gntique: 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, Universit de Moncton 23


Algorithme gntique: 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 gntique: 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.

GIND5439 Gabriel Cormier, Universit de Moncton 25


Algorithme gntique
Supposons quon veut trouver le maximum
dune fonction de deux variables:
2 x 2 ( y +1)2 x2 y 2
f ( x, y ) = (1 x) e (x x y ) e 3 3

o x et y varient entre -3 et +3.


Pour reprsenter les variables comme un
chromosome, on va concatner les deux
squences de bits:
1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1

x y

GIND5439 Gabriel Cormier, Universit de Moncton 26


Algorithme gntique
Choisir la taille de la population (ex, 6) et
gnrer alatoirement une population initiale.
Calculer la performance de chaque
chromosome. On fait ceci en deux tapes:
Un chromosome, dans ce cas 16 bits, est divis
en deux squences 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 dcimal:
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, Universit de Moncton 27


Algorithme gntique
Il faut maintenant convertir ces valeurs une valeur
entre -3 et 3. Un bit reprsente une valeur de:
S 3 (3) 6
1bit = = = = 0.0235294
2 1
n
2 1
8
255
o S reprsente lintervalle des valeurs, et n est le
nombre de bits.
Pour obtenir la valeur relle de x et y, il faut
multiplier les rsultats obtenus auparavant par
0.0235294 et soustraire 3.
138 (138)(0.0235294) 3 = 0.2470572
59 (59)(0.0235294) 3 = 1.6117654

GIND5439 Gabriel Cormier, Universit de Moncton 28


Algorithme gntique
On utilise les valeurs dcodes de x et y pour
calculer la performance de lindividu.
On utilise, dans ce cas-ci, une probabilit de
croisement de 0.7 et une probabilit de mutation de
0.001.
Il est pratique courante de spcifier le nombre
maximal de gnration.
Ex: On dcide que 100 gnrations est le maximum.
Lalgorithme gntique calculera 100 gnration de 6
individus avant de sarrter.

GIND5439 Gabriel Cormier, Universit de Moncton 29


Algorithme gntique

Emplacement des chromosomes: population initiale.

GIND5439 Gabriel Cormier, Universit de Moncton 30


Algorithme gntique

Emplacement des chromosomes: premire gnration.

GIND5439 Gabriel Cormier, Universit de Moncton 31


Algorithme gntique

Emplacement des chromosomes: maximum local.

GIND5439 Gabriel Cormier, Universit de Moncton 32


Algorithme gntique

Emplacement des chromosomes: maximum global.

GIND5439 Gabriel Cormier, Universit de Moncton 33


Algorithme gntique
pc = 0.7, pm = 0.001
0.7

0.6

0.5

0.4
Fitness

0.3

0.2

0.1

Best
0 Average

-0.1
0 10 20 30 40 50 60 70 80 90 100
Generations

Performance en fonction du nombre de gnrations: maximum local.

GIND5439 Gabriel Cormier, Universit de Moncton 34


Algorithme gntique
pc = 0.7, pm = 0.01
1.8

1.6

1.4

1.2
Fitness

1.0

0.8

0.6

Best
0.4 Average

0.2
0 10 20 30 40 50 60 70 80 90 100
Generations

Performance en fonction du nombre de gnrations: maximum global.

GIND5439 Gabriel Cormier, Universit de Moncton 35


Algorithme gntique
pc = 0.7, pm = 0.001
1.8

1.6

1.4

1.2
Fitness

1.0

0.8

0.6

Best
0.4 Average

0.2
0 2 4 6 8 10 12 14 16 18 20
Generations

Performance pour 20 gnrations de 60 individus.

GIND5439 Gabriel Cormier, Universit de Moncton 36


Exemple: cdule de maintenance
On voit ici un autre exemple de lutilit des
algorithmes gntiques.
Une des applications les plus fructueuses de
lalgorithme gntique est le problme dordonnance
des ressources.
Lordonnancement des ressources est un problme
particulirement complexe; les techniques classiques ne
peuvent pas garantir une solution.
Les contraintes multiples rendent difficile la solution de ce
type de problme; cest trs bien adapt cependant aux
algorithmes gntiques.

GIND5439 Gabriel Cormier, Universit de Moncton 37


Exemple: cdule de maintenance
Le problme ici est dordonnancer la maintenance
de centrales lectriques. Cette tche a plusieurs
contraintes: bris, interruption de service, dlai dans
lobtention dquipements, etc. Il faut souvent
rviser la cdule avec peu davis.
Des centrales lectriques sont conues pour oprer
trs longtemps avec de la maintenance prventive.
Le but ici est de trouver une cdule qui permettra de
maximiser la puissance en rserve pendant lanne.

GIND5439 Gabriel Cormier, Universit de Moncton 38


Exemple: cdule de maintenance
Unit Capacit (MW) Nombre dintervalles
ncessaire pour maintenance
1 20 2
2 15 2
3 35 1
4 40 1
5 15 1
6 15 1
7 10 1
Centrales, leur capacit, et le nombre dintervalles de maintenance requis.

GIND5439 Gabriel Cormier, Universit de Moncton 39


Exemple: cdule de maintenance
On spare lanne en 4 intervalles; la demande en
puissance pendant ces intervalles est: 80, 90, 65 et
70 MW, respectivement.
Dautres contraintes:
La maintenance dune unit commence au dbut de
lintervalle et se termine la fin de lintervalle.
La rserve de puissance pendant un intervalle doit tre
plus grande que la demande en puissance.
On veut optimiser la rserve de puissance pendant
les intervalles.
Rserve = Capacit totale (Pperdue maintenance) - demande

GIND5439 Gabriel Cormier, Universit de Moncton 40


Exemple: cdule de maintenance
Il faut maintenant trouver un encodage pour bien reprsenter le
problme et ses contraintes.
Dans ce cas-ci, on utilise des gnes 4 bits pour reprsenter 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: cdule de maintenance
Encodage, ex: pour lunit 1, le 1100 veut
dire quil 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: cdule de maintenance
Il faut maintenant dfinir la fonction objective.
On fera la somme de la puissance des units qui sont en
maintenance, et on calculera la rserve nette.
Exemple: Soit un chromosome quelconque:
0110 0011 0001 1000 0100 0010 1000

La somme de la puissance des units 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 + 115 + 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


Exemple: cdule de maintenance
On calcule la rserve:
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 rserve; dans ce cas, 20. Si on aurait
obtenu une rserve ngative, la performance
aurait t 0.

GIND5439 Gabriel Cormier, Universit de Moncton 44


Exemple: cdule de maintenance
Il faut maintenant construire les oprateurs
gntiques. Dans ce cas-ci, les oprations de
mutation et croisement ne peuvent se faire
que sur des blocs de 4 bits; sinon on
retrouverait des cdules illogiques ou
fausses.

GIND5439 Gabriel Cormier, Universit de Moncton 45


Exemple: cdule 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, Universit de Moncton 46


Exemple: cdule 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: cdule de maintenance
On peut maintenant faire travailler lalgorithme.
Cependant, il faut choisir la taille de la population, la
probabilit de croisement et la probabilit de
mutation.
Ces paramtres peuvent varier beaucoup selon le type de
problme. Une rgle gnrale est dutiliser une population
6 ou 7 fois plus grande que le nombre de variables
optimiser.
Quand aux probabilits de croisement et mutation, il faudra
commencer avec une valeur standard et essayer
diffrentes valeurs par la suite. Il ne faut surtout pas se
limiter une seule valeur!

GIND5439 Gabriel Cormier, Universit de Moncton 48


Exemple: cdule de maintenance
Les pages 238 et 239 montrent les rsultats
pour diffrentes populations et taux de
mutation.
On voit dans ces graphes que loptimum est
une rserve de 25MW chaque intervalle.

GIND5439 Gabriel Cormier, Universit de Moncton 49


Exemple: cdule de maintenance
150
Unit 2 Unit 2
Unit 1
Unit 4 Unit 7
Unit 1

Unit 6 Unit 3
Rserve
100 Unit 5
Puissance (MW)

Rserve Rserve
Rserve

50

0
1 2 3 4
Intervalle de temps

Aprs 50 gnrations: la plus petite rserve est 15 MW.

GIND5439 Gabriel Cormier, Universit de Moncton 50


Exemple: cdule de maintenance
150
Unit 1 Unit 1 Unit 2
Unit 3
Unit 6 Unit 2
Unit 4
Unit 7 Unit 5
100 Rserve
Puissance (MW)

Rserve
Rserve
Rserve

50

0
1 2 3 4
Intervalle de temps

Aprs 100 gnrations: la plus petite rserve est 25 MW.

GIND5439 Gabriel Cormier, Universit de Moncton 51


Algorithme gntique: codage rel
Lalgorithme gntique vu jusqu prsent
utilisait un codage binaire.
Il existe aussi un algorithme gntique
codage rel; cest--dire quon utilise des
chiffres rels.
Les oprateurs (slection, reproduction et
mutation) sont diffrents.
La performance est aussi bonne.
Cependant, cest moins utilis (plus rcent).

GIND5439 Gabriel Cormier, Universit de Moncton 52


Algorithme gntique: codage rel
La cration de la population initiale est la
mme: un nombre n dindividus sont crs
alatoirement.
Chaque individu est compos dune valeur de
k variables, selon le problme.
Ex: soit un problme 3 variable, x1, x2 et x3. Les
individus ont la forme:
x1 x1 x1
I1 x2 I2 In
x2 x2
x3 x3 x3

GIND5439 Gabriel Cormier, Universit de Moncton 53


Slection
Il existe plusieurs mthodes de slection; une
technique qui fonctionne bien est celle de
Davis [1991].
On associe un poids relatif (RW) chaque
individu selon sa performance.
RW = (n i ) a
i = 0, 1, L , n 1
O a est un exposant, entre 1.0 et 1.5. Le
meilleur individu a un RW de na, le 2e
meilleur a un RW de (n-1)a, et ainsi de suite.

GIND5439 Gabriel Cormier, Universit de Moncton 54


Slection
On calcule ensuite une probabilit de
reproduction:
RWi
PRi = 1
n RWi

Lindividu avec le meilleur poids relatif aura la


meilleure chance de se reproduire.
Selon la partie entire du PR, lindividu est
choisit pour reproduction.

GIND5439 Gabriel Cormier, Universit de Moncton 55


Slection
Ex: Si un individu a un PR de 2.1, il est
choisit 2 fois pour reproduction. Un individu
avec un PR de 1.9 est choisit 1 fois pour
reproduction.
Ces individus choisis vont dans un groupe de
reproduction do on choisira les individus qui
vont se reproduire.

GIND5439 Gabriel Cormier, Universit de Moncton 56


Slection: exemple
Population

I5: 0.4
I2: 2.3
Population
I4: 1.3 I3: 0.7
I6: 1.3
I2
I1: 1.9 I4
I2 I6
Aprs valuation I1 I3
du PR

Groupe pour
reproduction

GIND5439 Gabriel Cormier, Universit de Moncton 57


Reproduction
Une fois le groupe de reproduction cr, il
faut passer la reproduction.
On utilise la technique de Wright [1991].
On choisit alatoirement 2 parents P1 et P2 parmi
les individus du groupe de reproduction.
On cre 3 rejetons selon lquation suivante:
R1 = 0.5 P1 + 0.5 P2
R2 = 1.5 P1 0.5 P2
R3 = 0.5 P1 + 1.5 P2

GIND5439 Gabriel Cormier, Universit de Moncton 58


Reproduction
On choisit les 2 meilleurs rejetons parmi les 3
crs, afin de garder la taille de la population
constante.
Ces 2 meilleurs rejetons deviennent les
individus de la prochaine gnration.
Le croisement (la reproduction) est applique
sur chaque variable.

GIND5439 Gabriel Cormier, Universit de Moncton 59


Reproduction
Ex: Soit deux parents, dans un problme
deux variables.
1 x1 2 x1
P1 = 1 P2 = 2
x2 x2
Les rejetons sont:
0.51 x1 + 0.52 x1 1.51 x1 0.52 x1 0.51 x1 + 1.52 x1
R1 = 1 R2 = 1 R3 =
0.5 x2 + 0.5 x2 1.5 x2 0.5 x2 0.5 x2 + 1.5 x2
2 2 1 2

GIND5439 Gabriel Cormier, Universit de Moncton 60


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, I5 I3
Gnration p

Groupe aprs
reproduction,
Gnration p
GIND5439 Gabriel Cormier, Universit de Moncton 61
Mutation
La mutation est la dernire tape avant de
passer la prochaine gnration.
Plusieurs fonctions existent pour effectuer la
mutation; une technique populaire est la
technique de Michalewicz [1992].
La technique de Michalewicz produit une
mutation non-uniforme:
Lamplitude maximale de la mutation diminue au
fur et mesure que le nombre de gnrations
augmente.

GIND5439 Gabriel Cormier, Universit de Moncton 62


Mutation
Mutation de Michalewicz:
On vrifie en premier sil y a mutation selon la
probabilit de mutation, pm.
Si oui, on lance une pice de monnaie, et on
modifie la variable comme suit:
xi + (max(xi ) xi ) pile
xi ' =
xi ( xi min ( xi )) face
O
b r = nombre alatoire entre 0 et 1
t
( y ) = r y 1
t = gnration actuelle
T = gnration maximale
T b = exponentiel, entre 1 et 5

GIND5439 Gabriel Cormier, Universit de Moncton 63


Algorithme gntique
Une fois la mutation effectue, on passe la
prochaine gnration et on refait le
processus de slection, croisement et
mutation jusqu ce que la gnration
maximale soit atteinte, ou que lobjectif
(erreur minimale) soit atteint.

GIND5439 Gabriel Cormier, Universit de Moncton 64


Algorithme gntique: exemple
On va refaire lexemple prcdent de la
fonction deux variables:
2 x 2 ( y +1)2 x2 y 2
f ( x, y ) = (1 x) e (x x y ) e
3 3

Lintervalle de calcul est le mme: -3 +3.


Il faut dfinir la taille de la population. Dans
ce cas-ci, avec 2 variables, si on utilise la
rgle de 6 ou 7 fois le nombre de variables,
on devrait avoir 12 14 individus.
GIND5439 Gabriel Cormier, Universit de Moncton 65
Algorithme gntique: exemple

1.5

0.5

-0.5
-4
-2 -3
0 -2
-1
2 0
1
4 2
3

Fonction optimiser

GIND5439 Gabriel Cormier, Universit de Moncton 66


Algorithme gntique: exemple
On cre un population initiale.
Ex: deux individus pourraient tre:
x y

I1 = {0.354, 1.671}
I2 = {2.094, -0.953}
Il faut valuer la performance des individus:
Si on reprend nos deux individus, leur
performance est:
f(I1) = 0.2376
f(I2) = 0.0066

GIND5439 Gabriel Cormier, Universit de Moncton 67


Algorithme gntique: exemple
Il faut valuer le RW et le PR de chaque individu, et
ensuite faire le croisement. Supposons quon choisit
nos 2 individus pour croisement. Leur trois rejetons
sont (I1 = {0.354, 1.671}, I2 = {2.694, -0.953}):
0.5 x1 + 0.5 x2 0.5(0.354) + 0.5(2.094) 1.224
R1 = = =
0 .5 y1 + 0.5 y 2 0 . 5(1.671) + 0.5( 0.953) 0 .359
1.5 x1 0.5 x2 1.5(0.354) 0.5(2.094) 0.516
R2 = = =
1. 5 y1 0.5 y 2 1. 5(1.671) 0.5( 0.953) 2.983
0.5 x1 + 1.5 x2 0.5(0.354) + 1.5(2.094) 2.964
R3 = = =
0 .5 y1 + 1.5 y 2 0 .5(1. 671) + 1.5( 0 .953) 2 .265

GIND5439 Gabriel Cormier, Universit de Moncton 68


Algorithme gntique: exemple
On value maintenant la performance des
rejetons, pour trouver les 2 meilleurs:
f(R1) = 0.1307
f(R2) = 0.0028
f(R3) = 0.0001
Dans ce cas-ci, les 2 meilleurs rejetons sont
les rejetons 1 et 2.
Bien que la performance des rejetons nest
pas meilleure celles des parents, on
continu le processus.
GIND5439 Gabriel Cormier, Universit de Moncton 69
Algorithme gntique: exemple
Il reste vrifier pour une mutation.
Si une mutation se produit (ex: rejeton 2), on
choisit un paramtre pour mutation (ex: y).
On lance une pice de monnaie, et on obtient
face.
y + (max( y ) y ) pile
y' =
y ( y min ( y )) face
b 3
t 1
( y ) = r y 1 = 0.5((2.983) ( 3))1 = 2.903
T 100
alatoire
y ' = 2.983 2.903 = 0.08
GIND5439 Gabriel Cormier, Universit de Moncton 70
Algorithme gntique: exemple
On value la performance de lindividu mut:
f(R1) = 0.8372
On voit, dans ce cas, que la mutation a de
beaucoup amlior lindividu.
Si on aurait t la 80e gnration,
lamplitude de la mutation naurait t que de
0.024.

GIND5439 Gabriel Cormier, Universit de Moncton 71


Algorithme gntique: exemple
On rpte le processus de slection,
croisement et mutation jusqu ce quon
obtienne une erreur acceptable ou un
nombre maximum de gnrations.

GIND5439 Gabriel Cormier, Universit de Moncton 72


Algorithme gntique: exemple
1.8
MaxGen = 100;
1.6
POP = 15;
1.4 pc = 0.85;
1.2
pm = 0.001;
a = 1.2;
1
b = 3.0;
Fitness

0.8
Maximum
0.6 Moyenne

0.4

0.2

0
0 10 20 30 40 50 60 70 80 90 100
Generation

Exemple de simulation, avec litisme

GIND5439 Gabriel Cormier, Universit de Moncton 73


Algorithme gntique: exemple
On fera ici un exemple de design dun robot,
dun article par Marise Gallant et Roger
Boudreau, The synthesis of planar parallel
manipulators with prismatic joints for an
optimal, singularity-free workspace, paru
dans le Journal of Robotic Systems en 2002.

GIND5439 Gabriel Cormier, Universit de Moncton 74


Algorithme gntique: exemple
Il sagit ici faire le design dun robot parallle
pour atteindre un espace de travail pr-
dtermin.
Robot parallle: robot dont les membres sont en
parallle (ex: simulateurs de vol)
Espace de travail: lespace (les positions) que le
robot peut atteindre pour faire un travail
quelconque.

GIND5439 Gabriel Cormier, Universit de Moncton 75


Algorithme gntique: exemple
Le problme est le suivant: si on veut un
espace de travail quelconque, comment
designer le robot (dimensions physiques
comme la longueur des bras) pour quil
puisse atteindre cet espace de travail?
Si on connat les dimensions dun robot, il est
facile de calculer son espace de travail.
Cependant, on ne peut pas faire le calcul
inverse; il y a trop de possibilits, et pas
dquations inverses.

GIND5439 Gabriel Cormier, Universit de Moncton 76


Algorithme gntique: exemple

Exemple: robot parallle 3


membres.
Robot parallle

GIND5439 Gabriel Cormier, Universit de Moncton 77


Algorithme gntique: exemple

Espace de travail voulu

GIND5439 Gabriel Cormier, Universit de Moncton 78


Algorithme gntique: exemple
Le problme ici est assez complexe.
On a 6 variables optimiser.
La fonction objective est la diffrence daire
entre lespace de travail voulu et lespace de
travail rel.

GIND5439 Gabriel Cormier, Universit de Moncton 79


Algorithme gntique: exemple

volution de la performance

GIND5439 Gabriel Cormier, Universit de Moncton 80


Algorithme gntique: exemple
On voit bien quau fur et mesure que le
nombre de gnrations augmente, que la
diffrence daire diminue.
Lalgorithme gntique fut appliqu 4 types
de robots parallles, avec des rsultats
similaires.

GIND5439 Gabriel Cormier, Universit de Moncton 81


Optimisation par essaim de particules
Loptimisation par essaim de particules
(particle swarm optimization) est une
technique doptimisation dveloppe
rcemment (Kennedy et Eberhart, 1995).
Elle est base sur le comportement social de
groupes danimaux (poissons, oiseaux,
insectes).

GIND5439 Gabriel Cormier, Universit de Moncton 82


Optimisation par essaim de particules
Des simulations sont disponibles
http://www.engr.iupui.edu/~eberhart/web/PSObook.html

On peut expliquer lalgorithme par une


analogie:
Des abeilles sortent de la ruche pour trouver du
pollen des fleurs. Elles vont voler partout dans les
alentours de la ruche. Lorsquune abeille trouve
une bonne source, toutes les autres abeilles vont
converger vers ce point.

GIND5439 Gabriel Cormier, Universit de Moncton 83


Optimisation par essaim de particules
Lalgorithme doptimisation par essaim de
particules est encore plus simple que celui de
lalgorithme gntique.
On cre une population de particules.
Chaque particule reprsente une solution
possible au problme.
On suppose que 2 facteurs influencent le
comportement dune particule.
Facteur individuel (la particule).
Facteur social (les autres particules).

GIND5439 Gabriel Cormier, Universit de Moncton 84


Optimisation par essaim de particules
Chaque particule a une position, videment,
et aussi une vitesse: la particule se dplace
dans lespace de recherche.
La position future est fonction de 4 facteurs:
La position actuelle
La vitesse prcdente
La meilleure position obtenue de la particule
La meilleure position obtenue de toutes les
particules

GIND5439 Gabriel Cormier, Universit de Moncton 85


Optimisation par essaim de particules
La position est ajuste 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, rx est un
nombre alatoires entre 0 et 1, pi est la
meilleure position obtenue par la particule i,
et pg est la meilleure position obtenue par
nimporte quelle particule.
Typiquement, on limite la vitesse entre +Vmax
et Vmax.
GIND5439 Gabriel Cormier, Universit de Moncton 86
Optimisation par essaim de particules
Le pseudo-code pour lalgorithme est:
Crer une population initiale

Si la performance est meilleure que


Pour chaque particule, valuer
la meilleure performance obtenue,
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, Universit de Moncton 87


OEP: exemple
On va refaire lexemple de la fonction deux
variables:
2 x 2 ( y +1)2 x2 y 2
f ( x, y ) = (1 x) e (x x y ) e
3 3

Lintervalle de calcul est le mme: -3 +3.


Il faut dfinir la taille de la population. On
choisit une population de 20 particules.

GIND5439 Gabriel Cormier, Universit de Moncton 88


OEP: exemple
On cre alors une population de particules.
Ces particules ressembleront beaucoup aux
individus de lalgorithme gntique.
Ex: deux particules pourraient tre:
x y

P1 = {0.354, 1.671}
P2 = {2.094, -0.953}
Il faut valuer la performance des particules:
f(P1) = 0.2376
f(P2) = 0.0066

GIND5439 Gabriel Cormier, Universit de Moncton 89


OEP: exemple
Pour chacune des particules, si la
performance actuelle est meilleure que la
meilleure performance obtenue (pour cette
particule), alors pi = xi.
Ex:
Si la performance prcdente de la particule 1 tait
0.1135, alors p1 = {0.354, 1.671}
Il faut maintenant trouver la particule qui a la
meilleure performance. Ceci devient pg.

GIND5439 Gabriel Cormier, Universit de Moncton 90


OEP: exemple
On a maintenant toute linformation pour
calculer les nouvelles position.
v x v x px x px x

v = v + 1 r1 p + 2 r2 p
y i y i y i yi y g i
y

x x vx
y = y + v
i i y i
Pour chaque variable, on calcule une vitesse et une nouvelle position.

GIND5439 Gabriel Cormier, Universit de Moncton 91


OEP: exemple
1.8

1.6

1.4

1.2

1
Fitness

0.8

0.6

0.4

0.2 Maximum
Moyenne
0
0 10 20 30 40 50 60 70 80 90 100
Generation

Exemple de rsultat.

GIND5439 Gabriel Cormier, Universit de Moncton 92


OEP: exemple
Pour cet exemple, les rsultats obtenus sont
similaires ceux de lalgorithme gntique.
En gnral, cependant, il y a moins de
calculs faire avec loptimisation par essaim
de particules, puisquon a pas les oprations
de croisement, de RW, PR, etc.

GIND5439 Gabriel Cormier, Universit de Moncton 93