Sous-sections

Contraintes

Mots clés : Combinaison, extension de solveur, propagation, programmation entière, optimisation combinatoire. .

Résumé :

Nous avons poursuivi les travaux des années précédentes sur la combinaison et l'extension de solveurs. Nous étudions la modélisation par règles et la synthèse de solveurs à base de propagation sur des domaines finis, les techniques de programmation entière et d'optimisation combinatoire pour des problèmes de planification et d'ordonnancement.

En collaboration avec Hubert Comon, Mehmet Dincbas et Jean-Pierre Jouannaud, Claude Kirchner a publié dans [19] une présentation systématique de la résolution de contraintes.

Combinaison de solveurs



Participant : Christophe Ringeissen.

Nous avons poursuivi notre étude du problème de la satisfaisabilité dans une union (ou mélange) de théories non-nécessairement équationnelles. Il s'agit de déterminer si, étant données une contrainte et une théorie, il existe un modèle de la théorie dans lequel la contrainte puisse être satisfaite. Le cas de théories formées sur des signatures disjointes avait été résolu au début des années 80 par Nelson et Oppen. Nous nous sommes intéressés au cas où les théories partagent des symboles de fonctions ou de prédicats. Nos résultats reposent sur une construction algébrique, appelée fusion, qui permet d'obtenir, sous certaines conditions, un modèle d'un mélange de théories à partir des modèles des théories composant le mélange. Nous nous sommes plus particulièrement intéressé cette année, à la fusion d'algèbres libres ainsi qu'à la fusion d'algèbres initiales. Nous avons ainsi fait une étude comparative de notre algorithme de combinaison avec celui conçu par F. Baader et K. Schulz pour le problème de disunification dans une amalgamation libre d'algèbres libres, une construction algébrique plus complexe que notre notion de fusion et qui n'est valable que pour des signatures disjointes. Nous avons également montré que notre algorithme de combinaison peut être appliqué pour résoudre des problèmes de filtrage lorsque l'on considère une fusion d'algèbres initiales.

L'ensemble de ces résultats, obtenus en collaboration avec Cesare Tinelli (Université de l'Illinois à Urbana-Champaign puis Université de Iowa), fait l'objet d'un article soumis à publication.

Extension de solveurs



Participant : Christophe Ringeissen.

Dans [21], en collaboration avec Eric Monfroy (CWI, Amsterdam), nous présentons un cadre général pour étendre un solveur en lui permettant de traiter des contraintes hétérogènes faisant intervenir de nouveaux symboles de fonctions. Solex implante actuellement un ensemble de règles de transformation qui effectuent un pré-traitement et un post-traitement des formules, afin de rendre admissibles pour un solveur des contraintes qu'il ne pouvait pas traiter auparavant. Les règles agissent par ajout d'informations relatives aux nouvelles fonctions, par complément du domaine de calcul et par abstraction. Chacune de ces règles peut être vue comme un solveur élémentaire, et Solex comme une collaboration de solveurs. Il est donc possible de rendre ce schéma directement exécutable grâce au système Bali développé par Eric Monfroy durant sa thèse pour décrire et réaliser des collaborations de solveurs.

Règles de propagation de contraintes pour les domaines finis



Participant : Christophe Ringeissen.

Les algorithmes de résolution de contraintes sont de nos jours souvent fondés sur des mécanismes de propagation de contraintes, qu'on peut voir de façon abstraite comme une forme de déduction s'exprimant par des règles de transformation de contraintes. On peut ainsi imaginer mettre en oeuvre de la propagation de contraintes simplement par l'application de règles dans un langage adapté. Nous avons travaillé avec Eric Monfroy (CWI, Amsterdam) dans le prolongement d'une étude commencée par Apt et Monfroy sur la création automatique de solveurs à base de règles pour la réduction de problèmes de satisfaction de contraintes. Nous avons amélioré le schéma général de production de règles grâce à l'utilisation d'un algorithme d'unification dans les algèbres finies et de la structure associée de graphes acycliques dirigés n-aires. Cette approche permet de traiter une nouvelle forme de règles de propagation avec paramètres, d'avoir une méthode plus déductive dans la construction de chaque règle, et de mieux contrôler la production de l'ensemble des règles.

Techniques de programmation entière



Participant : Alexander Bockmayr.

Programmation entière pour la planification

Une approche récente pour résoudre des problèmes de planification en intelligence artificielle consiste à les traduire en problèmes de satisfaisabilité en logique propositionnelle. Bien que cette méthode ait des succès remarquables dans de nombreux domaines de planification, elle ne permet pas d'exprimer facilement des contraintes numériques, ou d'optimiser par rapport à une fonction objectif complexe. De plus, la représentation en logique propositionnelle impose des restrictions sur les connaissances du domaine qui peuvent être formulées.

Pour aborder ces difficultés, nous avons proposé dans [22] de passer de la logique propositionnelle à un langage de représentation plus riche qui est la programmation linéaire en nombres entiers. Cela nous a permis de modéliser facilement des contraintes de capacité. Plus généralement, des connaissances riches sur le domaine peuvent être représentées de manière compacte et exploitées par les solveurs de programmation entière. Finalement la relaxation linéaire donne lieu à une nouvelle stratégie de recherche qui a permis de résoudre de manière approximative des problèmes de planification qui ne sont pas à la portée des méthodes exactes.

Théorie des plans de coupe en programmation entière

La procédure de Gomory-Chvátal est une méthode fondée sur des plans de coupe qui permet de calculer l'enveloppe convexe PI des points entiers contenus dans un polyèdre P. Le nombre d'itérations nécessaires pour obtenir PI est appelé le rang de Chvátal de P. Cette notion fut introduite par Chvátal en 1973. Elle donne une mesure pour la difficulté de résoudre un programme linéaire en nombres entiers sur P. Le rang de Chvátal est toujours fini, mais il n'existe pas de borne supérieure pour des polyèdres quelconques même en dimension 2. Dans [15], nous avons démontré que le rang de Chvátal d'un polyèdre P contenu dans le cube [0, 1]n est de l'ordre O(n3log n).

Applications à la résolution des problèmes combinatoires



Participants : Jianyang Zhou, Jiany Zhou.

Dans le cadre d'un projet de création d'entreprise, nous avons mené une étude sur des problèmes combinatoires, de planification et d'ordonnancement : planification d'interviews, planification d'itinéraires, ordonnancement d'atelier, et planification de média. Des modèles mathématiques de ces problèmes ont été établis et comparés, des expérimentations ont été menées pour les évaluer.

Nous avons utilisé le langage de contraintes NCL pour programmer deux applications particulières: une planification d'interviews et une planification de média.