Ai Unit-Iv
Ai Unit-Iv
● It has ability to represent facts about some or all of the objects in the universe.
● It enables to represent law and rules extracted from real world.
● It is useful language representation in mathematics, philosophy and AI related fields.
● It represent facts in more realistic manner rather than just the true or false statement.
● First order logic makes ontological commitment.
Ontological commitment means what assumptions language makes about the nature of reality.
First order logic assumes that real world consists of objects and certain relationship they hold
or not among them.
The syntax of FOL determines which collection of symbols is a logical expression in first-order logic. The basic syntactic
elements of first-order logic are symbols. We write statements in short-hand notation in FOL.
Consider the statement: "x is an integer.", it consists of two parts, the first part x is the subject of the statement and
second part "is an integer," is known as a predicate.
Quantifiers in First-order logic:
○ A quantifier is a language element which generates quantification, and quantification specifies the quantity of
specimen in the universe of discourse.
○ These are the symbols that permit to determine or identify the range and scope of the variable in the logical
expression. There are two types of quantifier:
a. Universal Quantifier, (for all, everyone, everything)
b. Existential quantifier, (for some, at least one).
Universal Quantifier:
Universal quantifier is a symbol of logical representation, which specifies that the statement within its range is true
for everything or every instance of a particular thing.
It will be read as: There are all x where x is a man who drink
coffee.
Points to remember:
Properties of Quantifiers:
Free Variable: A variable is said to be a free variable in a formula if it occurs outside the scope of the quantifier.
Bound Variable: A variable is said to be a bound variable in a formula if it occurs within the scope of the quantifier.
What is knowledge-engineering?
The process of constructing a knowledge-base in first-order logic is called as knowledge- engineering. In
knowledge-engineering, someone who investigates a particular domain, learns important concept of that domain, and
generates a formal representation of the objects, is known as knowledge engineer.
In this topic, we will understand the Knowledge engineering process in an electronic circuit domain, which is already
familiar. This approach is mainly suitable for creating special-purpose knowledge base.
The knowledge-engineering process:
Following are some main steps of the knowledge-engineering process. Using these steps, we will develop a knowledge
base which will allow us to reason about digital circuit (One-bit full adder) which is given below
The first step of the process is to identify the task, and for the digital circuit, there are various reasoning tasks.
At the first level or highest level, we will examine the functionality of the circuit:
At the second level, we will examine the circuit structure details such as:
In the second step, we will assemble the relevant knowledge which is required for digital circuits. So for digital circuits, we
have the following required knowledge:
The next step of the process is to select functions, predicate, and constants to represent the circuits, terminals,
signals, and gates. Firstly we will distinguish the gates from each other and from other objects. Each gate is
represented as an object which is named by a constant, such as, Gate(X1). The functionality of each gate is
determined by its type, which is taken as constants such as AND, OR, XOR, or NOT. Circuits will be identified by a
predicate: Circuit (C1).
For gate input, we will use the function In(1, X1) for denoting the first input terminal of the gate, and for output
terminal we will use Out (1, X1).
The function Arity(c, i, j) is used to denote that circuit c has i input, j output.
The connectivity between gates can be represented by predicate Connect(Out(1, X1), In(1, X1)).
We use a unary predicate On (t), which is true if the signal at a terminal is on.
4. Encode general knowledge about the domain:
To encode the general knowledge about the logic circuit, we need some following rules:
If two terminals are connected then they have the same input signal, it can be represented as:
∀ t1, t2 Terminal (t1) ∧ Terminal (t2) ∧ Connect (t1, t2) → Signal (t1) = Signal (2).
Signal at every terminal will have either value 0 or 1, it will be represented as:
∀ g Gate(g) ∧ Type(g) = XOR → Signal (Out(1, g)) = 1 ⇔ Signal (In(1, g)) ≠ Signal (In(2, g)).
All the gates in the above circuit have two inputs and one output (except NOT gate).
∀ g Gate(g) ∧ r =Type(g) ∧ (r= AND ∨r= OR ∨r= XOR) → Arity (g, 2, 1).
Now we encode problem of circuit C1, firstly we categorize the circuit and its gate components. This step is easy if
ontology about the problem is already thought. This step involves the writing simple atomics sentences of instances of
concepts, which is known as ontology.
For the given circuit C1, we can encode the problem instance in atomic sentences as below:
Since in the circuit there are two XOR, two AND, and one OR gate so atomic sentences for these gates will be:
In this step, we will find all the possible set of values of all the terminal for the adder circuit. The first query will be:
What should be the combination of input which would generate the first output of circuit C1, as 0 and a second output to be
1?
1. ∃ i1, i2, i3 Signal (In(1, C1))=i1 ∧ Signal (In(2, C1))=i2 ∧ Signal (In(3, C1))= i3
7. Debug the knowledge base:
Now we will debug the knowledge base, and this is the last step of the complete process. In this step,
we will try to debug the issues of knowledge base.
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.
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.
○ Universal Generalization
○ Universal Instantiation
○ Existential Instantiation
○ Existential introduction
1. Universal Generalization:
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.
Example:1.
Example: 2.
"All kings who are greedy are Evil." So let our knowledge base contains this detail as in the form of FOL:
So from this information, we can infer any of the following statements using Universal 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.
So we can infer: Crown(K) ∧ OnHead( K, John), as long as K does not appear in the knowledge
base.
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.
○ 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.
E.g. 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.
○ 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)
Resolution
Resolution is a theorem proving technique that proceeds by building refutation proofs, i.e., proofs by contradictions. It
was invented by a Mathematician John Alan Robinson in the year 1965.
Resolution is used, if there are various statements are given, and we need to prove a conclusion of those statements.
Unification is a key concept in proofs by resolutions. Resolution is a single inference rule which can efficiently operate
on the conjunctive normal form or clausal form.
Clause: Disjunction of literals (an atomic sentence) is called a clause. It is also known as a unit clause.
Conjunctive Normal Form: A sentence represented as a conjunction of clauses is said to be conjunctive normal form or
CNF.
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).
a. ¬ food(x) V likes(John, x)
b. food(Apple)
c. food(vegetables)
d. ¬ eats(y, z) V killed(y) V food(z)
e. eats (Anil, Peanuts)
f. alive(Anil)
g. ¬ eats(Anil, w) V eats(Harry, w)
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:
Explanation of Resolution graph:
○ 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)
○ 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) V killed(y) .
○ 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) .
○ 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) .
○ In the last step of the resolution graph ¬ alive(Anil) and alive(Anil) get resolved.
○
Forward Chaining and backward chaining in AI
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 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.
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:
"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."
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.
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-(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.
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.
In backward-chaining, we will use the same above example, and will rewrite all the 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.
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
○ 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.