introduction aux algorithmes génétiques

23
Introduction aux algorithmes génétiques Préparé par: BENACHOUR Ibrahim 1 Module : Reconnaissance des formes 2009/2010

Upload: come-10

Post on 14-Jun-2015

1.867 views

Category:

Documents


7 download

DESCRIPTION

une Introduction aux algorithmes génétiques

TRANSCRIPT

Page 1: Introduction aux algorithmes génétiques

Introduction aux algorithmes génétiques

Préparé par:BENACHOUR Ibrahim

1

Module : Reconnaissance des formes 

2009/2010

Page 2: Introduction aux algorithmes génétiques

Plan de l’exposé

I. IntroductionII. Domaine d’applicationIII. Principe généraleIV. Description de l’algorithmeV. ExempleVI. CritiquesVII.conclusion

2

Page 3: Introduction aux algorithmes génétiques

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

Page 4: Introduction aux algorithmes génétiques

Domaine d’applicationLes 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

Page 5: Introduction aux algorithmes génétiques

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

Page 6: Introduction aux algorithmes génétiques

Algorithme

1) Initialiser la population initiale P.2) Evaluer P.3) TantQue (Pas Convergence) faire :a) P ' = Sélection des Parents dans Pb) 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 PFinTantQue

6

Page 7: Introduction aux algorithmes génétiques

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

Page 8: Introduction aux algorithmes génétiques

CodageUn 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).

Codage réel: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

Chromosome A 101100101100101011100101

Chromosome B 111111100000110000011111

Page 9: Introduction aux algorithmes génétiques

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 populationMéthode séléction: sélection par roulette Wheel (loterie biaisée) sélection élitiste sélection par tournoi sélection par rang

9

Page 10: Introduction aux algorithmes génétiques

SélectionRoulette 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.

10

Fitness(A)=3Fitness(B)=1Fitness(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éeIl 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>>

Page 11: Introduction aux algorithmes génétiques

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 fitnessChaque individu se voit attribuée un rangLe 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

Sélection

Page 12: Introduction aux algorithmes génétiques

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.

12

Types de croisements 

croisement simple à un point :

Croisement multipoint

Page 13: Introduction aux algorithmes génétiques

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é .

Pour le codage réel:Tout les types de croisement du codage binaire peuvent être utilises.

13

parent1 1 2 3 4 5| 6 7 8 9

parent2 5 7 2 4 9| 6 3 8 1

enfant1 123457968

enfant2 572491368

Page 14: Introduction aux algorithmes génétiques

MutationSon 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.

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

14

Avant 3 1 8 5 9 2 6 4 7 Apres 3 1 8 5 4 2 6 9 7

avant 1.29 5.68 2.86 4.11 5.55

après 1.29 5.68 2.73 4.22 5.55

Page 15: Introduction aux algorithmes génétiques

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 remplacementLe 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

Page 16: Introduction aux algorithmes génétiques

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

Page 17: Introduction aux algorithmes génétiques

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 la population initiale :

sera codé

On évalue chaque solution :

17

1 16

2 7

3 13

4 21

1 16 10000

2 7 00111

3 13 01101

4 21 10101

individu séquence fitness Total %

1 10000 16 28

2 00111 7 12

3 01101 13 23

4 10101 21 37

Total 57 100

Page 18: Introduction aux algorithmes génétiques

Exemple de baseOn 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:

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

18

1 10101 21

2 10000 16

3 10101 21

4 01101 13

Parent Enfant

100|00101|01

1000110100

1|01010|1101

1110100101

1 17 10001

2 20 10100

3 29 11101

4 5 00101

Page 19: Introduction aux algorithmes génétiques

Exemple de baseOn a utilisé la méthode Flip bit 5: 00101 00111 :7Puis 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 :

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

individu séquence fitness Total %

1 10001 17 23

2 10100 20 27

3 11101 29 40

4 00111 7 10

Total 73 100

Page 20: Introduction aux algorithmes génétiques

éléments méthodologiques d’application des AGon 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 oucritère d'arrêt, probabilités d'application des opérateurs de croisement et de mutation.

20

Page 21: Introduction aux algorithmes génétiques

critiquesDé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

Page 22: Introduction aux algorithmes génétiques

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

Page 23: Introduction aux algorithmes génétiques

BibliographieOuvrages é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 ,2004Thè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, 2006Site 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.htmlhttp://www.obitko.com/tutorials/genetic-algorithmshttp://elearning.najah.edu/OldData/pdfs/Genetic.ppt

23