3203. Introduction to Artificial Intelligence
Beside what have been covered, there are other AI techniques that use reasoning and search on domain-specific knowledge, where the focus is more on the domain knowledge than on the (domain-independent) inference rules or search algorithms. Such systems are often called knowledge-based systems, and each usually consists of a knowledge-base and an inference engine.
1. Production system
Production systems, also called "rule-based systems", solve problems using "production rules".
A production rule has the format
C1, ..., Cm → A1, ..., An
which means that if conditions C1, ..., Cm are satisfied, then the action sequence A1, ..., An can be performed. In this way, declarative knowledge (condition) and procedural knowledge (action) are related to each other. Please notice its relation to implication propositions and inference rules in
propositional/predicate logic, as well as to the rules in Prolog and the operations defined in STRIPS-like planning systems.
At a given moment, if there are several rules whose conditions are satisfied, a control mechanism in the system decides which one to "fire", i.e., to perform the actions.
When a rule is fired, it will cause some internal and external changes, which may trigger other rules. This process continues until certain ending condition is satisfied.
In summary, a typical production system consists of
Example: 8-puzzle revisited
- a rule base storing the production rules,
- a working memory (storing facts and intermediate results),
- a control mechanism (managing rules execution order).
The following are some representative production systems:
- CLIPS (C Language Integrated Production System): a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems. It is public domain software. Also see
Jess, a variant in Java.
- ART: ART*Enterprise is an artificial intelligence application development environment. This technology integrates various data sources - from structured databases to unstructured documents - with business policies. It is a commercial product.
- Soar: a cognitive architecture for developing systems that exhibit intelligent behavior. It is research software, and a follow-up project of General Problem Solver. Also see ACT-R, a similar system that is widely used in psychology.
2. Case-based reasoning
While rule-based systems represent domain knowledge mainly as rules that can be applied to various situations whenever certain conditions are satisfied, Case-based reasoning (CBR) treats domain knowledge as consists of concrete cases, which are records of typical problems and their solutions collected in the past. When a new problem shows up, it is compared with the solved problems. After the most similar case is located, the corresponding solution is adapted to the new problem.
Crucial issues in CBR include how to represent and index a case, how to measure the similarity between cases, how to adapt a solution to a new situation, and so on.
Compared to rule-based systems, case-based systems use experience with more details, though at the price of losing generality. A suitable domain for CBR typically has the following properties:
- A large volume of historical data already exists.
- Experts talk about their domain by giving examples.
- Experience is as valuable as textbook knowledge.
- Problems are not fully understood (weak models, little domain knowledge available).
- There are a lot of exceptions to rules.
- There is a need to build a corporate memory and transfer expertise among personnel.
3. Expert systems
An "expert system" is a computer program that represents and reasons with the knowledge of some specialists for solving problems and giving advice. An expert system can be rule-based, case-based, or their combination.
As a well-known example, MYCIN is an interactive program that diagnoses certain infectious diseases, prescribes antimicrobial therapy, and can explain its reasoning in detail. In a controlled test, its performance equaled that of specialists. The system represented its knowledge as a set of IF-THEN rules with certainty factors. The following is an English version of one of MYCIN's rules:
IF the infection is primary-bacteremia
AND the site of the culture is one of the sterile sites
AND the suspected portal of entry is the gastrointestinal tract
THEN there is suggestive evidence (0.7) that infection is bacteroid.
Here the 0.7 is the "certainty factor" of the conclusion.
Another example: Insurance product recommendation. The system contains rules for
The development of an expert system is often referred to as "knowledge engineering", and in the process expert knowledge is collected, and turned into rules or cases that can be used for problem solving in the future. One major difficulty in this process is that the domain experts usually have problem to accurately describe their own decision-making process.
- client classification according to input information,
- risk estimation according to client class and additional information,
- product matching according to class and risk,
- additional information acquisition and cost calculation,
- result display and explanation.
Various expert systems have been developed for a wide range of practical problems. Different from conventional systems (of procedural programs), expert systems typically represent domain knowledge declaratively, and relatively separate knowledge content (in the knowledge-base) and knowledge usage (by the inference engine). Such systems have the following advantages:
The difficulties of this technique include complexity and efficiency.
- modularity in knowledge representation
- closeness to natural language
- flexibility in execution order
- knowledge-driven problem solving
Here is an eBook on Building Expert Systems in Prolog.