Constraint Programming within CLIPS - Archive ouverte HAL
Rapport (Rapport De Recherche) Année : 1997

Constraint Programming within CLIPS

Programmation par contraintes en CLIPS

Résumé

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).
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).
Fichier principal
Vignette du fichier
lip6.1997.029.pdf (66.73 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02557389 , version 1 (28-04-2020)

Identifiants

  • HAL Id : hal-02557389 , version 1

Citer

Jean-Marc Labat, Michel Futtersack. Constraint Programming within CLIPS. [Research Report] lip6.1997.029, LIP6. 1997. ⟨hal-02557389⟩
116 Consultations
446 Téléchargements

Partager

More