Optimisation Combinatoire (Méthodes approchées) - LIFLderbel/ueOC/cours/oc1.pdf · Optimisation...
Transcript of Optimisation Combinatoire (Méthodes approchées) - LIFLderbel/ueOC/cours/oc1.pdf · Optimisation...
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 ?
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
Un exemple facile
● Choisir parmi un petit ensemble d'éléments
Un autre exemple … plus difficile mais facile quand même ● Trouver le meilleur chemin entre un point de
départ A et un point destination B
Un exemple difficile
● Voyageur de commerce (TSP) : trouver la meilleure tournée
Application du TSP
● Optimisation pour les cartes perforées
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
TSP : un problè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
SAT : Un autre 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 )
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.”
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
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
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
Modèles pour l'optimisation
É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
Polynomial Vs Exponential
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
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)]
aba b
e d
c
bc
ea
de
eb
cd
db
Transformation polynomiale
● Si vous 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
Algorithmes d'approximations
● Si on relâ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)
Les constantes !
Difficultés des problèmes réé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, ...
Comment résoudre ?
● Enumeration systématique
● Méthodes/Algorithmes spécifiques à un problème donnée
● Méthodes génériques exactes
● Méthodes génériques approchées : heuristiques
C'est quoi une heuristique ?● 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 ?
METAs : Un peu d'histoire
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érifi er le coût
de la solution (fonction objective) – Évauation des solutions candidates est typiquement
moins coûteux que trouver des solutions optimales
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
Taille de l'espace de 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
Taille de l'espace de 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
Taille de l'espace de recherche (TSP)
● (gauche) Plus grande instance résolue de façon exacte (1998 !) : usa13509
● (droite) solution optimale pour l'instance pcb3038
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
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
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écifi ques au
problèmes peuvent être exploitées effi cacement
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
Constructive heuristics
● Greedy construction 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
Constructive Heuristic
● Deux questions 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
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 fi nalement former une tournée complète
– Algorithmes plus complexes basés sur les arbres recouvrants de poids minimums
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, … , v
k ) avec un sommet u non visité tel que d(v
k,u)
soit minimale● Compléter pour obtenir un cycle hamiltonien (fermer la
tournée)● Pour les instances de taille n vérifi 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
Exemples● (gauche) pcb1173; (droite) fl 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
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érifi ant l'inégalité triangulaires
● En pratique, farthest/random insertion est plus effi cace;
– Typiquement, qualité 13–15% au delà de l'optimale pour les instances TSPLIB
Autres Examples
● Minimum spanning tree ?● Coloring ?● Knapsack ?