Optimisation Combinatoire
(Méthodes approchées)
1.Qu'est ce qu'un problème d'optimisation ?
2. Comment concevoir et implémenter des heuristiques pour
résoudre des problèmes difficiles ?
3. Quelles méthodes sont disponibles et quelles sont leurs
propriétés ?
4. Comment étudier et analyser une méthode ?
2.
Qu'est qu'un problème
d'optimisation?
● Parmi un ensemble d'alternatives qui satisfont une certaine
propriété, choisir celle qui optimise une certaine fonction de
coût
● Première définition :
– Un couple (f,S)
– S : l'ensemble des alternatives
– f : S → IR une fonction de coût
– Trouver s* tel que f(s) < f(s*)
● Problèmes de plus en plus complexe dans plusieurs
disciplines académiques et industrielles
● Problèmes de très grande taille et/ou temps de réponse de
plus en plus court
Applications du TSP
●VRP (Véhicule Routing Problem)
● Dans la vraie vie, plusieurs 'détails' qui
complexifient le problème
– Time windows
– Capacités
– Demandes/temps de parcours
dynamique/stochastiques
8.
TSP : unproblème fondamental
● Modélisation avec un graphe
– Un graphe G=(V,E,c) une fonction de coût sur les
arêtes
– cycle hamiltonien : un cycle qui visite chaque
sommet une et une seule fois (à l'exception du
sommet départ/arrivé)
– Le coût (poids) d'un chemin: le coût cumulé de
toutes ses arêtes
● TSP :
– Input G=(V,E,c)
– Output : un cycle hamiltonien de coût minimum
9.
SAT : Unautre problème
fondamental
● Définition
– Input : une formule logique F (propositionnelle)
– Objectif : Trouver une instansiation des
variables logiques (vraie/faux) telque F est
vraie, ou bien décider qu'une telle
instanciation n'existe pas
● Exemple
– F := (x1 x2 ) (¬x1 ¬x2 )
– F := (¬x2 x1 ) (¬x1 ¬x2 ¬x3 ) (x1 x2 )
(¬x4 x3 ) (¬x5 x3 )
10.
SAT et TSP
●Problème de décision / d'optimisation
– Décision : « existe-t-il une solution qui satisfait une
certaine propriété ? » Résultat: “oui” ou “non”
– Optimisation : « parmi les solutions qui satisfont une
certaine propriété, trouver celle qui optimise une certaine
fonction de coût. » Résultat: une solution réalisable
optimale
– Les problèmes d'optimisation généralisent en quelques
sorte les problèmes de décisions
● Lien entre décision/optimisation
– Entrées: n villes et distances cij
– Problème de décision: “étant donné un entier L, existe-t-il un cycle hamiltonien
de longueur inférieure ou égale à L?”
– Problème d’optimisation: “trouver un cycle hamiltonien de longueur minimale.”
11.
Modélisation d'un problème
●Dans la réalité, nous trouvons une solution à un
modèle du problème
● Tous les modèles sont des simplifications de la réalité
– Problème → Modèle → Solution
● SAT et TSP sont des formes cannoniques de modèles
qui peuvent être appliqués à différents problèmes
● Exemple : Société de production de voitures de n
couleurs différentes. Trouver un ordonnancement
optimal qui minimise le coût total de la peinture des
voitures
12.
Modélisation d'un problème
●Toute machine utilisée doit être « switchée »
d’une couleur à une autre ; le coût d’un tel
changement dépend des deux couleurs
● Jaune à Noir = 30, Noir à Blanc = 80, …
● Trouver une séquence de tâche de peinture des
différentes voitures
● TSP asymétrique ; nœud = tâche peinture
couleur donnée
● Distance entre les nœuds = coût du
changement
13.
Problème, instance, solution...
● Problème : e.g; TSP
– Solution : un algorithme pour le TSP
● Instance : un ensemble de ville
– Solution : une tournée
● Solution optimale
● Solution candidate
● Solution faisable
Élément de complexité
●Comment juger de la difficulité d'un problème ?
– La complexité en temps est le temps d'exécution d'un
algorithme en fonction de la taille du problème
– On utilise souvent la notation 'big-O' : O( … )
● Soient f et g deux fonctions
● f (n) = O(g (n)) ssi il existen des nombres c et n0 telque
pour tout n n0, on ait f (n) c · g (n)
– Un algorithme est dit polynomial en temps ssi sa complexité
en temps est bornée par un polynome p(n), ie. f (n) = O(p(n))
– Un algorithme est dit exponentiel si sa complexité en temps ne
peut pas être bornée par un polynome, e.g., f(n) = a^n avec a
> 1 une constante
P = NP?
● Classe P: problèmes de décision pour lesquels on connaît des
algorithmes polynomiaux
● Classe NP: problèmes de décision pour lesquels on connaît des
algorithmes non déterministes polynomiaux (problèmes de décision pour
lesquels n’importe quel certificat peut être vérifié en temps polynomial
pour une réponse “oui”)
● Transformation polynomiale: un problème de décision A se transforme
polynomialement dans un autre problème de décision B si, quelle que soit
l’entrée IA pour A, on peut toujours construire une entrée IB pour B en
temps polynomial dans la taille L(IA) de l’entrée IA, telle que IA est une
instance “oui” de A si et seulement si IB est une instance “oui” de B.
● NP-complet: un problème de décision A dans NP est NP-complet si tous
les autres problèmes de la classe NP se transforment polynomialement
dans le problème A
18.
Transformation polynomiale
● Exemple: circuit hamiltonien
● Une modélisation : chaque arc peut être vrai ou faux – vrai si l’arc
appartient au circuit et faux sinon.
● Comme seulement un arc entrant et un arc sortant pour chaque noeud
peut appartenir au circuit hamiltonien, nous pouvons l’écrire sous forme
d’expression booléenne :
– Noeud a : (ea and ab) Noeud b : [(ab and (not db) and (not eb)) or ((not
ab) and db and (not eb)) or ((not ab) and (not db) and eb)] and bc
Noeud c : (bc and cd) Noeud d : cd and [(db and (not de)) or ((not db)
and de)] Noeud e : de and [(ea and (not eb)) or ((not ea) and eb)]
ab
a b
e d
c
bc
ea
de
eb
cd
db
19.
Transformation polynomiale
● Sivous pouvez trouver une instanciation tel que toutes
les variables booléennes (les arcs) soient vraies, vous
avez trouvés un circuit Hamiltonien (HC)
● Donc, si vous pouvez résoudre un problème SAT en
temps polynomial, vous pouvez résoudre HC en temps
polynomial car la transformation prend un temps
polynomial
● SAT : premier problème NP-difficile
20.
Algorithmes d'approximations
●
Si onrelâche la contrainte de trouver des solutions optimales, peut-
on garantir une certaine qualité avec des algorithmes polynomiaux
en temps ?
●
Approximation ratio (facteur d'approximation) : R(p, s) = max
( OPT/f (s),f (s)/OPT) où p est une instance, s une solution et OPT
la valeur de la slution optimale
●
Exemple du TSP :
– Les instances générales du TSP sont inapproximables, c.à.d.
R(p, s) ne peut pas être bornée pour n'importe quelle instance p
– Dans la famille d'instances vérifiant l'inégalité triangulaire, le
meilleur facteur d'approxiamtion connu est 1.5 (Algorithme de
Christofides)
Difficultés des problèmesrééls
● Nombre important de solutions possibles → Recherche
exhaustive impossible
● Problème complexe → Utilisation de modèles simplifiés
● Fonction de coût qui décrit la qualité des solutions “noisy” et
dynamique (fonction du temps) → Plusieurs solutions à
trouver
● Problèmes avec des contraintes fortes → Construire une
solution réalisable est difficile
● Multi-critère, ...
C'est quoi uneheuristique ?
●
L'objectif d'une heuristique est de calculer efficacement des 'bonnes'
solutions (pour un problème donnée) mais sans garantie d'optimalité !
– Plusieurs approches des plus simples aux plus complexes
– Utilisée lorsqu'il n'existe pas d'autres alternatives pour résoudre le
problème sous des contraintes de temps ou d'espace
● Qu'est ce qu'une bonne heuristique ? (manque de résultats théoriques)
– Elle est de complexité raisonnable (idéalement polynomiale mais en
tout cas efficace en pratique)
– Robustesse : Elle fournit le plus souvent une solution proche de
l’optimum
– La probabilité d’obtenir une solution de mauvaise qualité est faible ;
– Elle est simple à mettre en œuvre
● Méta-heuristique ?
Paradigme de recherche
●Résoudre des problèmes combinatoire en
utilisant une 'recherche':
– De façon itérative, générer et évaluer des solutions
pototentielles (candidate solutions)
– decision problems: evaluation = test si effectivement
une solution
– optimisation problems: evaluation = vérif
i er le coût
de la solution (fonction objective)
– Évauation des solutions candidates est typiquement
moins coûteux que trouver des solutions optimales
27.
Espace de recherche
●L’espace de recherche est une collection de
solutions potentielles à un problème
– Comment chercher des bonnes solutions dans cet
espace ?
● Espace de recherche pas toujours égale à l'espace des
solutions réalisables !
– Il est important de connaître les propriétés de cet
espace, e.g.,:
● Taille : liée à la représentation que l'on se fait des
solutions
● Structure : liés à la façon avec laquelle on se
ballade/cherche dans cet espace et la fonction
objective
28.
Taille de l'espacede recherche
(SAT)
● SAT : instancier des variables booléennes pour qu'une
formule logique F soit Vraie
– Boolean expression F = conjonction de clauses
– k-SAT : les closes sont des disjunctions de k variables booléennes
– Pour n=100 variables, la taille de l'espace de recherche est : 2^100
10^30,
– Avec 1000 solutions évaluées / sec : il faudrait 15 billions d'années
(Big Bang) pour évaluer moins de 1% de l'espace de recherche
– Pour k>2, k-SAT est NP-difficile ; k=2, Polynomial
29.
Taille de l'espacede recherche
(TSP)
● TSP de taille n (villes)
– TSP symmétrique : dist(x,y) = dist(y,x)
– |S| = n!/2n = (n-1)! / 2 ; n>6 TSP > SAT
– 10 villes = 181 000 solutions
– 20 villes = 10 000 . 000000 . 000000 solutions
– 50 villes = 100 000000000000000000000000000000
000000000000000000000000000000 solutions
– Il y a 1 000 . 000000 . 000000 . 000000 litres d'eau dans
la planète
30.
Taille de l'espacede recherche
(TSP)
●
(gauche) Plus grande instance résolue de façon exacte (1998 !) :
usa13509
●
(droite) solution optimale pour l'instance pcb3038
31.
Paradigme de recherche
●Perturbative search
– Espace de recherche = ensemble complet de solutions candidates
– Une étape de recherche = modi cation d'une ou plusieurs composante
d'une solution
– SAT
● modi cation des valeurs d'une ou de plusieurs variables
● Systematic search
– 'Traverser/parcourir' l'espace de recherche de façon systématique
– Evalue toute solution possible jusqu’à solution optimale globale trouvée
(Branch and Bound, A*, …).
– Question principale : Comment générer une séquence de toutes les
solutions ?
– Complète: garantie de trouver une solution (optimale), où de determiner
qu'aucune solution n'existe
32.
Paradigme de recherche
●Constructive search (construction heuristics)
– Espace de recherche = solutions candidates partielles
– Etape de recherche = extension avec un ou plusieurs
nouveaux composants
● Local Search
– Commencer avec une solution initiale de l'espace de
recherche
– 'itérativement' visiter une solution 'voisine'
– incomplète: pas de garantie de trouver une solution (optimale)
et/ou ne peut pas garantir qu'il n'y a pas de solutions avec
certitude
33.
Paradigme de recherche
●Systematic Search
– Complet
– Complémentarité avec les autres approches
● Quand utiliser ?
– Des preuves (certitude) d'optimalité ou de 'non
existance de solution' sont exigées
– Contraintes de temps non critiques
– Une connaissance des propriétés spécif
i ques au
problèmes peuvent être exploitées eff
i cacement
34.
Paradigmes de recherche
●Constructive Search (greedy heuristics)
– Complémentaire aux autres approches
● e.g., Utilisée pour construire une bonne solution qui est
ensuite améliorée en utilisant d'autres paradigmes de
recherche
– Les propriétés étudiées dans ce cadre permettent
d'avoir une connaissance spécifiques aux
problèmes spécifiques et mieux les résoudre
35.
Constructive heuristics
● Greedyconstruction heuristics
– Déterminer la qualité des composantes d'une solution avec
une fonction heuristique
– À chaque étape, retenir la 'meilleure' composante et l'ajouter
– Tie-breaking : souvent aléatoirement; rarement avec une
deuxième fonction
– Pour quelques problèmes polynomiaux, des algorithmes
“exacte” existent, e.g. Kruskal’s algorithm
– Stratégies statique vs. adaptative
● statique: décisions independentes de la solution partielle
● adaptative: décisions en fonction de la solution partielle
36.
Constructive Heuristic
● Deuxquestions essentielles :
– Définir l'ensemble des composants (les éléments)
– Comment sélectionner les composants qui donnent le
profil optimal à chaque itération
● Exemple typique :
– Instancier les variables de décisions une à une
– À chaque itération, choisir une décision 'locale' optimale
– Une décision optimale à chaque itération ne garantie pas
l'optimalité globale
– Approche simple/populaire
– Complexité réduite
37.
TSP constructive heuristics
●Des algorithmes simples qui construisent des
tournées de qualité raisonable
● Souvent utilisés pour construire une solution initiale
pour d'autres heuristiques
● Plusieurs types d'algorithmes
– Itérativement étendre une tournée partielle connexe
– Itérativement, construire des fragments de tournée et les
connecter entre eux pour f
i nalement former une tournée
complète
– Algorithmes plus complexes basés sur les arbres
recouvrants de poids minimums
38.
NN (Nearest Neighbor)heuristic
● Commencer avec un sommet initial (choisit aléatoirement)
● À chaque étape, prendre l'arête de poids minimum vers un
sommet non encore visité
– Étendre (v1
, … , vk
) avec un sommet u non visité tel que d(vk
,u)
soit minimale
● Compléter pour obtenir un cycle hamiltonien (fermer la
tournée)
● Pour les instances de taille n vérif
i ant l'inégalité triangulaire
la longueur de la tournée est mauvaise d'au plus un
facteur 1/2 · (log (n) + 1) que la trounée optimale
39.
Exemples
● (gauche) pcb1173;(droite) f
l 1577
● Pour les instances de la TSPLIB, les tournées NN sont
typiquement 20–35% plus mauvaises que l'optimale
● Typiquement, les tournées NN sont proches de l'optimale mais
contiennent quelques arêtes longues
40.
Insertion heuristic
● Itératievemntétendre une tournée partielle en insérant un sommet
choisit de façon heuristique tel que la longueur de la tourné augmente
le moins possible
● Plusieurs heuristiques pour choisir le sommet u suivant à insérer dans
la tournée partielle p
– nearest insertion (u le plus proche à un sommet de p)
– farthest insertion (u est celui dont la distance à un sommet de p est
maximale)
– cheapest insertion (u est celui qui augmente le moins possible la
longueur de p)
– random insertion (u est choisit aléatoirement)
● Nearest /cheapest insertion facteur d'approximation 2 pour les
instances TSP vérif
i ant l'inégalité triangulaires
● En pratique, farthest/random insertion est plus eff
i cace;
– Typiquement, qualité 13–15% au delà de l'optimale pour les instances
TSPLIB