previous up next contents
Précédent : Contraintes Remonter : Contraintes Suivant : Contraintes d'ordre supérieur

Combinaison et coopération de solveurs de contraintes

Participants : Hélène Kirchner, Eric Monfroy, Christophe Ringeissen, Michaël Rusinowitch

Dans le prolongement des travaux réalisés depuis la création du projet, nous avons continué l'étude des problèmes de combinaison de solveurs de contraintes. La problématique générale consiste à faire collaborer plusieurs solveurs pour traiter des contraintes qui ne pourraient être résolues (ou résolues efficacement) par un unique solveur. On parle de problèmes de combinaison lorsqu'il s'agit de construire un solveur pour la réunion de plusieurs domaines (ou théories) élémentaires et de problèmes de coopération lorsque plusieurs solveurs, dédiés à un domaine unique, communiquent ensemble. Dans ce dernier cas, les solveurs élémentaires qu'on cherche à faire collaborer se partagent alors les contraintes suivant leurs spécificités. Les deux aspects, combinaison et coopération, ont été étudiés cette année.

Nous nous sommes intéressés au problème de la satisfaisabilité de contraintes par rapport à un mélange de théories non disjointes [35,48,52]. Ce travail présente une double originalité. D'une part les théories ne sont plus nécessairement équationnelles et il en va de même des contraintes qui peuvent être formées de n'importe quel prédicat. D'autre part les théories élémentaires qui composent le mélange admettent dans une certaine mesure des symboles de fonctions partagés. L'étude du cas non-disjoint avait déjà été entreprise l'an dernier mais uniquement pour l'unification, c'est-à-dire dans une algèbre de termes.

La différence majeure avec les travaux antérieurs se situe dans la construction du modèle pour le mélange qui dépend des modèles relatifs aux théories élémentaires. Nous avons mis en évidence les conditions nécessaires et suffisantes pour que cette construction soit possible. Il faut en particulier que les sous-structures respectives obtenues en ne considérant que les fonctions partagées soient isomorphes. Nous avons également donné des conditions suffisantes sur les théories élémentaires comme celles qui stipulent qu'une formule satisfaisable doit l'être dans un modèle n'interprétant pas les symboles partagés. Il existe bien évidemment une forte analogie entre ce type de modèles et le domaine de Herbrand.

Ce travail nous a permis également de valider un algorithme de combinaison dont le principe est très simple. Un prototype a été réalisé et doit servir de plate-forme pour la future bibliothèque de résolutions de contraintes que nous envisageons de développer après la première phase de réflexion menée cette année.

Nous avons également étudié la coopération de solveurs dans le cadre de la programmation logique à contraintes polynômiales [47]. Plutôt que d'utiliser une procédure globale de décision qui s'avère souvent inefficace, nous proposons une nouvelle approche permettant de manipuler ces contraintes à l'aide de solveurs spécialisés coopérant entre eux de façon synchrone.

Cette approche du problème nécessite la conception d'une architecture client/serveur établissant les communications entre les différents composants du système (comme GB, ECLiPSe, Maple).

Ces travaux sont motivés par les besoins d'un système déclaratif pour la planification de trajectoire et la résolution de problèmes géométriques ainsi que la ré-utilisation d'outils et de solveurs existants.

Afin de valider cette approche un prototype nommé CoSAc \ a été implanté en ECLIPSe. Des exemples ont été développés dans le but d'illustrer les avantages de la coopération de solveurs sur les contraintes polynômiales. La prochaine étape consiste en la conception d'un système de constructions de collaborations (i.e. coopérations et combinaisons) de solveurs, indépendant du domaine des solveurs et intégrant plusieurs paradigmes (la séquentialité, le parallélisme et la concurrence) et plusieurs structures de contrôle (répétition, conditionnelles, ...).


previous up next contents
Précédent : Contraintes Remonter : Contraintes Suivant : Contraintes d'ordre supérieur