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

Complexité des Problèmes
Combinatoires
Module IAD/RP/RO/Complexité
Philippe Chrétienne
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.
Quelques réductions.
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 !
Sous-ensemble des énoncés à réponse « oui »: Y!,
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).
Ensemble des énoncés D!,
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)).
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"»
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)
Exemple de problème polynomial:
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.
PARTITION_BORNEE appartient donc à la classe P.
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.
Une fonction taille pour PARTITION_BORNEE :
l PARTITION_BORNEE(A,s) = n(log2(B)
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).
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.
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.
Remarques :
- le nombre de certificats de I est donc 2n (exponentiel) ,
- la longueur d’un certificat est polynomiale en n.
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.
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.
Propriétés de NP
•P$NP
À (),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) :
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).
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 !.
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
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"»
Application f calculable polynomialement telle que:
f: D(!1)" D(!2)
I &Y (!1) - f(I) &Y (!2)
Notation: !1 , !2
Soient !1 et !2 deux problèmes de NP.
Réduction polynomiale de !1 sur !2 :
Propriétés de , dans NP
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?
La relation ,est réflexive et transitive.
SAT est NP-complet
C"’est le théorème de COOK (1971)
N variables logiques xj, j=1,..N.
P clauses Cp, p=1..P, sur les variables
Fonction longueur pour SAT: lSAT(V,C)=P.N
SAT
Question: Existe t"’il une fonction de vérité sur les variables telle
que toutes les clauses soient vraies?
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éri sur les variables
si au moins un de ses littéraux est vrai.
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"», "
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)
f(I): énoncé de 3-SAT
(N"’var., P"’clauses)
variable de I variable de f(I)
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)}
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
{u1,z3, ¬ u2}
{u2,z4, ¬ u3}
……….
{uk-4,zk-2, ¬ uk-3}
{z1,z2, ¬ u1}
{uk-3,zk-1,zk}
k-2 clauses:
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}
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)}
Considérons une clause c de type 4): {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.
{z1,…………,zk}{u1,z3, ¬ u2}{u2,z4, ¬ u3}
…...{uj-2,zj, ¬ uj-1}……..
{uk-4,zk-2, ¬ uk-3}
{z1,z2, ¬ u1}
{uk-3,zk-1,zk}
Soit zj le 1er littéral vrai de {z1,…………,zk}
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !