38
Artificial Intelligence CAP492 Dr. Souham Meshoul Information Technology Department CCIS – King Saud University Riyadh, Saudi Arabia [email protected]

Artificial Intelligence CAP492 Dr. Souham Meshoul Information Technology Department CCIS – King Saud University Riyadh, Saudi Arabia [email protected]

  • View
    228

  • Download
    1

Embed Size (px)

Citation preview

Artificial Intelligence CAP492

Dr. Souham Meshoul

Information Technology DepartmentCCIS – King Saud University

Riyadh, Saudi Arabia

[email protected]

Artificial Intelligence CAP492

Expert SystemsChapter 8

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

Symbolic Approach

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

The Human Element in Expert Systems

Expert Knowledge Engineer User Others

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

Architecture of an Expert System

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