logique du premier ordre (logique de prédicats)

36
1 Logique du premier ordre (Logique de prédicats) Chap. 8

Upload: anika

Post on 01-Feb-2016

186 views

Category:

Documents


3 download

DESCRIPTION

Logique du premier ordre (Logique de prédicats). Chap. 8. Plan. Pourquoi utiliser la logique du premier ordre (LPO)? Syntaxe et sémantique Utiliser la LPO Le monde de Wumpus en LPO Engenierie de connaissances dans LPO. Logique propositionnelle: pours et contres. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Logique du premier ordre (Logique de prédicats)

1

Logique du premier ordre(Logique de prédicats)

Chap. 8

Page 2: Logique du premier ordre (Logique de prédicats)

2

Plan

• Pourquoi utiliser la logique du premier ordre (LPO)?

• Syntaxe et sémantique

• Utiliser la LPO

• Le monde de Wumpus en LPO

• Engenierie de connaissances dans LPO

Page 3: Logique du premier ordre (Logique de prédicats)

3

Logique propositionnelle: pours et contres

Logique propositionnelle est déclarative Logique propositionnelle permet d’exprimer des informations

partielles/disjonctives/négatives– (contraste avec la plupart des structures de données et les bases de

données) Logique propositionnelle est compositionnelle:

– Le sens du tout est composé des sens des parties– Sens de B1,1 P1,2 est dérivé du sens de B1,1 et de P1,2

Sens dans logique propositionnelle est hors-contexte (context-independent)– (différent de la langue naturelle où le sens est dépendant du contexte)

Logique propositionnelle est limitée en capacité d’expression– (pas comme en langue naturelle)– E.g., ne peut pas exprimer ”les fosses causent la brise dans les

carrés adjacents”• À moins d’écrire une phrase par carré

Page 4: Logique du premier ordre (Logique de prédicats)

4

Logique du premier ordre• Logique propositionnelle suppose que le monde

contient des faits,• Logique du premier ordre suppose que le monde

contient:– Objets (D): personnes, maisons, nombres, couleurs,

match de baseball, guerre, …

– Relations (Dn{vrai, faux}): rouge, rond, nombre-premier, est frère de, est plus grand que, est partie de, …

– Fonctions (DnD): père de, meilleur ami de, un de plus que, …

variable

Page 5: Logique du premier ordre (Logique de prédicats)

Fonction vs. prédicat

Jean Marie

Philippe

•Fonction: père_de(Philippe) = Jean•Prédicat: est_père_de(Jean, Philippe) = vrai

•Les noms importent peu. C’est la définition qui est importante.

5

Page 6: Logique du premier ordre (Logique de prédicats)

6

Syntaxe de LPO: éléments de base

• Constantes (Objets): KingJohn, 2, UdeM,... • Prédicats : Brother, >,...• Fonctions: Sqrt, LeftLegOf,...• Variables: x, y, a, b,... (minuscule)• Connecteurs: , , , , • Égalité: = • Quantificateurs: ,

Page 7: Logique du premier ordre (Logique de prédicats)

7

Phrases atomiques

Phrase atomique = prédicat (terme1,...,termen) | terme1 = terme2

Terme = fonction (terme1,...,termen) | constante

| variable

• E.g., Brother(KingJohn,RichardTheLionheart)

> (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))

prédicat

fonction constante terme

phrase

Page 8: Logique du premier ordre (Logique de prédicats)

8

Phrases complexes

• Les phrases complexes sont composées des phrases atomiques avec des connecteurs

S, S1 S2, S1 S2, S1 S2, S1 S2,

E.g. Sibling(KingJohn,Richard) Sibling(Richard,KingJohn)

>(1,2) ≤ (1,2)

>(1,2) >(1,2)

Page 9: Logique du premier ordre (Logique de prédicats)

9

Valeur de vérité en LPO

• Les phrases sont vraies par rapport à un modèle et à une interprétation

• Un modèle contient des objets (éléments du domaine) et des relations entre eux

• Une interprétation spécifie les référés pourSymboles de constante → objets (la personne John)symboles de prédicat → relations (relation de père-fils)symboles de fonction → relation fonctionnelle (père-de)

• Une phrase atomique prédicat(terme1,...,termen) est vraie ssi les objets référés par terme1,...,termen

sont en relation référée par prédicat

Page 10: Logique du premier ordre (Logique de prédicats)

10

Modèle de LPO: Exemple

• Prédicat: brother(Richard, John)• Interprétation de symboles• Évaluation de valeur de vérité: vraie parce que la relation

brother se vérifie• Fonction: left_leg(John)

• Interprétation• Évaluation:

