Constraint Programming within CLIPS

J.-M. Labat, M. Futtersack

LIP6 1997/029: Rapport de Recherche LIP6 / LIP6 research reports
29 pages - Novembre/November 1997 - Document en anglais.

PostScript : 46 Ko /Kb

Contact : par mail / e-mail

Thème/Team: Systèmes d'Aide à la Décision et à la Formation

Titre français : Programmation par contraintes en CLIPS
Titre anglais : Constraint Programming within CLIPS


Résumé : CCP (CLIPS Constraint Programming) est une base de connaissance générique qui permet de faire de la programmation par contraintes a l'interieur du système CLIPS.
CCP est composé de trois modules. Le module MAIN contient la boucle de top-level incluant les règles d'interface H/M. Le module SEARCH implante un algorithme classique de backtrack chronologique.
Le module PROPAGATION implante un algorithme de Forward Checking. CCP a été testé sur de nombreux problèmes classiques : N-reines, coloration de graphe, mots croisés, etc.
Pour résoudre un nouveau problème, il suffit à l'utilisateur de déclarer chaque variable et son domaine, ainsi que les règles de propagation de contraintes. Ainsi toutes les connaissances spécifiques à un probleme sont encapsulées dans le module PROPAGATION.
CCP est un outil générique qui peut être intégré dans un système à base de règles pour faire localement de la programmation par contraintes.
CCP est tres compact puisqu'il ne contient en tout qu'une quinzaine de règles générales. De plus, CCP peut être utilisé à des fins pédagogiques car il illustre de nombreuses fonctionnalités avancées de CLIPS (dépendances logiques, quantificateurs existenciel et universel, écriture dynamique de règles, utilisation de la pile des focus pour le contrôle stratégique).

Abstract : CCP (CLIPS Constraint Programming) is a generic knowledge base which enables CLIPS to solve CSPs (Constraint Satisfaction Problems). CCP is composed of three modules. The MAIN module contains the top level loop including the I/O rules. The SEARCH module implements a classical Chronological Backtrack algorithm. The PROPAGATION module implements the Forward Checking algorithm. CCP has been extensively tested with well known puzzles as N-queens, graph colouring, crosswords, etc. To implement any particular problem, the users only need to declare each variable with its domain and they have to define specific domain description and rules of propagation. So that all specific knowledge is encapsulated in the PROPAGATION module. CCP is a generic tool that can be embedded in a knowledge based system like a work horse for local CSPs solving. CCP is compact, since it contains only a dozen rules. Moreover, CCP can be seen as a pedagogical tool illustrating many advanced features of CLIPS (logical dependencies, forall, exists conditional elements, the built function and a control strategy based on the focus stack).


Mots-clés : contraintes, CLIPS, CCP, CSP

Key-words : constraints, CLIPS, CCP, CSP


Publications internes LIP6 1997 / LIP6 research reports 1997

Responsable Éditorial / Editor
webmaster@lip6.fr