La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

La Programmation Logique: PROLOG

Présentations similaires


Présentation au sujet: "La Programmation Logique: PROLOG"— Transcription de la présentation:

1 La Programmation Logique: PROLOG
Aline Deruyver IUT Robert Schuman

2 Plan Introduction Les premiers programmes PROLOG
Historique Différences avec les autres langages Les premiers programmes PROLOG Les 2 parties d ’un programme Un programme avec variables Le raisonnement PROLOG Présentation de l ’exemple détails du raisonnement (arbre de raisonnement) Les principes

3 Plan L ’unification Le CUT Introduction aux listes définition Exemples
Le CUT et la négation Le CUT pour sélectionner une règle Introduction aux listes Définition Etude du prédicat appartient

4 Le premier programme PROLOG
?- lire /*question ou but*/ /*Règle 1*/ lire :- write("donner un entier"), read(X), nl, write("votre entier est"), write(X), nl.

5 Une petite base de données
/*faits*/ personne(germaine, 85). personne(émile, 63). personne(léon, 35). personne(lucie, 27). personne(louis, 40). personne(pauline, 9). personne(jean, 1). personne(luc, 27). /Règles*/ individu(X) :- personne(X,_). Majeur(X) :- personne(X,Y), Y>=18. Mineur(X) :- personne(X,Y), Y<18. Meme_age(X,Y) :- personne(X,Z), personne(Y,Z), X =\= Y.

6 Le raisonnment PROLOG Le programme « HUMEUR »
/*but*/ ?- est_de_bonne_humeur(X), write(X). /*Faits*/ a_de_largent(jean). a_de_largent(alain). on_est_en(juillet). reussit_dans_le_travail(jean). reussit_dans_le_travail(alain). reussit_dans_sa_famille(alain). /*Règle1*/ est_en_vacances(jean) :- on_est_en(aout).

7 Le raisonnment PROLOG Le programme « HUMEUR »
/*Règle2*/ est_en_vacances(alain) :- on_est_en(juillet). /*Règle3*/ il_y_a_du_soleil :- on_est_en(aout). /*Règle 4*/ est_de_bonne_humeur(X) :- a_de_largent(X), est_en_vacances(X), il_y_a_du_soleil. /*Règle5*/ est_de_bonne_humeur(X) :- reussit_dans_le_travail(X), reussit_dans_sa_famille(X).

8 L ’unification bibliothèque(l(a(de_closets, francois), toujours_plus, c(grasset,1982)), jean). bibliothèque(l(a(borges, jorge_louis), enquêtes, c(gallimard,1957)), jean). bibliothèque(l(a(hugo, victor), les_misérables, c(_,2002)), jean). bibliothèque(l(a(foucault, michel), naissance_de_la_clinique, c(puf,1963)), pierre). bibliothèque(l(a(hugo, victor), _, c(livre_poche,2002)), pierre).

9 Utilisation du CUT /*R1*/ /*faits*/ a(X,Y) :- b(X),c(Y). c(10). /*R2*/
e(1). e(2). f(100). /*R1*/ a(X,Y) :- b(X),c(Y). /*R2*/ a(X,Y) :- d(X,Y). /*R3*/ b(X) :- e(X), !. /*R4*/ b(X) :- f(X).

10 Utilisation du CUT b(1). b(2). c(10). c(20). d(100). d(200). e(1000).
a(X1,X2,X3,X4) :- b(X1), c(X2), !, d(X3), e(X4).

11 Le CUT pour sélectionner une règle
max1(X,Y,M) :- X=<Y, M:=Y. max1(X,Y,M) :- X>Y, M:=X. max2(X1,X2,M) :- X1=<X2, !,M:=X2. max2(X1,X2,M) :- X1>X2, M:=X1. max3(X1,X2,M) :- X1=<X2,!, M:=X2. max3(X1,_,M) :- M:=X1. max4(X1,X2,X2) :- X1=<X2,!. max4(X1,_,X1).

12 Introduction aux listes
appartient(E, [E|_]). appartient(E, [_|L]):-appartient(E,L). longueur([],0). longueur([_|L], N) :- longueur(L,NN), N:=NN+1. concate([],L2,L2). concate([E|L],L2,[E|LLL]):- concate(L,L2,LLL).

13 La database ajout():- write("nom:"), read(N), write("prenom"), read(P), assert_in(personne(N,P)). supprimer():- write("nom:"), read(N), write("prenom"), read(P), retract_in(personne(N,P)).


Télécharger ppt "La Programmation Logique: PROLOG"

Présentations similaires


Annonces Google