SlideShare une entreprise Scribd logo
1  sur  2
Télécharger pour lire hors ligne
. Commençons par un exemple
simple : l’arbre généalogique
/* ========= */
/* les faits */
/* ========= */
/* les hommes */
homme(andre).
homme(bernard).
homme(babar).
homme(clement).
homme(dudulle).
homme(damien).
homme(baptiste).
homme(cedric).
homme(didier).
homme(dagobert).
/* les femmes */
femme(augustine).
femme(becassine).
femme(brigitte).
femme(chantal).
femme(celestine).
femme(caroline).
femme(charlotte).
femme(daniela).
femme(dominique).
*Veuillez consulter le fichier [Exemples/Fichier11.pl] du CD.
/* les relations de parenté */
enfant(bernard,andre).
enfant(bernard,augustine).
enfant(babar,andre).
enfant(babar,augustine).
enfant(brigitte,andre).
enfant(brigitte,augustine).
enfant(clement,bernard).
enfant(clement,becassine).
enfant(celestine,babar).
enfant(caroline,brigitte).
enfant(caroline,baptiste).
enfant(cedric,brigitte).
enfant(cedric,baptiste).
enfant(dudulle,clement).
enfant(dudulle,chantal).
enfant(damien,clement).
enfant(damien,chantal).
enfant(daniela,clement).
enfant(daniela,chantal).
enfant(didier,cedric).
enfant(didier,charlotte).
enfant(dagobert,cedric).
enfant(dagobert,charlotte).
enfant(dominique,cedric).
enfant(dominique,charlotte).
/* données générales (règles) */
parent(Y,X) :- enfant(X,Y).
pere(X,Y) :- parent(X,Y),homme(X).
mere(X,Y) :- parent(X,Y),femme(X).
fils(X,Y) :- enfant(X,Y),homme(X).
fille(X,Y) :- enfant(X,Y),femme(X).
grand_parent(X,Y) :- parent(X,Z),parent(Z,Y).
grand_pere(X,Y) :- grand_parent(X,Y),homme(X).
grand_mere(X,Y) :- grand_parent(X,Y),femme(X).
petit_enfant(X,Y) :- grand_parent(Y,X).
petit_fils(X,Y) :- petit_enfant(X,Y),homme(X).
petite_fille(X,Y) :- petit_enfant(X,Y),femme(X).
frere_ou_soeur(X,Y) :-
pere(P,X),pere(P,Y),mere(M,X),mere(M,Y),X==Y.
frere(X,Y) :- frere_ou_soeur(X,Y),homme(X).
soeur(X,Y) :- frere_ou_soeur(X,Y),femme(X).
oncle_ou_tante(X,Y) :-
parent(Z,Y),frere_ou_soeur(X,Z).
oncle(X,Y) :- oncle_ou_tante(X,Y),homme(X).
tante(X,Y) :- oncle_ou_tante(X,Y),femme(X).
cousin_ou_cousine(X,Y) :-
oncle_ou_tante(Z,X),enfant(Y,Z).
cousin(X,Y) :- cousin_ou_cousine(X,Y),homme(X).
cousine(X,Y) :- cousin_ou_cousine(X,Y),femme(X).
ancetre(X,Y) :- parent(X,Y).
ancetre(X,Y) :- parent(X,Z),ancetre(Z,Y).
Exemples de requêtes
?- homme(andre).
Yes
?- femme(andre).
No
?- enfant(bernard,andre).
Yes
?- enfant(bernard,caroline).
No
?- enfant(X,babar).
X = celestine
Yes
?- enfant(celestine,X).
X = babar
Yes
?- enfant(daniela,X).
X = clement ;
X = chantal ;
No
?- enfant(X,Y).
X = bernard
Y = andre ;
X = bernard
Y = augustine ;
X = babar
Y = andre ;
etc...
No
?- homme(X),femme(X).
No
?- homme(X),femme(Y).
X = andre
Y = augustine ;
X = andre
Y = becassine ;
X = andre
Y = brigitte ;
etc...
(on obtient tous les couples possibles et pas
uniquement ceux qui ont eu un enfant ensemble)
No
?- homme(X), femme(Y), enfant(Z,X), enfant(Z,Y).
X = andre
Y = augustine
Z = bernard ;
X = andre
Y = augustine
Z = babar ;
X = andre
Y = augustine
Z = brigitte ;
etc...
No
?- pere(P,dagobert).
P = cedric .
?- soeur(S,P),pere(P,dagobert).
S = caroline,
P = cedric .
?- mere(M,C),cousin(C,P),pere(P,dagobert).
M = becassine,
C = clement,
P = cedric .

