TP Prolog Par Vincent Ferrier (Inf3)

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 7

REPUBLIQUE DU TCHAD

Unité – Travail - Progrès


*****
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR,
DE LA RECHERCHE ET DE L’INNOVATION
*****
UNIVERSITE DE N’DJAMENA
*****
FACULTE DES SCIENCES EXACTE ET APPLIQUE (FSEA)
*****
DEPARTEMENT DE L’INFORMATIQUE
*****
NIVEAU : LICENCE 3

TRAVEAUX PRATIQUE DE PROGRAMMATION LOGIQUE

Mini-projet de Programmation
logique

Réalisé par : Sous la direction de :


VINCENT FERRIER Mr. IDRISS OUMAR ADAM
RAMADINGUE

Année académique 2023-2024

60135700
Plan du travail
Introduction.
Mise en œuvre.
I. Exercice 1.
II. Exercice 2.
III. Exercice 3.
Conclusion.

1
Mini projet de Prolog rédigé par Vincent Ferrier RAMADINGUE
Introduction
La programmation logique est un paradigme de programmation basé sur la logique
mathématique. Elle se fonde sur le concept des règles logique et d'inférence pour
résoudre des problèmes. Le langage de programmation le connu pour la programmation
logique est "Prolog". En programmation on définit des faits et des règles logique qui
décrivent les relations entre différentes entités du problème. On peut ensuite poser des
requêtes a un moteur d'inférence qui va utiliser ces règles pour déduire de nouvelles
informations a partir de des faits existant.

Mise en œuvre

I. Exercice 1
1 - Voici les faits correspondant aux énoncés donnés :

2 - Pour charger le programme dans SWI-Prolog, nous pouvons utiliser le menu "File"
puis "Consult".

3 - Pour tester le programme, nous pouvons utiliser la requête suivante :

Homme (samir).

Cette requête permettant de vérifier si "samir" est un homme est vrai.

2
Mini projet de Prolog rédigé par Vincent Ferrier RAMADINGUE
4 - La requête "?-listing (homme)." affiche tous les faits et règles concernant les hommes.
Cela permet de voir la liste des hommes déclarés dans le programme.

5 - Pour retourner toutes les personnes aimées par Sara par exemple, nous pouvons
utiliser la requête :

aime(sara, X).

Cette requête retournera toutes les personnes (X) aimées par "sara".

6 - Pour tester si mostafa aime quelqu'un sans retourner ce dernier, nous pouvons
utiliser la variable anonyme (_) dans la requête suivante :

aime(mostafa, _).

Cette requête vérifie si "mostafa" aime quelqu'un sans retourner le nom de cette
personne.

7 - La requête "?-listing(jaloux)." affiche tous les faits et règles concernant les jaloux.
Cela permet de visualiser la liste des jaloux déclarés dans le programme.

8 - Pour afficher les hommes jaloux, nous pouvons utiliser la requête suivante :

homme(X), jaloux(X, _).

Cette requête retournera tous les hommes (X) qui sont jaloux.

Arbre généalogique :
1 - Pour vérifier si Paul est un homme, vous pouvez utiliser la requête suivante :

homme(paul).

Cette requête vérifie si "paul" est un homme.

2 - Pour vérifier si Benoit est une femme, nous pouvons utiliser la requête suivante :

femme(benoit).

Cette requête vérifie si "benoit" est une femme.

3 - Pour afficher toutes les femmes et tous les hommes, nous pouvons utiliser les
requêtes suivantes :

femme(X).

homme(X).

3
Mini projet de Prolog rédigé par Vincent Ferrier RAMADINGUE
La première requête retourne toutes les femmes (X) et la deuxième requête retourne
tous les hommes (X).

4 - Pour vérifier si Marie est la mère de Sophie,nous pouvons utiliser la requête suivante:

mere(marie, sophie).

Cette requête vérifie si "marie" est la mère de "sophie".

5 - Pour vérifier si Marie est la mère de Benoit, vous pouvez utiliser la même requête que
précédemment :

mere(marie, benoit).

Cette requête vérifie si "marie" est la mère de "benoit".

6 - Pour trouver la mère de Jean, vous pouvez utiliser la requête suivante :

mere(X, jean).

Cette requête retournera le nom de la mère (X) de "jean".

7 - Pour afficher les enfants de Paul, vous pouvez utiliser la requête suivante :

pere(paul, X); mere(paul, X).

Cette requête retournera tous les enfants (X) de "paul".

8 - Pour afficher les hommes qui sont pères, vous pouvez utiliser la requête suivante :

homme(X), pere(X, _).

Cette requête retournera tous les hommes (X) qui sont pères.

4
Mini projet de Prolog rédigé par Vincent Ferrier RAMADINGUE
Traduction d'énoncés :
En résume, voici comment cela serait formule en Prolog(le tableau ci-dessous)

Pour demander à Prolog « Qui vole quoi ? », on pourrait poser une requête comme si :

?- vole(X, Y).

II. Exercice 2
1 - Voici la traduction de Prolog de l’énoncé donné :

est_malade(X) :- a_grippe(X).

a_grippe(X) :- a_fievre(X), tousse(X).

a_fievre(X) :- temperature_elevee(X).

temperature_elevee(mohammed).

tousse(mohammed).

2 - Problématique à résoudre, voici la règle en Prolog pour déterminer si MOHAMMED


prendre un congé de maladie

doit_prendre_conge_de_maladie(X):- est_malade(X).

Voici une petite capture d’écran qui compile :

5
Mini projet de Prolog rédigé par Vincent Ferrier RAMADINGUE
III. Exercice 3
Voici la traduction en Prolog de l’énoncé donné :

Conclusion
La programmation logique est souvent utilisée dans des domaines comme l'intelligence
artificielle, la résolution des problèmes complexes et la représentation des
connaissances. Elle permet de décrire les problèmes de manière déclarations en
spécifiant ce que l'on veut obtenir plutô t que comment y arriver, ce qui facilite la
résolution des problèmes complexes.

6
Mini projet de Prolog rédigé par Vincent Ferrier RAMADINGUE

Vous aimerez peut-être aussi