Académique Documents
Professionnel Documents
Culture Documents
Plia Lab1 SCR
Plia Lab1 SCR
1. Proposer une définition de l'Intelligence Artificielle (IA). Discuter des forces et faiblesses de
cette définition.
Intelligence Artificielle - branche informatique orienté vers la création des machines qui
auront un comportement intelligent, c'est-à-dire percevoir, penser et agir rationnellement, presque
comme un humain.
b. ?- a( X, c ) = X( b, Y ).
L’unification n’est pas possible, les clauses sont différentes.
c. ?- a( b( X ), c, W ) = a( Y, X, d( 2, Y ) ).
L’unification est possible, les substitutions nécessaires : X / c, W / d(2, b(c)), Y / b(c).
d. ?- g( X, a, Y ) = g( Y, C, f( X ) ).
L’unification n’est pas possible : X/*, Y/*, Y/ f(*), C = a.
e. ?- 2 + 2 = 3 + 1.
L’unification n’est pas possible.
f. ?- A + 2 = 5 + A.
L’unification n’est pas possible. On ne peut pas faire les deux substitutions en même temps : A/2,
A/5.
g. ?- a(A,B,C,D) = a(C,A,D,e).
L’unification est possible, les substitutions nécessaires : A/e, B/e, C/e, D/e.
11. Étant donné le programme logique qui suit, où les clauses sont numérotées de 1 à 27. Tracer
l'arbre de résolution Prolog de la requête "?- enseignant(X).". Arrêter au premier succès. Indiquer
dans l’arbre les numéros des règles utilisées, les substitutions et la raison des échecs s'il y a lieu.
1. enseignant(A):- professeur(A).
2. enseignant(A):- charge(A).
3. professeur(A):- chercheur_pour(A,U), universite(U).
4. charge(A):- grad(A), universite(U), emploie(U,A).
5. charge(A):- professionnel(A), universite(U), emploie(U,A).
6. professionnel(A):- chercheur_pour(A,C), compagnie(C).
7. chercheur_pour(A,B):- grad(A), emploie(B,A).
8. grad(A):- phd(A).
9. grad(A):- msc(A).
10. phd(A):- msc(A), these(A).
11. msc(A):- bacc(A), memoire(A).
12. msc(A):- bacc(A), stage(A).
13. bacc(a).
14. bacc(b).
15. bacc(c).
16. bacc(d).
17. memoire(d).
18. memoire(c).
19. memoire(b).
20. these(c).
21. these(d).
22. universite(ul).
23. compagnie(ibm).
24. emploie(ul,d).
25. emploie(ul,c).
26. emploie(ibm,a).
27. emploie(ibm,d).
1 A/X
professeur(X)
3 A/X
chercheur_pour(X,U)
universite(U)
7 A/X
grad(X),emploie(B,X)
universite(U)
8 A/X 9 A/X
phd(X), msc(X)
emploie(B,X) emploie(B,X)
universite(U) universite(U)
10 A/X 11 A/X 12 A/X
enseignant(X)
4 A/Xcharge(X) 4 A/X
grad(X) professionnel(X)
universite(U) universite(U )
emploie(U,X) emploie(U,X)
6 A/X
la meme comme
la premiere branche chercheur_pour(X,C)
compagnie(C)
universite(U)
emploie(U,X)
echec
12. Étant donné le programme Prolog ci-dessous, répondre aux questions qui suivent:
%est_un(X,Y) représente le fait que X est un Y
est_un(bloc1,cube). %1
est_un(bloc2,cube). %2
est_un(bloc3,cube). %3
est_un(pyramide1,pyramide). %4
est_un(table1,table). %5
%sur(X,Y) représente le fait que X est sur Y
sur(bloc1,bloc2). %6
sur(bloc2,bloc3). %7
sur(bloc3,table1). %8
sur(pyramide1,bloc1). %9
%couleur(X,Y) représente le fait que la couleur de X est Y
couleur(bloc1, rouge). %10
couleur(bloc2, bleu). %11
couleur(bloc3, bleu). %12
couleur(pyramide, vert). %13
%Prédicat quelconque
a(X):- sur(X, table1). %14
a(X):- sur(X, Y), est_un(Y,cube), a(Y). %15
a) Traduire par une requête Prolog les questions suivantes. Préciser s’il y a lieu le nom de la
variable contenant la réponse.
bloc2
X = bloc1,
Y = bloc2,
Z = bloc3;
false.
false.
IV. Le bloc #1 est posé sur un cube de quelle couleur?
?- couleur(X,Y),sur(bloc1,X),est_un(X,cube),write(Y).
bleu
X = bloc2,
Y = bleu ;
false.
b) Traduire en français les requêtes suivantes en Prolog (La variable contenant la réponse
recherchée est Y.) :
I. ?- est_un(X,pyramide), sur(X,Y), est_un(Y,cube).
Quelle pyramide se trouve sur un cube ?
II. ?- sur(Y,X), sur(X,W), couleur(W,jaune).
Quel bloc est sur un autre bloc qui a son tour se trouve sur un bloc jeune ?
III. ?- couleur(Y,bleu).
Quels blocs sont de couleur bleu ?
IV. ?- est_un(Y, cube), est_un(Y,table).
Un cube est une table ?
c) Construire l’arbre de résolution de la requête "?-a(bloc2).". Chaque branche de l’arbre construit
doit être étiquetée du numéro de la clause (qui sont numérotées de 1 à 15) et, s’il y a lieu, des
substitutions ou de la raison de l’échec. Arrêter au premier succès.
true .
false.
X = robert ;
X = elizabeth ;
false.
Y = tom ;
false.
X = luc,
Y = anne ;
false.
Conclusion
Dans ce travail pratique nous nous sommes familiarisés avec les particularités et les
principes de l’Intelligence Artificielle. Nous avons appris les bases de la programmation en Prolog,
c’est-a-dire effectuer une unification, effectuer un appel a la console, faire un arbre de résolution,
définir un prédicat de manière récursive. En résultat, je pense que les buts du travail ont été atteints.