Contenu connexe

En vedette

En vedette (11)

áRvore genealógica
áRvore genealógicaáRvore genealógica
áRvore genealógica
 
Árvore genealógica
Árvore genealógicaÁrvore genealógica
Árvore genealógica
 
A minha árvore genealógica
A minha árvore genealógicaA minha árvore genealógica
A minha árvore genealógica
 
Family tree
Family treeFamily tree
Family tree
 
A família e árvore genealógica
A família e árvore genealógicaA família e árvore genealógica
A família e árvore genealógica
 
Family tree presentation
Family tree presentationFamily tree presentation
Family tree presentation
 
Le famille pou
Le famille pouLe famille pou
Le famille pou
 
Family tree
Family tree Family tree
Family tree
 
Family tree
Family treeFamily tree
Family tree
 
Family.ppt[1]
Family.ppt[1]Family.ppt[1]
Family.ppt[1]
 
La famille FLE
La famille FLELa famille FLE
La famille FLE
 

Plus de Siham Rim Boudaoud (16)

12 quelques prédicats prédéfinis de swi
12  quelques prédicats prédéfinis de swi12  quelques prédicats prédéfinis de swi
12 quelques prédicats prédéfinis de swi
 
11 library
11 library11 library
11 library
 
10 chapitre 4 listes et récursivité
10 chapitre 4 listes et récursivité10 chapitre 4 listes et récursivité
10 chapitre 4 listes et récursivité
 
9 gl2
9 gl29 gl2
9 gl2
 
8 gl1
8 gl18 gl1
8 gl1
 
7
77
7
 
6 unification
6 unification6 unification
6 unification
 
5 installation de prolog
5 installation de prolog5 installation de prolog
5 installation de prolog
 
4 histoir
4 histoir4 histoir
4 histoir
 
3 intro
3 intro3 intro
3 intro
 
2
2 2
2
 
2 sommaire
2  sommaire2  sommaire
2 sommaire
 
1 page de garde
1 page de garde1 page de garde
1 page de garde
 
13 conclusion
13  conclusion13  conclusion
13 conclusion
 
Diapo. ite web dynamique sous JEE, application aux entreprises de production ...
Diapo. ite web dynamique sous JEE, application aux entreprises de production ...Diapo. ite web dynamique sous JEE, application aux entreprises de production ...
Diapo. ite web dynamique sous JEE, application aux entreprises de production ...
 
Mémoire de Licence, site web dynamique sous JEE, application aux entreprises ...
Mémoire de Licence, site web dynamique sous JEE, application aux entreprises ...Mémoire de Licence, site web dynamique sous JEE, application aux entreprises ...
Mémoire de Licence, site web dynamique sous JEE, application aux entreprises ...
 

