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 Aline Deruyver IUT Robert Schuman.

Présentations similaires


Présentation au sujet: "La Programmation Logique: PROLOG Aline Deruyver IUT Robert Schuman."— Transcription de la présentation:

1 La Programmation Logique: PROLOG Aline Deruyver IUT Robert Schuman

2 Plan zIntroduction yHistorique yDifférences avec les autres langages zLes premiers programmes PROLOG yLes 2 parties d un programme yUn programme avec variables zLe raisonnement PROLOG yPrésentation de l exemple ydétails du raisonnement (arbre de raisonnement) yLes principes

3 Plan zL unification zLe CUT ydéfinition yExemples yLe CUT et la négation yLe CUT pour sélectionner une règle zIntroduction aux listes yDéfinition yExemples yEtude du prédicat appartient

4 Le premier programme PROLOG z?- lire. /*question ou but*/ z/*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 z/*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). z/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 » z/*but*/ z?- est_de_bonne_humeur(X), write(X). z/*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). z/*Règle1*/ est_en_vacances(jean) :- on_est_en(aout).

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

8 L unification zbibliothè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 /*faits*/ c(10). c(20). d(5,15). d(25,35). 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). e(2000). a(X1,X2,X3,X4) :- b(X1), c(X2), !, d(X3), e(X4).

11 Le CUT pour sélectionner une règle zmax1(X,Y,M) :- X=Y, M:=X. zmax2(X1,X2,M) :- X1=X2, M:=X1. zmax3(X1,X2,M) :- 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 zajout():- write("nom:"), read(N), write("prenom"), read(P), assert_in(personne(N,P)). zsupprimer():- write("nom:"), read(N), write("prenom"), read(P), retract_in(personne(N,P)).


Télécharger ppt "La Programmation Logique: PROLOG Aline Deruyver IUT Robert Schuman."

Présentations similaires


Annonces Google