La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT-66975 Contourner la NP-complétude. Que faire face à la NP-complétude? Pour une application précise, je veux trouver la plus grande clique possible.

Présentations similaires


Présentation au sujet: "IFT-66975 Contourner la NP-complétude. Que faire face à la NP-complétude? Pour une application précise, je veux trouver la plus grande clique possible."— Transcription de la présentation:

1 IFT Contourner la NP-complétude

2 Que faire face à la NP-complétude? Pour une application précise, je veux trouver la plus grande clique possible dans un graphe ou répartir une tâche de façon optimale, ou satisfaire simultanément un ensemble de clauses booléennes. Mais CLIQUE, SWI, SAT sont NP-complets! Est-ce la fin du monde? R: Peut-être... mais il y a un peu despoir si on réduit nos exigences ou nos attentes.

3 1. Sassurer que lon ne fait pas face à un sous-cas relativement simple dun problème NP-complet. Lapplication nous fournit-elle des informations additionnelles sur les instances? problèmes sur des classes de graphes relativement simples; 2-SAT, Horn-SAT, 2-COL,... Algorithmes pseudo-polynomiaux et NP- complétude forte.

4 2. Pour les problèmes doptimisation, on peut souvent obtenir un algorithme efficace qui trouve une solution quasi- optimale. Possible dans plusieurs cas mais avec une qualité dapproximation très variable. Nouvelles classes de problèmes: PTAS, FPTAS, APX. Résultats dinapproximabilité.

5 3. Réduire lexplosion du temps de calcul à un paramètre relativement petit. Par exemple: trouver une couverture par sommets de taille k est réalisable en temps O(1.27 k + |V|). Pas si mal si on cherche des petites couvertures dans un grand graphe. Un temps O(f(k) n c ) nest pas déraisonnable si k est très petit mais O(n f(k) ) ne lest pas. Problèmes traitables pour paramètre fixe (FPT), réductions paramétrées. W[1]-complétude.

6 4. Heuristiques faire un peu nimporte quoi et espérer que tout aille pour le mieux. Heuristiques spécifiques à un problème. Fouille aléatoire, algorithmes génétiques. Complexité des problèmes à boîte noire.

7 Pourquoi ne pas se contenter des heuristiques? Tentant de sen remettre toujours aux heuristiques mais 1. Aucune garantie de complexité algorithmique (pas trop grave en pratique) 2. Aucune garantie de performance sur la qualité des solutions trouvées. 3. En sautant sur la solution heuristique on laisse peut-être passer une solution algorithmique plus acceptable.

8 Lanalyse de sous-problèmes En pratique, les problèmes que nous avons à résoudre ont souvent beaucoup de structure quon a tendance à oublier lors dune première analyse. Lorsquun problème qui nous intéresse est NP-complet, la première étape est de sassurer que lon ne fait pas face à un sous- cas plus simple. Dans ce cas, il y a peut-être un algorithme polynomial pour ce sous-cas.

9 Exemples Le théorème de Schaefer nous donne 6 variantes polynomiales de SAT. SAT est résoluble en temps polynomial si chaque variable apparaît dans au plus 2 clauses.

10 DLP est NP-complet. DLP est résoluble en temps polynomial pour les graphes acycliques. TSP est NP-complet. TSP 2 est NP-complet. TSP 2, est NP-complet. TSP 2,,sym est NP-complet.

11 De nombreux problèmes de graphe qui sont NP-complets ont des algorithmes polynomiaux lorsquon les restreints aux 1. graphes de degré borné; 2. graphes de nombre chromatique borné (nombre de couleurs nécessaires pour un coloriage valide); 3. graphes acycliques; 4. arbres; 5. forêts; 6. graphes planaires; 7. graphes bipartis.

12 Démontrer quun sous-cas est NP- complet Parfois, notre démonstration que A est NP-complet montre en fait un résultat plus fort si on en fait une analyse détaillée. 1. Preuve que HC p TSP montrait en fait HC p TSP 2,,sym 2. Preuve que 3-SAT p DLP montrait en fait 3-SAT p DLP-source-cible. Parfois il faut raffiner nos réductions.

13 On a déjà vu que 3-COL est NP- complet. Est-ce que le problème reste NP- complet lorsquon restreint le problème aux graphes planaires? Notre réduction de 3-SAT vers 3-COL produit un graphe qui en général nest pas planaire. On va montrer que 3-COL p 3-COL plan.

14 Le défi est de transformer un graphe G en un graphe planaire G tel que G est 3-COL si et seulement si G est 3-COL. Lidée est de remplacer localement les arêtes avec des croisements par des gadgets planaires qui simulent larête.

15 Essayons de colorier le gadget suivant lorsque le point de droite est rouge.

16 2 cas possibles pour colorier le troisième point incident. Fait à noter, les points extrèmes ont des couleurs égales 2 à 2.

17 Second cas... Donne lieu à deux sous- sous-cas, selon la couleur du sommet du haut. Les 4 sommets extrèmes ont la même couleur.

18 Dernier cas... Impossible de colorier le dernier point! Donc les 2 cas précédents sont les seuls coloriages possibles, à une permutation des couleurs près.

19 Le gadget P a les propriétés suivantes. 1.Dans tout 3-coloriage de P, les points extrèmes ont des couleurs égales 2 à 2. 2.Si on colorie les points extrèmes avec des couleurs égales 2 à 2, alors on peut légalement colorier les autres points de P. 3.P est planaire

20 Pour compléter notre réduction de 3-COL vers 3-COL plan, on considère une représentation de G dans le plan. Soit (u,v) une arête de G qui intersecte un certain nombre dautres arêtes. uv... On remplace cette arête par uv... u PPP À cause des propriétés de P, le graphe G ainsi obtenu est 3- coloriable si et seulement si le graphe G est 3-coloriable. De plus G peut être construit en temps polynomial.

