Comité deprogramme. Membres. Relecteurs additionnels. Thomas Schiex - INRA, Toulouse

Dimension: px
Commencer à balayer dès la page:

Download "Comité deprogramme. Membres. Relecteurs additionnels. Thomas Schiex - INRA, Toulouse"

Transcription

1

2 Introduction Ces actes comprennent les contributions sélectionnées pour JNPC 2003, les neuvièmes d une série commencée à Montpellier en Cette année, sur un total de 29 soumissions 22 ont été sélectionnées pour présentation longues et 3 pour la session jeunes chercheurs. Dans ce processus de sélection, la question habituelle du statut de JNPC (conférence sélective ou réunion de travail de la communauté nationale) s est encore une fois posée. Le taux d acceptation particulièrement élevé cette année n est pas, comme on pourrait le penser, le résultat d une certaine nostalgie pour les premières éditions de la conférence. Il est essentiellement du à la bonne qualité générale des soumissions, appréciée par chacun des relecteurs. Les contributions des jeunes chercheurs ont été également un peu allongées cette année : nous sommes passés de 2 à 4 pages par papier. Car deux pages c est fort peu pour exposer ses idées et que la différence entre 4 et 15 pages me semble suffisante pour marquer le statut particulier de ces travaux. Cette année correspond aussi à la mise en place d un canal de communication entre JEDAI (Journal Électronique d Intelligence Artificielle) et JNPC : certains travaux, qui pourront être soumis àjedaià la suite de JNPC, profiterons des relectures de JNPC pour accélérer le processus de traitement. La question de la fusion ou du rapprochement de JNPC et JFPLC reste entière après cette année. Il me semble pourtant important que nos communautés progressent dans cette direction pour aboutir à une conférence nationale du style de CP. Les points de blocage sont maintenant bien identifiés : 1. édition des actes par Hermes (JFPLC) ou édition légère avec diffusion sur le Web (JNPC) 2. participation au financement de l association AFPLC via les frais d inscription. Faute de temps, nous n avons pas pu, Mireille Ducasse et moi-même, progresser suffisamment sur ces deux points. La possibilité de financer des déplacements de jeunes chercheurs par une association est un avantage important que les membres de la communauté JNPC devraient apprécier en ces temps difficiles. Parallèlement, il faudrait avancer sur le thème des actes. Il me semble important que ces actes soient disponibles à tous les francophones et à moindre coût. Le Web est certainement la meilleure façon de faire. Peut-on trouver un éditeur qui serait prêt àéditer une version papier pour la conférence et à laisser les papiers ensuite disponibles sur le Web? Est-il possible à la communauté JFPLCde renoncer à une édition «prestigieuse»? Vu l inertie du processus, il faudrait faire en sorte que 2004 soit l année qui prépare la fusion pour Une bonne façon d avancer dans cette direction serait d inclure dans chacun des deux futurs comités de programmes 2004 un membre entièrement dédié à cette tâche. 1

3 Comité deprogramme Président Thomas Schiex - INRA, Toulouse Membres Bertrand Neveu - CERMICS, INRIA, Sophia-Antipolis Christian Bessière - LIRMM, CNRS Montpellier Christophe Jermann - Ecole Polytechnique Fédérale de Lausanne, Suisse Cyril Terrioux - LIM, Université deprovence Éric Bourreau - e-lab, Bouygues, St-Quentin François Laburthe - BOUYGUES, St Quentin en Yvelines Gérard Verfaillie - ONERA, Toulouse Hachemi Bennaceur - LIPN, Université Paris 13 Jin-Kao Hao - LERIA, Université d Angers Laure Devendeville - LARIA, Université PicardieJulesVerne Laurent Simon - IASI - LRI, Université Paris Sud Marti Sanchez - IIIA, Barcelone Michel Vasquez - École des Mines d Ales Muriel Lauvergne - France Télécom Pascal Brisset - ENAC, Toulouse Pierre Marquis - CRIL, Université d Artois Romuald Debruyne - École des Mines de Nantes Simon de Givry - INRA, Toulouse Thierry Petit - ILOG, Sophia Yahia Lebbah - Université d Oran, Algérie Relecteurs additionnels Amar Isli Audrey Dupont Bertrand Mazure Christian Bliek Christine Gaspin Djamal Habet Frédéric Saubion Jean-Charles Régin Jérôme Lang Nicoleta Neagu Philippe Jégou 2

4 Comité d organisation Président Chu-Min Li - LaRIA, Université de Picardie Jules Verne Membres Jacques Carlier - Heudiasyc, UTC, Compiègne Gilles Dequen - LaRIA, Université de Picardie Jules Verne Laure Devendeville - LARIA, Université Picardie Jules Verne Jean-Luc Guérin - LaRIA, Université de Picardie Jules Verne Bernard Jurkowiak - LaRIA, Université de Picardie Jules Verne Yu Li - LaRIA, Université de Picardie Jules Verne Corinne Lucet - LaRIA, Université de Picardie Jules Verne Florence Mendes - LaRIA, Université de Picardie Jules Verne 3

5 Table des matières Conférence invitée Optimisation multi-critères en programmation par contraintes. U. Junker- Ilog Sessions techniques OpenSAT:une plateforme SATOpen Source. G. Audemard, D. Le Berre, O. Roussel...11 Le problème de la cohérence des réseaux de contraintes du formalisme INDU. P. Balbiani, JF. Condotta et G. Ligozat Filtrage local par decomposition de CSP continus. H. Batnini et M. Rueher...39 Invariants en recherche locale stochastique. M. Belaidouni Être ou ne pas être... une contrainte globale. C. Bessière et P. Van Hentenryck Résolution de contraintes quantifiées sur les domaines finis par arc-consistance quantifiée. L. Bordeaux et E. Monfroy Un CSP comme comportement d agent. Application à la résolution d équations en physique des milieux granulaires. L. Breton et N. Jussien Sur une généralisation des graphes triangulés et son application pour la décomposition de domaines dans les CSP. A. Chmeiss, P. Jégou et L. Keddar Modélisation Semi-Automatique par Acquisition de Contraintes. R. Coletta, C. Bessière et J. Quinqueton Un test de canonicité pour éliminer des configurations redondantes. S. Grandcolas, L. Henocque, N. Prcovic Recherche arborescente bornée pour la résolution de CSP valués. P. Jégou et C. Terrioux Algorithmes pour la détection de rigidités dans les CSP géométriques. C. Jermann, B. Neveu et G. Trombettoni Langage, définition et calcul optimal d approximations de CSP. A. Lallouet, TBH. Dao et A. Ed-Dbali GASAT : une approche hybride pour le problème SAT. F. Lardeux, F. Saubion et JK. Hao