8 arbre généalogique

  • 1. . Commençons par un exemple simple : l’arbre généalogique /* ========= */ /* les faits */ /* ========= */ /* les hommes */ homme(andre). homme(bernard). homme(babar). homme(clement). homme(dudulle). homme(damien). homme(baptiste). homme(cedric). homme(didier). homme(dagobert). /* les femmes */ femme(augustine). femme(becassine). femme(brigitte). femme(chantal). femme(celestine). femme(caroline). femme(charlotte). femme(daniela). femme(dominique). *Veuillez consulter le fichier [Exemples/Fichier11.pl] du CD. /* les relations de parenté */ enfant(bernard,andre). enfant(bernard,augustine). enfant(babar,andre). enfant(babar,augustine). enfant(brigitte,andre). enfant(brigitte,augustine). enfant(clement,bernard). enfant(clement,becassine). enfant(celestine,babar). enfant(caroline,brigitte). enfant(caroline,baptiste). enfant(cedric,brigitte). enfant(cedric,baptiste). enfant(dudulle,clement). enfant(dudulle,chantal). enfant(damien,clement). enfant(damien,chantal). enfant(daniela,clement). enfant(daniela,chantal). enfant(didier,cedric). enfant(didier,charlotte). enfant(dagobert,cedric). enfant(dagobert,charlotte). enfant(dominique,cedric). enfant(dominique,charlotte). /* données générales (règles) */ parent(Y,X) :- enfant(X,Y). pere(X,Y) :- parent(X,Y),homme(X). mere(X,Y) :- parent(X,Y),femme(X). fils(X,Y) :- enfant(X,Y),homme(X). fille(X,Y) :- enfant(X,Y),femme(X). grand_parent(X,Y) :- parent(X,Z),parent(Z,Y). grand_pere(X,Y) :- grand_parent(X,Y),homme(X). grand_mere(X,Y) :- grand_parent(X,Y),femme(X). petit_enfant(X,Y) :- grand_parent(Y,X). petit_fils(X,Y) :- petit_enfant(X,Y),homme(X). petite_fille(X,Y) :- petit_enfant(X,Y),femme(X). frere_ou_soeur(X,Y) :- pere(P,X),pere(P,Y),mere(M,X),mere(M,Y),X==Y. frere(X,Y) :- frere_ou_soeur(X,Y),homme(X). soeur(X,Y) :- frere_ou_soeur(X,Y),femme(X). oncle_ou_tante(X,Y) :- parent(Z,Y),frere_ou_soeur(X,Z). oncle(X,Y) :- oncle_ou_tante(X,Y),homme(X). tante(X,Y) :- oncle_ou_tante(X,Y),femme(X). cousin_ou_cousine(X,Y) :- oncle_ou_tante(Z,X),enfant(Y,Z). cousin(X,Y) :- cousin_ou_cousine(X,Y),homme(X). cousine(X,Y) :- cousin_ou_cousine(X,Y),femme(X). ancetre(X,Y) :- parent(X,Y). ancetre(X,Y) :- parent(X,Z),ancetre(Z,Y).
  • 2. Exemples de requêtes ?- homme(andre). Yes ?- femme(andre). No ?- enfant(bernard,andre). Yes ?- enfant(bernard,caroline). No ?- enfant(X,babar). X = celestine Yes ?- enfant(celestine,X). X = babar Yes ?- enfant(daniela,X). X = clement ; X = chantal ; No ?- enfant(X,Y). X = bernard Y = andre ; X = bernard Y = augustine ; X = babar Y = andre ; etc... No ?- homme(X),femme(X). No ?- homme(X),femme(Y). X = andre Y = augustine ; X = andre Y = becassine ; X = andre Y = brigitte ; etc... (on obtient tous les couples possibles et pas uniquement ceux qui ont eu un enfant ensemble) No ?- homme(X), femme(Y), enfant(Z,X), enfant(Z,Y). X = andre Y = augustine Z = bernard ; X = andre Y = augustine Z = babar ; X = andre Y = augustine Z = brigitte ; etc... No ?- pere(P,dagobert). P = cedric . ?- soeur(S,P),pere(P,dagobert). S = caroline, P = cedric . ?- mere(M,C),cousin(C,P),pere(P,dagobert). M = becassine, C = clement, P = cedric .