0% found this document useful (0 votes)
13 views64 pages

AI Unit-III Chapter-II Inference in First-Order Logic

Uploaded by

Dummy Doom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views64 pages

AI Unit-III Chapter-II Inference in First-Order Logic

Uploaded by

Dummy Doom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 64

UNIT – III (Logic and Knowledge Representation)

Chapter-II: Inference in First-Order Logic: Propositional vs. First-Order


Inference, Unification and Lifting, Forward Chaining, Backward Chaining,
Resolution.
INFERENCE IN FIRST-ORDER LOGIC
 Inference in First-Order Logic is used to deduce new facts or sentences
from existing sentences.
 Before understanding the FOL inference rule, let's understand some basic
terminologies used in FOL.
 Substitution:
 Substitution is a fundamental operation performed on terms and
formulas. It occurs in all inference systems in first-order logic.
 The substitution is complex in the presence of quantifiers in FOL. If
we write F[a/x], so it refers to substitute a constant "a" in place of
variable "x".
 Equality:

 First-Order logic does not only use predicate and terms for making atomic
sentences but also uses another way, which is equality in FOL. For this, we
can use equality symbols which specify that the two terms refer to the
same object.
Example: Brother(John) = Smith.
 As in the above example, the object referred by the Brother(John) is
similar to the object referred by Smith. The equality symbol can also be
used with negation to represent that two terms are not the same objects.
Example: ¬ (x=y) which is equivalent to x ≠y.
FOL inference rules for quantifier:
 As propositional logic we also have inference rules in first-order logic,
so following are some basic inference rules in FOL:
1. Universal Generalization

2. Universal Instantiation

3. Existential Instantiation

4. Existential introduction
1. Universal Generalization:
 Universal generalization is a valid inference rule which states that if
premise P(c) is true for any arbitrary element c in the universe of
discourse, then we can have a conclusion as ∀ x P(x).

 It can be represented as:

 This rule can be used if we want to show that every element has a similar
property.

 In this rule, x must not appear as a free variable.

Example: Let's represent, P(c): "A byte contains 8 bits", so for ∀ x


P(x) "All bytes contain 8 bits.", it will also be true.
2. Universal Instantiation:
 Universal instantiation is also called as universal elimination or UI is a valid
inference rule. It can be applied multiple times to add new sentences.

 The new KB is logically equivalent to the previous KB.

 As per UI, we can infer any sentence obtained by substituting a ground


term for the variable.

 The UI rule state that we can infer any sentence P(c) by substituting a
ground term c (a constant within domain x) from ∀ x P(x) for any object in
the universe of discourse.
 It can be represented as:
Example-1:

IF "Every person likes ice-cream"=> ∀x P(x) so we can infer that


"John likes ice-cream" => P(c)
Example-2:

Let's take a famous example,

"All kings who are greedy are Evil." So let our knowledge base contains
this detail as in the form of FOL: ∀x king(x) ∧ greedy(x) → Evil (x),

So, from this information, we can infer any of the following statements
using Universal instantiation:
o King(John) ∧ Greedy(John) → Evil (John),

o King(Richard) ∧ Greedy(Richard) → Evil (Richard),

o King(Father(John)) ∧ Greedy(Father(John)) → Evil(Father(John)),


3. Existential Instantiation:
 Existential instantiation is also called as Existential Elimination, which is a
valid inference rule in first-order logic.

 It can be applied only once to replace the existential sentence.

 The new KB is not logically equivalent to old KB, but it will be satisfiable
if old KB was satisfiable.

 This rule states that one can infer P(c) from the formula given in the form
of ∃x P(x) for a new constant symbol c.

 The restriction with this rule is that c used in the rule must be a new term
for which P(c) is true.
 It can be represented as:

Example:
From the given sentence: ∃x Crown(x) ∧ OnHead(x, John),
So we can infer: Crown(K) ∧ OnHead( K, John), as long as K does not
appear in the knowledge base.
o The above used K is a constant symbol, which is called Skolem constant.

o The Existential instantiation is a special case of Skolemization process.


4. Existential introduction
 An existential introduction is also known as an existential
