1 / 29

Programmation logique

Programmation logique. Lakhdar Saïs CRIL, Université d ’Artois sais@cril.univ-artois.fr http://www.cril.univ-artois.fr/~sais Maîtrise d ’informatique 2002/2003. Rappel de logique pour prolog. Logique des propositions Logique des prédicats Unification. Logique des propositions. Syntaxe

anahid
Download Presentation

Programmation logique

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmation logique Lakhdar Saïs CRIL, Université d ’Artois sais@cril.univ-artois.fr http://www.cril.univ-artois.fr/~sais Maîtrise d ’informatique 2002/2003

  2. Rappel de logique pour prolog • Logique des propositions • Logique des prédicats • Unification

  3. Logique des propositions • Syntaxe On définit : • Les propositions : a, b, c, … • Les constantes : V et F • Les connecteurs : •  (conjonction) •  (disjonction) •  (négation) •  (implication) •  (équivalence)

  4. Construction d’une formule • Une proposition est une formule • Si a et b sont des formules, alors a, a b, a  b, ab et a  b sont des formules

  5. Logique des propositions Sémantique • Les formules sont interprétées dans {V,F} • On définit l’interprétation associée à chaque connecteur grâce aux tables de vérité

  6. Tables de vérité desconnecteurs

  7. Propriétés des formules • Une formule est valide si elle est toujours vraie (quelque soit l’interprétation) • Une formule est consistante s’il existe une interprétation dans laquelle elle est vraie. Elle est inconsistante dans le cas contraire • Problème : étant donnée une formule, est-elle valide ? consistante ? • Exemple : que dire de la formule (a  b) (b a)

  8. Règles de transformation (1) • aa (loi du tiers exclu) • ((ab)  a)  b (modus ponens) • ((a  b) b) a (modus tollens) • (a b)  (b a) (contraposition) • a  a (double négation) • a  ba  b • a  b  (a  b)  (b  a) • aa  aa  a (idempotence)

  9. Règles de transformation (2) • Lois de Morgan : • (ab)  a b • (ab)  a b • Commutativité et associativité de  et  • Distributivité de  par rapport à  et de  par rapport à 

  10. Une énigme policière • Un meurtre a été commis au laboratoire, le corps se trouve dans la salle de conférences… • On dispose des informations suivantes : • La secrétaire déclare qu’elle a vu l’ingénieur dans le couloir qui donne sur la salle de conférences • Le coup de feu a été tiré dans la salle de conférences, on l’a donc entendu de toutes les pièces voisines • L’ingénieur affirme n’avoir rien entendu • On souhaite démontrer que si la secrétaire dit vrai, alors l’ingénieur ment

  11. Formalisation en calcul des propositions • p: la secrétaire dit vrai • q : l’ingénieur était dans le couloir au moment du crime • r : l’ingénieur était dans une pièce voisine de la salle de conférences • s : l’ingénieur a entendu le coup de feu • t : l’ingénieur dit vrai

  12. Résolution de l’énigme • Les informations de l’énoncé se traduisent par les implications : pq, q  r, r  s, t s • Il s’agit de prouver la validité de la formule : (p  q  q  r  r  s  t s)  (p t)

  13. Démonstration (p  q  q  r  r  s  t s)  (p t) • La formule ne peut être fausse que si • (p t) est faux, soit p et t vrais • la prémisse est vraie, soit toutes les implications vraies • Comme t doit être vrai, s doit être faux, donc r faux, donc q faux, donc p faux, et il y a contradiction

  14. Logique des prédicats • Syntaxe On définit : • Les constantes : V et F • Les connecteurs : , , ,  • Les variables : x, y, z, … • Les fonctions : f, g, h, … • Les prédicats : p, q, r, … dont ceux d’arité 0 : a, b, c, … • Les quantificateurs : ", $

  15. Définitions • Terme : • Une variable est un terme • Une constante est un terme • Si t1, t2, …, tn sont des termes, alors f(t1,t2,…,tn) est un terme • Atome : • Si t1, t2, …, tn sont des termes, alors p(t1,t2,…,tn) est un atome humain(socrate) X tom mere(tom)

  16. Construction d’une formule • V, F sont des formules • Un atome est une formule • Si F1 et F2 sont les formules, alors F1, F1F2, F1F2, F1 F2 sont des formules • Si F est une formule,  x F et x F sont des formules • Remarque : la logique des propositions est un cas particulier de la logique des prédicats humain(socrate) X. humain(X)  mortel(X)

  17. Exemples de formules valides • "xA  $x A • "x A   $x A

  18. Définitions • Littéral • Un atome est un littéral (positif) • La négation d’un atome est un littéral (négatif) • Une clause est une formule qui a la forme d’une disjonction de littéraux • Une clause concrète est une clause sans variable • Une clause de Horn est une clause comportant au plus un littéral positif • On peut toujours transformer une formule en un ensemble de clauses

  19. Principe de résolution • C’est une règle d’inférence qui s’applique aux clauses • Principe sur des clauses concrètes : • G = G1 G2  …  Gn • H = G1  H2  …  Hm • K = G2  …  Gn  H2  …  Hm • K est le résolvant de G et H • G1 et G1 sont des littéraux complémentaires

  20. Cas particuliers • P et P  Q se résolvent en Q (modus ponens) • G  H et H  K se résolvent en G  K (enchaînement) • Q et  P  Q se résolvent en P (modus tollens)

  21. Utilisation • Le principe de résolution est une règle d’inférence saine, i.e. tout résolvant est une conséquence logique des deux clauses parentes • Pour appliquer le principe de résolution à des clauses non concrètes, on définit l’unification, afin de rechercher des littéraux complémentaires

  22. Unification • Deux termes t1 et t2 sont unifiables s’il existe une substitution s des variables de t1 et t2 telle que s(t1) = s(t2) • Exemples : • pere(X,jean) s’unifie avec pere(Y,Z) si X|Y et jean|Z • pere(jean,mere(X)) s’unifie avec pere(Y,mere(pierre) si jean|Y et X|pierre

  23. Exemple 1 • Les barbiers rasent tous ceux qui ne se rasent pas eux-mêmes • Aucun barbier ne rase quelqu’un qui se rase lui-même • Le barbier se rase-t-il lui même ? • Montrons que si les deux premières assertions sont vraies, alors il ne peut y avoir de barbier

  24. Formalisation • barbier(X) rase(Y,Y)  rase(X,Y) i.e.  barbier(X) rase(Y,Y)  rase(X,Y)(1) • barbier(X)  rase(Y,Y) rase(X,Y) i.e.  barbier(X)  rase(Y,Y)  rase(X,Y)(2) • barbier(b) (3) • On veux montrer (1) (2)  (3), i.e. réfuter (1) (2) (3)

  25. Résolution • (3) et (1) se résolvent en (4) : rase(Y,Y)  rase(b,Y), i.e. rase(b,b) • (3) et (2) se résolvent en (5) :  rase(Y,Y)  rase(b,Y), i.e.  rase(b,b) • (4) et (5) se résolvent en la clause vide

  26. Résolution + Unification: Exemple 2 1. sélectionner un littéral 1.)X prendre_parapluie(X) pleut(X) 2.) pleut(paris) 1’.) prendre_parapluie(paris) pleut(paris) 2’.) pleut(paris) 1’+2’) prendre_parapluie(paris) 2. Renommage non nécessaire 3. Pgu  = {X / paris} 4. appliquer  5. résolution

  27. Résolution & prolog question 1) connaît_logique(X) bon_etudiant(X)  enseignant(Y,X)  logicien(Y) 2) bon_etudiant(david) 3) logicien(michel) 4) enseignant (michel,david) •  connaît_logique(Z) •  bon_etudiant(X)enseigant(Y,X) logicien(Y) • enseignant(Y,david) logician(Y) •  logicien(michel) •  {Z/X} {X/david} {Y/michel} Réponse = {Z/david}  connaît_logique(david) {}

  28. Backtracking •  connait_logique(Z) •  bon_etudiant(X)enseignant(Y,X) logicien(Y) •  enseignant(Y,cécile)logicien(Y) •  enseignant(Y,david) logicien(Y) •  logicien(michel) •  1) connait_logic(X)bon_etudiant(X) enseignant(Y,X) logicien(Y) 2) bon_etudiant(cécile) 3) bon_etudiant(david) 4) logicien(michel) 5) enseigant(michel,david)  Retour arrière ! Pour essayer une autre clause

  29. Suite à vos cahiers • Description de la résolution prolog • un premier programme prolog

More Related