complexité de problèmes: la classe np - acttison/aac/c17/c11.pdf · les propriétés np-dures...

74
Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes Complexité de Problèmes: la classe NP ACT Sophie Tison Université Lille Master1 Informatique

Upload: dinhdung

Post on 10-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

Complexité de Problèmes: la classe NPACT

Sophie TisonUniversité Lille

Master1 Informatique

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

COMPLEXITÉ DES PROBLÈMES

▶ Rappels▶ Paradigmes d’algorithme▶ Complexité des problèmes

▶ Généralités▶ La classe P▶ La classe NP

▶ Propriétés NP▶ Réductions polynomiales, Propriétés NP-dures

▶ Algorithmique Avancée

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

NP= NON-DÉTERMINISTE POLYNOMIAL

Une propriété NP est une propriété pour laquelle trouver une"solution" (une preuve ..) est peut-être difficile, mais vérifierune solution (une preuve, un certificat...) est facile.

..

P versus NP

.P=easy to find, NP=easy to check

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

RÉDUCTION POLYNOMIALESoient L et L′ deux langages de Σ∗, correspondant à deuxpropriétés.Une réduction polynomiale de L dans L′ est une application redcalculable polynomiale de Σ∗ dans Σ∗ telle que:

u ∈ L Ssi red(u) ∈ L′.

Notation: L ≤P L′.Pour prouver qu’une propriété P1 se réduit polynomialementen une autre P2, il faut:

▶ proposer une réduction, i.e. un algo red qui à une instanceI de P1, associe une instance red(I) de P2.

▶ prouver qu’elle est correcte, i.e. qu’une instance I de P1 estpositive Si et Seulement Si red(I) est une instance positivede P2.

▶ prouver qu’elle est polynomiale.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LES PROPRIÉTÉS NP-DURES, NP-COMPLÈTES

..

Propriété NP-dure

.

Une propriété R est dite NP-dure Si toute propriété NP seréduit polynomialement en R.

Si une propriété NP − dure était P, on aurait NP = P: unepropriété NP − dure contient donc d’une certaine façon toute ladifficulté de NP!

..

Propriété NP-complète

.

Une propriété R est dite NP-complète Si elle est NP etNP−dure.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LA HIÉRARCHIE

EXPTIME

NP

P

PSPACENP-complets ?

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

MONTRER QU’UNE PROPRIÉTÉ EST NP-DURE?

Comment? Pour montrer que R est NP-dure, il suffit demontrer qu’une propriété connue NP−dure se réduitpolynomialement en R.Pourquoi? Si une propriété NP−dure se révélait être P, onaurait P = NP, ce qui est peu probable et en tout cas a résistéaux efforts de nombreux chercheurs!

..

Montrer qu’une propriété est NP−dure justifieraisonnablement qu’on n’ait pas trouvé d’algorithmepolynomial pour décider de cette propriété!

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

EXEMPLE: CLIQUE EST NP-DUR

▶ 3 − CNF − SAT se réduit polynomialement dans Clique:3 − CNF − SAT ≤P Clique

▶ 3 − CNF − SAT est NP−dur (Th. de Cook)

▶ donc Clique est NP− dur

▶ Clique est même NP− complète car NP + NP−dure.

On avait prouvé que Clique se réduit en Independent, doncIndependent aussi est NP−dur.Comme Clique est NP, 3 − CNF − SAT est NP−dure.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

PROUVER QU’UNE PROPRIÉTÉ EST NP−DURE

Pour prouver qu’une propriété R est NP−dure, on peut choisirune propriété connue NP-dure et essayer de la réduire dans R:le problème est de bien la choisir!

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE CATALOGUE "LES PROPRIÉTÉS NP−COMPLÈTES"

Il existe un catalogue des propriétés NP−dures, le livre deGarey et Johnson:" Computers and Intractability: A guide tothe theory of NP-completeness " qui contient beaucoup deproblèmes mais date de 1979.Depuis des centaines de propriétés ont été montrées NP-dures.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

