SlideShare une entreprise Scribd logo
1  sur  58
Algorithmes et programmation
génétiques
Adapté de Jean-Christophe Routier et Michael Negnevitsky
Historique
Rechenberg (1963) : Stratégies évolutionnaires
(«Evolution strategies»). Utilisent la
mutation des paramètres pour
résoudre des problèmes d’optimisation
Holland (1975) : Algorithmes génétiques. Utilisent le
croisement, la mutation et la
reproduction d’individus
Koza (1992) : Programmation génétique. Permet de
trouver le code informatique optimal
pour résoudre un problème
Introduction
 Les algorithmes génétiques (AG) font partie des
algorithmes évolutifs
 Adaptés à la recherche de solution dans un espace
caractérisé par un grand nombre de dimensions et de
minima locaux
 Fondés sur la simulation des mécanismes de la
sélection naturelle et de la génétique
processus d'évolution et d'adaptation en milieu
naturel
 Algorithmes d'exploration stochastique
Caractéristiques des AG
 Les AG se distinguent des méthodes classiques
(énumératives ou basées sur gradient) de recherche
dans un espace d'états car ils :
 utilisent un codage des paramètres du problème
 travaillent sur une population et pas sur une
unique situation
 éviter le piège d'un minimum local
 utilisent des valeurs de la fonction étudiée
 pas sa dérivée ni une fonction auxiliaire
 utilisent des règles de transition probabilistes
 pas déterministes
Principes
 Modélisation :
 États de l'espace de recherche  chaînes de symboles :
Les individus ou
chromosomes
 Ensemble des individus  La population
 La population évolue au cours de la résolution
 On mesure l'adaptation (« fitness ») de chaque
individu à l’espace de recherche
 adéquation comme solution
 Evolution :
 D'une génération à l'autre, on cherche à conserver
les individus les mieux adaptés pour les reproduire
et appliquer à leur descendance des opérateurs
génétiques
 Dépend du problème.
 Exemples possibles :
 comparaison d ’images nombre de pixels semblables
 contrôle d ’un robot nombre de chocs contre les
murs
 classification nombre d ’exemples bien
classés
 vie artificielle quantité moyenne de
nourriture ingérée dans
une simulation
 régression de fonction somme ou variance des
erreurs sur un jeu d ’exemples
Évaluation, calcul de l’adaptation (1)
 Fonctions d’adaptation usuelles :
 somme des erreurs absolues entre les valeurs calculées
et valeur attendues en sortie, pour chacun des fitness
cases :
 Somme des carrés des écarts entre valeur calculée et
valeur attendue (« squared error ») :
 On utilise aussi la variance, l’écart-type, l’écart-type relatif
 Souvent on normalise la fonction d’adaptation :
fs est nul dans le cas idéal, >0 autrement
 




n
i
i
i s
e
P
1

 
 
2
1




n
i
i
i s
e
P

s
a
f
1
1
f


Évaluation, calcul de l’adaptation (2)
Évaluation, calcul de l’adaptation (3)
 Exemple : régression symbolique /de fonction
• On recherche une fonction à une entrée et une sortie
satisfaisant le tableau suivant :
# cas entrée: e i sortie: s i
1 1 2
2 2 6
3 4 20
4 7 56
5 9 90
Chaque ligne représente un exemple d ’apprentissage ou « fitness
case » : pour chaque valeur en entrée, on connait la valeur de
sortie que doit approximer au mieux le programme ; on va calculer
le degré d’adaptation de ce dernier au fur et à mesure
opérations génétiques
enfants conservés en
fonction de leur adaptation
Algorithme de base
génération 0
(population
aléatoire)
génération n :
individus les mieux adaptés =
meilleure approximation de la solution du problème
génération 1
Algorithme
initialiser la population (générer aléatoirement une population de N
chromosomes x)
calculer le degré d'adaptation f(x) de chaque individu
Tant que non fini ou non convergence
reproduction des parents
sélectionner 2 individus à la fois
appliquer les opérateurs génétiques
calculer le degré d'adaptation f(x) de chaque enfant
sélectionner les survivants parmi les parents et les enfants
fin Tant que
conclure
peut être soumis à de nombreuses variantes

Les opérateurs génétiques
Les 3 plus courants :
 reproduction : le nombre de descendants d'un
chromosome suit son degré d'adaptation
 méthode de la roulette, du rang ou du tournoi
 croisement (« crossover ») : 1-point ou 2-point
 mutation
 Les taux de croisement et de mutation appliqués lors
de la genèse d'une nouvelle population sont des
paramètres de l'algorithme
 Le taux de mutation est généralement faible
 On travaille généralement à population constante.
Méthode de la roulette
Pour chaque chromosome i on calcule son degré d'adaptation fi et
on pose :
100



