Prolog consiste en une série de règles et de faits. Un programme est exécuté en présentant une requête et en voyant si cela peut être prouvé par rapport à ces règles et faits connus. Dans ce tutoriel, nous essaierons de vous donner une idée de la façon dont tout ceci est réalisé et vous apprendrons à écrire un programme simple pour vous-même.
Plan de cours
- Introduction
- Prolog, le chaînage-arrière
- Fonctionnement d’un interpréteur prolog
- Syntaxe : constantes et variables
- L’algorithme d’unification
- Le principe de résolution
- Ordre des prémisses
- Vision logique et vision opérationnelle
- Le traitement des listes
- Le traitement des listes en Prolog
- La coupure
- Problèmes avec contraintes
- Les expressions structurées
- Applications graphiques
- Un Prolog écrit en Lisp
- Applications en intelligence artificielle
Profitez de ce manuel de formation en PDF pour comprendre mieux le Prolog et enrichir votre connaissance.
Commencez à télécharger ce cours adapté pour vous et à apprendre Prolog.
12 Programmation par l’exemple en Prolog Ainsi par exemple, en Prolog, pred(X, Y) ne peut s’unifier avec pred(a, b, c) mais peut le faire avec pred(a, b) grâce à la suite de substitutions s = ((X ¬ a) (Y ¬ b)) appelée un « unificateur ». Cette fantaisie est po ssible pour la raison que Prolog n’est pas typé, c’est un peu ce qui se p asse dans les notations traditionnelles où « – » désigne à la fois l’opposé et la soustraction. Par ailleurs pred(X, Y) s’unifie avec pred([], 3) avec s = ((X ¬ []), (Y ¬ 3 )). pred(X, Y) s’unifie avec pred(N + 1, [a | L]) avec les deux substitutions X ¬ N + 1 et Y ¬ la liste [a | L] qui sont des termes structurés, mais il n’y aura p as de calcul effectué, même si N est connu. Le principe de résolution Pour montrer l’implication H Ù H 2 Ù … Ù H n ® C, il est équivalent de réfuter son contraire qui s’écrit H 1 Ù H 2 Ù … Ù H n Ù Ø C. Herbrand a montré en 1930 que cela était réalisable en un nombre fini de subs titutions amenant à une contradiction. Ce système est complet pour la réfut ation. Une des premières publications en 1973 fut celle de G. Battani et H. Meloui, Interpréteur du langage de programmation Prolog. En 1972, Colmerauer mit en œuvre le principe de résolution, constitué d’une seule règle, de Robinson (1965) : La règle [(P ou R) et (Q ou ¬ R)] ® (P ou Q) est vue comme un « effacement » de R, en particulier [( P ou ¬ R) et R] ® P qui est équivalent au « modus-ponens » [R et (R ® P)] ® P, preuve de P avec l’axiome R et la règle R ® P. En fait, très simplement, le programme Prolog const itué de l’axiome R et de la règle P :- R., mis en présence de la question P, va le prouver en effaçant R. L’exploration de toutes les possibilités, backtrack et stratégie standard Il y a retour en arrière (remontée dans l’arbre) ch aque fois que, ou bien toutes les règles ont été examinées sans unification possi ble, ou bien on arrive à une feuille de l’arborescence donnant un résultat, ou e ncore lorsqu’une impossibilité est bien notifiée dans la base de règles pour force r la remontée, c’est « l’impasse » (chapitre 3). Ainsi, si chaque descen te dans l’arbre est associée à