UN EXTRAIT DU CATALOGUE DE NP−COMPLÈTES:

▶ 3-CNF-SAT▶ 3-coloriage de graphes▶ existence d’une clique de taille k dans un graphe.▶ le pb du BinPacking▶ Le pb du sac à dos (non fractionnable).▶ le pb de l’existence d’un circuit hamiltonien.▶ Le pb du voyageur de commerce.▶ la programmation linéaire en entiers.▶ Le pb du recouvrement d’ensembles.▶ Le pb du démineur ...

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE DÉMINEURMINESWEEPER IS NP-COMPLETE! BY RICHARD KAYE 2000

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

CLASSIC NINTENDO GAMES ARE (NP-)HARDBY GREG ALOUPIS, ERIK D. DEMAINE, ALAN GUO, MARCH 9, 2012

We prove NP-hardness results for five of Nintendo’s largestvideo game franchises: Mario, Donkey Kong, Legend of Zelda,Metroid, and Pokemon. Our results apply to Super Mario Bros.1, 3, Lost Levels, and Super Mario World; Donkey KongCountry 13; all Legend of Zelda games except Zelda II: TheAdventure of Link; all Metroid games; and all Pokemonrole-playing games.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

CANDY-CRUSH IS (NP-)HARD

Toby Walsh(2014): We prove that playing Candy Crush toachieve a given score in a fixed number of swaps is NP-hard.

Luciano Gualà, Stefano Leucci, Emanuele Natale: Bejeweled,Candy Crush and other Match-Three Games are (NP-)HardPour en savoir plus: http://candycrush.isnphard.com/

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

PERL REGULAR EXPRESSION MATCHING IS

NP-HARDBY M-J. DOMINUS

Perl takes exponential time (in the length of the string to bematched) to check whether or not a string matches certainregex.One is tempted to wonder whether this difficulty is inherent, orwhether there might be a clever way of speeding up thematching algorithm. The answer is that there is probably noclever way to speed up the algorithm, and that the exponentialrunning time of the matching algorithm is probablyunavoidable. We show that regex matching is NP-hard whenregexes are allowed to have backreferences.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

ATTENTION AUX FAUX FRÈRES!L’UN EST FACILE (P), L’AUTRE SANS DOUTE DIFFICILE (NP-DUR)!

Le 2-coloriage versus le 3-coloriage??? Le 3-coloriage d’ungraphe planaire versus le 4-coloriage d’un graphe planaire???le pb du plus court chemin versus le pb du plus long cheminsans cycle??? 2-SAT versus 3-SAT??? La programmationlinéaire en entiers versus la programmation linéaire en réels???

P NP-dur

2-coloriage 3-coloriage4-coloriage planaire 3-coloriage planaire

Chemin le plus court Chemin le plus long2-SAT 3-SAT

Programmation linéaire en réels Programmation linéaire en entiers

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

PROBLÈMES NP-DURS/PROPRIÉTÉS

Ce qui précède ne s’applique qu’aux propriétés.Parler de problèmes NP, si ce ne sont pas des problèmes dedécision, n’a guère de sens;Par contre on peut parler de problèmes NP−durs:

..

Problème NP-dur

.

Si l’existence d’un algorithme polynomial pour le prob-lème R implique P = NP, on dit que R est NP−dur.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

PROBLÈMES NP-DURS ET OPTIMISATION

A tout pb d’optimisation de type "trouver une solution de coûtminimal (resp. de gain maximal)", on peut associer unepropriété:"existe-t-il une solution de coût inférieur (resp. de gainsupérieur) à une valeur donnée en entrée?"Si le pb de décision est NP−dur, le pb d’optimisation le seraaussi.Si on avait un algorithme P pour le pb d’optimisation, on enaurait un pour celui de décision donc pour toute propriété NP,puisqu’il est NP−dur!

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

PROBLÈMES NP-DURS: L’EXEMPLE DU COLORIAGE

DE GRAPHES

