Vous êtes sur la page 1sur 23

Module : Reconnaissance des

formes

Introduction aux algorithmes


génétiques

Préparé par:
BENACHOUR Ibrahim

2009/2010 1
Plan de l’exposé
I. Introduction
II. Domaine d’application
III. Principe générale
IV. Description de l’algorithme
V. Exemple
VI. Critiques
VII.conclusion

2
introduction
Les algorithmes génétiques (AGs) sont des algorithmes
d’optimisation stochastique fondés sur les mécanismes de la
sélection naturelle et de la génétique.
Les AGs ont été initialement développés par John Holland (1975),il décrit
comment appliquer les principes de la théorie d’évolution naturel sur
les problèmes d’optimisation.
C’est au livre de Goldberg (1989) que nous devons leur popularisation.
Tous les organismes vivants sont constitués de Cellules. Toutes les
cellules d’un organisme contiennent le même ensemble de
Chromosomes. Les Chromosomes sont constitués de Gènes, des
parties d’ADN. Un gène encode une protéine particulière.
On dit généralement qu’un gène encode un trait de l’individu (par
exemple la couleur des yeux). Les différents traits possibles sont
appelés allèles. Un gène a sa propre position sur le chromosome,
appelée locus.

3
Domaine d’application
Les applications des AG sont multiples :
• optimisation de fonctions numériques difficiles (discontinues…).
• traitement d’image (alignement de photos satellites, reconnaissance de suspects…).
• optimisation d’emplois du temps.
• optimisation de design.
• contrôle de systèmes industriels .
• apprentissage des réseaux de neurones
• Les AG peuvent être utilisés pour contrôler un système évoluant dans le temps (chaîne
de production, centrale nucléaire…).
• Les AG sont également utilisés pour optimiser des réseaux (câbles, fibres optiques, mais
aussi eau, gaz…), des antennes
• TSP (voyageur de commerce)
• Bin Packing - Remplissage de boites rectangulaires .
• Construction de réseaux de communication .
• Contrôle de pipe-lines et d'autres systèmes complexes.
• Constitution des équipes de travail.

4
Principe générale
Un algorithme génétique recherche les extrema d’une fonction
définie sur un espace de données appelé population initiale. Par
analogie avec la génétique, chaque individu de cette population
est un chromosome et chaque caractéristique de l’individu est un
gène

On part avec une population de solutions potentielles initiales , on


évalue leur performance(fitness).
Sur la base des ces performance on crée une nouvelle population de
solutions potentielles en utilisant des opérateurs évolutionnaires
simples (la sélection, croisement et la mutation).
On recommence ce cycle jusqu’à ce que l’on trouve une solution
optimale.

5
Algorithme

1) Initialiser la population initiale P.


2) Evaluer P.
3) TantQue (Pas Convergence) faire :
a) P ' = Sélection des Parents dans P
b) P ' = Appliquer Opérateur de Croisement sur P '
c) P ' = Appliquer Opérateur de Mutation sur P '
d) P = Remplacer les Anciens de P par leurs Descendants de P '
e) Evaluer P
FinTantQue

6
La fonction
d’adaptation(fitness)
Chaque chromosome apporte une solution potentielle au
problème à résoudre. Néanmoins, ces solutions n'ont pas
toutes le même degré de pertinence. C'est à la fonction de
performance (fitness) de mesurer cette efficacité pour
permettre à l'AG de faire évoluer la population dans un sens
bénéfique pour la recherche de la meilleure solution .
La fonction d’adaptation, ou fitness, associe une valeur pour
chaque individu. Cette valeur a pour but d’évaluer si un
individu est mieux adapté qu’un autre à son environnement.
Ce qui signifie qu’elle quantifie la réponse fournie au
problème pour une solution potentielle donnée.

7
Codage
Un chromosome doit contenir les informations sur la solution qu’il représente.
Codage binaire ( binary encoding):
Chaque chromosome est représenté par une série de bit (1 ou 0).