i
i
i
i
f
f
p
On crée une roulette biaisée où chaque i occupe une portion pi.
Pour déterminer les descendants d'une génération de taille n, il faut n tirag
exemple : maximiser f(x) =x² avec n= 4 pris dans [0, 31]
i chaîne fi % total
1 01101 169 14.4
2 11000 576 49.2
3 01000 64 5.5
4 10011 361 30.9
Total 1170 100
Lors d'un tirage la chaîne 1 occupe 14.4% de la roue de loterie, il y
a une probabilité de 0.144 que l'on obtienne une copie de cet
individu
Méthode du rang
• Les parents sont d`abord triés par ordre d’adaptation (valeur de f),
en commençant par les moins performants :
Le plus faible a un score de 1,
Le deuxième plus faible a un score de 2
Le troisième plus faible a un score de 3
Etc.
• On divise chaque score par la somme de tous les scores:
• On procède ensuite comme pour la roulette ; la méthode donne
plus de chance aux chromosomes les plus faibles d’être repêchés
Méthode du tournoi
 Partant de la population de n chromosomes, on forme n
paires au hasard et on détermine le vainqueur dans
chacune par sa valeur de f. Dans les paramètres de l'AG,
on détermine une probabilité de victoire du plus
chromosome le plus fort, représentant sa chance d'être
sélectionné par la suite. Cette probabilité doit être grande
(entre 70% et 100%). A partir des n paires, on sélectionne
ainsi n individus pour la reproduction.
Le croisement
• Croisement à 1 point
2 chromosomes de taille l.
On choisit aléatoirement un entier k entre 1 et l-1.
k représente le point de croisement des deux chaînes
On crée 2 nouveaux individus
en échangeant les caractères
des chaînes initiales compris
entre k+1 et l
exemple : l=5 et k= 3
C1 = 0 1 1 | 0 1
C2 = 1 1 0 | 0 0
C1 = 0 1 1 | 0 1
C2 = 1 1 0 | 0 0
C1,2
C2,1
= 0 1 1 | 0 0
= 1 1 0 | 0 1
Espérance d’amélioration de nouvelles générations
Le croisement
• Croisement à 2 points
2 chromosomes de taille l.
On considère qu’ils forment chacun un anneau fermé et on
choisit aléatoirement 2 entiers k1 et k2 compris entre 1 et l-1.
k1 et k2 représentent les points de croisement des deux
chaînes
exemple : l=10, k1= 1 et k2=8
C1 = 0 | 1 1 1 0 0 1 1 | 1
1
C2 = 1 | 1 1 0 0 0 0 0 | 0
0
C1,2 = 1 | 1 1 1 0 0 1 1 | 0
0
C2,1 = 0 | 1 1 1 0 0 1 1 | 1
1
On crée 2 nouveaux individus en échangeant les caractères
des chaînes initiales compris entre k1+1 et k2
La mutation
Il s'agit de la modification aléatoire de la valeur d'un caractère de la chaîne
Pour un codage binaire, elle consiste simplement à changer un 0 en un 1
(et réciproquement)
Le taux de mutation est généralement choisi très faible ( 0.001)
 pour chaque caractère des descendants, probabilité de 1/1000
qu'il mute
Si la mutation joue un rôle secondaire (dû au taux faible), elle
permet l'exploration de dimensions (éventuellement utiles),
abandonnées (à tort) par le processus de sélection ou absentes de
la population initiale.
Permet de sortir de minima locaux
La sélection
On travaille à population constante
génération g
opérateurs
reproduction
génération g
+
descendants
sélection
génération g+1
Plusieurs stratégies :
 générationnelle : tous les descendants remplacent tous les parents
 introduction du "generation gap" = pourcentage des parents remplacés
Quels individus conserver ?
il est naturel de conserver les mieux adaptés :
 utilisation de la roulette biaisée
 on garde strictement les meilleurs
 la stratégie k-élitiste : on garde systématiquement les k meilleurs
individus d'une génération sur l'autre
Cycle de vie d’un algorithme génétique
Initialisation des paramètres
 Croisement
 La probabilité varie de 0 à 100% :
 0 % (pas de croisement) => clones parfaits
 100% => pas de clones
 Mutation
 Probabilité variant de 0% à 100%
 Probabilité normalement faible (~1/1000)
 Taille de la population
 Une petite taille limite l’exploration de l’espace
 Une grande taille réduit la vitesse de convergence
Exemple de variante de l'algorithme 
n = taille de la population c = taux de croisement
l = nombre de caractères de chaque individu m = taux de mutation
initialiser une population (n individus)
calculer le degré d'adaptation de chaque individu
Tant que non fini ou non convergence
sélectionner les cn meilleurs individus, les apparier et effectuer
un
croisement pour obtenir les nouveaux individus
chacun des l caractères des nouveaux individus mute avec une
probabilité m
ne conserver que les n meilleurs individus
calculer le degré d'adaptation de chaque individu
fin Tant que
conclure
Exemple détaillé
optimiser f(x)=x² pour x entre 0 et 31 population de n= 4 individus
Choix du codage du paramètre : x codé en binaire sur l=5 caractères.
un individu  {0,1}5
degré d'adaptation : on peut utiliser f directement dans ce cas.
génération initiale et pré-calculs
1
2
0
1
4
n° chaîne x f (x) pi
attendus
nx pi
obtenus
1 0 1 1 0 1 13 169 0,14 0,58
2 1 1 0 0 0 24 576 0,49 1,97
3 0 1 0 0 0 8 64 0,06 0,22
4 1 0 0 1 1 19 361 0,31 1,23
Total 1170 1 4
moyenne 293
max 576
Croisement
0 1 1 0 | 0
1 1 0 0 | 1
1 1 | 0 1 1
1 0 | 0 0 0
12
25
27
16
144
625
729
256
1754
439
729
individu partenaireposition
croisement
obtenu x f (x)
0 1 1 0 | 1 2 4
1 1 0 0 | 0 1 4
1 1 | 0 0 0 4 2
1 0 | 0 1 1 3 2
Total
Moyenne
Max
On essaie une mutation de 0,001 et rien n'est modifié.
Il faut maintenant sélectionner les survivants et recommencer
Exemple détaillé
Mutation
Pourquoi ça marche ?
un caractère
d'un individu
=
une
information
croisement =
échange
d'informations entre
individus
=
formation de
nouveaux "points de
vue"
(par destruction)
la mutation = dimension aléatoire
éviter l’oubli de caractéristiques
sortir d'un minimum local
reproduction
et
sélection
favoriser les informations
présentes dans les individus les
mieux adaptés
Théorème des schémas
On peut montrer que la place réservée (i.e. le nombre de
représentants) aux individus dont l'adaptation est supérieure à la
moyenne augmente exponentiellement au fil des générations.
On appelle schéma un motif de chaîne dans lequel le joker *
remplace indifféremment un 1 ou un 0.
110001
et
101000
Les
schémas
1**00* et
1*****
sont présents
dans les
individus
1**00* et
1*****
L'algorithme a pour conséquence la conservation au cours des
générations des schémas les mieux adaptés.
On comprend bien que :
Le schéma 1**1* a moins de chance d'être transmis que le schéma
**11*, même si ils apparaissent dans le même individu (10110).
(longueur utile des schémas)
Donc :
les informations représentés par des portions de chaînes
(gènes) seront plus facilement transmises
et les "meilleures" portions seront peu à peu
sélectionnées et assemblées au sein d'un même (ou de
quelques) individu(s).
Le théorème des schémas indique que :
les schémas les mieux adaptés apparaissent avec une
occurrence exponentiellement croissante au cours des
générations.
si m(S,t) est le nombre d'occurrences du schéma S à la génération t.
))
négatif
effet
(
1
(
)
,
(
)
,
(
)
1
( 



 opérateur
p
f
t
S
f
t
S
m
S,t
m
probabilité de
survie due aux
opérateurs
f=fitness
Un exemple plus évolué
 On veut trouver le maximum de la fonction :
où x et y varient entre 3 et 3.
 La première étape consiste à représenter les variables du
problème sous forme de chromosomes : x et y sont écrit sous
forme de deux chaînes binaire concaténées de m bits chacune
(m=8 dans l’exemple) :
2
2
2
2
)
(
)
1
(
)
,
( 3
3
)
1
(
2 y
x
y
x
e
y
x
x
e
x
y
x
f 









1 0
0 0 1 1
0 0 0 1
0 1 1 1
0 1
y
x
 Ensuite, on fixe la taille de la population de chromosomes (e.g.
N=6) et on génère une population initiale.
 L’adaptation de chaque chromosome est alors calculée en
plusieurs étapes :
1. La chaîne de 16 bits est séparée en deux mots de 8 bits :
10
0
1
2
3
4
5
6
7
2 )
138
(
2
0
2
1
2
0
2
1
2
0
2
0
2
0
2
1
)
10001010
( 
















and
10
0
1
2
3
4
5
6
7
2 )
59
(
2
1
2
1
2
0
2
1
2
1
2
1
2
0
2
0
)
00111011
( 
















2. Les deux mots sont convertis en décimal :
1 0
0 0 1 1
0 0 0 1
0 1 1 1
0 1
et
3. Les résultats sont convertis de l’intervalle [0,255] à [-3,3]
611
.
1
3
255
6
*
59
247
.
0
3
255
6
*
138 




4. L’adaptation du chromosome est alors donnée par
f (0.247,-1.611)
 On répète l’étape précédente pour chaque chromosome avant
de passer aux transformations génétiques.
 Pour trouver le maximum de la fonction, on utilisera une
probabilité de croisement de 0.7 et une probabilité de mutation
de 0.001. Le nombre de générations est fixé à 100
(l’algorithme génétique créera au plus, 100 générations de
chromosomes avant de s’arrêter).
Positions de la population de chromosomes
sur la surface de la fonction f(x,y)
Initiale 1ère génération
Maximum local Maximum global
Courbe de performance pour 100
générations de 6 chromosomes
pc = 0.7, pm = 0.001
G e n e r a t i o n s
Best
Average
80 90 100
60 70
40 50
20 30
10
0
-0.1
0.5
0.6
0.7
F
i
t
n
e
s
s
0
0.1
0.2
0.3
0.4
Best
Average
100
G e n e r a t i o n s
80 90
60 70
40 50
20 30
10
pc = 0.7, pm = 0.01
1.8
F
i
t
n
e
s
s
0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
Maximum local Maximum global
pc=prob. Croisement ; pm=prob. mutation
Courbe de performance pour 20 générations
de 60 chromosomes
pc = 0.7, pm = 0.001
Best
Average
20
G e n e r a t i o n s
16 18
12 14
8 10
4 6
2
0
F
i
t
n
e
s
s
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
1.8
Un autre exemple
Choix du codage :
 2 variables : 2 parties de
chaîne
 précision du calcul
(l = nb caractères par variable)
 on divise l'intervalle de
recherche en 2l parties
 codage d'un intervalle par
code de Gray
²)²)²
²
(
001
.
0
0
.
1
(
5
.
0
)²
²
²
(sin
5
.
0
)
,
(
y
x
y
x
y
x
f






(P. Preux)
Résultats
Chaque variable est codée sur 30 bits (chromosomes de 60 bits)
L'intervalle de recherche est [-5.12 , 5.12] pour chacune des
variables, ce qui donne une précision de l'ordre de 10-8.
Expérience avec les paramètres :
croisement : 0.6 - mutation : 0.001 - stratégie élitiste
Sur 10000 évaluations, au moins 95% des chromosomes
convergent vers une bonne approximation de la solution dans 30%
des expériences.
Commentaires :
 les mutations influent sur le fait que l'on n'obtient pas (0 ; 0)
 une augmentation du taux de croisement améliore le résultat
 une augmentation du taux de mutation dégrade les résultats
 si codage binaire : même qualité de résultats
 une stratégie non élitiste pénalise la vitesse de convergence.
Étapes de développement d’un algorithme
génétique
1. Spécification du problème, définition des contraintes
et des critères d’optimalité ;
2. Encodage du domaine du problème sous forme de
chromosome ;
3. Définition de la fonction d’adaptabilité pour évaluer la
performance du chromosome ;
4. Définition des opérateurs génétiques ;
5. Application de l’algorithme et réglage fin subséquents
des paramètres.
Encodage
 Codage binaire (données binaires)
Chromosome A 101100101100101011100101
Chromosome B 111111100000110000011111
Problème du sac à dos
 Codage de permutation (données entières)
Chromosome A 1 5 3 2 6 4 7 9 8
Chromosome B 8 5 6 7 2 3 1 4 9
Problème du voyageur de commerce
 Codage par valeur (type de données quelconque)
Chromosome A 1.2324 5.3243 0.4556 2.3293 2.4545
Chromosome B ABDJEIFJDHDIERJFDLDFLFEGT
Chromosome C (back),(back),(right),(forward),(left)
Calcul des poids d’un réseau
 Codage par structure
Structure d’arbre
Programmation génétique
La programmation génétique
 Algorithmes évolutionnaires plus récents (travaux de John
Koza dans les années 90).
 PG parcourt l’espace des programmes à la recherche de
celui hautement adapté à la solution d’un problème donné.
 Tout programme d’ordinateur est une séquence d’opérations
(fonctions) appliquées à des valeurs (arguments) ; les
différents langages de programmation diffèrent par les type
d’instructions et d’opérations, en plus de constructions
syntaxiques différentes.
 PG manipule les programmes à l’aide d’opérateurs
génétiques, ils sont traités comme des données à
transformer qui, une fois modifiées, deviennent de nouveaux
programmes. Un langage bien adapté à ce genre de
manipulations est LISP.
LISP 101
 Langage à structure de données de type orienté-symbole.
Les structures de bases sont les atomes et les listes.
 Un atome est le plus petit élément indivisible dans la
syntaxe de LISP (e.g. le nombre 21, le symbole X ou la
chaîne de caractères “Ceci est une chaîne”).
 Une liste est un objet composé d’atomes et/ou d’autres
listes.
 Les listes de LISP sont écrites comme une collection
ordonnée d’items entre une paire de parenthèses.
Ainsi, la liste
( (* A B) C)
demande de soustraire deux arguments, la liste (*A B) et
l’atome C. Mais d’abord, il faut multiplier les atomes A et B.
LISP 101
 Les atomes et les listes sont appelés des expressions
symboliques ou « S-expression ».
 Toutes les données et tous les programmes sont des S-
expressions, ce qui permet au langage de traiter les
programmes comme des données.
 En particulier, les programmes en LISP peut s’auto-
modifier ou générer de nouveaux programmes, ce qui
rend le langage attirant pour la programmation
génétique.
B
A
* C

 Toute S-expression peut être
représentée par un arbre.
S-expression ( (*A B) C)
Comment appliquer la programmation
génétique
 Avant d’appliquer la programmation génétique à
un problème, il faut accomplir cinq étapes
préliminaires :
1.Définir les terminaux
Entrées du programme
2.Choisir les fonctions à utiliser
Opérations arithmétiques, expressions de programme, sous programmes,
fonctions mathématiques, etc.
3.Définir la fonction d’adaptation
Souvent une fonction d’erreur
4.Choisir les paramètres d’exécution
Même que pour GA
5.Choisir la méthode de sélection du meilleur résultat
Généralement le meilleur programme à un instant donné
Population initiale
 On fixe une profondeur maximale pour les arbres.
 Création d’arbres aléatoires par 2 méthodes principales :
• « grow » : chaque nœud est tiré dans l ’ensemble
{terminaux} + {fonctions}
 les arbres sont de forme irrégulière
• « full » : on ne peut tirer un terminal que lorsque l’on est
à la profondeur maximum
 arbres équilibrés et « pleins »
 Une synthèse, la méthode « ramped half & half » :
• on va générer équitablement des arbres de profondeurs
régulièrement échelonnées :
2, 3, 4, …, maximum
• à chaque profondeur, une moitié est générée par la
méthode « full », l ’autre par la méthode « grow »
 L ’objectif est d ’obtenir plus de variabilité dans la
population. C’est la méthode préférentielle
actuellement.
L’adaptation et la sélection
 Le choix de la fonction d’adaptation se fait de
manière similaire aux AGs
 On retrouve aussi les méthodes de sélection
utilisées dans les AGs :
• sélection proportionnelle au degré
d’adaptation, avec normalisation éventuelle («
scaling »)
• sélection basé sur le rang de l ’individu dans la
population (« ranking »)
• sélection par tournoi : la plus courante, car
rapide et facilement parallélisable
a
*
a

a b

( ( (sqrt ( (* a a) ( a b))) a) (* a b))

a b
*
sqrt

a

b

a
sqrt
b


( ( (sqrt ( (* b b) a)) b) (sqrt ( a b)))
b
a
*
b
sqrt
a
*
a

a b


sqrt

a

b

a
sqrt

b
a b
*
b

a
*
b
sqrt
( ( (sqrt ( (* a a) ( a b))) a) (sqrt ( (* b b) a))) ( ((* a b) b) (sqrt ( a b)))
Opérateurs Génétiques : Croisement
Opérateurs Génétiques : Mutation
+
IF
>
1 2
3 4
TIME 10
+
1 2 -
X X
• Destruction d ’un sous-arbre
• Remplacement par un sous-arbre aléatoire, créé comme
lors de la génération de la population initiale.
Note sur les opérateurs génétiques
 Le croisement ou la mutation sont susceptibles
de transformer n’importe quel sous-arbre
argument d’une fonction.
 Les fonctions doivent être capables d ’accepter
toutes sortes de valeurs en argument, et il est
préférable qu ’elle aient toutes le même type de
valeur de retour (propriété de clôture)
Exemple : remplacer la division standard par la
division « protégée » qui renvoie 0 ou un grand
entier en cas de division par 0.
Un exemple de mise en œuvre
 On veut trouver un programme qui calcule la fonction
 On dispose des 10 cas d’adaptation suivants, choisis
au hasard parmi les domaines des variables a et b :
2
2
b
a
c 

a b c a b c
3 5 5.830952 12 10 15.620499
8 14 16.124515 21 6 21.840330
18 2 18.110770 7 4 8.062258
32 11 33.837849 16 24 28.844410
4 3 5.000000 2 9 9.219545
Les 5 étapes préliminaires
1. Identification des terminaux : a et b
2. Choix des fonctions à utiliser : +, -, *, / et sqrt
3. Définition de la fonction d’adaptabilité : somme des
erreurs quadratiques sur tous les cas entre le résultat
calculé et celui donné par le tableau précédent
4. Paramètres : Taille de la population et nombre de
générations
5. Méthode de sélection du meilleur programme : le meilleur
à chaque génération.
Une fois ces étapes franchies, on génère au hasard une
population initiale de programmes candidats et on part le
cycle de reproduction on appliquant les opérations de
croisement, mutation et clonage à chaque génération
Historique de la meilleure s-expression
F
i
t
n
e
s
s,
%
0 1 2 3 4
0
20
40
60
80
100
a
*
a b b
*
sqrt

G e n e r a t i o n s B e s t o f g e n e r a t i o n
 L’algorithme converge vers la bonne solution en 5
itérations
Un exemple plus évolué
Ref.: Artificial intelligence : A new Synthesis par Nils J. Nilsson
• le Problème : • un programme solution
Un robot doit suivre le
contour indiqué; trouver la
suite d’instructions à
suivre.
Les fonctions autorisées :
if/3
and/2 or/2 not/1
north south east west (déplacements)
s se sw e ne nw n w (tests d'obstacles  capteurs)
 population = 5000 individus (initialement aléatoire)
 sélection par
• tournoi (10%)
• croisement (90 %)
 Adaptation : on teste le programme sur 10 essais
valeur = nbre cas du contour explorées (max = 320)
opération de croisement
Avantages de la PG sur les AG
 Approches évolutionnaires similaires, mais PG
n’est pas restreint à des chromosomes de
longueur fixée à priori.
 Les éléments des expressions peuvent être de
complexités différentes en comparaison des
éléments dans les chaînes utilisées dans les AG.
 Comme dans AG, la représentation du problème
en termes de chromosomes n’est pas évidente et
peut mener à des fausses solutions si mal faite.
Classifieurs
apprentissage par AG et systèmes experts génétiques
 chromosome = classifieur  {0,1,*}2l
= règle = condition ({0,1,*}2l ) + conclusion
({0,1}l)
 zone de mémorisation des messages (à la tableau noir)
 message ({0,1}l) = résultat du déclenchement d'une règle
 génération par un AG de nouvelles règles
 sélection des classifieurs les plus utiles et disparition des moins
intéressants
Principe
La condition d'un classifieur joue le rôle d'un filtre (*=joker), si un
message correspond, le classifieur est alerté.
Un classifieur alerté est susceptible d'envoyer un message s’il est
activé.
Le choix du (ou des) classifieur(s) activé(s) se fait par un système
d'enchères où le crédit d'une règle est proportionnel à sa force (i.e.
son degré d'adaptation, son importance).
Lorsqu'un message est utilisé, le montant des enchères relatives à
son exploitation est mis au crédit de la règle qui l'a produit.
 Régulièrement un AG produit de nouveaux classifieurs.
 La force d'une règle donne son degré d'adaptation (pour l'AG).
 Seule une partie des règles est remplacée et la sélection utilise
le plus souvent une roulette biaisée.
 Les nouvelles règles introduites participent alors aux enchères
suivantes, etc.
Enchères ("bucket brigade")
n° classifieur
1 01**:0000
2 00*0:1100
3 11**:1000
4 **00:0001
Env
Force Msg Al. Ench.
200 Env 20
200
200
200
20 0101
t=1
Force Msg Al. Ench.
180 0000
200 1 20
200
200 1 20
20
t=2
Force Msg Al. Ench.
220
180 1100
200 2 20
180 0001 2 18
20
t=3
n° classifieur
1 01**:0000
2 00*0:1100
3 11**:1000
4 **00:0001
Env
Force Msg Al. Ench.
220
218
180 1000
162 0001 3 16
20
t=4
Force Msg Al. Ench.
220
218
196
156 0001
20
t=5 t =5
Force
220
218
196
206
20
prime
dernier
actif
50
Applications
 Tri (Kinnear), gestion de caches (Paterson et al.),
compression de données (Nordin et al.), ...
 Reconnaissance d’images (Robinson et al.), classification
d’images (Zao), traitement d’images satellitaires (Daïda), ...
 Prédiction de séries temporelles (Lee), génération d ’arbres
de décisions (Koza), datamining (Raymer), …
 Classification de segments d’ADN (Handley), de protéines
(Koza et al.), ...
 Synthèse de circuits électroniques (Koza),
 Planification de déplacements de robot (Faglia et al.),
évitement d ’obstacles (Reynolds) , mouvement de bras
robotisés (Howley), …
 Modélisation en mécanique (Schoenauer et al.), …
Quelques pointeurs
 Références
• Genetic Programming I,II & III, 1992, 1994, 1998, John Koza
et al.
• Genetic Programming: an introduction, 1998, Banzhaf et al.
• Advances in Genetic Programming I,II, 1994 Kinear, 1996,
Angeline et al.
• Machine Learning, Tom Mitchell, 1996
• Artificial intelligence : A new Synthesis, Nils J. Nilsson, 1998
 Logiciels
ftp://ftp.io.com/pub/genetic-programming/code/
koza-book-gp-implementation.lisp
http://garage.cp.msu.edu:software/lil-gp

Contenu connexe

Similaire à Into_GA.ppt

Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Statistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptxStatistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptxTarekDHAHRI1
 
Statistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptxStatistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptxTarekDHAHRI1
 
14284 chapitre-8-statistique
14284 chapitre-8-statistique14284 chapitre-8-statistique
14284 chapitre-8-statistiqueAlilo Mabhoour
 
Exos genetique des pop
Exos genetique des popExos genetique des pop
Exos genetique des popchrafIssaoui
 
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...MohamedAmineHACHICHA1
 
Td1 modelisation ess
Td1 modelisation essTd1 modelisation ess
Td1 modelisation essElsa von Licy
 
Genetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptx
Genetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptxGenetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptx
Genetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptxImenBoussandel
 
Clustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanClustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanMedalith Estrada
 
algorithme genetique et ingenerie genetique
algorithme genetique et ingenerie genetiquealgorithme genetique et ingenerie genetique
algorithme genetique et ingenerie genetiquekhmanal49
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfAdjimbawNDIAYE
 
1ère s cours sur fonctions polynômes de degré quelconque
1ère s cours sur fonctions polynômes de degré quelconque1ère s cours sur fonctions polynômes de degré quelconque
1ère s cours sur fonctions polynômes de degré quelconqueKhaled Naas
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdfhanamettali
 
Arbres de régression et modèles de durée
Arbres de régression et modèles de duréeArbres de régression et modèles de durée
Arbres de régression et modèles de duréeKezhan SHI
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdfSidiAbdallah1
 

Similaire à Into_GA.ppt (20)

Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Statistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptxStatistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptx
 
Statistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptxStatistiques descriptives [PDF].pptx
Statistiques descriptives [PDF].pptx
 
Réseaux partie 2.ppt
Réseaux partie 2.pptRéseaux partie 2.ppt
Réseaux partie 2.ppt
 
14284 chapitre-8-statistique
14284 chapitre-8-statistique14284 chapitre-8-statistique
14284 chapitre-8-statistique
 
Exos genetique des pop
Exos genetique des popExos genetique des pop
Exos genetique des pop
 
Cox
CoxCox
Cox
 
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
Calibration de modèles d'agents de marchés financiers par une démarche d'infé...
 
Cours cluster si2e
Cours cluster si2eCours cluster si2e
Cours cluster si2e
 
Td1 modelisation ess
Td1 modelisation essTd1 modelisation ess
Td1 modelisation ess
 
Genetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptx
Genetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptxGenetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptx
Genetics Science Presentation in Blue Yellow Flat Graphic Style (1).pptx
 
Clustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanClustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregman
 
algorithme genetique et ingenerie genetique
algorithme genetique et ingenerie genetiquealgorithme genetique et ingenerie genetique
algorithme genetique et ingenerie genetique
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
 
1ère s cours sur fonctions polynômes de degré quelconque
1ère s cours sur fonctions polynômes de degré quelconque1ère s cours sur fonctions polynômes de degré quelconque
1ère s cours sur fonctions polynômes de degré quelconque
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
Stat1
Stat1Stat1
Stat1
 
Classifieur d'entropie maximale (MaxEnt)
Classifieur d'entropie maximale (MaxEnt)Classifieur d'entropie maximale (MaxEnt)
Classifieur d'entropie maximale (MaxEnt)
 
Arbres de régression et modèles de durée
Arbres de régression et modèles de duréeArbres de régression et modèles de durée
Arbres de régression et modèles de durée
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
 

Dernier

conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
DISPOSITIFS-MEDICAUX-PPT.pdf............
DISPOSITIFS-MEDICAUX-PPT.pdf............DISPOSITIFS-MEDICAUX-PPT.pdf............
DISPOSITIFS-MEDICAUX-PPT.pdf............cheddadzaineb
 

Dernier (20)

conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
DISPOSITIFS-MEDICAUX-PPT.pdf............
DISPOSITIFS-MEDICAUX-PPT.pdf............DISPOSITIFS-MEDICAUX-PPT.pdf............
DISPOSITIFS-MEDICAUX-PPT.pdf............
 

Into_GA.ppt

  • 1. Algorithmes et programmation génétiques Adapté de Jean-Christophe Routier et Michael Negnevitsky
  • 2. Historique Rechenberg (1963) : Stratégies évolutionnaires («Evolution strategies»). Utilisent la mutation des paramètres pour résoudre des problèmes d’optimisation Holland (1975) : Algorithmes génétiques. Utilisent le croisement, la mutation et la reproduction d’individus Koza (1992) : Programmation génétique. Permet de trouver le code informatique optimal pour résoudre un problème
  • 3. Introduction  Les algorithmes génétiques (AG) font partie des algorithmes évolutifs  Adaptés à la recherche de solution dans un espace caractérisé par un grand nombre de dimensions et de minima locaux  Fondés sur la simulation des mécanismes de la sélection naturelle et de la génétique processus d'évolution et d'adaptation en milieu naturel  Algorithmes d'exploration stochastique
  • 4. Caractéristiques des AG  Les AG se distinguent des méthodes classiques (énumératives ou basées sur gradient) de recherche dans un espace d'états car ils :  utilisent un codage des paramètres du problème  travaillent sur une population et pas sur une unique situation  éviter le piège d'un minimum local  utilisent des valeurs de la fonction étudiée  pas sa dérivée ni une fonction auxiliaire  utilisent des règles de transition probabilistes  pas déterministes
  • 5. Principes  Modélisation :  États de l'espace de recherche  chaînes de symboles : Les individus ou chromosomes  Ensemble des individus  La population  La population évolue au cours de la résolution  On mesure l'adaptation (« fitness ») de chaque individu à l’espace de recherche  adéquation comme solution  Evolution :  D'une génération à l'autre, on cherche à conserver les individus les mieux adaptés pour les reproduire et appliquer à leur descendance des opérateurs génétiques
  • 6.  Dépend du problème.  Exemples possibles :  comparaison d ’images nombre de pixels semblables  contrôle d ’un robot nombre de chocs contre les murs  classification nombre d ’exemples bien classés  vie artificielle quantité moyenne de nourriture ingérée dans une simulation  régression de fonction somme ou variance des erreurs sur un jeu d ’exemples Évaluation, calcul de l’adaptation (1)
  • 7.  Fonctions d’adaptation usuelles :  somme des erreurs absolues entre les valeurs calculées et valeur attendues en sortie, pour chacun des fitness cases :  Somme des carrés des écarts entre valeur calculée et valeur attendue (« squared error ») :  On utilise aussi la variance, l’écart-type, l’écart-type relatif  Souvent on normalise la fonction d’adaptation : fs est nul dans le cas idéal, >0 autrement       n i i i s e P 1      2 1     n i i i s e P  s a f 1 1 f   Évaluation, calcul de l’adaptation (2)
  • 8. Évaluation, calcul de l’adaptation (3)  Exemple : régression symbolique /de fonction • On recherche une fonction à une entrée et une sortie satisfaisant le tableau suivant : # cas entrée: e i sortie: s i 1 1 2 2 2 6 3 4 20 4 7 56 5 9 90 Chaque ligne représente un exemple d ’apprentissage ou « fitness case » : pour chaque valeur en entrée, on connait la valeur de sortie que doit approximer au mieux le programme ; on va calculer le degré d’adaptation de ce dernier au fur et à mesure
  • 9. opérations génétiques enfants conservés en fonction de leur adaptation Algorithme de base génération 0 (population aléatoire) génération n : individus les mieux adaptés = meilleure approximation de la solution du problème génération 1
  • 10. Algorithme initialiser la population (générer aléatoirement une population de N chromosomes x) calculer le degré d'adaptation f(x) de chaque individu Tant que non fini ou non convergence reproduction des parents sélectionner 2 individus à la fois appliquer les opérateurs génétiques calculer le degré d'adaptation f(x) de chaque enfant sélectionner les survivants parmi les parents et les enfants fin Tant que conclure peut être soumis à de nombreuses variantes 
  • 11. Les opérateurs génétiques Les 3 plus courants :  reproduction : le nombre de descendants d'un chromosome suit son degré d'adaptation  méthode de la roulette, du rang ou du tournoi  croisement (« crossover ») : 1-point ou 2-point  mutation  Les taux de croisement et de mutation appliqués lors de la genèse d'une nouvelle population sont des paramètres de l'algorithme  Le taux de mutation est généralement faible  On travaille généralement à population constante.
  • 12. Méthode de la roulette Pour chaque chromosome i on calcule son degré d'adaptation fi et on pose : 100    i i i i f f p On crée une roulette biaisée où chaque i occupe une portion pi. Pour déterminer les descendants d'une génération de taille n, il faut n tirag exemple : maximiser f(x) =x² avec n= 4 pris dans [0, 31] i chaîne fi % total 1 01101 169 14.4 2 11000 576 49.2 3 01000 64 5.5 4 10011 361 30.9 Total 1170 100 Lors d'un tirage la chaîne 1 occupe 14.4% de la roue de loterie, il y a une probabilité de 0.144 que l'on obtienne une copie de cet individu
  • 13. Méthode du rang • Les parents sont d`abord triés par ordre d’adaptation (valeur de f), en commençant par les moins performants : Le plus faible a un score de 1, Le deuxième plus faible a un score de 2 Le troisième plus faible a un score de 3 Etc. • On divise chaque score par la somme de tous les scores: • On procède ensuite comme pour la roulette ; la méthode donne plus de chance aux chromosomes les plus faibles d’être repêchés
  • 14. Méthode du tournoi  Partant de la population de n chromosomes, on forme n paires au hasard et on détermine le vainqueur dans chacune par sa valeur de f. Dans les paramètres de l'AG, on détermine une probabilité de victoire du plus chromosome le plus fort, représentant sa chance d'être sélectionné par la suite. Cette probabilité doit être grande (entre 70% et 100%). A partir des n paires, on sélectionne ainsi n individus pour la reproduction.
  • 15. Le croisement • Croisement à 1 point 2 chromosomes de taille l. On choisit aléatoirement un entier k entre 1 et l-1. k représente le point de croisement des deux chaînes On crée 2 nouveaux individus en échangeant les caractères des chaînes initiales compris entre k+1 et l exemple : l=5 et k= 3 C1 = 0 1 1 | 0 1 C2 = 1 1 0 | 0 0 C1 = 0 1 1 | 0 1 C2 = 1 1 0 | 0 0 C1,2 C2,1 = 0 1 1 | 0 0 = 1 1 0 | 0 1 Espérance d’amélioration de nouvelles générations
  • 16. Le croisement • Croisement à 2 points 2 chromosomes de taille l. On considère qu’ils forment chacun un anneau fermé et on choisit aléatoirement 2 entiers k1 et k2 compris entre 1 et l-1. k1 et k2 représentent les points de croisement des deux chaînes exemple : l=10, k1= 1 et k2=8 C1 = 0 | 1 1 1 0 0 1 1 | 1 1 C2 = 1 | 1 1 0 0 0 0 0 | 0 0 C1,2 = 1 | 1 1 1 0 0 1 1 | 0 0 C2,1 = 0 | 1 1 1 0 0 1 1 | 1 1 On crée 2 nouveaux individus en échangeant les caractères des chaînes initiales compris entre k1+1 et k2
  • 17. La mutation Il s'agit de la modification aléatoire de la valeur d'un caractère de la chaîne Pour un codage binaire, elle consiste simplement à changer un 0 en un 1 (et réciproquement) Le taux de mutation est généralement choisi très faible ( 0.001)  pour chaque caractère des descendants, probabilité de 1/1000 qu'il mute Si la mutation joue un rôle secondaire (dû au taux faible), elle permet l'exploration de dimensions (éventuellement utiles), abandonnées (à tort) par le processus de sélection ou absentes de la population initiale. Permet de sortir de minima locaux
  • 18. La sélection On travaille à population constante génération g opérateurs reproduction génération g + descendants sélection génération g+1 Plusieurs stratégies :  générationnelle : tous les descendants remplacent tous les parents  introduction du "generation gap" = pourcentage des parents remplacés Quels individus conserver ? il est naturel de conserver les mieux adaptés :  utilisation de la roulette biaisée  on garde strictement les meilleurs  la stratégie k-élitiste : on garde systématiquement les k meilleurs individus d'une génération sur l'autre
  • 19. Cycle de vie d’un algorithme génétique
  • 20. Initialisation des paramètres  Croisement  La probabilité varie de 0 à 100% :  0 % (pas de croisement) => clones parfaits  100% => pas de clones  Mutation  Probabilité variant de 0% à 100%  Probabilité normalement faible (~1/1000)  Taille de la population  Une petite taille limite l’exploration de l’espace  Une grande taille réduit la vitesse de convergence
  • 21. Exemple de variante de l'algorithme  n = taille de la population c = taux de croisement l = nombre de caractères de chaque individu m = taux de mutation initialiser une population (n individus) calculer le degré d'adaptation de chaque individu Tant que non fini ou non convergence sélectionner les cn meilleurs individus, les apparier et effectuer un croisement pour obtenir les nouveaux individus chacun des l caractères des nouveaux individus mute avec une probabilité m ne conserver que les n meilleurs individus calculer le degré d'adaptation de chaque individu fin Tant que conclure
  • 22. Exemple détaillé optimiser f(x)=x² pour x entre 0 et 31 population de n= 4 individus Choix du codage du paramètre : x codé en binaire sur l=5 caractères. un individu  {0,1}5 degré d'adaptation : on peut utiliser f directement dans ce cas. génération initiale et pré-calculs 1 2 0 1 4 n° chaîne x f (x) pi attendus nx pi obtenus 1 0 1 1 0 1 13 169 0,14 0,58 2 1 1 0 0 0 24 576 0,49 1,97 3 0 1 0 0 0 8 64 0,06 0,22 4 1 0 0 1 1 19 361 0,31 1,23 Total 1170 1 4 moyenne 293 max 576
  • 23. Croisement 0 1 1 0 | 0 1 1 0 0 | 1 1 1 | 0 1 1 1 0 | 0 0 0 12 25 27 16 144 625 729 256 1754 439 729 individu partenaireposition croisement obtenu x f (x) 0 1 1 0 | 1 2 4 1 1 0 0 | 0 1 4 1 1 | 0 0 0 4 2 1 0 | 0 1 1 3 2 Total Moyenne Max On essaie une mutation de 0,001 et rien n'est modifié. Il faut maintenant sélectionner les survivants et recommencer Exemple détaillé Mutation
  • 24. Pourquoi ça marche ? un caractère d'un individu = une information croisement = échange d'informations entre individus = formation de nouveaux "points de vue" (par destruction) la mutation = dimension aléatoire éviter l’oubli de caractéristiques sortir d'un minimum local reproduction et sélection favoriser les informations présentes dans les individus les mieux adaptés
  • 25. Théorème des schémas On peut montrer que la place réservée (i.e. le nombre de représentants) aux individus dont l'adaptation est supérieure à la moyenne augmente exponentiellement au fil des générations. On appelle schéma un motif de chaîne dans lequel le joker * remplace indifféremment un 1 ou un 0. 110001 et 101000 Les schémas 1**00* et 1***** sont présents dans les individus 1**00* et 1***** L'algorithme a pour conséquence la conservation au cours des générations des schémas les mieux adaptés. On comprend bien que : Le schéma 1**1* a moins de chance d'être transmis que le schéma **11*, même si ils apparaissent dans le même individu (10110). (longueur utile des schémas)
  • 26. Donc : les informations représentés par des portions de chaînes (gènes) seront plus facilement transmises et les "meilleures" portions seront peu à peu sélectionnées et assemblées au sein d'un même (ou de quelques) individu(s). Le théorème des schémas indique que : les schémas les mieux adaptés apparaissent avec une occurrence exponentiellement croissante au cours des générations. si m(S,t) est le nombre d'occurrences du schéma S à la génération t. )) négatif effet ( 1 ( ) , ( ) , ( ) 1 (      opérateur p f t S f t S m S,t m probabilité de survie due aux opérateurs f=fitness
  • 27. Un exemple plus évolué  On veut trouver le maximum de la fonction : où x et y varient entre 3 et 3.  La première étape consiste à représenter les variables du problème sous forme de chromosomes : x et y sont écrit sous forme de deux chaînes binaire concaténées de m bits chacune (m=8 dans l’exemple) : 2 2 2 2 ) ( ) 1 ( ) , ( 3 3 ) 1 ( 2 y x y x e y x x e x y x f           1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 y x
  • 28.  Ensuite, on fixe la taille de la population de chromosomes (e.g. N=6) et on génère une population initiale.  L’adaptation de chaque chromosome est alors calculée en plusieurs étapes : 1. La chaîne de 16 bits est séparée en deux mots de 8 bits : 10 0 1 2 3 4 5 6 7 2 ) 138 ( 2 0 2 1 2 0 2 1 2 0 2 0 2 0 2 1 ) 10001010 (                  and 10 0 1 2 3 4 5 6 7 2 ) 59 ( 2 1 2 1 2 0 2 1 2 1 2 1 2 0 2 0 ) 00111011 (                  2. Les deux mots sont convertis en décimal : 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 et 3. Les résultats sont convertis de l’intervalle [0,255] à [-3,3] 611 . 1 3 255 6 * 59 247 . 0 3 255 6 * 138      4. L’adaptation du chromosome est alors donnée par f (0.247,-1.611)
  • 29.  On répète l’étape précédente pour chaque chromosome avant de passer aux transformations génétiques.  Pour trouver le maximum de la fonction, on utilisera une probabilité de croisement de 0.7 et une probabilité de mutation de 0.001. Le nombre de générations est fixé à 100 (l’algorithme génétique créera au plus, 100 générations de chromosomes avant de s’arrêter).
  • 30. Positions de la population de chromosomes sur la surface de la fonction f(x,y) Initiale 1ère génération Maximum local Maximum global
  • 31. Courbe de performance pour 100 générations de 6 chromosomes pc = 0.7, pm = 0.001 G e n e r a t i o n s Best Average 80 90 100 60 70 40 50 20 30 10 0 -0.1 0.5 0.6 0.7 F i t n e s s 0 0.1 0.2 0.3 0.4 Best Average 100 G e n e r a t i o n s 80 90 60 70 40 50 20 30 10 pc = 0.7, pm = 0.01 1.8 F i t n e s s 0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 Maximum local Maximum global pc=prob. Croisement ; pm=prob. mutation
  • 32. Courbe de performance pour 20 générations de 60 chromosomes pc = 0.7, pm = 0.001 Best Average 20 G e n e r a t i o n s 16 18 12 14 8 10 4 6 2 0 F i t n e s s 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8
  • 33. Un autre exemple Choix du codage :  2 variables : 2 parties de chaîne  précision du calcul (l = nb caractères par variable)  on divise l'intervalle de recherche en 2l parties  codage d'un intervalle par code de Gray ²)²)² ² ( 001 . 0 0 . 1 ( 5 . 0 )² ² ² (sin 5 . 0 ) , ( y x y x y x f       (P. Preux)
  • 34. Résultats Chaque variable est codée sur 30 bits (chromosomes de 60 bits) L'intervalle de recherche est [-5.12 , 5.12] pour chacune des variables, ce qui donne une précision de l'ordre de 10-8. Expérience avec les paramètres : croisement : 0.6 - mutation : 0.001 - stratégie élitiste Sur 10000 évaluations, au moins 95% des chromosomes convergent vers une bonne approximation de la solution dans 30% des expériences. Commentaires :  les mutations influent sur le fait que l'on n'obtient pas (0 ; 0)  une augmentation du taux de croisement améliore le résultat  une augmentation du taux de mutation dégrade les résultats  si codage binaire : même qualité de résultats  une stratégie non élitiste pénalise la vitesse de convergence.
  • 35. Étapes de développement d’un algorithme génétique 1. Spécification du problème, définition des contraintes et des critères d’optimalité ; 2. Encodage du domaine du problème sous forme de chromosome ; 3. Définition de la fonction d’adaptabilité pour évaluer la performance du chromosome ; 4. Définition des opérateurs génétiques ; 5. Application de l’algorithme et réglage fin subséquents des paramètres.
  • 36. Encodage  Codage binaire (données binaires) Chromosome A 101100101100101011100101 Chromosome B 111111100000110000011111 Problème du sac à dos  Codage de permutation (données entières) Chromosome A 1 5 3 2 6 4 7 9 8 Chromosome B 8 5 6 7 2 3 1 4 9 Problème du voyageur de commerce  Codage par valeur (type de données quelconque) Chromosome A 1.2324 5.3243 0.4556 2.3293 2.4545 Chromosome B ABDJEIFJDHDIERJFDLDFLFEGT Chromosome C (back),(back),(right),(forward),(left) Calcul des poids d’un réseau  Codage par structure Structure d’arbre
  • 38. La programmation génétique  Algorithmes évolutionnaires plus récents (travaux de John Koza dans les années 90).  PG parcourt l’espace des programmes à la recherche de celui hautement adapté à la solution d’un problème donné.  Tout programme d’ordinateur est une séquence d’opérations (fonctions) appliquées à des valeurs (arguments) ; les différents langages de programmation diffèrent par les type d’instructions et d’opérations, en plus de constructions syntaxiques différentes.  PG manipule les programmes à l’aide d’opérateurs génétiques, ils sont traités comme des données à transformer qui, une fois modifiées, deviennent de nouveaux programmes. Un langage bien adapté à ce genre de manipulations est LISP.
  • 39. LISP 101  Langage à structure de données de type orienté-symbole. Les structures de bases sont les atomes et les listes.  Un atome est le plus petit élément indivisible dans la syntaxe de LISP (e.g. le nombre 21, le symbole X ou la chaîne de caractères “Ceci est une chaîne”).  Une liste est un objet composé d’atomes et/ou d’autres listes.  Les listes de LISP sont écrites comme une collection ordonnée d’items entre une paire de parenthèses. Ainsi, la liste ( (* A B) C) demande de soustraire deux arguments, la liste (*A B) et l’atome C. Mais d’abord, il faut multiplier les atomes A et B.
  • 40. LISP 101  Les atomes et les listes sont appelés des expressions symboliques ou « S-expression ».  Toutes les données et tous les programmes sont des S- expressions, ce qui permet au langage de traiter les programmes comme des données.  En particulier, les programmes en LISP peut s’auto- modifier ou générer de nouveaux programmes, ce qui rend le langage attirant pour la programmation génétique. B A * C   Toute S-expression peut être représentée par un arbre. S-expression ( (*A B) C)
  • 41. Comment appliquer la programmation génétique  Avant d’appliquer la programmation génétique à un problème, il faut accomplir cinq étapes préliminaires : 1.Définir les terminaux Entrées du programme 2.Choisir les fonctions à utiliser Opérations arithmétiques, expressions de programme, sous programmes, fonctions mathématiques, etc. 3.Définir la fonction d’adaptation Souvent une fonction d’erreur 4.Choisir les paramètres d’exécution Même que pour GA 5.Choisir la méthode de sélection du meilleur résultat Généralement le meilleur programme à un instant donné
  • 42. Population initiale  On fixe une profondeur maximale pour les arbres.  Création d’arbres aléatoires par 2 méthodes principales : • « grow » : chaque nœud est tiré dans l ’ensemble {terminaux} + {fonctions}  les arbres sont de forme irrégulière • « full » : on ne peut tirer un terminal que lorsque l’on est à la profondeur maximum  arbres équilibrés et « pleins »  Une synthèse, la méthode « ramped half & half » : • on va générer équitablement des arbres de profondeurs régulièrement échelonnées : 2, 3, 4, …, maximum • à chaque profondeur, une moitié est générée par la méthode « full », l ’autre par la méthode « grow »  L ’objectif est d ’obtenir plus de variabilité dans la population. C’est la méthode préférentielle actuellement.
  • 43. L’adaptation et la sélection  Le choix de la fonction d’adaptation se fait de manière similaire aux AGs  On retrouve aussi les méthodes de sélection utilisées dans les AGs : • sélection proportionnelle au degré d’adaptation, avec normalisation éventuelle (« scaling ») • sélection basé sur le rang de l ’individu dans la population (« ranking ») • sélection par tournoi : la plus courante, car rapide et facilement parallélisable
  • 44. a * a  a b  ( ( (sqrt ( (* a a) ( a b))) a) (* a b))  a b * sqrt  a  b  a sqrt b   ( ( (sqrt ( (* b b) a)) b) (sqrt ( a b))) b a * b sqrt a * a  a b   sqrt  a  b  a sqrt  b a b * b  a * b sqrt ( ( (sqrt ( (* a a) ( a b))) a) (sqrt ( (* b b) a))) ( ((* a b) b) (sqrt ( a b))) Opérateurs Génétiques : Croisement
  • 45. Opérateurs Génétiques : Mutation + IF > 1 2 3 4 TIME 10 + 1 2 - X X • Destruction d ’un sous-arbre • Remplacement par un sous-arbre aléatoire, créé comme lors de la génération de la population initiale.
  • 46. Note sur les opérateurs génétiques  Le croisement ou la mutation sont susceptibles de transformer n’importe quel sous-arbre argument d’une fonction.  Les fonctions doivent être capables d ’accepter toutes sortes de valeurs en argument, et il est préférable qu ’elle aient toutes le même type de valeur de retour (propriété de clôture) Exemple : remplacer la division standard par la division « protégée » qui renvoie 0 ou un grand entier en cas de division par 0.
  • 47. Un exemple de mise en œuvre  On veut trouver un programme qui calcule la fonction  On dispose des 10 cas d’adaptation suivants, choisis au hasard parmi les domaines des variables a et b : 2 2 b a c   a b c a b c 3 5 5.830952 12 10 15.620499 8 14 16.124515 21 6 21.840330 18 2 18.110770 7 4 8.062258 32 11 33.837849 16 24 28.844410 4 3 5.000000 2 9 9.219545
  • 48. Les 5 étapes préliminaires 1. Identification des terminaux : a et b 2. Choix des fonctions à utiliser : +, -, *, / et sqrt 3. Définition de la fonction d’adaptabilité : somme des erreurs quadratiques sur tous les cas entre le résultat calculé et celui donné par le tableau précédent 4. Paramètres : Taille de la population et nombre de générations 5. Méthode de sélection du meilleur programme : le meilleur à chaque génération. Une fois ces étapes franchies, on génère au hasard une population initiale de programmes candidats et on part le cycle de reproduction on appliquant les opérations de croisement, mutation et clonage à chaque génération
  • 49. Historique de la meilleure s-expression F i t n e s s, % 0 1 2 3 4 0 20 40 60 80 100 a * a b b * sqrt  G e n e r a t i o n s B e s t o f g e n e r a t i o n  L’algorithme converge vers la bonne solution en 5 itérations
  • 50. Un exemple plus évolué Ref.: Artificial intelligence : A new Synthesis par Nils J. Nilsson • le Problème : • un programme solution Un robot doit suivre le contour indiqué; trouver la suite d’instructions à suivre. Les fonctions autorisées : if/3 and/2 or/2 not/1 north south east west (déplacements) s se sw e ne nw n w (tests d'obstacles  capteurs)
  • 51.  population = 5000 individus (initialement aléatoire)  sélection par • tournoi (10%) • croisement (90 %)  Adaptation : on teste le programme sur 10 essais valeur = nbre cas du contour explorées (max = 320) opération de croisement
  • 52.
  • 53. Avantages de la PG sur les AG  Approches évolutionnaires similaires, mais PG n’est pas restreint à des chromosomes de longueur fixée à priori.  Les éléments des expressions peuvent être de complexités différentes en comparaison des éléments dans les chaînes utilisées dans les AG.  Comme dans AG, la représentation du problème en termes de chromosomes n’est pas évidente et peut mener à des fausses solutions si mal faite.
  • 54. Classifieurs apprentissage par AG et systèmes experts génétiques  chromosome = classifieur  {0,1,*}2l = règle = condition ({0,1,*}2l ) + conclusion ({0,1}l)  zone de mémorisation des messages (à la tableau noir)  message ({0,1}l) = résultat du déclenchement d'une règle  génération par un AG de nouvelles règles  sélection des classifieurs les plus utiles et disparition des moins intéressants
  • 55. Principe La condition d'un classifieur joue le rôle d'un filtre (*=joker), si un message correspond, le classifieur est alerté. Un classifieur alerté est susceptible d'envoyer un message s’il est activé. Le choix du (ou des) classifieur(s) activé(s) se fait par un système d'enchères où le crédit d'une règle est proportionnel à sa force (i.e. son degré d'adaptation, son importance). Lorsqu'un message est utilisé, le montant des enchères relatives à son exploitation est mis au crédit de la règle qui l'a produit.  Régulièrement un AG produit de nouveaux classifieurs.  La force d'une règle donne son degré d'adaptation (pour l'AG).  Seule une partie des règles est remplacée et la sélection utilise le plus souvent une roulette biaisée.  Les nouvelles règles introduites participent alors aux enchères suivantes, etc.
  • 56. Enchères ("bucket brigade") n° classifieur 1 01**:0000 2 00*0:1100 3 11**:1000 4 **00:0001 Env Force Msg Al. Ench. 200 Env 20 200 200 200 20 0101 t=1 Force Msg Al. Ench. 180 0000 200 1 20 200 200 1 20 20 t=2 Force Msg Al. Ench. 220 180 1100 200 2 20 180 0001 2 18 20 t=3 n° classifieur 1 01**:0000 2 00*0:1100 3 11**:1000 4 **00:0001 Env Force Msg Al. Ench. 220 218 180 1000 162 0001 3 16 20 t=4 Force Msg Al. Ench. 220 218 196 156 0001 20 t=5 t =5 Force 220 218 196 206 20 prime dernier actif 50
  • 57. Applications  Tri (Kinnear), gestion de caches (Paterson et al.), compression de données (Nordin et al.), ...  Reconnaissance d’images (Robinson et al.), classification d’images (Zao), traitement d’images satellitaires (Daïda), ...  Prédiction de séries temporelles (Lee), génération d ’arbres de décisions (Koza), datamining (Raymer), …  Classification de segments d’ADN (Handley), de protéines (Koza et al.), ...  Synthèse de circuits électroniques (Koza),  Planification de déplacements de robot (Faglia et al.), évitement d ’obstacles (Reynolds) , mouvement de bras robotisés (Howley), …  Modélisation en mécanique (Schoenauer et al.), …
  • 58. Quelques pointeurs  Références • Genetic Programming I,II & III, 1992, 1994, 1998, John Koza et al. • Genetic Programming: an introduction, 1998, Banzhaf et al. • Advances in Genetic Programming I,II, 1994 Kinear, 1996, Angeline et al. • Machine Learning, Tom Mitchell, 1996 • Artificial intelligence : A new Synthesis, Nils J. Nilsson, 1998  Logiciels ftp://ftp.io.com/pub/genetic-programming/code/ koza-book-gp-implementation.lisp http://garage.cp.msu.edu:software/lil-gp