Le "vrai" problème du coloriage: pour un graphe, trouver uncoloriage correct utilisant le moins de couleurs possibles.Un problème intermédiaire: pour un graphe, trouver le nombreminimal de couleurs nécessaire pour un coloriage correct.La propriété associée du k−coloriage: étant donné un graphe etun entier k, existe-t-il un coloriage correct de G avec k couleurs?

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

EXEMPLE (SUITE)

Si il existait un algorithme polynomial pour colorier un grapheavec le moins de couleurs possible, on aurait un algorithmepolynomial pour déterminer le nombre de couleurs optimal: onapplique l’algorithme qui nous donne un coloriage optimal, eton retourne le nombre de couleurs.

Si il existait un algorithme polynomial pour trouver le nombreminimal de couleurs nécessaire pour un coloriage correct, onaurait un algorithme polynomial pour la propriété duk−coloriage: on applique l’algorithme qui nous donne lenombre minimal de couleurs, on vérifie si il est inférieur ouégal à k.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

EXEMPLE (SUITE)

Si il existait un algorithme polynomial pour trouver le nombreminimal de couleurs nécessaire pour un coloriage correct, ilexisterait un algorithme polynomial pour une propriétéNP−dure et donc on aurait P = NP.

Si il existait un algorithme polynomial pour colorier un grapheavec le moins de couleurs possible, on aurait un algorithmepolynomial pour une propriété NP−dure et donc P = NP.

..Le problème de coloriage de graphe est NP−dur.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LA PROPRIÉTÉ CONTIENT SOUVENT TOUTE LA

DIFFICULTÉ DU PROBLÈME GÉNÉRAL

Si il existait un algorithme polynomial pour la propriété duk − coloriage, comment en déduire un algorithme polynomialpour trouver le nombre minimal de couleurs pour un coloriagecorrect?pour nc de 1 à nombre de sommetssi on peut colorier G avec nc couleursalors return nc

L’algorithme est polynomial, si on peut tester en tempspolynomial si on peut colorier G avec nc couleurs: sacomplexité est au plus nsommets fois celle du test de lapropriété.On peut utiliser la dichotomie sur le nombre de couleurs pouravoir une complexité en (log nsommets) fois celle du test de lapropriété.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LA PROPRIÉTÉ CONTIENT SOUVENT TOUTE LA

DIFFICULTÉ DU PROBLÈME GÉNÉRAL

Si il existait un algorithme polynomial pour la propriété duk − coloriage, comment en déduire un algorithme polynomialpour le coloriage du graphe en un nombre minimal decouleurs?

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LA PROPRIÉTÉ CONTIENT SOUVENT TOUTE LA

DIFFICULTÉ DU PROBLÈME GÉNÉRAL

"Idée"On détermine d’abord k le nombre de couleurs optimal commeon vient de faire.On rajoute au graphe k noeuds correspondant aux k couleurs,tous reliés entre eux.A chaque étape, on "colorie" un noeud du graphe initial: pourune couleur donnée, si en le connectant aux k − 1 autres noeuds"couleurs" un k-coloriage est possible, on colorie dans cettecouleur. On teste toutes les couleurs en utilisant l’agorithme dedécision pour la propriété jusqu’à en trouver une correcte.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

/* k est le nombre de couleurs optimal */pour s de 1 à nombre de sommets {

/* chercher col pour s */col=1; Trouve=False;tant que non Trouve {relier s aux "couleurs" sauf colsi on peut colorier le graphe avec k couleursalors Trouve=Truesinon {enlever les arcs ajoutés; col++;}}}

Si l’algorithme de décision était polynomial, on obtiendrait unalgorithme polynomial pour colorier le graphe.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

COMPLEXITÉ DES PROBLÈMES: BILAN

▶ NP : "easy to check" , ne vaut que pour les propriétés(oui/non)

▶ NP − dur : contient toute la complexité de NP, "aussi dur"que n’importe quel NP: si une propriété NP − dure était P,on aurait P = NP.

