Université Paris 7 École Normale Supérieure de Cachan École Normale Supérieure École Polytechnique
Université Paris 6 Université Paris 11 École Nationale Supérieure des Télécommunications
Centre National de la Recherche Scientifique Commissariat à l'Energie Atomique Institut National de Recherche en Informatique et en Automatique

Parisian Master of Research in Computer Science

Master Parisien de Recherche en Informatique (MPRI)

[Home page] [The MPRI course] [Practical information]


Algorithmique et complexité des problèmes de satisfaction de contraintes (24h, 3 ECTS)

Responsable : Miki Hermann (LIX, École Polytechnique)

Intervenants du cours 2009-2010 :

  1. Manuel Bodirsky (12h)
  2. Miki Hermann (12h)

Motivations et objectifs du cours

Les problèmes de satisfaction de contraintes (CSP, Constraint Satisfaction Problems en anglais) sont apparus au milieu des années 1970, quand les chercheurs ont reconnu leur importance après la publication initiale de Montanari, et ils connaissent un véritable boom depuis la fin des années 1990. Cet essor de la problématique des CSP se manifeste par la multitude de contributions aux conférences en informatique fondamentale , une conférence spécialement dédiée à la problématique des CSP, des publications dans les revues d'informatique théorique, une revue spécialement dédiée à la problématique des contraintes, ainsi que de plusieurs livres et monographies. La popularité des CSP est due au fait que ce formalisme permet de définir un cadre général pour aborder différents problèmes algorithmiques de façon uniforme; il permet aussi de développer des algorithmes universellement applicables dans tous les domaines de l'informatique, et une analyse algorithmique efficace et élégante. Les CSP trouvent un impact et des applications dans presque toutes les parties de l'informatique. Ce sont, par exemple, la programmation par contraintes (voir les applications ILOG), la théorie de complexité, la bioinformatique, la théorie et applications des bases de données, en particulier la fouille de données, l'optimisation de requêtes, l'intégration de données; la vérification de logiciels, la cryptographie, la sécurité des protocoles de communication, la recherche opérationnelle, le raisonnement en logiques non-monotones, l'intelligence artificielle, pour n'en citer que quelques unes. Il est donc évident que la recherche en CSP prend une position clé en informatique.

La recherche sur les CSP regroupe des méthodes issues ou utilisées en combinatoire et en théorie des graphes, en théorie des modèles, en algèbre universelle et en théorie de complexité. Pouvoir travailler dans ce domaine demande donc une grande connaissance et culture des méthodes mathématiques et informatiques.

Les étudiants, après avoir suivi ce cours, auront une vue globale de CSP, de leur importance, leurs applications, les algorithmes sous-jacents et de leur complexité.

Plan du cours

La première partie comporte 4 séances de 3 heures. La deuxième partie 4 séances de 3 heures.

La première partie du cours sera consacrée à la théorie de complexité des CSP, en s'appuyant sur les ouvrages (Pippenger 1997), (Hell et Nesetril 2004), (Creignou, Khanna et Sudan 2001) et les articles (Böhler et al. 2003), (Böhler et al. 2004), (Schaefer 1978), (Jeavons, Cohen et Gyssens 1997), (Creignou et Hermann 1996). Il s'agit de la partie que Miki Hermann a déjà enseigné au MPRI dans le cadre du cours sur les contraintes et optimisation (cours assuré par Baptiste, Bampis et Hermann) pendant l'année universitaire 2004-2005. L'analyse des problèmes decomplexité des CSP est basée sur la partie de l'algèbre universelle utilisant la correspondance de Galois et traitant les clones et les co-clones. Nous allons donc présenter les CSP en forme des contraintes basées sur les ensembles finis de relations S (co-clones) fermés par rapport aux ensembles de fonctions (clones) appelés les polymorphismes de S. Ces deux ensembles sont toujours fermés par rapport à la composition, ce qui nous permet d'établir une caractérisation exacte des contraintes par fonctions de fermeture. Ainsi on obtient des sous-classes des CSP ayant toujours la même complexité, permettant de distinguer entre les classes polynomiales et NP-complètes. Nous allons présenter les outils pour reconnaitre les cas polynomiaux, ainsi que les algorithmes permettant de trouver efficaement la réponse pour ces cas.

Le cours commencera par une brève motivation d'utilisation des CSP avec des exemples incluant le problème d'affectation de fréquences ou la correction d'un processeur Intel, arrivant ainsi à expliquer la nécessité et l'utilité du cours. Après quelques définitions indispensables, introduisant les notions du domaine, de la relation, de la contrainte et sa satisfaction, aboutissant finalement à la définition principale du CSP, nous allons présenter quelques exemples concrets des CSP, comme all-different et 3-coloriage. Nous allons expliquer comment il faut paramétrer des CSP par un langage de contraintes S composé par un ensemble de relations, car selon ce paramètre le CSP peut être polynomial, NP-complet, ou peu-être entre les deux.