6 Une combinaison de consistances locales avec un filtrage global sur des relaxations linéaires. Y. Lebbah, C. Michel et M. Rueher Au coeur de la consistance d arc. C. Lecoutre, F. Boussemart et F. Hemery Problèmes de satisfaction de contraintes aléatoires en intention. C. Lecoutre, F. Boussemart et F. Hemery Optimisation sous contraintes en contexte anytime. S. Loudni et P. Boizumault Hybridation de GWW avec de la recherche locale. B. Neveu et G. Trombettoni Détection de conflits pour la résolution de problèmes sur-contraints. T. Petit, C. Bessière et JC. Régin Une contrainte Stretch expliquée. G. Rochart et N. Jussien Mesurer la similarité de graphes étiquetés. S. Sorlin, PA. Champin et C. Solnon Résumés des présentations «Jeunes Chercheurs» Algorithmes de filtrage arc consistant et 3-inverse consistant pour l allocation de frequences avec niveaux de relaxations. E. Alvernhe et M. Vasquez PlaSMA : un algorithme hybride pour le problème d alignement multiple de séquences. V. Derrien, JM. Richer et JK. Hao L explication de l inconsistance dans les réseaux de contraintes. A. Dupont et F. Koriche

7

8 Actes JNPC 03 Optimisation multi-critère en programmation par contraintes Ulrich Junker ILOG S.A. 1681, route des Dolines F Valbonne Abstract La théorie de la décision utilise la notion de préférence pour déterminer le meilleur choix parmi un ensemble d alternatives. Dans le cadre des problèmes combinatoires, les alternatives correspondent aux solutions et il est commode de comparer les differents solutions via un ou plusieurs critères, qui sont eux-même définis en fonction des variables de décision. Dans le cas d un seul critère, on obtient un problème d optimisation comme la minimisation du makespan dans l ordonnancement ou la minimisation du prix dans un problème de configuration. Néanmoins, un modèle précis des préférences des décideurs, clients, où d autres utilisateurs nécessite souvent la prise en compte de plusieurs critères comme le prix, la qualité, le délai. On obtient ainsi un problème d optimisation multi-critère qui soulève de nouvelles questions comme la comparabilité et l aggregation des différents critères. Ce sujet est étudié intensivement dans les domaines de l aide àladécision multicritère et l optimisation multi-critère. Nous résumons les notions classiques comme la Pareto-optimalité, l optimalité lexicographique [Ehrgott et Gandibleux, 2000] et la théorie de l utilité avec attributs multiples (MAUT) [Keeney et Raiffa, 1976]. Nous abordons également quelques approches récentes comme l optimalité définie par un ordre lexicographique-max [Ehrgott, 1997]. Ces approches peuvent directement être appliquées à la programmation par contraintes avec la particuliarité que les algorithmes de résolutions doivent prendre en compte plusieurs critères. Plusieurs équipes de recherche ont récemment attaqué ceproblème et proposent différents méthodes pour adapter les heuristiques de recherche et la recherche Branch-and-Bound au multi-critère [Focacci et Godard, 2002; Gavanelli, 2002; Huédé et al., 2003; Junker, 2002]. La programmation par contraintes permet également de prendre en compte des préférences qualitatives et symboliques qui ont étéélaborées en intelligence artificielle (IA) [Doyle et Thomason, 1999; Doyle, 2002]. En appliquant les divers formalismes de représentation de connaissance aux préférences, on gagne une plus grande souplesse et on peut traiter des préférences dynamiques, des préférences molles, et des meta-péférences. Ces nouveaux formalismes permettent d espérer 7

9 8 des modèles plus naturels et plus fins des péférences des utilisateurs, ainsi qu une meilleurs satisfaction de celles-ci. Nous rappellons tout d abord plusieurs approches comme les contraintes molles (CSP valués; CSP semi-ring) qui sont inspirées par la logique multi-valuée comme la logique floue [Bistarelli et al., 1995; Schiex et al., 1995]. Nous continuons avec les travaux sur les préférences ceteris-paribus et les CP-networks, qui traitent des préférences dynamiques [Boutilier et al., 1997]. En logique non-monotone, les préférences sont même formulées dans la logique de base ce qui permet une très grande expressivité. Nous adaptons cette derniere approche à la programmation par contraintes et nous la generalisons pour traiter des préférences définies par des critères. Nous obtenons donc un système de programmation de préférence qui combine les approches classiques de l optimisation multi-critère avec les nouvelles possibilités des préférences qualitatives développées en IA [Junker et Mailharro, 2003]. Ensuite, nous développons une procedure de recherche à base de préférences (PBS), qui combine plusieurs techniques pour chercher une solution préférée [Junker, 2002]. Dans une recherche principale, PBS utilise les préférences entre critères pous sélectionner un meilleur critère dans chaque étape. Chaque critère sélectionné est fourni comme objectif à une sous-recherche qui détermine la meilleure valeur pour ce critère. Ensuite la procédure pincipale explore deux cas: soit elle affecte la meilleure valeur àcecritère, soit elle va réfuter cette affection en optimisant d autres (meilleurs) critères d abord. La méthode est utilisée dans un configurateur industriel. Cette méthode peut déterminer des solutions extrêmes ou des solutions équilibrées. Nous terminons l éxposé en discutant de défis comme l élitication des préférences précises et les nouvelles questions algorithmiques qui se posent pour résoudre les problèmes multi-critères. References [Bistarelli et al., 1995] Stefano Bistarelli, Ugo Montanari, et Francesca Rossi. Constraint solving over semirings. Dans Chris S. Mellish, editor, Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence, pages , San Mateo, August Morgan Kaufmann. [Boutilier et al., 1997] Craig Boutilier, Ronen Brafman, Christopher Geib, et David Poole. A constraint-based approach to preference elicitation and decision making. Dans Jon Doyle et Richmond H. Thomason, editors, Working Papers of the AAAI Spring Symposium on Qualitative Preferences in Deliberation and Practical Reasoning, pages 19 28, Menlo Park, California, American Association for Artificial Intelligence, American Association for Artificial Intelligence. [Doyle et Thomason, 1999] Jon Doyle et Richmond H. Thomason. Background to qualitative decision theory. AI Magazine, 20(2):55 68, [Doyle, 2002] Jon Doyle. Preferences: Some problems and prospects. Dans AAAI-02 Workshop on Preferences in AI and CP: Symbolic Approaches. AAAI Press, [Ehrgott et Gandibleux, 2000] Matthias Ehrgott et Xavier Gandibleux. A Survey and Annotated Bibliography of Multiobjective Combinatorial Optimization. OR Spektrum, 22: , 2000.

