## Forward Chaining and backward chaining in AIIn 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: **Forward chaining****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
## A. Forward ChainingForward 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.
- 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:
Prove that 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:- 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)** - 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)** - All of the missiles were sold to country A by Robert.
**?p Missiles(p) ∧ Owns (A, p) → Sells (Robert, p, A) ......(4)** - Missiles are weapons.
**Missile(p) → Weapons (p) .......(5)** - Enemy of America is known as hostile.
**Enemy(p, America) →Hostile(p) ........(6)** - Country A is an enemy of America.
**Enemy (A, America) .........(7)** - Robert is American
**American(Robert). ..........(8)**
## Forward chaining proof:
In the first step we will start with the known facts and will choose the sentences which do not have implications, such as:
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}, Rule-(6) is satisfied with the substitution(p/A), so Hostile(A) is added and which infers from Rule-(7).
At step-3, as we can check Rule-(1) is satisfied with the substitution
## 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.
- 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. **American (p) ∧ weapon(q) ∧ sells (p, q, r) ∧ hostile(r) → Criminal(p) ...(1)****Owns(A, T1) ........(2)****Missile(T1)****?p Missiles(p) ∧ Owns (A, p) → Sells (Robert, p, A) ......(4)****Missile(p) → Weapons (p) .......(5)****Enemy(p, America) →Hostile(p) ........(6)****Enemy (A, America) .........(7)****American(Robert). ..........(8)**
## Backward-Chaining proof:In Backward chaining, we will start with our goal predicate, which is
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.
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
At step-5, we can infer the fact Next Topicbackward chaining vs forward chaining |