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

Chapitre 2 Réductions: exemples et méthodes

Présentations similaires


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

1 Chapitre 2 Réductions: exemples et méthodes
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é.
« 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 tA(n)  p(n) + q(n)  tB(r(n))
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 TSPDec T TSPEval T TSPOpt.
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 DHC T HC T TSP2,,sym  TSP.
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 (Rappel de logique: (a  b)  (ā  c)  (b  c) )
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 G contient une clique de k points  G’ contient un IS de k’ points.
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 Gc = (V,Ec), graphe complément de G.
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 Gc = (V,Ec), graphe complément de G.
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é) Instance de IS:
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 Instance de IS: Graphe G = (V,E)
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 Instance de IS: Graphe G = (V,E)
É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 Instance de IS: Graphe G = (V,E)
É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? x1v x2v xnv x1 x2 xn x1f x2f xnf 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 c1 c7 c9 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 i apparaî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 i apparaî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 Instance de flot de réseau Graphe de flot Flot cible: |H| = |F|
Instance de mariage H, F, liens d’affinités H F 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


Télécharger ppt "Chapitre 2 Réductions: exemples et méthodes"

Présentations similaires


Annonces Google