21 Le problème 3-COL plan est donc NP-complet. Quel est le statut du problème 4-COL plan ? On sait que le problèm 4-COL est NP-complet, peut-on montrer que 4-COL P 4-COL plan ? Théorème des 4 couleurs: Tout graphe planaire peut-être 4-colorié. Donc 4-COL plan est dans P, puisque le problème peut être résolu par un algorithme qui accepte toutes les entrées! En particulier, 4-COL ne peut- être transformé en temps polynomial en 4- COL plan.

22 Algorithmes pseudo-polynomiaux Nous avons vu que le problème du sac à dos est NP-complet. Maintenant nous allons voir que le problème du sac à dos est dans P. !!??!??

23 Une instance du problème de sac à dos est spécifiée par n objets de valeur v i et de poids p i et une capacité du sac à dos C. Algorithme de programmation dynamique: on crée une table T de (n+1) rangées (0 à n) et de C + 1 colonnes (0 à C). On veut que lentrée T[k,w] représente la valeur maximale atteinte en choisissant parmi les k premiers objets et sans dépasser le poids w. Lentrée T[n,C] est la réponse que lon cherche.

24 C n On peut facilement remplir la première rangée et la première colonne car T[0,w] = 0 et T[k,0] = 0.

25 C n 0 On complète maintenant le tableau rangée par rangée. Supposons que les rangées 0 à k-1 ont été remplies. Un choix optimal parmi les k premiers objets contient ou ne contient pas lobjet k. Donc T[k,w] = max{T[k-1,w], T[k-1,w-p k ] + v k }.

26 Quelle est la complexité de lalgorithme? Il y a O(Cn) entrées à remplir. Chaque entrée peut-être remplie en temps constant. Donc lalgorithme a un temps dexécution très raisonnable. À condition que C ne soit pas beaucoup plus grand que n!

27 3-SAT p Subset-Sum p Knapsack. Notre réduction de 3-SAT vers SS contruisait 2n+2m entiers avec n+m décimales. Lentier cible C de linstance Knapsack ainsi construite est C 10 n+m ! Donc un algorithme de complexité O(Cn) est totalement inutilisable.

28 Problèmes sur grands entiers On désigne (de façon floue) comme problème de décision sur les grands entiers tout problème dont les instances comportent des entiers dont la taille nest pas nécessairement borné par un polynôme de la longueur des données. Exemples: TSP, Network-flow, Knapsack, Partition, Bin-Packing, etc. Non-exemples: CLQ, VC, Primalité, Col, etc.

29 NP-complétude forte... Un problème sur de grands entiers est fortement NP-complet si sa restriction aux instances où les entiers sont bornés par un polynôme p(n) de la taille totale de lentrée est également NP-complet. Exemples: Puisque TSP 2 est NP-complet, TSP est fortement NP-complet. De la même façon TSP,sym est fortement NP-complet.

30 ... vs algorithmes pseudo-polynomiaux Un algorithme pour un problème sur grands entiers est dit pseudo-polynomial si son temps dexécution est polynomial lorsque les entiers de linstance sont bornés par un polynôme p(n). Exemple: lalgorithme de programmation dynamique pour Knapsack est pseudo- polynomial. Partition et Subset-sum ont aussi des algorithmes pseudo-polynomiaux.

31 Théorème: si P NP, alors les problèmes fortement NP-complets nadmettent pas dalgorithme pseudo-polynomial. Pour démontrer quun problème A est fortement NP-complet on peut 1. Partir de la définition et montrer que la restriction de A aux instances avec de petits nombres est NP-complète. 2. Construire une réduction dun problème fortement NP-complet B vers A qui préserve la taille des entiers utilisés.

32 Le problème 3-partition est fortement NP- complet et est très utile pour montrer la NP- complétude forte dautres problèmes. Entrée: k seaux de taille b N et n = 3k objets de taille a i N avec b/4 < a i < b/2. Question: Peut-on répartir les n éléments dans les k seaux? À noter: si cela est possible, alors chaque seau contient exactement 3 objets. (Doù le nom de 3-Partition.)

33 Exemples: 3-PART p,* Bin-Packing En fait, 3-PART est clairement un cas particulier de Bin-Packing. 3-PART p,* SWI Idée de la construction similaire à celle montrant que PART p SWI. Nos n objets de taille a i deviennent des tâches A i avec r(A i ) = 0, d(A i ) = kb + k -1 et l(A i ) = a i. On introduit également des tâches F 1,..., F k-1 avec r(F i ) = ib + i -1, l(F i ) = 1, d(F i ) = ib + i.

34 La leçon à retenir Dans certains cas, on peut contourner la NP- complétude de problèmes impliquant des entiers si ces entiers sont relativement petits. (En général grâce à la programmation dynamique) Ce nest pas toujours possible. Pour identifier les problèmes qui nadmettent pas dalgorithme pseudo-polynomial, on peut utiliser un raffinement de nos notions de complétude et de réduction.

35 Complexité paramétrée Un problème de décision paramétré a des instances de la forme I,k. On dit que ce problème est FPT sil existe un algorithme de complexité de temps O(|I| c f(k)) pour une constante c. Même si la complexité reste exponentielle (ou pire!) lalgorithme est potentiellement utile pour un k suffisamment petit.

36 Exemples Le résultat le plus célèbre en complexité paramétrée: k-Vertex-Cover peut être résolu en temps O(k|V| k ). Note: log ,1. Donc lalgorithme reste utilisable si 10 k/10 est petit. De nombreux exemples en théorie des graphes (le paramètre peut être le nombre chromatique du graphe, sa treewidth, etc.) en base de données (paramètre classique: taille dune requête) etc.