10 9 [Ehrgott, 1997] Matthias Ehrgott. A characterization of lexicographic max-ordering solutions. Dans Methods of Multicriteria Decision Theory: Proceedings of the 6th Workshop of the DGOR Working-Group Multicriteria Optimization and Decision Theory, pages , Egelsbach, Häsel-Hohenhausen. [Focacci et Godard, 2002] Filipo Focacci et Daniel Godard. A practical approach to multi-criteria optimization problems in constraint programming. Dans CP-AI-OR 02, Le Croisic, France, [Gavanelli, 2002] Marco Gavanelli. An implementation of Pareto optimality in CLP(FD). Dans CP-AI-OR 02, Le Croisic, France, [Huédé et al., 2003] F. LeHuédé, M. Grabisch, C. Labreuche, et P. Savéant. Multicriteria search in constraint programming. Dans CP-AI-OR 03, Montréal, Quebec, Canada, [Junker et Mailharro, 2003] Ulrich Junker et Daniel Mailharro. Preference programming: Advanced problem solving for configuration. AI-EDAM: Special Issue on Configuration (to appear), [Junker, 2002] Ulrich Junker. Preference-based search and multi-criteria optimization. Dans AAAI-02, pages 34 40, Menlo Park, CA, AAAI Press. [Keeney et Raiffa, 1976] Ralph H. Keeney et Howard Raiffa. Decisions With Multiple Objectives: Preferences and Value Tradeoffs. John Wiley and Sons, Inc., New York, [Schiex et al., 1995] Thomas Schiex, Hélène Fargier, et Gérard Verfaillie. Valued constraint satisfaction problems: Hard and easy problems. Dans Chris S. Mellish, editor, Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence, pages , San Mateo, August Morgan Kaufmann.

11

12 Actes JNPC 03 OpenSAT : Une plate-forme SAT Open Source Gilles Audemard, Daniel Le Berre et Olivier Roussel CRIL, CNRS, Université d Artois Lens, France Résumé Cet article présente OpenSAT, une plate-forme de développement open source pour le développement d algorithmes reliés à la satisfaisabilité de formules propositionnelles. L objectif de cette plate-forme est de favoriser le développement de nouveaux algorithmes en réutilisant les structures de données et les algorithmes qui ont prouvé leur efficacité dans différents prouveurs. Cette réutilisation se fonde sur l utilisation d un langage à objet, largement disponible et portable : Java. Ce type de plate-forme permet de fédérer les efforts de développement et de maintenance et de bénéficier de techniques avancées pour le prototypage de prouveurs. Chacun peut bénéficier des outils de cette plate-forme et y apporter ses propres améliorations en participant à son développement selon le modèle open source. 1 Introduction Les dernières années ont constamment vu évoluer les prouveurs SAT [Dubois et al., 1996; Li et Anbulagan, 1997; Bayardo et Schrag, 1997; Marques-Silva et Sakallah, 1999; Zhang et Stickel, 2000; Moskewicz et al., 2001; Dubois et Dequen, 2001; Goldberg et Novikov, 2002 ]. Ceux-ci sont maintenant capables de résoudre de grandes instances et des problèmes difficiles du monde réel (instances de model-checking [Biere et al., 1999], de planification [Kautz et al., 1996]...). La recherche appliquée sur les prouveurs SAT est un domaine très attractif ; de nouvelles idées (d implantation, d algorithmes, de structures de données) sont constamment proposées. Un témoignage de cette évolution est la compétition SAT qui met en scène quelques 30 prouveurs cette année, alors qu une autre compétition avait déjà été organisée l année dernière et avait déjàréuni une trentaine d autres prouveurs [Simon et al., 2002]. Ce travail s effectue en collaboration avec João Marques Silva et Inês Lynce du groupe SAT@INESC, Lisbonne, Portugal. Il a été financé en partie par l IUT de Lens, le CNRS et la région Nord/Pas-de-Calais dans le cadre du contrat TACT. Il s inscrit dans le cadre des actions universitaires intégrées luso-françaises de la Conférence des Présidents d Université

