Ift 66975
Download
1 / 43

IFT-66975 - PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on

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?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' IFT-66975' - holly-pope


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ift 66975

IFT-66975

Chapitre 2

Réductions: exemples et méthodes


Motivation
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
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)

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


  • Définition: (k+1)-coloriabilité.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.


  • Permet de formaliser l’idée que A n’est pas (k+1)-coloriabilité.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 (k+1)-coloriabilité.: 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 (k+1)-coloriabilité.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
Exemple (k+1)-coloriabilité.

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


  • Théorème (k+1)-coloriabilité.:

    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.



  • Théorème non-dirigé (HC):

    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
Transformations polynomiales non-dirigé (HC)

  • 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 non-dirigé (HC)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.


Satisfiabilit sat et k sat
Satisfiabilité (SAT) et k-SAT non-dirigé (HC)

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.


Théorème non-dirigé (HC): 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 polynomiales1
Transformations polynomiales non-dirigé (HC)

  • 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]


Instances de A non-dirigé (HC)

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.


Théorème non-dirigé (HC): 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.


Instance de 3-SAT non-dirigé (HC)

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.


Instance de 3-SAT non-dirigé (HC)

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 ’.


Instance de 3-SAT non-dirigé (HC)

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


Trois probl mes de graphe
Trois problèmes de graphe non-dirigé (HC)

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 non-dirigé (HC): 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.


  • CLQ non-dirigé (HC)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.


  • CLQ non-dirigé (HC)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.


  • IS non-dirigé (HC)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.


  • IS non-dirigé (HC)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.


Théorème non-dirigé (HC): 3-SAT p IS.

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


  • 3-SAT non-dirigé (HC)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.


Étape 1: non-dirigé (HC) 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.


Étape 2: non-dirigé (HC)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.


Trois grands paradigmes de r ductions
Trois grands paradigmes de réductions non-dirigé (HC)

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)


2- non-dirigé (HC)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;


2- non-dirigé (HC)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;


  • 3-SAT non-dirigé (HC)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


Pour s’assurer que chaque clause C non-dirigé (HC)j 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.


  • Construction formelle du graphe. non-dirigé (HC)

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


  • Construction formelle du graphe. non-dirigé (HC)

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


  • Problème de flot d’un réseau (Network-Flow) non-dirigé (HC)

    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 non-dirigé (HC)

    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?


H non-dirigé (HC)

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.


TSP non-dirigé (HC)

TSP2, , sym

DHC p HC

CLQ p IS p VC

SAT p 3-SAT


ad