first order logic (fol) and...
TRANSCRIPT
First Order Logic (FOL) and InferenceCE417: Introduction to Artificial IntelligenceSharif University of TechnologySpring 2018
Soleymani
βArtificial Intelligence: A Modern Approachβ, 3rd Edition, Chapter 8 & 9
Why FOL?
2
To represent knowledge of complex environments concisely
Expressive enough to represent a good deal of of our knowledge
E.g., βpits cause breezes in adjacent squaresβ needs many rules in
propositional logic but one rule in FOL
Natural language elements & FOL elements
Some basic elements of natural language (included also in FOL):
Nouns and noun phrases referring to objects (squares, pits, wumpus)
Some of objects are defined as functions of other objects
Verbs and verb phrases referring to relation among objects (is breezy,is adjacent to, shoot)
Examples:
Objects: people, houses, numbers, baseball games,β¦
Relations
Unary relation or property: red, round, prime,β¦
π-ary: brother of, bigger than, inside, part of, owns, comes between,β¦
Functions: father of, best friend, one more than, beginning of,β¦
FOL does not include all elements of natural language.
3
Symbols & interpretations
Types of symbols
Constant for objects
Predicate for relations
Function for functional relations
4
Example
5
π΅πππ‘βππ(π ππβπππ, π½πβπ)
πΉππ‘βππ(π½πβπ) = π»ππππ¦
πππππππ(πΉππ‘βππ(π ππβπππ),πππ‘βππ(π½πβπ))
βπ₯ πΎπππ π₯ β ππππ ππ π₯
βπ₯ πΆπππ€π π₯ β πππ»πππ π₯, π½πβπ
βπ₯, π¦ π΅πππ‘βππ π₯, π ππβπππ β§ π΅πππ‘βππ π¦, π ππβπππ β§ Β¬(π₯ = π¦)
Β¬πΎπππ(π ππβπππ) β πΎπππ(π½πβπ)
π₯, π¦ πππππππ(π₯, π¦) [ π₯ = π¦ βπ, π (π = π) ππππππ‘(π, π₯) ππππππ‘(π, π₯) ππππππ‘(π, π¦) ππππππ‘(π, π¦)]
Syntax of FOL: Basic elements
Logical elements
Connectives ,,,,
Quantifiers ,
Domain specific elements
Constants π½πβπ, π ππβπππ, β¦
Predicates π΅πππ‘βππ, ...
Functions πΏπππ‘πΏππππ,...
Non-logical general elements
Variables π₯, π¦, π, π, β¦
Equality =
6
Syntax of FOL: Atomic sentences
Atomic Sentence β Predicate | Predicate (Term,β¦, Term) |Term=Term
Term β Constant| variable| Function(Term,β¦)
Constant β Richard |A | X1|β¦
Variable β a | x | s | β¦
Function β Mother | LeftLeg |β¦
Predicate β True | False | After | Loves | Hascolor | β¦.
7
ObjectRelation
1) π΅πππ‘βππ(π ππβπππ, π½πβπ)
2) πΉππ‘βππ(π½πβπ) = π»ππππ¦
3) πππππππ(πΉππ‘βππ(π ππβπππ),πππ‘βππ(π½πβπ))
Syntax of FOL (BNF Grammar)
8
Sentence β Atomic Sentence | ComplexSentenceAtomic Sentence β Predicate | Predicate (Term,β¦, Term) |Term=Term
ComplexSentence β ( Sentence ) | Β¬ Sentence| Sentence β§ Sentence | Sentence β¨ Sentence| Sentence Sentence | Sentence β Sentence| Quantifier variable, β¦Sentence
Term β Function(Term,β¦)
| Constant| variable
Quantifier β β | β
Constant β A | X1β¦
Variable β a | x | s | β¦
Predicate β True | False | After | Loves | Hascolor | β¦.
Function β Mother | LeftLeg |β¦
ππππππ‘ππ ππππππππππ: Β¬,=,β§,β¨,β,βΊ
Universal quantification
π₯ π(π₯) is true in a model π iff π(π₯) is true with π₯ beingeach possible object in the model
conjunction of instantiations of π(π₯)
9
Existential quantification
π₯ π(π₯) is true in a model π iff π(π₯) is true with π₯ beingsome possible object in the model
disjunction of instantiations of π(π₯)
10
Properties of quantifiers
π₯ π¦ π is the same as π¦ π₯ π π₯ π¦ π is the same as π¦ π₯ π π₯ π¦ π is not the same as π¦ π₯ π
π₯ π¦ πππ‘βππ(π₯, π¦) βThere is a person who is mother of everyone in the worldβ
π¦ π₯ πππ‘βππ(π₯, π¦) βEveryone in the world has a motherβ
Quantifier duality π₯ π β π₯π π₯ π β Β¬βπ₯ π
11
FOL: Kinship domain example
Objects people
Functions
Predicates
12
FOL: Kinship domain example
Objects: people
Functions:πππ‘βππ, πΉππ‘βππ
Predicates:
Unary:ππππ, πΉπππππ
Binary:ππππππ‘, πππππππ, π΅πππ‘βππ, πππ π‘ππ, πΆβπππ, π·ππ’πβπ‘ππ, πππ, ππππ’π π,
ππππ, π»π’π ππππ, πΊππππππππππ‘, πΊπππππβπππ, πΆππ’π ππ, π΄π’ππ‘, πππππ
13
FOL: Kinship domain example
14
Sample sentences:
π, π πππ‘βππ π = π β (πΉπππππ(π) β§ ππππππ‘(π, π))
π, π ππππππ‘ π, π β πΆβπππ(π, π)
π, π πΊππππππππππ‘ π, π β βπ ππππππ‘ π, π β§ ππππππ‘ π, π
π₯, π¦ ππππππππ π₯, π¦ β π₯ β π¦ β§ βπ ππππππ‘ π, π₯ β§ ππππππ‘ π, π₯
Assertions & queries in FOL KBs
Assertions: sentences added to πΎπ΅ using ππΈπΏπΏ
ππππ(πΎπ΅, πΎπππ(π½πβπ))
ππππ(πΎπ΅, (βπ₯ πΎπππ π₯ β ππππ ππ π₯ ))
Queries or goals: questions asked from πΎπ΅ using π΄ππΎ
π΄ππΎ πΎπ΅, πΎπππ π½πβπ
π΄ππΎ πΎπ΅, βπ₯ πΎπππ π₯
Substitution or binding list:AskVars
In KB of Horn clauses, every way of making the query true will bind thevariables to specific values
AskVars(πΎπ΅, πΎπππ(π₯)): answer {π₯/π½πβπ}
If KB contains πΎπππ π½πβπ β¨ πΎπππ(π ππβπππ), there is no binding althoughπ΄ππΎ πΎπ΅, βπ₯ πΎπππ π₯ is true
15
FOL: Set domain example
16
Objects: sets, elements
Functions: π 1 β© π 2, π 1 βͺ π 2, {π₯|π }
Predicates: Unary: Set
Binary: π₯ β π , π 1 β π 2
π πππ‘(π ) β (π = {}) β¨ (βπ₯, π 2 πππ‘(π 2) π = {π₯|π 2})
π₯, π {π₯|π } = {} π₯, π π₯ β π β π = {π₯|π }
π₯, π π₯ β π β βπ¦, π 2 (π = {π¦|π 2} (π₯ = π¦ β¨ π₯ β π 2))] π 1, π 2 π 1π 2 (π₯ π₯π 1 π₯ β π 2) π 1, π 2 (π 1 = π 2) (π 1 π 2 π 2 π 1) π₯, π 1, π 2 π₯ β (π 1π 2) (π₯ β π 1 π₯ β π 2)
π₯, π 1, π 2 π₯ β (π 1π 2) (π₯ β π 1 π₯ β π 2)
FOL: Wumpus world example
17
Environment
Objects: pairs identifying squares [π, π], π΄ππππ‘,ππ’πππ’π
Relations:πππ‘, π΄πππππππ‘, π΅ππππ§π¦, ππ‘πππβπ¦,
πππππππ‘, π΄ππ‘πππ, π΄π‘, π»ππ£ππ΄ππππ€,β¦
FOL: Wumpus world example
Perceptions: perceives a smell, a breeze, and glitter at π‘ = 5:
πππππππ‘ ππ‘πππβ, π΅ππππ§π, πΊπππ‘π‘ππ, ππππ, ππππ , 5
Actions: ππ’ππ(πΏπππ‘), ππ’ππ(π ππβπ‘), πΉπππ€πππ, πβπππ‘, πΊπππ, πΆππππ
Perceptions implies facts about current state
βπ‘, π , π,π, π πππππππ‘( π , π΅ππππ§π, π,π, π , π‘) β π΅ππππ§π(π‘)
Simple reflex behavior
βπ‘ πΊπππ‘π‘ππ(π‘) β π΅ππ π‘π΄ππ‘πππ(πΊπππ, π‘)
AskVars(βπ π΅ππ π‘π΄ππ‘πππ(π, 5))
Binding list: e.g., {π/πΊπππ}
18
FOL: Wumpus world example
19
Samples of rules:
βπ₯, π¦, π, π π΄ππ π₯, π¦ , π, π β π₯ = π β§ π¦ = π β 1 β¨ π¦ = π β 1
β¨ π¦ = π β§ π₯ = π β 1 β¨ π₯ = π + 1
π΄π‘ π΄ππππ‘, π , π‘
βπ₯, π¦ βπ‘ π΄π‘(ππ’πππ’π , [π₯, π¦], π‘)
βπ , π‘ π΄π‘ π΄ππππ‘, π , π‘ β§ π΅ππππ§π π‘ β π΅ππππ§π¦ π
βπ₯, π 1, π 2, π‘ π΄π‘ π΄ππππ‘, π 1, π‘ β§ π΄π‘ π΄ππππ‘, π 2, π‘ β π 1 = π 2 βπ , π‘ π΅ππππ§π¦ π β βπ π΄ππ π, π β§ πππ‘ π
One successor-state axiom for each predicate
βπ‘ π»ππ£ππ΄ππππ€ π‘ + 1 β ( π»ππ£ππ΄ππππ€ π‘ β§ Β¬π΄ππ‘πππ πβπππ‘, π‘ )
Knowledge Engineering (KE) in FOL
1) Identify the task
2) Assemble the relevant knowledge
3) Decide on a vocabulary of predicates, functions, and
constants (Ontology)
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
20
Inference in FOL
Reducing first-order inference to propositional inference
Potentially great expense
Lifting inference (direct inference in FOL)
Unification
Generalized Modus Ponens
KB of Horn clauses
Forward chaining
Backward chaining
General KB
Resolution
21
FOL to PL
22
FOL to PL conversion
First order inference by converting the knowledge base to PL
and using propositional inference.
How to remove universal and existential quantifiers?
Universel Instantiation
Existential Instantiation
Universal instantiation (UI)
Every instantiation of a universally quantified sentence is entailed by
it:
βπ£ πΌ
ππ’ππ π‘( π£ π , πΌ)
Example
πΌ: π₯ πΎπππ(π₯) β§ πΊπππππ¦(π₯) β πΈπ£ππ(π₯)
ππ’ππ π‘ π₯ π½πβπ , πΌ πΎπππ(π½πβπ) β§ πΊπππππ¦(π½πβπ) β πΈπ£ππ(π½πβπ)ππ’ππ π‘ π₯ π ππβπππ , πΌ πΎπππ π ππβπππ β§ πΊπππππ¦ π ππβπππ β πΈπ£ππ π ππβπππππ’ππ π‘ π₯ πΉππ‘βππ π½πβπ , πΌ πΎπππ(πΉππ‘βππ(π½πβπ)) β§ πΊπππππ¦(πΉππ‘βππ(π½πβπ))β πΈπ£ππ(πΉππ‘βππ(π½πβπ))
23
Existential instantiation (EI)
For any sentence πΌ, variable π£, and a new constant symbol π:
βπ£ πΌ
ππ’ππ π‘( π£ π , πΌ)
Example, πΌ: π₯ πΆπππ€π(π₯) β§ πππ»πππ(π₯, π½πβπ) ππ’ππ π‘ π₯ πΆ1 , πΌ
πΆπππ€π(πΆ1) β§ πππ»πππ(πΆ1, π½πβπ)
πΆ1 is a new constant symbol, called a Skolem constant
EI can be applied one time (existentially quantified sentence
can be discarded after it)
24
Reduction to propositional inference: Example
25
KB of FOL sentences:
π₯ πΎπππ π₯ πΊπππππ¦ π₯ πΈπ£ππ π₯
πΎπππ π½πβπ
πΊπππππ¦ π½πβπ
π΅πππ‘βππ π ππβπππ, π½πβπ
π₯ πΆπππ€π(π₯) β§ πππ»πππ(π₯, π½πβπ)
A universally quantified sentence is replaced by all possible instantiations & anexistentially quantified sentence by one instantiation:
πΎπππ(π½πβπ) πΊπππππ¦(π½πβπ) β πΈπ£ππ(π½πβπ)
πΎπππ(π ππβπππ) πΊπππππ¦(π ππβπππ) β πΈπ£ππ(π ππβπππ)
πΎπππ(π½πβπ)
πΊπππππ¦(π½πβπ)
π΅πππ‘βππ(π ππβπππ, π½πβπ)
πΆπππ€π πΆ1 πππ»πππ πΆ1, π½πβπ
Propositionalization
26
Every FOL KB and query can be propositionalized
Algorithms for deciding PL entailment can be used
Problem: infinitely large set of sentences
Infinite set of possible ground-term substitution due to function symbols
e.g.,πΉππ‘βππ(β¦πΉππ‘βππ(πΉππ‘βππ(π½πβπ)))
Solution:
Theorem (Herbrand, 1930): If a sentence πΌ is entailed by an FOL KB,it can be entailed by a finite subset of its propositionalized KB
for π = 0 to β do
Generate all instantiations with depth π nested symbols
if πΌ is entailed by this πΎπ΅ then return π‘ππ’π
Propositionalization (Cont.)
27
Problem: When procedure go on and on, we will not know
whether it is stuck in a loop or the proof is just about to pop
out
Theorem (Turing-1936, Church-1936): Deciding entailment for
FOL is semidecidable
Algorithms exist that say yes to every entailed sentence, but no
algorithm exists that also says no to every non-entailed sentence.
Propositionalization is inefficient
Generates lots of irrelevant sentences
Example:
πΎπππ π ππβπππ πΊπππππ¦ π ππβπππ πΈπ£ππ π ππβπππ is irrelevant.
π π-ary predicates and π constants
π Γ ππ instantiations
28
π₯ πΎπππ π₯ πΊπππππ¦ π₯ πΈπ£ππ π₯
πΎπππ π½πβπ
πΊπππππ¦ π½πβπ
π΅πππ‘βππ π ππβπππ, π½πβπ
KB
πΈπ£ππ(π₯)
Query
Lifting & Unification
29
Lifting: raising inference rules or algorithms from ground
(variable-free) PL to FOL.
E.g., generalized Modus Ponens
Unification: Lifted inference rules require finding substitutions
that make different expressions looks identical.
Instantiating variables only as far as necessary for the proof.
All variables are assumed universally quantified.
Unification: Simple example
30
Example: Infer immediately when finding a substitution ΞΈ suchthat πΎπππ(π₯) and πΊπππππ¦(π₯) match πΎπππ(π½πβπ) and
πΊπππππ¦(π¦)
π₯ πΎπππ π₯ πΊπππππ¦ π₯ πΈπ£ππ π₯
πΎπππ π½πβπ
βπ¦ πΊπππππ¦ π¦
π΅πππ‘βππ π ππβπππ, π½πβπ
KB
πΈπ£ππ(π₯)
Query
Unification: examples
31
πππΌπΉπ π, π = π where ππ’ππ π‘ π, π = ππ’ππ π‘(π, π)
πππ
{π₯/π½πππ}πΎπππ€π (π½πβπ, π½πππ)πΎπππ€π (π½πβπ, π₯)
{ π₯ π΅πππ, π¦/π½πβπ}πΎπππ€π (π¦, π΅πππ)πΎπππ€π (π½πβπ, π₯)
{ π₯ πππ‘βππ(π½πβπ), π¦/π½πβπ}πΎπππ€π (π¦,πππ‘βππ(π¦))πΎπππ€π (π½πβπ, π₯)
πππππΎπππ€π (π₯, πΈπππ§ππππ‘β)πΎπππ€π (π½πβπ, π₯)
Unification: examples
32
πππΌπΉπ π, π = π where ππ’ππ π‘ π, π = ππ’ππ π‘(π, π)
πππ
{π₯/π½πππ}πΎπππ€π (π½πβπ, π½πππ)πΎπππ€π (π½πβπ, π₯)
{ π₯ π΅πππ, π¦/π½πβπ}πΎπππ€π (π¦, π΅πππ)πΎπππ€π (π½πβπ, π₯)
{ π₯ πππ‘βππ(π½πβπ), π¦/π½πβπ}πΎπππ€π (π¦,πππ‘βππ(π¦))πΎπππ€π (π½πβπ, π₯)
πππππΎπππ€π (π₯, πΈπππ§ππππ‘β)πΎπππ€π (π½πβπ, π₯)
Unification: complications
33
Complications
Two sentences using the same variable name
Standardizing apart: renaming the variables causing name clashes in
one of sentences
More than one unifier
Most General Unifier (MGU)
πππ
πππππΎπππ€π (π₯, πΈπππ§ππππ‘β)πΎπππ€π (π½πβπ, π₯)
{ π₯ πΈπππ§ππππ‘β, π₯2/π½πβπ}πΎπππ€π (π₯2, πΈπππ§ππππ‘β)πΎπππ€π (π½πβπ, π₯)
Unification (MGU)
πππΌπΉπ( πΎπππ€π π½πβπ, π₯ , πΎπππ€π π¦, π§ ) π1 = {π¦/π½πβπ, π₯/π§ }
π2 = {π¦/π½πβπ, π₯/π½πβπ, π§/π½πβπ}
π1 is more general
There is a single most general unifier (MGU) that is unique upto renaming of variables.
34
Generalized Modus Ponens (GMP)
35
For atomic sentences ππ , ππβ², π & ππ’ππ π‘ π, ππ
β² = ππ’ππ π‘ π, ππ for
all π
π1β² , π2
β² , β¦ , ππβ² , (π1 β§ π2 β§ β¦ β§ ππ β π)
ππ’ππ π‘(π, π)
π1β² : πΎπππ(π½πβπ) π1 : πΎπππ(π₯)
π2β² :πΊπππππ¦(π¦) π2 : πΊπππππ¦(π₯)
π:πΈπ£ππ(π₯)π = {π₯/π½πβπ, π¦/π½πβπ}
ππ’ππ π‘(π, π) is πΈπ£ππ(π½πβπ)
πΎπππ π₯ πΊπππππ¦ π₯ πΈπ£ππ π₯
πΎπππ π½πβπ
πΊπππππ¦ π¦
β¦
KB
πΈπ£ππ(π₯)
Query
GMP is sound
36
Universal instantiation:π β¨ ππ’ππ π‘(π, π)
1)π1β² β§ β¦ β§ ππ
β²
ππ’ππ π‘ π, π1β² β§ β¦β§ ππ’ππ π‘(π, ππ
β² )
2)π1 β§ π2 β§ β¦ β§ ππ βπ
ππ’ππ π‘ π, π1 β§ β¦ β§ ππ’ππ π‘ π, ππ β ππ’ππ π‘(π, π)
3) ππ’ππ π‘(π, π) follows by Modus Ponens since we have
ππ’ππ π‘ π, ππβ² = ππ’ππ π‘ π, ππ .
π1β² , π2
β² , β¦ , ππβ² , (π1 β§ π2 β§ β¦ β§ ππ β π)
ππ’ππ π‘(π, π)
KB of definite clauses
37
Definite clause: disjunctions of literals of which exactly
one is positive.
Atomic:π1, π2, β¦
Implication: π1 β§ π2 β§β¦ β§ ππ β ππ+1
First order definite clause examples:
πΎπππ π₯ β§ πΊπππππ¦ π₯ β πΈπ£ππ π₯
πΎπππ(π½πβπ)
π΅πππ‘βππ(π½πβπ, π ππβπππ)
KB of first order definite clauses: Example
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
Question: Prove that ColonelWest is a criminal
38
KB of first order definite clauses: Example
39
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
π΄πππππππ(π₯) β§ ππππππ(π¦) β§ πππππ (π₯, π¦, π§) π»ππ π‘πππ(π§) β πΆπππππππ(π₯)
KB of first order definite clauses: Example
40
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
πΈππππ¦(ππππ, π΄ππππππ)
KB of first order definite clauses: Example
41
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
π₯ ππ€ππ (ππππ, π₯) πππ π πππ(π₯)
ππ€ππ (ππππ,π1) β§ πππ π πππ(π1)
KB of first order definite clauses: Example
42
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
πππ π πππ(π₯) β§ ππ€ππ (ππππ, π₯) πππππ (πππ π‘, π₯, ππππ)
KB of first order definite clauses: Example
43
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
π΄πππππππ(πππ π‘)
KB of first order definite clauses: Example
44
βThe law says that it is a crime for an American to sell
weapons to hostile nations. The country Nono, an enemy
of America, has some missiles, and all of its missiles were
sold to it by ColonelWest, who is American.β
We need to know missiles are weapons:
We need to know an enemy of America counts as βhostileβ:
πππ π πππ(π₯) β ππππππ(π₯)
πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
KB of first order definite clauses: Example
π΄πππππππ(π₯) β§ ππππππ(π¦) β§ πππππ (π₯, π¦, π§) π»ππ π‘πππ(π§) β πΆπππππππ(π₯)
πΈππππ¦(ππππ, π΄ππππππ)
ππ€ππ (ππππ,π1) β§ πππ π πππ(π1)
πππ π πππ(π₯) β§ ππ€ππ (ππππ, π₯) πππππ (πππ π‘, π₯, ππππ)
π΄πππππππ(πππ π‘)
πππ π πππ(π₯)ππππππ(π₯)
πΈππππ¦(π₯, π΄ππππππ) π»ππ π‘πππ(π₯)
45
FC algorithm
46
function FOL_FC_ASK(πΎπ΅, πΌ) returns a substitution or ππππ π
inputs: πΎπ΅, a set of first-order definite clauses
πΌ, the query, an atomic sentence
repeat until πππ€ = {}
πππ€ = {}
for each ππ’ππ in πΎπ΅ do(π1 β§ β―β§ ππ β π) β STANDARDIZE_VARS(ππ’ππ)
for each π such that SUBST π, π1 β§ β―β§ ππ = SUBST(π, πβ²1 β§ β―β§ πβ²π)
for some πβ²1, β¦ , πβ²π in πΎπ΅
πβ² β SUBST(π, π)
if πβ² does not unify with some sentence already in πΎπ΅ or πππ€ then
add πβ² to πππ€
π β UNIFY(πβ², πΌ)
if π is not ππππ then return π
add πππ€ to πΎπ΅
return ππππ π
FC: example
47
1) π΄πππππππ πππ π‘
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) πΈππππ¦(ππππ, π΄ππππππ)
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Known facts
FC: example
48
1) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
2) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
3) πππ π πππ π₯ ππππππ π₯
4) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
{π₯/π1}
{π₯/π1}
{π₯/ππππ}
FC: example
49
1) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
2) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
3) πππ π πππ π₯ ππππππ π₯
4) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
{π₯/π1}
{π₯/π1}
{π₯/ππππ}
{π₯/πππ π‘, π¦/π1,π§/ππππ}
Properties of FC
Sound
Complete (for KBs of first-order definite clauses)
For Datalog KBs, proof is fairly easy.
Datalog KBs contain first-order definite clauses with no function symbols
FC reaches a fix point for Datalog KBs after finite number of iterations
It may not terminate in general if πΌ is not entailed (query has no answer)
entailment with definite clauses is also semi-decidable
50
More efficient FC
Heuristics for matching rules against known facts
E.g., conjunct ordering
Incremental forward chaining to avoid redundant rule matching
Every new fact inferred on iteration π‘ must be derived from at leastone new fact inferred on iteration π‘ β 1.
Check a rule only if its premise includes a newly inferred fact (at iteration π‘β 1)
Avoid drawing irrelevant facts (to the goal)
51
Backward Chaining (BC)
52
Works backward from the goal, chaining through rules to
find known facts supporting the proof
AND-OR search
OR: any rule πβπ β ππππ in KB can be used to prove the goal
AND: all conjuncts in πβπ must be proved.
It is used in logic programming (Prolog)
BC algorithm
(depth-first recursive proof search)
53
function FOL_BC_ASK(πΎπ΅, ππ’πππ¦) returns a generator of substitutions
return FOL_BC_OR(πΎπ΅, ππ’πππ¦, {})
generator FOL_BC_OR(πΎπ΅, ππππ, π) yields a substitution
for each rule (πβπ β πβπ ) in FETCH_RULES_FOR_GOAL(πΎπ΅, ππππ) do(πβπ , πβπ ) β STANDARDIZE_VARS(πβπ , πβπ )
for each πβ² in FOL_BC_AND(πΎπ΅, πβπ , UNIFY(πβπ , ππππ, π) do
yield πβ²
generator FOL_BC_AND(πΎπ΅, πππππ , π) yields a substitution
if π = πππππ’ππ then return
else if LENGTH πππππ = 0 then yield π
else do
ππππ π‘ β FIRST πππππ
πππ π‘ β REST πππππ
for each πβ² in FOL_BC_OR(πΎπ΅, SUBST π, ππππ π‘ , π) do
for each πβ²β² in FOL_BC_AND(πΎπ΅, πππ π‘, πβ²) do
yield πβ²β²
Backward chaining example
54
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
55
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
56
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
57
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
58
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
59
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
60
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
61
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Backward chaining example
62
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
Properties of BC
Space is linear in the size of the proof
Suffers from repeated states and incompleteness
Repeated subgoals (both success and failure)
Solution: caching of previous results
Incompleteness due to infinite loops
Solution: checking current goal against every goal on stack
63
Resolution algorithm
64
General theorem proving
Apply resolution rule to πΆππΉ(πΎπ΅ β§ Β¬πΌ)
Refutation-complete for FOL
Resolution
65
PL resolution: ππ and ππ are complement
π1 β¨ π2 β¨ β―β¨ ππ , π1β¨π2 β¨ β―β¨ππ
π1 β¨ β¦β¨ ππβ1 β¨ ππ+1 β¨ β―β¨ ππ β¨ π1 β¨ β¦β¨ππβ1 β¨ ππ+1 β¨ β―β¨ππ
First-order resolution UNIFY ππ ,ππ = π Clauses are assumed to be standardized apart (sharing no variables).
π1 β¨ π2 β¨ β―β¨ ππ , π1β¨ π2 β¨ β―β¨ ππ
SUBST(π, π1 β¨ β¦β¨ ππβ1 β¨ ππ+1 β¨ β―β¨ ππ β¨ π1 β¨ β¦β¨ ππβ1 β¨ ππ+1 β¨ β― β¨ ππ)
Example:π ππβ π₯ β¨ ππβππππ¦ π₯ , π ππβ(πΎππ)
ππβππππ¦(πΎππ)π = {π₯/πΎππ}
Converting FOL sentence to CNF
Example:βeveryone who loves all animals is loved by someoneβπ₯ [βπ¦ π΄πππππ(π¦) β πΏππ£ππ (π₯, π¦)] [π¦ πΏππ£ππ (π¦, π₯)]
1) Eliminate implications (π β π β‘ Β¬π β¨ π)π₯ [Β¬βπ¦ Β¬π΄πππππ π¦ πΏππ£ππ (π₯, π¦)] [π¦ πΏππ£ππ (π¦, π₯)]
2) Move inwards:x p to x p, x p to x pπ₯ [βπ¦ Β¬(Β¬π΄πππππ π¦ πΏππ£ππ (π₯, π¦))] [π¦ πΏππ£ππ (π¦, π₯)]π₯ [βπ¦ ¬¬π΄πππππ(π¦) β§ Β¬πΏππ£ππ (π₯, π¦)] [π¦ πΏππ£ππ (π¦, π₯)]π₯ [βπ¦ π΄πππππ(π¦) β§ Β¬πΏππ£ππ (π₯, π¦)] [π¦ πΏππ£ππ (π¦, π₯)]
3) Standardize variables (avoiding same names for variables)
π₯ [βπ¦ π΄πππππ(π¦) β§ Β¬πΏππ£ππ (π₯, π¦)] [π§ πΏππ£ππ (π§, π₯)]
66
Converting FOL sentence to CNF
4) Skolemize: a more general form of existential instantiation.Each existentially quantified variable is replaced by a Skolem function of theenclosing universally quantified variables.
π₯ [π΄πππππ(πΉ(π₯)) β§ Β¬πΏππ£ππ (π₯, πΉ(π₯))] β¨ πΏππ£ππ (πΊ(π₯), π₯)
5) Drop universal quantifiers:[π΄πππππ(πΉ(π₯)) β§ Β¬πΏππ£ππ (π₯, πΉ(π₯))] β¨ πΏππ£ππ (πΊ(π₯), π₯)
6) Distribute over :[π΄πππππ(πΉ(π₯)) β¨ πΏππ£ππ (πΊ(π₯), π₯)] β§ [Β¬πΏππ£ππ (π₯, πΉ(π₯)) β¨ πΏππ£ππ (πΊ(π₯), π₯)]
67
Properties of resolution
68
Resolution
Complete when used in combination with factoring
Extend factoring to FOL
Factoring in PL: reduces two literals to one if they are identical
Factoring in FOL: reduces two literals to one if they are
unifiable.The unifier must be applied to the entire clause
Resolution: definite clauses example
69
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) πππ π πππ π₯ β§ ππ€ππ ππππ, π₯ πππππ πππ π‘, π₯, ππππ
5) π΄πππππππ π₯ β§ ππππππ π¦ β§ πππππ π₯, π¦, π§ π»ππ π‘πππ π§ β πΆπππππππ π₯
6) πππ π πππ π₯ ππππππ π₯
7) πΈππππ¦(π₯, π΄ππππππ)π»ππ π‘πππ(π₯)
1) πΈππππ¦(ππππ, π΄ππππππ)
2) ππ€ππ ππππ,π1 β§ πππ π πππ π1
3) π΄πππππππ πππ π‘
4) Β¬πππ π πππ π₯ β¨ Β¬ππ€ππ ππππ, π₯ β¨ πππππ πππ π‘, π₯, ππππ
5) Β¬π΄πππππππ π₯ β¨ Β¬ππππππ π¦ β¨ Β¬πππππ π₯, π¦, π§ β¨ Β¬π»ππ π‘πππ π§ β¨ πΆπππππππ π₯
6) Β¬πππ π πππ π₯ β¨ ππππππ π₯
7) Β¬πΈππππ¦ π₯, π΄ππππππ β¨ π»ππ π‘πππ(π₯)
Convert to CNF
Resolution: definite clauses example
70
πΎπ΅ Β¬πΌ
Resolution: general example
71
Every one who loves all animals is loved by someone.
π₯ [βπ¦ π΄πππππ(π¦) β πΏππ£ππ (π₯, π¦)] [π¦ πΏππ£ππ (π¦, π₯)]
Anyone who kills an animal is loved by no one.
π₯ [βπ§ π΄πππππ(π§) β§ πΎππππ (π₯, π§)] [βπ¦ Β¬πΏππ£ππ (π¦, π₯)]
Jack loves all animals.
π₯ π΄πππππ(π₯) πΏππ£ππ (π½πππ, π₯)
Either Jack or Curiosity killed the cat, who is namedTuna.
πΎππππ π½πππ, ππ’ππ β¨ πΎππππ (πΆπ’ππππ ππ‘π¦, ππ’ππ)
πΆππ‘(ππ’ππ)
Query: Did Curiosity kill the cat?
πΎππππ (πΆπ’ππππ ππ‘π¦, ππ’ππ)
Resolution: general example
72
CNF (πΎπ΅ β§ Β¬πΌ): π΄πππππ(πΉ(π₯)) β¨ πΏππ£ππ (πΊ(π₯), π₯)
Β¬πΏππ£ππ (π₯, πΉ(π₯)) β¨ πΏππ£ππ (πΊ(π₯), π₯)
Β¬πΏππ£ππ (π¦, π₯) β¨ Β¬π΄πππππ(π§) β¨ Β¬πΎππππ (π₯, π§)
Β¬π΄πππππ(π₯) β¨ πΏππ£ππ (π½πππ, π₯)
πΎππππ π½πππ, ππ’ππ β¨ πΎππππ (πΆπ’ππππ ππ‘π¦, ππ’ππ)
πΆππ‘(ππ’ππ)
Β¬ πΎππππ (πΆπ’ππππ ππ‘π¦, ππ’ππ)
Query:βWho killed the catβ?
πΌ: βπ€ πΎππππ (π€, ππ’ππ)
The binding {π€/πΆπ’ππππ ππ‘π¦} in one of steps
Resolution: general example
73
Query:βWho killed the catβ?
πΌ: βπ€ πΎππππ (π€, ππ’ππ)
The binding {π€/πΆπ’ππππ ππ‘π¦} in one of steps
Prolog (Programming in logic)
Basis: backward chaining with Horn clauses
Depth-first, left-to-right BC
Program = set of clauses
Fact
e.g., american(west).
Rule: head :- literal1, β¦ ,literaln.
e.g., criminal(X) :- american(X), weapon(Y), sells(X,Y,Z),
hostile(Z).
74
Prolog: Example
Appending two lists to produce a third:
append([],Y,Y).
append([X|L],Y,[X|Z]) :- append(L,Y,Z).
query: append(A,B,[1,2]) ?
answers: A=[] B=[1,2]
A=[1] B=[2]
A=[1,2] B=[]
75
Summary
76
First order logic
Inference
Lifting and unification
Inference on KB of definite clauses
Forward chaining
Backward chaining
Inference on general KB of FOL
Resolution