13 12 Ce scénario pose quelques problèmes lorsque l on veut évaluer les performances et les mérites d un nouveau prouveur ou d un nouvel algorithme. Derrière différentes structures de données, de façons de coder, de langages, chaque prouveur SAT implante ses propres techniques de recherches, stratégies et heuristiques. La taille de certaines instances (plusieurs dizaines de milliers de variables, plusieurs centaines de milliers de clauses) rendent désormais une mauvaise implantation d un algorithme (par exemple en Ç Ò ¾ µ au lieu de Ç Ò ÐÓ Òµ) dramatiquement lente. Ainsi, construire, en partant de zéro, un prouveur SAT compétitif par rapport aux prouveurs de référence est une entreprise de plus en plus difficile car les structures de données deviennent de plus en plus sophistiquées. Il est donc de plus en plus compliqué pour chaque chercheur SAT de maintenir à jour son propre prouveur. Par conséquent, une bonne idée peut, faute de temps, passer inaperçue à cause d un codage inefficace. Idéalement, tous les algorithmes devraient être évalués avec le même degré d optimisation. Une plate-forme de prouveurs SAT permet de tendre vers cet objectif. C est l une des raisons qui nous ont poussés à développer la plate-forme Open- SAT. Cette idée a déjà été proposée dans le cadre du projet SIMO [Giunchiglia et al., 2001]. Cependant, à notre connaissance, ce projet n a pas connu de suite. OpenSAT poursuit trois buts. Le premier est de faciliter l intégration de prouveurs SAT dans des applications. Le deuxième est de fournir des implantations de références des techniques et des algorithmes pour résoudre des problèmes autour de SAT. Le dernier est de permettre à chacun de proposer sa propre implantation des spécifications OpenSAT. Pour y arriver, le développement open source semble être le plus approprié et tout spécialement dans un cadre de recherche. Cette approche suscite par essence un travail de collaboration et favorise la diffusion des travaux. Elle permet par ailleurs un développement, une découverte et une résolution des problèmes selon un cycle très court. Cette construction open source se fonde sur une variété d outils de travail collaboratif via internet accessible sur org. Nous pensons que proposer un noyau comportant des structures de données adéquates et des algorithmes de recherche classique peut aider aux développements compétitifs de nouvelles idées. De plus, nous pensons que le partage des efforts de maintenance sur une plate-forme commune et libre peut permettre à des prototypes de recherche de rester compétitifs. 2 Présentation de OpenSAT La plate-forme OpenSAT est le descendant direct de deux autres projets, JQUEST [Lynce et Marques-Silva, 2002] et JSAT 2. Elle est développée dans le cadre des actions universitaires intégrées luso-françaises de la Conférence des Présidents d Université Elle réunit le CRIL et le groupe SAT de l institut technique de Lisbonne. Les deux projets à l origine d OpenSAT sont complémentaires et écrits en Java. Le premier, JQUEST, utilise des structures de données et des algorithmes de recherche très élaborés, mais il souffre d une programmation de style C+ (programmation C avec des structures de données C++). Le second, JSAT, propose une meilleure conception en terme d objets et de réutilisabilité mais utilise des structures de données simples. Le choix du langage Java n est pas anodin. Pour créer une bibliothèque de ce type, un langage objet est nécessaire pour faciliter la réutilisation. Il est clair que ce choix peut avoir un coût. Par exemple, le polymorphisme qui facilite grandement la programmation induit un léger surcoût On pourrait remarquer que l utilisation de fonctions induit elle aussi un surcoût mais que l on songe rarement à s en passer

14 13 Cependant, ce surcoût est largement compensé par la facilitéd écriture du programme. Parmi les langages les plus utilisés nous avions le choix entre C++ et Java. Chacun de ces langages a des avantages et des inconvénients. De nombreux prouveurs SAT sont actuellement écrits en C++ pour des raisons d efficacité. Il s agit le plus souvent d une programmation procédurale classique utilisant le sucre syntaxique du C++. Certains de ces prouveurs sont par ailleurs développés pour une architecture particulière : Chaff [Moskewicz et al., 2001] et ses descendants sont optimisés pour utiliser au maximum le cache de second niveau des processeurs Pentium. De notre point de vue, les optimisations liées à la machine ou au système d exploitation ne sont pas directement du ressort du chercheur. Donc, l efficacité du langage ne doit pas être le critère prépondérant. Par ailleurs, idéalement, un prouveur de recherche devrait pouvoir être exécuté sur n importe quel système. Or, il est parfois difficile de rendre un programme C ou C++ parfaitement portable. De même, certains bugs peuvent passer inaperçus tant qu on ne change pas d architecture. Par exemple, pendant la compétition SAT2002, qui se déroulait sur des PC Linux, le prouveur Berkmin [Goldberg et Novikov, 2002] (écrit en C) a planté sur une centaine d instances à cause d un bug qui ne se révèle que sous Linux, le développement de Berkmin étant fait sous Windows et Solaris. Quand on met en avant la portabilité et la sûreté du langage, Java se révèle un environnement de choix qui permet de ne pas sacrifier outre mesure l efficacité. Ce langage a également l avantage d être maintenant très répandu et de disposer de très bons outils de développement 4. Par ailleurs, le développement en Java suscite l intérêt d un nombre croissant de chercheurs. 2.1 Objectif : deux niveaux d utilisation Premier niveau : simple utilisateur L idée de base dans OpenSAT est de regarder un prouveur SAT comme une boite noire à qui l on donne une instance SAT et qui répond SAT ou UNSAT. On voudrait pouvoir intégrer cette boite noire dans n importe quel programme Java, et idéalement pouvoir changer de boite noire au fur et à mesure des améliorations sur les prouveurs. On se place ici d un point de vue utilisateur. Jusqu à présent, il n y a pas de véritable standardisation autre que le format de représentation des instances SAT sous forme d entiers signés DIMACS [Johnson et Trick, 1996]. À l heure où les premières applications industrielles basées sur SAT voient le jour (model checking, planification [Biere et al., 1999; Kautz et al., 1996]), il n existe pas de définition d un composant SAT, c est à dire d une entité logicielle interchangeable fournissant le service SAT. C est ce que nous essayons de définir dans OpenSAT avec le premier niveau de spécification. Voir par exemple le code Figure 1. La figure 2 schématise les différentes interfaces de OpenSAT. On y trouve les services que doivent fournir un parseur DIMACS (IParser), une formule CNF (ICNF) et surtout un solveur SAT (ISolver) Deuxième niveau : chercheur Un second niveau de spécification permet d écrire son propre prouveur SAT en utilisant les structures de données existantes pour créer de nouveaux algorithmes, ou de modifier les structures de données sans modifier les algorithmes. Ce type de modification est particulièrement aisée car tous les concepts sont représentés par des objets. Pour créer ou modifier des structures de données, il suffit d implanter les interfaces 4 Voir entre autres et

