ift-66975 chapitre 2 réductions: exemples et méthodes

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

Upload: jacinthe-durand

Post on 04-Apr-2015

126 views

Category:

Documents


6 download

TRANSCRIPT

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

IFT-66975

Chapitre 2Réductions: exemples et

méthodes

Page 2: 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?

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?

Page 3: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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é.

Page 4: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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é n’est pas plus dur que (k+1)-coloriabilité.

Page 5: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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

1. Le temps de calcul de l’algorithme pour A, sans compter les appels à B, est borné par un polynôme p(n).

2. Le nombre d’appels à l’algorithme 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.

Page 6: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 7: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 8: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 9: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Exemple

On a considéré plusieurs variantes du problème du commis voyageur

1. TSPOpt: Trouver le circuit optimal

2. TSPEval: Calculer le coût du circuit optimal.

3. TSPDec: Décider s’il existe un circuit de coût qu’un certain C donné.

Page 10: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 11: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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?

Page 12: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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é.

Page 13: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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]

Page 14: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

AA

Page 15: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Satisfiabilité (SAT) et k-SATEntrée: Une formule logique en forme

normale conjonctive (CNF) avec variables Booléennes x1, …, xn et leur complément ̅̅̅̅x1, …, ̅̅x 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.

Page 16: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 17: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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]

Page 18: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

A

B

Instances de A Instances de B

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 ou surjective.

Page 19: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 20: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Rappel de logique: (a b) (ā c) (b c)

Donc la clause Cj est vraie si et seulement si la conjonction des 3-clauses correspondantes est vraie. À partir des valeurs satisfiant Cj on peut trouver des valeurs pour les yij qui satisfairont les 3-clauses. À l’inverse, les valeurs des xi qui satisfont les 3-clauses satisfont Cj.

Instance de SATFormule en CNFVariables x1, ... xn

Instance de 3-SATFormule ’ en 3-CNFVariables x1, ... ,xn, y1, ..., ym

Clauses de remplacées par un ensemble de 3-clauses grâce aux variables yj.

Cj = x5 x7 8 9 x11 x5 x7 y1j

1j 8 y2j

2j 9 x11

À montrer: SAT ’ 3-SAT.

Page 21: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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?

Page 22: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 23: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Instance de CLQ:

Graphe G = (V,E)

Entier k

Instance de IS:Gc = (V,Ec), graphe complément de G.Entier k (inchangé)

Transformation f

À montrer:1. f est calculable en temps

polynomial. 2. G,k CLQ Gc,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 Gc.

Page 24: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Instance de IS:Graphe G =

(V,E)Entier k

Instance de CLQ:Gc = (V,Ec), 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 Gc,k CLQ. Un ensemble de sommets forme

un ensemble indépendant dans G ssi il forme une clique dans Gc.

IS p CLQ.

Page 25: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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.

Page 26: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Théorème: 3-SAT p IS.

Plus surprenant car ces problèmes n’ont aucun lien apparent!

Page 27: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

3-SAT p IS

Instance de 3-SAT Variables X = x1, …, x

n

m clauses cj = l1j l2j l3j

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 contradictoiresEntier m (nb de clauses)

321 xxx

432 xxx

421 xxx

2x

1x

2x 3x

4x

4x

1x

2x

3x

La transformation se fait en temps O(m2). (borne supérieure de |E|). 3-SAT G ISSupposons la formule satisfaite par x1 = b1, …, xn = bn.

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.

x1 = 0, x2 = 1, x3 = 0, x4 = 1

G IS 3-SATSupposons 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.

x1 = 1, x2 = 1, x3 = 0, x4 = 1

Page 28: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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 TSP2,,sym

5. CLQ p IS p VC;6. PARTITION p BIN-PACKING (cf Wegener)

Page 29: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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:1. SAT p 3-SAT;

2. DHC p HC;

3. 4-COL p 3-COL;

Page 30: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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:1. 3-SAT p CLQ;

2. 3-SAT p DHC;

3. 2-DM p NETWORK-FLOW;

Page 31: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

3-SAT p DHC.

Problème: comment refléter avec des circuits hamiltoniens les 2n valeurs possibles des xi?

x1v

x1f

x2v

x2f xnf

…x1 x2 xn

xnv

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 ensuitePar exemple x1 = 1, x2 = 0, xn = 1 donne

Page 32: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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

xifxiv

c1c7 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.

Page 33: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

G DHC 3-SATPrenons un cycle hamiltonien commençant en x1. Le cycle doit continuer via x1v ou x1f et doit traverser tous les d1

j, 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 di

j et un eij (détour

possible seulement si xi = 1 et xi Cj) ou entre un eij et un di

j (possible seulement si xi = 0 et i Cj). Donc toutes les clauses sont satisfaites par les valeurs booléennes choisies.

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 di

j et ei

j. 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,di

1), (dij,ei

j), (eij, di

j+1) et (eik,xif).

Si xi apparaît positivement dans Cj on ajoute (dij,cj) et (cj,ei

j). Si xi apparaît négativement dans Cj, on ajoute (ei

j,cj) et (cj,dij).

3-SAT G DHCSoit 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 di

j 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.

Page 34: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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?

Page 35: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

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?

Page 36: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

Instance de mariage

H, F, liens d’affinités

Instance de flot de réseauGraphe de flotFlot cible: |H| = |F|

H F

s p

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.À 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.

Page 37: IFT-66975 Chapitre 2 Réductions: exemples et méthodes

SAT p 3-SAT

CLQ p IS p VCDHC p HC

TSP2, , sym

TSP