▶ NP − complet : NP et NP − dur.

▶ pour montrer que R est NP−dur: on cherche à réduirepolynomialement une propriété connue NP − dure dans R.

▶ pour montrer qu’un pb d’optimisation est NP-dur, onmontre que le pb de décision associé l’est.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

A INSPIRÉ UN FILM

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

A INSPIRÉ UN FILM

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

UN ÉPISODE DE LA SÉRIE "ELEMENTARY"...

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

COMPLEXITÉ DES PROBLÈMES

▶ Rappels▶ Paradigmes d’algorithme▶ Complexité des problèmes

▶ Généralités▶ La classe P▶ La classe NP

▶ Propriété NP▶ Réductions polynomiales, Propriétés NP-dures

▶ Que faire face à un problème dur?

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

QUE FAIRE FACE À UN PROBLÈME NP-DUR?

Supposons qu’on ait à résoudre un problème d’optimisationNP-dur:

Il paraît raisonnable d’abandonner l’idée d’avoir un algorithmepolynomial qui donne à coup sûr la solution (optimale), à

moins de prétendre prouver que P = NP.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

QUE FAIRE FACE À UN PROBLÈME NP-DUR?

On pourra alors avoir deux attitudes:

▶ abandonner l’idée d’avoir un algorithme polynomial

▶ abandonner l’idée d’avoir un algorithme qui donnetoujours la solution exacte!

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

ABANDONNER L’IDÉE D’AVOIR UN ALGORITHME

POLYNOMIAL...

On peut essayer d’obtenir un algorithme exact non polynomial"optimisé" et ne l’appliquer que sur des données relativementpetites.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

ABANDONNER L’IDÉE D’AVOIR UN ALGORITHME

POLYNOMIAL...... ET UN PSEUDO-POLYNOMIAL?

Un algorithme pseudo-polynomial est un algorithme qui estpolynomial si les entiers de la donnée sont codés en base 1: parexemple, si la donnée est un entier n, un algorithme en Θ(n)n’est pas polynomial mais il est pseudo-polynomial.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

EXEMPLE D’ALGORITHME PSEUDO-POLYNOMIAL?LE PROBLÈME DE LA CIBLE

Le problème de décision est simplement d’obtenir un entiercomme somme d’entiers choisis parmi un ensemble d’entiersdonnés.Formellement le problème de décision Cible est défini par:Donnée:x1..., xn n entiers > 0cible, un entier cible ≥ 0Sortie: J tel que

∑i∈J xi = cible.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE PROBLÈME DE LA CIBLEALGORITHME "PROGRAMMATION DYNAMIQUE"

boolean att (int[] x, int cible){boolean [x.length+1][cible+1] = Opt;Opt[0][0]=true;pour i de 1 à x.lengthpour s de 0 à cibleif s<x[i]

Opt[i][s]=Opt[i-1][s];elseOpt[i][s]=(Opt[i-1][s]||Opt[i-1][s-x[i]]);

return Opt[x.length][cible];}

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

COMPLEXITÉ

boolean att (int[] x, int cible){boolean [x.length+1][cible+1] = Opt;Opt[0][0]=true;pour i de 1 à x.lengthpour s de 0 à cibleif s<x[i] Opt[i][s]=Opt[i-1][s];else Opt[i][s]=(Opt[i-1][s]||Opt[i-1][s-x[i]]);

return Opt[x.length][cible];}

Complexité en Θ(n ∗ cible)Taille de la donnée: au moins n + log(cible), au plus(n + 1) ∗ log(cible)Donc l’algorithme n’est pas polynomial. Si la cible ( etseulement elle) était écrite en unaire, il serait polynomial.

L’algorithme est pseudo-polynomial.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

EXEMPLE D’ALGORITHME PSEUDO-POLYNOMIAL?LE PROBLÈME D’OPTIMISATION DE LA CIBLE

