Artificial Intelligence Lecture No. 16
Artificial Intelligence Lecture No. 16
Lecture No. 16
Summary of Previous Lecture
• Structure of a rule-based expert system
• Expert Systems Shells
• Characteristics of an expert system
• Comparison of expert systems with conventional
systems and human experts
Today’s Lecture
• Types of inference engines
• Forward chaining and backward chaining
• Conflict resolution
• Advantages/disadvantages of rule-based
expert systems
Types of inference engines
• As Expert Systems evolved many new
techniques were incorporated into various
types of inference engines. Some of the most
important of these were:
– Truth Maintenance.
– Hypothetical Reasoning.
– Fuzzy Logic.
– Ontology Classification.
Truth Maintenance
• Truth maintenance systems record the
dependencies in a knowledge-base so that
when facts are altered dependent knowledge
can be altered accordingly.
• For example, if the system learns that Jon is no
longer known to be a man it will revoke the
assertion that Jon is mortal.
Hypothetical Reasoning
• In hypothetical reasoning, the knowledge base
can be divided up into many possible views, aka
worlds.
• This allows the inference engine to explore
multiple possibilities in parallel.
• In this simple example, the system may want to
explore the consequences of both assertions,
what will be true if Jon is a Man and what will
be true if he is not?
Fuzzy Logic
• One of the first extensions of simply using rules
to represent knowledge was also to associate a
probability with each rule.
• So, not to assert that Jon is mortal but to assert
Jon may be mortal with some probability value.
• Simple probabilities were extended in some
systems with sophisticated mechanisms for
uncertain reasoning and combination of
probabilities.
Ontology Classification
• With the addition of object classes to the knowledge base a
new type of reasoning was possible. Rather than reason
simply about the values of the objects the system could also
reason about the structure of the objects as well.
• In this simple example Man can represent an object class and
R1 can be defined as a rule that defines the class of all men.
• These types of special purpose inference engines are known
as classifiers. Although they were not highly used in expert
systems classifiers are very powerful for unstructured volatile
domains and are a key technology for the Internet and the
emerging
Forward chaining and backward chaining
• In a rule-based expert system, the domain
knowledge is represented by a set of IF-THEN
production rules and data is represented by a set of
facts about the current situation.
• The inference engine compares each rule stored in
the knowledge base with facts contained in the
database.
• When the IF (condition) part of the rule matches a
fact, the rule is fired and its THEN (action) part is
executed.
Forward chaining and backward chaining
Database
Fact: A is x
Fact: B is y
Match Fire
Knowledge Base
Rule: IF A is x THEN B is y
An example of an inference chain
Rule 1: IF Y is true
AND D is true
THEN Z is true
A X
Rule 2: IF X is true
AND B is true
B Y
AND E is true
Z
THEN Y is true E D
Rule 3: IF A is true
THEN X is true
Forward chaining
• Forward chaining is one of the two main methods of
reasoning when using inference rules.
• Forward chaining is a popular implementation strategy
for expert systems, business and production rule systems. .
• Forward chaining starts with the available data and uses
inference rules to extract more data until a goal is reached.
• An inference engine using forward chaining searches the
inference rules until it finds one where the If clause is known
to be true.
• When such a rule is found, the engine can conclude, the Then
clause, resulting in the addition of new information to its data.
• Inference engines will iterate through this process until a goal
is reached.
Forward chaining…
• For example, suppose that the goal is to
conclude the color of a pet named Fritz, given
that he croaks and eats flies, and that the rule
base contains the following four rules:
• If X croaks and eats flies - Then X is a frog
• If X chirps and sings - Then X is a canary
• If X is a frog - Then X is green
• If X is a canary - Then X is yellow
Forward chaining…
• Let us illustrate forward chaining by following
the pattern of a computer as it evaluates the
rules. Assume the following facts:
• Fritz croaks
• Fritz eats flies
• Tweety eats flies
• Tweety chirps
• Tweety is yellow
Forward chaining…
• With forward reasoning, the computer can derive
that Fritz is green in four steps:
• 1. Fritz croaks and Fritz eats flies
• Based on logic, the computer can derive:
• 2. Fritz croaks and eats flies
• Based on rule 1, the computer can derive:
• 3. Fritz is a frog
• Based on rule 3, the computer can derive:
• 4. Fritz is green.
Forward chaining…
• The name "forward chaining" comes from the fact
that the computer starts with the data and reasons
its way to the answer, as opposed to backward
chaining, which works the other way around.
• In the derivation, the rules are used in the reverse
order as compared to backward chaining.
• Note that the computer does not use any
knowledge about Tweety, when it computes that
Fritz is a frog.
Forward chaining…
• Because the data determines which rules are
selected and used, this method is called data-driven.
• The forward chaining approach is often employed
by expert systems, such as CLIPS.
• One of the advantages of forward-chaining over
backward-chaining is that the reception of new data
can trigger new inferences, which makes the engine
better suited to dynamic situations in which
conditions are likely to change.
Backward chaining
• Backward chaining (or backward reasoning) is
an inference method that can be described as
working backward from the goal(s).
• It is used in automated theorem provers, proof
assistants and other artificial
intelligence applications.
• In game theory, its application to
(simpler) subgames in order to find a solution to
the game is called backward induction
Backward chaining…
• Backward chaining starts with a list of goals (or
a hypothesis) and works backwards from the consequent to
the antecedent to see if there is data available that will
support any of these consequents.
• An inference engine using backward chaining would search
the inference rules until it finds one which has a consequent
(Then clause) that matches a desired goal.
• If the antecedent (If clause) of that rule is not known to be
true, then it is added to the list of goals (in order for one's
goal to be confirmed one must also provide data that
confirms this new rule).
Backward chaining…
• For example, suppose that the goal is to
conclude whether Tweety or Fritz is a frog, given
information about each of them, and that
the rule base contains the following four rules:
1. If X croaks and eats flies – Then X is a frog
2. If X chirps and sings – Then X is a canary
3. If X is a frog – Then X is green
4. If X is a canary – Then X is yellow
Backward chaining…
• Let us illustrate backward chaining by following
the pattern of a computer as it evaluates the
rules. Assume the following facts:
• Fritz croaks
• Fritz eats flies
• Tweety eats flies
• Tweety chirps
• Tweety is yellow
Backward chaining…
• With backward reasoning, the computer can answer the question
"Who is a frog?" in four steps: In its reasoning, the computer uses a
placeholder (here: question mark) for the answer.
• 1. ? is a frog
• Based on rule 1, the computer can derive:
• 2. ? croaks and eats flies
• Based on logic, the computer can derive:
• 3. ? croaks and ? eats flies
• Based on the facts, the computer can derive:
• 4. Fritz croaks and Fritz eats flies
• This derivation will cause the computer to produce Fritz as the
answer to the question "Who is a frog?".
• Note that the computer has not used any knowledge about Tweety to
compute that Fritz is a frog.
• Note that the goals always match the affirmed versions of
the consequents of implications and even then, their
antecedents are then considered as the new goals (and not
the conclusions as in affirming the consequent) which
ultimately must match known facts (usually defined as
consequents whose antecedents are always true
• Because the list of goals determines which rules are
selected and used, this method is called goal-driven, in
contrast to data-driven forward-chaining inference.
• The backward chaining approach is often employed
by expert systems.
• Programming languages such as Prolog, Knowledge
Machine and ECLiPSe support backward chaining within
their inference engines.
How do we choose between forward and
backward chaining?
If an expert first needs to gather some information
and then tries to infer from it whatever can be
inferred, choose the forward chaining inference
engine.
However, if your expert begins with a hypothetical
solution and then attempts to find facts to prove it,
choose the backward chaining inference engine.
Conflict resolution
considered rules for crossing a road.
Rule 1: IF
the ‘traffic light’ is green THEN
the action is go
Rule 2: IF
the ‘traffic light’ is red THEN
the action is stop
Let us now add third rule:
Rule 3: IF
the ‘traffic light’ is red THEN
the action is go
We have two rules, Rule 2 and Rule 3, with the
same IF part. Thus both of them can be set to fire
when the condition part is satisfied. These rules
represent a conflict set. The inference engine must
determine which rule to fire from such a set. A
method for choosing a rule to fire when more than
one rule can be fired in a given cycle is called
conflict resolution.
In forward chaining, BOTH rules would be fired.
Rule 2 is fired first as the topmost one, and as a
result, its THEN part is executed and linguistic
object action obtains value stop.
However, Rule 3 is also fired because the condition
part of this rule matches the fact ‘traffic light’ is
red, which is still in the database. As a
consequence, object action takes new value go.
Methods used for conflict resolution
Fire the rule with the highest priority. In simple
applications, the priority can be established by
placing the rules in an appropriate order in the
knowledge base. Usually this strategy works well
for expert systems with around 100 rules.
Fire the most specific rule. This method is also
known as the longest matching strategy. It is
based on the assumption that a specific rule
processes more information than a general one.
Fire the rule that uses the data most recently
entered in the database.
This method relies on time tags attached to each
fact in the database. In the conflict set, the expert
system first fires the rule whose antecedent uses
the data most recently added to the database.
Advantages of rule-based expert systems
Natural knowledge representation. An expert
usually explains the problem-solving procedure
with such expressions as this: “In such-and-such
situation, I do so-and-so”. These expressions can
be represented quite naturally as IF-THEN
production rules.
Uniform structure. Production rules have the
uniform IF-THEN structure. Each rule is an
independent piece of knowledge. The very syntax
of production rules enables them to be self-
documented.
Advantages of rule-based expert systems