Option Prolog
Correction du TD2 : Aspects avancés de Prolog ... et dire quel est le résultat de
leur exécution (en se basant sur l'énoncé de l'exercice 1 du TD précédent) :.
part of the document
sson ».
repas(H, P, D) / poisson(P).
Cette question peut être interprétée comme : « trouver le premier ensemble de valeurs de H, P, D qui satisfait la relation repas et vérifier sil comporte du poisson en plat principal».
Exercice 2 :
Pour définir enfant, il suffit de remarquer que X est un enfant de Y si Y est le père de X. On a donc la définition :
enfant(X, Y) :- pere(Y, X).
Ensuite, X est un fils (respectivement une fille) de Y si X est un enfant de Y et si X est de sexe masculin (respectivement féminin). On obtient ainsi les deux règles :
fils(X, Y) :- enfant(X, Y), homme(X).
fille(X, Y) :- enfant(X, Y), femme(X).
Si on admet que X est le frère ou la sur de Y si X et Y ont le même père Z, la relation frere-ou-sur sécrit :
frere-ou-sur(X, Y) :- pere(Z, X), pere(Z, Y), dif(X, Y).
Le dif permet déviter quun individu soit son propre frère ou sa propre sur en forçant X et Y à prendre des valeurs différentes. A cet endroit, on aurait aussi pu utiliser X\=Y.
On termine en remarquant que X est le frère (respectivement la sur) de Y à condition que X soit frère ou sur de Y et que X soit de sexe masculin (respectivement féminin). Ce qui nous donne :
frere(X, Y) :- frere-ou-sur(X, Y), homme(X).
sur(X, Y) :- frere-ou-sur(X, Y), femme(X).
Exercice 3 :
1)Sans commentaires
2)Voilà la règle :
voyage(V, D, H, S) :- transport(V, T), sejour(V, H, N), duree(D), multiplier(N, D, P),
additionner(P, T, S).
V : ville
D : durée, vaut 1 ou 2
H : hébergement
S : coût total
T : tarif du transport
N : prix du séjour pour 1 semaine
3)Voilà la règle :
voyage-economique(V, D, H, S, Smax) :- voyage(V, D, H, S), inferieur(S, SMax).
Exercice 4 :
1)sans commentaire.
2)Voici les règles qui permettent de sassurer que deux individus conviennent lun à lautre :
convient-physiquement(X, Y) :- homme(X, T, C, A),
femme(Y, T, C, A),
recherche(X, T, C, A),
recherche(Y, T, C, A).
convient-physiquement(X, Y) :- femme(X, T, C, A),
homme(Y, T, C, A),
recherche(X, T, C, A),
recherche(Y, T, C, A).
meme-gouts(X, Y) :- gouts(X, M, L, S), gouts(Y, M, L, S).
Remarquez lutilisation des mêmes variables qui permet de forcer légalité de manière simple et élégante.
3)Et pour terminer :
assortis(X, Y) :- convient-physiquement(X, Y), meme-gouts(X, Y).
Exercice 5 :
couleur(vert).
couleur(jaune).
couleur(rouge).
Coloriage(C1, C2, C3, C4) :- couleur(C1), couleur(C2), couleur(C3), couleur(C4),
C1\=C2, C1\=C3, C1\=C4,
C2\=C3, C3\=C4.
Ici, on génère tout dabord les couleurs, et on effectue les tests de conformité ensuite.
Coloriage(C1, C2, C3, C4) :- couleur(C1), couleur(C2), C1\=C2,
couleur(C3), C1\=C3, C2\=C3,
couleur(C4), C1\=C4, C3\=C4.
Ici, on effectue les tests de conformité à la volée, ce qui réduit grandement la taille de larbre de recherche.