Académique Documents
Professionnel Documents
Culture Documents
I. Introduction
Prolog est un langage de programmation déclaratif permettant de résoudre des problèmes logiques.
Le nom Prolog est l'acronyme de PROgrammation LOGique. Le principe de la programmation
logique est de décrire l'énoncé d'un problème par un ensemble d'expressions et de liens logiques au
lieu de définir pas à pas la succession d'instructions que doit exécuter l'ordinateur pour résoudre la
problématique.
Plusieurs implémentations de Prolog existent, aussi bien sous Windows que sous Linux. Parmi elle
il y a SWI-Prolog qui est un interpréteur Prolog gratuit et disponible aussi bien sous Windows que
sous Linux. (Site : https://www.swi-prolog.org/).
Remarques :
▪ par défaut Prolog attend l'extension .pl pour les fichiers source en Prolog (ce qui peut parfois
prêter à confusion avec les fichiers en Perl ...)
▪ l'extension .pl n'est pas indiquée dans l'instruction consult
▪ nous remarquons déjà qu'en Prolog chaque ligne finit par un point
Nous n'allons pas maintenant "exécuter" le programme, mais nous allons poser à l'interpréteur
Prolog un ensemble de questions pour lesquelles l'interpréteur consultera les faits et les règles
inscrits dans le programme.
Cette fois la variable X va prendre pour valeur chaque prénom. Le point-virgule permet toujours de
passer d'une réponse à la suivante. Le résultat final est alors :
X = paul;
ISSATM | 2
[INTELLIGENCE ARTIFICIELLE & MACHINE LEARNING] 2023/2024
X = pierre;
X = jean.
➔ Autre question : existe-t-il des animaux ?
?- animal(_).
Cette fois l'expression animal(_) sera vraie chaque fois que Prolog rencontre un animal (peut
importe lequel) dans la base des faits du programme. Comme Prolog rencontre 2 animaux, la
réponse à notre question est :
true ;
true.
La commande listing permet d'afficher le code source de la base de faits du programme courant :
?- listing.
Enfin, la commande halt permet de sortir de l'interpréteur Prolog :
?- halt.
1) Déclarations
2) Questions
ISSATM | 3
[INTELLIGENCE ARTIFICIELLE & MACHINE LEARNING] 2023/2024
V. Traduction d’énoncés
ISSATM | 4
[INTELLIGENCE ARTIFICIELLE & MACHINE LEARNING] 2023/2024
VI. Applications :
1) Créez un fichier app2.pl sur le bureau où vous allez saisir les faits el les règles du
programme suivant:
homme(ali).
homme(omar).
homme(said).
femme(céline).
femme(lila).
pere(said, ali).
pere(omar, ali).
mere(omar, céline).
mere(said, céline).
Questions :
ISSATM | 5
[INTELLIGENCE ARTIFICIELLE & MACHINE LEARNING] 2023/2024
2)
Ali s'est marié avec Amel et ont donné naissance à un garçon Said et une fille
Meriem. Said s'est marié avec Yasmine et ont deux filles Lina et Sarra. Meriem quant
à elle s'est mariée avec Youcef.
a- Décrire la famille de Ali en définissant un ensemble de faits utilisant les prédicats précédents.
b- Définir le prédicat femme(X, Y) qui signifie que X est la femme de Y.
c- Ecrire les questions suivantes en prolog et donner leurs réponses respectives :
d. Qui est la femme de Youcef ?
e. Qui est le mari de Amel ?
f. Définir le prédicat garçon(X, Y) qui spécifie que X est un enfant de Y de sexe mâle.
saluer(X, Bonjour) :- heure(X, Heure),Heure >= 0, Heure < 12, Bonjour = 'Bonjour, '.
saluer(X, Bonsoir) :- heure(X, Heure),Heure >= 12,Heure < 18, Bonsoir = 'Bonsoir, '.
saluer(X, BonneNuit) :-heure(X, Heure),(Heure >= 18; Heure < 0),BonneNuit = 'Bonne nuit, '.
heure(john, 8).
heure(emily, 15).
heure(sarah,21).