Licence Informatique
Anne 2000-2001
UNSA
TD2 : Aspects avancs de Prolog
Exercice 1 :
Traduire en franais les commandes Prolog suivantes et dire quel est le rsultat de leur
excution (en se basant sur lnonc de lexercice 1 du TD prcdent) :
repas(H, P, D) /.
repas(H, P, D) poisson(P).
repas(H, P, D) / poisson(P).
Exercice 2 :
Larbre gnalogique suivant :
pierre
herve
arthur
marie
est dcrit par le programme Prolog suivant :
homme(pierre).
homme(herve).
homme(arthur).
femme(marie).
pere(pierre, herve).
pere(pierre, arthur).
pere(pierre, marie).
A partir de ces assertions, donnez les rgles gnrales :
enfant(X, Y) qui exprime que X est un enfant de Y
fils(X,Y) qui exprime que X est un fils de Y
fille(X, Y) qui exprime que X est une fille de Y
frere-ou-sur(X, Y) qui exprime que X est frre ou sur de Y
frere(X, Y) qui exprime que X est un frre de Y
sur(X, Y) qui exprime que X est une sur de Y
Attention : un individu nest pas son propre frre ou sa propre sur.
Exercice 3 :
Une agence de voyages propose ses clients des sjours de une ou deux semaines Rome,
Londres ou Tunis.
Le catalogue de lagence contient, pour chaque destination, le prix du transport (indpendant
de la dure) et le prix dune semaine de sjour qui varie selon la destination et le niveau de
confort choisi : htel, chambre chez lhabitant ou camping.
1) Ecrire lensemble des assertions (rgles) qui dcrivent ce catalogue (les prix sont laisses
votre apprciation).
2) Exprimer la relation voyage(V, D, H, S) qui sinterprte par : le voyage dans la ville V
pendant D semaines avec lhbergement H cote S francs.
3) Complter par voyage-economique(V, D, H, S, SMAX) qui exprime que le cot de ce
voyage est infrieur SMAX francs.
On utilisera les rgles annexes :
multiplier(P, N, Q) :- val(mul(P, N), Q).
additonner(P, R, Q) :- val(add(P, R), Q).
inferieur(P, Q) :- val(inf(P, Q), 1).
interprtes respectivement par P*N=Q, P+R=Q, P<Q.
Exercice 4 :
Nous sommes dans une agence matrimoniale qui possde un fichiers de candidats au mariage
organis par les assertions suivantes :
homme(N, T, C, A).
femme(N, T, C, A).
ou N est le nom dun homme ou dune femme, T sa taille (grande, moyenne ou petite), C la
couleur de ses cheveux (blonds, bruns, roux, chtains), A son ge (jeune, mur ou vieux).
gout(N, M, L, S).
qui indique que la personne N aime le genre de musique M (classique, pop, jazz), le genre de
littrature L (aventure, science-fiction, policier), et pratique le sport S (tennis, natation,
jogging).
recherche(N, T, C, A).
qui exprime que la personne N recherche un partenaire de taille T, ayant des cheveux de
couleur C et dont lge est A.
On considre que deux personnes X et Y de sexes diffrents sont assorties si X convient Y et
si Y convient X. On dira que X convient Y si dune part X convient physiquement Y (la
taille, lge et la couleur des cheveux de X sont ceux que Y recherche) et si dautre part les
gots de X et Y en matire de musique, littrature et sport sont identiques.
1)Donner un ensemble dassertions reprsentant le fichier des candidats.
2)Ecrire les rgles dfinissant convient-physiquement(X, Y), puis les rgles dfinissant ontmemes-gouts(X, Y).
3)En dduire le programme qui dtermine les couples assortis.
Exercice 5 :
On se propose de dfinir un prdicat permettant de colorier la carte suivante :
C1
C2
C3
C4
Les rgles sont les suivantes :
On dispose de trois couleurs qui sont : vert, jaune et rouge ;
Deux zones contigus doivent avoir des couleurs diffrentes.
1) Ecrivez un prdicat coloriage(C1, C2, C3, C4) qui comportera deux parties. La premire
partie gnre toutes les valeurs possibles de C1, C2, C3 et C4. La seconde vrifie si les
colorations obtenues sont conformes la carte par lutilisation du prdicat X \= Y sur les
couleurs des zones contigus.
2) Reprenez ce prdicat, et modifiez le programme en dplaant les tests de diffrence de
couleurs le plus tt possible dans lcriture du prdicat, cest--dire en vrifiant les
diffrences de couleurs ds que celles-ci sont instancies. Quelle en est la consquence ?