Algorithmes et Complexite desProblemes de Satisfaction de Contraintes
(cours no 1)
Nicolas (Miki) HermannManuel Bodirsky
LIX, Ecole Polytechnique
Miki Hermann Algorithmes et complexite des csp (1) 1 / 30
Notes de cours
Les transparents seront disponibles sur la page web
http://www.lix.polytechnique.fr/~hermann/teaching.html
en format PDF.
Il suffit de chercher Miki Hermann sous Google, puis aller sur ma pageweb et cliquer sur le lien teaching.
Si vous avez des questions plus tard, envoyez-moi un corrier electroniqueavec la mention [mpri] au debut du sujet du message.
Miki Hermann Algorithmes et complexite des csp (1) 2 / 30
Bibliographie
E. Bohler, N. Creignou, S. Reith, and H. Vollmer.Playing with Boolean blocks, part I : Post’s lattice with applicationsto complexity theory.SIGACT News, Complexity Theory Column 42, 34(4) :38–52, 2003.
E. Bohler, N. Creignou, S. Reith, and H. Vollmer.Playing with Boolean blocks, part II : Constraint satisfactionproblems.SIGACT News, Complexity Theory Column 43, 35(1) :22–35, 2004.
N. Pippenger.Theories of Computability.Cambridge University Press, Cambridge, 1997.
T. J. Schaefer.The complexity of satisfiability problems.In Proceedings 10th Symposium on Theory of Computing(STOC’78), San Diego (California, USA), pages 216–226, 1978.
Miki Hermann Algorithmes et complexite des csp (1) 3 / 30
Prerequis
construction et analyse d’algorithmes,
complexite des problemes de decision, P, NP, coNP, . . .
Miki Hermann Algorithmes et complexite des csp (1) 4 / 30
Motivation
Rationale
Beaucoup de problemes algorithmique de decision peuvent etre(re)formules en tant que problemes de satisfaction de contraintes (csp).Il est donc preferable et souhaitable de developper et utiliser une theorieuniforme des csp pour pouvoir dire immediatement si l’instanceparticuliere d’un probleme algorithmique donne est facile (polynomiale)ou difficile (NP-complet) a resoudre.
Exemple
Le probleme d’affectation de frequences peut etre presente commek-coloriage.
La correction d’un processeur (Intel ou AMD) est systematiquementpresente en forme d’un probleme de satisfaction d’une formulepropositionnelle en forme normale conjonctive (1000 clauses et 350variables).
C’est l’un des approches serieux pour resoudre la question P 6= NP.
Miki Hermann Algorithmes et complexite des csp (1) 5 / 30
But de ce cours
Vous presenter cette theorie.
Vous apprendre vous en servir.
Vous motiver de faire la recherche dans ce domaine.
Miki Hermann Algorithmes et complexite des csp (1) 6 / 30
Domaines et Relations
Definition
Un domaine est un ensemble fini D d’elements, d’habitudeD = {0, . . . , n − 1}.
Cardinalite du domaine est note par |D| = n.
Une relation R d’arite ar(R) = k sur D est un sous-ensemble R ⊆ Dk.
Attention
Ne pas confondre cardinalite du domain D et arite de la relation R !
Miki Hermann Algorithmes et complexite des csp (1) 7 / 30
Contrainte et Satisfaction
Definition
Une contrainte est une application R(~x) de la relation R (d’arite k) surun vecteur de variables ~x = (x1, . . . , xk).
Attention
Une relation R peut donner lieu a plusieurs contraintes :
R(x, y) et R(y, x) sont des contraintes differentes
Miki Hermann Algorithmes et complexite des csp (1) 8 / 30
Contrainte et Satisfaction
Definition
Une valuation est une function I : V → D qui instancie chaque variablex ∈ V par une valeur du domaine I(x) ∈ D.
Une valuation I satisfait la contrainte R(x1, . . . , xk) si(I(x1), . . . , I(xk)) ∈ R, note par I |= R(x1, . . . , xk).
Un modele m de la contrainte R(x1, . . . , xk) est une valuation m quisatisfait R(x1, . . . , xk).
Convention
Si le vecteur de variables ~x = (x1, . . . , xk) est fixe, on associe unmodele m avec le vecteur m = (m[1], . . . ,m[k]), tel que m(xi) = m[i]pour chaque i.
Miki Hermann Algorithmes et complexite des csp (1) 9 / 30
Exemple de contraintes
Egalite et inegalite
Domaine D = {0, . . . , n − 1} :
eq = {00, 11, . . . , (n − 1)(n − 1)}
neq = D2r eq
Vecteur 33 satisfait eq(x, y), mais pas neq(x, y).
Un-parmi-trois et pas-tous-egaux
Domaine D = {0, 1} :
nae = D3r {000, 111}
1-in-3 = {100, 010, 001}
Vecteur 101 satisfait nae(x, y, z) mais pas 1-in-3(x, y, z).
Miki Hermann Algorithmes et complexite des csp (1) 10 / 30
Exercice
Exercice 1
Construisez la relation adn (all different), dont l’arite est egale a lacardinalite du domaine et qui satisfait pour chaque vecteur m ∈ adn lacondition
∀i∀j i 6= j implique m[i] 6= m[j]
pour les domaines suivants :
1 D = {0, 1},
2 D = {0, 1, 2},
3 D = {0, 1, 2, 3, 4},
4 D = {0, . . . , p − 1}, p premier.
A quoi ressemble la contrainte adn(x1, . . . , xn) ?
Miki Hermann Algorithmes et complexite des csp (1) 11 / 30
Probleme de Satisfaction de Contraintes
Probleme csp
Entree: Un domaine fini D, un ensemble de variables V et un ensemblefini de contraintes C = {R1(~x1), . . . , Rp(~xp)} sur D et V .
Question: L’ensemble de contraintes C est-il satisfaisable, c.-a-d.existe-t-il une valuation m : V → D qui satisfait toutes les contraintesRj(~xj) ∈ C ?
Miki Hermann Algorithmes et complexite des csp (1) 12 / 30
3-coloriage comme contrainte
Probleme 3col
Entree: Un graphe G = (V,E) avec les sommets V et les aretes E.
Question: Existe-t-il une fonction f : V → {0, 1, 2} telle que f(x) 6= f(y)si (x, y) ∈ E ?
Explication
Domaine D = {0, 1, 2}.
Relation 3col = D2r {00, 11, 22} = {01, 02, 10, 12, 20, 21}
Pour chaque arete (x, y) ∈ E l’ensemble C contient la contrainte3col(x, y) : C = {3col(x, y) | (x, y) ∈ E}.
Le probleme csp(D,V,C) est satisfaisable si et seulement si on peut3-colorier le graphe G.
Miki Hermann Algorithmes et complexite des csp (1) 13 / 30
Exemple de 3-coloriage
Le graphe G suivant est-il 3-coloriable ?
1 2
3 4
csp correspondant
Domaine D = {r, g, b}
V = {x1, x2, x3, x4}
C = {3col(x1, x2), 3col(x1, x3), 3col(x2, x3), 3col(x2, x4), 3col(x3, x4)}
Miki Hermann Algorithmes et complexite des csp (1) 14 / 30
Exemple de 3-coloriage
Solution
OUI
Le graphe G suivant est 3-coloriable
1 2
3 4
Explication
Le modele m = (r, g, b, r) pour le vecteur ~x = (x1, x2, x3, x4) satisfaitl’ensemble de contraintes
C = {3col(x1, x2), 3col(x1, x3), 3col(x2, x3), 3col(x2, x4), 3col(x3, x4)}
Miki Hermann Algorithmes et complexite des csp (1) 15 / 30
Parametrisation des csp
Domaine D est fixee
On dispose d’un ensemble infinit et denombrable de variables V
Classe de problemes parametree par un ensemble de relations S
Probleme csp(S)
Entree: Un ensemble fini de contraintes C = {R1(~x1), . . . , Rp(~xp)}sur D et V , ou Rj ∈ S pour chaque j.
Question: L’ensemble de contraintes C est-il satisfaisable, c.-a-d.existe-t-il une valuation m : V → D qui satisfait toutes les contraintesRj(xj) ∈ C ?
But
Classifier la complexite des csp(S) selon les ensembles de relations S
Miki Hermann Algorithmes et complexite des csp (1) 16 / 30
Complexite des csp
Theorem (Appartenance a NP)
csp(S) appartient a la classe de complexite NP pour chaque ensemble derelations S.
Demonstration.
Pour un domaine D et un ensemble de variables V utilisees dans lescontraintes du probleme il y a |D|
|V |(un nombre fini) valuations
possibles. Ayant choisi une valuation au hasard, nous pouvons verifier sielle satisfait toutes les contraintes de l’ensemble C en tempspolynomial.
Miki Hermann Algorithmes et complexite des csp (1) 17 / 30
Complexite des csp . . .
Theoreme de Ladner
Selon le choix de l’ensemble de relations S, csp(S) peut etre
NP-complet
polynomial, i.e., dans P
flottant, ni NP-complet, ni dans P, a condition que P 6= NP
3col vs 2col
csp(3col) est NP-complet.
Par contre, csp(2col) pour le domaine D = {r, b} et la relation2col = {rb, br} est polynomial. On va voir la preuve pour cette derniereplus tard.
Miki Hermann Algorithmes et complexite des csp (1) 18 / 30
csp booleens
Convention
A partir de maintenant (pour ce cours), le domaine est toujours ledomaine booleen D = {0, 1}.
Avantage
Il existe une correspondance entre les ensembles de contraintes, construitssur les relations R ∈ S et les formules ϕ en forme normale conjonctive.Nous pouvons donc caracteriser les relations booleennes par des formules.Nous pouvons aussi caracteriser les formules par des relations booleennes.
Miki Hermann Algorithmes et complexite des csp (1) 19 / 30
Formules en cnf et dnf
cnf (conjunctive normal form) = forme normale conjonctive
Un litteral est une variable x ou sa negation ¬x.Une clause est une disjonction de litteraux.Une formule en cnf est conjonction de clauses.
dnf (disjunctive normal form) = forme normale disjonctive
Un terme est une conjonction de litteraux.Une formule en dnf est une disjonction de termes.
Miki Hermann Algorithmes et complexite des csp (1) 20 / 30
Satisfaisabilite de formules en cnf
Probleme sat
Entree: Un ensemble de variables V et une formule ϕ en cnf sur V .
Question: La formule ϕ est-elle satisfaisable, c.-a-d. existe-t-il unevaluation I : V → {0, 1} qui evalue la formule ϕ a 1 ?
Theorem (Cook 1970)
Le probleme de decision sat est NP-complet.
Question
Y-a-t-il un moyen de reformuler sat en csp ?
Miki Hermann Algorithmes et complexite des csp (1) 21 / 30
sat comme csp
Pour sat c’est difficile, car nous avons besoin d’un ensemble infini derelations S. Mais il existe un autre probleme plus adapte.
Probleme 3sat
Entree: Un ensemble de variables V et une formule ϕ en CNF sur V avecau plus trois litteraux par clause.
Question: La formule ϕ est-elle satisfaisable ?
Theorem (Cook 1970)
Le probleme de decision 3sat est NP-complet.
Miki Hermann Algorithmes et complexite des csp (1) 22 / 30
De sat au 3sat
3sat est NP-complet
3sat appartient a la classe NP. La reduction de sata 3sat est basee surla possibilite de raccourcir une clause en la transformant en conjonctionde nouvelles clauses plus courtes.
Principe divide et impera
La clause (l1 ∨ l2 ∨ c) est logiquement equivalente a la conjonction declauses (l1 ∨ l2 ∨ x) ∧ (¬x ∨ c), ou x est une nouvelle variable.Formellement
l1 ∨ l2 ∨ c = ∃x (l1 ∨ l2 ∨ x) ∧ (¬x ∨ c)
Autrement dit . . .
La clause (l1 ∨ l2 ∨ c) est satisfaisable si et seulement si la formule∃x (l1 ∨ l2 ∨ x) ∧ (¬x ∨ c) est satisfaisable.
Miki Hermann Algorithmes et complexite des csp (1) 23 / 30
Des formules aux relations
Convention
Pour chaque formule ϕ nous allons noter [ϕ] l’ensemble de ses modeles.
Formules et relations booleennes correspondantes
Formule ϕ Relation [ϕ]¬x {0}
x ∨ y {01, 10, 11}x ∧ y {11}
x → y = ¬x ∨ y {00, 01, 11}x ≡ y = (¬x ∨ y) ∧ (x ∨ ¬y) {00, 11} = eq2
x 6≡ y = (x ∨ y) ∧ (¬x ∨ ¬y) {01, 10} = neq2
x ∨ y ∨ z {001, 010, 011, 100, 101, 110, 111}
Miki Hermann Algorithmes et complexite des csp (1) 24 / 30
3sat comme csp
Types de clauses de 3 variables
(x ∨ y ∨ z), (x ∨ y ∨ ¬z), (x ∨ ¬y ∨ ¬z), (¬x ∨ ¬y ∨ ¬z)
Relations correspondantes
[x ∨ y ∨ z] = {0, 1}3r {000} = or0
[x ∨ y ∨ ¬z] = {0, 1}3r {001} = or1
[x ∨ ¬y ∨ ¬z] = {0, 1}3r {011} = or2
[¬x ∨ ¬y ∨ ¬z] = {0, 1}3r {111} = or3
Contraintes correspondantes
or0(x, y, z) = (x ∨ y ∨ z), or1(x, y, z) = (x ∨ y ∨ ¬z),or2(x, y, z) = (x ∨ ¬y ∨ ¬z), or3(x, y, z) = (¬x ∨ ¬y ∨ ¬z).
Miki Hermann Algorithmes et complexite des csp (1) 25 / 30
3sat comme csp . . .
Quide des clauses de deux litteraux ?
Clauses de deux litteraux par identification de variables
(x ∨ y) = (x ∨ y ∨ y) = or0(x, y, y)(x ∨ ¬y) = (x ∨ ¬y ∨ ¬y) = or2(x, y, y)
= (x ∨ x ∨ ¬y) = or1(x, x, y)(¬x ∨ ¬y) = (¬x ∨ ¬y ∨ ¬y) = or3(x, y, y)
Clauses d’un litteral par identification de variables
x = (x ∨ x ∨ x) = or0(x, x, x)¬x = (¬x ∨ ¬x ∨ ¬x) = or3(x, x, x)
Miki Hermann Algorithmes et complexite des csp (1) 26 / 30
3sat comme csp . . .
Comment fabriquer les autres clause de 3 litteraux ? Facilement !
Permutation de variables
(x ∨ ¬y ∨ z) = or1(x, z, y)
(¬x ∨ y ∨ z) = or1(y, z, x)
(¬x ∨ y ∨ ¬z) = or2(y, x, z)
(¬x ∨ ¬y ∨ z) = or2(z, x, y)
Conclusion pour 3sat
3sat est egal a csp(or0, or1, or2, or3), i.e., csp(or0, or1, or2, or3) estNP-complet.
Miki Hermann Algorithmes et complexite des csp (1) 27 / 30
Exercice 2
Question
Est-il necessaire d’utiliser les quatre relations or0, or1, or2 et or3 ?
Precision
Nous n’allons pas tres loin avec une seule relation, mais est-t-il possiblede faire pareil avec deux relations ?
Vrai ou faux ?
1 3sat = csp(or0, or1)
2 3sat = csp(or0, or3)
3 3sat = csp(or2, or3)
4 3sat = csp(or1, or2)
Miki Hermann Algorithmes et complexite des csp (1) 28 / 30
Solution de l’Exercice 2
Solution
1 3Sat = csp(or0, or1) FAUX
2 3Sat = csp(or0, or3) VRAI
3 3Sat = csp(or2, or3) FAUX
4 3Sat = csp(or1, or2) VRAI
Information importante
Ce cours presentera la theorie qui nous permettera de decider facilementces questions.
Miki Hermann Algorithmes et complexite des csp (1) 29 / 30