x anime

Transcription

x anime
First-Order Logic
Chapter 8
Outline
– Why FOL?
– Syntax and semantics of FOL
– Knowledge engineering in FOL
– Application with Jess
Pros and cons of propositional logic
•
Exemple 1
–
–
–
•
Exemple 2
–
–
–
•
Si le train arrive en retard et il n’y a pas de
taxis à la gare alors l’invité arrive en retard.
L’invité n’est pas en retard.
Le train est arrivé en retard.
Exemple 3
–
–
•
Si il pleut et l’invité a oublié son parapluie
alors l’invité est trempé
L’invité n’est pas trempé
Il pleut
Si je suis un humain alors je suis mortel
Socrate est un humain
Exemple 4
–
–
–
–
J’espère voir un lion pendant ce voyage
J’ai vu ce matin un lion blessé
J’ai envie d’aller au zoo de Vincennes pour y
voir un lion
Le roi des animaux
☺ Propositional logic is declarative ?
☺ Propositional logic allows
partial/disjunctive/negated
information ?
☺ Propositional logic is
compositional ?
☺ Meaning in propositional logic is
context-independent ?
Propositional logic has very
limited expressive power ?
Illustration
• Ecrire les connaissances d’un agent gestionnaire de feux de
signalisation à un carrefour.
1. Définir les faits nécessaires en logique des propositions,
2. Ecrire en logique des propositions les expressions
correspondants aux situations suivantes
a.
b.
c.
Il n’y a qu’un feu vert à la fois
Un piéton est prioritaire
L’axe le plus dense est favorisé
3. Que permettrait de modéliser la logique des prédicats ?
4. Répondre aux questions précédentes en logique des
prédicats
First-order logic
• Whereas propositional logic assumes the world
contains facts,
• first-order logic (like natural language) assumes the
world contains
– Objects: people, houses, numbers, colors, baseball
games, wars, …
– Relations: red, round, prime, brother of, bigger than, part
of, comes between, …
– Functions: father of, best friend, one more than, plus, …
Syntax of FOL: Basic elements
•
•
•
•
•
•
•
Constants
Predicates
Functions
Variables
Connectives
Equality
Quantifiers
KingJohn, 2, NUS,...
Brother, >,...
Sqrt, LeftLegOf,...
x, y, a, b,...
¬, ⇒, ∧, ∨, ⇔
=
∀, ∃
Atomic sentences
• Atomic sentences
– predicate (term1,...,termn) or term1 = term2
• Term = function (term1,...,termn) or constant or
variable
• Complex sentences are made from atomic
sentences using connectives
– ¬S, S1 ∧ S2, S1 ∨ S2, S1 ⇒ S2, S1 ⇔ S2,
Truth in first-order logic
• Sentences are true with respect to a model and an interpretation
• Model contains objects (domain elements) and relations among
them
•
• Interpretation specifies referents for
constant symbols
→
objects
predicate symbols
→
relations
function symbols
→
functional relations
• An atomic sentence predicate(term1,...,termn) is true
iff the objects referred to by term1,...,termn
are in the relation referred to by predicate
Universal quantification
• ∀<variables> <sentence>
Everyone at NUS is smart:
∀x At(x,NUS) ⇒ Smart(x)
• ∀x P is true in a model m iff P is true with x being each
possible object in the model
• Roughly speaking, equivalent to the conjunction of
instantiations of P
∧
∧
∧ ...
At(KingJohn,NUS) ⇒ Smart(KingJohn)
At(Richard,NUS) ⇒ Smart(Richard)
At(NUS,NUS) ⇒ Smart(NUS)
Existential quantification
• ∃<variables> <sentence>
• Someone at NUS is smart:
• ∃x At(x,NUS) ∧ Smart(x)$
• ∃x P is true in a model m iff P is true with x being some
possible object in the model
• Roughly speaking, equivalent to the disjunction of
instantiations of P
At(KingJohn,NUS) ∧ Smart(KingJohn)
∨ At(Richard,NUS) ∧ Smart(Richard)
∨ At(NUS,NUS) ∧ Smart(NUS)
∨ ...
Properties of quantifiers
• ∀x ∀y is the same as ∀y ∀x
• ∃x ∃y is the same as ∃y ∃x
• ∃x ∀y is not the same as ∀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”
• Quantifier duality: each can be expressed using the other
• ∀x Likes(x,IceCream)
¬∃x ¬Likes(x,IceCream)
• ∃x Likes(x,Broccoli)
¬∀x ¬Likes(x,Broccoli)
Illustration
•
•
•
•
•
•
•
•
Tous les hommes sont méchants
Seulement les hommes sont méchants
Il existe des hommes méchants
Il existe un homme qui n’est pas méchant
Il n’existe pas d’homme méchant.
Il existe un homme qui aime toutes les femmes
Chaque chat connaît un chien qui le déteste
Tous les poissons, sauf les requins, sont gentils avec les enfants.
Illustration
∀x (E(x)
(∃y (C(y) ∧ ∃z (M(z) ∧ T (x, y, z))))
• Avec E(x): x est étudiant, C(y): y est un cours, M(z): z est
un mauvais enseignant, T (x, y, z): x suit le cours y
enseigné par z.
∀x ∀y ∀z ∀w(T (x) ∧C(y, x) ∧C(w, x) ∧C(z, x) ∧D(z, y) ∧D(y,w))
G(f(g(y), g(z)), g(w))
• Avec T (x) : x est un triangle, C(x, y) : y est le côté de x,
D(x, y) : x est différent de y, G(x, y) : x est plus grand que
y, f(x, y) : somme de x et de y, g(x) : longueur de x.
Interacting with FOL KBs
• Principe de résolution
– Objectif : Montrer automatiquement qu’une
formule close est un théorème.
– Mise en œuvre
• Mise sous forme Prénexe : mise en tête des
quantificateurs,
• Skolémisation : Suppression des quantificateurs
• Mise sous forme normale conjonctive
• Résolution
Principe de résolution
mise sous forme prénexe
• Théorème
– Pour tout ϕ ∈ L1 , il existe ϕp sous forme prénexe telle que ϕ |=| ϕp
• Méthode
–
–
–
–
Transformer les
et <--> en ∧, ∨,
Traiter la négation,
Rebatiser si nécessaires les variables liées,
Déplacer les quantificateurs à droite,
• Exemple
∀x(A(x)∧∃x∀yB(x,y))
∀x((∀yP(y))→Q(x))
∀x(P(x)→(∀yQ(y)))
Principe de résolution
Skolémisation
• Une variable universelle reste une variable
∀x P(x) => P(x)
• Une variable existentielle devient une constante :
∃x P(x) => P(a)
a est une nouvelle constante
• Une variable existentielle devient une fonction des variables
existentielles qui précèdent (l’arité dépends du nombre de variables)
∀x,y ∃t P(x,y,t) => P(x,y,f(x,y))
Exemple
∃X ∃Y ∀Z ∀T ∃V P(X,Y,Z,T,V)
∃x∀yP(x,y)
∀x∃y A(x,y)
∀x∀y∃z∃tP(x,y,z,t)
Principe de résolution
Forme normale conjonctive
• Définition
– ϕ∈ L0 est sous forme normale conjonctive (ou FNC) ssi ϕ = (C1 ∧. . . ∧
Cn),
• avec Ci = (Li1∨. . . ∨ Lip) et Lij = a, a ∈ P ou Lij = = ¬a, a ∈ P.
• Les Lij sont appelés des littéraux.
• Convention
– Une FNC peut s’écrire sous cette forme
•
•
•
•
Une ligne est appelée clause
L11
L12
L13
L21
L22
L23
.............
Ln1 . . . . . . Lnp avec Lij = atome ou ¬ atome
Principe de résolution
Résolution
• Soit ϕ ∈ L1 , elle peut être décrite par un ensemble de clauses C:
• Si C ∧ ( B ∨ C ) est contradictoire, alors C est contradictoire.
• Définition
Deux formules atomiques sont unifiables s’il existe une substitution des
variables par des termes qui rend les deux formules identiques.
On note [x | y] la substitution de x par y
Principe de résolution
Résolution
• Suppression de clauses
– Clauses isolées,
C1 = {¬ P (x, a) , Q (x, y) }, C2 = { ¬ Q (x, y) , R (y, b) }, C3 = { ¬R (a, y) }
– Clauses contenant 2 littéraux identiques non
unifiables mais de signes opposés
C1 = {¬ P (x , a) , P (x , y) }, C2 = { P (u , a) }, C3 = { ¬ P (u , b) } (contre
exemple)
– Clauses généralisées
C = { P (x , y) , Q (y) }, C’ = { P (a , v) , Q(v) , R(u , v) }
Principe de résolution
Stratégies
• Objectif : limiter le nombre de résolvantes engendrables à
partir de l’ensemble des clauses de départ.
– Stratégie complète : permet d'obtenir la clause vide si l'énoncé de
départ est contradictoire (malgré la suppression de clauses
intermédiaires apportée par la stratégie).
– Stratégie incomplète dans le cas contraire (la restriction dans le choix
des clauses a pour conséquence l'impossibilité d'obtenir la clause vide).
• Stratégie
– unitaire: (incomplète en général) une des anciennes clauses contient toujours
un seul littéral. Cette stratégie est complète lorsque l’énoncé de départ ne
contient que des clauses de Horn
– du donné: (incomplète en général) une des anciennes clauses est toujours une
des clauses de départ. Elle devient complète dans le cas des clauses de Horn.
– du support: (complète) une des anciennes clauses provient de la négation de
la conclusion ou en est issue.
– linéaire: (complète) une des anciennes clauses est la résolvante précédente,
l'autre est soit une de ses ancêtres, soit une clause de départ.
Knowledge engineering in FOL
1. Identify the task
2. Assemble the relevant knowledge
3. Decide on a vocabulary of predicates,
functions, and constants
4. Encode general knowledge about the domain
5. Encode a description of the specific problem
instance
6. Pose queries to the inference procedure and
get answers
7. Debug the knowledge base
Illustration
• Dans une pièce on a un singe, une chaise et des
bananes accrochées au plafond : le singe peut il
attraper les bananes ?
1. Identify the task
2. Assemble the relevant knowledge
3. Decide on a vocabulary of predicates, functions, and
constants
• Connaissances gérant le "monde" à coder :
attraper : Pour atteindre un objet proche il faut être habile
transitivité : Si on est sur un grand objet qui est sous un autre objet =>
on est proche de ce dernier
placer sous : Déplacer un objet vers un autre loin du sol c'est le placer
dessous
monter : Si X peut bouger et qu'il est à côté d'un objet => il peut monter
dessus
déplacer : Si X est animé et proche de l'objet Y qui est sur le sol => X
peut déplacer Y vers tout objet Z
aller vers : X animé peut aller vers un objet situé sur le sol
s'approcher : Si on va vers un objet => on est proche de celui-ci
descendre : X animé, placé sur Y, peut se placer à côté de Y
• habile(X) : X est habile
•
anime(X) : X est animé
•
sur(X,Y) : X est sur Y
•
sous(X,Y) : X est sous Y
•
aller_vers(X,Y) : X va vers Y
•
deplacer(X,Y,Z) : X peut déplacer Y vers Z
•
grand(X) : X est grand
•
proche(X,Y) : X est proche de Y
•
atteindre(X,Y) : X peut atteindre Y
Illustration
Dans une pièce on a un singe, une chaise et des
bananes accrochées au plafond : le singe peut il
attraper les bananes ?
1.Encode general knowledge about the domain
2.Encode a description of the specific problem
instance
3.Pose queries to the inference procedure and get
answers
∀x,y habile(X) ∧proche(X,Y) => attraper(X,Y)
R1 : ∀x,y habile(X) ∧proche(X,Y) => attraper(X,Y)
R2 : ∀x,y,z sur(X,Y) ∧ sous(Y,Z) => proche(X,Z)
R3 : ∀x,y,z deplacer(X,Y,Z) ∧ ¬proche(Z,sol) => sous(Y,Z)
R4 : ∀x,y anime(X) ∧proche(X,Y) => sur(X,Y)
R5 : ∀x,y,z anime(X) ∧proche(X,Y) ∧¬anime(Y) ∧¬anime(Z)
∧sur(Y,sol) => deplacer(X,Y,Z)
R6 : ∀x,y anime(X) ∧ sur(Y,sol) => aller_vers(X,Y)
R7 : ∀x,y aller_vers(X,Y) => proche(X,Y)
R8 : ∀x,y anime(X) ∧ sur(X,Y) => proche(X,Y)
• Données :
–
–
–
–
–
–
–
habile(singe)
sur(singe, sol)
non proche(bananes, sol)
grand(chaise)
anime(singe)
non anime(bananes)
non anime(chaise)
• Question :
– Attraper(singe, bananes) ?
– Attraper(X, bananes)
Summary
• First-order logic:
– objects and relations are semantic primitives
– syntax: constants, functions, predicates,
equality, quantifiers
• Increased expressive power: sufficient to
define wumpus world