generalization, which is a valid inference rule in first-order logic.

 This rule states that if there is some element c in the universe of


discourse which has a property P, then we can infer that there exists
something in the universe which has the property P.
 It can be represented as:

Example: Let's say that,


"Priyanka got good marks in English."
"Therefore, someone got good marks in English."
Generalized Modus Ponens Rule:
 For the inference process in FOL, we have a single inference rule which
is called Generalized Modus Ponens. It is lifted version of Modus
ponens.
 Generalized Modus Ponens can be summarized as, " P implies Q and P
is asserted to be true, therefore Q must be True."
 According to Modus Ponens, for atomic sentences pi, pi', q. Where
there is a substitution θ such that SUBST(θ, pi',) = SUBST(θ, pi), it can
be represented as:
Example:
We will use this rule for Kings are evil, so we will find some x such that x
is king, and x is greedy so we can infer that x is evil.
UNIFICATION IN FIRST-ORDER LOGIC

What is Unification?
 Unification is a process of making two different logical atomic expressions
identical by finding a substitution. Unification depends on the substitution
process.

 It takes two literals as input and makes them identical using substitution.

 Let Ψ1 and Ψ2 be two atomic sentences and 𝜎 be a unifier such that, Ψ1𝜎 = Ψ2𝜎,

then it can be expressed as UNIFY(Ψ1, Ψ2).

Example: Find the MGU for Unify{King(x), King(John)}


 Let Ψ1 = King(x), Ψ2 = King(John),
Substitution θ = {John/x} is a unifier for these atoms and applying
this substitution, and both expressions will be identical.
 The UNIFY algorithm is used for unification, which takes two atomic
sentences and returns a unifier for those sentences (If any exist).

 Unification is a key component of all first-order inference algorithms.

 It returns fail if the expressions do not match with each other.

 The substitution variables are called Most General Unifier or MGU.


Example: Let's say there are two different expressions, P(x, y), and P(a, f(z)).
In this example, we need to make both above statements identical to each other.
For this, we will perform the substitution.

P(x, y)......... (i)


P(a, f(z))......... (ii)
 Substitute x with a, and y with f(z) in the first expression, and it will be
represented as a/x and f(z)/y.

 With both the substitutions, the first expression will be identical to the
second expression and the substitution set will be: [a/x, f(z)/y].
Conditions for Unification:
Following are some basic conditions for unification:
 Predicate symbol must be same, atoms or expression with different
predicate symbol can never be unified.

 Number of Arguments in both expressions must be identical.

 Unification will fail if there are two similar variables present in the same
expression.
Unification Algorithm:
Algorithm: Unify(Ψ1, Ψ2)
Step. 1: If Ψ1 or Ψ2 is a variable or constant, then:
a) If Ψ1 or Ψ2 are identical, then return NIL.
b) Else if Ψ1is a variable,
a. then if Ψ1 occurs in Ψ2, then return FAILURE
b. Else return {(Ψ2/ Ψ1)}.
c) Else if Ψ2 is a variable,
a. If Ψ2 occurs in Ψ1 then return FAILURE,
b. Else return {(Ψ1/ Ψ2)}.
d) Else return FAILURE.
Step. 2: If the initial Predicate symbol in Ψ1 and Ψ2 are not
same, then return FAILURE.
Step. 3: IF Ψ1 and Ψ2 have a different number of arguments, then
return FAILURE.
Step. 4: Set Substitution set(SUBST) to NIL.
Step. 5: For i=1 to the number of elements in Ψ1.
a) Call Unify function with the ith element of Ψ1 and ith
element of Ψ2, and put the result into S.
b) If S = failure then returns Failure
c) If S ≠ NIL then do,
a. Apply S to the remainder of both L1 and L2.
b. SUBST= APPEND(S, SUBST).
Step. 6: Return SUBST.
Implementation of the Algorithm
Step-1: Initialize the substitution set to be empty.
Step-2: Recursively unify atomic sentences:
 Check for Identical expression match.

 If one expression is a variable vi, and the other is a term ti which does not contain

variable vi, then:

a. Substitute ti/vi in the existing substitutions

b. Add ti/vi to the substitution setlist.