Le problème d’optimisation CibleOpt est défini par::Donnée:x1..., xn n entiers > 0cible, un entier cible ≥ 0Sortie: J tel que

∑i∈J xi maxi tel que

∑i∈J xi ≤ cible.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE PROBLÈME DE LA CIBLEOPTIMISATION

int att (int[] x, int cible){boolean [x.length+1][cible+1] = Opt;Opt[0][0]=true;pour i de 1 à x.lengthpour s de 0 à cibleif s<x[i]

Opt[i][s]=Opt[i-1][s];elseOpt[i][s]=(Opt[i-1][s]||Opt[i-1][s-x[i]]);

pour s de cible à 0si Opt[x.length][s] return s;

}

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

Cible EST NP-COMPLET, CibleOpt EST NP-DUR

▶ Cible NP: un certificat est simplement un choix des xi

▶ Cible NP-dur: réduction polynomiale par exemple de3 − CNF − SAT dans Cible.

▶ CibleOpt est NP-dur: si CibleOpt était P, Cible le serait.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LA PANACÉE?

Les pseudo-polynomiaux ne sont pas la panacée: ils restentcoûteux et pour beaucoup de problèmes NP−durs, on n’enconnait pas.

On dit qu’un problème est faiblement NP-dur si il est NP−duret qu’il existe un algo pseudo-polynomial pour le résoudre.

On peut aussi essayer des méthodes d’énumération intelligentedes solutions.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

ENUMÉRATION DES SOLUTIONS

▶ Comme en TP, avec la méthode du British Museum: onénumère des candidats solutions.

▶ Alternative: une solution peut souvent être construite defaçon incrémentale: on peut souvent représenter l’espacedes solutions comme un arbre "de choix". Par exemple,pour le TP, dans une solution partielle on aurait attribuéune date de lancement et une machine à une partie destâches seulement.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

BACKTRACKING ET ARBRE DES SOLUTIONSVERSION RÉCURSIVE POUR LA DÉCISION

//explore le sous-arbre de racine solExplorer(Solution sol){si sol est faisable{si solution est completereturn Vrai;

sinonpour chaque s successeur de sol

explorer(s);}return Faux;}

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

BACKTRACKING ET ARBRE DES SOLUTIONSVERSION RÉCURSIVE POUR L’OPTIMISATION

//explore le sous-arbre de racine solExplorer(Solution sol){si sol est faisable{si solution est complete

si elle est meilleure que meilleure trouvéemettre à jour la meilleure trouvée;}

sinonpour chaque s successeur de sol

explorer(s);}}retourner meilleure trouvée;

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

BACKTRACKING ET ARBRE DES SOLUTIONSEXEMPLE POUR CIBLE

Une solution partielle est donc par exemple un choix O/Npour les valeurs x1, ..., xi.

▶ tester si elle est faisable : si la somme des valeurs prises est≤ cible.

▶ tester si elle est complète si la somme des valeurs prises estla cible.

▶ évaluer la solution pour les problèmes d’optimisation:évaluer la somme des valeurs prises.

▶ énumérer la liste de ses successeurs : simplement on adeux successeurs: prendre ou non xi+1.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

BACKTRACKING ET ARBRE DES SOLUTIONSVERSION ITÉRATIVE POUR OPTIMISATION

//explore le sous-arbre de racine solExplorer(Solution sol)empiler(sol);tant que pile non vide {depiler(solution);si solution est complete {

si elle est meilleure que meilleure trouvéemettre à jour la meilleure trouvée;}

sinon pour chaque s successeur faisable de solempiler(s);

}

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

BACKTRACKING ET ARBRE DES SOLUTIONSCOMMENT AMÉLIORER?

▶ On peut améliorer: si on peut dire que toute solution quicomplète l’actuelle est moins bonne que la meilleuretrouvée, on élague.

▶ Dans l’autre sens, on pourrait explorer en premier les choixqui paraissent le plus prometteurs.

C’est ce qu’on appelle le "Branch and Bound" ou "Séparation etEvaluation".

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