Page 11: Logique du premier ordre (Logique de prédicats)

11

Quantificateur Universel <variables> <phrase>

Everyone at UdeM is smart (Tout le monde dans UdeM est intelligent):

x At(x,UdeM) Smart(x)

x P est vraie dans un modèle m ssi P est vraie avec chaque objet qu’on peut assigner à x dans son domaine

• Grosso modo: équivalent à la conjonction des instantiations de P

At(KingJohn,UdeM) Smart(KingJohn) At(Richard,UdeM) Smart(Richard) At(UdeM,UdeM) Smart(UdeM) ...

Page 12: Logique du premier ordre (Logique de prédicats)

12

Une erreur commune à éviter

• typiquement, est le connecteur principal avec • Erreur commune: utiliser comme connecteur

principal avec :– CorrectTout le monde dans UdeM est intelligent:x At(x,UdeM) Smart(x)– Incorrect

x At(x,UdeM) Smart(x)

signifie “Everyone is at UdeM and everyone is smart”(tout le monde est à UdeM et tout le monde est intelligent)

Page 13: Logique du premier ordre (Logique de prédicats)

Illustration

Person smart

UdeM

UdeMx At(x,UdeM) Smart(x)

(Sous-ensemble)

x At(x,UdeM) Smart(x)13

Page 14: Logique du premier ordre (Logique de prédicats)

14

Quantification existentielle <variables> <phrase>

• Someone at UdeM is smart (Quelqu’un à UdeM est intelligent): x At(x,UdeM) Smart(x)

x P est vraie dans un modèle m ssi P est vraie avec x associée à un certain objet possible dans le modèle

• Grosso modo: équivalent à la disjonction d’instanciations de P

At(KingJohn,UdeM) Smart(KingJohn) At(Richard,UdeM) Smart(Richard) At(UdeM,UdeM) Smart(UdeM) ...

Page 15: Logique du premier ordre (Logique de prédicats)

15

Une autre erreur commune à éviter

• Typiquement, est généralement utilisé avec

• Erreur commune: utiliser comme le connecteur principal avec :– Correct

x At(x,UdeM) Smart(x)– Incorrect

x At(x,UdeM) Smart(x)

est vraie s’il existe quelqu’un qui n’est pas à UdeM !•

Page 16: Logique du premier ordre (Logique de prédicats)

Illustration

Person smart

UdeM

UdeMx At(x,UdeM) Smart(x)

(intersection non vide) x At(x,UdeM) Smart(x)

16

x

x

Page 17: Logique du premier ordre (Logique de prédicats)

Quelques exemples• Toute personne est mortel. Socrate est une personne.

x Personne(x) Mortel(x)

Personne(Socrate)

• Socrate est mortel.Mortel(Socrate)

• IFT3335 est un cours à UdeM.Cours(IFT3335) Donné_à(IFT3335, UdeM)

ou Cours(IFT3335,UdeM)

Cours(IFT3335) Donné_à(IFT3335, UdeM)?

–Il faut standardiser les prédicats

• Tous ceux qui suivent le cours IFT3335 sont des étudiants à UdeM.–Ceux qui suivent le cours IFT3335: x Suivre(x,IFT3335) Cours(IFT3335)

–Étudiants à UdeM: Étudiant(x,UdeM)

–Toute la phrase: x Suivre(x,IFT3335) Cours(IFT3335) Étudiant(x,UdeM)

17

Page 18: Logique du premier ordre (Logique de prédicats)

• Certains dans le cours IFT3335 sont des étudiants à UdeM.x Suivre(x,IFT3335) Cours(IFT3335) Étudiant(x,UdeM)

• Propriété: Jean est un étudiant. –Étudiant(Jean)–Ou x Étudiant(Jean, x)

• Négation: Aucun est irremplaçable.x Personne(x) Remplaçable(x)x Personne(x) Remplaçable(x) ?

18

Quelques exemples

Page 19: Logique du premier ordre (Logique de prédicats)

19

Propriétés des quantificateurs x y est équivalent à y x

x y est équivalent à y x

x y n’est pas équivalent às y x

x y Loves(x,y)– “There is a person who loves everyone in the world”

y x Loves(x,y)– “Everyone in the world is loved by at least one person”

• Dualité de quantificateurs:chacun peut être exprimé en utilisant l’autre: x P = x P, x P = x P x Likes(x,IceCream) x Likes(x,IceCream) x Likes(x,Broccoli) x Likes(x,Broccoli)

Page 20: Logique du premier ordre (Logique de prédicats)

20

Égalité