37 Algorithme exact pour VC. Graphe G = (V,E) en entrée, VC optimal en sortie. 1. Entrée: choisir une arête (u,v). 2. Soit G u est le graphe dont on a effacé u et ses arêtes incidentes. Récursivement calculer VC optimal V u pour G u et V v pour G v. 3. Si |V u | |V v | retourner |V u | {u}, sinon retourner |V v | {v}.

38 Temps dexécution? Note: Si k est la taille de la VC optimale on peut borner la profondeur de récurrence par 2k. Temps total dexécution O(|V| 4 k ).

39 Limites de la complexité paramétrée Il existe de fortes indications que le problème suivant nest pas FPT. weight-k-SAT Entrée: Formule. Sortie: Existe-t-il une assignation satisfaisante qui contient k variables vraies? On pense que ce problème nadmet aucun algorithme dont le temps de calcul est inférieur à n O(k).

40 Réductions paramétrées: on peut utiliser ce résultat pour montrer que dautres problèmes ne sont probablement pas FPT. Mais il faut modifier notre définition de réduction. Une réduction paramétrée du langage paramétré L vers le langage paramétré L est un algorithme qui étant donné une entrée (x,k) calcule (x,k) tel que 1. (x,k) L (x,k) L; 2. k g(k) pour un certain g; 3. La réduction se calcule en temps O(f(k)|x| c ).

41 On peut montrer quil existe des réductions paramétrées de weight-k-SAT vers k- CLIQUE, k-Ensemble-indépendant, k- Domination-par-sommets etc. Cela permet dinférer que ces problèmes ne peuvent probablement être attaqués grâce aux méthodes de complexité paramétrée.

42 Optimisation et approximation Définition: Un problème doptimisation P associe à chaque instance x un ensemble de solutions S(x) et à chaque s S(x) une valeur v(x,s) N +. Chaque problème doptimisation A est associé à deux problèmes algorithmiques: 1. MAX-P: Étant donné x, trouver s S(x) tel que v(x,s) soit maximal. 2. MIN-P: Étant donné x, trouver s S(x) tel que v(x,s) soit minimal.

43 La classe NPO Définition: Un problème doptimisation P appartient à NPO sil existe un polynôme p tel que 1. pour tout x et tout s S(x) on a |s| p(|x|); 2. il existe un algorithme de complexité de temps p(n) qui étant donné (x,s) détermine si s S(x) et calcule v(x,s). Note: on dénote MAX-NPO et MIN-NPO les deux restrictions naturelles de NPO.

44 Exemples MAX-CLIQUE, MAX-Independent-Set, MAX-k- SAT, MAX-KNAPSACK MAX-NPO. MIN-TSP, MIN-Set-Cover, MIN-Bin-Packing, MIN-VC, MIN-GC MIN-NPO. NPO contient la très grande majorité des problèmes algorithmiques les plus rencontrés en pratique.

45 Algorithme dapproximation Un algorithme dapproximation pour un problème MAX-P doptimisation est un algorithme qui étant donné une instance x retourne une solution s S(x). Soit v opt (x) = max s S(x) v(x,s). La qualité dune solution s est le ratio r(x,s) = v opt (x)/v(x,s).

46 Algorithme dapproximation Un algorithme dapproximation pour un problème MIN-P doptimisation est un algorithme qui étant donné une instance x retourne une solution s S(x). Soit v opt (x) = min s S(x) v(x,s). La qualité dune solution s est le ratio r(x,s) = v(s,x)/v opt (x).

47 Qualité dun algorithme dapproximation Le ratio dapproximation (ou qualité) dun algorithme dapproximation A est r A (n) := max { r(x,s): |x| n A(x) = s } On a toujours r A (n) 1. Un algorithme dapproximation est dautant plus performant que r A est petit.

