Vous êtes sur la page 1sur 37

IFT-66975

Chapitre 2
Rductions: exemples et mthodes
Motivation
Comment comparer la complexit de
deux problme de calcul?
Comment formaliser la ressemblance
de deux problmes de calcul?
On ne sait pas montrer quun problme
nest pas dans P (sauf sil est trs dur).
Quelle est la deuxime meilleure
option?
k-coloriabilit
Entre: Un graphe G = (V,E)
Question: Peut-on assigner une de k
couleurs chaque v
i
e V tel que pour
tout (v
i
,v
j
) e E on a c(v
i
) = c(v
j
)?

Intuitivement clair que k-coloriabilit
nest pas plus dur que (k+1)-
coloriabilit.
Supposons que A est un algorithme pour la
(k+1)-coloriabilit.

Algorithme pour la k-coloriabilit:
Entre: graphe G = (V,E)
1. Former le graphe
G = (V
{x}, E {(x,v) : v e V}).
2. Retourner A(G).

tape 1 trs simple donc algorithme efficace
si tape 2 efficace.
k-coloriabilit nest pas plus dur que (k+1)-
coloriabilit.
Dfinition: Le problme de calcul A est
polynomialement Turing-rductible au problme B
(dnot A s
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 polynme p(n).
2. Le nombre dappels lalgorithme pour B est born par
un polynme q(n).
3. La longueur des entres soumises B est born par un
polynme r(n).

Note terminologique: Les algorithmes faisant appel
un algorithme pour B sont souvent appels
algorithmes avec oracle B.
Permet de formaliser lide 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) s p(n) + q(n) t
B
(r(n))

Si t
B
est born par un polynme, alors t
A

est born par un polynme.
Si A nadmet aucun algorithme en temps
polynomial, alors B nadmet aucun
algorithme en temps polynomial.


Thorme: Soit C une des classes P, ZPP,
BPP et A et B deux problmes de calcul
tels que A s
T
B. Alors B e C A e C.
Si A s
T
B et B s
T
A on dit alors que A et
B sont polynomialement Turing-
quivalents. (dnot A
T
B)
Formalise lide que A et B sont
essentiellement aussi difficiles.
Exemple
On a considr plusieurs variantes du
problme du commis voyageur
1. TSP
Opt
: Trouver le circuit optimal
2. TSP
Eval
: Calculer le cot du circuit
optimal.
3. TSP
Dec
: Dcider sil existe un circuit de
cot quun certain C donn.

Thorme:
TSP
Dec

T
TSP
Eval

T
TSP
Opt
.


Phnomne trs gnral (cf Wegener)
permet de nous concentrer sur la
complexit des problmes de dcision.
Problme du circuit Hamiltonien dirig
(DHC) et non-dirig (HC)

Entre: Un graphe (dirig) G = (V,E).
Question: Le graphe contient-il un circuit
Hamiltonien, c..d. un cycle contenant
tous les nuds de V?


Thorme:
DHC
T
HC s
T
TSP
2,A,sym
s TSP.

Note: Les rductions utilises ont la
proprit que quune seule question est
pose loracle et que la rponse de
loracle est le rsultat recherch.
Transformations polynomiales
Le langage A est transformable en
temps polynomial au langage B (dnot
A s
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 e A f(x) e B]

Si A s
p
B alors A s
T
B.
Linverse nest pas ncessairement vrai. En
particulier on a toujours A s
T
mais pas
ncessairement A s
p
.
Si A s
p
B et B s
p
C alors A s
p
C.


Notion plus fine et mieux adapt la suite des
choses parce quelle permet entre autres:
Thorme:
Soit C une des classes P, ZPP, BPP, RP, co-RP,
NP, co-NP. Si on a B e C et A s
p
B alors A e
C.
A
A
Satisfiabilit (SAT) et k-SAT
Entre: Une formule logique en forme normale
conjonctive (CNF) avec variables Boolennes
x
1
, , x
n
et leur complment

x
1
, , x
n

(appels litraux). Autrement dit un ensemble
de clauses de la forme x
1
v x
2
v x
5
v x
7
.
Question: Peut-on assigner des valeurs
Boolennes aux variables telle que la formule
soit satisfaite, cest--dire telle que chaque
clause contienne au moins un litral vrai?

Le cas particulier ou les clauses ont au plus k
litraux est appel k-SAT.
Thorme: Pour tout k > 3 on a
SAT
p
k-SAT.

Il est clair que k-SAT s
p
SAT puisque
toute instance de k-SAT est aussi une
instance de SAT.
Pour montrer que SAT s
p
k-SAT, il faut
transformer les longues clauses en
clauses de longueur s k.
Transformations polynomiales
Le langage A est transformable en
temps polynomial au langage B (dnot
A s
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 e A f(x) e B]

