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 Chapitre 2 Réductions: exemples et méthodes.

Présentations similaires


Présentation au sujet: "IFT-66975 Chapitre 2 Réductions: exemples et méthodes."— Transcription de la présentation:

1 IFT 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 quun problème nest pas dans P (sauf sil 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 v i V tel que pour tout (v i,v j ) E on a c(v i ) c(v j )? Intuitivement clair que k-coloriabilité nest 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) 1. Former le graphe G = (V {x}, E {(x,v) : v V}). 2. Retourner A(G).» Étape 1 très simple donc algorithme efficace si Étape 2 efficace. k-coloriabilité nest pas plus dur que (k+1)- coloriabilité.

5 Définition: Le problème de calcul A est polynomialement Turing-réductible au problème B (dénoté A T B) sil existe un algorithme pour A qui fait appel à un algorithme pour B et tel que 1. Le temps de calcul de lalgorithme pour A, sans compter les appels à B, est borné par un polynôme p(n). 2. Le nombre dappels à lalgorithme pour B est borné par un polynôme q(n). 3. 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 lidée que A nest pas significativement plus dur que B. Sil existe un algorithme pour B avec temps de calcul t B (n), alors il existe un algorithme pour A avec temps t A (n) p(n) + q(n) t B (r(n)) Si t B est borné par un polynôme, alors t A est borné par un polynôme. Si A nadmet aucun algorithme en temps polynomial, alors B nadmet 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 lidée que A et B sont essentiellement aussi difficiles.

9 Exemple On a considéré plusieurs variantes du problème du commis voyageur 1. TSP Opt : Trouver le circuit optimal 2. TSP Eval : Calculer le coût du circuit optimal. 3. TSP Dec : Décider sil existe un circuit de coût quun certain C donné.

10 Théorème: TSP Dec T TSP Eval T TSP Opt. 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 TSP 2,,sym TSP. Note: Les réductions utilisées ont la propriété que quune seule question est posée à loracle et que la réponse de loracle est le résultat recherché.

13 Transformations polynomiales Le langage A est transformable en temps polynomial au langage B (dénoté A p B) sil 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. Linverse nest 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 quelle 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 x 1, …, x n et leur complément ̅̅x 1, …, ̅x n (appelés litéraux). Autrement dit un ensemble de clauses de la forme x 1 ̅x 2 x 5 x 7. Question: Peut-on assigner des valeurs Booléennes aux variables telle que la formule soit satisfaite, cest-à-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) sil 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 A B Instances de AInstances de B f f On doit sassurer 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 nest pas nécessairement injective ou surjective.

19 Théorème: SAT p 3-SAT. Pour montrer 3-SAT p SAT, la transformation f est lidentité! Pour montrer que SAT p 3-SAT, on transforme les longues clauses dune 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 Rappel de logique: (a b) (ā c) (b c) Donc la clause C j est vraie si et seulement si la conjonction des 3-clauses correspondantes est vraie. À partir des valeurs satisfiant C j on peut trouver des valeurs pour les y ij qui satisfairont les 3-clauses. À linverse, les valeurs des x i qui satisfont les 3-clauses satisfont C j. Instance de SAT Formule en CNF Variables x 1,... x n Instance de 3-SAT Formule en 3-CNF Variables x 1,...,x n, y 1,..., y m Clauses de remplacées par un ensemble de 3-clauses grâce aux variables y j. C j = x 5 x x 11 x 5 x 7 y 1j 1j 8 y 2j 2j 9 x 11 À montrer: SAT 3-SAT.

21 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?

22 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. Lexistence dune grande clique est équivalente à lexistence dun grand ensemble indépendant dans le complément du graphe. Lexistence dun grand ensemble indépendant est équivalente à lexistence dune petite couverture par sommets.

23 Instance de CLQ: Graphe G = (V,E) Entier k Instance de IS: G c = (V,E c ), graphe complément de G. Entier k (inchangé) Transformation f À montrer: 1.f est calculable en temps polynomial. 2. G,k CLQ G c,k IS. CLQ p IS. (Évident dans ce cas ci.) Un ensemble de sommets forme une clique dans G ssi il forme un ensemble indépendant dans G c.

24 Instance de IS: Graphe G = (V,E) Entier k Instance de CLQ: G c = (V,E c ), graphe complément de G. Entier k (inchangé) Transformation f À montrer: 1.f est calculable en temps polynomial. (Évident dans ce cas ci.) 2. G,k IS G c,k CLQ. Un ensemble de sommets forme un ensemble indépendant dans G ssi il forme une clique dans G c. IS p CLQ.

25 Instance de IS: Graphe G = (V,E) Entier k Instance de VC: G = (V,E) (inchangé) Entier |V| - k Transformation f À montrer: 1.f est calculable en temps polynomial. (Évident dans ce cas ci.) 2. G,k IS G, |V| - k VC. a) 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. b) 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. IS p VC.

26 Théorème: 3-SAT p IS. Plus surprenant car ces problèmes nont aucun lien apparent!

