Projet Loco

previous up next contents
Précédent : Composition de l'équipe Remonter : Projet LOCO, Programmation en LOgique Suivant : Fondements scientifiques



Présentation générale et objectifs

Historique

Le projet LOCO, créé le 21 Octobre 96, est un projet commun à l'INRIA-Rocquencourt et au laboratoire LIFO de l'université d'Orléans. Il regroupe deux équipes géographiquement distinctes travaillant en étroite concertation, à l'INRIA et au LIFO, sur la programmation en logique avec contraintes.

Les axes de recherche

La Programmation en Logique avec Contraintes (PLC) connait depuis quelques années un certain succès, tant au point de vue théorique et académique qu'au point de vue pratique et industriel. Elle allie en effet la simplicité d'écriture de programmes et la déclarativité de la Programmation en Logique (PL) à la puissance et l'efficacité du calcul sur des domaines spécifiques à l'aide d'outils particuliers et optimisés (« résolveurs de contraintes »).

La PLC permet d'utiliser des domaines de calculs particuliers, tels les contraintes arithmétiques rationnelles, réelles ou même complexes, les formules booléennes, les domaines finis ou les structures à traits. L'intégration de ces calculs plus ou moins numériques dans un cadre logique se fait ainsi au moyen de contraintes, c'est-à-dire de relations représentant une certaine information portant sur un ensemble de variables et les liant ainsi entre elles. On peut en fait voir les contraintes comme « interface » entre un découpage logique du programme (des clauses de Horn, c'est-à-dire un sous-ensemble des formules logiques du premier ordre) et un aspect calculatoire où se met en oeuvre un (ou des) algorithme(s) de résolution particulier(s) sur un domaine calculable (contraintes). La PLC donne un sang neuf à la fois aux cadres théoriques et aux paradigmes anciens en PL (la programmation concurrente avec contraintes en étant l'exemple le plus frappant) et à la mise en oeuvre de langages de programmation effectifs, témoin en est l'intérêt porté aux langages commerciaux de PLC. De nombreuses applications peuvent en effet s'exprimer simplement et efficacement dans le cadre PLC: problèmes combinatoires, ordonnancement, cutting-stock, simulation de circuits, diagnostic de panne, analyse financière, aide à la décision, etc. Celles-ci utilisent bien sûr différentes contraintes, domaines de calculs et algorithmes de résolution, mais elles peuvent toutes s'exprimer naturellement dans un cadre uniforme, la PLC et être mises en oeuvre efficacement dans les principaux langages de PLC existant actuellement. Ceci montre le large champ d'application sur lequel s'est ouvert la PL en intégrant contraintes et résolveurs sur des domaines de calcul spécifiques.

Les problèmes liés à la PLC et son utilisation peuvent se regrouper en trois aspects principaux qui constituent les dominantes des axes de recherche du projet:



previous up next contents Précédent : Composition de l'équipe Remonter : Projet LOCO, Programmation en LOgique Suivant : Fondements scientifiques