MPRO - Examen de PPC 2012/2013 Florent Madelaine, David Savourey 22 mars 2012 L examen dure 2 heures, les notes manuscrites sont autorisées, les copies des cours également. Les livres sont interdits. Les exercices sont indépendants. La clarté de vos réponses sera prise en compte dans la notation. 1 Contrainte de cardinalité On se propose d étudier la contrainte globale de cardinalité. Celle-ci se définit de la manière suivante : soient un ensemble de variables X = {x 1, x 2,..., x p } et un ensemble de valeurs V = {v 1, v 2,..., v d }. On suppose que les domaines sont inclus dans V, i.e. i [1, p] D i V. On appelera tuple tout élément t inclus dans le produit cartésien des domaines D 1 D 2... D p. On notera #(a, t) le nombre d occurrences de la valeur a dans le tuple t. Pour chaque valeur v i V, on dispose de deux entiers l i et c i. Un tuple t = (t 1, t 2,..., t p ) satifait la contrainte de cardinalité ssi : i [1, p], t i D i ; v i V, l i #(v i, t) c i. Question 1.1. La contrainte globale all-diff est-elle un cas particulier de la contrainte de cardinalité? Justifiez votre réponse. Soit le problème suivant : On doit établir un calendrier journalier de chaque ouvrier dans une usine, sur une période de k jours consécutifs. n ouvriers travaillent dans cette usine. Il y a m types de tâches différentes dans cette usine. Chaque jour, un employé est assigné à une tâche unique. On impose que pour chaque jour t, pour chaque type de tâche j, il faut au minimum l jt personnes et au maximum u jt personnes. Par ailleurs, chaque employé i doit avoir effectué au minimum b ij 1
fois la tâche j, et h ij fois au maximum sur la période de temps couverte par le calendrier. Question 1.2. Proposez un modèle PPC pour ce problème, utilisant la contrainte de cardinalité. On s intéresse à l établissement de l arc-consistance généralisée de la contrainte de cardinalité. Pour rappel, on appelle arc-consistance généralisée l extension de l arcconsistance dans le cas où la contrainte est n-aire. On dit qu une contrainte n- aire portant les variables x 1, x 2,..., x n est arc-consistante ssi i [1, n], v i D i, j [1, n], j i, v j D j tels que le tuple (x 1 = v 1, x 2 = v 2,..., x n = v n ) satisfait la contrainte. À une contrainte de cardinalité C, on associe le réseau V N(C) suivant : deux sommets s et t ; un sommet par valeur v V ; un sommet par variable x X ; un arc entre s et chaque sommet v i (en rouge) un arc entre v i et x j ssi v i D j (en vert) un arc entre chaque sommet x j et t (en bleu) un arc entre t et s (en gris) 2
On cherche à calculer un flot maximal sur l arc (t, s). Pour cela, on associe à chaque arc une capacité minimale et une capacité maximale. Ces capacités sont toutes entières. Voici leurs valeurs : capacité minimale d un arc (s, v i ) : l i capacité maximale d un arc (s, v i ) : c i capacité minimale d un arc (v i, x j ) : 0 capacité maximale d un arc (v i, x j ) : 1 capacité minimale d un arc (x j, t) : 0 capacité maximale d un arc (x j, t) : 1 capacité minimale de l arc (t, s) : 0 capacité maximale de l arc (t, s) : + Question 1.3. Démontrez le résultat suivant : Soient C une contrainte de cardinalité portant sur k variables et V N(C) le réseau associé à C. Les deux propriétés suivantes sont équivalentes : il existe un tuple satisfaisant C ; il existe un flot maximal dans le réseau V N(C) entre t et s de valeur k. Question 1.4. Proposez une méthode s appuyant sur le réseau V N(C) qui permette de dire si une contrainte de cardinalité vérifie la propriété d arcconsistance généralisée ou non. 2 Utilisation du théorème de Schaefer On considère le problème Horn-3-Sat qui est la restriction de 3-Sat à des clauses de Horn : on supposera que les clauses sont de la forme x y z ou x y z ou x. On considère les relations booléennes suivantes. R 1 := {01, 10} R 2 := {001, 011, 111} R 3 := {011, 101, 110, 000} Question 2.1. Proposez un langage Γ H de 3 relations booléennes, tel que Horn-3-Sat se réduise à Generalized-Sat(Γ H ) et Generalized-Sat(Γ H ) se réduise à et Horn-3-Sat (réduction en temps polynomial dans les deux cas). On esquissera les réductions. Question 2.2. Quelles fonctions booléennes parmi {c 0, c 1,,, m, l, } préservent Γ H? 3
Question 2.3. Quelle est la complexité de Generalized-Sat pour les langages suivants? Γ 1,2 = {R 1, R 2 } Γ 2,3 = {R 2, R 3 } Γ 1,3 = {R 1, R 3 } Γ H,2 = Γ H {R 2 } Question 2.4. Peut-on trouver une réduction polynomiale depuis Generalized- Sat(Γ 1,3 ) vers Generalized-Sat(Γ 2,3 )? Question 2.5. Peut-on trouver une réduction polynomiale depuis Generalized- Sat(Γ 1,3 ) vers Generalized-Sat(Γ H )? Question 2.6. Peut-on trouver une p.p.-réduction depuis Generalized- Sat(Γ 1,3 ) vers Generalized-Sat(Γ H )? Question 2.7. Peut-on trouver une p.p.-réduction depuis Generalized- Sat(Γ H,2 ) vers Generalized-Sat(Γ H )? 3 Propriété du triangle cassé On considère dans cette exercice des instances de CSP, dont toutes les contraintes sont binaires. Sans perte de généralité, on supposera que chaque variable i a un domaine de valeurs admissibles D i et qu il y a exactement une contrainte binaire notée R i,j D i D j entre deux variables quelconques i et j (ou plus exactement deux contraintes avec R j,i satisfaisant (a, b) R j,i ssi (b, a) R i,j ). Pour a D i, on note R i,j (a) := {b D j tel que (a, b) R i,j }. Soit < un ordre linéaire strict sur les variables. On dira qu une instance satisfait la propriété du triangle cassé par rapport à l ordre <, si et seulement si, ( ) pour tout triplet de variables telles que i < j < k, si (u, v) R i,j, (u, a) R i,k et (v, b) R j,k alors (u, b) R i,k ou (v, a) R j,k. Question 3.1. Montrez que si on transforme une instance satisfaisant ( ) en enlevant des valeurs de certains domaines et en enlevant les tuples de contraintes contenant ces valeurs, alors on obtient une instance qui satisfait ( ). Question 3.2. Montrez que ( ) est équivalent à ( ) pour tout triplet de variables telles que i < j < k et tout (u, v) R i,j, R i,k (u) R j,k (v) ou R i,k (u) R j,k (v). 4
Question 3.3. Montrez que si on applique AC à une instance satisfaisant ( ) et que l algorithme ne trouve pas d incohérence alors l instance est satisfaisable (indication : construire un assignement partiel cohérent sur les variables 1 < 2 <... < k par induction sur k). Question 3.4. Donnez un algorithme polynomial pour la classe des instances satisfaisant la propriété du triangle cassé (pour le problème de décision seulement). 5