Le langage Prolog - PowerPoint PPT Presentation

About This Presentation
Title:

Le langage Prolog

Description:

Title: Le langage Prolog Author: Russo Last modified by: martin Created Date: 3/7/2001 11:05:21 AM Document presentation format: Affichage l' cran – PowerPoint PPT presentation

Number of Views:127
Avg rating:3.0/5.0
Slides: 32
Provided by: Russ2158
Category:

less

Transcript and Presenter's Notes

Title: Le langage Prolog


1
Le langage Prolog
  • Un langage de programmation logique

2
Organisation du cours
  • Transparents et informations diverses sur
    http//www.inria.fr/oasis/Marjorie.Russo/
  • Mail Marjorie.Russo_at_sophia.inria.fr
  • Bureau le jeudi de 10h à 15h bureau 427 au
    département informatique
  • Notation 70 examen, 30 participation notes
    de TD

3
Plan du cours
  • Programmation logique et Prolog
  • Les bases du langage Prolog
  • Aspects avancés du langage Prolog
  • Les listes en Prolog
  • Termes préfixés et N-uplets

4
Bibliographie
  • Les fondements de la programmation en logique de
    J. W. Lloyd
  • Prolog de F. Giannesini, H. Kanoui, R. Pasero et
    M. Van Caneghem

5
Programmation logique et Prolog
  • Historique
  • Données, relations et faits
  • Prédicats et formules
  • Règles
  • Clauses de Horn
  • Démonstration en Prolog
  • Stratégie de Prolog

6
Historique
  • 1972 création de Prolog par A. Colmerauer et P.
    Roussel à Luminy.
  • 1980 reconnaissance de Prolog comme langage de
    développement en Intelligence Artificielle
  • Depuis plusieurs versions, dont une tournée vers
    la programmation par contraintes.

7
Les données
  • Constantes
  • Symbole chaîne de caractères (minuscule)
  • Nombres entiers ou flottants
  • Variables chaîne de caractères (majuscule)
  • Exprimer une propriété concernant une catégorie
    d objets
  • Interroger le système Prolog à l aide d une
    question

8
Les relations (1)
  • Propriété qui lie un certain nombre d objets
  • la possession lie le propriétaire et l objet
    possédé
  • Propriétés des relations
  • caractère ordonné
  • transitive si a R b et b R c alors a R c
  • symétrique si a R b alors b R a
  • leur nom commence par une minuscule

9
Les relations (2)
  • Utilité des relations
  • lien entre objets
  • propriété d un objet
  • Plusieurs possibilités pour établir la même
    relation
  • Hélène est une fille de cinq ans peut s exprimer
    de deux façons.

10
Les faits
  • Affirmation de l existence d une relation entre
    certains objets
  • La chèvre est un animal herbivore
  • le loup est un animal cruel
  • Formule vraie à priori
  • Constitue une partie des données d un problème

11
Prédicats et formules(1)
  • En Prolog, une relation possède
  • un nom
  • un nombre d arguments
  • couleur(voiture, rouge)
  • En logique, relation prédicat
  • couleur
  • Application du prédicat à ses arguments formule

12
Prédicats et formules (2)
  • Nombre d arguments du prédicat arité
  • unaire ? propriété de l argument
  • Garcon(jerome)
  • arité zéro ? signification logique très
    restreinte
  • p()
  • Exercice écrire les faits présentés
    précédemment sous forme de prédicats
  • chèvre, loup

13
Règles Prolog (1)
  • Enoncent la dépendance dune relation entre
    objets par rapport à dautres relations
  • Concernent des catégories d objets / faits
  • fait fille(helene)
  • règles si X est une fille alors X aime les
    poupées qui s'écrit
  • aime(X,poupees) - fille(X).
  • Le  si  sécrit -  en Prolog

14
Règles Prolog (2)
  • Il peut y avoir plusieurs conditions derrière le
     - , séparées par des virgules
  • Exemple un animal qui vole est un oiseau
  • Exercice
  • la chèvre est un animal herbivore
  • le loup est un animal cruel
  • un animal cruel est carnivore
  • un animal carnivore mange de la viande

15
Règles Prolog (3)
  • Suite de lexercice
  • un animal herbivore mange de lherbe
  • un animal carnivore mange des animaux herbivores
  • les carnivores et les herbivores boivent de leau
  • un animal consomme ce quil boit ou ce quil
    mange
  • Question possible y a-t-il un animal cruel et
    que consomme-t-il ?
  • Idée identifier les objets, les faits, les
    règles

16
Clauses de Horn (1)
  • Ce sont les faits et les règles.
  • Forme générale F - F1, F2,, Fn.
  • Se traduit par  F si F1 et F2 etet Fn 
  • F formule atomique 
  • Fi littéraux (formules atomiques ou leur
    négation)
  • En Prolog pour démontrer F, il faut démontrer
    F1, F2,, et fn.

