Prolog est un langage fréquemment utilisé dans l’intelligence artificielle où la manipulation des symboles et l’inférence à leur sujet est une tâche commune.
Plan de cours
- La programmation logique
- Constitution d’un programme PROLOG
- La programmation impérative
- La programmation fonctionnelle
- Utilisations de PROLOG
- Formalisation de systèmes experts
- Énumération exhaustive
- Écritures condensées
- Représentation spécialisée de nombres
- La recherche de solution
- Exécution d’un programme PROLOG
- L’interactivité par les requêtes
- La recherche de preuves par l’unification
- Fonctionnement général
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.
Dossier sur PROLOG Utilisations de PROLOG Ex : Qui sont les parent s de Loui s XIV ? ?- bio(louis14,_,_,_,Parent,_);bio(louis14,_,_,_,_,Parent). Parent = louis13 ; Parent = anne_autriche ; No On obt ient ici une sous-t abl e à un seul attribut avec deux données. De ce fai t, on perd l ’inform ation sur l e sexe des parent s pui squ’i ls sont tous l es de ux réuni s sous l e m ême attribut . II.1.2.4. Recherche dans un intervalle de valeurs PR OLOG peut gérer un i nterval le de val eurs. Ex : Quel s sont les personnages nés ent re 1750 et 1800 ? ?- bio(Qui,_,N,_,_,_),1750=<N,N=<1800. Qui = louis16 N = 1754 ; Qui = louis18 N = 1755 ; Qui = charles10 N = 1757 ; Qui = clotilde N = 1759 ; Qui = louis17 N = 1785 ; Qui = louis_philippe1 N = 1773 ; No Il y a si x enfant s qui sont nés ent re 1750 et 1800. La recherche de sol utions dans un i nterval le de val eur fa it ap paraître q uelques caractéristiq ues in téressan tes d e PROLOG : • L’i mplém ent ation de PR OLOG ne respect e pas com plètement la logi que du prem ier ordre : une requêt e n’est pas traitée com me une form ule com plète m ais elle est divisée en form ules at om iques (l es but s) rel iées par des di sjonct ions et/ou des conjonct ions et ces sous-form ules sont traitées l es unes après l es aut res dans l ’ordre où elles se trouvent sur la ligne (de gauche à droi te). • PR OLOG consi dère à pri ori tout e vari abl e num éri que com me fai sant part i des réel s. Ex : Quel s sont les personnages nés ent re 1750 et 1800 ? ?- 1750=<N,N=<1800,bio(Qui,_,N,_,_,_). ERROR: Arguments are not sufficiently instantiated Par rapport au prem ier exem ple, nous n’avons fai t qu’i nverser l es form ules de l a requêt e ce qui en l ogi que ne change ri en pui sque l ’opérat eur ∧ est com mutatif. M ais com me nous l ’avons di t just e au-dessus, PR OLOG découpe l es requêt es en form ules at om iques. Il va donc d’abord s’at tacher à résoudre l e but 1750=<N . Or N étant à priori un réel, il y a une infinité de sol ution à ce but . Il arri ve à le détecter et alors il s’arrête. Rem : Nous venons de voi r dans cet exem ple un des rares cas où PR OLOG effect ue un cont rôl e. Sans cel a, i l chercherai t tous les N (réels) ≤ 1750 avant de passer à l a form ule at om ique sui vant e. Donc i l ne t erm inerai t jam ais. Pour cont ourner ces deux di fficul tés (l es règl es sont découpées en form ules at om iques et les vari abl es num éri ques sont considérées com me des réels) dans le cas d’une recherche da ns un in terv alle d e valeu rs, PROLOG in tro duit le m ot clé between(debut,fin,X) où X est une vari abl e consi dérée com me un en tier et com prise entre ‘debut’ et ‘fin’. Ex : Quel s sont les personnages nés ent re 1750 et 1800 ? ?- between(1750,1800,N),bio(Qui,_,N,_,_,_). N = 1754 Qui = louis16 ; N = 1755 Qui = louis18 ; N = 1757 Qui = charles10 ; N = 1759 Qui = clotilde ; N = 1773 Qui = louis_philippe1 ; N = 1785 Qui = louis17 ; 6