• Aucun résultat trouvé

Opérateurs classiques .1 Sélection et remplacement

Mémoire commune + règles de fonctionnement

3.4 Méta-heuristiques

3.4.2.3 Opérateurs classiques .1 Sélection et remplacement

La procédure de sélection permet de choisir les chromosomes (solutions) géniteurs qu’on va donner en entrée pour les procédures de croisements. Nous présentons ici deux manières différentes pour effectuer la sélection :

i. Le tournoi binaire : le principe est de tirer deux individus de la population d’une

manière aléatoire, choisir le meilleur (celui dont la fonction objectif est minimale dans le cas d’une minimisation). Refaire cette opération une seconde fois. Les deux individus sélectionnés sont donnés comme parents au processus de croisement.

Sélection Tournoi binaire Begin For k=1 to 2 begin i=rand() ; j=rand() if (value(i)< value(j)) select chromosome i else select chromosome j endfor End

Figure 3.17. Algorithme de la sélection par tournoi binaire.

ii. La roulette (Goldberg, 1989) : Si l’on considère qu’on a une population P=x1,x2,...,xN

de N individus, la technique de la roulette consiste à associer à chaque individu xi

une probabilité proportionnée avec laquelle il est sélectionné. L’algorithme suivant décrit cette technique.

Sélection La roulette

Notations :

N : la taille de la population.

Xi : l’individu numéroté i et/ou placé à la ième place dans la population. F(Xi) : la fitness de l’individu i, il s’agit d’une fonction à maximiser, plus la fitness est grande, plus l’individu doit avoir une forte probabilité d’être choisi.

Début

Calcul de la somme des fitness de toute la population :

S=0.

Pour i=1 à N Faire

S=S+F(Xi)

FinPour

Tirage aléatoire normalisé à la somme des fitness :

H=S*rand(0,1) ;

Recherche de l’individu « res » sélectionné par la roulette : res=1 ;

SP=F(Xres) ;

Tantque H>SP faire

res=res+1 ; SP=SP+ F(Xres) ;

fin tant que

Fin

Figure 3.18. Algorithme de la roulette.

Le remplacement est l’opération qui intègre les nouveaux individus issus de croisements et/ou de mutations dans la population. Cela implique, en général, de choisir certains individus pour les éliminer. Dans les schémas dits « élitistes » on choisit les individus les plus faibles (de mauvaise qualité). Il existe plusieurs schémas pour effectuer cette opération. On peut par exemple choisir d’éliminer les individus les plus faibles, ou bien choisir aléatoirement quelques individus aléatoirement dans une portion de mauvaise qualité, ou bien remplacer les parents (c’est ce qui est fait totalement dans le schéma simple de Goldberg).

Remplacement Début

i=rand(N/2,N).

supprimer l’individu i.

remplacer par un nouvel enfant.

Fin

Figure 3.19. Exemple d’une procédure de remplacement.

3.4.2.3.2 Les croisements

Il existe une multitude d’algorithmes de croisements dans la littérature, certains sont spécifiques à des problèmes particuliers, tandis que d’autres sont génériques à un grand ensemble de problèmes. Nous en présentons ici quelques uns des plus utilisés qui sont propres aux structures de chromosomes de permutations.

i. Le croisement d’ordre OX (Order Crossover):

C’est un croisement en deux points de coupure générés aléatoirement. Conçu par (Davis, 1985), il est réalisé comme suit :

La première phase consiste à recopier dans le fils la partie centrale (entre les deux points de coupure) du père.

La deuxième phase consiste à copier les éléments restants dans leur ordre dans la

mère en commençant par remplir la partie droite, puis la partie gauche.

Un deuxième fils est obtenu par l’inversion des rôles de la mère et du père.

Voici un exemple : Coupure p=4 q=7 P1 2 9 4 7 6 5 8 3 0 1 P2 3 6 5 9 0 4 7 1 2 8 E1 9 0 4 7 6 5 8 1 2 3 E2 9 6 5 8 0 4 7 3 1 2

Figure 3.20. Exemple de croisement OX.

Il a été conçu pour les problèmes de voyageur de commerce.

ii. Croisement d’ordre linéaire LOX (Linear Order Crossover) :