Nous allons aborder les CSP booléens de façon détaillée. Dans ce cadre, nous allons montrer comment il faut comprendre le problème de satisfaisabilité SAT comme un CSP. Ensuite, nous allons montrer comment aboutir à des problèmes de satisfaction spécifiques, comme 3SAT, 2SAT, POSITIVE 1-IN-3 SAT, NOT-ALL-EQUAL 3SAT, HORNSAT, en modulant le langage de contraintes S. Ainsi, nous pouvons maintenant poser des questions sur l'équivalence des CSP avec différentes langages de contraintes, sans pour l'intant être capable de répondre à cette question. Pour y arriver, nous allons d'abord montrer comment construire une formula F à partir d'une relation R, telle que l'ensemble de ses modèles sol(F) soit égal à R. Ensuite, nous allons aborder la satisfaisabilité des formules particulières en forme normale conjonctive, notamment Horn (les clauses avec au plus un littéral positif), dual Horn (au plus un littéral négatif), bijonctives (clauses d'au plus deux littéraux) et affines (systèmes d'équations sur l'anneau booléen). Nous allons développer des algorithmes polynomiaux pour décider la satisfaisabilité de ces formules. En effet, ces quatre cas spéciaux représentent les seules classes de formules avec la satisfaisabilité polynomiale.

Nous revenons alors aux relations qui représentent les ensembles de modèles des contraintes correspondantes et nous allons montrer comment nous pouvons créer des nouvelles constraintes à partir d'un ensemble de contraintes existantes, appelé aussi l'implantation de nouvelles contraintes, par conjonctions, quantification existentielle, permutation de variables et diagonalisation. Au niveau de relations, ces opérations correspondent respectivement au produit cartésien, à la projection, à la permutation de coordonnées, et à la section (une opération bien connue en théorie des codes). Ces opération sont à la base de la production des co-clones, c.-à-d. des ensembles cl(S) de toutes les relations constructibles à partir du langage de contraintes S. Ceci nous permet maintenant de formuler les théorèmes sur les reductions entre les CSP paramétrés par deux langages de contraintes S1 et S2, qui satisfont la relation d'inclusion S1 dans S2. Nous allons maintenant montrer comment formuler des problèmes de satisfaisabilité Horn, dual Horn, bijonctive et affines en tant que CSP avec des langages de contraintes spécifiques. Nous y ajoutons des langages 0-valides et 1-valides pour compléter les langages de contraintes donnant lieu aux CSP polynomiaux.

Nous allons procéder par montrer les propriétés de fermeture des relations Horn, dual Horn, bijonctives, affines, 0- et 1-valides, ainsi que complémentives par rapport aux fonctions booléennes particulières. Ceci nous amèmes par généralisation à la notion de polymorphisme. Nous allons montrer comment utiliser les ensembles clos de polynomorphismes, aussi appelés de clones, pour caractériser les enembles de relations et des co-clones. En effet, les clones sont des ensembles de fontions qui contiennent toutes les projections est sont clos par composition. Les clones forment un treills ordonné par inclusion - le fameau treillis de Post. Post a également prouvé que chaque clone booléen possède une base finie, ce qui nous permet de caractériser effectivement nos langages de contraintes S. Nous allons aborder la notion de correspondance de Galois, d'abord en général, puis appliquée aux clones et co-clones. Cette dernière nous finalement permet de caractériser totalement la complexité des CSP pour tout langage booléen de contrainte S, arrivant au fameaux thórème dichotomique de Schaefer classant des CSP booléens en polynomiaux et NP-complets. Il faut noter qu'il n'existe pas des CSP flottants entre les classes P des problèmes de décision polynomiaux et les problèmes NP-complets, à condition que P est différent de NP, malgré le théorème de Ladner.

Nous allons aussi brièvement aborder les problèmes de comptage, d'approximation, de la satisfaisabilité unique, de la satisfaisabilité quantifiée, de l'équivalence et l'isomorphisme, la satisfaisabilité optimale, les problèmes liés aux bases de données, tous en relation avec les CSP. Nous allons également aborder des problèmes qui ne peuvent pas être résolus par la méthode algébrique basée sur la correspondance de Galois, comme la circonscription ou l'inférence minimale, car ces problèmes ne sont pas clos par la quantification existentielle.

Dans la deuxième partie du cours nous allons appliquer les concepts et techniques du premier partie aux problèmes de satisfaction de contraintes sur les domaines infinis. Cet approche nous permet de considérera pr exemple les problèmes en raisonnement spacial et temporel, en reconstruction phylogénique et les problèmes de calcul en algèbre dans un cadre uniforme. Nous allons nous focaliser particulièrement sur les résultats algorithmiques. Par exemple, nous revisitons les technique de consistance locale et nous introduisons en CSP des algorithmes de graphes efficaces lesquels n'étaient pas applicables aux CSP sur les domaines finis. Cette deuxième partie sera partiellement basée sur un cours du second enseignant préparé en collaboration avec Hubie Chen pour le European Summer School for Logic, Language and Information en 2007.

Planning des séances

Selon le planning du MPRI.

Plus d'information concernant ce cours et sont planning est disponible sur les pages web de Miki Hermann et Manuel Bodirsky .

Planning de l'examen

L'examen du cours aura lieu le 10 février 2010 de 8h45 à 11h45 dans la salle 8B01 à Chevaleret.

Langues du cours :

Le cours sera a priori en français.
Cependant, s'il est suivi par des étudiants non francophones et en accord avec l'ensemble des étudiants qui le suivent, ce cours pourra aussi être en anglais.

Le sujet d'examen sera en français et en anglais.
Les étudiants seront autorisés à rédiger leur examen en français ou anglais.

Supports de cours :

Les transparents du cours seront disponibles au fur et à mesure sur la page web MPRI C-2-31-1.

Pré-requis

Connaissances de base en complexité, en algorithmique et en algèbre.

Cours liés

Optimisation 2-24-1, Programmation par contraintes 2-4-1.

Bibliographie

Équipe pédagogique

Miki Hermann Chargé de recherche CNRS LIX Ecole Polytechnique
Manuel Bodirsky Chargé de recherche CNRS LIX Ecole Polytechnique