1 / 43

IFT-66975

IFT-66975. Chapitre 2 Réductions: exemples et méthodes. Motivation. Comment comparer la complexité de deux problème de calcul? Comment formaliser la «ressemblance» de deux problèmes de calcul?

holly-pope
Télécharger la présentation

IFT-66975

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IFT-66975 Chapitre 2 Réductions: exemples et méthodes

  2. Motivation • Comment comparer la complexité de deux problème de calcul? • Comment formaliser la «ressemblance» de deux problèmes de calcul? • On ne sait pas montrer qu’un problème n’est pas dans P (sauf s’il est très dur). Quelle est la deuxième meilleure option?

  3. k-coloriabilité Entrée: Un graphe G = (V,E) Question: Peut-on assigner une de k couleurs à chaque vi V tel que pour tout (vi,vj)  E on a c(vi)  c(vj)? • Intuitivement clair que k-coloriabilité n’est pas plus dur que (k+1)-coloriabilité.

  4. Supposons que A est un algorithme pour la (k+1)-coloriabilité. • Algorithme pour la k-coloriabilité: « Entrée: graphe G = (V,E) • Former le graphe G’ = (V  {x}, E  {(x,v) : v  V}). • Retourner A(G’).» • Étape 1 très simple donc algorithme efficace si Étape 2 efficace. • Reste à montrer que cet algorithme est correct: il accepte G ssi G est (k)-coloriable.  Montrer que G est k-coloriable ssi G’ est (k+1) coloriable.

  5. Définition:Le problème de calcul A est polynomialement Turing-réductible au problème B (dénoté A T B) s’il existe un algorithme pour A qui fait appel à un algorithme pour B et tel que • Le temps de calcul de l’algorithme pour A, sans compter les appels à B, est borné par un polynôme p(n). • Le nombre d’appels à l’algorithme pour B est borné par un polynôme q(n). • La longueur des entrées soumises à B est borné par un polynôme r(n). Note terminologique: Les algorithmes faisant appel à un algorithme pour B sont souvent appelés algorithmes avec oracle B.

  6. Permet de formaliser l’idée que A n’est pas significativement plus dur que B. • S’il existe un algorithme pour B avec temps de calcul tB(n), alors il existe un algorithme pour A avec temps tA(n)  p(n) + q(n)  tB(r(n)) • Si tB est borné par un polynôme, alors tA est borné par un polynôme. • Si A n’admet aucun algorithme en temps polynomial, alors B n’admet aucun algorithme en temps polynomial.

  7. Théorème: Soit C une des classes P, ZPP, BPP et A et B deux problèmes de calcul tels que A T B. Alors B C A C.

  8. Si A T B et B T A on dit alors que A et B sont polynomialement Turing-équivalents. (dénoté A T B) • Formalise l’idée que A et B sont essentiellement aussi difficiles.

  9. Exemple • On a considéré plusieurs variantes du problème du commis voyageur • TSPOpt: Trouver le circuit optimal • TSPEval: Calculer le coût du circuit optimal. • TSPDec: Décider s’il existe un circuit de coût qu’un certain C donné.

  10. Théorème: TSPDecT TSPEvalT TSPOpt. • Phénomène très général (cf Wegener)  permet de nous concentrer sur la complexité des problèmes de décision.

  11. Problème du circuit Hamiltonien dirigé (DHC) et non-dirigé (HC) Entrée: Un graphe (dirigé) G = (V,E). Question: Le graphe contient-il un circuit Hamiltonien, c.à.d. un cycle contenant tous les nœuds de V?

  12. Théorème: DHC T HC T TSP2,,sym  TSP. • Note: Les réductions utilisées ont la propriété que qu’une seule question est posée à l’oracle et que la réponse de l’oracle est le résultat recherché.

  13. Transformations polynomiales • Le langage A est transformable en temps polynomial au langage B (dénoté A p B) s’il existe une fonction f calculable en temps polynomial qui transforme les instances de A en instance de B et telle que  x [x  A  f(x)  B]

  14. Si A p B alors A T B. • L’inverse n’est pas nécessairement vrai. En particulier on a toujours A T mais pas nécessairement A p . • Si A p B et B p C alors A p C. Notion plus fine et mieux adapté à la suite des choses parce qu’elle permet entre autres: • Théorème: Soit C une des classes P, ZPP, BPP, RP, co-RP, NP, co-NP. Si on a B C et A p B alors A C.

  15. Satisfiabilité (SAT) et k-SAT Entrée: Une formule logique en forme normale conjonctive (CNF) avec variables Booléennes x1, …, xn et leur complément 1, ..., n (appelés litéraux). Autrement dit un ensemble de clauses de la forme x1 ̅x 2 x5  x7. Question: Peut-on assigner des valeurs Booléennes aux variables telle que la formule soit satisfaite, c’est-à-dire telle que chaque clause contienne au moins un litéral vrai? Le cas particulier ou les clauses ont au plus k litéraux est appelé k-SAT.

  16. Théorème: Pour tout k  3 on a SAT p k-SAT. • Il est clair que k-SAT p SAT puisque toute instance de k-SAT est aussi une instance de SAT. • Pour montrer que SAT p k-SAT, il faut transformer les longues clauses en clauses de longueur  k.

  17. Transformations polynomiales • Le langage A est transformable en temps polynomial au langage B (dénoté A p B) s’il existe une fonction f calculable en temps polynomial qui transforme les instances de A en instance de B et telle que  x [x  A  f(x)  B]

  18. Instances de A Instances de B B A f f   On doit s’assurer que f est calculable en temps polynomial. Pour démontrer que la transformation est correcte il faut montrer x  A  f(x)  B. Souvent on montre x  A  f(x)  B puis f(x)  B  x  A. Notez que f n’est pas nécessairement injective ni surjective.

  19. Théorème: SAT p 3-SAT. • Pour montrer 3-SAT p SAT, la transformation f est l’identité! • Pour montrer que SAT p 3-SAT, on transforme les longues clauses d’une instance  de SAT en une conjonction de clauses de longueur 3. On veut obtenir une formule ’ qui ne contient que des clauses de longueur 3 et telle que ’ est satisfiable si et seulement si  est satisfiable.

  20. Instance de 3-SAT Formule ’ en 3-CNF Variables x1, ... ,xn, y1, ..., ym Clauses de  remplacées par un ensemble de 3-clauses grâce aux variables yj. Instance de SAT Formule  en CNF Variables x1, ... xn x5 x7 y1j 1j 8 y2j 2j 9 x11 Cj = x5 x789 x11 • Chaque clause de ’ a bien 3 littéraux par clause. • Le nombre de nouvelles variables est borné par • (#de clauses de )  (taille max d’une clause de  - 2) • donc la transformation se fait en temps polynomial. • Reste à montrer:  SAT ’  3-SAT.

  21. Instance de 3-SAT Formule ’ en 3-CNF Variables x1, ... ,xn, y1, ..., ym Clauses de  remplacées par un ensemble de 3-clauses grâce aux variables yj. Instance de SAT Formule  en CNF Variables x1, ... xn x5 x7 y1j 1j 8 y2j 2j 9 x11 Cj = x5 x789 x11 Montrons d’abord que  satisfiable ’ satisfiable. Soit x1 = b1, x2 = b2, ... , xn = bn une assignation satisfaisant . Chaque clause Cj contient au moins un littéral lt qui est vrai. Cj a mené à la création de variables y1j, y2j, ..., ysj dans ’. On choisit ykj = 1 pour toutes les variables apparaissant avant lt et ykj = 0 pour celles apparaissant après. Cette assignation de valeurs satisfait en effet ’.

  22. Instance de 3-SAT Formule ’ en 3-CNF Variables x1, ... ,xn, y1, ..., ym Clauses de  remplacées par un ensemble de 3-clauses grâce aux variables yj. Instance de SAT Formule  en CNF Variables x1, ... xn x5 x7 y1j 1j 8 y2j 2j 9 x11 Cj = x5 x789 x11 À l’inverse montrons que ’ satisfiable  satisfiable. Supposons que ’ a une assignation de valeurs satisfiantes xi = bi et yij = bij. (Rappel de logique: (a  b)  (ā  c)  (b  c) ) Donc si toutes les clauses de ’ sont satisfaites, alors peu importe les valeurs des variables yij, l’assignation xi = bi satisfait .

  23. Trois problèmes de graphe Entrée: graphe G = (V,E) et un k  |V|. Clique (CLQ): Existe-t-il C  V avec |C|  k et (u,v)  E pour tous u,v  C? Ensemble indépendant (IS): Existe-t-il C  V avec |C|  k et (u,v)  E pour tous u,v  C? Couverture par sommets (VC): Existe-t-il C  V avec |C|  k et tel que pour tout (u,v)  E, on a u  C ou v  C?

  24. Théorème: CLQ p IS p VC. Idée: montrer que ces trois problèmes ne sont que des reformulations les uns des autres. L’existence d’une grande clique est équivalente à l’existence d’un grand ensemble indépendant dans le complément du graphe. L’existence d’un grand ensemble indépendant est équivalente à l’existence d’une petite couverture par sommets.

  25. CLQ p IS. • Pour le démontrer formellement, on veut définir une fonction f permet de transformer en temps polynomial chaque instance G, k du problème Clique en une instance f(G, k) = G’, k’ du problème Ensemble Indépendant de telle sorte que G, k CLQ G’, k’ IS. c’est à dire G contient une clique de k points  G’ contient un IS de k’ points.

  26. CLQ p IS. Instance de IS: Gc = (V,Ec), graphe complément de G. Entier k (inchangé) Instance de CLQ: Graphe G = (V,E) Entier k Transformation f • À montrer: • f est calculable en temps polynomial. • G,k CLQ Gc,k IS. (Évident dans ce cas ci.) Un ensemble de sommets forme une clique dans G ssi il forme un ensemble indépendant dans Gc.

  27. IS p CLQ. Instance de CLQ: Gc = (V,Ec), graphe complément de G. Entier k (inchangé) Instance de IS: Graphe G = (V,E) Entier k Transformation f • À montrer: • f est calculable en temps polynomial. (Évident dans ce cas ci.) • G,k IS Gc,k CLQ. Un ensemble de sommets forme • un ensemble indépendant dans G • ssi il forme une clique dans Gc.

  28. IS p VC. Instance de VC: G = (V,E) (inchangé) Entier |V| - k Instance de IS: Graphe G = (V,E) Entier k Transformation f • À montrer: • f est calculable en temps polynomial. (Évident dans ce cas ci.) • G,k IS G, |V| - k VC. •  G,k  IS  G, |V| - k  VC: • Si V’ est un IS de taille k, alors toutes les arêtes de E ont au moins une extrémité dans V – V’. Donc V – V’ est une VC de taille |V| - k. •  G,k  IS  G, |V| - k  VC: • Si V’ est une VC de taille |V| - k, alors V – V’ est un IS de taille k.

  29. Théorème: 3-SAT p IS. Plus surprenant car ces problèmes n’ont aucun lien apparent!

  30. 3-SATp IS Instance de IS: Graphe G = (V,E) Occurrence d’un littéral  sommet dans G. Arête entre deux sommets lij, li’j’ si dans une même clause ou si contradictoires Entier m (nb de clauses) Instance de 3-SAT  Variables X = x1, …, xn m clauses cj = l1j l2j l3j La transformation se fait en temps O(m2). (borne supérieure de |E|). Reste le plus dur: montrer que  3-SAT G, m IS.

  31. Étape 1:  3-SAT G, m IS Instance de IS: Graphe G = (V,E) Occurrence d’un litéral  sommet dans G. Arête entre deux sommets lij, li’j’ si dans une même clause ou si contradictoires Entier m (nb de clauses) Instance de 3-SAT  Variables X = x1, …, xn m clauses cj = l1j l2j l3j x1 = 0, x2 = 1, x3 = 0, x4 = 1 Supposons la formule satisfaite par x1 = b1, x2 = b2, …, xn = bn. Chaque clause contient un litéral dont la valeur est 1 (Vrai). Les sommets correspondants forment un IS de taille m car les litéraux correspondants sont de clause différentes et non-contradictoires.

  32. Étape 2: G, m IS 3-SAT Instance de IS: Graphe G = (V,E) Occurrence d’un litéral  sommet dans G. Arête entre deux sommets lij, li’j’ si dans une même clause ou si contradictoires Entier m (nb de clauses) Instance de 3-SAT  Variables X = x1, …, xn m clauses cj = l1j l2j l3j x1 = 1, x2 = 1, x3 = 0, x4 = 1 Supposons que V’ est un IS de taille m. V’ ne peut contenir deux sommets issus d’une même clause donc contient exactement un par clause. Choisissons xi = 1 si un des sommets xi est dans V’ et xi = 0 si un des sommets i est dans V’. Parce que V’ est un IS on ne peut avoir xi = 1 et xi = 0! On peut maintenant choisir la valeur des autres xi de façon arbitraire et la formule est satisfaite car chaque clause contient au moins un litéral vrai.

  33. Trois grands paradigmes de réductions 1- Restriction: Montrer que A p B en montrant que A est un cas particulier de B, possiblement à une reformulation du problème près. • Exemples: • k-COL p (k+1)-COL; • 3-SAT p SAT; • HC p DHC; • HC p TSP2,,sym • CLQ p IS p VC; • PARTITION p BIN-PACKING (cf Wegener)

  34. 2- Remplacement local: La transformation des instances de A se fait en remplaçant des morceaux de l’instance par des «gadgets» relativement simples qui forment l’instance de B. Surtout utile pour des problèmes assez similaires. • Exemples: • SAT p 3-SAT; • DHC p HC; • 4-COL p 3-COL;

  35. 2- Conception de composantes: On transforme les instances de A en remplaçant les morceaux de l’instance par des composantes complexes qui forment l’instance de B. Permet des réductions entre des problèmes de nature différente. • Exemples: • 3-SAT p CLQ; • 3-SAT p DHC; • 2-DM p NETWORK-FLOW;

  36. 3-SAT p DHC. Problème: comment refléter avec des circuits hamiltoniens les 2n valeurs possibles des xi? xnv x1v x2v x1 x2 xn … xnf x1f x2f Ce graphe contient 2n circuits Hamiltoniens qu’on peut assimiler aux 2n valeurs possibles des xi. Lorsque xi est vrai on considère le cycle qui passe par xiv d’abord et xif ensuite. Lorsque xi est faux on considère le cycle qui passe par xif d’abord et xiv ensuite Par exemple x1 = 1, x2 = 0, xn = 1 donne

  37. Pour s’assurer que chaque clause Cj soit vraie, on rajoute un sommet cj dans le graphe. Si xi est vrai, toutes les clauses contenant xi sont vraies. Si xi est faux, toutes les clauses contenant i sont vraies. xi xiv xif c9 c7 c1 Supposons que xi apparait positivement dans la clauses 1 et négativement dans les clauses 7 et 9. En commençant par aller à xiv et en allant ensuite vers xif on peut passer par c1 mais pas par c7 ou c9.

  38. Construction formelle du graphe. • Si xi ou iapparaît un total de bi fois, on crée 3+2bi sommets, soit xi, xiv, xif et quand xi ou i apparaît dans Cj, deux sommets dij et eij. • Pour chaque clause Cj on introduit un sommet cj.< • On introduit les arêtes (xi,xiv), (xi,xif), (xiv,xi+1), (xif,xi+1). • Si xi apparaît dans les clauses 1, ... , k on introduit des doubles-arêtes (xiv,di1), (dij,eij), (eij, dij+1) et (eik,xif). • Si xi apparaît positivement dans Cj on ajoute (dij,cj) et (cj,eij). • Si xi apparaît négativement dans Cj, on ajoute (eij,cj) et (cj,dij). •  3-SAT  G  DHC Soit b1, ..., bn les valeurs satisfaisant la formule. En partant de x1, on construit un cycle hamiltonien comme suit. xi est suivi par xiv si bi = 1. Sinon, xi est suivi par xif. On visite ensuite les dij et eij entre xiv et xif en passant par les cj lorsque possible. Finalement on passe à xi+1. Le passage par cj est possible ssi Cj est satisfaite grâce à xi. Comme chaque Cj est satisfaite grâce à un xi, le cycle est hamiltonien.

  39. Construction formelle du graphe. • Si xi ou iapparaît un total de bi fois, on crée 3+2bi sommets, soit xi, xiv, xif et quand xi ou i apparaît dans Cj, deux sommets dij et eij. • Pour chaque clause Cj on introduit un sommet cj.< • On introduit les arêtes (xi,xiv), (xi,xif), (xiv,xi+1), (xif,xi+1). • Si xi apparaît dans les clauses 1, ... , k on introduit des doubles-arêtes (xiv,di1), (dij,eij), (eij, dij+1) et (eik,xif). • Si xi apparaît positivement dans Cj on ajoute (dij,cj) et (cj,eij). • Si xi apparaît négativement dans Cj, on ajoute (eij,cj) et (cj,dij). G  DHC  3-SAT Prenons un cycle hamiltonien commençant en x1. Le cycle doit continuer via x1v ou x1f et doit traverser tous les d1j, e1j avant de passer à x2. Posons dans la formule xi = 1 si xiv est visité avant xif et xi = 0 sinon. Le sommet cj ne peut être visité qu’entre un dij et un eij (détour possible seulement si xi = 1 et xi Cj) ou entre un eij et un dij (possible seulement si xi = 0 et i Cj). Donc toutes les clauses sont satisfaites par les valeurs booléennes choisies.

  40. Problème de flot d’un réseau (Network-Flow) Rappel: Soit G = (V,E) un graphe dirigé avec une source s, un puits p et des capacités cij N+ associées à chaque (vi,vj)  E. Un flot sur G associe à chaque arête un entier borné par la capacité de l’arête. Le flot entrant dans un nœud v  s,t (somme des flots sur les arêtes dirigées vers v) doit être égal au flot sortant de v (somme des flots sur les arêtes partant de v). Entrée: Un graphe dirigé G = (V,E) avec une source, un puits et des capacités cij N+; une cible de flot F. Question: Existe-t-il un flot sortant de s d’au moins F dans le graphe?

  41. Problème du mariage Entrée: Ensembles d’hommes H et de femmes F avec |H| = |F| et liens d’affinités A  H  F. Question: Peut-on coupler les hommes et les femmes de tel sorte que tous les mariages soient stables?

  42. H F Instance de flot de réseau Graphe de flot Flot cible: |H| = |F| Instance de mariage H, F, liens d’affinités Toutes capacités 0 ou 1 s p Si un mariage parfait existe, alors un flot de |H| existe, passant par les flèches correspondant au mariage. À l’inverse, si un flot de |H| existe, c’est que chaque point de H transmet un flot de 1 à un et un seul point de F. Donc un mariage parfait existe.

  43. TSP TSP2, , sym DHC p HC CLQ p IS p VC SAT p 3-SAT

More Related