Artificial Intelligence CAP492
Dr. Souham Meshoul
Information Technology DepartmentCCIS – King Saud University
Riyadh, Saudi Arabia
Introduction
Two main approaches for problem solving using knowledge:
Symbolic Approach
Expert systems: Feed the system with knowledge. There is no learning !!
Connectionist Approach
Neural Networks: The system learns from examples by itself.
Introduction
Procedural/Object Oriented Programming vs Declarative Programming
PP/OOP: a program instructs the computer -what to do – how to do – in what oreder
Whereas
DP: a program describes what to do without a detailed plan of how to do
Introduction
Expert system
Expert system: knowledge-based systems or rule based-system.
Expert system: a rule based program which encapsulates knowledge from some domain, normally obtained from a human expert in that domain
An expert system simulates a human expert in his/her field of expertise in an attempt to solve a particular problem.
Expert Systems Do Not Replace Experts, But They Make their Knowledge and Experience More Widely Available Permit Nonexperts to Work Better
ES acts as a Consultant or Advisor
Structure of an Expert System
Major Components
Knowledge base (KB): repository of rules, facts (productions)
working memory: (if forward chaining used)
inference engine: the deduction system used to infer results from user input and KB
user interface: interfaces with user
external control + monitoring: access external databases, control,...
User Interface
InferenceEngine
KnowledgeBase
Structure of an Expert System
Knowledge base
The knowledge base contains the knowledge necessary for understanding, formulating, and solving problems
Two Basic Knowledge Base Elements
Facts
Special heuristics, or rules that direct the use of knowledge
Knowledge is the primary raw material of ES
Incorporated knowledge representation
User Interface
InferenceEngine
KnowledgeBase
Structure of an Expert System
Inference Engine
The brain of the ES
The control structure (rule interpreter)
Provides methodology for reasoning
User Interface
InferenceEngine
KnowledgeBase
Structure of an Expert System
User Interface
Language processor for friendly, problem-oriented communication
Natural Language Processing, or
menus and graphics
User Interface
InferenceEngine
KnowledgeBase
Structure of an Expert System
Working Memory (Blackboard)
Area of working memory to
Describe the current problem Record Intermediate results
Records Intermediate Hypotheses and Decisions
1. Plan2. Agenda3. Solution
User Interface
InferenceEngine
KnowledgeBase
Structure of an Expert System
Explanation Subsystem (Justifier) Area of working memory to
Traces responsibility and explains the ES behavior by interactively answering questions:
-Why?-How?-What?-(Where? When? Who?)
User Interface
InferenceEngine
KnowledgeBase
Developing Expert Systems
Expert
Has the special knowledge, judgment, experience and methods to give advice and solve problems
Provides knowledge about task performance
Developing Expert Systems
Knowledge Engineer
Helps the expert(s) structure the problem area by interpreting and integrating human answers to questions, drawing analogies, posing counterexamples, and bringing to light conceptual difficulties
Usually also the System Builder
Developing Expert Systems
User
Possible Classes of Users A non-expert client seeking
direct advice (ES acts as a Consultant or Advisor)
A student who wants to learn (Instructor)
An ES builder improving or increasing the knowledge base (Partner)
An expert (Colleague or Assistant)
The Expert and the Knowledge Engineer Should Anticipate Users' Needs and Limitations When Designing ES
Knowledge base: production System
Knowledge is represented using rules of the form :
Rule: if Conditions then Conclusions
or
Rule: if Premises then Actions
or
Rule: if if-part then then-Part
A rule as described above is often referred to as a production rule
Knowledge base: production System
Examples:
if symptom1 and symptom2 and symptom3 then disease1
if - the leaves are dry, brittle and discoloured
then - the plant has been attacked by red spider mite
If – it is raining
then – you should take an umbrella
if - the customer closes the account
then - delete the customer from the database
Inference Engine: Rule-based reasoning The essence of a rule-based reasoning system is that it goes
through a series of cycles.
In each cycle, it attempts to pick an appropriate rule from its collection of rules, depending on the present circumstances, and to use it.
Because using a rule produces new information, it's possible for each new cycle to take the reasoning process further than the cycle before. This is rather like a human following a chain of ideas in order to come to a conclusion.
Inference Engine: Forward Chaining
Forward Chaining is based on Modus Ponens inference rule:
(A, AB ) / B
In other words, if A is true and we have AB then we can deduce that B is true
In the context of Expert System, it is used as follows:
if A is in WM and we have a rule in KB of the form if A then B then we can deduce B (add B to WM as new
information)
Inference Engine: Forward Chaining
Do until problem is solved or no antecedents match
Collect the rules whose antecedents are found in WM.
If more than one rule matches
use conflict resolution strategy to eliminate all but one
Do actions indicated in by rule “fired”Cycles
Inference Engine: Forward Chaining
Cycles
Matching
Rules filtering
Conflict Resolution
Execution
Apply the rule
Rules
Rule
Add Then-Part to WM
For Conflict Resolution we can use For Conflict Resolution we can use rule-order as an implied priorityrule-order as an implied priority
Inference Engine: Forward Chaining
Algorithm:
1. Match WM with KB to select production rules
2. Eliminate already applied rules
3. If many rules select one which has the smallest number
4. Apply selected rule by adding its conclusion to WM
5. If the problem is solved or no new information added then stop otherwise go to step 1
Matching
Rules filtering
Conflict Resolution
Execution
Apply the rule
Rules
Rule
Add Then-Part to WM
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then ZWorking Memory: A, B
Inference Engine: Execute many cycles
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C, D
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Cycle 2: Rule 1, Rule 2, Rule 5 → add D
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C, D, G
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Cycle 2: Rule 1, Rule 2, Rule 5 → add D
Cycle 3: Rule 1, Rule 2, R 3, R 4, Rule 5 → add G
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C, D, G, F
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Cycle 2: Rule 1, Rule 2, Rule 5 → add D
Cycle 3: Rule 1, Rule 2, R3, R 4, Rule 5 → add G
Cycle 4: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add F
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C, D, G, F, E
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Cycle 2:Rule 1, Rule 2, Rule 5 → add D
Cylce 3: Rule 1, Rule 2, Rule 3, Rule 5 → add G
Cycle 4: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add F
Cylce 5: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add E
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C, D, G, F, E, Z
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Cycle 2: Rule 1, Rule 2, Rule 5 → add D
Cylce 3: Rule 1, Rule 2, Rule 3, Rule 5 → add G
Cycle 4: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add F
Cylce 5: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add E
Cylce 6: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add Z
Inference Engine: Forward Chaining
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B, C, D, G, F, E, Z
Inference Engine: Execute many cycles
Cycle 1: Rule 5 → add C
Cycle 2:Rule 1, Rule 2, Rule 5 → add D
Cylce 3: Rule 1, Rule 2, Rule 3, Rule 5 → add G
Cycle 4: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add F
Cylce 5: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add E
Cylce 6: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → add Z
Cycle 7: Rule 1, Rule 2, Rule 3, Rule 4, Rule 5, Rule 6 → no rule => STOP !!!
Inference Engine: Backward Chaining
Backward Chaining is based on Modus Tollens inference rule:
( B, AB ) / A
If A implies B , and B is false, then A is false
In other words, if we have AB then proving B is equivalent of proving A
In the context of Expert System, it is used as follows:
To prove a goal B which is not in WM and if we have a rule in KB of the form if A then B then we have just to prove A (A is either present in WM or it exists a rule with A as a conclusion)
Inference Engine: Backward Chaining
Consider the following KB and WM:
Knowledge Base:
Rule 1: If A and B and C then D
Rule 2: if B and C then G
Rule 3: if B and D then F
Rule 4: if B and C and D then E
Rule 5: if A and B then C
Rule 6: if G and D then Z
Working Memory: A, B
Inference Engine: Exploration of AND/OR Tree:
Suppose we have the goal: G
To prove G, one can use Rule 2
Proving G is equivalent of proving B and C
As B is present in the WM so it’s true
So remains the proof of C, one can use Rule 5
Proving C is equivalent of proving A and B
As A and B are present in WM (true), we can deduce that C is true
B and C are true then G is true
Expert System Shells
Shell = Inference Engine + User Interface
ESS allow non programmers to build an expert system, by inserting facts and rules into a generic expert system architecture which is already built.
Some ESSs BABYLON JESS ES CLIPS…..
Advantages of expert Systems
An expert system can operate constantly 24 hours per day.
An expert system can exceed the performance of any human expert, as it can combine knowledge from a number of different experts.
Limitations of expert systems
Not able to cope with unseen information.
Not able to cope with noise.
Not able to adapt to new environments.
Not able to learn independently in a similar manner that humans learn. They need to be programmed in advance.
Conclusions
Why use expert systems:
commercial viability: whereas there may be only a few experts whose time is expensive and rare, you can have many expert systems
expert systems can be used anywhere, anytime expert systems can explain their line of reasoning commercially beneficial: the first commercial product of AI
Weaknesses:
expert systems are as sound as their KB; errors in rules mean errors in diagnoses
automatic error correction, learning is difficult
the extraction of knowledge from an expert, and encoding it into machine-inferable form is the most difficult part of expert system implementation