SÉPARATION ET EVALUATION

La méthode Branch and Bound ou Séparation-Evaluation estbasée sur:

▶ Séparation (Branch): à partir d’un noeud, on explore lesdifférentes branches

▶ Evaluation (Bound): on évalue l’intérêt des branches.▶ On essaie de trouver une borne inf: toute solution issue de

ce noeud aura un coût au moins de MIN et une borne sup-toute solution issue de ce noeud aura un coût au plus deMAX-

▶ Si la borne inférieure d ’une région A est supérieure à laborne supérieure de B, je peux éviter d’aller explorer A:c’est l’élagage ou le pruning.

▶ On explore en premier les branches les plus prometteuses:on peut remplacer la pile de tout à l’heure par une file depriorité basée sur le MIN associé à une solution.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

QUE FAIRE FACE À UN PROBLÈME NP-DUR?▶ s’acharner à chercher avoir un algorithme polynomial en

espérant montrer P = NP ...▶ abandonner l’idée d’avoir un algorithme polynomial

▶ pour certains problèmes NP-durs, il exise des algorithmespseudo-polynomiaux.

▶ utiliser la spécificité des données; on peut parfois concevoirdes algorithmes "efficaces à paramètres fixés" (algorithmesFPT, fixed-parameter tractable)...

▶ utiliser des méthodes "améliorées" d’énumération dessolutions: exploiter la symétrie des solutions, élaguerl’arbre des solutions (pruning), prioriser les branches lesplus prometteuses - cf branch and bound,

▶ utiliser les solveurs existants, par exemple des solveursSAT ou de programmation linéaire en entiers.

▶ abandonner l’idée d’avoir un algorithme qui donnetoujours la solution optimale

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

ABANDONNER L’IDÉE D’AVOIR UN ALGORITHME QUI

DONNE TOUJOURS LA SOLUTION OPTIMALE

Le cadre est celui des problèmes d’optimisation: on cherche àconstruire une solution à un problème qui optimise unefonction objectif.

On peut utiliser un algorithme d’approximation: il fournittoujours une solution mais pas forcément une solutionoptimale. Bien sûr, on souhaite qu’il soit efficace.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

DÉTERMINISTE OU NON

Un algorithme d’approximation peut être:

▶ déterministe - pour une entrée donnée, il donnera toujoursla même solution (heuristiques gloutonnes, optimum local,tabou....)

▶ non déterministe: recuit simulé, algorithme génétique,...

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

"AD HOC" OU NON

Un algorithme d’approximation peut être:

▶ basé sur un critère glouton propre au problème- on parled’heuristique (gloutonne).

▶ l’instanciation d’une métaheuristique -algorithmesgénétiques, recuit simulé, tabou..., souvent basée sur desanalogies avec des phénomènes physiques (recuit simulé)ou naturels (algorithmes génétiques, colonies de fourmis,essaims...)

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

HEURISTIQUE

Art d’inventer, de faire desdécouvertes.Du grec ancien heurískô («trouver »), dont est aussi issueurêka.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

COMMENT MESURER LA QUALITÉ D’UN ALGORITHME

D’APPROXIMATION?NOTIONS DE GARANTIES

Soit Opt(I) la solution optimale pour l’instance I, A(I) lasolution produite pour I par l’algorithme A et f la fonctionobjectif à optimiser.On définit le Ratio de garantie.

C’est la borne sup de f (A(I))f (Opt(I)) pour toute instance I si la fonction

objectif est à minimiser, ou de f (Opt(I))f (A(I)) pour toute instance I si la

fonction objectif doit être maximisée.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE RATIO DE GARANTIEQUELQUES REMARQUES

Le ratio de garantie n’est pas toujours fini.

Il est toujours supérieur ou égal à 1.

Si il est égal à 1 c’est que l’algorithme est exact!

Plus ce ratio est proche de 1, meilleure est la garantie del’approximation.

Le ratio "exprime le pire des cas".

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE PRINCIPE D’UNE HEURISTIQUE GLOUTONNE

