Upload
jacinthe-durand
View
131
Download
6
Embed Size (px)
Citation preview
IFT-66975
Chapitre 2Ré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?
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é.
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é.
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.
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.
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.
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.
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é.
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.
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?
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é.
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]
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
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.
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.
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]
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.
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.
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.
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?
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.
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.
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.
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.
Théorème: 3-SAT p IS.
Plus surprenant car ces problèmes n’ont aucun lien apparent!
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
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)
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;
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;
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
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.
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.
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?
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?
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.
SAT p 3-SAT
CLQ p IS p VCDHC p HC
TSP2, , sym
TSP