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)]
ab
a 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é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
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écif
i ques au
problèmes peuvent être exploitées eff
i 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 f
i 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
, … , 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
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
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
Autres Examples
● Minimum spanning tree ?
● Coloring ?
● Knapsack ?

Intro à l'optimisation combinatoire 1.pdf

  • 1.
    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
  • 3.
    Un exemple facile ●Choisir parmi un petit ensemble d'éléments
  • 4.
    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
  • 5.
    Un exemple difficile ●Voyageur de commerce (TSP) : trouver la meilleure tournée
  • 6.
    Application du TSP ●Optimisation pour les cartes perforées
  • 7.
    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
  • 14.
  • 15.
    É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
  • 16.
  • 17.
    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)
  • 21.
  • 22.
    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, ...
  • 23.
    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
  • 24.
    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 ?
  • 25.
    METAs : Unpeu d'histoire
  • 26.
    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
  • 41.
    Autres Examples ● Minimumspanning tree ? ● Coloring ? ● Knapsack ?