Expert System 1
Expert System 1
Definition
Knowledge-based expert systems or simply expert systems An expert system is software that attempts to reproduce the performance of one or more human experts, most commonly in a specific problem domain. Use human knowledge to solve problems that normally would require human intelligence Embody some non-algorithmic expertise Represent the expertise knowledge as data or rules within the computer
Can be called upon when needed to solve problems
Examples
Diagnostic applications, servicing:
People Machinery
Play chess Make financial planning decisions Configure computers Monitor real time systems Underwrite insurance policies Perform many other services which previously required human expertise
Major Components
Knowledge base - a declarative representation of the expertise, often in IF THEN rules Working storage - the data which is specific to a problem being solved Inference engine - the code at the core of the system
Derives recommendations from the knowledge base and problem-specific data in working storage
User interface - the code that controls the dialog between the user and the system
Notes on Components
Shell - a piece of software which contains:
The user interface A format for declarative knowledge in the knowledge base An inference engine
Major advantage of a customized shell: the format of the knowledge base can be designed to facilitate the knowledge engineering process Knowledge engineer and the system engineer might be the same person
Depending on the size of the project
Goal-Driven Reasoning
Aim: to pick the best choice from many enumerated possibilities The knowledge is structured in rules The rule breaks the problem into sub-problems Difference between forward and backward chaining:
Goal-Driven Reasoning
Example - This rules identifies birds:
IF family is albatross and color is white
THEN bird is Laysan albatross IF family is albatross and color is dark THEN bird is black footed albatross
Uncertainty
Final answer is not known with complete certainty
The expert's rules might be vague The user might be unsure of answers to questions
Example - medical diagnostic system: multiple possible diagnoses One of the simplest schemes: to associate a numeric value with each piece of information
Prolog
A small semantic gap between Prolog code and the logical specification of a program The code examples are shorter and more concise than they might be with another language Three major features:
Rule-based programming Built-in pattern matching Backtracking execution
Disadvantages: Lacks common sense Cannot make creative responses as human expert Domain experts not always able to explain their logic and reasoning Errors may occur in the knowledge base Cannot adapt to changing environments