15 14 // org.opensat.default contains default implementations // for an easy start up with the framework. // default simple data structure for representing a CNF IFormula formula = Default.cnf() ; // create a parser for the Dimacs format. IParser parser = Default.parser() ; // get a solver ISolver solver = Default.solver() ; // read the instance parser.parseinstance("filename.cnf",formula); try if (solver.solve(formula)) // instance is SAT else // instance is UNSAT catch (TIMEOUTException e) // TIMEOUT FIG. 1 Exemple d utilisation d un prouveur SAT avec OpenSAT FIG. 2 Schématisation de l interface de OpenSAT (IClause, ILiteral...) contenues le paquetage org.opensat. La seule contrainte de programmation est de respecter les contrats liés aux interfaces. La mise en place d une nouvelle structure de données ne requiert aucune modification des algorithmes grâce au polymorphisme. La création de nouveaux algorithmes s effectue en réutilisant toutes les structures de données et toutes les classes déjà existantes. La conception objet et la notion d héritage sont d un grand secours. En effet, il n est pas nécessaire de réinventer la roue pour tester une nouvelle idée ou un nouvel algorithme. Le mot clé ici est la réutilisabilité. Il n y a qu à se focaliser sur le nouvel algorithme ce qui permet de gagner un temps considérable. La figure 3 donne une esquisse de l architecture choisie pour fournir les différents services offerts par un solveur SAT, avec certaines classes actuellement implémentées. La classe StackBasedDPLL implémente l interface ISolveur, et fournit un solveur DPLL itératif. L interface IBacktracker permet de spécifier quel type de backtracking est utilisé (chronologique, non chronologique...). L interface ILocalProcessing spécifie les services d un algorithme de local processing. L interface IHeuristic nous permet de choisir le type d heuristique à utiliser. Et enfin, on peut choisir une politique de redémarrage (IRestarter) et une politique d apprentissage des clauses (ILearningStrategy).

