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 Chromosome B 1011001011001010111001 01 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

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.

Sélection

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 9 parent2 5 7 2 4 9| 6 3 8 1

enfant1 123457968 enfant2 572491368

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

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

318592647 318542697

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

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. 1 16 10000 Soit la population initiale : 1 16

Exemple de base (Goldberg[89])

2 3 4

7 13 21

2
sera codé3

7 13 21
séquence 10000 00111 01101 10101

00111 01101 10101
fitness 16 7 13 21 57 Total % 28 12 23 37 100

4
individu 1 2 3 4 Total

On évalue chaque solution :

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 2 3

10101 21 10000 16 10101 21

4 01101 13 On prend les individus 2 par 2. On coupe les chromosomes à une position aléatoire et on croise les parties coupées Parent 100|00 101|01 1|0101 0|1101 Enfant 10001 10100 11101 00101 1 2 3 4 17 20 29 5 10001 10100 11101 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 1 2 3 4 Total séquence 10001 10100 11101 00111 fitness 17 20 29 7 73 Total % 23 27 40 10 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

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

Bibliographie