Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• Mutation
- 1 parent produit un enfant
- La mutation consiste à modifier légèrement la structure du parent
• Croisement
- 2 parents produisent un ou deux enfants
- La mutation consiste à combiner la structure des deux parents
• CroisementBipoints(individus : P1 et P2)
- individu O
- Choix aléatoire uniforme de l’entier a dans [0, n-1]
- Choix aléatoire uniforme de l’entier b dans [0, n-1], b<>a
- Si a < b
- Former O avec P1[0, a-1].P2[a, b-1].P1[b, n-1]
- Sinon
- Former O avec P2[0, b-1].P1[b, a-1].P2[a, n]
- Renvoyer O
• CroisementUniforme(individus : P1 et P2)
- individu O
- Pour i=1à n faire
- Selon probabilité ½ : O[i] := P1[i]
- Sinon : O[i] := P2[i]
- Renvoyer O
1) Opérateur respectueux
- transmet toutes les caractéristiques communes aux deux parents
3) Opérateur transmissif
- Toute caractéristique de l’enfant est présente dans au moins l’un des deux
parents : l’opérateur n’ajoute pas d’information (sinon, on parle de
mutation implicite).
1) Opérateur aveugle
- Utilise uniquement les deux parents et pas d’autre information
- + éventuellement l’évaluation des deux parents
- + éventuellement des informations sur les contraintes du problème
• Opérateur pur
- Si les deux parents ont les mêmes caractéristiques, il en est de même de
l’enfant (remarque : un opérateur respectueux est pur)
• Exemple
- Le croisement uniforme est respectueux, correctement assorti et transmissif
- Le croisement uniforme est aveugle
• La procédure de redémarrage
- Le meilleur individu de la population est conservé
- Les autres
- Soit : sont reconstruits comme lors de l’initialisation
- Soit : subissent une forte mutation
• MA-MF utilise
- Opérateur de croisement : GX Greedy Recombination Crossover
- Opérateur de mutation : double-bridge
- Opérateur de recherche locale : LK (Lin-Kernighan)
- Schéma de sélection : de type (µ+λ)
- Épuisement de la diversité : procédure de redémarrage
• L’opérateur de croisment GX
1) Copier certains arêtes communes aux deux parents dans O : la proportion
d’arêtes communes copiées est p1
2) Ajouter dans O certaines arêtes courtes qui n’apparaissent dans aucun des deux
parents : pour un sommet x, ajouter l’une des 5 meilleurs arêtes qui complète
la tournée de manière valide : la proportion d’arêtes ajoutées est p2
3) Prendre les arêtes des parents selon les longueurs croissantes : ajouter l’arête
dans O si elle complète la tournée de manière valide : la proportion d’arêtes
ajoutées est p3
4) Si nécessaire, compléter O avec une version randomisée de l’heuristique
gloutonne.
• C’est avec p1=1 que les meilleurs résultats ont été obtenus
• MA-GA utilise
- Opérateur de croisement : spécialisé pour les problèmes de partitionnement
- Opérateur de mutation : aucun
- Opérateur de recherche locale : TabuCol
- Schéma de sélection : incrémental (µ+1), l’enfant remplace le plus mauvais
parent
- Épuisement de la diversité : arrêt de l’algorithme
• P := InitPopulation(|pop|)
• Répéter
– (S1, S2) := ChooseParents(P)
– S := Crossover(S1, S2)
– S := LocalSearch(S, L)
– P := UpdatePopulation(P, S)
• Données
– P1 = {V1,1, …, V1,k}
– P2 = {V2,1, …, V2,k}
• Résultat
– O = {V1, Vk}
• Pour i = 1 à k faire
– Si i est impair A:=1, sinon A:=2
– Choisir j tel que Vj,A soit de cardinalité maximum
– Vi := Vj,A
– Retirer les sommets contenus dans Vi,A des classes P1 et P2
• Affecter au hasard les sommets de V-(V1 u … u Vk)
• Itération 1
O = { {1, 2, 3, 4} }
S1 = { {5, 6, 7}, {8, 9, 10} }
S2 = { {6, 7, 8}, {10}, {5, 9} }
• Itération 2
O = { {1, 2, 3, 4}, {6, 7, 8} }
S1 = {{5}, {9, 10}}
S2 = { {10}, {5, 9}}
• Itération 3
O = { {1, 2, 3, 4}, {6, 7, 8}, {9, 10} }
S1 = {{5}}
S2 = {{5}}
• Post-traitement
- Le sommet 5 n’est pas colorié
- Il est introduit dans une classe choisie aléatoirement
• Pour un jeu facile, on peut régler L à une petite valeur pour laquelle la
fonction de coût diminue très vite. Comme le jeu est facile, on trouve une
solution (f=0) avant que la diversité ne soit épuisée.