48 Exemple de Max-3-SAT Rappel: Max-3-SAT est la recherche dune assignation aux x i qui maximise le nombre de clauses satisfaites. Chaque clause contient exactement 3 litéraux distincts. Montrons quil existe un algorithme dapproximation pour MAX-3-SAT dont le temps dexécution est polynomial et dont le ratio dapproximation est 8/7 dans le pire cas. Idée de départ: Considérons une assignation aléatoire aux x i et appelons C j la variable aléatoire qui est 1 si la clause c j est satisfaite par cette assignation et 0 sinon. Alors Pr[C j = 1] = 7/8 donc E(C j ) = 7/8. Donc si C = C j on a E(# clauses satisfaites)= E(C) = E(C j ) = 7m/8. Une assignation moyenne satisfait 7/8 des clauses. Il suffit den trouver une qui atteint la moyenne.

49 Algorithme: soit x 1,..., x n les variables booléennes de. 1. Pour i = 1,..., n on considère les deux valeurs possibles 0,1 pour x i. 2. Pour les clauses c j, calculer E(C j | x i = b). Supposons que c j contient k litéraux. a. Si c j ne contient k ni x i, ni i, alors E(C j | x i = 1 ) = E(C j ) = (2 k -1)/2 k. b. Si c j contient x i alors E(C j | x i = 1) = 1. c. Si c j contient i alors E(C j | x i = 1) = (2 k-1 -1)/2 k Comparer E(C | x i = 0) et E(C | x i = 1). Choisir x i = b tel que E(C | x i = b) soit maximal. 4. Répéter 1 à 3 sur la formule où les occurrences de x i sont remplacées par 0 ou 1.

50 Remarques: Lalgorithme sexécute en temps O(mn). E(C) = ½ E(C | x 1 = 1) + ½ E(C | x 1 = 0). Or E(C) = 7/8 m donc soit E(C | x 1 = 1) 7/8 m soit E(C | x 1 = 0) 7/8 m. À la seconde étape notre algorithme calcule E(C | x 1 = b 1 ; x 2 = 1) et E(C | x 1 = b 1 ; x 2 = 0). Par le même raisonnement, une de ces deux quantités est au moins 7/8 m. Lalgorithme construit donc une assignation qui satisfait au moins 7/8 des clauses. Mais v opt ( ) m donc le ratio dapproximation est 8/7 dans le pire cas.

51 Deux objectifs à atteindre dans la conception dalgorithmes dapproximation: 1. Petit ratio dapproximation. 2. Temps de calcul polynomial. Soit r : N [1,+ ) une fonction croissante. On définit les classes suivantes: APX(r(n)): classe des problèmes de NPO pour lesquels il existe un algorithme dapproximation avec temps de calcul polynomial et ratio dapproximation r A (n) r(n). APX: union des classes APX(c) pour c 1. APX * : intersection des classes APX(c) pour c > 1.

52 APX * contient les problèmes qui peuvent être approximés en temps polynomial pour nimporte quel ratio dapproximation constant. On peut être encore plus exigeant en demandant à un algorithme dapproximation datteindre un ratio dapproximation spécifié en entrée par lusager. Intuitivement clair: plus on spécifie un ratio petit et plus lalgorithme va avoir besoin de temps!

53 Une stratégie dapproximation en temps polynomial (PTAS) pour le problème doptimisation P est un algorithme qui reçoit en entrée (x, ) où x est une instance de P et > 0 est un rationnel qui et produit en temps polynomial dans la taille de x (mais dépendant possiblement de ) une solution avec ratio dapproximation 1+ dans le pire cas. La classe de complexité PTAS est la classe des problèmes de NPO pour lesquels il existe un PTAS.

54 Une stratégie dapproximation en temps entièrement polynomial (FPTAS) pour le problème doptimisation P est un algorithme qui reçoit en entrée (x, ) où x est une instance de P et > 0 est un rationnel qui et produit en temps polynomial dans la taille de x et de 1/ une solution avec ratio dapproximation 1+ dans le pire cas. La classe de complexité FPTAS est la classe des problèmes de NPO pour lesquels il existe un FPTAS.

55 On a donc P FPTAS PTAS APX * APX NPO Un problème qui possède un FPTAS est à toute fin pratique traitable. Un PTAS peut être acceptable et même un algorithme dapproximation APX avec un ratio dapproximation relativement faible peut nous suffire surtout si on a de fortes raisons de croire quil ny a pas de meilleure alternative.

56 Algorithmes dapproximation classiques ProblèmeAlgorithme dapproximation MAX-CLIQUEO(n/log 2 n) MIN-VC2 MAX-3-SAT8/7 MIN-BIN-PACKING3/2 MIN-TSP 3/2 MIN-VC planaire PTAS MAX-KNAPSACKFPTAS

57 Algorithmes dapproximation pour MIN-BP. (Objets de taille p 1,..., p n et seaux de taille c. Quel est le nombre minimal de seaux nécessaires pour placer tous les objets?) Idée: pour des algorithmes corrects (sans plus) on suit les idées les plus naturelles. Dans ce cas, des algorithmes voraces.

58 Idée 1: Placer chaque objet dans un nouveau seau à moins quil ne tienne dans un seau qui nest pas encore rempli à pleine capacité. Quel ratio peut-on garantir? Chaque seau est forcément rempli au moins jusquà la moitié. Donc r A 2. En fait, cet algorithme retourne un s tel que v(x,s) 1.7 v opt (x). On peut construire des instances avec v opt arbitrairement grand mais sur lesquelles lalgorithme retourne une solution s avec v(s,x) 1.7 (v opt (x) -1).

59 Supposons que la capacité de chaque seau est 1 et quon a 18m objets. 1. 6m objets de taille 1/ m objets de taille 1/ m objets de taille 1/2 + On peut utiliser 6m seaux avec un objet de chaque type. Notre algorithme va en fait créer m seaux avec 6 petits objets, 3m seaux avec 2 objets moyens et 6m seaux avec des grands objets. 10m seaux en tout pour une qualité de solution 5/3.

60 Idée 2: Placer chaque objet dans un nouveau seau à moins quil tienne dans un seau qui nest pas encore rempli à pleine capacité. Dans ce cas, placer lobjet dans le seau dont la capacité non-utilisée est la plus proche de la taille de lobjet. Quel ratio peut-on garantir? Essentiellement le même en pire cas!

61 Idée 3: Trier les objets. Placer chaque objet dans un nouveau seau à moins quil ne tienne dans un seau qui nest pas encore rempli à pleine capacité. Quel ratio peut-on garantir? v(x,s A ) 11/9 v opt (x) + 4 Lorsque v opt = 1, cela ne garantit que r A = 47/9! Mais asymptotiquement, le ratio tend vers 11/9. De même, le meilleur algorithme connu a un ratio dapproximation borné par 1 + O(log 2 v opt / v opt ) qui tend vers 1. (FPTAS asymptotique)

62 Algorithme dapproximation pour MIN-TSP. 1. Trouver en temps polynomial un arbre de recouvrement de poids minimal. 2. Traverser larbre de recouvrement pour couvrir toutes les villes. Ce circuit passe 2 fois par chaque ville mais on peut utiliser des raccourcis pour éviter ce problème.

63 Bonne idée: de toute façon: d 34 d 23 + d 24

64 Quel ratio dapproximation peut-on garantir? Le coût du tour optimal est plus petit que larbre minimal de recouvrement. À cause de linégalité du triangle, lutilisation de raccourcis ne peut augmenter le coût du tour qui suit larbre de recouvrement minimal. Donc r A 2. On peut raffiner le même type dalgorithme pour obtenir r A 3/2. Lorsque les villes sont des points dans R d avec les distances usuelles (TSP d-euclid ) il existe même un PTAS.

65 Min-KS pour les nuls. (algorithme dapproximation polynomial avec r = 2) 1. Ordonner les objets selon le ratio (v i / p i ). 2. Tant que la liste des objets nest pas épuisé, rajouter lobjet i dans le sac à dos sil tient dans la place restante. 3. Comparer la solution obtenue à la solution qui contient lobjet de plus grande valeur. Retourner la meilleure. Étude de cas: Problème du sac à dos

66 Min-KS pour les un peu moins nuls. (PTAS, ratio 1 + 1/k) 1. Former tous les ensembles possibles de k objets. 2. Pour chaque ensemble, ajouter des objets grâce à lalgorithme précédent. 3. Retourner la meilleure valeur obtenue. Le temps de calcul est O(n k+1 ).

67 Il existe un FPTAS pour le problème du sac à dos (analyse délicate nécessaire). Par programmation dynamique, on a un algorithme pseuso-polynomial pour Max-KS. Il ne fonctionne en temps polynomial que pour une capacité de sac borné par un polynôme. Si les valeurs sont trop grandes, on peut tronquer ces valeurs après t bits significatifs et utiliser lalgorithme polynomial. Idée semble bonne mais dans les faits ne fonctionne pas comme on le voudrait. On va plutôt utiliser un algorithme de programmation dynamique dont léxécution est polynomiale dans la taille des valeurs des objets.

68 Nous avons n objets de poids p i et de valeur v i ainsi quune capacité C. Soit V = max {v i }. Note: le défi est de maximiser la valeur totale tout en minimisant le poids total. Notre premier algorithme pseudo-polynomial considérait pour chaque k n et chaque c C la valeur maximale M k,c que lon pouvait atteindre en prenant parmi les k premiers objets avec un poids total inférieur à c. Approche duale: pour chaque k n et chaque v nV, soit W k,v le poids minimal lorsque lon choisit parmi les k premiers objets un ensemble dont la valeur totale est exactement v.

69 123...nV n La première rangée est car il ny a pas moyen dobtenir une valeur non- nulle sans choisir dobjets. Pour remplir le tableau: quel est le poids minimal pour un choix des k+1 premiers objets avec valeur totale v? Deux possibilités: lobjet k+1 fait ou ne fait pas partie de ce choix optimal. W k+1,v = min {W k,v, W k,v-v k+1 + p k+1 } Valeur atteinte objets disponibles

70 Cet algorithme sexécute en temps O(n 2 V). Algorithme pseudo-polynomial, mais le temps ne dépend pas du poids des objets ou de C! Supposons que V soit trop grand. Pour une instance x = {v 1,..., v n, p 1,..., p n, C} de KS définissons linstance approximative de X x = {v 1,..., v n, p 1,..., p n, C} où v i = 2 b v i /2 b. (les b derniers bits sont remplacés par 0.) Note: chaque solution valide pour x est une solution valide pour x car les poids sont demeurés inchangés. De plus la solution optimale pour x peut être calculé en temps O(n 2 V/2 b ) acr on peut ignorer le bloc de b 0. Chaque bit délaissé divise par 2 le temps de calcul.

71 On obtient donc un algorithme dapproximation pour KS qui, étant donné x forme x et retourne en temps O(n 2 V/2 b ) la solution optimale S pour x. Comment se compare cette solution à la solution optimale S pour x? Quelle relation existe entre v opt (x) = v opt (x,S) et v(x,S)?

72 v opt (x) = i S v i i S v i (car S optimal) i S v i i S v i i S v i (car v i v i ) i S v i i S v i i S v i i S v i (car S est optimal pour x) i S v i i S v i i S (v i – 2 b ) (par définition des v i ) i S (v i – 2 b ) i S v i – n2 b = v opt (x) – n2 b En particulier v(x,S) = i S v i v opt (x) – n2 b. Donc le ratio dapproximation est au pire v opt (x)/v(x,S) v opt (x)/(v opt (x) – n2 b ) 1 + n2 b /V car on peut supposer v opt (x) – n2 b V.

73 Qua-t-on en fin de compte? 1. Algorithme dapproximation qui sexécute en temps O(n 2 V/2 b ). 2. Ratio dapproximation 1 + n2 b /V. Si un usager demande une approximation de qualité (1+, on choisit b = log V/n. En tronquant les b derniers bits, notre algorithme sexécute en temps O(n 2 V/2 b ) = O(n 3 / ) et la qualité dapproximation est bien 1+. Ainsi KS FPTAS.

74 Limites de lapproximabilité Comment peut-on démontrer quun problème doptimisation P ne peut-être approximé en temps polynomial au delà dune certaine limite de qualité. Si on peut démontrer quun algorithme dapproximation pour P avec r A < r(n) implique la possibilité de résoudre en temps polynomial un NP-complet, on aura de bonnes raisons de croire quun tel algorithme nexiste pas.

75 Technique du fossé Définition: Soit Q Max-NPO et K un problème NP-complet. Une réduction avec fossé (a,b) de K vers Q est une transformation polynomiale f des instances de K vers les instances de Q telle que: x K v opt (f(x)) b x K v opt (f(x)) a.

76 Technique du fossé Définition: Soit Q Min-NPO et K un problème NP-complet. Une réduction avec fossé (a,b) de K vers Q est une transformation polynomiale f des instances de K vers les instances de Q telle que: x K v opt (f(x)) a x K v opt (f(x)) b.

77 Technique du fossé Théorème: Supposons que Q Max-NPO (Min-NPO) et quil existe une réduction avec fossé (a,b) dun problème NP-complet K vers Q. Alors si P NP, il nexiste pas dalgorithme dapproximation pour P avec ratio dapproximation strictement plus petit que b/a.

78 Démonstration: Supposons quun tel algorithme existe. Montrons que cela implique K P. Soit x une instance de K. On peut calculer en temps polynomial f(x) et appliquer notre algorithme dapproximation dont le ratio dapproximation est strictement inférieur à b/a. On peut en temps polynomial obtenir une solution s pour f(x) telle que v(f(x),s) > a/b v opt (f(x)). 1. Supposons que v(f(x),s) a. Alors v opt (f(x)) < b/a a = b. Mais on sait que si v opt (f(x)) < b alors en fait v opt (f(x)) a et x K. 2. Supposons maintenant que v(f(x),s) > a. Alors on a forcément v opt (f(x)) > a. Donc x K. Donc x K si et seulement si v(f(w),s) a. Comme on peut vérifier cette seconde condition en temps polynomial, on a K P. Cest une contradiction si on suppose P NP.

79 Mais comment peut-on trouver des problèmes doptimisation avec cette propriété de fossé? Dans certains cas en faisant simplement une analyse précise des réductions démontrant la NP-complétude dun problème.

80 Un fossé pour Min-TSP Revenons à notre réduction de HC vers TSP. On transforme un graphe G = (V,E) en une matrice de distance entre les v i en prenant d ij = 1 si (v i,v j ) E et d ij = 2 si (v i,v j ) E. Si un circuit Hamiltonien existe dans G, il existe un tour de coût n = |V|. Sinon, tout tour a un coût dau moins n+1. On peut donc voir cette réduction comme une réduction avec fossé (n,n+1).

81 Un fossé pour Min-TSP Soyons plus radicaux: d ij = 1 si (v i,v j ) E et d ij = n2 n si (v i,v j ) E. Si un circuit Hamiltonien existe dans G, il existe un tour de coût n. Sinon, tout tour a un coût dau moins n2 n. Puisque HC est NP-complet, il est NP-ardu de différencier les instances où le coût optimal est inférieur à n de ceux ou le coût optimal est supérieur à n2 n. Fossé (n,n2 n ). si P NP, Min-TSP ne peut être approximé avec un ratio 2 n. Donc Min-TSP APX.

82 Critique possible de ce résultat: oui mais si on a seulement des petites distances? On peut repenser les notions utiles pour les algorithmes pseudo-polynomiaux et la NP- complétude forte. Un problème doptimisation est dit problème avec petites valeur de solution si v(x,s) est toujours borné par un polynôme p(|x|).

83 Exemples de problèmes doptimisation avec petites valeurs de solution. Max-CLIQUE, Min-VC, Max-3-SAT, Min-GC, Min-BP, Max-3DM, etc. Min-TSP, Min-KS, etc. lorsque lon borne par un polynôme les entiers utilisés dans une instance.

84 Théorème: Si P NP, alors tout problème Q avec petites valeurs de solution qui est NP- ardu na pas de FPTAS. Théorème très pratique pour abandonner rapidement la recherche dun FPTAS.

85 Démonstration: Supposons que Q Min-NPO (largument symmétrique fonctionne pour Max-NPO). Supposons quun FPTAS existe et que les valeurs de Q sont bornées par p(|x|). Prenons (n) = 1/p(n). Puisque Q est NP-ardu, le FPTAS ne peut pas toujours trouver la valeur optimale mais il retourne en temps polynomial une solution s avec v(x,s)/v opt (x) (1+ (|x|)). Mais si x est une instance où la valeur calculée est sous-optimale alors v(x,s) v opt (x) + 1. On a donc v(x,s)/v opt (x) p(n)/(p(n)-1) = 1 + 1/(p(n)-1) puisque les valeurs sont toutes entre 1 et p(n). Il y a une contradiction puisque 1 + 1/(p(n) -1) > 1 + (n)!.

86 Théorème: Si P NP, et Q est un problème de minimisation pour lequel il est déjà ardu de décider si v opt (x) k, alors aucun algorithme dapproximation en temps polynomial pour Q na un ratio inférieur à 1 + 1/k.

87 Théorème: Si P NP, et Q est un problème de maximisation pour lequel il est déjà ardu de décider si v opt (x) k+1, alors aucun algorithme dapproximation en temps polynomial pour Q na un ratio inférieur à 1 + 1/k.

88 Démonstration: Supposons au contraire quun algorithme A existe avec un ratio inférieur à 1+1/k. On veut utiliser A pour tester en temps polynomial si v opt (x) k. Supposons que A(x) = s et que v(x,s) k. Alors on sait que v opt (x) k. Si v(x,s) k + 1, alors puisque v(x,s)/v opt (x,s) < 1 + 1/k = (k+1)/k on a forcément v opt (x) > k. Donc v opt k ssi v(x,A(x)) k, ce qui donne une contradiction.

89 Quelques applications de ce théorème (si P NP) Min-GC nest pas approximable en temps polynomial avec un ratio inférieur à 4/3 car 3- COL est NP-ardu. Min-Bin-Packing nest pas approximable en temps polynomial avec un ratio inférieur à 3/2 car Partition est NP-ardu.

90 Comment raffiner létude de Min-GC pour montrer quon ne peut pas non plus atteindre le ratio 4/3 asymptotiquement? On sait que 3-COL est NP-ardu. À partir de là on veut montrer que pour tout k, il est aussi NP-ardu de distinguer en temps polynomial un graphe dont le nombre chromatique est 3k dun graphe dont le nombre chromatique est 4k.

91 Soit G = (V,E) un graphe avec nombre chromatique (G). On construit en temps polynomial un graphe G k de la façon suivante. 1. On crée k copies de G. 2. On rajoute des arêtes entre nimporte quels deux points de copies différentes de G. Il est facile de constater que (G k ) = k (G). Donc si G est 3-coloriable, G k est 3-coloriable mais sinon, G k nécessite au moins 4k couleurs! Si P NP, alors tout algorithme dapproximation en temps polynomial a un ratio asymptotique inférieur à 4/3.

92 On peut parfois montrer que lexistence dun algorithme avec un ratio dapproximation en dessous dune certaine limite implique en fait lexistence dun PTAS. Cela arrive lorsque lon peut obtenir des auto-réductions qui agrandissent le fossé. (Un exemple suit!)

93 Théorème: Si MAX-IS est approximable avec un ratio dapproximation r (si MAX-IS APX), alors il existe un PTAS pour MAX-IS. Démonstration: Considérons pour un graphe G = (V,E), le graphe G 2 = (V V, F) avec [(u,u),(v,v)] F si u = v et [u,v] E. ou [u,v] E.

94 Montrons que G a un IS de k points si et seulement si G 2 a un IS de k 2 points. si I est un IS de k points dans G, alors I 2 = {(u,u) : u, u I} est un IS de k 2 points dans G 2. Si I 2 est un IS de k 2 points dans G 2, alors U = {u: (u,u) I 2 pour un u V} est un IS de G. Si U a au moins k points on a gagné. Sinon, pour chaque u U, lensemble W u = {v: (u,v) I 2 } est aussi un IS dans G. Puisque I 2 = W u 1... W u t (avec t < k) un de ces ensembles a une taille au moins k.

95 Si MAX-IS est r-approximable par lalgorithme A en temps n c. Supposons que G est un graphe avec ensemble indépendant maximal de taille k. Appliquons cet algorithme au graphe G 2. Cela se fait en temps n 2c et fournit un IS de taille au moins k 2 /r. Grâce à notre raisonnement précédent, on peut en obtenir un IS pour G de taille au moins k/ r. Donc on obtient un algorithme dapproximation avec ratio r < r. En itérant cette construction, on peut obtenir un degré dapproximation 4 p r, 8 p r, etc... Donc IS 2 PTAS.

96 Il existe un algorithme dapproximation simple qui obtient un ratio dapproximation (k+1) où k est le degré maximal dun sommet du graphe. Aucun algorithme dapproximation plus performant nest connu pour le problème IS restreint aux instances où le degré maximal est k.

97 Comparer les degrés dapproximation On cherche des notions qui nous permettront dobtenir des résultats dinapproximabilité pour B à partir de résultats dinapproximabilité pour A. Pour les problèmes de décision, les réductions polynomiales nous donnaient cette possibilité.

98 Définition: Une réduction PTAS dun problème doptimisation A vers un problème doptimisation B (dénoté A PTAS B) est un triplet de fonctions (f,g, ) avec les propriétés: 1. f transforme les instances x de A en instances f(x) de B et est calculable en temps polynomial. 2. Pour chaque triplet (x,s, ) où x est une instance de A, s S B (f(x)) et Q +, g transforme (x,s, ) en une solution g(x,s, ) dans S A (x) et est calculable en temps polynomial. 3. : Q + Q + est une fonction surjective calculable en temps polynomial. 4. Si r B (f(x),y)) 1 + ( ), alors r A (x,g(x,y, )) 1 +.

99 Lemme: Supposons que A PTAS B. Alors 1. Si B PTAS alors A PTAS. 2. Si B APX alors A APX.

100 (Heureusement) certaines réductions entre problèmes de décision peuvent facilement être transformées en réductions PTAS pour des problèmes doptimisation correspondant. MAX-3-SAT PTAS MAX-IS. (ens. indép.) MAX-CLIQUE PTAS MAX-IS.

101 Complétude Un problème doptimisation P NPO est C - complet pour C {APX, Min-NPO, Max-NPO} si P C et pour tout Q C, on a Q PTAS P. On croit que les inclusions PTAS APX NPO sont strictes. Donc lAPX-complétude ou la NPO-complétude sont de fortes indications dinapproximabilité dun problème.

102 Théorème: MAX-3-SAT est APX-complet. Mais la démonstration requiert le théorème PCP.

103 Théorème: MAX-W-SAT est MAX-NPO-complet. Instance: formule avec variables booléennes x 1,..., x n et poids w i N + pour chaque x i. Solutions: Toute assignation aux variables. Valeurs: si s S( ) et s ne satisfait pas, alors v(,s) = 1. Si s satisfait alors v(,s) = x i = 1 w i.

104 Démonstration: On veut réutiliser intelligemment la démonstration de Cook-Levin. Supposons que A MAX-NPO. Alors, il existe une m.t. non-déterministe M qui étant donné x choisit une solution potentielle s avec |s| p(|x|). Ensuite, M vérifie si s S(x) et si oui calcule v(x,s), écrit v(x,s) au début du ruban (en commençant par les bits les moins significatifs) écrit ensuite s, efface le reste du ruban et accepte. Sinon, M sarrête et rejette.

105 Appliquons la réduction du théorème de Cook- Levin. Si M sexécute en temps p(n) on peut construire pour chaque entrée x une formule qui est satisfiable si et seulement si M accepte x. Dans ce cas, la variable booléenne c p(|x|),j,1 est vraie lorsque la case j du ruban lors de la fin du calcul acceptant contient 1. Supposons que les cases 1 à r sont utilisées pour encoder v(x,s). On attribue alors à c p(|x|),j,1 le poids 2 j. Toutes les autres variables ont un poids 0.

106 On a donc une fonction f calculable en temps polynomial qui transforme une instance x de A en une formule avec des poids. Il faut définir s = g(x,y, ) où x est une instance de A, y S B (f(x)) et s S A (x). Si y satisfait alors les variables encodent un calcul acceptant de M. Donc, on peut examiner la dernière ligne du tableau et retrouver le s S A (x) tel que le calcul de M sur x avec choix non-déterministe s correspond à y. Finalement, on choisit ( ) =.

107 Dernier détail: montrer que si r B (f(x),y) 1 + ( ) alors r A (x,g(x,y, )) 1 +. À cause de notre choix de poids, le poids de y est égal à v(x,s).

108 Étude de cas: VC Le problème de couverture par sommets est NP-complet. Que faire alors? Considérons 3 options raisonnables.

109 Algorithme dapproximation. 1. Initialiser V =. 2. Tant que V ne couvre pas toutes les arêtes, 1. choisir arête (u,v) non couverte. 2. V = V {u,v}. Temps dexécution O(|E|).

110 Qualité de lapproximation? Soit V* la plus petite VC du graphe et E les arêtes qui sont doublement couvertes par la VC V fournie par lalgo. On a |V*| |E| car aucune deux arêtes de E nont de sommet en commun. Par définition |V| 2 |E|. Donc |V| 2 |V*| et le ratio dapproximation est 2.

111 Peut-on obtenir un meilleur ratio? Il existe un algorithme avec ratio dapproximation 2- (log log |V| / log |V|). NP-ardu à approximer avec un ratio plus petit que 7/6.

112 Algorithme heuristique 1. Initialiser V =. 2. Tant que V nest pas une VC 1. Choisir v V couvrant un maximum darêtes non-couvertes. 2. V = V {v}. Temps dexécution O(|E| 2 ).

113 Quelle est le ratio dapproximation? Considérons un graphe G = (V,E) dont les sommets sont répartis en k niveaux L 1,..., L k. 1. Niveau L i contient k/i sommets. 2. Chaque point du niveau 1 est relié à un point de chaque autre niveau et ces arêtes sont réparties uniformément. (donc le sommet j de L 1 est connecté au sommet j/i +1 du ième niveau.) Pour j 2, tous les sommets de L j (sauf peut-être un) ont un degré j. Les sommets de L 1 ont un degré k-1.

114 La VC optimale contient les k sommets du niveau L 1. Notre heuristique choisit dabord le sommet du niveau L k car son degré est k. Ensuite, les arêtes incidentes à ce point sont effacées donc les sommets de L 1 ont degré k- 2. Donc tous les sommets de L k-1 sont ensuite choisis. La taille de la VC construite par notre algorithme k/i k log k. Le ratio dapproximation est donc (log k)!

115 Algorithme exact pour VC. Graphe G = (V,E) en entrée, VC optimal en sortie. 1. Entrée: choisir une arête (u,v). 2. Soit G u est le graphe dont on a effacé u et ses arêtes incidentes. Récursivement calculer VC optimal V u pour G u et V v pour G v. 3. Si |V u | |V v | retourner |V u | {u}, sinon retourner |V v | {v}.

116 Temps dexécution? Note: Si k est la taille de la VC optimale on peut borner la profondeur de récurrence par 2k. Temps total dexécution O(|V| 4 k ). En raffinant ce type didée, on peut même obtenir des temps O(1.27 k + k|V|).

117 Heuristiques universels Soit A un problème de MIN-NPO dont les solutions s sont décrites par des chaînes de n bits s = (s 1,..., s m ). On veut décrire deux algorithmes qui peuvent sappliquer à nimporte quel problème de ce type.

118 Algorithme Metropolis Lalgorithme est spécifié pour une constante T judicieusement choisie. 1. Choisir une solution s au hasard et calculer v(x,s). 2. Créer une nouvelle solution s en choisissant aléatoirement un bit s i de s et en changeant sa valeur. 3. Si v(x,s) v(x,s), alors garder s et abandonner s. 4. Si v(x,s) > v(x,s) alors garder s avec probabilité (v(x,s) – v(x,s))/T et garder s sinon. 6. Répéter 2-4 jusquà lépuisement.

119 Algorithme de recuit simulé Lalgorithme est spécifié par une température de départ T et un facteur de refroidissement. Le principe est exactement le même que celui de lalgorithme Metropolis mais à létape i, on remplace T par i T.

120 Algorithmes génétiques Large classe dalgorithmes qui maintiennent une liste de solutions avec leur valeur et génèrent de nouvelles solutions potentielles en croisant les solutions.

121 Pourquoi utiliser autre chose? Aucune garantie sur la qualité des solutions fournies. Souvent utilisé aveuglément. Dautres alternatives sont souvent plus complexes à implémenter mais ont de nombreuses qualités.

122 Un algorithme pour 3-SAT Pour une 3-SAT formule avec n variables, il existe un algorithme probabiliste dont le temps dexécution est p(n) (4/3) n pour un certain polynôme p.

123 Répéter 30 (4/3) n fois. 1. Choisir une assignation pour les x i au hasard. 2. Si satisfait, retourner 1. Sinon, choisir aléatoirement une clause non-satisfaite et changer la valeur dun des trois litéraux. 3. Répéter létape (2) 3n fois. Si aucun na été trouvé satisfiant retourner 0.

124 Il est clair que cet algorithme a le temps dexécution promis. Aussi, si SAT alors lalgorithme retourne 0. Quelle est la probabilité que lalgorithme retourne 0 si SAT?


Télécharger ppt "IFT-66975 Contourner la NP-complétude. Que faire face à la NP-complétude? Pour une application précise, je veux trouver la plus grande clique possible."

Présentations similaires


Annonces Google