Sommaire Algorithmes génétiques …………………………………..3

publicité
GA|PM
Sommaire
Algorithmes génétiques …………………………………..3
Introduction……………………………………………….3
Définition …………………………………………………3
Rapport biologique vs informatique ………...………….3
Principe de base ……………...…………………………..3
Les opérateurs génétiques ……………………………….4
1.
2.
3.
4.
5.
L’opérateur d’initialisation ……………………….4
L’opérateur de sélection …………..………………4
L’opérateur de croisement (crossover) ……….….5
L’opérateur de mutation ………………………….5
Remplacement ……………………………………..5
Exemple ……..……………………………………………5
Domaines …………………………………...…………….6
Avantages et inconvénients..…….………………………6
GA|MP…………………………………………………….7
Principe ……………………………………….………….8
Domaine ……………………………………….…………9
Conclusion ……………………………………………….9
Référencées ……………………………………………..10
-2-
GA|PM
Algorithmes génétiques
Introduction :
Il existe de nombreux algorithmes évolutionnaires et nous ne pouvons pas parler des algorithmes
génétiques sans mentionner les méthodes de programmation évolutionnaire développée par Fogel
[1966] et les stratégies évolutionnaires développées indépendamment par Rechenberg [1973] et
Schwefel [1981]. Ils ont contribué énormément à l’intérêt porté aux algorithmes évolutionnaires.
Définition :
Les algorithmes génétiques sont des méthodes basées sur les mécanismes biologiques tels que les
lois de Mendel et sur le principe fondamental (sélection) de Charles Darwin [1859]. Holland exposa
les principes de ces algorithmes pour permettre aux ordinateurs "d’imiter les êtres vivants en évoluant"
pour rechercher la solution à un problème. Il expliqua d’abord comment ajouter de l’intelligence dans
un programme informatique avec les croisements (échange du matériel génétique) et la mutation
(source de la diversité génétique).
Plus récemment, Goldberg enrichit la théorie des algorithmes génétiques en s’appuyant sur le
parallèle suivant [1989] :
– un individu est lié à un environnement par son code d’ADN,
– une solution est liée à un problème par son indice de qualité,
– une "bonne" solution à un problème donné peut être vue comme un individu susceptible de survivre
dans un environnement donné.[1]
Rapport biologique vs informatique :
Au siècle dernier, Charles Darwin observa les phénomènes naturels et fit les constatations suivantes
[1859] :
– L’évolution n’agit pas directement sur les êtres vivants ; elle opère en réalité sur les
chromosomes contenus dans leur ADN.
– L’évolution a deux composantes : la sélection et la reproduction. La sélection garantit une
reproduction plus fréquente des chromosomes des êtres vivants les plus robustes.
– La reproduction est la phase durant laquelle s’effectue l’évolution.
La terminologie employée est empruntée à la génétique :
– Les chromosomes sont les éléments à partir desquels sont élaborées les solutions (individus).
– La population est l’ensemble des chromosomes.
– La reproduction est l’étape de combinaison des chromosomes. La mutation et le croisement
génétiques sont des méthodes de reproduction.
D’autres notions sont propres au domaine des algorithmes génétiques. [1]
Principe de base :
Les algorithmes génétiques simulent le processus d’évolution d’une population. A partir d’une
population de N solutions du problème représentant des individus, on applique des opérateurs simulant
les interventions sur le génome tel que le croisement (cross-over) ou la mutation pour arriver à une
population de solutions de mieux en mieux adaptée au problème. Cette adaptation est évaluée grâce à
une fonction coût.
-3-
GA|PM
Les opérateurs génétiques :
1. L’opérateur d’initialisation :
Cet opérateur est utilisé pour générer la population initiale de l’algorithme génétique. La population
initiale doit contenir des chromosomes qui soient bien répartis dans l’espace des solutions pour fournir
à l’algorithme génétique un matériel génétique varié. La façon la plus simple est de générer
aléatoirement les chromosomes.
2. L’opérateur de sélection :
La sélection tend à augmenter l’importance des bonnes solutions par rapport aux mauvaises.
C’est une heuristique utilisée par l’algorithme génétique : les bonnes solutions sont supposées être
les plus prometteuses pour la génération de descendants.
Il existe plusieurs méthodes de sélection. Les plus connues sont la sélection proportionnelle à la
fonction fitness, la sélection sur le rang et la sélection en tournoi.
L’indice de qualité (fitness), aussi appelé indice de performance, est une mesure abstraite permettant
de classer les chromosomes.
-4-
GA|PM
3. L’opérateur de croisement (crossover) :
L’opérateur de croisement combine le matériel de un ou plusieurs parents pour obtenir un ou
plusieurs enfants. Il existe différents types de croisement, nous allons brièvement présenter les trois
principaux : Le croisement un point détermine aléatoirement un point de coupure et échange la
deuxième partie des deux parents. Le croisement deux points (qui peut être étendu à points) possède
2 points (ou ) de coupures qui sont déterminés aléatoirement. Enfin le crossover uniforme échange
chaque bit avec une probabilité fixé à ½.
4. L’opérateur de mutation :
Le rôle de la mutation consiste à faire apparaître de nouveaux gènes. Cet opérateur introduit une
diversité nécessaire à l’exploration de l’espace de recherche en permettant de générer des points dans
des régions a priori sans intérêt .La mutation la plus simple sur un chromosome change un bit de façon
aléatoire. Un chromosome a une probabilité de mutation d’un taux
.
5. Remplacement :
Cette dernière étape du processus itératif consiste en l’incorporation des nouvelles solutions dans la
population courante. Les nouvelles solutions sont ajoutées à la population courante en remplacement
(total ou partiel) des anciennes solutions. Généralement, les meilleures solutions remplacent les plus
mauvaises ; il en résulte une amélioration de la population. Lorsque la nouvelle population n’est
constituée que de nouvelles solutions, on parle d’algorithme génétique générationnel.
Exemple :
Problème : On cherche à optimiser (Max) la fonction
= sur l’intervalle [0.31].
Taille de la population entre 0 et 30 en codage binaire sur 5 bits (00000 à 11111).
La population initiale constituée de 4 individus choisis arbitrairement :
13
de code
01101
24
de code
11000
8
de code
01000
19
de code
10011
Fonction de performance pour chaque individu : correspond à
= . On en déduit la
fonction fitness qui est une répartition par pourcentage de ces performances.
Ventes
13=>169
24=>576
8=>64
14%
31%
49%
6%
-5-
19=>361
GA|PM
On tire au hasard 4 nouvelles chaînes parmi les existantes en tenant compte de la valeur de
répartition. On obtient, par exemple : 13, 24, 24 et 19.
On prend les individus 2 par 2. On coupe les chromosomes à une position aléatoire et on
croise les parties coupées :
13 :0110||1
24 :1100||0
01100=12
11001=21
24 :11||000
19 :10||011
11011=27
10111=16
On opère par tirage aléatoire à partir d’une probabilité de mutation définie initialement. On
prend ici 0,05 donc sur les 20 bits des 4 chromosomes, on suppose qu’un seul allèle a été
sélectionné et mute.12 :01100 => 01000 =8
8, 21, 27, 16.
Si on somme les performances, on obtient 1490 au lieu de 1170 à la génération précédente.
Domaines :
Les algorithmes génétiques ont été largement utilisés dans le cadre de l’extraction de
connaissances.
On les retrouve dans toutes les tâches principales. Leur application en sélection d’attributs a surtout été
réalisée en optimisation mono-objectif à l’aide de méthodes enveloppantes notamment avec le
classifier K-Nearest-Neighbor, avec un réseau de neurones ou avec des tables de décisions
euclidiennes. En optimisation multi-objectif, les travaux sont plus rares. Leur application à la sélection
d’attributs pour le clustering est relativement peu fréquente.
Les algorithmes génétiques sont régulièrement utilisés pour réaliser une tâche de clustering. Les
Différents algorithmes proposés diffèrent aussi bien par l’approche de clustering utilisée que par
leur application à des données réelles. Ainsi il existe des travaux ayant comme approche la méthode
des médusoïdes, la méthode des Kmeans , ou une approche hiérarchique. Les applications sont
diversifiées : données spatiales, données d’expression génique et de données de biopuces.
Avantages et inconvénients :
D’abord, les algorithmes génétiques sont coûteux en temps de calcul, puisqu’ils manipulent
plusieurs solutions simultanément. C’est le calcul de la fonction de performance qui est le plus
pénalisant, et on optimise généralement l’algorithme de façon à éviter d’évaluer trop souvent cette
fonction.
Ensuite, l’ajustement d’un algorithme génétique est délicat. L’un des problèmes les plus
caractéristiques est celui de la dérive génétique, qui fait qu’un bon individu se met, en l’espace de
quelques générations, à envahir toute la population. On parle dans ce cas de convergence prématurée,
qui revient à lancer à une recherche locale autour d’un minimum… qui n’est pas forcément l’optimum
attendu. Les méthodes de sélection proportionnelle peuvent en particulier favoriser ce genre de dérive.
Un autre problème surgit lorsque les différents individus se mettent à avoir des performances
similaires : les bons éléments ne sont alors plus sélectionnés, et l’algorithme ne progresse plus.
Le choix d’une représentation « intelligente » pour permettre un remplacement générationnel
efficace est un autre aspect de la question, et l’efficacité d’un algorithme génétique dépend beaucoup
de la façon dont on opère le croisement des individus. Ainsi, dans le cas du problème du voyageur de
commerce, on peut envisager d’apparier selon la méthode des coupures, telles que nous l’avons vu
plus haut. Considérons les deux tournées suivantes, et opérons une coupure entre la troisième et la
quatrième ville, puis inversons les gènes :
-6-
GA|PM
Parent 1 :
Parent 2 :
A–F–B–C–E–D
C–B–A–F–D–E
On obtient alors les successeurs :
Enfant 1 :
Enfant 2 :
A–F–B–C–D–E
C–B–A–F–E–D
Ici, des trajets initiaux, on n’a gardé que les trois premières villes (A – F – B), et on a placé dans
l’enfant 1 les villes qui ne sont pas présentes dans la première partie (C – D – E), dans l'ordre où elles
apparaissent dans le parent 2. On a fait le contraire pour l’enfant 2.
Mais on pourrait également recomposer en fonction du nombre d’adjacences de villes communes
entre les deux parents. Si deux tournées possèdent des villes adjacentes en commun, il peut être
intéressant que les trajets « enfant » les contiennent aussi. Des méthodes spécifiques de remplacement
générationnel ont ainsi été élaborées, comme le « edge-3 » de Mathias et Whitley, qui ont montré leur
grande efficacité. Mais il faut du temps pour se consacrer à l’étude et à la mise en place de bons
opérateurs génétiques, face à un problème donné, et un algorithme génétique est sans doute plus
délicat à faire fonctionner du premier coup qu’un algorithme du recuit simulé.
Le grand avantage des algorithmes génétiques est qu’ils parviennent à trouver de bonnes solutions
sur des problèmes très complexes, et trop éloignés des problèmes combinatoires classiques pour qu’on
puisse tirer profit de certaines propriétés connues. Ils doivent simplement déterminer entre deux
solutions quelle est la meilleure, afin d’opérer leurs sélections. On les emploie dans les domaines où
un grand nombre de paramètres entrent en jeu, et où l’on a besoin d’obtenir de bonnes solutions en
quelques itérations seulement – dans les systèmes de régulation de transport en temps réel par
exemple.
Par ailleurs, les algorithmes génétiques se prêtent bien, du fait de leur traitement simultané de
solutions, à la recherche d’optimum multiples : en créant une fonction de coût partagée, dont la
valeur dépend partiellement de la distance entre les individus, on voit se former graduellement des
sous-populations d’individus, qui se stabilisent autour des différents pics de la fonction objectif. C’est
la technique du nichage par la méthode du partage.
Des versions plus récentes des algorithmes génétiques introduisent des compléments dans la
méthode visant à la rendre plus performante. C'est le cas de la version hybride introduisant une
recherche locale (algorithme mémétique) (Moscato, 1989; Moscato et Cotta, 2003), ou de la forme
plus évoluée utilisant une mesure de distance afin d'apporter une certaine diversité dans les
chromosomes-parents avec l'algorithme génétique avec gestion de la population (Memetic Algorithm
with Management of the Population, MAjPM) (Sörensen et Sevaux, 2003). Ces versions hybrides
permettent de combler l'écart entre les performances des GA et des TS (Tabu Search, TS).[1’]
-7-
GA|PM
Il est clair que sans l'aide des recherches locales les méthodes à population n'arrivent pas à fournir
des solutions très satisfaisantes. De même, sans la gestion efficace d'une population de solutions, il est
difficile pour une recherche locale de parcourir efficacement l'espace des solutions souvent très vaste.
Une autre des caractéristiques importantes est de pouvoir limiter la taille de la population.
C'est le cas du .scatter search de Glover [42] et du nouvel algorithme GA|PM initialement proposé par
Sorensen [121].
L’idée principale de cette technique est de rendre plus agressif un algorithme génétique par l'ajout
d'une recherche locale en plus de la mutation.
Principe :
Le fonctionnement général du GA|PM est basé sur un algorithme génétique mais se différencie des
versions classiques par trois principaux éléments :
1. Une amélioration des solutions par une recherche locale (Memetic Algorithm - MA);
2. Une technique de gestion de la population par une mesure de distance (Population
Management - PM);
3. Une petite population P de solutions de bonne qualité.
Le PM signifie qu'une nouvelle solution T ne peut intégrer la population courante que si sa distance
à la population courante P est telle que
avec un seuil donné.[2’]
Le fonctionnement est assez simple et est basé sur un algorithme génétique. Nous supposons que
nous savons comparer deux individus entre eux et mesurer leur dissemblance. Nous pouvons donc
mesurer
la similarité entre un individu et la population existante. Au départ, on génère une population
initiale de petite taille et on choisit un paramètre fixant le niveau de dissemblance des solutions entre
elles. Ensuite, on procède comme dans un algorithme génétique, on choisit deux individus que l'on
croise pour obtenir deux enfants. Pour chacun on applique une recherche locale de façon à obtenir des
optima locaux. S'ils ne répondent pas au critère de diversité, on applique un opérateur de mutation sur
ces individus jusqu'à satisfaction de ce critère. Ensuite sous condition, on les insère dans la population
a la place d'un autre individu. A chaque itération le paramètre gérant la diversité est mise à jour.[1’]
Algorithme GA|PM :
1: initialise
population P
2: placer le parameter de diversité de la population
3: repeat
4:
select : p1 and p2 from P
5:
crossover : p1 p2 c1, c2
6:
local search : on c1 and c2
7:
for chaq enfant c do
8:
while
do
9:
mutate c
10:
end while
11:
if c satisfies des conditions d’ addition then
12:
enlever la solution : P P\b
13:
ajouter la solution : P
P c
-8-
GA|PM
14:
end if
15:
end for
16:
mise a jour du parameter de
17: until arrêter le critère satisfait
diversité
Domaine :
–
–
–
Applications de la littérature.
Ordonnancement a une machine.
Tournées de véhicules sur arcs.
Conclusion :
Les performances du MA|PM ont déjà été testées sur le problème de tournées sur arcs avec
capacités. Les résultats témoignent du fait que la méthode est très prometteuse. En effet, sur ces
problèmes, MA|PM a montré qu'il convergeait plus rapidement qu'un algorithme mémétique
conventionnel, alors que sa structure générale est bien plus simple que les autres métaheuristiques
basées sur une population avec mesure de distance, telles que les méthodes de type recherche
dispersée (SS) ou path relinking. De plus, il est très facile de modifier un algorithme mémétique
existant en MA|PM.
-9-
GA|PM
Références :
[1] : Dr J.LAETITIA . MÉTAHEURISTIQUES POUR L’EXTRACTION DE
CONNAISSANCES :APPLICATION À LA GÉNOMIQUE,. THÈSE de doctorat Univ ustl de
lile,France,2003.
[1’] : Caroline PRODHON, LE PROBLÈME DE LOCALISATION-ROUTAGE , Laboratoire :
Institut Charles Daulaunay, UNIVERSITÉ DE TECHNOLOGIE DE TROYES, Année :2006.
[2’] : Marc Sevaux, Metaheuristiques Stratégies pour l'optimisation de la production de biens et de
services, Soutenue Juillet 2004
- 10 -
Téléchargement