La Programmation Logique: PROLOG

Slides:



Advertisements
Présentations similaires
P.T. 2012/2013 Mise en œuvre de Prolog.
Advertisements

M. SAILLOUR Lycée Notre Dame du Kreisker St Pol de Léon
1/29 Le modèle de l ’atome Dernière mise à jour: Le 24 Septembre 2008.
DataLog ENSEIRB 2010/2011 Ch. Retoré
Initiation à l’utilisation du logiciel STATISTICA
PROLOG 1 Prolog - Initiation
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage Prolog Structures de données
Un langage de programmation logique
Raisonnement et logique
Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I113 Mél. : Actions nommées, Procédures.
Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I113 Mél. : Algorithmique : Programmes.
Mise en œuvre d’un programme
Prédicats prédéfinis Prédicats de type :
Termes préfixés et N-uplets
Analyse et Programmation Déclarative / Prolog
Calculs numériques en Prolog
Logique et raisonnement scientifique
Licence Informatique Module Théories et Modèles pour l'Informatique II Option Programmation logique en Prolog Philippe Collard
Systèmes Experts implémentation en Prolog
Fonctionnement du moteur Prolog
ACTIVITES MENTALES Collège Jean Monnet Question 1 Quel est le nombre entier suivant ?
ACTIVITES MENTALES Collège Jean Monnet Préparez-vous !
Le processus achat peut-il être différent selon sa classe ?
Réunion inter-régionale Leader 1 Mise en œuvre de Leader 2007 – 2013 LA GESTION.
Projet 4info.
Algorithmique et Structures de données
On parle darbre de recherche dune question *Racine de larbre : question *Nœuds : points de choix (formule à démontrer) *Passage dun nœud vers son fils.
18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL
Analyser une phrase % extraire une phrase et retourner le reste
Suites numériques.
Les éléments de base de l’algorithmique
Programmation logique Logique des prédicats du premier ordre
Particularités des calculs
Programmation logique Démonstrateur automatique
2.2 Les lignes de champ ( à lire attentivement )
Lundi, 13 septembre 2010 Algorithmie (cours 2) Cégep de Saint- Hyacinthe Par Hugo St-Louis.
Franois Fages Fvrier 2002 Trois axes de recherche: • Langages concurrents avec contraintes • Solveurs de contraintes • Environnements de mise au point.
Rappels de logique des prédicats du 1er ordre
CSI2520, Hiver 2007 Paradigmes de Programmation CSI 2520.
1. HISTORIQUE Origine PROLOG : PROgrammation LOGique : SIMULA 67
Chapitre 3 Syntaxe et sémantique.
CSI2520, Hiver 2007 Les entrées-sorties Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2)
CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche.
Programmation logique Le Langage PROLOG
Chapitre 1 NOMBRES RELATIFS 1) Multiplication 2) Division.
Structures de données IFT-2000 Abder Alikacem Semaine 12 (2 ième partie) Les B-arbres Département d’informatique et de génie logiciel Édition septembre.
Question 1-b (10 pts) 55, 5, 40, 80, 65, 30, 60, 20, 15, 85, Ajout de 55 Ajout de Ajout de 40.
Jacques Nicolas INRIA /IRISA Rennes
LE LANGAGE JAVASCRIPT LES TABLEAUX ET LES FONCTIONS.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Présenté par : Attia Hamza Merzouk Abdelkrim 2003/2004
Séquence 8 - Synthèse de formation. Réalisation/J4/S5/TR035PMG - Formation au Management de Projet - Jour "4" - Séquence "5" - Synthèse de formation -
Prolog Listes Arbres en prolog Structures : bases de données
IFT604 zIntroduction zProgrammation client-serveur.
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
Outils pour la programmation logique par contraintes
Exemple à faire: N°2 Ecrire l’Algorithme et le Programme PASCAL qui affiche la somme de deux nombres entiers donnés.
1 Quatrième journée Les flots de données Les entrées/sorties Les flots de données Les entrées/sorties.
1 Sixième journée Éléments de C++ La programmation typée Éléments de C++ La programmation typée.
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
Objets Opérateurs Listes
Rénovation STG – Économie Gestion - Académie de Lille – Mars 2005
Réaliser un diaporama sur un Roi de votre choix
Greetings.
Nicolas TassaraAnnée 2006 Université de la Méditerranée Aix-Marseille II École Supérieure d’Ingénieurs de Luminy Département informatique Luminy case 925.
Recherche documentaire à l’école.
LOGIQUE ET PROGRAMMATION LOGIQUE
Aristote VIème partie. Les travaux d’Aristote concernant la logique sont rassemblés sous le titre d’Organon (« instrument » en grec). C’est une discipline.

Transcription de la présentation:

La Programmation Logique: PROLOG Aline Deruyver IUT Robert Schuman

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

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

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.

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.

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).

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).

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).

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).

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).

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).

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).

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)).