16 15 FIG. 3 Diagramme UML partiel de l implémentation de référence 2.2 Une implantation de référence d algorithmes pour SAT À terme, OpenSAT doit contenir un ensemble d algorithmes ayant prouvé leur efficacité pour la résolution du problème SAT. Cela donnera un caractère éducatif au projet, mais permettra également de comparer plus honnêtement ces divers algorithmes. Les structures de données actuellement implantées sont : Implantation classique dite des compteurs par tableau ou par liste Implantation des Watched Literals [Moskewicz et al., 2001] Pour l instant, les seuls prouveurs utilisables sont basés sur la procédure de Davis, Logemann et Loveland (DPLL) [Davis et al., 1962]. Ils contiennent les techniques de recherche suivantes : Retour arrière intelligent de RELSAT (voir [Bayardo et Schrag, 1997]). Retour non chronologique comme cela est fait dans GRASP [Marques-Silva et Sakallah, 1999] ou dans zchaff [Moskewicz et al., 2001] Apprentissage de clauses : plusieurs politiques d apprentissage peuvent être choisies (taille des clauses, hauteur de l arbre de recherche...). Il est également très facile de mettre au point sa propre politique d apprentissage (par simple héritage). Traitement local (littéraux purs, propagation des littéraux impliqués ( [Audemard et al., 2000; Le Berre, 2001]...). Diverses heuristiques de points de choix : Jeroslow et Wang [Jeroslow et Wang, 1990], VSIDS [Moskewicz et al., 2001].Lacréation de nouvelles heuristiques est également très simple. Il suffit d implémenter l interface IHeuristic. Les calculs internes aux heuristiques peuvent être faits incrémentalement ou à chaque appel. La version de référence 0.44, celle que nous avons soumise à la compétition SAT2003, contient le retour arrière non chronologique, l apprentissage de clauses de taille strictement inférieure à 5, les watched literals ainsi que l heuristique VSIDSLastMaters. À court terme, nous avons prévu les extensions suivantes : Recherche des symétries [Benhamou et Sais, 1994] Prouveur basé sur la recherche locale [Hoos et Stützle, 2000]. Techniques de préprocessing

17 Extensions prévues La plate-forme OpenSAT offrira à terme des possibilités intéressantes qui sont en général absentes des prouveurs développés : la possibilité d interrompre une recherche et de la sauvegarder pour la poursuivre ultérieurement, la possibilité de distribuer sur plusieurs ordinateurs l exploration de l arbre de recherche ainsi que la visualisation de l arbre de recherche exploré. Toutes ces extensions se fondent sur une abstraction qui permet de représenter un point de choix Points de choix La notion de point de choix est bien sûr fondamentale dans toute recherche de solution d un problème SAT. De nombreux algorithmes se fondent sur la procédure DPLL et utilisent des points de choix binaires avec une exploration en profondeur d abord. Cependant, s il s agit là du choix le plus efficace dans la plupart des cas, des points de choix non binaires ou des recherches en largeur d abord peuvent se révéler plus intéressants dans certaines portions de l arbre de recherche. Pour pouvoir utiliser différents types de points de choix au cours de la recherche, il faut bénéficier d une abstraction permettant de les représenter. Il est clair que l introduction de cette abstraction aura un coût en termes d efficacité par comparaison avec des procédures qui coderaient directement ces points de choix. Cependant, le but recherché ici est de faciliter l exploration de nouveaux algorithmes et les gains de performances qu ils peuvent apporter. Cette abstraction se révélera d autant plus intéressante qu elle rendra très faciles les extensions qui seront détaillées par la suite. Un extrait de l interface en cours de conception est le suivant : // un point de choix public interface IChoicePoint { IChoicePoint getparent(); // obtenir le père de ce point de choix boolean hasmorebranches(); // reste-t-il des branches à explorer? IBranch nextbranch(); // si oui, quelle est la prochaine branche? } boolean explore(); // explorer toutes les branches et // renvoyer le résultat de la recherche... // une branche d un point de choix public interface IBranch { void down(); // effectuer les interprétations portées par cette branche void up(); // backtrack void attach(ichoicepoint cp); // rattacher un nouveau point de choix... } Pour développer un solveur suivant ce modèle, il suffit de créer une classe qui implémente l interface IChoicePoint et qui a la charge de déterminer localement quelles branches doivent être explorées. Un prouveur récursif se construit alors très simplement par la création du premier point de choix et l exploration de ses branches : IChoicePoint racine=new DPLLChoicePoint(formula,heuristic); boolean satisfiable=racine.explore();

18 17 L exploration itérative de l arbre de recherche est bien sûr également possible. L intérêt de cette abstraction est de permettre de gérer uniformément divers types de points de choix. On peut envisager entre autres : des points de choix non binaires (par exemple, point de choix spécifiant comment satisfaire une clause donnée pour la recherche des impliquants premiers) un changement de type de point de choix au cours de la recherche pour utiliser une heuristique ou une méthode différente entre le sommet de l arbre et ses racines. pour des recherches spécifiques (points de choix universels ou existentiels dans le cas des formules QBF) pour effectuer d autres types de parcours dans certaines portions de l arbre (en largeur d abord, aléatoire,...) de gérer directement le retour arrière intelligent Interruption et reprise de la recherche Dans certains cas, on souhaite pouvoir interrompre une recherche de solution pour la reprendre ultérieurement. Malheureusement, la plupart des prouveurs n offrent pas cette possibilité. Il existe certes des systèmes de checkpointing permettant de sauvegarder un processus mais ces solutions sont en général fortement liées au système utilisé. L utilisation de points de choix permet de résoudre très facilement le problème puisqu il suffit de sauvegarder les points de choix existants ainsi que le point de choix actif Distribution de la recherche La résolution de certaines instances nécessite des ressources considérables (en temps ou en espace). La distribution de l exploration de l arbre de recherche sur plusieurs ordinateurs permet de pallier ces problèmes : en demandant à d autres machines d explorer certaines branches (répartition du temps de calcul nécessaire) en demandant à d autres machines de gérer une partie de la formule (répartition de la mémoire nécessaire) Cette répartition des calculs pose bien sûr des problèmes délicats. De ce fait, il serait souhaitable que ces problèmes soient résolus (au moins partiellement) dans une librairie accessible à tous. Là encore, une implantation utilisant les points de choix pourrait bénéficier très simplement de ces extensions prévues Visualisation des arbres de recherche Il est possible de sauvegarder une représentation de l arbre de recherche exploré pour pouvoir l étudier par la suite sous forme de graphique hypertexte. Cette étude peut servir à résoudre des bugs ou à étudier les choix effectués par les heuristiques afin de les améliorer. Un tel visualisateur est en cours d écriture et l utilisation des points de choix permettra d en bénéficier directement. 5 Il faut bien sûr que tout le contexte de la recherche soit rattaché d une manière ou d une autre aux points de choix (clauses apprises,..)

19 Passerelles avec des projets similaires Nous connaissons au moins deux projets similaires au nôtre dans le cadre plus général des problèmes de satisfaction de contraintes : CHOCO [Laburthe et projet Ocre, 2000] et ABSCON [Merchez et al., 2001]. Le projet OpenSAT est similaire dans ses objectifs au projet CHOCO. Les deux projets accordent de l importance à leur utilisation dans un cadre pédagogique. Dans le cadre d OpenSAT, cela se traduit par des algorithmes simples, proches de ceux des textbooks, et le soucis de faciliter leur réutilisation. Ils se différencient essentiellement sur le langage utilisé : CHOCO est basé sur un langage de contraintes, CLAIRE. De par son ancienneté, ce projet est plus mature que OpenSAT. Si OpenSAT est adopté par la communauté SAT, on pourrait concevoir des passerelles entre CHOCO et OpenSAT. D une part OpenSAT pourrait être étendu pour intégrer des techniques avancées de CHOCO. D autre part, CHOCO pourrait bénéficier des techniques de référence qui seront implantées dans OpenSAT. ABSCON tout comme OpenSAT est écrit en Java en utilisant une conception purement objet. Des travaux récents dans la communauté SAT reprennent le principe d abstraction, qui est à la base d ABSCON. Si cette approche s avère intéressante pour SAT, OpenSAT pourra bénéficier de l expérience d ABSCON. D un autre côté, les développeurs d ABSCON sont intéressés par certaines techniques déjà implantées dans OpenSAT. 3 Comment contribuer à OpenSAT Dès le départ, nous avons choisi de diffuser le projet de manière open source. Chacun peut le récupérer, le modifier et le redistribuer gratuitement. Afin que les utilisateurs venant du milieu industriel puisse en profiter, nous avons opté pour la licence LGPL (Lesser GNU Public Licence) qui permet d associer du code propriétaire et du code open source. Même dans ce cas, toute modification sur un projet open source distribué doit être rendue publique. Le choix de la licence LGPL est important car le succès du projet dépend de son adoption par une large catégorie d utilisateurs de techniques SAT. 3.1 Télécharger et utiliser La première règle à observer quand l on annonce un projet open source est de le faire uniquement lorsqu il y a déjà quelque chose à utiliser. C était le premier but. Actuellement la plateforme contient quelques algorithmes simples et quelques heuristiques. La distribution contient deux archives jar, la plate-forme proprement dite et un ensemble d outils permettant de gérer les options en ligne de commande 6. Une façon très simple d utiliser OpenSAT consiste àtélécharger les archives depuis http: // et à les sauver dans le même répertoire. Il suffit alors de disposer d une machine virtuelle Java récente (Sun J2SE par exemple) et lancer : java -jar opensat.jar <filename>. Le temps de calcul maximum par défaut est de 30 secondes, mais cette valeur peut être modifiée avec l option -t 120 par exemple. La liste de toutes les options est disponible en utilisant l option -h. Lors de l utilisation de OpenSAT, il est possible de rencontrer des bugs ou des comportements étranges. Il est alors recommandé d enregistrer un rapport de bug en utilisant OpenSAT 6 voir le site web

20 19 Bugzilla 7 situé à l adresse Cela permettra aux développeurs de maintenir plus efficacement le projet. 3.2 Participer L utilisation de OpenSAT est une voie pour contribuer à sa diffusion et à son essor. Mais il existe d autres façons plus actives de le faire. Nous avons développé la première version de OpenSAT en utilisant une approche de programmation extrême : la conception est basée sur les fonctionnalités actuellement implantées et non sur une vue globale. Cela a demandé des efforts constants de refactorisation. Les personnes intéressées peuvent regarder la conception et l implantation actuelle et nous faire part de leurs avis de façon àaméliorer celle-ci. Cela peut nous aider à atteindre l un des buts : fournir une plateforme capable d utiliser diverses techniques (recherche locale, apprentissage...) nécessitant des besoins très disparates. La première difficulté est de trouver une bonne abstraction et de faire le bon compromis entre généricité et efficacité. Un des aspects éducatifs de OpenSAT est de proposer une implantation des techniques SAT faisant partie de l état de l art en essayant de respecter le plus possible les pseudo algorithmes publiés. Ainsi, idéalement, chaque algorithme devrait contenir une référence aux articles qui lui sont associés, ainsi qu une description de ceux-ci. Étant donné que, jusqu à présent, nous nous sommes concentrés sur l implantation et la conception, nous avons besoin d aide pour nous aider à terminer la documentation de la plate-forme. La conception d une plate-forme Java pouvant rivaliser avec les meilleurs prouveurs, basés pour la plupart sur les langages C et C++, est difficile mais pas impossible (voir les résultats de JQuest2 dans la prochaine section). Les clés pour parvenir à cet objectif sont une bonne conception et de bonnes structures de données. Les personnes ayant une expérience de programmation Java sont donc les bienvenues pour participer activement au projet OpenSAT. Il existe plusieurs façons de concevoir la contribution de différentes personnes sur un projet open source : Tout le monde peut enregistrer les changements dans un dépôt CVS Seul un groupe de personnes sélectionnées peut enregistrer les changements dans le dépôt CVS. Les autres doivent envoyer leurs modifications à l un des membres du précédent groupe. Pour le moment, nous avons choisi la deuxième option. Cette stratégie doit permettre d assurer la validité des changements (aspects essentiels lorsque l on parle de prouveurs SAT). 4 Résultats obtenus lors de la compétition SAT2003 La compétition comporte trois catégories d instances : les instances construites à la main, les instances aléatoires et les instances issues de problèmes industriels. Chaque catégorie contient un peu plus de 300 instances. 28 prouveurs participent à la compétition. Le tableau 1 résume les résultats obtenus par OpenSAT. OpenSAT résoud 29 % des instances industrielles se qui le place en 18eme position. Le tableau 2 résume, pour les instances industrielles, les résultats des prouveurs zchaff [Moskewicz et al., 2001], limmat (A. Biere) les deux vainqueurs de l année dernière, de forklift (E. Goldberg) le meilleur prouveur de cette année et de JQuest2 [Lynce et Marques-Silva, 2002] 7

21 20 Nombre Pourcentage d instances Classement Meilleur d instances résolues (15 minutes) (sur 28) pourcentage Aléatoires 317 4% 25 51% Faîtes à la main 353 7% 20 36% Industrielles % 18 44% TAB.1 Résultats obtenus à la compétition SAT2003 qui respecte les spécifications d OpenSAT. Ces quelques chiffres sont intéressants. En un an, les prouveurs ont encore évolués. En effet, 4 prouveurs résolvent au moins 40 % des instances. Et les deux vainqueurs de l année dernière sont, aujourd hui, légèrement distancés. JQuest2, programmé en Java, résout le même nombre d instances que zchaff et limmat. Un prouveur écrit en Java peut donc être compétitif par rapport à des prouveurs écrits en C/C++. Prouveur Nb Series Nb instances Pourcentage Classement résolues résolues d instances résolues (sur 28) OpenSAT % 18 JQuest % 13 forklift % 1 zchaff % 13 limmat % 16 TAB. 2 Résultats de quelques prouveurs sur les instances industrielles La version OpenSAT soumis à la conférence etait déstinée principalement aux problèmes industriels. Cela est confirmé par les résultats obtenus sur les deux autres catégories d instances. 5 Conclusion Les prouveurs fondés sur la satisfaisabilité de formules propositionnelles utilisent des structures de données de plus en plus évoluées. Nous avons présenté dans cet article la plate-forme OpenSAT qui vise à permettre le partage des structures de données avancées et des algorithmes autour de SAT par la communauté des scientifiques ou des utilisateurs. Pour permettre une grande liberté dans la réutilisation de ces outils, la plate-forme est construite sur un langage objet, largement répandu et portable : Java. L objectif d OpenSAT est double : favoriser l utilisation de prouveurs SAT et favoriser le développement de nouveaux algorithmes en proposant directement les techniques les plus récentes, telles que les watched literals, le retour arrière intelligent, l apprentissage de clauses... ainsi que d autres extensions telles que la sauvegarde d une recherche de solution et sa reprise ultérieure, une distribution des calculs sur différentes machines... Par ailleurs, OpenSAT autorisera aussi une comparaison des algorithmes dans un cadre commun afin de mieux les évaluer. Ces objectifs sont d ores et déjà partiellement atteints. Le site org permet d obtenir la dernière version du projet, de se tenir informé du développement, de soumettre des rapports de bugs et des demandes d améliorations. Deux prouveurs liés à OpenSAT (JQUEST2 [Lynce et Marques-Silva, 2002] et l implantation de référence) ont été soumis à la compétition SAT 2003.

22 21 Chacun peut bénéficier de l effort commun investi dans OpenSAT et faire profiter la communauté de ses meilleures techniques en participant au développement open source qui a été retenu pour ce projet. Cette plate-forme se veut ouverte et ne se restreint pas au développement de prouveur SAT. Elle a d ores et déjà servi au développement d un prouveur pour les formules QBF (OpenQBF). Des travaux en cours permettront par ailleurs d y inclure bientôt les représentations par BDD. La plate-forme OpenSAT vient à peine de naître. Sa croissance nécessitera sans doute quelques évolutions dans sa conception, mais il ne fait aucun doute qu avec le soutien de tous, elle deviendra tout à fait mature très rapidement. Les bonnes volontés sont les bienvenues... Références [Audemard et al., 2000] G. Audemard, B. Benhamou, et P. Siegel. AVAL : An enumerative method for SAT. Dans Proceedings of first international conference on computational logic CL00, Londres, volume 1861 of LNCS, pages , [Bayardo et Schrag, 1997] R. Bayardo et R. Schrag. Using CSP look-back techniques to solve real-world SAT instances. Dans Proceedings of the 14th National Conference on Artificial Intelligence and 9th Innovative Applications of Artificial Intelligence Conference (AAAI- 97/IAAI-97), pages , Menlo Park, July AAAI Press. [Benhamou et Sais, 1994] B Benhamou et L. Sais. Tractability through symmetries in propositional calculus. Journal of Automated Reasoning, 12(1) :89 102, February [Biere et al., 1999] A. Biere, A. Cimatti, E. Clarke, et Y. Zhu. Symbolic model checking without BDDs. Dans Proceedings of the conference on automated verification, volume 1579 of LNCS, pages , [Davis et al., 1962] M. Davis, G. Logemann, et D. Loveland. A machine program for theoremproving. Communications of the ACM, 5(7) : , July [Dubois et al., 1996] Olivier Dubois, Pierre André, Yacine Boufkhad, et Jacques Carlier. Sat versus unsat. AMS, DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 26, [Dubois et Dequen, 2001] Olivier Dubois et Gilles Dequen. A backbone-search heuristic for efficient solving of hard 3 sat formulae. Dans Proceedings of the 17th International Joint Conference on Artificial Intelligence (IJCAI 01), [Giunchiglia et al., 2001] E. Giunchiglia, M. Narizzano, A. Tacchella, et M. Vardi. Towards an efficient library for sat : a manifesto. Dans Henry Kautz et Bart Selman, editors, Electronic Notes in Discrete Mathematics, volume 9. Elsevier Science Publishers, [Goldberg et Novikov, 2002] E. Goldberg et Y. Novikov. BerkMin : A fast and robust SATsolver. Dans Design, Automation, and Test in Europe (DATE 02), pages , March [Hoos et Stützle, 2000] H. Hoos et T. Stützle. Local search algorithms for SAT : An empirical evaluation. Journal of Automated Reasoning, 24(4) : , [Jeroslow et Wang, 1990] R. Jeroslow et J. Wang. Solving propositional satisfiability problems. Annals of Mathematics and Artificial Intelligence, pages , [Johnson et Trick, 1996] D. S. Johnson et M. A. Trick, editors. Second DIMACS implementation challenge : cliques, coloring and satisfiability, volume 26 of DIMACS Series in Discrete Mathematics and Theoretical Computer Science. American Mathematical Society, 1996.

23 22 [Kautz et al., 1996] H. Kautz, D. McAllester, et B Selman. Encoding Plans in Propositional Logic. Dans Proceedings of the Fifth International Conference on the Principle of Knowledge Representation and Reasoning, pages , [Laburthe et projet Ocre, 2000] François Laburthe et Le projet Ocre. Choco : implémentation du noyau d un système de contraintes. Dans Journ ées Nationales de la Résolution Pratique des problèmes NP-Complets (JNPC) - Marseillle, [Le Berre, 2001] D. Le Berre. Exploiting the real power of unit propagation lookahead. Dans Proceedings of the Workshop on Theory and Applications of Satisfiability Testing (SAT2001), volume 9 of Electronic Notes in Discrete Mathematics. Elsevier Science Publishers, [Li et Anbulagan, 1997] C. Li et Anbulagan. Heuristics based on unit propagation for satisfiability problems. Dans Proceedings of the 15th International Joint Conference on Artificial Intelligence (IJCAI-97), pages , August [Lynce et Marques-Silva, 2002] I. Lynce et J. Marques-Silva. Efficient data strutures for backtrack search SAT solvers. Dans Fifth International Symposium on the theory and applications of satisfiability testing, [Marques-Silva et Sakallah, 1999] J. Marques-Silva et K. Sakallah. Grasp : A search algorithm for propositional satisfiability. IEEE Transactions on Computers, 48(5) : , [Merchez et al., 2001] Sylvain Merchez, Christophe Lecoutre, et Frédéric Boussemart. Abscon : a prototype to solve csps with abstraction. Dans Proceedings of the Seventh International Conference on Principles and Practice of Constraint Programming, [Moskewicz et al., 2001] M. Moskewicz, C. Madigan, Y. Zhao, L. Zhang, et Sharad Malik. Chaff : Engineering an efficient sat solver. Dans Proceedings of 38th Design Automation Conference (DAC01), [Simon et al., 2002] L. Simon, D. Le Berre, et E. Hirsch. The SAT2002 Competition. Technical report, August http :// [Zhang et Stickel, 2000] H. Zhang et M. Stickel. Implementing the Davis-Putnam method. Journal of Automated Reasonning, 24 : , 2000.

24 Actes JNPC 03 Le problème de la cohérence des réseaux de contraintes du formalisme Philippe Balbiani IRIT, 118, route de Narbonne, Toulouse, France Jean-François Condotta Gérard Ligozat LIMSI-CNRS, Université de Paris XI, Orsay, France Résumé Dans cette contribution, nous étudions le problème de la cohérence du formalisme temporel qualitatif introduit par Pujari et al. Nous prouvons en premier lieu la NPcomplétude du problème de la cohérence pour le sous-ensemble des relations préconvexes. Nous montrons qu en revanche ce problème est polynomial pour l ensemble des relations fortement préconvexes. Enfin, nous définissons un autre ensemble de relations pour lequel le problème de la cohérence peut être décidé au moyen d une méthode similaire à celle de la méthode habituelle de la chemin-cohérence. 1 Introduction Le raisonnement temporel est une tâche centrale dans de nombreuses applications telles que la compréhension du langage naturel, la spécification et la vérification de programmes et systèmes, l ordonnancement temporel, etc. Dans le domaine du raisonnement temporel qualitatif, le formalisme proposé par Allen [All81], l algèbre des intervalles ( ), est certainement l un des modèles les plus connus. Allen considère comme entités temporelles les intervalles de la droite du temps (la droite des rationnels) et base le formalisme sur relations (qualitatives) binaires correspondant à toutes les configurations possibles des quatre bornes de deux intervalles. Dans le formalisme, l information temporelle est représentée par des réseaux de contraintes (réseaux de ) dont les variables représentent des intervalles et dont les contraintes sont exprimées par des disjonctions 23