Tp 1 – initiation à prolog - intelligence artificielle ai -

Intelligence Artificielle AI - Prolog : TP 1 – Initiation à Prolog

Télécharger PDF

Introduction à Prolog

Prolog est un langage de programmation logique. Cela signifie qu’un programme ne se présente pas sous forme d’une suite d’instructions (comme en programmation impérative), mais comme un ensemble d’« affirmations sur le monde » (faits et règles), constituant une base de connaissances. L’utilisation du programme se fait en interrogeant cette base de connaissances.

Prolog dispose d’un moteur puissant capable de déduire certains faits à partir de ceux présents dans sa base de connaissances. Une autre manière de le voir est de considérer Prolog comme un système expert générique utilisant le chaînage arrière. Nous utiliserons SWI-Prolog, une implémentation libre (sous licence LGPL) de ce langage.

Exercice 1

Analyse du fait bidule(toto, X, pierre, Y) : - Nom de relation : bidule - Arité : 5 - Noms d’objets : toto, pierre - Variables : X, Y - Ce fait n’est pas clos car il contient des variables.

Exercice 2

Représentation des connaissances sous forme de faits Prolog : impair(5). superieur(5, 3). chien(snoopy). cours(programmation_logique, mercredi, 13_30, 15_30, grande_amphi).

Exercice 3

Expression des connaissances sous forme de clauses Prolog : pere(dominique, jeanne). animal(chien). mammifere(chien). mammifere(homme). successeur(X, Y) :- entier(X), entier(Y). frere(X, Y) :- pere(X, Z), pere(Y, Z), X \== Y.

Exercice 4

Arbre généalogique : femme(augustine). femme(jennifer). femme(lea). femme(monique). homme(simon). homme(eric). homme(bruno). homme(franck). homme(marcel). mere(augustine, jennifer). mere(augustine, lea). mere(monique, eric). mere(monique, franck). pere(simon, eric). pere(simon, franck). pere(bruno, jennifer). pere(bruno, lea).

FAQ sur Prolog

1. Qu’est-ce qu’un fait clos en Prolog ?

Un fait est clos lorsqu’il ne contient aucune variable. Par exemple, chien(snoopy) est clos, tandis que bidule(toto, X) ne l’est pas.

2. Comment définir une relation récursive en Prolog ?

Utilisez des clauses avec une condition de base et une condition récursive. Par exemple, pour la relation ancetre(X, Y) : ancetre(X, Y) :- mere(X, Y). ancetre(X, Y) :- pere(X, Y). ancetre(X, Y) :- ancetre(X, Z), mere(Z, Y). ancetre(X, Y) :- ancetre(X, Z), pere(Z, Y).

3. Quelles sont les différences entre write et print en Prolog ?

write(X) affiche la représentation interne du terme X, tandis que print(X) affiche la valeur de la chaîne de caractères associée à X.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne