plan du cours - Master informatique

Transcription

plan du cours - Master informatique
COMPLEXITE
DES PROBLEMES COMBINATOIRES
Master d’Informatique : spécialité IAD
P. Chrétienne : Prof. Université Paris 6
C. Picouleau : Prof. CNAM
PLAN DU COURS
•
•
•
•
•
•
•
Problèmes de décision.
Algorithme déterministe. La classe P.
Algorithme non déterministe. La classe NP.
Propriétés de la classe NP.
Réduction polynomiale dans NP.
Problème NP-complet. SAT est NP-complet
Quelques réductions.
PLAN DU COURS (suite)
• Sous-problèmes et complexité
• Problèmes numériques. Algorithme pseudopolynomial.
• Problème NP-complet au sens fort.
Réduction pseudo-polynomiale.
• Problèmes de recherche et d!’optimisation.
• Réduction de Turing. Problème NP-difficile
Problèmes de décision
Un problème de décision est défini par:
• un nom,
•des paramètres génériques,
•une question.
PARTITION
A={a1,….,an}
s :A!"
Existe t!’il B#A
tel que s(B)=s(A/B)?
CLIQUE
Graphe G=(S,A)
1<k<n=Card(S)
Existe t!’il une
clique d!’ordre k
dans G?
SAT
N var. logiques xj
P clauses Cp sur les xj
Existe t!’il une
fonction de vérité
telle que toutes les
clauses soient vraies?
Notations
Problème $
Ensemble des énoncés D$,
Sous-ensemble des énoncés à réponse «!oui!»: Y$,
Si l!’on code les énoncés à partir d!’un alphabet "
et d!’une fonction codage «!raisonnable!»:
Chaque énoncé est un mot de "*,
Langage des énoncés L($),
Langage des énoncés à réponse «!oui!»:LY($)
Algorithme résolvant $
Machine de Turing déterministe:
une unité centrale UC
une tête de lecture-écriture L/E
une bande doublement infinie B
Programme P de DTM:
UC
L/E
Bande
1) alphabet ' contenant le «!blanc!» noté (
et un sous-alphabet )# '/{(}
2) ensemble fini d!’états «!de contrôle!» pour l!’UC
Q={q0,qY,qN,….,qC} où q0 est l!’état initial
et qY,qN sont 2 états «!terminaux!» distincts.
3) fonction de transition:
%: Q /{qY,qN }& '!Q &'&{-1,+1}
Exécution P(x) du programme P pour la donnée x.
q0
Etat initial global:
x
-2 -1 0 1 2
Etape de calcul:
(c est le caractère pointé par LE, b est la position de LE,
1. Si q *{qY,qN } alors stop;
2. Soit (q’,c’,d’)= %(q,c);
3. B[b]:=c’; q:=q’; b:=b+d’.
P=(Q,q0,qY,qN, ), ', %)
3 issues possibles pour P(x):
•arrêt pour état qY,
•arrêt pour état qN,
•pas d!’arrêt.
Langage reconnu par P:
L(P)= {x *"* | P(x) s!’arrête dans l!’état qY.}.
P est un algorithme qui reconnaît un langage L # "* si
1) pour tout x *"* , P(x) s!’arrête; (terminaison)
2) L(P)=L. (validité)
P est un algorithme qui résout $ s!’il reconnaît LY($).
Complexité d!’un algorithme A:
Soit +A(x) le nombre de steps exécutés par A pour la donnée x.
La fonction complexité TA est définie par:
TA(n)=Max{+A(x) | l(x)=n}
Si TA(n)=O(p(n)) où p est un polynôme,
alors A est un algorithme polynomial.
Introduction à la classe NP
Considérons le problème CLIQUE
Soit I=(G,k) un énoncé de CLIQUE.
Appelons «!certificat!» de I un sous-ensemble de sommets de G.
Remarques :
- le nombre de certificats de I est donc 2n (exponentiel) ,
- la longueur d’un certificat est polynomiale en n.
Considérons un « algorithme de vérification » V
1) dont l’input est constitué de I et d’un certificat T,
2) qui répond oui si :
a) Card(T)=k ,
b) chaque paire de sommets de T est une arête de G,
et répond non dans les autres cas.
V possède la propriété suivante, notée (NP) :
si I * YCLIQUE , il existe un certificat T tel que V répond
oui pour la donnée (I,T) ;
si I , YCLIQUE, V répond non pour toute donnée (I,T)
V est de complexité polynomiale en n
L’existence :
- d’une famille de certificats de longueur polynomiale en n ;
- d’un algorithme de vérification, de complexité polynomiale
en n, possédant la propriété (NP)
définit l’appartenance de CLIQUE à la classe NP.
Plus généralement, soit $ un problème de décision.
S’il existe une fonction « certificats » - telle que :
- pour tout I dans D$, -(I) est l’ensemble des certificats de I ;
- la longueur d’un certificat est polynomiale en l$(I) .
S’il existe un algorithme de vérification V, dont les
inputs sont les couples (I,c) où c * -(I), tel que :
- si I * Y$ , il existe un certificat c * -(I) tel que V répond
oui pour la donnée (I,c) ;
- si I , Y$, V répond non pour toute donnée (I,c) ,
- V est de complexité polynomiale en l$(I).
Alors $ est dans la classe NP
(N pour non déterministe, P pour polynomial)
Définition formelle de la classe NP
Algorithme non déterministe V:
•une machine de Turing
•un module devin
Devin
UC
L/E
V=(Q,q0,qY,qN,), ', %)
y
0
x
Calcul de V pour la donnée (x,y) x*)* et y * '* (noté V(x,y) ):
1) le module devin écrit y (i.e:B[-l(y).. -1]:=y) ;
2) V est exécuté à partir de l!’état initial :
(q0,B[1..l(x)]=x, B[-l(y).. -1]=y), b=1)
Le calcul V(x,y) est réussi s!’il s!’arrête dans l!’état qY.
Le mot x est reconnu par V s!’il existe y tel que V(x,y) est réussi.
Durée d!’un calcul réussi V(x,y):
.(x,y)= l(y)++V(x,y)
Temps d!’écriture de y + temps d!’exécution de V(x,y)
Durée de reconnaissance de x:
r(x)=Min{.(x,y) |V(x,y) est réussi}
Temps minimum pour obtenir de V la réponse «!oui!»
Fonction complexité de l!’algorithme non déterministe V:
TV(n)=Max{r(x) | x *L(V) et l(x)=n}
(c’est le temps maximum de reconnaissance d!’un énoncé
de taille n)
Si TV(n)=O(p(n)) où p(n) est un polynôme, alors V est un
algorithme non déterministe polynomial.
Soit V un algorithme non déterministe.
Le langage L(V) reconnu par V est l!’ensemble des mots x
reconnus par V.
Soit $ un problème de décision et soit V un algorithme
non déterministe polynomial.
Si L(V)=LY($), alors V est un algorithme non déterministe
polynomial qui résout $.
La classe NP est l!’ensemble des problèmes de décision résolus
par un algorithme non déterministe polynomial.
Propriétés de NP
•P#NP
On peut utiliser l!’algorithme polynomial A qui résout $
comme algorithme de vérification V avec un unique
certificat vide.
•Si $ *NP, $ est résolu par un algorithme de complexité
O(2q(n)) où q est un polynôme.
Soit (-,V) un algorithme non déterministe polynomial pour $.
À (-,V) est associé un polynôme p tel que:
pour tout énoncé I de Y$ de longueur n,
il existe un certificat c de -(I) tel que:
l(c)+ +V(I,c)<p(n)
Il en résulte que:
1) seuls les certificats de longueur # p(n) dans -(I) suffisent pour
prouver que I * Y$ (on note G(n) leur nombre);
2) pour I et c * -(I) fixés, il suffit d!’exécuter les p(n) premiers
steps de V.
Fonction A(V,x) % x donnée, V algorithme de vérification%
Tantque # certificats examinés # G(n) faire
Choisir un nouveau certificat y
Exécuter V(x,y) jusqu’au 1er événement E1 ou E2 :
( E1 : état UC = qY ; E2 : # steps exécutés > p(n))
Si E1 alors Retourner (oui)
fintantque;
Retourner (non).
Si Card '=a, alors A examine au plus O(a p(n)) certificats et
exécute pour chacun d!’eux au plus p(n) steps.
D!’où la complexité de A: O(p(n) a p(n))=O(2 q(n) ).
Réductions dans NP
Soient $1 et $2 deux problèmes de NP.
Intuitivement, $2 est plus difficile que $1 si un algorithme
qui résout $2 peut aussi être utilisé pour résoudre $1
«!à un coût polynomial!près!»
Réduction polynomiale de $1 sur $2 :
Application f calculable polynomialement telle que:
f: D($1)! D($2)
I *Y ($1) 0 f(I) *Y ($2)
Notation: $1 / $2
Propriétés de / dans NP
La relation /est réflexive et transitive.
Deux problèmes $1 et $2 sont équivalents si $1 / $2 et $2 / $1
La relation /induit un ordre partiel sur les classes d!’équivalence.
Question : Existe t!’il une classe de problèmes de NP
plus difficiles que tous les autres?
Définition :Un problème $* est dit NP-complet si
pour tout $ *NP, $ / $*
Question équivalente : Existe t!’il un problème NP-complet?
SAT est NP-complet
C!’est le théorème de COOK (1971)
SAT
N variables logiques xj, j=1,..N.
P clauses Cp, p=1..P, sur les variables
Une clause est un sous-ensemble de littéraux.
Un littéral est soit une variable, soit une variable complémentée.
Une clause est vraie pour une fonction de vérité sur les variables
si au moins un de ses littéraux est vrai.
Question: Existe t!’il une fonction de vérité sur les variables telle
que toutes les clauses soient vraies?
Fonction longueur pour SAT: lSAT(V,C)=P&N
Un énoncé de SAT:
V= {x1, x2, x3, x4, x5}
C défini par 6 clauses:
{x1, ¬x3, ¬ x5}
{¬ x2, x3, ¬ x4, x5}
{¬ x1, x4}
{x2, ¬ x5}
{x1, x2, ¬ x4, ¬ x5}
{x3, x5}
Cet énoncé est à réponse «!oui!» car les 6 clauses sont vraies
pour la fonction de vérité:
x1=«vrai!», x2=«!faux!», x3=«!vrai!», x4=«!vrai!!», x5=«!faux!», !
Soit $ un problème de NP.
$ est résolu par un algorithme non déterministe polynomial (-,V).
Soit LY( $) le langage reconnu par (-,V) .
Soit p le polynôme associé à (-,V) .
Pour tout mot x de LY( $), il existe un certificat y tel que:
l(y)#p(n) et
V(x,y) s!’arrête dans l!’état qY après au plus p(n) steps
Il en résulte que, lors de l!’exécution de ses p(n) premiers steps,
V(x,y) ne peut lire ou écrire que sur la zone
Z(V)=B[-p(n)..p(n)+1]de la bande.
A chaque step t *{0,p(n)}, l!’état de (-,V) est caractérisé par:
l!’état e *Q={q0,q1,q2,…qE} de l!’UC,
la position de la tête de L/E,
le contenu des cellules de Z(V).
Réduction polynomiale: $ /SAT
Soitun mot x *"* de longueur n, on construit un énoncé f(x) de SAT.
La fonction f doit vérifier:
«! x *LY($) 0 f(x) est satisfiable!»
ou de manière équivalente:
«!1y tel que l(y)#p(n) et V(x,y) répond !oui en au plus p(n) steps!»
0
f(x) est satisfiable!
On rappelle que V=(Q,q0,qY,qN,), ', %)
On note '={21... 2a} et x=2 c(1) 2 c(2) …. 2 c(n)
L!’énoncé f(x) «!simule!» la recherche d!’un certificat y
tel que V(x,y) s!’arrête dans l!’état qY.
Notations: n=l(x) , T={0,…,p(n)} et Z={-p(n),…,p(n)+1}
Variables de f(x).
Q(t,e), t *T,e *Q: (état de l!’UC après le step t=e).
H(t,j), t *T,j *Z: (position de L/E après le step t=j).
S(t,j,k), t *T,j *Z,k *{1..a} (B[j]=2k après le step t).
Clauses de f(x).
6 groupes de clauses G1,…,G6
G1 : Existence et unicité de l!’état.
3t *T, {Q(t,0),Q(t,1),…..,Q(t,E)}
et 3(e,e!’),e$e!’,{¬Q(t,e), ¬Q(t,e!’))
G2 : Existence et unicité de la position de L/E
G3 : Existence et unicité de la lettre pointée sur
la bande par L/E
G4 : Etat initial.
Pour l!’UC : {Q(0,0)}
Pour L/E : {H(0,1)}
Pour la bande: {S(0,1,c(1))}, {S(0,2,c(2))},;….., {S(0,n,c(n))}.
G5 : Etat final.
Pour l!’UC: {Q(p(n),1)}
G5 : Transitions .
Notation (q,{q1,q2}): (q!’,c!’,d!’)=(q e!’, 2!k!’,d!’)= %(q,c).
Q(t,e)4H(t,j) 4S(t,j,k)5Q(t+1,e!’)
Q(t,e)4H(t,j) 4S(t,j,k)5H(t+1,j+d!’)
Q(t,e)4H(t,j) 4S(t,j,k)5S(t+1,j,k!’)
Chaque implication s!’écrit sous la forme d!’une clause:
Ex: la 1 ère:{¬ Q(t,e), ¬ H(t,j), ¬ S(t,j,k), Q(t+1,e!’)},
Si q*{q1,q2}, il faut «!figer!» l!’état, donc pour e*{1,2} :
Q(t,e)4H(t,j) 4S(t,j,k)5Q(t+1,e!)
Q(t,e)4H(t,j) 4S(t,j,k)5H(t+1,j )
Q(t,e)4H(t,j) 4S(t,j,k)5S(t+1,j,k )
Soit x *LY($).
Soit y un certificat tel que V(x,y) est réussi.
En donnant:
• la valeur «!vraie!» aux variables associées aux états
successifs de l’exécution de V(x,y),
• la valeur «!faux!» aux autres variables;
on définit une fonction de vérité sur les variables de f(x)
qui rend toutes les clauses de f(x) «!vraies!».
Réciproquement, si f(x) est satisfiable,
alors V(x,y) répond «!oui!»
pour le certificat y associé dans B[-p(n)..-1] aux
valeurs de vérité des variables S(0,j,k).
Il en résulte que la propriété
«!x *LY($) si et seulement si f(x) est satisfiable!»
est satisfaite.
Comme:
1) le nombre de variables de f(x) est majoré par un polynôme en n,
2) le nombre de clauses de f(x) est majoré par un polynôme en n,
La longueur de f(x) est majorée par un polynôme en n.
Il en résulte que SAT est NP-complet.
Quelques réductions
SAT /3-SAT
3-SAT est le sous-problème de SAT constitué des énoncés pour
lesquels chaque clause contient exactement 3 littéraux.
Réduction
I:énoncé de SAT
(N var., P clauses)
variable de I
clause à 1 littéral x
f(I): énoncé de 3-SAT
(N!’var., P!’clauses)
variable de f(I)
2 variables suppl. u et v
4 clauses: {x,u,v}, {x, ¬u,v}
{x,u, ¬v},{x ¬u, ¬v)}
clause à 2 littéraux:
{x,y}
1 variable suppl. w
2 clauses: {x,y,w}, {x, y, ¬w}
clause à 3 littéraux:
{x,y,z}
1 clause: {x,y,z}
clause à k(>3) littéraux
{z1,…………,zk}
k-3 variables suppl. u1,…,uk-3
k-2 clauses:
{z1,z2, ¬ u1}
{u1,z3, ¬ u2}
{u2,z4, ¬ u3}
……….
{uk-4,zk-2, ¬ uk-3}
{uk-3,zk-1,zk}
Supposons que I est satisfiable:
Toutes les clauses de type 1), 2) et 3) de f(I) sont vraies.
2 variables suppl. u et v
4 clauses: {x,u,v}, {x, ¬u,v}
{x,u, ¬v},{x ¬u, ¬v)}
clause à 1 littéral x
clause à 2 littéraux:
{x,y}
1 variable suppl. w
2 clauses: {x,y,w}, {x, y, ¬w}
clause à 3 littéraux:
{x,y,z}
1 clause: {x,y,z}
Considérons une clause c de type 4): {z1,…………,zk}
{z1,…………,zk}
{z1,z2, ¬ u1}
{u1,z3, ¬ u2}{u2,z4, ¬ u3}
…...{uj-2,zj, ¬ uj-1}……..
{uk-4,zk-2, ¬ uk-3} {uk-3,zk-1,zk}
Soit zj le 1er littéral vrai de {z1,…………,zk}
Si j*{1,2}, on pose: uj=«!vrai!» pour j=1,..,k-3
Si j*{k-1,k}, on pose: uj=«!faux!» pour j=1,..,k-3
Sinon, posons: ui=«!faux!» pour i=1..j-2
et ui=«!vrai!» pour i=j-1..k-3
Alors toutes les clauses de f(I) associées à la clause c de I sont vraies.
Il en résulte que f(I) est satisfiable.
Réciproquement, supposons que f(I) soit satisfiable.
Soit c une clause de type 1) ou 2) de I.
Il existe une clause de f(I) pour laquelle tous les littéraux
associés à des variables supplémentaires sont faux. Donc c est vraie.
Les clauses de type 3 sont trivialement vraies.
Considérons une clause c de type 4 : {z1,…………,zk}
et supposons qu!’elle soit «!fausse!»
Comme toutes les clauses associées à c sont vraies, on a:
{z1,z2, ¬ u1} {u1,z3, ¬ u2} vrai donc u2 faux
{uk-3,zk-1,zk} faux
vraie! donc ……………………………..
contradiction
{uk-4,zk-2, ¬ uk-3} vrai donc uk-3 faux
u1!!!faux!
Il en résulte que I est satisfiable.
Comme N’ et P’ sont majorés par des polynômes en N&P, la
réduction f est polynomiale.
3-SAT /VERTEX COVER
Le problème VC:
Donnée: un graphe non orienté G=(V,E) et un nombre k(1<k<n)
Question: existe t!’il un support de G d!’au plus k sommets?
I:énoncé de SAT
(N var.;P clauses)
variable b
f(I): énoncé de VC
arête
¬b
b
arêtes médianes
a
clause {a,b,c}
b
triangle
c
K=2P+N
Supposons que I soit satisfiable.
Chaque clause c de I contient au moins un littéral l(c) «!vrai!».
Considérons le sous-ensemble W de sommets de f(I) formé
1) des sommets-arêtes étiquetés par un littéral «!vrai!»
2) des 2 sommets du triangle T(c) non étiquetés par l(c)
On a Card(W)=2P+N.
W est aussi un support car:
Les arêtes associées aux variables sont couvertes:
¬b
b
Les arêtes médianes sont couvertes:
a
Les arêtes des triangles sont couvertes:
b
c
Réciproquement, supposons qu!’il existe un support W de f(I)
tel que Card(W)#2P+N.
Comme tout support de f(I) a au moins 2P+N sommets, on a
Card(W)=2P+N.
Comme il faut au moins 2 sommets pour «!couvrir!» chaque triangle
et au moins 1 sommet pour couvrir chaque arête associée à une
variable,
W contient exactement 2 sommets par triangle et 1 sommet par arête
associée à une variable.
Considérons la fonction de vérité définie par:
Pour toute arête de type :
¬b
b
b=«!vrai!» si le sommet-arête
étiqueté par b appartient à W
Soit c une clause ,
Soit z le sommet de T(c) non couvert par W,
Soit z’ l’autre extrémité de l!’arête médiane issue de z .
Soit b l’étiquette de z,
¬b
z’ b
a
b
z
c
Le sommet z’ appartient nécessairement au support W car
Le sommet z n!’appartient pas à W.
On a donc b= «!vrai!» et par conséquent la clause c est vraie.
I est donc satisfiable.
Une fonction longueur pour VC est lVC(G,k)=Card V.
Comme le nombre de sommets de f(I) est 3P+2N, la réduction f
est calculable polynomialement en l3-SAT(I)=N&P.
Il en résulte que 3-SAT /VC et que VC est NP-complet.
Sous-problèmes et complexité
Sous-problème de $.
Un sous-problème $!’ de $ est défini par un sous-ensemble des
énoncés de $ et la même question que celle de $.
Exemples: 2-SAT et 3-SAT sont 2 sous-problèmes de SAT
Un sous-problème est donc caractérisé par l!’ajout de
contraintes supplémentaires sur les paramètres génériques.
Exemple: Si un graphe G est un paramètre générique de $, on
obtient un sous-problème si l!’on impose que G est planaire ou
encore que G est biparti.
Complexité des sous-problèmes
Remarque: Un code raisonnable pour les énoncés de $ ne l!’est
pas forcément pour les sous-problèmes de $.
Exemple:
Supposons qu!’ un graphe G soit un paramètre de $.
G est codé avec O(n2) caractères.
Considérons le sous-problème de $ obtenu en imposant
à G d!’être un graphe complet.
G est alors codé avec O(log n) caractères.
Propriété 1:
Soit $*P. Si $!’ est un sous-problème de $ dont les énoncés
sont reconnaissables en temps polynomial, alors $!’*P.
Propriété 2:
Soit $!’ un sous-problème NP-complet de $.
S!’il existe un algorithme polynomial qui transforme un codage
raisonnable de $ en un codage raisonnable de $!’, alors
$ est NP-complet.
Exemple: 3-SAT NP-complet5SAT NP-complet
Frontière entre sous-problèmes faciles et difficiles de $.
On fait «!varier!» un paramètre de $, et l!’on s!’intéresse à la
complexité des sous-problèmes associés.
Exemple 1: Sous-problèmes de SAT obtenus en faisant varier le
nombre de littéraux par clause.
2-SAT est polynomial, 3-SAT est NP-complet.
Problème UET-SCHEDULING
Donnée: n tâches Ti de durée unitaire,
un graphe de précédence,
m machines identiques,
un nombre entier B.
Question: Existe t!’il un ordonnancement de durée au plus B?
Exemple 2: Sous-problèmes de UET-SCHEDULING obtenus
en faisant varier le nombre de machines.
m=2: polynomial, m=3: ouvert, m paramètre: NP-complet
Exemple 3: Sous-problèmes de UET-SCHEDULING obtenus
en faisant varier le graphe de précédence.
Arborescence: polynomial, graphe quelconque: NP-complet
Problèmes numériques
Considérons le problème PARTITION:
Un énoncé de PARTITION: (A,s) tel que s(A)=2B (parité)
L!’algorithme PRD suivant résout PARTITION.
PRD calcule les valeurs booléennes b(i,k) où b(i,k) est vrai
s!’il existe un sous-ensemble F de {a1,…,ai} tel que s(F)=k.
Initialisation: b(0,0):=«!vrai!»; b(0,k):=«!faux!» pour 1#k#B.
Pour i de 1 à n faire
Pour k de 0 à B faire
b(i,k)=b(i-1,k)8b(i-1,k-s(ai)).
Donc (A,s) est à réponse «!oui!» ssi b(n,B)=«!vrai!»
Pour tout énoncé I=(A,s) on a : +PRD(I)=O(nB)
Cet algorithme n!’est donc pas polynomial car B n!’est pas
polynomial en la longueur n&max{6log2(s(ai))7/i=1..n} de (A,s).
Remarque: Le sous-problème de PARTITION pour lequel
les entiers s(ai) sont majorés par une constante est polynomial.
Algorithme pseudo-polynomial résolvant $
Soit I un énoncé de $ de longueur l(I).
Notons M(I) le plus grand nombre de I.
A est un algorithme pseudo-polynomial résolvant $ si
•A résout $
•Pour tout énoncé I de $, on a +A(I)=O(p[l (I),M(I)])
où p est un polynôme à 2 variables.
Remarque:
Pour les problèmes $ tels que pour tout énoncé I,
on a M(I)#q(l(I)) où q est un polynôme, un algorithme
pseudo-polynomial est aussi polynomial.
Définition:
Un problème $ est dit numérique s!’il n!’existe pas de polynôme
p tel que pour tout énoncé I de $, on ait M(I)#p(l (I)).
Exemple et Contre-exemple:
PARTITION est un problème numérique résolu par l!’algorithme
pseudo-polynomial PRD.
CLIQUE n!’est pas un problème numérique.
Comme CLIQUE est NP-complet, il ne peut être résolu par
un algorithme pseudo-polynomial sauf si P=NP.
Problème NP-complet au sens fort
Notation:
Soit p un polynôme et soit $ un problème. On note $p le
sous-problème de $ constitué des énoncés I tels que M(I)#p(l(I)).
$p n!’est pas un problème numérique.
S!’il existe un algorithme pseudo-polynomial pour résoudre $p,
alors $p est polynomial.
Définition:
Le problème $ est NP-complet au sens fort s!’il existe un polynôme
p tel que $p est NP-complet.
Remarque:
Les problèmes non numériques NP-complets sont NP-complets
au sens fort. (CLIQUE, VERTEX COVER, SAT, 3-SAT,…)
Question:
Existe t!’il un problème numérique NP-complet au sens fort?
Réponse:
Le problème 3-PARTITION est NP-complet au sens fort.
3-PARTITION:
Donnée:
A={a1,……,a3n};
s:A!" telle que s(A)=nB et 3i*{1,..,n} B/4 < s(ai) < B/2
Question:
Peut-on réaliser une partition de A en n classes de même poids?
Si la réponse est «!oui!», chaque classe contient exactement 3
éléments de A et est de taille B.
Réduction pseudo-polynomiale
Pour montrer qu!’un problème est NP-complet au sens fort, on
peut utiliser la réduction pseudo-polynomiale dans NP notée /ps.
Définition de /ps
Etant donnés 2 problèmes $ et $!’ de NP, on définit $ /ps $!’ par:
1) il existe une réduction f de $ à $!’ calculable
polynomialement par rapport aux 2 variables M(I) et l(I).
2) Il existe un polynôme q1 tel que pour tout énoncé I de $ , on a
l(I)#q1(l!’(f(I)).
3) Il existe un polynôme q2 (de 2 variables) tel que pour tout énoncé
I de $ , on a M!’(f(I))#q2(l(I),M(I)).
Propriété:
Si $ est NP-complet au sens fort et si $ /ps $!’, alors $!’ est aussi
NP-complet au sens fort.
Preuve:
Soit $ NP-complet au sens fort.
Il existe donc un polynôme p tel que $p est NP-complet.
On montre alors l’existence d’un polynôme q tel que $p / $!’q.
Soient f, q1 et q2 la réduction et les 2 polynômes associés à la
relation $ /ps $!’ .
On peut supposer que:
1) q2 est à coefficients positifs;
2) p est à coefficients positifs.
On montre que si I est un énoncé de $p , alors
f(I) est un énoncé de $’q.
On a M!’(f(I))#q2(l(I),M(I))# q2(l(I),p(l(I))). (condition 3)
Comme q2 est à coefficients positifs et l(I)#q1(l!’(f(I) ) (condition 2) :
M!’(f(I))# q2(l(I),p(l(I)))# q2(q1(l!’(f(I)), p(q1(l!’(f(I))))=q(l!’(f(I) )
où q(x) est le polynôme q2(p(q1(x),q1(x)))
Il en résulte que f est une réduction de $p à $’q.
De plus, par la condition 1, on a pour tout I énoncé de $
l!’(f(I))#r(l(I),M(I)) où r est un polynôme (à 2 variables).
Il en résulte que l!’(f(I))#r(l(I),p(l(I)) )=s(l(I)) où
s(x)= r(x,p(x)) est un polynome à une variable x .
On a donc $p / $’q et $’ est NP-complet au sens fort.
Exemple:
Le problème d’ordonnancement sur une machine, noté
ONE_MACHINE_SCHED (OMS) est NP-complet au sens fort.
Le problème OMS:
une machine M;
n tâches Ti (durée pi, date de disponibilité ri, deadline di)
Question: Est!’il possible d!’exécuter les n tâches sur M?
On montre que 3-PARTITION /ps OMS
Enoncé de 3-PARTITION:
I=(A,s) où :
Card(A)=3n ;
s(A)=nB ;
3a*A, B/4<s(a)<B/2.
Enoncé f(I) de OMS:
3n tâches Ti:
(pi= s(ai), ri=0, di=nB+n-1)
n-1 tâches Dj:
(pj=1, rj= jB+j-1, dj= jB+j)
Supposons l!’énoncé (A,s) à réponse «!oui!».
Soit alors C1,..,Cn les sous-ensembles de 3 tâches Ti associées
aux n classes de A de poids B.
L!’ordonnancement de f(I) suivant est réalisable:
C1
0
D1
C2
D2
B B+1
2B+1 2B+2
Dn-1
Cn
nB+n-1
Réciproquement, supposons qu!’il existe un ordonnancement de
l!’énoncé f(I) de OMS.
Les n-1 tâches Dj sont bloquées dans les intervalles [jB+j-1,jB+j].
L!’espace libre restant de l!’intervalle [0, nB+n-1] est juste suffisant
pour les autres tâches Ti.
On peut donc partitionner A en n classes de poids B.
f est donc une réduction de 3-PARTITION à OMS.
Pour un énoncé I=(A,s) de 3-PARTITION on a:
l(I)=n&6log2(B)7 et M(I)= max{ (s(ai)/i=1..3n}.
Pour un énoncé J=(n,r,p,d) de OMS on a:
l!’(J)=n&max{6log2(di)7/i=1..n}
M!’(J)= max{di/i=1..n}.
Pour l!’énoncé f(I) de OMS, on a donc:
l!’(f(I)) = (4n-1)&6log2(nB+n-1)7
M!’(f(I))=nB+n-1.
On a les inégalités suivantes (pour des cstes positives a, b, c;
n%n0 (cste >0) et B%B0 (cste >0) :
l!’(f(I)) # 4n &6log2(2nB)7 # an2+bn&6log2(B)7 # c(n&6log2(B)7 )2
l(I)# (4n-1)&6log2(nB+n-1)7
M!’(f(I))=nB+n-1# nM(I) # l(I)M(I)
Il en résulte que:
l!’(f(I)) est majorée par un polynôme en l(I) et M(I) (condition 1).
l(I) est majorée par un polynôme en l!’(f(I)) (condition 2).
M!’(f(I)) est majoré par un polynôme en l(I) et M(I) (condition 3).
On a donc: 3-PARTITION /ps OMS.
OMS est donc NP-complet au sens fort.
Problèmes NP-difficiles
Problème de recherche $:
A chaque énoncé I correspond un ensemble (éventuellement
vide) de solutions noté S(I).
Un algorithme A résout le problème $ si pour tout énoncé I, il fournit
une solution de S(I) si S(I)$9 ou écrit «!pas de solution!» si S(I)= 9.
Remarques:
Les problèmes de décision sont des problèmes de recherche:
(2 solutions {oui,non}; S(I)=«!oui!» si I*Y$ , sinon S(I)=«!non!».
Les problèmes d!’optimisation sont des problèmes de recherche:
S(I) est l!’ensemble des solutions optimales de l!’énoncé I.
Réduction de Turing
La réduction de Turing notée /T étend aux problèmes de recherche
la réduction polynomiale dans NP.
Définition:
Soient $1 et $2 deux problèmes de recherche. On dit que $1 /T $2
si l’existence d!’un algorithme résolvant $2 en un step
(quelque soit l!’énoncé de $2) implique que $1 est polynomial.
Remarque: Si $1 et $2 sont 2 problèmes de NP on a:
$1 / $2 5 $1 /T $2
Exemple:
Soit TSP le problème du voyageur de commerce (énoncé formé
d!’une matrice D des distances entre n villes et d!’un nombre B).
Soit TSPc le problème de décision complémentaire,
Soit TSP_OPT le problème d!’optimisation associé (énoncé: D)
Remarque: On ne sait pas si TSPc est dans NP.
Propriété: TSP /T TSPc et TSP /T TSP_OPT
Soit I un énoncé de TSP, et soit : un algorithme virtuel 1-pas
pour TSPc. Si la réponse : (I) est «!oui!» (resp. «!non!»), alors I
est à réponse «!non!» (resp; «!oui!»).
Soit I=(D,B) un énoncé de TSP, et soit ( un algorithme virtuel
1-pas pour TSP_OPT. Soit s le tour retourné par ((I). Si d(s)#B
(resp >B) alors I est à réponse «!oui!» (resp. «!non!»).
Problème NP-difficile:
Un problème de recherche $ est NP-difficile s!’il est plus difficile
au sens de la réduction de Turing qu!’un problème NP-complet .
$ est NP-difficile s’il existe $’ NP-complet tel que $’ /T $
Exemple: les problèmes TSPc et TSP_OPT sont NP-difficiles.
D!’une manière générale, le problème d!’optimisation associé à
un problème de décision NP-complet est NP-difficile.
La réciproque est généralement vraie:
Un problème de décision est plus difficile au sens de la réduction
de Turing que le problème d!’optimisation associé.
Exemple: TSP_OPT /T TSP
On introduit un problème de décision intermédiaire TSP_INT:
Donnée: (D,B) et L: liste de sommets distincts.
Question: Existe t!’il un tour s=(L,R) de coût au plus B?
On a: TSP_INT /T TSP.
En effet, TSP est NP-complet et TSP_INT est dans NP.
Montrons que l!’on a TSP_OPT /T TSP_INT
Notons : l!’algorithme virtuel 1-pas qui résout TSP_INT .
On considère alors l!’algorithme suivant de complexité
polynomiale en l(I) qui permet de calculer le coût minimal
d!’un tour :
Dichotomie sur la valeur du tour optimal
Soit C le coût d!’un tour;
l:=0; u:=C;
Tantque u-l>0 faire
k:=61/2(u+l)7;
Si :(D,k,< >)=« oui!!» alors u:=k
sinon l:=k+1;
FinTantque;
C*:=k.
6log2(C)7 appels à l!’algorithme 1-pas :.
On utilise ensuite l!’algorithme de complexité polynomiale en
l(I) suivant qui permet de construire un tour de coût minimal.
L:=(1); R:=(2,..,n);
Pour k de 2 à n-1 faire
r:=PREMIER(R);
Tantque :(D,C*,(L,r) ) =« non!» faire
r:= SUIVANT(r,R);
FinTantque;
L:=(L,r);
R:=SUPPRIMER(r,R);
FinPour.
La liste L retournée par cet algorithme est un tour de coût
minimal. En effet, l!’invariant suivant est vrai:
A la fin de l!’itération k de la boucle Pour, il existe un tour
de coût C* préfixé par L.
De plus l!’algorithme est en O(n2) puisque le nombre de
passages dans la boucle Tantque est au plus n.
Il en résulte que : TSP_OPT /T TSP_INT

Documents pareils