Vous êtes sur la page 1sur 22

Les Métaheuristiques

Les problèmes "difficiles"

 Le problème du voyageur de commerce

½ (n-1)! pour n > 2

 Le problème de la Prédiction de structure de protéine ab initio


Une solution ? Les Métaheuristiques !

 Monte Carlo (MC)

 Recuit simulé (Simulated Annealing: SA)

 Algorithme génétique (Genetic Algorithm: GA)

 Recherche Tabou (Tabu Search: TS)

 Colonies de fourmis (Ant Colony Optimization: ACO)


Algorithme de Monte Carlo
 Principe:
– Méthode utilisant des procédés aléatoires
– Allusion aux jeux de hasard pratiqués à Monte Carlo
– Introduit par John Von Neumann, Stanislas Ulam et Nicolas
Metropolis lors du developpement de la bombe atomiqe

 Tirage aléatoire, calcul d'énergie

 Paramètres:
– Système initial
– Modification élémentaire
– Critère de Metropolis
Un exemple d'utilisation de méthode
Monte Carlo

 Détermination de la superficie d'un lac


– X coups de canon de manière aléatoire dans la zone
Algorithme de Monte
Carlo
Algorithme de recuit simulé

 Principe
– Inspiré de la métallurgie
– Refroidissement lent d'une pièce de métal confère une structure
cristalline d'énergie minimum

 Même principe appliqué aux problèmes d'optimisation

 Paramètres:
– Système initial
– Température initiale
– Modification élémentaire
– Critère de Metropolis
– Critère pour le "recuit"
Algorithme de recuit
simulé
Algorithme génétique
 Principe
– Groupe de solutions mimant évolution des espèces

 Paramètres
– Une solution est un individu,
– Le groupe de solutions ou d'individus compose population
– On distingue deux parties d'un individu:
 le phénotype: c'est l'apparence de l'individu, ce qui nous permet de savoir si la solution est bonne ou mauvaise.
 le génotype: c'est la représentation des gènes de l'individu. Le génotype implique le phénotype

 Première étape : trouver une façon de représenter les solutions du problème sous
forme d'un chromosome
– La représentation binaire: un chromosome est une suite de bit
– La représentation flottante: un chromosome est un nombre flottant

 Une fois représentation déterminée, l'algorithme est lancé


– Débute par l'initialisation de la population, (générée normalemnt au hasard)
– Seconde étape : détermination du phénotype (aussi appelé fitness) de chaque individu de la population.
– Phase de sélection des individus pour la reproduction (les meilleurs solutions sont gardées pour la reproduction)
– Croisement des individus
– Mutation des s individus sélectionnés avec probabilité donnée
– Évaluation des enfants afin de pouvoir comparer leur qualité.
– Sélection pour le remplacement entre les anciens individus et le enfants puis remplacement et création de la nouvelle
population.
– Si critère d'arrêt atteint, arrêt sinon nouvelle itération à partir de la phase de sélection pour la reproduction avec la
nouvelle population. (Critère d'arrêt peut être un temps maximal, un nombre de population P, un test sur le meilleur
individu)
Algorithme Génétique

Croisement des Mutation des


individus sélectionnés, individus
production des enfant sélectionnés
Opérations

ATGCCGCACC • Recombination involves


Parent chromosomes swapping sections of
TGTCCAGTCA two individuals’
‘characteristics’
ATGCC AGTCA Note: This is not what
Recombined offspring occurs in nature
TGTCC GCACC

ATGCC
A AGTCA • Mutation results in a
Random mutations in random change in one
TGTCC GCACC
T genetic composition or more of an
individual’s
‘characteristics’
 Decode genotypes; evaluate fitness
of phenotypes
 Amplify genotypes in proportion to
g fitness g'
 Use crossover, mutation and other
genetic operators to generate new
genotypes

Source: Fogel (1995)


 Emulates specific genetic mechanisms as
observed in nature
Algorithme de Recherche Tabou

 Repose sur une méthode de déplacement sur l'espace des solutions

 Recherche à améliorer la meilleure solution courante en conservant


en mémoire la liste des précédents déplacements et ainsi guider la
recherche en dehors de zones précédemment parcourues

 Tous les déplacements ne sont pas gardés (trop coûteux en


mémoire), seulement une liste finie de déplacements est concervée
pendant un certains nombre d'itération : la liste Tabou
Algorithme de recherche tabou
Algorithme des Colonies de Fourmis

 Méthode inventée en 1996 par Marco Dorigo de L'Université Libre de


Bruxelles
 Idée initiale provient de l'observation des fourmis : Trouvent le chemin
le plus cours entre leur nid et source de nourriture en contournant
obstacles sur leur chemin.
 Exemple :
Algorithme des Colonies de fourmis

Modélisation du comportement des fourmis pour le voyageur du commerce:


- La fourmi se place initialement sur une ville choisie au hasard

- Elle choisit la ville suivante parmi les villes non encore visitées en suivant le
chemin le plus marqué par les phéromones
max_phéromone = 0;
Pour Ville_courante allant de 1 à N
Si Ville_courante pas encore visitée
Si Phéromone[Ville_précédente, Ville_courante] > max_phéromone
Ville_suivante = Ville_courante
max_phéromone = Phéromone[Ville_précédente, Ville_courante]
FinSi
FinPour

- Elle dépose des phéromones sur le chemin qu'elle a emprunté (règle locale de mise à
jour des phéromones). On prend en compte l'"évaporation", ce qui donne une loi du
genre :

Pheromone[i, j] = (1 - alpha) Pheromone[i, j] + alpha * K

Avec K une constante. La valeur de K recommandée par Dorigo et Gambardella est de 1


/ ( N * Lmv ) avec N le nombre de villes du problèmes et Lmv la longueur du trajet
calculé par la méthode du meilleur voisin ou une approximation.
Exemple d'application : Simulation de
repliement de protéines

Simplification: Modèle 2D HP Model (Dill et al. 1985)

 Classify each amino acid as hydrophobic (H) or hydrophilic (P).


 Confine consecutive amino acids to adjacent nodes in a lattice
(Treat search space as a grid).
 Flatten the search on a 2D lattice.

 Function HHc: Number of new HH contacts


 Parameter ξ < 0: Influence ratio of the new HH contacts (usually ξ
= -1)
 Objective Function = HHc * ξ = -HHc
Principe

 H = Noir
 P = Blanc

 Energy = 0
 Energy = -3
Exemples
 S36: 3P 2H 2P 2H 5P 7H 2P 2H 4P 2H 2P 1H 2P
 S60: 2P 3H 1P 8H 3P 10H 1P 1H 3P 12H 4P 6H
1P 2H 1P 1H 1P
 S64: 12H 1P 1H 1P 1H 2P 2H 2P 2H 2P 1H 2P
2H 2P 2H 2P 1H 2P 2H 2P 2H 2P 1H 1P
1H 1P 12H
Représentation du problème
A vous !

 Représentation du problème pour chaque


type d'algorithme