D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Méta Heuristique
Hafidi Imad
ENSA
Khouribgha Maroc
April 4, 2021
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Présentation du module
Objectifs
Introduction à l’optimisation combinatoire
Sensibiliser sur les classes NP et résoudre des problèmes classiques : TSP,
Sac à dos...
se familiariser avec la conception des algorithmes heuristique et méta
heuristique
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Présentation du module
Objectifs
Introduction à l’optimisation combinatoire
Sensibiliser sur les classes NP et résoudre des problèmes classiques : TSP,
Sac à dos...
se familiariser avec la conception des algorithmes heuristique et méta
heuristique
Organisation
cours sous formats de polycope, prise des notes recommandées.
préparation des fiches TD et TP est obligatoire
mini projet à réaliser à la fin du semestre
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Présentation du module
Notes
Contrôles continues : CC1 50%
Contrôles inopinés : 25%
Mini projet : 25%
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Présentation du module
Notes
Contrôles continues : CC1 50%
Contrôles inopinés : 25%
Mini projet : 25%
Bibliographie
Introduction à l’algorithmique, Thomas H. Cormen, Charles E. Leiserson,
Ronald L. Rivest et Clifford Stein, Dunod, Paris 204-2010.
I. Charon, A. Germa, and O. Hudry. Méthodes d’optimisation
combinatoire. Masson, 1996
El-Ghazali Talbi, Metaheuristics: From Design to Implementation, John
Wiley Sons, Inc, 2009..
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
1 Introduction
2 Problème P et NP
3 Heurstique
4 Méta-Heurstique
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Modélisation problème
En tant que scientifiques, ingénieurs et gestionnaires, nous devons toujours
prendre des décisions. La prise de décision comprend les étapes suivantes :
- Formuler le problème
- Modéliser le problème
- Optimiser le problème
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Modélisation problème
Dans ce cours nous interessons à la resolution du problème d’optimisation
suivatnt :
Minx∈X f (x) : S ⊆ X
Où X est un ensemble discret et fini et S est inclus dans X est l’ensemble des
solution réalisables. La fonction objectif f prend ses valeurs dans X.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Résolution problème
- En théorie, une solution optimale peut être obtenue en énumérant toutes
les solutions réalisables et en conservant la meilleure. En pratique, ce
procédé est trop long. Même l’enumeration peut poser problème :
comment formuler une solution réalisable ?
- On veut donc résoudre ce problème en un temps raisonnable, que l’on va
étudier grâce aux outils de la théorie de la complexité. On apprendra a
distinguer les problèmes dites faciles des problèmes difficiles. Pour les
faciles, une résolution exacte en un temps court est envisageable.
- Un grand nombre de problèmes sont difficiles. Des solutions exactes sont
envisageables, mais dans un délai acceptable, on se contentera de solutions
approchées obtenues par des méthodes heuristiques. Certaines propriétés
seront toutefois obtenues (garantie de performance, écart a la solution
optimale, etc.)
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Les notions ncessaires pour ce cours sont :
- Notions mathématiques de base.
- Modélisation.
- Théorie des graphes.
- Conception d’algorithmes et programmation.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple problèmes
Ces problèmes seront traités dans la suite du cours comme des exemples
d’applications. Les problèmes sont :
Probléme de Sac à dos
Problème de voyageur de commerce
Problème SAT
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Problème SAT
Problème SAT : Boolean Satisfiability Problem .
Plusieurs applications : emploi du temps, routage, ...
Trouver un ensemble de variables booléennes X = (X − 1, ..., X − n) pour
qu’une expression booléenne donnée soit = Vrai.
L’expression booléenne doit être une conjonction de clauses ; où les clauses
sont représentées par des disjonctions de k variables (k−SAT) :
F(X) = (X1 ∨ X3) ∧ (X1 ∨ X2) ∧ (X4 ∨ X2)..
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Problème Votyageur de commerce TSP
Un voyageur de commerce doit visiter un certain nombre de villes, et chaque
ville une et une seule fois. Etant donne des distances entre chaque paire de
villes, il doit minimiser la distance totale parcourue.
On peut représenter ce problème par un graphe : chaque ville correspond a un
sommet et chaque arête a une paire de villes pouvant être visitées l’une a la
suite de l’autre.
Le problème correspond a trouver un tour complet (circuit Hamiltonien) dans
ce graphe qui minimise la somme des distances f.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Problème TSP : n villes, trouver un circuit qui minimise la distance totale
parcourue ; toutes les villes doivent être visitées une seule fois.
Pour simplifier , on traite le TSP symétrique où : dist(x, y) = dist(y, x). Le
nombre de trajectoire possible sont |S| = (n−1)!
2
. Par exemple :
10villes = 181000solutions
20villes = 10000000000000000solutions
50villes = 100000000000000000000000000000000000000000000000000000000000000s
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
La modélisation mathèmatique du Probème TSP se fait sous la forme suivante
:
On considère le graphe non orienté complet à n sommets Kn. Chaque
arête de ce graphe a un poids positif ou nul puv. On cherche un cycle
passant une fois et une seule par chaque sommet (on dit hamiltonien) et
de poids total minimum.
Les variables sont xuv , avec xuv ≥ 0 et xuv ≤ 1. La forme est à minimiser.
c’est
P
uv puv xuv , avec les contraintes supplémentaires qu’en chaque
sommet deux arêtes exactement sont choisies.
P
u xuv = 2 pour tout v, et que le cycle ne se décompose pas en cycles
plus petits, donc pour tout sous ensemble Y de sommets le nombre
d’arêtes ayant ses deux extrémités dans Y est strictement plus petit que le
cardinal de Y , c’est à dire que pour tout Y 6= Kn ,
P
uv xuv < |Y |—, la
somme portant sur tous les sommets u et v de Y.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Probléme de Sac à dos
On a des objets de volumes v1, ..., vn et d’utilités u1, ..., un. On veut mettre
dans un sac à dos de volume V un nombre xi de chaque objet.
But : On veut maximiser l’utilité totale.
C’est un problème d’optimisation linéaire en nombres entiers :
Max
X
i
xi
sous les n + 1 contraintes
xi ≥ 0
X
vi xi ≤ V .
Exemple : maximiser 10x1 + 8x2 + 5x3
6x1 + 5x2 + 4x3 ≤ 9
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exercice
Modéliser le problème suivant :
Nous avons n tâches a affecter à n machines de telle sorte que :
chaque machine soit affectée a une seule tâche et chaque tâche soit
affectée a une seule machine
Le coût d’affecter la tâche j a la machine i est cij .
L’objectif est de minimiser la somme des coûts
Donnez le modéle mathèmatique et le cardinale du domaine des solutions
ralisables.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Introduction
Les problèmes que nous avons traité sont classifiés en quatres catgories :
? Problème de recherche: On cherche un chemin de a à b.
? Problème de décision: On veut savoir s’il existe un chemin de a à b
? Problème d’optimisation: On veut un plus court chemin de a à b
? Problème d’évaluation: On veut la longueur du plus court chemin de a à b
Nous avons présentés dans le chapitre précédent deux catégories, les problèmes
d’optimisation ( TSP, Sac à dos) et les problèmes de décision ( SAT).
La résolution de ces catgories des problèmes est équivalente, si on résout le
problème de plus court chemin en version décision, ça va nous permettre de le
resoudre en version optimisation. La recherche d’un algorithme d’un problème
de décision est suffisante pour sa résolution en version optimisation.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Complexité
Un algorithme a besoin de deux ressources importantes pour résoudre un
problème:
- le temps : La complexité temporelle d’un algorithme est le nombre
d’étapes nécessaires pour résoudre un problème de taille n
- l’espace : nombre de variables dont besoin un algorithme.
La complexité est généralement définie en termes d’analyse du cas le plus
défavorable.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Complexité
Le but de la détermination de la complexité de calcul d’un algorithme n’est pas
d’obtenir un nombre de pas exact, mais une limite asymptotique sur le nombre
de pas. La notation Big-O utilise l’analyse asymptotique. C’est l’une des
notations les plus populaires dans l’analyse des algorithmes.
Définition
Un algorithme a une complexité f (n) = O(g (n)) s?il existe des constantes
positives n0, c1, c2 telles que ∀n > n0, c1.g(n) ≤ f (n) ≤ c2g(n). La complexité
de l’algorithme f (n) est délimitée par la fonction g (n).
Remarque
Voila quelques exemples de clacul :
- Exemple : Lorsque n est grand, n3
+ 3n2
est asymptotiquement égale à n3
.
- Idée 2 : On élimine les constantes multiplicateurs, par exemple 3n3
est
équivalent à n3
.
- Idée 3 : Un algorithme est en O(na
) est meilleur qu’un algorithme en
O(nb
) si a < b.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Classification complexité
Notation Classe de complexité
O(1) Complexité constante: indépendante de la taille de la
donnée.
O(log(n)) Complexité logarithmique
O(n) Complexité linéaire
O(n log(n)) Complexité quasi-linéaire
O(n2
) Complexité quadratique
O(n3
) Complexité cubique
O(np
) Complexité polynomiale
O(nlog(n)
) Complexité quasi-polynomiale
O(2n
) Complexité exponentielle
O(n!) Complexité factorielle
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple complexité
Ce tableau prsente lemps de calcul d’un algorithme en fonction de la taille du
problème en utilisant différentes complexités.
Complexité taille = 10 taille = 20 taille = 30
O(n) 0.00001s 0.00002s 0.00003s
O(n2
) 0.00001s 0.00004s 0.00009s
O(n5
) 0.00001s 0.00002s 0.00003s
O(2n
) 0.001s 1s 17.9min
O(3n
) 0.059s 58min 6.5an
Un problème est insoluble (ou difficile) s’il n’existe aucun algorithme
polynomial pour le résoudre.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Classe P
Définition
La classe de complexité P représente l’ensemble de tous les problèmes de
décision pouvant être résolus par une machine déterministe en temps
polynomial. Un algorithme (déterministe) est polynomial pour un problème de
décision si sa plus grande complexité est limitée par une fonction polynomiale p
(n) où n représente la taille de l?instance d’entrée I.
Par conséquent, la classe P représente la famille de problèmes où un algorithme
de temps polynomial existe pour résoudre le problème. Les problèmes
appartenant à la classe P sont alors relativement faciles à résoudre.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Classe NP
Définition
NP est l’ensemble de tous les problèmes de décision P tel que pour toute
instance p dans O(P) (toute instance dont la réponse est OUI), il existe une
preuve vérifiable en temps polynomial que p dans O(P)
La classe NP est celle des problèmes pour lesquels on peut vérifier en un temps
polynomial si une solution
Remarque
Attention : NP ne veut pas dire non-polynomial mais non deterministic
polynomial.
La question de savoir si P = NP est l’une des questions en suspense les plus
importantes en iformatique.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple problèmes NP
1 Le problème K − SAT est un problème NP. La vérification d’une instance
est polynomiale.
2 On considére lLe problème TSP suivant : Exsite il un parcours qui passe
par tous les ville de valeur inférieur à C.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Problème NP-Complet
Définition
Un problème P est polynomialement réductible à un autre problème Q s’il
existe un algorithme polynomial permettant de ramener la recherche d’une
solution de P à celle d’une solution de Q.
A est polynomialement réductible a B s’il existe un algorithme polynomial pour
résoudre chaque instance de A, en autant que soit comptée a coût unitaire
chaque résolution d’une instance de B.
Définition
Un problème P de NP est NP complet si tout problème de NP peut être réduit
à P en un temps polynomial.
Ceci implique que si on prouve qu’un seul problème NP− complet peut être
résolu de manière polynomiale, alors chaque problème de NP peut aussi être
résolu polynomialement, i.e. P = NP
Le théorème de Cook établit que tout problème NP est polynomialement
réductible au problème SAT de la satisfiabilité des fonctions booléennes.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
E
n fait, beaucoup de problèmes NP sont équivalents à SAT.
Lorsqu’un problème est connu pour être NP−complet, ou pire, on peut donc
raisonnablement penser qu’il est inutile d’en chercher une solution sous forme
d’un algorithme de complexité polynomiale.
Les problèmes considérés sont polynomialement réductibles à des problèmes
d’optimisation linéaire en nombres entiers
Un problème NPC vérifie les deux conditions :
1 Il est possible de vérifier une solution efficacement (en temps polynomial)
2 Tous les problèmes de la classe NP se ramènent au problème
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Problème NP-Hard
Définition
Un problème NP−difficile est un problème qui remplit la seconde condition du
NPC. Une classe de problème plus large et donc plus difficile que la classe NP.
Un problème NP−difficile n’est pas forcement un problème de decision ni un
problème de NP.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Classification
La question de savoir si P = NP est l’une des questions ouverte les plus
importantes.
Si on peut répondre par oui a cette question(une démostration), on peut
arrêter de chercher des algorithmes polynomiales pour les problèmes est NP.
Par contre si on arrive à trouver un seul algorithme de complexité polynomiale
pour un problème NP complet, on peut résoudre tous les problèmes NP .
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Clasification des Algorithmes Exactes
Dans la classe des méthodes exactes, on peut trouver les algorithmes classiques
suivants:
programmation dynamique
famille d’algorithmes branches (branch and bound, branch and cut, branch
and price) développés dans la communauté de recherche opérationnelle
programmation par contraintes
famille A∗
d’algorithmes de recherche développés dans la communauté de
l’intelligence artificielle.
Ces méthodes énumératives peuvent être considérées comme des algorithmes
de recherche arborescente. La recherche est effectuée sur tout l’espace de
recherche intéressant, et le problème est résolu en le subdivisant en problèmes
plus simples.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Classification algorithmes approximatifs
Dans la classe des méthodes approximatives, on peut trouver les algorithmes
suivants :
Les heurstiques spécifiques à un problème donné.
La famille des métaheurstiques qui sont des statégies génériques. Une
métaheuristique est une heuristique généraliste, pouvant s’appliquer à
plusieurs problèmes d’optimisation. La classiffication habituelle des
métaheuristiques : en fonction du nombre de solutions qu’elles manipulent
Métaheuristiques à solution unique ( trajectoire ) : elles manipulent une
seule solution à la fois et tentent itérativement d’améliorer cette solution.
Elles construisent une trajectoire dans l’espace des solutions en tentant de
se diriger vers des solutions optimales. Par exemple : La recherche locale, le
recuit simule (Kirkpatrick et al., 1983), la recherche tabou (Glover, 1986),
la recherche a voisinages variables (VNS) (Mladenovic et Hansen, 1997).
Métaheuristiques à population de solutions : Méthodes qui travaillent avec
une population de solutions : en tout temps on dispose d’une base de
plusieurs solutions, appelée population. L’exemple le plus connu est
l’algorithme génétique.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Définition
Définition
Une heuristique est une technique qui améliore l’efficacité d’un processus de
recherche, en sacrifiant éventuellement l’exactitude ou l’optimalité de la
solution.
Pour des problèmes d’optimisation (NP) où la recherche d’une solution exacte
(optimale) est difficile (coût exponentiel), on peut se contenter d’une solution
satisfaisante donnée par une heuristique avec un coût plus faible.
Même pour trouver une solution exacte, la connaissance de solutions
approchées permet de rendre l’algorithme meilleur, tout en en conservant, bien
sûr la complexité exponentielle
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Critères Heuristique
Qu’est ce qu’une bonne heuristique ? (manque de résultats théoriques):
1 Elle est de complexité raisonnable (idéalement polynomiale mais en tout
cas efficace en pratique)
2 Robustesse : Elle fournit le plus souvent une solution proche de l’optimum,
La probabilité d’obtenir une solution de mauvaise qualité est faible ;
3 Elle est simple a mettre en oeuvre
une heuristique est spécique à un problème et ne peut pas être généralisée
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple Heuristique Sac à dos
On peut chercher une solution rationnelle par une méthode de simplexe et
arrondir à l’entier inférieur. En fait, dans ce cas, la méthode du simplexe est
inutile. On trouve une approximation entière en considérant l’objet ayant le
plus grand rapport utilité/volume et en remplissant le sac avec le maximum
d’objets par ordre décroissant de ces rapports, par un algorithme glouton.
On vérifie aussi facilement que, si on ne se limite pas aux solutions entières, on
trouve la solution optimale en ne prenant que l’objet ayant ce plus grand
rapport.
Dans l’exemple maximiser 10x1 + 8x2 + 5x3 avec les contraintes de positivité
(sous entendues) et la contrainte 6x1 + 5x2 + 4x3 ≤ 9, On a comme rapports
respectivement 10
6
, 8
5
et 5
4
, déjà classées par ordre décroissant. Une solution
rationnelle est ici x1 = 1, 5, x2 = x1 = 0, d’utilité totale 15.
Une solution entière approchée est x1 = 1, x2 = x1 = 0,, d’utilité totale 10.
On peut déjà dire que, pour une solution entière optimale, l’utilité est de 10 au
moins et de 15 au plus.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple Heuristique TSP
On peut à partir d’un cycle hamiltonien, voire en essayer quelques-uns et les
modifier localement en essayant d’améliorer le poids total.
Une autre heuristique consiste à remarquer que si on enlève une arête à un
cycle hamiltonien de poids minimum, on a un arbre recouvrant de poids
minimum pour le graphe restant.
On peut donc à partir d’un arbre recouvrant de poids minimum pour le graphe,
puis coupler les sommets de degré impair de cet arbre par un couplage de poids
minimum, deux choses qu’on sait faire en temps polynomial. Le résultat n’est
pas nécessairement hamiltonien. Mais on peut sauter par-dessus des sommets
déjà rencontrés. On obtient ainsi un circuit hamiltonien dont on peut prouver
que le poids est au plus 1,5 fois le poids d’un circuit de poids minimum. Le
tout est accompli en un temps cubique.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Algorithme Construction
Définition
Un algorithme glouton (greedy) est un algorithme qui, à chaque étape de la
résolution d’un problème, fait un choix optimal dans l’espoir que le résultat
final soit optimal.
Définition
Dans les algorithmes gloutons, nous partons de (solution vide) et construisons
une solution en attribuant des valeurs à une variable de décision à la fois,
jusqu’à ce qu’une solution complète soit générée. Un algorithme glotons peut
être exacte ou heurstique, par exemple les algorithmes Prim et Kruskal qui
générent un arbre couvrant minimale sont des algorithmes gloutons exactes.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Algorithme Construction
Remarque
Pour les algorithmes constructives, à chaque étape une heuristique locale est
utilisée pour sélectionner le nouvel élément à inclure dans l’ensemble. Une fois
qu’un élément ei est sélectionné pour faire partie de la solution, il n’est jamais
remplacé par un autre élément. Il n’y a pas de retour en arrière des décisions
déjà prises. L’algorithme montre le modèle d’un algorithme glouton.
Algorithm 1 Heuristique Constructive
1: Result: solution s
2: s : solution
3: s ← ∅
4: while s n’est pas une solution compléte do
5: Choisir un nouvel élément de la solution e;
6: s ← s + e
7: end while
8: return s;
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Algorithme Constructions
Les algorithmes gloutons sont des techniques populaires dont les caratéstiques
sont :
- ils sont simples à concevoir
- ils ont une complexité réduite par rapport aux algorithmes itératifs
- leurs performances par rapport aux algorithmes itératifs est réduite
Les principales étapes de conception d?une méthode gourmande sont les
suivantes:
1 on doit identifier une solution comme un ensemble d’éléments. Ainsi, les
solutions partielles manipulées peuvent être considérées comme des sous
ensembles d’éléments
2 L’heuristique de sélection d’élément: à chaque étape, une heuristique est
utilisée pour sélectionner l’élément suivant qui fera partie de la solution.
En général, cette heuristique choisit le meilleur élément de la liste actuelle
en termes de contribution à la minimisation locale de la fonction objectif.
L’heuristique calculera donc le profit pour chaque élément. L’optimalité
locale n’implique pas une optimalité globale.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple Sac à dos
données : sac à dos vide, objets ayant chacun un poids et une valeur
objectif : maximiser la valeur totale des objets dans le sac
contrainte : poids maximal autorisé dans le sac est 15.
stratégie : rajouter en priorité les objets ayant le meilleur rapport valeur/poids,
jusqu’à ce que le sac soit rempli.
Objet Valeur Poids Rapport valeur Poids
1 7 12 0.58
2 3 7 0.48
3 10 9 1.11
4 1 2 0.5
5 2 5 0.4
Nous obtenons avec cette méthode la solution suivante : S = {3, 5} avec un
poids = 11 et une valeur = 11.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Algorithme : plus proche voisin (nearest neighbour)
1 initialisation : choisir aléatoirement une première ville
2 à chaque étape, une suite de villes a été construite y rajouter la ville la
plus proche de la ville courante (dernière ville)
3 relier la dernière ville à la première (pour obtenir un cycle)
On considére L’instance représenté par la matrice symétrique des distances
suivantes :
1 2 3

Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Voici un problème de TSP qu’on va le résoudre à la main:
Figure: TSP asymétrique
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Notre solution sera un tableau qui va représenter la tournée, et à chaque
itération on va permuter une paire consécutive.
Figure: Première itération
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Figure: Deuxième itération
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Figure: Troisième itération
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Figure: Quatrième itération
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
On va conserver la meilleure solution:
Figure: La meilleure solution
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Méta-heuristique
Motivation
Les heuristiques sont spécifiques à un problème, d’autres ont pour vocation de
pouvoir être adaptées à divers problèmes. On appelle parfois ces dernières des
méta-heuristiques ou encore heuristiques générales. En fait, il s’agit de
principes algorithmiques permettant d’obtenir une solution en respectant
certains principes de construction.
Définition
Les métaheuristiques sont des stratégies qui permettent de guider la recherche
d’une solution optimale. Le but visé par les métaheuristiques est d’explorer
l’espace de recherche efficacement afin de déterminer des solutions (presque)
optimales. Les techniques qui constituent des algorithmes de type
métaheuristiques vont de la simple procédure de recherche locale à des
processus d’apprentissage complexes. Les métaheuristiques sont en général
non-déterministes et ne donnent aucune garantie d’optimalité.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Méta-heuristique
les métaheuristiques peuvent contenir des mécanismes qui permettent d’éviter
d’être bloqué dans des régions de l’espace de recherche. Les concepts de base
des métaheuristiques peuvent être décrit de manière abstraite, sans faire appel
à un problème spécifique. Les métaheuristiques peuvent faire appel à des
heuristiques qui tiennent compte de la spécificité du problème traité, mais ces
heuristiques sont contrôlées par une stratégie de niveau supérieur. Les
métaheuristiques peuvent faire usage de l’expérience accumulée durant la
recherche de l’optimum, pour mieux guider la suite du processus de recherche.
Les méta-heuristique se basent souvent sur une stratégie qui consiste alors à
partir d’une solution approchée et à la modifier localement (cas courant pour la
confection d’emplois du temps). Il faut déterminer ce qu’on entend par
modification locale. Cela dépend du problème, de son codage et de la facilité
de réaliser cette modification.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Notion de voisinage
La stratégie le plus simple pour explorer l’espace de recherche consiste: à partir
d’une solution approchée, on la modifie localement (cas courant pour les
algorithmes d’optimisation : simplexe).
Il faut déterminer ce qu’on entend par modification locale. Cela dépend du
problème, de son codage et de la facilité de réaliser cette modification.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Notion de voisinage
Définition
Une structure de voisinage (ou tout simplement un voisinage) est une fonction
N qui associe un sous ensemble de S à toute solution s dans S. Une solution s
0
dans N(s) est dite voisine de s.
Minimum locale
Une solution s dans S est un minimum local relativement à la structure de
voisinage N si f (s) ≤ f (s
0
) pour tout s
0
dans N(s).
Une solution s dans S est un minimum global si f (s) ≤ f (s
0
) pour tout s
0
S.
Définition
Les métaheuristiques sacrifient la garantie d’optimalité ou d’approximation avec
en contrepartie l’espoir de trouver très rapidement de bonnes solutions dans S.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemples voisinage
Pour définir le voisinage, on trouve fréquemment une ou plusieurs des
opérations suivantes mises en oeuvre, selon la nature du problème et du codage
des solutions :
Complémentation (remplacement): pour les solutions codées sous forme
d’une chaı̂ne en 0-1 : on remplace un 0-1 quelconque de la chaı̂ne par son
complémentaire. Par exemple, 1 0 0 1 1 1 0 0 1 devient 1 0 0 1 1 0 0 0 1.
par complémentation du sixième élément. On peut généraliser cette
transformation, lorsque la solution est codée sous la forme d’une chaı̂ne de
caractères : en remplaçant un (éventuellement plusieurs) caractère(s)
quelconque(s) de la chaı̂ne par un autre caractère (par autant d’autres
caractères).
Echange : lorsque la solution est codée sous la forme d’une chaı̂ne de
caractères, l’échange consiste à intervertir les caractères situés en deux
positions données de la chaı̂ne. Ainsi A B C D E F G devient A E C D B F
G par échange des positions 2 et 5.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemples voisinage
Insertion-décalage : supposons de nouveau que la solution est codée sous
la forme d’une chaı̂ne de caractères. L’insertion-décalage consiste alors à
choisir deux positions i et j, à insérer en position i le caractère situé en
position j puis à décaler tous les caractères anciennement situés entre i
(inclus) et j (exclus) d’un cran à droite si i  j, d’un cran à gauche sinon.
Par exemple A B C D E F G devient A B F C D E G par insertion-décalage
avec i = 3 et j = 6.
Inversion : supposons encore que la solution est codée sous la forme d’une
chaı̂ne de caractères. L’inversion consiste à choisir deux positions i et j
avec i  j, puis à inverser l’ordre d’écriture des caractères situés aux
positions i, i + 1,...,j − 1, j. Par exemple A B C D E F G devient A E D C
B F G par inversion avec i = 2 et j = 5.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple TSP
Pour le problème du voyageur de commerce, il est habituel de considérer
comme transformation élémentaire celle qui consiste à choisir deux arêtes non
adjacentes dans le cycle hamiltonien (de la solution courante) et de les
remplacer par les deux arêtes qui permettent de reconstituer un cycle
hamiltonien. Cette transformation est appellée 2−swap. Une solution donné
possèden(n−1)
2
solutions voisine.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
Exemple Sac à dos
Echanger (au plus) k objets : cela correspond à modifier au moins une valeur
dans le vecteur solution : 0 1 0 0 devient 1 1 0 0
La distance dite de ”Hamming” correspond nombres de bits qui diffèrent.
Hafidi Imad Méta Heuristique
D
r
a
f
t
Introduction
Problème P et NP
Heurstique
Méta-Heurstique
TP
Hafidi Imad Méta Heuristique

