Présentation

Article

1 - GÉNÉRALITÉS

  • 1.1 - Programmation avec contraintes (PC)
  • 1.2 - Programmation logique avec contraintes (PLC)
  • 1.3 - Exemple illustratif de la PLC dans le domaine financier
  • 1.4 - Méthodologie de construction de programmes en PLC

2 - LES CONTRAINTES EN PROLOG III

  • 2.1 - Contraintes sur les listes
  • 2.2 - Contraintes numériques
  • 2.3 - Contraintes booléennes

3 - CONTRAINTES SUR LES DOMAINES FINIS ET SUR LES INTERVALLES

  • 3.1 - Contraintes sur les domaines finis
  • 3.2 - Contraintes sur les intervalles

4 - CONCLUSION ET PERSPECTIVES

Article de référence | Réf : H3158 v1

Les contraintes en Prolog III
Programmation logique avec contraintes

Auteur(s) : Laurent TRILLING

Date de publication : 10 mai 1998

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

Auteur(s)

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

La programmation logique avec contraintes (PLC) se révèle être un nouveau type de programmation promis, à notre avis, à un large succès : la rapidité dans la conception et la mise en œuvre qu’elle permet sont des atouts décisifs dans le monde compétitif que nous connaissons. Son origine remonte à la prise de conscience, dans les années quatre-vingt, par les auteurs de langages de programmation logique comme Prolog qu’un « calcul » peut être considéré comme la démonstration de la satisfiabilité (existence de solutions) d’un système d’équations au sens large.

Les principaux outils disponibles sur le marché tels Prolog III, CHIP (Constraint Handling in Prolog) ou Ilog-Solver datent du début des années quatre-vingt-dix. Si cette programmation reste encore relativement peu connue dans l’industrie informatique, on doit signaler l’essor des entreprises la maîtrisant. On peut signaler aussi que les scientifiques et les industriels européens et, singulièrement, français occupent une place prédominante dans ce secteur qui n’a pas encore autant attiré l’attention des Nord-Américains. Il est dit méchamment que cela est dû au fait que les programmeurs d’outre-Atlantique apprécient moins les mathématiques que leurs collègues européens. Peut-être est-ce exact, mais attention, il est vrai aussi que les Américains sont extrêmement prompts à s’engager dans des technologies de pointe une fois leur intérêt reconnu…

Cet article est organisé de la façon suivante. La première partie est une introduction aux principes essentiels de la PLC. La seconde est consacrée, plus particulièrement, aux contraintes aisément compréhensibles disponibles dans le langage Prolog III. La troisième est dévolue aux contraintes sur les domaines finis, au centre de nombreuses applications, et aux contraintes sur les intervalles qui prennent une place de plus en plus importante. La conclusion a pour objectif de dresser un état de la situation et des perspectives envisageables.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3158


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Version en anglais English

2. Les contraintes en Prolog III

Nous abordons ici les domaines de contraintes disponibles en Prolog III suivants : listes, rationnels et booléens.

L'autre domaine, celui des arbres, est traité en [1]. Signalons tout de même à son propos que la vision équationnelle a conduit très tôt à se poser la question suivante : quelle est la solution en termes d'arbres de l'équation X = f(1, X) ? Prolog II y répondait déjà : il s'agit d'un arbre infini rationnel. Ce type d'arbres, qui permet de représenter des graphes finis comme des objets à part entièrefirst-class citizen(en anglais), reste très confidentiel. Mais nous augurons qu'il ne le restera pas.

2.1 Contraintes sur les listes

L'utilisation très intensive des listes est à l'origine de l'introduction d'un domaine spécialisé.

La modélisation est la suivante.

Les objets sont de la forme : <e1,…,en>

L'opération est la concaténation notée . telle que :

<e1,…,en>.<f1,…,fn> = <e1,…,en,f1,…,fn>

Les contraintes binaires sont : =(égalité), #(diségalité).

La contrainte unaire est L:: n signifiant que la longueur de la liste L est n.

Cependant, une restriction dite de linéarité est imposée pour des raisons de complexité du résolveur. Dans une concaténation X.Y la longueur de la liste X doit être connue.

Exemple 6

le système {X.<X1,X2> = <1, 2, 3, 4>} se résout en {X= <1, 2>, X1 = 3, X2 = 4>}

Le système {<1, 2, 3>.X= X.<1, 2, 3>, X::6} se résout en { X = <1, 2, 3, 1, 2, 3>}

Le système {X.<1>.Y = <1, 2, 1, 2>} n'est pas résolu car la longueur de X n'est pas connue.

Exemple 7

soit à définir le prédicat inverse(X, Y) vrai si la liste X est l'inverse de Y. Sa spécification est immédiate :

inverse(<>, <>).

inverse(<E>.X, Y.<E>) :− inverse(X, Y).

Soit la question : inverse(<1, 2, 3>, Y). Sa terminaison peut être établie sans difficulté. Cependant, comme il a été signalé au paragraphe 1.4...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Les contraintes en Prolog III
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - BOIZUMAULT (P.) -   Langage Prolog  -  . [H 3 098], Technologies logicielles – Architectures des systèmes (2001).

  • (2) - COLMERAUER (A.) -   An introduction to Prolog III  -  . Communications of the ACM, 33, 7 (1990).

  • (3) - DINCBAS (M.), VAN HENTENRYCK (P.), SIMONIS (H.), AGGOUN (A.), GRAF (T.), BERTHIER (F.) -   The constraint logic programming language CHIP  -  . International Conference on Fifth Generation Computer Systems (FGCS’88), Tokyo (1988).

  • (4) - TSANG (E.) -   Foundation of constraint satisfaction  -  . Academic Press (1993).

  • (5) - OLDER (W.), VELLINO (A.) -   Extending prolog with constraint arithmetic on real interval  -  . Canadian Conference on Electrical and Computer Engineering (1990).

  • (6) -   Le manuel Prolog IV  -  . Compagnie ProloglA Marseille (1996).

  • ...

NORMES

  • Technologies de l’information – Langages de programmation – Prolog – Partie 1 : noyau général. - ISO/CEI 15211-1 - 1995

  • Technologies de l’information – Langages de programmation – Prolog – Partie 2 : modules. - ISO/CEI 15211-2 - 2000

ANNEXES

  1. 1 Logiciels

    1 Logiciels

    (liste non exhaustive)

    ILOG Solver

    http://www.ilog.com/products/solver

    CHIP V5, COSYTEC

    http://www.cosytec.com

    Polog II + (compilateur)Prolog IV (langage), PROLOGIA

    http://www.prologia.fr

    GNU Prolog

    http://www.gnu.org/software/gprolog

    SWI – Prolog

    http://www.swi-prolog.org

    Visual Prolog 6

    http://www.visual-prolog.com

    HAUT DE PAGE

    Cet article est réservé aux abonnés.
    Il vous reste 95% à découvrir.

    Pour explorer cet article
    Téléchargez l'extrait gratuit

    Vous êtes déjà abonné ?Connectez-vous !


    L'expertise technique et scientifique de référence

    La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
    + de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
    De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

    Cet article fait partie de l’offre

    Technologies logicielles Architectures des systèmes

    (240 articles en ce moment)

    Cette offre vous donne accès à :

    Une base complète d’articles

    Actualisée et enrichie d’articles validés par nos comités scientifiques

    Des services

    Un ensemble d'outils exclusifs en complément des ressources

    Un Parcours Pratique

    Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

    Doc & Quiz

    Des articles interactifs avec des quiz, pour une lecture constructive

    ABONNEZ-VOUS