• terme1 = terme2 est vrai sous une interprétation donnée ssi terme1 et terme2 réfèrent au même objet (= est un prédicat spécial)

• E.g., définition de Sibling en terme de Parent:x,y Sibling(x,y) [(x = y) m,f (m = f)

Parent(m,x) Parent(f,x) Parent(m,y) Parent(f,y)]

Page 21: Logique du premier ordre (Logique de prédicats)

21

Utiliser LPO pour décrire le monde

Le domaine de parenté:• Brothers are siblings

x,y Brother(x,y) Sibling(x,y)

• One's mother is one's female parentm,c Mother(c) = m (Female(m) Parent(m,c))

• “Sibling” is symmetricx,y Sibling(x,y) Sibling(y,x)

Page 22: Logique du premier ordre (Logique de prédicats)

22

Utiliser LPO

Le domaine des ensembles: s Set(s) (s = {} ) (x,s2 Set(s2) s = {x|s2}) x,s {x|s} = {} x,s x s s = {x|s} x,s x s [ y,s2 (s = {y|s2} (x = y x s2))] s1,s2 s1 s2 (x x s1 x s2) s1,s2 (s1 = s2) (s1 s2 s2 s1) x,s1,s2 x (s1 s2) (x s1 x s2) x,s1,s2 x (s1 s2) (x s1 x s2)

Page 23: Logique du premier ordre (Logique de prédicats)

23

Interagir avec une base de connaissances en LPO

• Supposons que l’agent dans le monde de wumpus utilise une base de connaissances (KB) en LPO. Il perçoit une odeur et une brise (mais pas de scintillement) à t=5:Tell(KB,Percept([Smell,Breeze,None],5))Ask(KB,a BestAction(a,5)) (note: a est une variable)

• I.e., Est-ce que la KB entraîne une certaine meilleure action à t=5?

• Réponse: Yes, {a/Shoot} ← substitution (binding list)

• Étant donné une phrase S et une substitution σ,• Sσ dénote le résultat de l’application de σ sur S; e.g.,

S = Smarter(x,y)σ = {x/Hillary,y/Bill}Sσ = Smarter(Hillary,Bill)

• Ask(KB,S) retourne une/toute σ telle que KB╞ σ

Page 24: Logique du premier ordre (Logique de prédicats)

Substitution• Remplacer une variable par un terme (constante, variable,

ou fonction) x/Terme– {x/Hillary, y/Bill}– {x/y, z/Bill}– {x/Mère_de(z), y/Père_de(z)}

• Contraintes– x ne doit pas apparaître dans Terme substituant

• {x/Mère_de(x)} X

– Une variable ne peut pas être substituée 2 fois• {x/Jean, x/Philippe} X

• Sert à instancier une expression générale (contenant des variables) et à unifier deux expressions (voir plus tard)

24

Page 25: Logique du premier ordre (Logique de prédicats)

Application d’une substitution• x/Terme: Remplacer toutes occurrences de la variable

par le Termee.g. Smarter(x,z) {x/y, z/Bill} : Smarter(y,Bill)

Smarter(x,y) {x/y, z/Bill} : Smarter(y,y)

(Smarter(x,z) President(z,c) Country(c) ) {x/y, z/Bill}: Smarter(y,Bill) President(Bill,c) Country(c)

• Composition des substitutionsσ1 ● σ2: appliquer σ1 ensuite σ2

= appliquer σ2 sur σ1 et faire l’union avec σ2

e.g. {y/z, x/Bill} ● {z/Hillary, v/Chelsea}

= {y/Hillary, x/Bill} {z/Hillary, v/Chelsea}

= {y/Hillary, x/Bill, z/Hillary, v/Chelsea} 25

Page 26: Logique du premier ordre (Logique de prédicats)

Pourquoi substitution?• À causes des variables• Exemple

Tout homme est mortel. Socrate est un homme.

Donc, Socrate est mortel.

x Homme(x) Mortel(x)

Homme(Socrate)

Mortel(Socrate)

Homme(Socrate) Mortel(Socrate)

Homme(Socrate)

Mortel(Socrate)

26

σ={x/Socrate}

Page 27: Logique du premier ordre (Logique de prédicats)

27

Base de conaissances pour le monde de wumpus

• Perception t,s,b Percept([s,b,Glitter],t) Glitter(t)

• Réflex t Glitter(t) BestAction(Grab,t)

• Note: variables exprimer une connaissance générale sur un ensemble d’objets (carrés, temps, etc.)

Page 28: Logique du premier ordre (Logique de prédicats)

28

Déduire les propriétés cachées

x,y,a,b Adjacent([x,y],[a,b]) [a,b] {[x+1,y], [x-1,y],[x,y+1],[x,y-1]}