c. If both the expressions are functions, then function name must be similar, and
the number of arguments must be the same in both the expression.
For each pair of the following atomic sentences
find the most general unifier (If exist).
1. Find the MGU of {p(f(a), g(Y)) and p(X, X)}
Sol: S0 => Here, Ψ1 = p(f(a), g(Y)), and Ψ2 = p(X, X)
SUBST θ= {f(a) / X}
S1 => Ψ1 = p(f(a), g(Y)), and Ψ2 = p(f(a), f(a))
SUBST θ= {f(a) / g(y)}, Unification failed.
Unification is not possible for these expressions.
2. Find the MGU of {p(b, X, f(g(Z))) and p(Z, f(Y), f(Y))}

Here, Ψ1 = p(b, X, f(g(Z))) , and Ψ2 = p(Z, f(Y), f(Y))

S0 => { p(b, X, f(g(Z))); p(Z, f(Y), f(Y))}


SUBST θ={b/Z}

S1 => { p(b, X, f(g(b))); p(b, f(Y), f(Y))}


SUBST θ={f(Y) /X}

S2 => { p(b, f(Y), f(g(b))); p(b, f(Y), f(Y))}


SUBST θ= {g(b) /Y}

S2 => { p(b, f(g(b)), f(g(b)); p(b, f(g(b)), f(g(b))} Unified Successfully.


And Unifier = { b/Z, f(Y) /X , g(b) /Y}.
3. Find the MGU of {p (X, X), and p (Z, f(Z))}

Here, Ψ1 = {p (X, X), and Ψ2 = p (Z, f(Z))

S0 => {p (X, X), p (Z, f(Z))}


SUBST θ= {X/Z}
S1 => {p (Z, Z), p (Z, f(Z))}
SUBST θ= {f(Z) / Z}, Unification Failed.

Hence, unification is not possible for these expressions.


4. Find the MGU of UNIFY(prime (11), prime(y))

Here, Ψ1 = {prime(11) , and Ψ2 = prime(y)}

S0 => {prime(11) , prime(y)}


SUBST θ= {11/y}

S1 => {prime(11) , prime(11)} , Successfully unified.


Unifier: {11/y}.
5. Find the MGU of Q(a, g(x, a), f(y)), Q(a, g(f(b), a), x)}

Here, Ψ1 = Q(a, g(x, a), f(y)), and Ψ2 = Q(a, g(f(b), a), x)

S0 => {Q(a, g(x, a), f(y)); Q(a, g(f(b), a), x)}


SUBST θ= {f(b)/x}
S1 => {Q(a, g(f(b), a), f(y)); Q(a, g(f(b), a), f(b))}

SUBST θ= {b/y}
S1 => {Q(a, g(f(b), a), f(b)); Q(a, g(f(b), a), f(b))}, Successfully Unified.

Unifier: [a/a, f(b)/x, b/y].


6. UNIFY(knows(Richard, x), knows(Richard, John))

Here, Ψ1 = knows(Richard, x), and Ψ2 = knows(Richard, John)

S0 => { knows(Richard, x); knows(Richard, John)}


SUBST θ= {John/x}
S1 => { knows(Richard, John); knows(Richard, John)}, Successfully Unified.
Unifier: {John/x}.
THE RESOLUTION INFERENCE RULE:
 The resolution rule for first-order logic is simply a lifted version of the
propositional rule.
 Resolution can resolve two clauses if they contain complementary literals,
which are assumed to be standardized apart so that they share no variables.

 Where li and mj are complementary literals.


 This rule is also called the binary resolution rule because it only resolves
exactly two literals.
Example:
We can resolve two clauses which are given below:
[Animal(g(x) V Loves(f(x), x)] and [ ¬ Loves(a, b) V ¬ Kills(a, b)]
Where two complimentary literals are: Loves(f(x), x) and ¬ Loves(a, b)
These literals can be unified with unifier θ= [a/f(x), and b/x], and it will
generate a resolvent clause: [Animal(g(x) V ¬ Kills(f(x), x)].
Steps for Resolution:
1. Conversion of facts into first-order logic.

2. Convert FOL statements into CNF

3. Negate the statement which needs to prove (proof by contradiction)

4. Draw resolution graph (unification).

To better understand all the above steps, we will take an example in which
we will apply resolution.
Example:
a. John likes all kind of food.

b. Apple and vegetable are food

c. Anything anyone eats and not killed is food.

d. Anil eats peanuts and still alive

e. Harry eats everything that Anil eats.


Prove by resolution that: “John likes peanuts.”
Step-1: Conversion of Facts into FOL
In the first step we will convert all the given statements into its first order
logic.
Step-2: Conversion of FOL into CNF

In First order logic resolution, it is required to convert the FOL into CNF as
CNF form makes easier for resolution proofs.
o Eliminate all implication (→) and rewrite
1. ∀x ¬ food(x) V likes(John, x) 7. ∀x ¬ alive(x) V ¬ killed(x)

2. food(Apple) Λ food(vegetables) 8. likes(John, Peanuts).

3. ∀x ∀y ¬ [eats(x, y) Λ ¬ killed(x)] V food(y)

4. eats(Anil, Peanuts) Λ alive(Anil)

5. ∀x ¬ eats(Anil, x) V eats(Harry, x)

6. ∀x¬ [¬ killed(x) ] V alive(x)


o Move negation (¬)inwards and rewrite

1. ∀x ¬ food(x) V likes(John, x)

2. food(Apple) Λ food(vegetables)

3. ∀x ∀y ¬ eats(x, y) V killed(x) V food(y)

4. eats(Anil, Peanuts) Λ alive(Anil)

5. ∀x ¬ eats(Anil, x) V eats(Harry, x)

6. ∀x ¬killed(x) ] V alive(x)

7. ∀x ¬ alive(x) V ¬ killed(x)

8. likes(John, Peanuts).
o Rename variables or standardize variables

1. ∀x ¬ food(x) V likes(John, x)

2. food(Apple) Λ food(vegetables)

3. ∀y ∀z ¬ eats(y, z) V killed(y) V food(z)

4. eats(Anil, Peanuts) Λ alive(Anil)

5. ∀w¬ eats(Anil, w) V eats(Harry, w)

6. ∀g ¬killed(g) ] V alive(g)

7. ∀k ¬ alive(k) V ¬ killed(k)

8. likes(John, Peanuts).
o Eliminate existential instantiation quantifier by elimination.

 In this step, we will eliminate existential quantifier ∃, and this


process is known as Skolemization.

 But in this example problem since there is no existential quantifier


so all the statements will remain same in this step.
o Drop Universal quantifiers.
In this step we will drop all universal quantifier since all the statements are
not implicitly quantified so we don't need it.

1. ¬ food(x) V likes(John, x) 7. ¬ eats(Anil, w) V eats(Harry, w)

2. food(Apple) 8. killed(g) V alive(g)

3. food(vegetables) 9. ¬ alive(k) V ¬ killed(k)

4. ¬ eats(y, z) V killed(y) V food(z) 10. likes(John, Peanuts).

5. eats(Anil, Peanuts)

6. alive(Anil)
o Distribute conjunction ∧ over disjunction ¬.
This step will not make any change in this problem.
Step-3: Negate the statement to be proved

In this statement, we will apply negation to the conclusion statements,


which will be written as ¬likes(John, Peanuts)
Step-4: Draw Resolution graph:

Now in this step, we will solve the problem


by resolution tree using substitution. For
the above problem, it will be given as
follows:

 Hence the negation of the conclusion


has been proved as a complete
contradiction with the given set of
statements.
Explanation of Resolution graph:
o In the first step of resolution graph, ¬likes(John, Peanuts) , and likes(John, x) get
resolved(canceled) by substitution of {Peanuts/x}, and we are left with ¬
food(Peanuts)

o In the second step of the resolution graph, ¬ food(Peanuts) , and food(z) get resolved
(canceled) by substitution of { Peanuts/z}, and we are left with ¬ eats(y, Peanuts) ∨
killed(y) .

o In the third step of the resolution graph, ¬ eats(y, Peanuts) and eats (Anil,
Peanuts) get resolved by substitution {Anil/y}, and we are left with Killed(Anil) .

o In the fourth step of the resolution graph, Killed(Anil) and ¬ killed(k) get resolve by
substitution {Anil/k}, and we are left with ¬ alive(Anil) .

o In the last step of the resolution graph ¬ alive(Anil) and alive(Anil) get resolved.
FORWARD CHAINING AND BACKWARD CHAINING IN AI
 In artificial intelligence, forward and backward chaining is one of the
important topics, but before understanding forward and backward chaining
lets first understand that from where these two terms came.

Inference engine:
 The inference engine is the component of the intelligent system in artificial
intelligence, which applies logical rules to the knowledge base to infer new
information from known facts.
 The first inference engine was part of the expert system. Inference engine
commonly proceeds in two modes, which are:
A. Forward chaining

B. Backward chaining
Horn Clause and Definite clause:
 Horn clause and definite clause are the forms of sentences, which enables
knowledge base to use a more restricted and efficient inference algorithm.
 Logical inference algorithms use forward and backward chaining approaches,
which require KB in the form of the first-order definite clause.
 Definite clause: A clause which is a disjunction of literals with exactly
one positive literal is known as a definite clause or strict horn clause.
 Horn clause: A clause which is a disjunction of literals with at most one
positive literal is known as horn clause. Hence all the definite clauses are
horn clauses.
Example: (¬ p ∨ ¬ q ∨ k).
 It has only one positive literal k.
 It is equivalent to p ∧ q → k.
A. Forward Chaining
 Forward chaining is also known as a forward deduction or forward
reasoning method when using an inference engine. Forward chaining
is a form of reasoning which start with atomic sentences in the
knowledge base and applies inference rules (Modus Ponens) in the
forward direction to extract more data until a goal is reached.
 The Forward-chaining algorithm starts from known facts, triggers all
rules whose premises are satisfied, and add their conclusion to the
known facts. This process repeats until the problem is solved.
Properties of Forward-Chaining:
 It is a down-up approach, as it moves from bottom to top.

 It is a process of making a conclusion based on known facts or data, by


starting from the initial state and reaches the goal state.

 Forward-chaining approach is also called as data-driven as we reach to the


goal using available data.

 Forward -chaining approach is commonly used in the expert system, such


as CLIPS, business, and production rule systems.
Consider the following famous example which we will use in both
approaches:

Example:
"As per the law, it is a crime for an American to sell weapons to
hostile nations. Country A, an enemy of America, has some
missiles, and all the missiles were sold to it by Robert, who is an
American citizen."
Prove that "Robert is criminal."

 To solve the above problem, first, we will convert all the above facts
into first-order definite clauses, and then we will use a forward-
chaining algorithm to reach the goal.
Facts Conversion into FOL:
o It is a crime for an American to sell weapons to hostile nations. (Let's say p, q, and
r are variables)
American (p) ∧ weapon(q) ∧ sells (p, q, r) ∧ hostile(r) → Criminal(p) ...
(1)

o Country A has some missiles: ∀p Owns(A, p) ∧ Missile(p). It can be written in


two definite clauses by using Existential Instantiation, introducing new Constant
T1.
Owns(A, T1) ......(2)
Missile(T1) .......(3)

o All of the missiles were sold to country A by Robert.


o Missiles are weapons.
Missile(p) → Weapons(p) .......(5)

o Enemy of America is known as hostile.


Enemy(p, America) →Hostile(p) ........(6)

o Country A is an enemy of America.


Enemy(A, America) .........(7)

o Robert is American
American(Robert). ..........(8)
Forward chaining proof:
Step-1:
 In the first step we will start with the known facts and will choose the
sentences which do not have implications, such as: American(Robert),
Enemy(A, America), Owns(A, T1), and Missile(T1). All these facts
will be represented as below.
Step-2:

 At the second step, we will see those facts which infer from available facts and with
satisfied premises.
 Rule-(1) does not satisfy premises, so it will not be added in the first iteration.
 Rule-(2) and (3) are already added.
 Rule-(4) satisfy with the substitution {p/T1}, so Sells (Robert, T1, A) is added,
which infers from the conjunction of Rule (2) and (3).

 Rule-(6) is satisfied with the substitution(p/A), so Hostile(A) is added and which


infers from Rule-(7).
Step-3:

 At step-3, as we can check Rule-(1) is satisfied with the


substitution {p/Robert, q/T1, r/A}, so we can add
Criminal(Robert) which infers all the available facts. And hence we
reached our goal statement.

Hence it is proved that Robert is Criminal using forward chaining approach.


B. Backward Chaining:
 Backward-chaining is also known as a backward deduction or
backward reasoning method when using an inference engine.
 A backward chaining algorithm is a form of reasoning, which starts
with the goal and works backward, chaining through rules to find
known facts that support the goal.
Properties of backward chaining:
 It is known as a top-down approach.

 Backward-chaining is based on modus ponens inference rule.

 In backward chaining, the goal is broken into sub-goal or sub-goals to prove the
facts true.

 It is called a goal-driven approach, as a list of goals decides which rules are


selected and used.

 Backward -chaining algorithm is used in game theory, automated theorem


proving tools, inference engines, proof assistants, and various AI applications.

 The backward-chaining method mostly used a depth-first search strategy for


proof.
Example:
In backward-chaining, we will use the same above example, and will rewrite all the rules.
o American (p) ∧ weapon(q) ∧ sells (p, q, r) ∧ hostile(r) → Criminal(p) ...(1)
Owns(A, T1) ........(2)

o Missile(T1)

o ∀p Missiles(p) ∧ Owns(A, p) → Sells (Robert, p, A) ......(4)

o Missile(p) → Weapons(p) .......(5)

o Enemy(p, America) →Hostile(p) ........(6)

o Enemy (A, America) .........(7)

o American(Robert). ..........(8)
Backward-Chaining proof:
 In Backward chaining, we will start with our goal predicate, which
is Criminal(Robert), and then infer further rules.
Step – 1:
 At the first step, we will take the goal fact. And from the goal fact, we will infer
other facts, and at last, we will prove those facts true.
 So our goal fact is "Robert is Criminal," so following is the predicate of it.
Step – 2:
 At the second step, we will infer other facts form goal fact which satisfies the
rules.
 So as we can see in Rule-1, the goal predicate Criminal (Robert) is present with
substitution {Robert/P}.
 So we will add all the conjunctive facts below the first level and will replace p
with Robert.

Here we can see American(Robert) is a fact, so it is proved here.


Step – 3:
 At step – 3, we will extract further fact Missile(q) which infer from
Weapon(q), as it satisfies Rule-(5). Weapon (q) is also true with the
substitution of a constant T1 at q.
Step – 4:
 At step – 4, we can infer facts Missile(T1) and Owns(A, T1) form
Sells(Robert, T1, r) which satisfies the Rule- 4, with the substitution of
A in place of r. So these two statements are proved here.
Step – 5:
 At step – 5, we can infer the fact Enemy(A, America) from Hostile(A) which
satisfies Rule- 6. And hence all the statements are proved true using backward
chaining.
DIFFERENCE BETWEEN BACKWARD CHAINING AND FORWARD CHAINING
Following is the difference between the forward chaining and backward chaining:

 Forward chaining as the name suggests, start from the known facts and move forward by
applying inference rules to extract more data, and it continues until it reaches to the goal,
whereas backward chaining starts from the goal, move backward by using inference rules
to determine the facts that satisfy the goal.

 Forward chaining is called a data-driven inference technique, whereas backward chaining


is called a goal-driven inference technique.

 Forward chaining is known as the down-up approach, whereas backward chaining is


known as a top-down approach.
 Forward chaining uses breadth-first search strategy, whereas backward
chaining uses depth-first search strategy.

 Forward and backward chaining both applies Modus ponens inference


rule.

 Forward chaining can be used for tasks such as planning, design


process monitoring, diagnosis, and classification, whereas backward
chaining can be used for classification and diagnosis tasks.

 Forward chaining can be like an exhaustive search, whereas backward


chaining tries to avoid the unnecessary path of reasoning.
 In forward-chaining there can be various ASK questions from the
knowledge base, whereas in backward chaining there can be fewer
ASK questions.

 Forward chaining is slow as it checks for all the rules, whereas


backward chaining is fast as it checks few required rules only.

You might also like