27 3-SAT p IS Instance de 3-SAT Variables X = x 1, …, x n m clauses c j = l 1j l 2j l 3j Instance de IS: Graphe G = (V,E) Occurrence dun litéral sommet dans G. Arête entre deux sommets l ij, l ij si dans une même clause ou si contradictoires Entier m (nb de clauses) La transformation se fait en temps O(m 2 ). (borne supérieure de |E|). 3-SAT G IS Supposons la formule satisfaite par x 1 = b 1, …, x n = b n. Chaque clause contient un litéral dont la valeur est 1. Les sommets correspondants forment un IS de taille m car les litéraux correspondants sont de clause différentes et non-contradictoires. x 1 = 0, x 2 = 1, x 3 = 0, x 4 = 1 G IS 3-SAT Supposons que V est un IS de taille m. V ne peut contenir deux sommets issus dune même clause donc contient exactement un par clause. Choisissons x i = 1 si un des sommets x i est dans V et x i = 0 si un des sommets i est dans V. Parce que V est un IS on ne peut avoir x i = 1 et x i = 0! On peut maintenant choisir la valeur des autres x i de façon arbitraire et la formule est satisfaite car chaque clause contient au moins un litéral vrai. x 1 = 1, x 2 = 1, x 3 = 0, x 4 = 1

28 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: 1. k-COL p (k+1)-COL; 2. 3-SAT p SAT; 3. HC p DHC; 4. HC p TSP 2,,sym 5. CLQ p IS p VC; 6. PARTITION p BIN-PACKING (cf Wegener)

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

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

31 3-SAT p DHC. Problème: comment refléter avec des circuits hamiltoniens les 2 n valeurs possibles des x i ? x 1v x 1f x 2v x 2f x nf … x1x1 x2x2 xnxn x nv Ce graphe contient 2 n circuits Hamiltoniens quon peut assimiler aux 2 n valeurs possibles des x i. Lorsque x i est vrai on considère le cycle qui passe par x iv dabord et x if ensuite. Lorsque x i est faux on considère le cycle qui passe par x if dabord et x iv ensuite Par exemple x 1 = 1, x 2 = 0, x n = 1 donne

32 Pour sassurer que chaque clause C j soit vraie, on rajoute un sommet c j dans le graphe. Si x i est vrai, toutes les clauses contenant x i sont vraies. Si x i est faux, toutes les clauses contenant i sont vraies. xixi x if x iv c1c1 c7c7 c9c9 Supposons que x i apparait positivement dans la clauses 1 et négativement dans les clauses 7 et 9. En commençant par aller à x iv et en allant ensuite vers x if on peut passer par c 1 mais pas par c 7 ou c 9.

33 G DHC 3-SAT Prenons un cycle hamiltonien commençant en x 1. Le cycle doit continuer via x 1v ou x 1f et doit traverser tous les d 1 j, e 1 j avant de passer à x 2. Posons dans la formule x i = 1 si x iv est visité avant x if et x i = 0 sinon. Le sommet c j ne peut être visité quentre un d i j et un e i j (détour possible seulement si x i = 1 et x i C j ) ou entre un e i j et un d i j (possible seulement si x i = 0 et i C j ). Donc toutes les clauses sont satisfaites par les valeurs booléennes choisies. Construction formelle du graphe. Si x i ou i apparaît un total de b i fois, on crée 3+2b i sommets, soit x i, x iv, x if et quand x i ou i apparaît dans C j, deux sommets d i j et e i j. Pour chaque clause C j on introduit un sommet c j.< On introduit les arêtes (x i,x iv ), (x i,x if ), (x iv,x i+1 ), (x if,x i+1 ). Si x i apparaît dans les clauses 1,..., k on introduit des doubles-arêtes (x iv,d i 1 ), (d i j,e i j ), (e i j, d i j+1 ) et (e i k,x if ). Si x i apparaît positivement dans C j on ajoute (d i j,c j ) et (c j,e i j ). Si x i apparaît négativement dans C j, on ajoute (e i j,c j ) et (c j,d i j ). 3-SAT G DHC Soit b 1,..., b n les valeurs satisfaisant la formule. En partant de x 1, on construit un cycle hamiltonien comme suit. x i est suivi par x iv si b i = 1. Sinon, x i est suivi par x if. On visite ensuite les d i j et e i j entre x iv et x if en passant par les c j lorsque possible. Finalement on passe à x i+1. Le passage par c j est possible ssi C j est satisfaite grâce à x i. Comme chaque C j est satisfaite grâce à un x i, le cycle est hamiltonien.

34 Problème de flot dun réseau (Network-Flow) Rappel: Soit G = (V,E) un graphe dirigé avec une source s, un puits p et des capacités c ij N + associées à chaque (v i,v j ) E. Un flot sur G associe à chaque arête un entier borné par la capacité de larê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 c ij N + ; une cible de flot F. Question: Existe-t-il un flot sortant de s dau moins F dans le graphe?

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

36 Instance de mariage H, F, liens daffinités Instance de flot de réseau Graphe de flot Flot cible: |H| = |F| HF sp Toutes capacités 0 ou 1 Si un mariage parfait existe, alors un flot de |H| existe, passant par les flèches correspondant au mariage. À linverse, si un flot de |H| existe, cest que chaque point de H transmet un flot de 1 à un et un seul point de F. Donc un mariage parfait existe.

37 SAT p 3-SAT CLQ p IS p VCDHC p HC TSP 2,, sym TSP


Télécharger ppt "IFT-66975 Chapitre 2 Réductions: exemples et méthodes."

Présentations similaires


Annonces Google