Introduction aux Métaheuristiques : Optimisation et Applications

  • 1.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Méta Heuristique Hafidi Imad ENSA Khouribgha Maroc April 4, 2021 Hafidi Imad Méta Heuristique
  • 2.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Présentation du module Objectifs Introduction à l’optimisation combinatoire Sensibiliser sur les classes NP et résoudre des problèmes classiques : TSP, Sac à dos... se familiariser avec la conception des algorithmes heuristique et méta heuristique Hafidi Imad Méta Heuristique
  • 3.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Présentation du module Objectifs Introduction à l’optimisation combinatoire Sensibiliser sur les classes NP et résoudre des problèmes classiques : TSP, Sac à dos... se familiariser avec la conception des algorithmes heuristique et méta heuristique Organisation cours sous formats de polycope, prise des notes recommandées. préparation des fiches TD et TP est obligatoire mini projet à réaliser à la fin du semestre Hafidi Imad Méta Heuristique
  • 4.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Présentation du module Notes Contrôles continues : CC1 50% Contrôles inopinés : 25% Mini projet : 25% Hafidi Imad Méta Heuristique
  • 5.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Présentation du module Notes Contrôles continues : CC1 50% Contrôles inopinés : 25% Mini projet : 25% Bibliographie Introduction à l’algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein, Dunod, Paris 204-2010. I. Charon, A. Germa, and O. Hudry. Méthodes d’optimisation combinatoire. Masson, 1996 El-Ghazali Talbi, Metaheuristics: From Design to Implementation, John Wiley Sons, Inc, 2009.. Hafidi Imad Méta Heuristique
  • 6.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique 1 Introduction 2 Problème P et NP 3 Heurstique 4 Méta-Heurstique Hafidi Imad Méta Heuristique
  • 7.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Modélisation problème En tant que scientifiques, ingénieurs et gestionnaires, nous devons toujours prendre des décisions. La prise de décision comprend les étapes suivantes : - Formuler le problème - Modéliser le problème - Optimiser le problème Hafidi Imad Méta Heuristique
  • 8.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Modélisation problème Dans ce cours nous interessons à la resolution du problème d’optimisation suivatnt : Minx∈X f (x) : S ⊆ X Où X est un ensemble discret et fini et S est inclus dans X est l’ensemble des solution réalisables. La fonction objectif f prend ses valeurs dans X. Hafidi Imad Méta Heuristique
  • 9.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Résolution problème - En théorie, une solution optimale peut être obtenue en énumérant toutes les solutions réalisables et en conservant la meilleure. En pratique, ce procédé est trop long. Même l’enumeration peut poser problème : comment formuler une solution réalisable ? - On veut donc résoudre ce problème en un temps raisonnable, que l’on va étudier grâce aux outils de la théorie de la complexité. On apprendra a distinguer les problèmes dites faciles des problèmes difficiles. Pour les faciles, une résolution exacte en un temps court est envisageable. - Un grand nombre de problèmes sont difficiles. Des solutions exactes sont envisageables, mais dans un délai acceptable, on se contentera de solutions approchées obtenues par des méthodes heuristiques. Certaines propriétés seront toutefois obtenues (garantie de performance, écart a la solution optimale, etc.) Hafidi Imad Méta Heuristique
  • 10.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Les notions ncessaires pour ce cours sont : - Notions mathématiques de base. - Modélisation. - Théorie des graphes. - Conception d’algorithmes et programmation. Hafidi Imad Méta Heuristique
  • 11.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple problèmes Ces problèmes seront traités dans la suite du cours comme des exemples d’applications. Les problèmes sont : Probléme de Sac à dos Problème de voyageur de commerce Problème SAT Hafidi Imad Méta Heuristique
  • 12.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Problème SAT Problème SAT : Boolean Satisfiability Problem . Plusieurs applications : emploi du temps, routage, ... Trouver un ensemble de variables booléennes X = (X − 1, ..., X − n) pour qu’une expression booléenne donnée soit = Vrai. L’expression booléenne doit être une conjonction de clauses ; où les clauses sont représentées par des disjonctions de k variables (k−SAT) : F(X) = (X1 ∨ X3) ∧ (X1 ∨ X2) ∧ (X4 ∨ X2).. Hafidi Imad Méta Heuristique
  • 13.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Problème Votyageur de commerce TSP Un voyageur de commerce doit visiter un certain nombre de villes, et chaque ville une et une seule fois. Etant donne des distances entre chaque paire de villes, il doit minimiser la distance totale parcourue. On peut représenter ce problème par un graphe : chaque ville correspond a un sommet et chaque arête a une paire de villes pouvant être visitées l’une a la suite de l’autre. Le problème correspond a trouver un tour complet (circuit Hamiltonien) dans ce graphe qui minimise la somme des distances f. Hafidi Imad Méta Heuristique
  • 14.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Problème TSP : n villes, trouver un circuit qui minimise la distance totale parcourue ; toutes les villes doivent être visitées une seule fois. Pour simplifier , on traite le TSP symétrique où : dist(x, y) = dist(y, x). Le nombre de trajectoire possible sont |S| = (n−1)! 2 . Par exemple : 10villes = 181000solutions 20villes = 10000000000000000solutions 50villes = 100000000000000000000000000000000000000000000000000000000000000s Hafidi Imad Méta Heuristique
  • 15.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique La modélisation mathèmatique du Probème TSP se fait sous la forme suivante : On considère le graphe non orienté complet à n sommets Kn. Chaque arête de ce graphe a un poids positif ou nul puv. On cherche un cycle passant une fois et une seule par chaque sommet (on dit hamiltonien) et de poids total minimum. Les variables sont xuv , avec xuv ≥ 0 et xuv ≤ 1. La forme est à minimiser. c’est P uv puv xuv , avec les contraintes supplémentaires qu’en chaque sommet deux arêtes exactement sont choisies. P u xuv = 2 pour tout v, et que le cycle ne se décompose pas en cycles plus petits, donc pour tout sous ensemble Y de sommets le nombre d’arêtes ayant ses deux extrémités dans Y est strictement plus petit que le cardinal de Y , c’est à dire que pour tout Y 6= Kn , P uv xuv < |Y |—, la somme portant sur tous les sommets u et v de Y. Hafidi Imad Méta Heuristique
  • 16.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Probléme de Sac à dos On a des objets de volumes v1, ..., vn et d’utilités u1, ..., un. On veut mettre dans un sac à dos de volume V un nombre xi de chaque objet. But : On veut maximiser l’utilité totale. C’est un problème d’optimisation linéaire en nombres entiers : Max X i xi sous les n + 1 contraintes xi ≥ 0 X vi xi ≤ V . Exemple : maximiser 10x1 + 8x2 + 5x3 6x1 + 5x2 + 4x3 ≤ 9 Hafidi Imad Méta Heuristique
  • 17.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exercice Modéliser le problème suivant : Nous avons n tâches a affecter à n machines de telle sorte que : chaque machine soit affectée a une seule tâche et chaque tâche soit affectée a une seule machine Le coût d’affecter la tâche j a la machine i est cij . L’objectif est de minimiser la somme des coûts Donnez le modéle mathèmatique et le cardinale du domaine des solutions ralisables. Hafidi Imad Méta Heuristique
  • 18.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Introduction Les problèmes que nous avons traité sont classifiés en quatres catgories : ? Problème de recherche: On cherche un chemin de a à b. ? Problème de décision: On veut savoir s’il existe un chemin de a à b ? Problème d’optimisation: On veut un plus court chemin de a à b ? Problème d’évaluation: On veut la longueur du plus court chemin de a à b Nous avons présentés dans le chapitre précédent deux catégories, les problèmes d’optimisation ( TSP, Sac à dos) et les problèmes de décision ( SAT). La résolution de ces catgories des problèmes est équivalente, si on résout le problème de plus court chemin en version décision, ça va nous permettre de le resoudre en version optimisation. La recherche d’un algorithme d’un problème de décision est suffisante pour sa résolution en version optimisation. Hafidi Imad Méta Heuristique
  • 19.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Complexité Un algorithme a besoin de deux ressources importantes pour résoudre un problème: - le temps : La complexité temporelle d’un algorithme est le nombre d’étapes nécessaires pour résoudre un problème de taille n - l’espace : nombre de variables dont besoin un algorithme. La complexité est généralement définie en termes d’analyse du cas le plus défavorable. Hafidi Imad Méta Heuristique
  • 20.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Complexité Le but de la détermination de la complexité de calcul d’un algorithme n’est pas d’obtenir un nombre de pas exact, mais une limite asymptotique sur le nombre de pas. La notation Big-O utilise l’analyse asymptotique. C’est l’une des notations les plus populaires dans l’analyse des algorithmes. Définition Un algorithme a une complexité f (n) = O(g (n)) s?il existe des constantes positives n0, c1, c2 telles que ∀n > n0, c1.g(n) ≤ f (n) ≤ c2g(n). La complexité de l’algorithme f (n) est délimitée par la fonction g (n). Remarque Voila quelques exemples de clacul : - Exemple : Lorsque n est grand, n3 + 3n2 est asymptotiquement égale à n3 . - Idée 2 : On élimine les constantes multiplicateurs, par exemple 3n3 est équivalent à n3 . - Idée 3 : Un algorithme est en O(na ) est meilleur qu’un algorithme en O(nb ) si a < b. Hafidi Imad Méta Heuristique
  • 21.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Classification complexité Notation Classe de complexité O(1) Complexité constante: indépendante de la taille de la donnée. O(log(n)) Complexité logarithmique O(n) Complexité linéaire O(n log(n)) Complexité quasi-linéaire O(n2 ) Complexité quadratique O(n3 ) Complexité cubique O(np ) Complexité polynomiale O(nlog(n) ) Complexité quasi-polynomiale O(2n ) Complexité exponentielle O(n!) Complexité factorielle Hafidi Imad Méta Heuristique
  • 22.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple complexité Ce tableau prsente lemps de calcul d’un algorithme en fonction de la taille du problème en utilisant différentes complexités. Complexité taille = 10 taille = 20 taille = 30 O(n) 0.00001s 0.00002s 0.00003s O(n2 ) 0.00001s 0.00004s 0.00009s O(n5 ) 0.00001s 0.00002s 0.00003s O(2n ) 0.001s 1s 17.9min O(3n ) 0.059s 58min 6.5an Un problème est insoluble (ou difficile) s’il n’existe aucun algorithme polynomial pour le résoudre. Hafidi Imad Méta Heuristique
  • 23.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Classe P Définition La classe de complexité P représente l’ensemble de tous les problèmes de décision pouvant être résolus par une machine déterministe en temps polynomial. Un algorithme (déterministe) est polynomial pour un problème de décision si sa plus grande complexité est limitée par une fonction polynomiale p (n) où n représente la taille de l?instance d’entrée I. Par conséquent, la classe P représente la famille de problèmes où un algorithme de temps polynomial existe pour résoudre le problème. Les problèmes appartenant à la classe P sont alors relativement faciles à résoudre. Hafidi Imad Méta Heuristique
  • 24.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Classe NP Définition NP est l’ensemble de tous les problèmes de décision P tel que pour toute instance p dans O(P) (toute instance dont la réponse est OUI), il existe une preuve vérifiable en temps polynomial que p dans O(P) La classe NP est celle des problèmes pour lesquels on peut vérifier en un temps polynomial si une solution Remarque Attention : NP ne veut pas dire non-polynomial mais non deterministic polynomial. La question de savoir si P = NP est l’une des questions en suspense les plus importantes en iformatique. Hafidi Imad Méta Heuristique
  • 25.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple problèmes NP 1 Le problème K − SAT est un problème NP. La vérification d’une instance est polynomiale. 2 On considére lLe problème TSP suivant : Exsite il un parcours qui passe par tous les ville de valeur inférieur à C. Hafidi Imad Méta Heuristique
  • 26.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Problème NP-Complet Définition Un problème P est polynomialement réductible à un autre problème Q s’il existe un algorithme polynomial permettant de ramener la recherche d’une solution de P à celle d’une solution de Q. A est polynomialement réductible a B s’il existe un algorithme polynomial pour résoudre chaque instance de A, en autant que soit comptée a coût unitaire chaque résolution d’une instance de B. Définition Un problème P de NP est NP complet si tout problème de NP peut être réduit à P en un temps polynomial. Ceci implique que si on prouve qu’un seul problème NP− complet peut être résolu de manière polynomiale, alors chaque problème de NP peut aussi être résolu polynomialement, i.e. P = NP Le théorème de Cook établit que tout problème NP est polynomialement réductible au problème SAT de la satisfiabilité des fonctions booléennes. Hafidi Imad Méta Heuristique
  • 27.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique E n fait, beaucoup de problèmes NP sont équivalents à SAT. Lorsqu’un problème est connu pour être NP−complet, ou pire, on peut donc raisonnablement penser qu’il est inutile d’en chercher une solution sous forme d’un algorithme de complexité polynomiale. Les problèmes considérés sont polynomialement réductibles à des problèmes d’optimisation linéaire en nombres entiers Un problème NPC vérifie les deux conditions : 1 Il est possible de vérifier une solution efficacement (en temps polynomial) 2 Tous les problèmes de la classe NP se ramènent au problème Hafidi Imad Méta Heuristique
  • 28.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Problème NP-Hard Définition Un problème NP−difficile est un problème qui remplit la seconde condition du NPC. Une classe de problème plus large et donc plus difficile que la classe NP. Un problème NP−difficile n’est pas forcement un problème de decision ni un problème de NP. Hafidi Imad Méta Heuristique
  • 29.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Classification La question de savoir si P = NP est l’une des questions ouverte les plus importantes. Si on peut répondre par oui a cette question(une démostration), on peut arrêter de chercher des algorithmes polynomiales pour les problèmes est NP. Par contre si on arrive à trouver un seul algorithme de complexité polynomiale pour un problème NP complet, on peut résoudre tous les problèmes NP . Hafidi Imad Méta Heuristique
  • 30.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Clasification des Algorithmes Exactes Dans la classe des méthodes exactes, on peut trouver les algorithmes classiques suivants: programmation dynamique famille d’algorithmes branches (branch and bound, branch and cut, branch and price) développés dans la communauté de recherche opérationnelle programmation par contraintes famille A∗ d’algorithmes de recherche développés dans la communauté de l’intelligence artificielle. Ces méthodes énumératives peuvent être considérées comme des algorithmes de recherche arborescente. La recherche est effectuée sur tout l’espace de recherche intéressant, et le problème est résolu en le subdivisant en problèmes plus simples. Hafidi Imad Méta Heuristique
  • 31.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Classification algorithmes approximatifs Dans la classe des méthodes approximatives, on peut trouver les algorithmes suivants : Les heurstiques spécifiques à un problème donné. La famille des métaheurstiques qui sont des statégies génériques. Une métaheuristique est une heuristique généraliste, pouvant s’appliquer à plusieurs problèmes d’optimisation. La classiffication habituelle des métaheuristiques : en fonction du nombre de solutions qu’elles manipulent Métaheuristiques à solution unique ( trajectoire ) : elles manipulent une seule solution à la fois et tentent itérativement d’améliorer cette solution. Elles construisent une trajectoire dans l’espace des solutions en tentant de se diriger vers des solutions optimales. Par exemple : La recherche locale, le recuit simule (Kirkpatrick et al., 1983), la recherche tabou (Glover, 1986), la recherche a voisinages variables (VNS) (Mladenovic et Hansen, 1997). Métaheuristiques à population de solutions : Méthodes qui travaillent avec une population de solutions : en tout temps on dispose d’une base de plusieurs solutions, appelée population. L’exemple le plus connu est l’algorithme génétique. Hafidi Imad Méta Heuristique
  • 32.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Définition Définition Une heuristique est une technique qui améliore l’efficacité d’un processus de recherche, en sacrifiant éventuellement l’exactitude ou l’optimalité de la solution. Pour des problèmes d’optimisation (NP) où la recherche d’une solution exacte (optimale) est difficile (coût exponentiel), on peut se contenter d’une solution satisfaisante donnée par une heuristique avec un coût plus faible. Même pour trouver une solution exacte, la connaissance de solutions approchées permet de rendre l’algorithme meilleur, tout en en conservant, bien sûr la complexité exponentielle Hafidi Imad Méta Heuristique
  • 33.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Critères Heuristique Qu’est ce qu’une bonne heuristique ? (manque de résultats théoriques): 1 Elle est de complexité raisonnable (idéalement polynomiale mais en tout cas efficace en pratique) 2 Robustesse : Elle fournit le plus souvent une solution proche de l’optimum, La probabilité d’obtenir une solution de mauvaise qualité est faible ; 3 Elle est simple a mettre en oeuvre une heuristique est spécique à un problème et ne peut pas être généralisée Hafidi Imad Méta Heuristique
  • 34.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple Heuristique Sac à dos On peut chercher une solution rationnelle par une méthode de simplexe et arrondir à l’entier inférieur. En fait, dans ce cas, la méthode du simplexe est inutile. On trouve une approximation entière en considérant l’objet ayant le plus grand rapport utilité/volume et en remplissant le sac avec le maximum d’objets par ordre décroissant de ces rapports, par un algorithme glouton. On vérifie aussi facilement que, si on ne se limite pas aux solutions entières, on trouve la solution optimale en ne prenant que l’objet ayant ce plus grand rapport. Dans l’exemple maximiser 10x1 + 8x2 + 5x3 avec les contraintes de positivité (sous entendues) et la contrainte 6x1 + 5x2 + 4x3 ≤ 9, On a comme rapports respectivement 10 6 , 8 5 et 5 4 , déjà classées par ordre décroissant. Une solution rationnelle est ici x1 = 1, 5, x2 = x1 = 0, d’utilité totale 15. Une solution entière approchée est x1 = 1, x2 = x1 = 0,, d’utilité totale 10. On peut déjà dire que, pour une solution entière optimale, l’utilité est de 10 au moins et de 15 au plus. Hafidi Imad Méta Heuristique
  • 35.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple Heuristique TSP On peut à partir d’un cycle hamiltonien, voire en essayer quelques-uns et les modifier localement en essayant d’améliorer le poids total. Une autre heuristique consiste à remarquer que si on enlève une arête à un cycle hamiltonien de poids minimum, on a un arbre recouvrant de poids minimum pour le graphe restant. On peut donc à partir d’un arbre recouvrant de poids minimum pour le graphe, puis coupler les sommets de degré impair de cet arbre par un couplage de poids minimum, deux choses qu’on sait faire en temps polynomial. Le résultat n’est pas nécessairement hamiltonien. Mais on peut sauter par-dessus des sommets déjà rencontrés. On obtient ainsi un circuit hamiltonien dont on peut prouver que le poids est au plus 1,5 fois le poids d’un circuit de poids minimum. Le tout est accompli en un temps cubique. Hafidi Imad Méta Heuristique
  • 36.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Algorithme Construction Définition Un algorithme glouton (greedy) est un algorithme qui, à chaque étape de la résolution d’un problème, fait un choix optimal dans l’espoir que le résultat final soit optimal. Définition Dans les algorithmes gloutons, nous partons de (solution vide) et construisons une solution en attribuant des valeurs à une variable de décision à la fois, jusqu’à ce qu’une solution complète soit générée. Un algorithme glotons peut être exacte ou heurstique, par exemple les algorithmes Prim et Kruskal qui générent un arbre couvrant minimale sont des algorithmes gloutons exactes. Hafidi Imad Méta Heuristique
  • 37.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Algorithme Construction Remarque Pour les algorithmes constructives, à chaque étape une heuristique locale est utilisée pour sélectionner le nouvel élément à inclure dans l’ensemble. Une fois qu’un élément ei est sélectionné pour faire partie de la solution, il n’est jamais remplacé par un autre élément. Il n’y a pas de retour en arrière des décisions déjà prises. L’algorithme montre le modèle d’un algorithme glouton. Algorithm 1 Heuristique Constructive 1: Result: solution s 2: s : solution 3: s ← ∅ 4: while s n’est pas une solution compléte do 5: Choisir un nouvel élément de la solution e; 6: s ← s + e 7: end while 8: return s; Hafidi Imad Méta Heuristique
  • 38.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Algorithme Constructions Les algorithmes gloutons sont des techniques populaires dont les caratéstiques sont : - ils sont simples à concevoir - ils ont une complexité réduite par rapport aux algorithmes itératifs - leurs performances par rapport aux algorithmes itératifs est réduite Les principales étapes de conception d?une méthode gourmande sont les suivantes: 1 on doit identifier une solution comme un ensemble d’éléments. Ainsi, les solutions partielles manipulées peuvent être considérées comme des sous ensembles d’éléments 2 L’heuristique de sélection d’élément: à chaque étape, une heuristique est utilisée pour sélectionner l’élément suivant qui fera partie de la solution. En général, cette heuristique choisit le meilleur élément de la liste actuelle en termes de contribution à la minimisation locale de la fonction objectif. L’heuristique calculera donc le profit pour chaque élément. L’optimalité locale n’implique pas une optimalité globale. Hafidi Imad Méta Heuristique
  • 39.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple Sac à dos données : sac à dos vide, objets ayant chacun un poids et une valeur objectif : maximiser la valeur totale des objets dans le sac contrainte : poids maximal autorisé dans le sac est 15. stratégie : rajouter en priorité les objets ayant le meilleur rapport valeur/poids, jusqu’à ce que le sac soit rempli. Objet Valeur Poids Rapport valeur Poids 1 7 12 0.58 2 3 7 0.48 3 10 9 1.11 4 1 2 0.5 5 2 5 0.4 Nous obtenons avec cette méthode la solution suivante : S = {3, 5} avec un poids = 11 et une valeur = 11. Hafidi Imad Méta Heuristique
  • 40.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Algorithme : plus proche voisin (nearest neighbour) 1 initialisation : choisir aléatoirement une première ville 2 à chaque étape, une suite de villes a été construite y rajouter la ville la plus proche de la ville courante (dernière ville) 3 relier la dernière ville à la première (pour obtenir un cycle) On considére L’instance représenté par la matrice symétrique des distances suivantes : 1 2 3 Hafidi Imad Méta Heuristique
  • 41.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Voici un problème de TSP qu’on va le résoudre à la main: Figure: TSP asymétrique Hafidi Imad Méta Heuristique
  • 42.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Notre solution sera un tableau qui va représenter la tournée, et à chaque itération on va permuter une paire consécutive. Figure: Première itération Hafidi Imad Méta Heuristique
  • 43.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Figure: Deuxième itération Hafidi Imad Méta Heuristique
  • 44.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Figure: Troisième itération Hafidi Imad Méta Heuristique
  • 45.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Figure: Quatrième itération Hafidi Imad Méta Heuristique
  • 46.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP On va conserver la meilleure solution: Figure: La meilleure solution Hafidi Imad Méta Heuristique
  • 47.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Méta-heuristique Motivation Les heuristiques sont spécifiques à un problème, d’autres ont pour vocation de pouvoir être adaptées à divers problèmes. On appelle parfois ces dernières des méta-heuristiques ou encore heuristiques générales. En fait, il s’agit de principes algorithmiques permettant d’obtenir une solution en respectant certains principes de construction. Définition Les métaheuristiques sont des stratégies qui permettent de guider la recherche d’une solution optimale. Le but visé par les métaheuristiques est d’explorer l’espace de recherche efficacement afin de déterminer des solutions (presque) optimales. Les techniques qui constituent des algorithmes de type métaheuristiques vont de la simple procédure de recherche locale à des processus d’apprentissage complexes. Les métaheuristiques sont en général non-déterministes et ne donnent aucune garantie d’optimalité. Hafidi Imad Méta Heuristique
  • 48.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Méta-heuristique les métaheuristiques peuvent contenir des mécanismes qui permettent d’éviter d’être bloqué dans des régions de l’espace de recherche. Les concepts de base des métaheuristiques peuvent être décrit de manière abstraite, sans faire appel à un problème spécifique. Les métaheuristiques peuvent faire appel à des heuristiques qui tiennent compte de la spécificité du problème traité, mais ces heuristiques sont contrôlées par une stratégie de niveau supérieur. Les métaheuristiques peuvent faire usage de l’expérience accumulée durant la recherche de l’optimum, pour mieux guider la suite du processus de recherche. Les méta-heuristique se basent souvent sur une stratégie qui consiste alors à partir d’une solution approchée et à la modifier localement (cas courant pour la confection d’emplois du temps). Il faut déterminer ce qu’on entend par modification locale. Cela dépend du problème, de son codage et de la facilité de réaliser cette modification. Hafidi Imad Méta Heuristique
  • 49.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Notion de voisinage La stratégie le plus simple pour explorer l’espace de recherche consiste: à partir d’une solution approchée, on la modifie localement (cas courant pour les algorithmes d’optimisation : simplexe). Il faut déterminer ce qu’on entend par modification locale. Cela dépend du problème, de son codage et de la facilité de réaliser cette modification. Hafidi Imad Méta Heuristique
  • 50.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Notion de voisinage Définition Une structure de voisinage (ou tout simplement un voisinage) est une fonction N qui associe un sous ensemble de S à toute solution s dans S. Une solution s 0 dans N(s) est dite voisine de s. Minimum locale Une solution s dans S est un minimum local relativement à la structure de voisinage N si f (s) ≤ f (s 0 ) pour tout s 0 dans N(s). Une solution s dans S est un minimum global si f (s) ≤ f (s 0 ) pour tout s 0 S. Définition Les métaheuristiques sacrifient la garantie d’optimalité ou d’approximation avec en contrepartie l’espoir de trouver très rapidement de bonnes solutions dans S. Hafidi Imad Méta Heuristique
  • 51.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemples voisinage Pour définir le voisinage, on trouve fréquemment une ou plusieurs des opérations suivantes mises en oeuvre, selon la nature du problème et du codage des solutions : Complémentation (remplacement): pour les solutions codées sous forme d’une chaı̂ne en 0-1 : on remplace un 0-1 quelconque de la chaı̂ne par son complémentaire. Par exemple, 1 0 0 1 1 1 0 0 1 devient 1 0 0 1 1 0 0 0 1. par complémentation du sixième élément. On peut généraliser cette transformation, lorsque la solution est codée sous la forme d’une chaı̂ne de caractères : en remplaçant un (éventuellement plusieurs) caractère(s) quelconque(s) de la chaı̂ne par un autre caractère (par autant d’autres caractères). Echange : lorsque la solution est codée sous la forme d’une chaı̂ne de caractères, l’échange consiste à intervertir les caractères situés en deux positions données de la chaı̂ne. Ainsi A B C D E F G devient A E C D B F G par échange des positions 2 et 5. Hafidi Imad Méta Heuristique
  • 52.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemples voisinage Insertion-décalage : supposons de nouveau que la solution est codée sous la forme d’une chaı̂ne de caractères. L’insertion-décalage consiste alors à choisir deux positions i et j, à insérer en position i le caractère situé en position j puis à décaler tous les caractères anciennement situés entre i (inclus) et j (exclus) d’un cran à droite si i j, d’un cran à gauche sinon. Par exemple A B C D E F G devient A B F C D E G par insertion-décalage avec i = 3 et j = 6. Inversion : supposons encore que la solution est codée sous la forme d’une chaı̂ne de caractères. L’inversion consiste à choisir deux positions i et j avec i j, puis à inverser l’ordre d’écriture des caractères situés aux positions i, i + 1,...,j − 1, j. Par exemple A B C D E F G devient A E D C B F G par inversion avec i = 2 et j = 5. Hafidi Imad Méta Heuristique
  • 53.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple TSP Pour le problème du voyageur de commerce, il est habituel de considérer comme transformation élémentaire celle qui consiste à choisir deux arêtes non adjacentes dans le cycle hamiltonien (de la solution courante) et de les remplacer par les deux arêtes qui permettent de reconstituer un cycle hamiltonien. Cette transformation est appellée 2−swap. Une solution donné possèden(n−1) 2 solutions voisine. Hafidi Imad Méta Heuristique
  • 54.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique Exemple Sac à dos Echanger (au plus) k objets : cela correspond à modifier au moins une valeur dans le vecteur solution : 0 1 0 0 devient 1 1 0 0 La distance dite de ”Hamming” correspond nombres de bits qui diffèrent. Hafidi Imad Méta Heuristique
  • 55.
    D r a f t Introduction Problème P etNP Heurstique Méta-Heurstique TP Hafidi Imad Méta Heuristique