- 88 Views
- Uploaded on
- Presentation posted in: General

First-Order Logic

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

First-Order Logic

Chapter 8

- Why FOL?
- Syntax and semantics of FOL
- Using FOL
- Wumpus world in FOL
- Knowledge engineering in FOL

- Propositional logic is declarativePropositional logic allows partial/disjunctive/negated information
- (unlike most data structures and databases)

- Propositional logic is compositional:
- meaning of B1,1 P1,2 is derived from meaning of B1,1 and of P1,2

- Meaning in propositional logic is context-independent
- (unlike natural language, where meaning depends on context)

- Propositional logic has very limited expressive power
- (unlike natural language)
- E.g., cannot say "pits cause breezes in adjacent squares“
- except by writing one sentence for each square

- 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, …

- ConstantsKingJohn, 2, NUS,...
- PredicatesBrother, >,...
- FunctionsSqrt, LeftLegOf,...
- Variablesx, y, a, b,...
- Connectives, , , ,
- Equality=
- Quantifiers ,

Atomic sentence =predicate (term1,...,termn) or term1 = term2

Term =function (term1,...,termn) or constant or variable

- E.g., Brother(KingJohn,RichardTheLionheart) > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))

- Complex sentences are made from atomic sentences using connectives
S, S1 S2, S1 S2, S1 S2, S1S2,

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

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

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

Syntax of Propositional Logic

- Sentences are true with respect to a model and an interpretation
- Model contains objects (domainelements) and relations among them
- Interpretation specifies referents for
constantsymbols→objects

predicatesymbols → relations

functionsymbols →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

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

...

- Typically, is the main connective with
- Common mistake: using as the main connective with :
x At(x,NUS) Smart(x)

means “Everyone is at NUS and everyone is smart”

- <variables> <sentence>
- Someone at NUS is smart:
- x At(x,NUS) Smart(x)$
- xP 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)

...

- Typically, is the main connective with
- Common mistake: using as the main connective with :
x At(x,NUS) Smart(x)

is true if there is anyone who is not at NUS!

- x y is the same as yx
- x y is the same as yx
- x y is not the same as yx
- x y Loves(x,y)
- “There is a person who loves everyone in the world”

- yx 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) xLikes(x,Broccoli)

- term1 = term2is true under a given interpretation if and only if term1and term2refer to the same object
- E.g., definition of Sibling in terms of Parent:
x,ySibling(x,y) [(x = y) m,f (m = f) Parent(m,x) Parent(f,x) Parent(m,y) Parent(f,y)]

The kinship domain:Brothers are siblings

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

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

- “Sibling” is symmetric
x,y Sibling(x,y) Sibling(y,x)

The set domain:

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

- Suppose a wumpus-world agent is using an FOL KB and perceives a smell and a breeze (but no glitter) at t=5:
Tell(KB,Percept([Smell,Breeze,None],5))

Ask(KB,a BestAction(a,5))

- I.e., does the KB entail some best action at t=5?
- Answer: Yes, {a/Shoot} ← substitution (binding list)
- Given a sentence S and a substitution σ,
- Sσ denotes the result of plugging σ into S; e.g.,
S = Smarter(x,y)

σ = {x/Hillary,y/Bill}

Sσ = Smarter(Hillary,Bill)

- Ask(KB,S) returns some/all σ such that KB╞ σ

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

- Reflex
- t Glitter(t) BestAction(Grab,t)

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

Properties of squares:

- s,t At(Agent,s,t) Breeze(t) Breezy(s)
Squares are breezy near a pit:

- Diagnostic rule---infer cause from effect
s Breezy(s) \Exi{r} Adjacent(r,s) Pit(r)$

- Causal rule---infer effect from cause
r Pit(r) [s Adjacent(r,s) Breezy(s)$ ]

- Diagnostic rule---infer cause from effect

- Identify the task
- Assemble the relevant knowledge
- Decide on a vocabulary of predicates, functions, and constants
- Encode general knowledge about the domain
- Encode a description of the specific problem instance
- Pose queries to the inference procedure and get answers
- Debug the knowledge base

One-bit full adder

- Identify the task
- Does the circuit actually add properly? (circuit verification)

- Assemble the relevant knowledge
- Composed of wires and gates; Types of gates (AND, OR, XOR, NOT)
- Irrelevant: size, shape, color, cost of gates

- Decide on a vocabulary
- Alternatives:
Type(X1) = XOR

Type(X1, XOR)

XOR(X1)

- Alternatives:

- Encode general knowledge of the domain
- t1,t2 Connected(t1, t2) Signal(t1) = Signal(t2)
- t Signal(t) = 1 Signal(t) = 01 ≠ 0t1,t2 Connected(t1, t2) Connected(t2, t1)g Type(g) = OR Signal(Out(1,g)) = 1 n Signal(In(n,g)) = 1g Type(g) = AND Signal(Out(1,g)) = 0 n Signal(In(n,g)) = 0g 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))

- Encode the specific problem instance
Type(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))

- Pose queries to the inference procedure
What are the possible sets of values of all the terminals for the adder circuit?

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

- Debug the knowledge base
May have omitted assertions like 1 ≠ 0

- First-order logic:
- objects and relations are semantic primitives
- syntax: constants, functions, predicates, equality, quantifiers

- Increased expressive power: sufficient to define wumpus world