A

B

Instances de A Instances de B
f
f
On doit sassurer que f est calculable en temps polynomial.
Pour dmontrer que la transformation est correcte il faut
montrer x e A f(x) e B. Souvent on montre x e A f(x) e B
puis f(x) e B x e A.
Notez que f nest pas ncessairement injective ou surjective.
Thorme: SAT
p
3-SAT.

Pour montrer 3-SAT s
p
SAT, la
transformation f est lidentit!
Pour montrer que SAT s
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.
Rappel de logique: (a v b) . ( v c) (b v 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 | remplaces par un
ensemble de 3-clauses grce aux
variables y
j
.
C
j
= x
5
v x
7
v
8
v
9
v x
11

x
5
v x
7
v y
1j
1j
v
8
v y
2j
2j
v
9
v x
11
montrer: | e SAT | e 3-SAT.
Trois problmes de graphe
Entre: graphe G = (V,E) et un k s |V|.

Clique (CLQ): Existe-t-il C _ |V| avec |C| > k et (u,v)
e E pour tous u,v e C?

Ensemble indpendant (IS): Existe-t-il C _ |V| avec
|C| > k et (u,v) e E pour tous u,v e C?

Couverture par sommets (VC): Existe-t-il C _ |V|
avec |C| s k et tel que pour tout (u,v) e E, on a u
e C ou v e C?

Thorme: CLQ
p
IS
p
VC.

Ide: montrer que ces trois problmes ne sont
que des reformulations les uns des autres.
Lexistence dune grande clique est quivalente
lexistence dun grand ensemble
indpendant dans le complment du graphe.
Lexistence dun grand ensemble indpendant
est quivalente lexistence dune petite
couverture par sommets.

Instance de CLQ:
Graphe G = (V,E)
Entier k
Instance de IS:
G
c
= (V,E
c
), graphe
complment de G.
Entier k (inchang)
Transformation f
montrer:
1. f est calculable en temps polynomial.
2. ( G,k ) e CLQ ( G
c
,k ) e IS.
CLQ s
p
IS.

(vident dans ce cas ci.)
Un ensemble de sommets forme
une clique dans G ssi il forme
un ensemble indpendant
dans G
c
.

Instance de IS:
Graphe G = (V,E)
Entier k
Instance de CLQ:
G
c
= (V,E
c
), graphe
complment de G.
Entier k (inchang)
Transformation f
montrer:
1. f est calculable en temps polynomial. (vident dans ce cas ci.)
2. ( G,k ) e IS ( G
c
,k ) e CLQ. Un ensemble de sommets forme
un ensemble indpendant dans G
ssi il forme une clique dans G
c
.
IS s
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 ) e IS ( G, |V| - k ) e VC.
o) ( G,k ) e IS ( G, |V| - k ) e VC:
Si V est un IS de taille k, alors toutes les artes de E ont au moins
une extrmit dans V V. Donc V V est une VC de taille |V| - k.
o) ( G,k ) e IS : ( G, |V| - k ) e VC:
Si V est une VC de taille |V| - k, alors V V est un IS de taille k.
IS s
p
VC.

Thorme: 3-SAT s
p
IS.

Plus surprenant car ces problmes nont
aucun lien apparent!
3-SAT s
p
IS
Instance de 3-SAT |
Variables X = x
1
, , x
n
m clauses c
j
= l
1j
v l
2j
v l
3j
I
n
s
t
a
n
c
e

d
e

I
S
:

G
r
a
p
h
e

G

=

(
V
,
E
)
O
c
c
u
r
r
e
n
c
e

d

u
n

l
i
t

r
a
l


s
o
m
m
e
t

d
a
n
s

G
.
A
r

t
e

e
n
t
r
e

d
e
u
x

s
o
m
m
e
t
s

l
i
j
,

l
i


s
i

d
a
n
s

u
n
e

m

m
e

c
l
a
u
s
e

o
u

s
i


c
o
n
t
r
a
d
i
c
t
o
i
r
e
s
E
n
t
i
e
r

m

(
n
b

d
e

c
l
a
u
s
e
s
)
3 2 1
x x x v v
4 3 2
x x x v v
4 2 1
x x x v v
2
x
1
x
2
x
3
x
4
x
4
x
1
x
2
x
3
x
La transformation se fait en temps O(m
2
). (borne suprieure de |E|).
| e 3-SAT G e IS
Supposons la formule satisfaite par x
1
= b
1
, , x
n
= b
n.
Chaque clause contient un litral dont la valeur est 1.
Les sommets correspondants forment un IS de taille m car les litraux
correspondants sont de clause diffrentes et non-contradictoires.

