Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
La forme clausale
Règles à suivre :
a) Transformation et permutation des 2. xA(x) xB(x) x(A(x) B(x))
quantificateurs 3. xA(x) xB(x) x(A(x) B(x))
1. xyA(x,y) yxA(x,y) 4. x(A(x) B(x)) xA(x) xB(x)
2. xyA(x,y) yxA(x,y) 5. A xA(x) x(A A(x)) ; A ne contient
3. xyA(x,y) xA(x,x) pas d’occurrence libre de x
4. xA(x,x) xyA(x,y) ; x est libre pour 6. A xA(x) x(A A(x)) ; A ne contient
y dans A(x,y) pas d’occurrence libre de x
5. xA(x) x(A(x) 7. A xA(x) x(A A(x))
6. xyA(x,y) yxA(x,y) 8. A xA(x) x(A A(x))
ABIDET-BAHI H.
Département Informatique
3ème année licence
Module : Programmation logique
Unification et résolution
S3={X(P(X)(Q(X)R(X))), Y(Q(Y)R(Y))}
F3 = X (R(X) P(X))
S4={X(P(X)(Q(X)R(X))),X(Q(X)R(X)).
F4 = X (P(X) R(X))
Abidet-Bahi H.
Département Informatique
3ème année licence
Module : Programmation logique
6. Le “monde de Tarski” est un logiciel qui permet de tester la validité d’une information par
rapport à une configuration choisie dans l’univers des blocs. Dans l’exemple ci-dessous,
deux prédicats à un argument servent à identifier le type d’objet : Cube(x) si x est un
cube, Pyramide(y) si y est une pyramide
une relation binaire “Gauchede” permet de décrire la position relative d’un objet par
rapport à un autre (on se limitera à une seule direction)
a- Préparer les formules (clauses) et mettre en place la méthode de réfutation (on notera A le
cube et B la pyramide du modèle ci-dessus).
b- Appliquer la règle de résolution avec unification pour démontrer que l’énoncé E peut se
déduire des informations données (on se limitera à utiliser les seules résolutions qui
permettent d’aboutir le plus vite à la contradiction).
Abidet-Bahi H.
Département Informatique
3ème année licence
Module : Programmation logique
animal(mammal,tiger,carnivore,stripes).
animal(mammal,hyena,carnivore,ugly).
animal(mammal,lion,carnivore,mane).
animal(mammal,zebra,herbivore,stripes).
animal(bird,eagle,carnivore,large).
animal(bird,sparrow,scavenger,small).
animal(reptile,snake,carnivore,long).
animal(reptile,lizard,scavenger,small).
5.
- Définissez des règles qui donnent la nationalité d’une personne, en fonction de son lieu de
naissance.
- Définissez une règle qui indique si une personne est un immigrant (i.e. il n’habite pas dans le
pays où il est né).
- Donnez la requête qui vous donne la liste des immigrants algériens en Angleterre.
feminin(pam).
feminin(liz).
Abidet-Bahi H.
Département Informatique
3ème année licence
Module : Programmation logique
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).
pere(X,Y) :-
enfant(Y,X),
masculin(X).
a) Quelle est la requête Prolog qui permet d’avoir le père de bob (sans utiliser le prédicat
père)
b) Définissez les prédicats suivants : mere/2, grand-pere/2, frere/2, tante/2, cousin/2
c) Définissez les prédicats suivants : enfant(X, Y) qui exprime que X est un enfant de Y
d) fils(X,Y) qui exprime que X est un fils de Y
e) fille(X, Y) qui exprime que X est une fille de Y
f) frere-ou-sœur(X, Y) qui exprime que X est frère ou sœur de Y.
g) Il est à noter qu’un individu n’est pas son propre frère ou sa propre sœur.
Les règles sont les suivantes : On dispose de trois couleurs qui sont : vert, jaune et rouge ;
Deux zones contiguës doivent avoir des couleurs différentes.
Ecrivez un prédicat coloriage(C1, C2, C3, C4) qui comportera deux parties. La première
partie génère toutes les valeurs possibles de C1, C2, C3 et C4. La seconde vérifie si les
colorations obtenues sont conformes à la carte. Reprenez ce prédicat, et modifiez le
programme en déplaçant les tests de différence de couleurs le plus tôt possible dans l’écriture
du prédicat, c’est-à-dire en vérifiant les différences de couleurs dès que celles-ci sont
instanciées. Quelle en est la conséquence ?
Abidet-Bahi H.
Département Informatique
3ème année licence
Module : Programmation logique
habite(jean,paris).
habite(hans,munich).
habite(juan,madrid).
capitale(paris).
capitale(madrid).
habite-capitale(Qui) :-
habite(Qui,Qqpart),capitale(Qqpart).
frère(ali,nabil).
frère(omar,sami).
père(omar,ali),
père(omar,nabil).
Abidet-Bahi H.
Département Informatique
3ème année licence
Module : Programmation logique
?- compresser([a,a,a,a,b,c,c,a,a,d,e,e,e,e],L1).
L1 = [a,b,c,a,d,e].
7. Les mutants … ce sont des animaux dont le nom est obtenu par telescopage de 2 noms d
animaux réels: comme par exemple la vacheval ou le lapintade….
Ecrivez un programme prolog qui fabrique tous les mutants à partir d une collection
d’animaux.
On pourra utiliser le prédicat prédéfini name/2 , tel que
name(X,Y) fournit la liste de caractères Y correspondant à l’atome X
Abidet-Bahi H.