Chromosome A 1011001011001010111001
01
Chromosome B 1111111000001100000111
Codage réel: 11
Chaque chromosome est représenté par une série de valeurs, cette valeur est peut être
n’importe quoi lié au problème.

Codage de permutation:(Permutation Encoding)


Chaque chromosome est représenté par une série de nombre, qui représente la position
dans une séquence.
Ce codage est seulement utile dans les problème d’ordre (ordonner).ex: problème de
voyageur de commerce.

8
Sélection
Idée: sélectionner parmi tout les individus de la population les parents qui
assureront la reproduction.
La probabilité de survie d’un individu sera directement relié a son
efficacité au sein de la population.
Inspiration:
« survival of the fittest » devenu synonyme de la sélection naturel
de DARWIN.
Plus les individu sont adaptés au problème , plus ils ont de chance
d’être sélectionnée.
Problème:
pression forte: liée à la présence d’un «super» individu dans la
population
Méthode séléction:
sélection par roulette Wheel (loterie biaisée)
sélection élitiste
sélection par tournoi
sélection par rang
9
Sélection
Roulette Wheel:
Principe:
Meilleur individu a une chance .
Chance: proportionnelle a sa performance (fitness).
Implémentation:
-> assigné a chaque individu une part (secteur) dans la roulette Wheel
->tourner la roue n fois pour sélectionner n individu
->plus le secteur est grand plus les chromosomes auront de chance d’être sélectionnés.

Fitness(A)=3
Fitness(B)=1
Fitness(C)=2

Les désavantages:
Si un individu occupe 90 % de la roue ,les autres individus aurons une petite chance d’
être sélectionné.
Et rend la population trop peu diversifiée
Il est possible que les individus de mauvais qualité soient sélectionnée.

La plus connue.
Introduite par Goldberg[89] dans sont livre<<Genetic algorithms in search, optimization,
and machine learning>> 10
Sélection
Sélection élitiste
Sélectionne les meilleurs n individus de la population après l’avoir triée de manière
décroissante selon leurs fitness .

Sélection par tournoi


• Choix aléatoire de deux individu
• « combat »=évaluation des deux chromosomes
• Sélection du meilleur.
Répéter le processus n fois pour obtenir n individu de p.
Sélection par rang
Triée la population par fitness
Chaque individu se voit attribuée un rang
Le mauvais individu reçoit le rang 1 ,le suivant le rang 2 ,ainsi de suite jusqu’à le
nième chromosomes (meilleur fitness) qui aura le rang n (pour une population de
N chromosomes).

11
Croisement (Cross over)
Le croisement a pour but d'enrichir la diversité de la population en manipulant la structure des chromosomes.
S’il n y a pas de croisement les enfant sont exactement des copies de leurs parent.
C’est un Processus de recombinaison qui va se dérouler en trois étapes:
Un choix aléatoires de deux individus (parent).
Un choix aléatoires du point de croisements
Échanger les valeurs (informations ,paramètres) des deux parents par rapport de ce point de croisement.

Types de croisements
croisement simple à
un point :

Croisement multipoint

12
Croisement (Cross over)
Croisement spécifique:
Un croisement spécifique pour un problème spécifique.
Pour le codage de permutation:
Un point de croisement est choisie aléatoirement ,jusqu’à ce point les valeurs du
premier parent sont copié a l’enfant , puis le deuxième parent est scanner et
si une valeur ne se trouve pas dans l’enfant sera ajouté .

parent1 1 2 3 4 5| 6 7 8 enfant1 123457968


9 enfant2 572491368
parent2 5 7 2 4 9| 6 3 8
1
Pour le codage réel:
Tout les types de croisement du codage binaire peuvent être utilises.

13
Mutation
Son but est d’introduire un nouveau matériel génétique(génome).
C’est une assurance contre la perte irréversible du matériel génétique.
permet d’atteindre la propriétés de l’ergodicité.
(L'ergodicité est une propriété garantissant que chaque point de l'espace de recherche puisse être atteint.)
Le changement de la valeur allélique d’un gène a une probabilité Pm très faible ( ).
Flip bit:(inverser le bit)
Changer 0 à 1 et vise versa.
Cette méthode est utilisé seulement pour un codage binaire.
Pour un codage de permutation:
La mutation permute deux gènes d’un chromosome.