Propriétés des carrés (avec temps t): s,t At(Agent,s,t) Breeze(t) Breezy(s)

Les carrés à coté d’une fosse sont odorantes (smelly):– Règle de diagnostic ---effet cause

s Breezy(s) r Adjacent(r,s) Pit(r)

– Règle causale --- cause effetr Pit(r) [s Adjacent(r,s) Breezy(s) ]

Page 29: Logique du premier ordre (Logique de prédicats)

Remarque:Que signifie “premier ordre”?

• On peut utiliser une variable pour représenter des objets seulement

• Pas de variable pour des prédicats ou des fonctions xy Personne(x) y(x, USA)– Il y a une personne (x) qui a une certaine relation (y) avec

USA– Logique du second ordre– Certaines de ces expressions du second ordre peuvent

être réécrites en expressio du premier ordre• E.g. Relation(x, USA, y)

29

Page 30: Logique du premier ordre (Logique de prédicats)

30

Ingénierie de connaissances dans LPO

1. Identifier la tâche2. Assembler les connaissances pertinentes3. Décider sur le vocabulaire de prédicats, de

fonctions et de constantes4. Encoder les connaissances générales dans le

domaine5. Encoder une description de l’instance

spécifique du problème6. Poser des questions à la procédure d’inférence

et obtenir des réponses7. Debugger la base de connaissances

Page 31: Logique du premier ordre (Logique de prédicats)

31

Le domaine de circuits électroniques

Additionneur d’un bit

Page 32: Logique du premier ordre (Logique de prédicats)

32

Le domaine de circuits électroniques

1. Identifier la tâche– Est-ce que le circuit additionne correctement?

(vérification de circuit )2. Assembler les connaissances pertinentes

– Des circuits composés de fils et de portes; Types de portes (AND, OR, XOR, NOT)

– Non pertinents: taille, forme, couleur, coût de portes3. Décider sur le vocabulaire

– Alternatives:Type(X1) = XORType(X1, XOR)XOR(X1)

Page 33: Logique du premier ordre (Logique de prédicats)

33

Le domaine de circuits électroniques

4. Encoder les connaissances générales du domaine

t1,t2 Connected(t1, t2) Signal(t1) = Signal(t2) t Signal(t) = 1 Signal(t) = 0– 1 ≠ 0 t1,t2 Connected(t1, t2) Connected(t2, t1) g Type(g) = OR Signal(Out(1,g)) = 1 n

Signal(In(n,g)) = 1 g Type(g) = AND Signal(Out(1,g)) = 0 n

Signal(In(n,g)) = 0 g Type(g) = XOR Signal(Out(1,g)) = 1

Signal(In(1,g)) ≠ Signal(In(2,g)) g Type(g) = NOT Signal(Out(1,g)) ≠ Signal(In(1,g))

Page 34: Logique du premier ordre (Logique de prédicats)

34

Le domaine de circuits électroniques

5. Encoder l’instance spécifique du problèmeType(X1) = XOR Type(X2) = XOR

Type(A1) = AND Type(A2) = AND

Type(O1) = OR

Connected(Out(1,X1),In(1,X2)) Connected(In(1,C1),In(1,X1))

Connected(Out(1,X1),In(2,A2)) Connected(In(1,C1),In(1,A1))

Connected(Out(1,A2),In(1,O1)) Connected(In(2,C1),In(2,X1))

Connected(Out(1,A1),In(2,O1)) Connected(In(2,C1),In(2,A1))

Connected(Out(1,X2),Out(1,C1)) Connected(In(3,C1),In(2,X2))

Connected(Out(1,O1),Out(2,C1)) Connected(In(3,C1),In(1,A2))

Page 35: Logique du premier ordre (Logique de prédicats)

35

Le domaine de circuits électroniques

6. Poser des questions à la procédure d’inférence– Quels sont les ensembles de valeurs possibles de tous

les terminaux pour le circuit additionneur?

i1,i2,i3,o1,o2 Signal(In(1,C1)) = i1 Signal(In(2,C1)) = i2 Signal(In(3,C1)) = i3 Signal(Out(1,C1)) = o1

Signal(Out(2,C1)) = o2

7. Debugger la base de connaissances– Peut oublier des affirmations (assertions) comme 1 ≠ 0

Page 36: Logique du premier ordre (Logique de prédicats)

36

Sommaire

• Logique du premier ordre:– Objets et relations sont des primitives

sémantiques– syntaxe: constantes, fonctions, prédicats,

égalité, quantificateurs

• Capacité d’expression plus grande: suffisant pour définir le monde de wumpus