x
1
= 0, x
2
= 1, x
3
= 0, x
4
= 1
G e IS | e 3-SAT
Supposons que V est un IS de taille m. V ne peut contenir deux sommets issus dune mme
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 faon arbitraire et la
formule est satisfaite car chaque clause contient au moins un litral vrai.

x
1
= 1, x
2
= 1, x
3
= 0, x
4
= 1
Trois grands paradigmes de
rductions
1- Restriction: Montrer que A s
p
B en montrant
que A est un cas particulier de B,
possiblement une reformulation du
problme prs.

Exemples:
1. k-COL s
p
(k+1)-COL;
2. 3-SAT s
p
SAT;
3. HC s
p
DHC;
4. HC s
p
TSP
2,A,sym
5. CLQ s
p
IS s
p
VC;
6. PARTITION s
p
BIN-PACKING (cf Wegener)
2- Remplacement local: La transformation
des instances de A se fait en
remplaant des morceaux de linstance
par des gadgets relativement
simples qui forment linstance de B.
Surtout utile pour des problmes
assez similaires.

Exemples:
1. SAT s
p
3-SAT;
2. DHC s
p
HC;
3. 4-COL s
p
3-COL;

2- Conception de composantes: On
transforme les instances de A en
remplaant les morceaux de linstance
par des composantes complexes qui
forment linstance de B. Permet des
rductions entre des problmes de
nature diffrente.

Exemples:
1. 3-SAT s
p
CLQ;
2. 3-SAT s
p
DHC;
3. 2-DM s
p
NETWORK-FLOW;

3-SAT s
p
DHC.
Problme: comment reflter avec des circuits hamiltoniens les 2
n
valeurs
possibles des x
i
?
x
1v
x
1f
x
2v
x
2f
x
nf

x
1
x
2
x
n
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 considre le cycle qui passe par x
iv
dabord et x
if
ensuite.
Lorsque x
i
est faux on considre le cycle qui passe par x
if
dabord et x
iv
ensuite
Par exemple x
1
= 1, x
2
= 0, x
n
= 1 donne
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.
x
i
x
if
x
iv
c
1
c
7
c
9
Supposons que x
i
apparait positivement dans la clauses 1 et ngativement dans
les clauses 7 et 9.
En commenant 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
.
G e DHC | e 3-SAT
Prenons un cycle hamiltonien commenant 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
(dtour possible
seulement si x
i
= 1 et x
i
e C
j
) ou entre un e
i
j
et un d
i
j
(possible seulement si
x
i
= 0 et
i
e C
j
). Donc toutes les clauses sont satisfaites par les valeurs
boolennes choisies.
Construction formelle du graphe.

Si x
i
ou
i
apparat un total de b
i
fois, on cre 3+2b
i
sommets, soit x
i
, x
iv
,
x
if
et quand x
i
ou
i
apparat 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 artes (x
i
,x
iv
), (x
i
,x
if
), (x
iv
,x
i+1
), (x
if
,x
i+1
).
Si x
i
apparat dans les clauses 1, ... , k on introduit des doubles-artes
(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
apparat positivement dans C
j
on ajoute (d
i
j
,c
j
) et (c
j
,e
i
j
).
Si x
i
apparat ngativement dans C
j
, on ajoute (e
i
j
,c
j
) et (c
j
,d
i
j
).
|e 3-SAT G e 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 grce x
i
. Comme
chaque C
j
est satisfaite grce un x
i
, le cycle est hamiltonien.
Problme de flot dun rseau (Network-Flow)

Rappel: Soit G = (V,E) un graphe dirig avec une
source s, un puits p et des capacits c
ij
e N
+

associes chaque (v
i
,v
j
) e E. Un flot sur G associe
chaque arte un entier born par la capacit de
larte. Le flot entrant dans un nud v = s,t (somme
des flots sur les artes diriges vers v) doit tre gal
au flot sortant de v (somme des flots sur les artes
partant de v).

Entre: Un graphe dirig G = (V,E) avec une source, un
puits et des capacits c
ij
e N
+
; une cible de flot F.

Question: Existe-t-il un flot sortant de s dau moins F
dans le graphe?
Problme du mariage

Entre: Ensembles dhommes H et de
femmes F avec |H| = |F| et liens
daffinits 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 daffinits
Instance de flot de rseau
Graphe de flot
Flot cible: |H| = |F|
H F
s p
Toutes capacits 0 ou 1
Si un mariage parfait existe, alors un flot de |H| existe, passant
par les flches 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.
SAT
p
3-SAT
CLQ
p
IS
p
VC DHC
p
HC
TSP
2, A, sym
TSP