Avant 318592647
Pour un codage réel:
Apres 318542697
un petit nombre (pour un codage valeur réel) aux valeurs sélectionnés est additionnés (ou soustrait ).

avant 1.29  5.68  2.86  4.11  5.55

après 1.29  5.68  2.73  4.22  5.55


14
Remplacement
Son travail est de réintroduire les descendants obtenus par application successive
des opérateurs de sélection ,croisement et de mutation(p’) dans la population de
leurs parent (p)
Il ya deux méthodes de remplacement
Le remplacement stationnaire :
les enfants remplacent automatiquement les parents sans tenir compte de leurs
performances respectives.
mise en œuvre de 2 façons différentes :
• La première se contente de remplacer la totalité de la population P par la
population P', cette méthode est connue sous le nom de remplacement
générationnel .
• La deuxième méthode consiste à choisir une certaine proportion d'individus de P'
qui remplaceront leurs parents dans P (proportion égale à 100 % dans le cas du
remplacement générationnel).
Le remplacement élitiste:
un nouvel individu (enfant) prend place au sein de la population que s’il remplit le
critère d’être plus performant que le moins performant des individus de la
population précédente.

15
Critère d’arrêt (critère de
convergence)
Détermine quand le processus génétique arrête d’évolué.
plusieurs condition parmi eux:
Nombre maximale de génération:
L’algorithme arrête quand un nombre de génération est atteint.
Temps écoulé:
L’algorithme arrête quand un temps spécifique s’écoule.
Pas de changement de la performance(fitness):
L’algorithme arrête s’il n’ y a pas un changement de la fonction
fitness d’une population pour un nombre de génération spécifier.
le meilleur élément de la dernière génération atteint un seuil de
qualité fixé au départ.

16
Exemple de base
(Goldberg[89])
trouver le maximum de la fonction f(x) = x sur l'intervalle [0, 31] où x est un entier
naturel.
On a 32 valeurs possibles pour x on choisit donc un codage discret sur 5 bits.
On génère la population initiale de manière aléatoire.
On fixe la taille de la population à 4 individu.
On définit la fonction fitness comme étant la valeur X.(vu qu’on cherche la valeur
maximum sur l’intervalle [0,31],plus la valeur de x sera élevé plus on se rapproche
du maximum de la fonction donc plus la fitness est grande.
Soit
1 la population
16 initiale : 1 16 10000

2 7 2 7 00111

3 13 sera codé3 13 01101

4 21 4 21 10101

individu séquence fitness Total %


On évalue chaque solution :

1 10000 16 28

2 00111 7 12

3 01101 13 23

4 10101 21 37

Total 57 100
17
Exemple de base
On opte pour une sélection par la méthode roulette Wheel:
• On tire au hasard 4 nouvelles chaînes parmi les existantes en tenant compte de la
valeur de répartition. On obtient, par exemple:
1 10101 21

2 10000 16

3 10101 21

4
On prend les individus 2 par 2. On coupe les chromosomes à01101 13 aléatoire et on
une position
croise les parties coupées

Parent Enfant
1 17 10001
100|00 10001
2 20 10100
101|01 10100
3 29 11101
1|0101 11101
0|1101 00101 4 5 00101

18
Exemple de base
On a utilisé la méthode Flip bit
5: 00101 00111 :7
Puis on applique l'opérateur de remplacement qui décide de remplacer 100% de la
population P, la population P est donc entièrement remplacée par P' et sa taille reste fixe
:
individu séquence fitness Total %

1 10001 17 23

2 10100 20 27

3 11101 29 40

4 00111 7 10

Total 73 100

En une seule génération le maximum est passé de 21 à 29. On s'arrête ici pour cet exemple
mais dans la réalité
on continuera à engendrer des générations successives jusqu'à obtenir le maximum global :
31.

19
éléments méthodologiques
d’application des AG
on doit disposer des cinq éléments suivants :
1) Un principe de codage de l'élément de population. Cette étape associe à chacun des points
de l'espace d'état une structure de données. Elle se place généralement après une phase
de modélisation mathématique du problème traité. La qualité du codage des données
conditionne le succès des algorithmes génétiques

