Complexité des Problèmes Combinatoires Plan du cours Problèmes

publicité
Plan du cours
Complexité des Problèmes
Combinatoires
Module IAD/RP/RO/Complexité
Philippe Chrétienne
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?
•
•
•
•
•
•
•
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.
Quelques réductions.
Problème !
Notations
Ensemble des énoncés D!,
Sous-ensemble des énoncés à réponse « oui »: Y!,
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?
Les énoncés sont codés par des mots sur un alphabet !
La fonction codage c : D! "!* doit être « raisonnable » :
a) les nombres sont codés en base plus grande que 1 ;
b) c est injectif.
La longueur de c(I) est notée Lc(I).
Exemple de problème polynomial:
La classe P
Définition :
Un problème de décision appartient à la classe P s’il est
résolu par un algorithme de complexité O(q(n)) où :
a) n est la taille de l’énoncé ;
b) q est un polynôme.
Remarque :
la fonction taille l! : D! " N d’un problème !
est une fonction polynomialement liée à la fonction longueur Lc
d’un codage raisonnable c des énoncés de ! :
Il doit donc exister 2 polynômes q1 et q2 tels que :
%I & D! , l! (I) ! q1(Lc(I)) et Lc(I) ! q2(l! (I)).
Une fonction taille pour PARTITION_BORNEE :
l PARTITION_BORNEE(A,s) = n(log2(B)
Considérons le problème PARTITION_BORNEE:
Un énoncé de PARTITION_BORNEE :
(A,s) tel que s(A)=2B (parité)
Hypothèse : % i&{1,..,n} s(ai) ! M (cste)
L"’algorithme suivant résout PARTITION_BORNEE.
Il 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.
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)'b(i-1,k-s(ai)).
(A,s) est à réponse «"oui"» ssi b(n,B)=«"vrai"»
La classe NP
Complexité :
Si b est un tableau de booléens à n+1 colonnes et
B+1 lignes, la complexité de l’algorithme est O(nB).
Comme B ! nM/2, cet algorithme est polynomial.
Considérons le problème CLIQUE
PARTITION_BORNEE appartient donc à la classe P.
Remarques :
- le nombre de certificats de I est donc 2n (exponentiel) ,
- la longueur d’un certificat est polynomiale en n.
L’algorithme précédent résout aussi le problème PARTITION
mais n’est pas de complexité polynomiale pour PARTITION
car on ne peut majorer B par un polynôme en n(log2(B).
Remarque :
Pour beaucoup de problèmes, la question de l’appartenance à P
est encore ouverte.
C’est par exemple le cas de PARTITION, CLIQUE et SAT.
Soit I=(G,k) un énoncé de CLIQUE.
Appelons «"certificat"» de I un sous-ensemble de sommets de G.
Considérons un « algorithme de vérification » V
1) dont une donnée est constituée 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 les propriétés P1 et P2 suivantes :
Propriété P1 :
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)
Propriété P2 :
V est de complexité polynomiale en n
L’existence :
- de certificats de longueur polynomiale en n ;
- d’un algorithme de vérification possédant les
propriétés P1 et P2 ;
définit l’appartenance de CLIQUE à la classe NP.
Propriétés de NP
•P$NP
On peut utiliser l"’algorithme polynomial A qui résout !
comme algorithme de vérification V et un ensemble vide
de certificats pour chaque énoncé.
•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) où :
1. L(c) est la longueur de c ;
2. +V(I,c) est le nombre d’opérations exécutées par V pour la
donnée (I,c).
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 .
Le couple (),V) est appelé « algorithme non déterministe
polynomial » résolvant !.
(N signifie non déterministe, P signifie polynomial)
Autres exemples :
Les problèmes PARTITION et SAT sont aussi dans NP.
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) premières
opérations de V.
Fonction A(V,I) % I donnée de !, V algorithme de vérification%
Tantque # certificats examinés ! G(n) faire
Choisir un nouveau certificat c de I ;
Exécuter V(I,c) jusqu’au 1er événement E1 ou E2 :
( E1 : V répond «"oui"» ; E2 : # opérations exécutées par V > 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.
Propriétés de , dans NP
La relation ,est réflexive et transitive.
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"»
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.
Réduction polynomiale de !1 sur !2 :
Question : Existe t"’il une classe de problèmes de NP
plus difficiles que tous les autres?
Application f calculable polynomialement telle que:
f: D(!1)" D(!2)
I &Y (!1) - f(I) &Y (!2)
Définition : Un problème !* est dit NP-complet si
pour tout ! &NP, ! , !*
Notation: !1 , !2
Question équivalente : Existe t"’il un problème NP-complet?
Un énoncé de SAT:
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
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"», "
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)}
Supposons que I est satisfiable:
Toutes les clauses de type 1), 2) et 3) de f(I) sont vraies.
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}
{u1,z3, ¬ u2}
{u2,z4, ¬ u3}
……….
{uk-4,zk-2, ¬ uk-3}
{uk-3,zk-1,zk}
Considérons une clause c de type 4): {z1,…………,zk}
{z1,…………,zk}
clause à 1 littéral x
2 variables suppl. u et v
4 clauses: {x,u,v}, {x, ¬u,v}
{x,u, ¬v},{x ¬u, ¬v)}
k-3 variables suppl. u1,…,uk-3
k-2 clauses:
{z1,z2, ¬ u1}
clause à k(>3) littéraux
{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
clause à 2 littéraux:
{x,y}
1 variable suppl. w
2 clauses: {x,y,w}, {x, y, ¬w}
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
clause à 3 littéraux:
{x,y,z}
1 clause: {x,y,z}
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.
3-SAT ,VERTEX COVER
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"»
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)
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
{u
,z
,
¬
u
}
vrai
donc
u
faux
u1"""faux"
k-4 k-2
k-3
k-3
variable b
arête
¬b
b
arêtes médianes
a
clause {a,b,c}
Il en résulte que I est satisfiable.
f(I): énoncé de VC
Comme N’ et P’ sont majorés par des polynômes en N.P, la
réduction f est polynomiale.
triangle
b
c
K=2P+N
Supposons que I soit satisfiable.
Chaque clause c de I contient au moins un littéral l(c) «"vrai"».
Réciproquement, supposons qu"’il existe un support W de f(I)
tel que Card(W)!2P+N.
Considérons le sous-ensemble W de sommets de f(I) formé
Comme tout support de f(I) a au moins 2P+N sommets, on a
Card(W)=2P+N.
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.
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 est aussi un support car:
Les arêtes associées aux variables sont couvertes:
¬b
b
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:
Les arêtes médianes sont couvertes:
a
b
Les arêtes des triangles sont couvertes:
c
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,
Problèmes NP-difficiles
Problème de recherche !:
A chaque énoncé I correspond un ensemble (éventuellement
vide) de solutions noté S(I).
¬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.
Réduction de Turing
La réduction de Turing notée ,T étend aux problèmes de recherche
la réduction polynomiale dans NP.
Un algorithme A résout le problème ! si pour tout énoncé I, il fournit
une solution de S(I) si S(I)$/ ou écrit «"pas de solution"» si S(I)= /.
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.
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.
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.
Propriété: TSP ,T TSPc et TSP ,T TSP_OPT
Remarque: Si !1 et !2 sont 2 problèmes de NP on a:
!1 , !2 2 !1 ,T !2
Soit I=(D,B) un énoncé de TSP, et soit 1 un algorithme virtuel
1-pas pour TSP_OPT. Soit s le tour retourné par 1(I). Si d(s)!B
(resp >B) alors I est à réponse «"oui"» (resp. «"non"»).
Soit I un énoncé de TSP, et soit 0 un algorithme virtuel 1-pas
pour TSPc. Si la réponse 0 (I) est «"oui"» (resp. «"non"»), alors I
est à réponse «"non"» (resp; «"oui"»).
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é.
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:=31/2(u+l)4;
Si 0(D,k,< >)=« oui""» alors u:=k
sinon l:=k+1;
FinTantque;
C*:=k.
3log2(C)4 appels à l"’algorithme 1-pas 0.
On utilise ensuite l"’algorithme de complexité polynomiale en
l(I) suivant qui permet de construire un tour de coût minimal.
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 0 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 :
L:=(1); R:=(2,..,n);
Pour k de 2 à n-1 faire
r:=PREMIER(R);
Tantque 0(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
Téléchargement