Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université de Relizane
Département Informatique Année académique 2021/2022
Intelligence Artificielle : L3 - SI Responsable du module : S. Bella
Test Corrigé
Exercice 1 :
Soit l’arbre généalogique suivant :
1. Quels sont les prédicats (et leur arité) dont vous avez besoin pour définir cet arbre généalogie?
1) homme/1 3) pere/2
2) femme/1 4) mere/2
2. Définir la base de faits décrivant cet arbre généalogique.
/*hommes*/ femme(fatima). pere(iyad, sonia).
homme(adam). femme(amira). pere(karim, zakaria).
homme(anes). femme(asma). /*mères*/
homme(ramy). femme(sofia). mere(amina, leila).
homme(mohammed). femme(sonia). mere(amina, rayane).
homme(amine). /*pères*/ mere(amina, malek).
homme(sami). pere(adam, leila). mere(amina, mohammed).
homme(iyad). pere(adam, rayane). mere(leila, amine).
homme(karim). pere(adam, malek). mere(leila, sami).
homme(zakaria). pere(adam, mohammed). mere(rayane, iyad).
/*femmes*/ pere(anes, amine). mere(rayane, karim).
femme(amina). pere(anes, sami). mere(sara, amira).
femme(leila). pere(ramy, iyad). mere(sana, asma).
femme(rayane). pere(ramy, karim). mere(sana, sofia).
femme(malek). pere(amine, amira). mere(sana, sonia).
femme(sara). pere(iyad, asma). mere(fatima, zakaria).
femme(sana). pere(iyad, sofia).
1/1
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université de Relizane
Département Informatique Année académique 2021/2022
Intelligence Artificielle : L3 - SI Responsable du module : S. Bella
3. Traduire les questions suivantes en Prolog et donner leurs réponses :
a) Leila est-elle une femme ? ?-femme(leila).
true
b) Sara est-il un homme ? ?-homme(sara).
false
c) Quelles sont les mères ? ?-mere(X,_).
X = amina ; X = amina ; X = amina ; X = amina ; X = leila ;
X =leila ; X = rayane ; X = rayane ; X = sara ; X = sana ;
X = sana ; X =sana ; X = fatima.
d) Quels sont les enfants de adam? ?- pere(adam,X).
X = leila ; X = rayane ; X = malek ; X = mohammed.
4. Définir les relations suivantes grâce à des règles.
Note : vous pouvez trouver d'autres définitions pour ces règles
a) parent(X,Y): X est parent de Y si X est mère de Y ou si X est père de Y .
parent(X,Y) :- mere(X,Y);pere(X,Y).
b) grand_parent(X, Y) : X est un grand-parent de Y.
grand_parent(X,Y) :- parent(X,Z), parent(Z,Y).
c) est_mere(X) : X est une mère.
est_mere(X) :- mere(X,_). (Ou est_mere(X) :- parent(X, _) , femme(X).)
d) enfant(X, Y) : X est enfant de Y.
enfant(X, Y) :- parent(Y,X).
e) fille(X, Y) : X est une fille de Y.
fille(X,Y) :- enfant(X, Y),femme(X).
f) fils(X, Y) : X est un fils de Y.
fille(X,Y) :- enfant(X, Y),homme(X).
g) soeur(X, Y) : X est une soeur de Y.
soeur(X, Y) :- femme(X),parent(Z,X), parent(Z,Y), X \== Y.
h) frere(X, Y) : X est un frère de Y.
frere(X, Y) :- homme(X), parent(Z,X), parent(Z,Y), X \== Y.
i) oncle(X, Y) : X est un oncle de Y.
oncle(X, Y) :- frere(X, Z), parent(Z, Y).
5. Traduire les questions suivantes à Prolog et prévoir leurs réponses :
a) Est-ce que mohamed est un fils de adam ? ?- enfant(mohammed, adem).
true
b) Est-ce que rayane est une soeur de anes ? ?- soeur(rayane, anes).
false
c) Est-ce que rayane est une mère ? ?- est_mere(rayane).
true
d) Qui est l'oncle de karim ? ?- oncle(X,karim).
X = mohammed ;
false.
2/1