2) Un mécanisme de génération de la population initiale. Ce mécanisme doit être capable de


produire une population d'individus non homogène qui servira de base pour les
générations futures.
Le choix de la population initiale est important car il peut rendre plus ou moins rapide la
convergence vers l'optimum global. Dans le cas où l'on ne connaît rien du problème à
résoudre, il est essentiel que la population initiale soit répartie sur tout le domaine de
recherche.

3) Une fonction à optimiser. Celle-ci retourne une valeur appelée fitness ou fonction
d'évaluation de l'individu.

4) Des opérateurs permettant de diversifier la population au cours des générations et


d'explorer l'espace d'état. L'opérateur de croisement recompose les gènes d'individus
existant dans la population, l'opérateur de mutation a pour but de garantir l'exploration de
l'espace d'états.

5) Des paramètres : taille de la population, nombre total de générations ou


critère d'arrêt, probabilités d'application des opérateurs de croisement et de mutation.
20
critiques
Désavantages :  
• Difficulté de mise en forme permettant de profiter pleinement du rôle des
opérateurs génétiques : le choix de la représentation et la définition de la
fonction de fitness nécessitent une certaine ingéniosité(savoir-faire).

• Convergence prématurée difficile à détecter et à éviter.


• Le choix des paramètres (taille de population, taux de croisement, taux de
mutation, la méthode de sélection).
• Impossibilité de s’assuré de l’optimalité de la solution optimale.
 
Avantages : 
• Possibilité d'intégration des A.G dans d'autres méthodes comme les systèmes
d'apprentissage de façon à créer de nouveaux comportements ou les réseaux
de neurones afin d'en améliorer la structure et l'apprentissage.
• Dans le cas de recherche d’optimum de fonctions analytiques, on n’a besoin
ni de dérivabilité ni de continuité.

21
Conclusion
La performance des algorithmes génétiques dépend du codage et de
la fonction d’évaluation.
Aussi pour avoir un algorithme génétique efficace il faut y avoir un
choix judicieux des paramètres .
Les algorithme génétiques sont des systèmes originaux s'inspirant du
fonctionnement naturel .
les algorithmes génétiques peuvent constituer une alternative
intéressante pour des problèmes d’optimisation ou les méthodes
d’optimisation traditionnelles ne parviennent pas à fournir
efficacement des résultats fiables.

22
Bibliographie
Ouvrages électroniques(Ebooks):
• S.N.Sivanandam - S.N.Deepa , Introduction to Genetic Algorithms,
Springer,2008
• Andries P. Engelbrecht, Computational Intelligence An Introduction,
Wiley,2007
• Randy L. Haupt -Sue Ellen Haupt, PRACTICAL GENETIC ALGORITHMS,
Wiley ,2004
Thèse :
• Souquet Amédée -Radet Francois-Gérard , ALGORITHMES GENETIQUES ,Licence
informatique,
Université de Nice ,2004

Articles:
• Thomas Vallée - Murat Yıldızoğlu , Présentation des algorithmes génétiques et de leurs
applications en économie, 2003
• Mirza Nazrul Alam, Optimization of VLSI circuit by Genetic Algorithms, 2006
Site web:
http://www.developpez.net/forums/f921/autres-langages/algorithmes/intelligence-artificielle/
http://jgap.sourceforge.net/
http://sis.univ-tln.fr/~tollari/TER/AlgoGen1/node5.html
http://www.obitko.com/tutorials/genetic-algorithms
http://elearning.najah.edu/OldData/pdfs/Genetic.ppt

23