Le principe est proche de celui des algorithmes gloutons:construire incrémentalement une solution en faisant les choix

qui paraissent judicieux à défaut d epouvoir garantir qu’ilssont optimaux.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

HEURISTIQUES GLOUTONNES

Départ

choix 1

choix 1.1 choix 1.2

choix 2

choix 2.1 choix 2.2

choix 3

choix 3.1

L’heuristique gloutonne fait ses choix localement pour ne pasexplorer tout l’arbre.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

L’EXEMPLE DU BINPACK

Le BinPack ou la mise en sachets:Donnée:n //nb objetsp1, p2, ..., pn les poidscap la capacité d’un sacObjectif? mettre en sachets en utilisant le moins de sacs, i.e.trouver:aff: [1..n]− > [1..n]tel que

∑aff (i)=s pi <= cap pour tout sac s

Qui minimise le nombre de sacs, i.e. max(aff (i))

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

UN EXEMPLE

Le BinPack ou la mise en sachets:Donnée:N = 5p1 = 2, p2 = 3, p3 = 3, p4 = 2, p5 = 2. les poidscap = 6Q? Optimum:mettre 1,4,5 dans un sac, 2 et 3 dans un autreLe problème est NP−dur: il y a peu de chances d’avoir unalgorithme exact polynomial!

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

UNE HEURISTIQUE ?

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

L’HEURISTIQUE DE LA MÉNAGÈREAPPELÉE ÉGALEMENT NextFit

ns=1;//le premier sacc=cap;//place restante dans le sac courantfor i de 1 à n do

if (pi ≤ c) thenl’objet rentre dans sac courantaff(i)=ns; c=c − pi;

else// on le met dans un nouveau sacns++; aff(i)=ns;c=cap-pi;

end

L’algorithme est en O(n) (taille de la donnée > n).

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

GARANTIE?

Soit k le nombre de sacs utilisés par l’heuristique sur uneinstance:le poids des objets des sacs 1 et 2 > capLe poids des objets des sacs 3 et 4 > cap...le poids des objets des sac 2 ∗ i − 1et 2 ∗ i > caple poids des objets des sac 2 ∗ (k/2)− 1 et 2 ∗ (k/2) > capDonc le poids des objets > cap ∗ k/2Donc la solution optimale utilise au moins(k/2 + 1)sacs

f (A(I))f (Opt(I)) ≤ 2 pour toute instance I.

Le ratio est au plus 2.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

LE RATIO EST BIEN 2

Soitp1 = k, p2 = 1, p3 = k, p4 = 1, p5 = k....p4k = 1cap = 2 ∗ k

L’algorithme glouton va utiliser 2k sacs:x 1, x 1,...

Alors que l’optimale va utiliser k + 1 sacs:x x, x x,....,1 ......1

Donc le ratio est supérieur à 2kk+1 pour tout k.

Comme le ratio est au plus 2, le ratio est donc 2;

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

D’AUTRES IDÉES D’HEURISTIQUE?▶ Heuristique 1 (NextFit) ou heuristique de la ménagère▶ Heuristique 2 (FirstFit) Pour chaque objet, on regarde si il

rentre dans un des sacs créés: si oui, on le met dans lepremier qui convient; sinon, on créee un nouveau sac et ony met l’objet;

▶ Heuristique 3 (BestFit) Pour chaque objet, on regarde si ilrentre dans un des sacs créés: si oui, on le met dans le celuiqui est le plus rempli parmi ceux qui conviennent. Sinon,on crée un nouveau sac et on y met l’objet.

▶ Heuristique 4 (WorstFit) Pour chaque objet, on regarde si ilrentre dans un des sacs créés: si oui, on le met dans le celuiqui est le moins rempli. Sinon, on crée un nouveau sac eton y met l’objet.

▶ Pour chaque heuristique, on peut soit l’appliquer “online”-on range les objets au fur et à mesure de leur arrivée, soitoffline: dans ce cas, on peut trier les objets par poidsdécroissants avant de les ranger.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