LOX (Falkenauer et Bouffouix, 1991) est destiné à des chromosomes linéaires, c’est à dire

codant des objets qui ont clairement un début et une fin. C’est une variante de 1OX.

Pour deux parents P1 et P2 de longueur

τ

, LOX commence par tirer au sort deux positions

pet qavec 1≤ p<q≤τ. Pour construire l’enfant C1, la portion de P1 entre p et q inclus

est copiée dans C1 aux mêmes positions. Le parent P2 est ensuite balayé de 1 à

τ

, et les

éléments non déjà présents dans le fils C1 remplissent de gauche à droite les positions libres. L’enfant C2 s’obtient de la même manière en permutant les rôles de P1 et P2.

Coupure p=4 q=7 P1 2 9 4 7 6 5 8 3 0 1 P2 3 6 5 9 0 4 7 1 2 8 E1 3 9 0 4 6 5 8 7 1 2 E2 2 9 6 5 0 4 7 8 3 1

Figure 3.21. Exemple de croisement LOX.

iii. Le croisement d’ordre à un point 1X:

Désigné par 1X pour (1 point Crossover), il a été présenté dans (Davis, 1985). C’est un

croisement simple où l’on commence par déterminer aléatoirement un point de coupure qui correspond au rang associé à ce point. On procède ensuite, par recopie du père du début jusqu’au point de coupure, et de compléter par le reste des gènes dans l’ordre de la mère.

Pour obtenir un deuxième enfant, on inverse le « début » et la « fin ». On peut encore

P1 2 9 4 7 6 5 8 3 0 1 P2 3 6 5 9 0 4 7 1 2 8 E1 2 9 4 7 3 6 5 0 1 8 E2 3 6 5 9 2 4 7 8 0 1 E3 9 2 4 7 6 5 8 3 0 1 E4 9 6 5 3 0 4 7 1 2 8 Figure 3.22. Croisement 1X.

iv. Croisement 2X : Two point Crossover

Ce croisement est une extension de 1X à deux points de coupure. Pour obtenir le premier fils, la partie centrale du père est recopiée aux mêmes positions dans le fils, puis la mère est balayée de gauche à droite. Un deuxième fils est obtenu en inversant les rôles de la mère et du père. Deux autres fils peuvent être obtenus en gardant les parties latérales plutôt que les parties centrales. En voici un exemple :

Coupure p=4 q=7 P1 2 9 4 7 6 5 8 3 0 1 P2 3 6 5 9 0 4 7 1 2 8 E1 2 9 4 7 6 5 8 3 0 1 E2 3 6 5 9 4 7 0 1 2 8 E3 9 4 7 2 6 5 8 3 0 1 E4 9 6 5 3 0 4 7 2 8 1

Figure 3.23. Exemple de croisement 2X.

E1 est identique à P1 car son milieu correspond à des gènes qui ont le même ordre dans les deux chromosomes. E2 est très voisin de P2 car le milieu est petit et seul le gène 0 a changé de place par rapport aux autres gènes. Par contre, E3 et E4 sont sûrement très intéressants, on a réorganisé le sous-ensemble de gènes du début et de la fin de manière indépendante et on a conservé le milieu de l’ordonnancement.

Les enfants sont donc plus ou moins intéressants selon le degré de modification que l’on souhaite obtenir.

3.4.2.3.3 Les mutations

La mutation est appliquée avec une faible probabilité, par exemple de l’ordre de 0.2, pour apporter un facteur de diversification à la population (du sang neuf). Il existe une variété d’opérateurs de mutations dans la littérature. Le plus simple, dans le cas d’un chromosome binaire, est d’inverser la valeur d’un bit. Un autre opérateur très simple consiste en l’échange de deux travaux tirés aléatoirement. On pourrait aussi remplacer cet opérateur par une recherche locale, dans ce cas la mutation (opérateur unaire) joue un rôle améliorant (intensifiant de la recherche locale) et non plus diversifiant. C’est ce qui est fait dans les algorithmes mémétiques, extension des algorithmes génétiques.

Rang : 1 2 3 4 5 6 7 8 9 10=

τ

Positions : 4,7.

chromosome P1 : 2 9 4 7 6 5 8 3 0 1 après mutation