17
Clauses de Horn (2)
  • F est la tête de la clause
  • F1, F2,, Fn est appelée la queue de la clause
  • Un fait est une clause dont la queue est vide
  • Exemples
  • naissance(prolog, 1972).
  • aime(X, bach).  Pour tout X, X aime Bach. 

18
Clauses de Horn (3)
  • Une règle est une clause dont la queue est non
    vide. La plupart des règles contiennent des
    variables.
  • Définition dune variable anonyme  _ 
  • a_un_salaire(X) - employeur(Y,X). peut sécrire
    a_un_salaire(X) - employeur(_,X).
  • Déclaration dun prédicat ensemble de faits et
    de règles

19
Programmes Prolog
  • Programmes Prolog succession de déclarations de
    prédicats
  • Pas dordre à respecter
  • Possibilité de plusieurs fichiers
  • Exemple de la famille prédicats homme, femme et
    enfant
  • enfant(X,Y,Z)
  • enfant(X,Y) - enfant(X,Y,_). ou enfant(X,_,Z).

20
Démonstration Prolog
  • A partir d un programme, on peut poser des
    questions
  • Ex frere(patrick, X). Pour trouver les frères
    de P.
  • Cest-à-dire déterminer les valeurs des variables
    (Ex X) telles que la question soit déductible
    des faits et prédicats du programme.
  • On parle de résolution de question ou de
    démonstration de question.

21
Unification (1)
  • Exemple
  • frere(X,Y) - homme(X), enfant(X,Z), enfant(Y,Z),
    X\Y. où \ représente le prédicat de différence.
  • frere(Patrick,Qui) tentative dunification
    avec la tête de la clause frere(X,Y)
  • Définition procédé par lequel on essaie de
    rendre deux formules identiques en donnant des
    valeurs aux variables quelles contiennent.

22
Unification (2)
  • Résultat cest un unificateur (ou
    substitution), un ensemble daffectations de
    variables.
  • Exemple XPatrick, QuiY
  • Le résultat nest pas forcément unique, mais
    représente lunificateur le plus général.
  • Lunification peut réussir ou échouer.
  • e(X,X) et e(2,3) ne peuvent être unifiés.

23
Unification (3)
  • Prédicat dunification   
  • a(B,C) a(2,3). donne pour résultat
  • YES B2, C3
  • a(X,Y,L) a(Y,2,carole). donne pour résultat
  • YES X2, Y2, Lcarole
  • a(X,X,Y) a(Y,u,v). donne pour résultat
  • NO

24
Pas de démonstration (1)
  • Si l unification échoue situation d'échec sur
    la règle considérée pour démontrer la formule.
  • Si lunification réussit substitution des
    variables présentes dans la queue de la clause
    par les valeurs correspondantes des variables de
    l unificateur.

25
Pas de démonstration (2)
  • Exemple

frere(patrick,Qui)
Unification avec frere(X,Y)
Xpatrick et QuiY
homme(patrick) parent(patrick,Z) parent(Y,Z) patri
ck\Y
26
Pas de démonstration (3)
  • Démonstration de cet ensemble de formules dans
    lordre de leur citation pour enrichir le système
    avec les valeurs obtenues des variables.
  • A la fin, lensemble des couples valeur-variable
    des variables présentes dans la question initiale
    forme la solution affichée par Prolog.

27
Points de choix
  • Plusieurs règles concernant une même question
  • essais consécutifs dans lordre de déclaration
  • représentation sous forme darbre
  • les nœuds de larbre sont appelés points de choix
  • Exemple arbre binaire pour répondre à la
    question enfant(yohann, dominique)

28
Arbre de recherche (1)
  • On parle darbre de recherche dune question
  • Racine de larbre question
  • Nœud points de choix (formule à démontrer)
  • Passage dun nœud vers son fils en considérant
    lune des règles et en effectuant une unification
    et un pas de démonstration

29
Arbre de recherche (2)
  • Nœuds de gauche à droite dans lordre de
    déclaration des règles
  • Nœuds d'échec aucune règle ne permet de
    démontrer la première formule du nœud
  • Nœuds de succès ne contient plus aucune
    formule, tout a été démontré et les éléments de
    solution sont trouves en remontant vers la racine
    de larbre

30
Stratégie de Prolog (1)
  • Pour résoudre une question, Prolog construit
    larbre de recherche de la question
  • Parcours en profondeur dabord
  • nœud de succès cest une solution, Prolog
    laffiche et cherche dautres solutions
  • nœud d'échec remontée dans larbre jusqu'à un
    point de choix possédant des branches non
    explorées

31
Stratégie de Prolog (2)
  • On parle de backtrack. Si un tel nœud de choix
    nexiste pas, la démonstration est terminée, il
    ny a pas dautre solution.
  • Possibilité de branche infinie et donc de
    recherche sans terminaison Attention à
  • ordre des littéraux dans la queue de clause
  • ordre des clauses
Write a Comment
User Comments (0)
About PowerShow.com