D’AUTRES IDÉES D’HEURISTIQUE?

On peut essayer aussi de placer les "gros" objets de façonoptimale en utilisant en algorithme exact, puis de placer lespetits objets.On obtient un schéma paramétré par la taille minimum desobjets qu’on considère dans la première phase.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

UNE GARANTIE < 3/2 ?LE RETOUR DES RÉDUCTIONS POLYNOMIALES

..

Si il existait une heuristique polynomiale de garantiestrictement inférieure à 3/2 pour BinPack,on aurait P=NP.

En effet, si on avait une heuristique polynomiale de garantie<3/2, on aurait un algorithme polynomial pour Partition.

Pourquoi? (voir Tableau)

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

UN AUTRE EXEMPLE

VertexCoverDonnée: (G=(S,A))Q? Trouver C un sous-ensemble de S de cardinal minimum quicouvre A i.e. tel que toute arête a une extrémité dans S.Le problème est NP-dur.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

QUEL ALGORITHME CHOISIR?

C=EnsVide;while A non vide do

choisir une arête (u,v) de A;ajouter ses deux extrémités à C;éliminer de A tous les arcs dont une extrémité est u ou v.

endou?C=EnsVide;while A non vide do

choisir une arête (u,v) de A;ajouter une des extrémités, par ex. u à C;éliminer de A tous les arcs dont une extrémité est u

end

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

QUE CHOISIR?

Quelle est celle qui offre la meilleure garantie?

▶ La première offre un ratio de 2: soit O une solutionoptimale, C la gloutonne: nécessairement O contient aumoins la moitié des éléments de C!

▶ La deuxième: pas de garantie

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

PEUT-ON TOUJOURS TROUVER UN ALGO POLYNOMIAL

AVEC GARANTIE POUR UN PROBLÈME NP-DUR?

Quel que soit le problème associé à un problème de décisionNP, peut-on toujours trouver un algorithme polynomialdéterministe d’approximation avec une garantie?Non! Il y a plusieurs situations possibles:

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

SANS GARANTIE

Pour certains problèmes, on montre que, quel que soit le ratiode garantie constant, on ne peut pas trouver d’algorithmepolynomial qui offre ce ratio de "garantie", sauf si P = NP.C’est le cas du problème du voyageur de commerce, si on nesuppose pas que la distance vérifie l’inégalité triangulaire.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

AVEC UNE CERTAINE GARANTIE

Pour certains on connaît des algorithmes polynomiaux quioffrent une certaine garantie. C’est le cas du problème duvoyageur de commerce, si on suppose que la distance vérifiel’inégalité triangulaire ou du BinPack.

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

SCHÉMA D’APPROXIMATIONS

Pour d’autres, on montre même que quel que soit le ratio degarantie, on peut trouver un algorithme polynomial qui offrecette garantie.On a dans ce cas deux types de schémas:

▶ dans le cas le moins favorable, le degré du polynômedépend de la qualité de l’approximation souhaitée.

▶ Dans l’autre cas, on a un schéma complet polynomiald’approximation i.e. on a un algorithme polynomial quiaccepte en entrée une instance du problème et une qualitéde solution souhaitée et ressort une solution ayant cettequalité. C’est le cas du Knapsack.

En pratique, ce n’est pas forcément très intéressant car le degrédu polynôme peut être grand!

Les propriétés NP-dures Algorithmes non polynomiaux Algorithmes d’approximation Heuristiques Gloutonnes

HEURISITIQUES GLOUTONNES ET GARANTIES: BILAN

▶ Les heuristiques gloutonnes sont souvent simples etefficaces (linéaires, ou presque)

▶ Le ratio de garantie ... garantit une certaine qualité maisn’est qu’une indication correspondant au pire des cas!

▶ Certains problèmes NP-durs n’ont pas d’algorithmespolynomiaux d’approximation avec garantie, sauf si P=NP.