Quoted from: “Industrial Artificial Intelligence” (Authors: Cai Hongxia, Zhou Chuanhong)
The book has been published, for details see the end of the article~
「 1. Concept of Expert Systems 」
1) Definition of Expert Systems
An expert system is a knowledge-based system used to apply the years of accumulated experience and expertise of domain experts to solve difficult problems that require expert intervention. As a type of computer system, expert systems inherit the speed and accuracy of computers, making them more reliable and flexible than human experts in certain aspects, unaffected by time, geography, or human factors.
The founder of expert systems, Professor Edward A. Feigenbaum from Stanford University, defined expert systems as: “An expert system is an intelligent computer program that uses knowledge and reasoning to solve complex problems that only an expert can solve.” In other words, an expert system is a computer system that simulates the decision-making ability of an expert.
2) Characteristics of Expert Systems
(1) Possession of expert-level professional knowledge. The most significant feature of expert systems is their possession of expert-level knowledge. The richer and higher the quality of knowledge in an expert system, the stronger its problem-solving ability. Knowledge in expert systems can be divided into three levels based on its role in problem-solving: data level, knowledge base level, and control level. Data-level knowledge refers to the initial facts provided by specific problems and the intermediate and final conclusions generated during the problem-solving process. Data-level knowledge is usually stored in databases. Knowledge base knowledge refers to the knowledge of experts, which forms the foundation of expert systems. Control-level knowledge, also known as meta-knowledge, is knowledge about how to use the first two types of knowledge, such as search strategies and reasoning methods in problem-solving.
(2) Ability to perform effective reasoning. The core of an expert system is the knowledge base and the inference engine. To solve specific problems in a domain using expert knowledge, an inference mechanism must exist that can reason effectively based on known facts provided by the user, applying knowledge from the knowledge base to achieve problem resolution. Expert systems can reason based on both deterministic and uncertain knowledge. The methods used by domain experts to solve problems are often empirical and expressed imprecisely, typically existing with a certain probability. Furthermore, the information provided by the problems to be solved is often uncertain. One of the features of expert systems is their ability to utilize this uncertain information and knowledge for reasoning and draw conclusions.
(3) Possession of heuristic capabilities. In addition to utilizing a vast amount of specialized knowledge, expert systems must also use heuristic judgment knowledge to make multiple hypotheses regarding the problem being solved. A hypothesis is selected based on certain conditions to continue the reasoning process.
(4) Flexibility. The knowledge base and inference engine of expert systems are interrelated yet independent. The interrelation ensures that the inference engine uses knowledge from the knowledge base for reasoning to solve problems; the independence ensures that when the knowledge base is appropriately modified and updated, as long as the reasoning method remains unchanged, the inference engine can remain unchanged, making the system easy to expand and highly flexible.
(5) Transparency. When using an expert system to solve problems, users not only expect correct answers but also wish to understand the basis for those answers. Expert systems generally have explanation facilities that provide good transparency. The explanation facility can explain the reasoning process to users, answering questions such as “Why?” and “How was this conclusion reached?”
(6) Interactivity. Expert systems are generally interactive systems with good human-machine interfaces. On one hand, they need to engage in dialogue with domain experts and knowledge engineers to acquire knowledge; on the other hand, they must continuously obtain known facts from users and respond to user inquiries.
Expert systems themselves are programs, but they differ from traditional programs in several aspects:
(1) From a programming perspective, traditional programs solve specific problems based on a certain algorithm and data structure, while many problems solved by expert systems do not have available mathematical methods and are solved based on knowledge and reasoning, that is:
Traditional Program = Data Structure + Algorithm
Expert System = Knowledge + Reasoning
This is the biggest distinction between expert systems and traditional programs.
(2) Traditional programs embed knowledge about problem-solving within the program, whereas expert systems separate knowledge from the reasoning process. This separation provides expert systems with greater flexibility and ease of modification.
(3) In terms of processing objects, traditional programs primarily focus on numerical calculations and data processing, while expert systems focus on symbolic processing. Traditional programs handle precise data, and program retrieval is based on pattern Boolean matching, while expert systems primarily handle imprecise and fuzzy data, with knowledge pattern matching often being imprecise.
(4) Traditional programs generally do not have explanation functions, while expert systems typically have explanation facilities to explain their behavior. Because expert systems rely on reasoning, they must be able to explain this process.
(5) Traditional programs solve problems based on algorithms and can produce correct answers each time, while expert systems work like human experts, generally producing correct answers but sometimes generating incorrect ones, which is one of the problems with expert systems. However, expert systems have the capability to learn from mistakes and improve their problem-solving abilities.
(6) From the system architecture perspective, traditional programs and expert systems have different structures. The structure of expert systems will be introduced specifically later.
3) Types of Expert Systems
Based on characteristics and functions, expert systems can be classified into ten types, as shown in Table 1.
Table 1 Types of Expert Systems
(1) Explanation Expert Systems. Explanation expert systems can provide corresponding explanations based on perceived data through analysis and reasoning, such as chemical structure explanations, image analysis, language understanding, signal interpretation, geological interpretation, and medical explanations. Representative explanation expert systems include DENDRAL, PROSPECTOR, etc.
(2) Diagnostic Expert Systems. Diagnostic expert systems can infer whether a system is faulty based on observed phenomena, data, or facts, and can identify the cause of the fault and provide solutions for troubleshooting. This is currently the most developed and widely applied type of expert system, including medical diagnosis, mechanical fault diagnosis, and computer fault diagnosis. Representative diagnostic expert systems include MYCIN, CASNET, PUFF (Pulmonary Function Diagnostic System), PIP (Kidney Disease Diagnostic System), DART (Computer Hardware Fault Diagnostic System), etc.
(3) Predictive Expert Systems. Predictive expert systems can infer possible situations based on past and present information (data and experience). For example, expert systems used in weather forecasting, earthquake prediction, market forecasting, population forecasting, and disaster prediction.
(4) Design Expert Systems. Design expert systems can perform corresponding designs based on given requirements. For example, expert systems used in engineering design, circuit design, architectural and renovation design, clothing design, mechanical design, and pattern design. These systems generally require providing optimal or better design solutions under given constraints. Representative design expert systems include XCON (Computer System Configuration System), KBVLSI (VLSI Circuit Design Expert System), etc.
(5) Planning Expert Systems. Planning expert systems can formulate overall plans, action plans, and operational optimizations based on given objectives, suitable for robot motion control, engineering planning, military planning, urban planning, and production planning. These systems generally require achieving specified goals at lower costs under certain constraints. Representative planning expert systems include NOAH (Robot Planning System), SECS (Expert System for Organic Synthesis Planning), TATR (Expert System to Assist the Air Force in Planning Attacks on Enemy Airfields), etc.
(6) Control Expert Systems. Control expert systems can control the behavior of an entire system based on specific conditions, suitable for controlling various large equipment and systems. To achieve real-time control of the controlled object, control expert systems must have the ability to directly receive information from the controlled object, process it quickly, make timely judgments, and take corresponding actions. Therefore, control expert systems are actually a product of the combination of expert system technology and real-time control technology. A representative control expert system is YES/MVS (Expert System to Assist in Monitoring and Controlling the MVS Operating System).
(7) Supervisory Expert Systems. Supervisory expert systems can perform real-time monitoring tasks and analyze and process based on observed phenomena. These systems must be able to collect any meaningful information at any time and quickly identify, analyze, and process the received signals. Once an anomaly is detected, they can respond promptly, such as issuing an alarm signal. A representative supervisory expert system is REACTOR (Expert System to Assist Operators in Detecting and Handling Nuclear Reactor Accidents).
(8) Repair Expert Systems. Repair expert systems are used to formulate plans for eliminating specific types of faults and implementing those plans, requiring the ability to develop corrective action plans based on fault characteristics and implement those plans to eliminate faults; when the formulated plan fails or partially fails, they must be able to take corresponding remedial measures promptly.
(9) Teaching Expert Systems. Teaching expert systems are mainly suitable for assisting teaching and can analyze, evaluate, and identify the causes of errors based on problems arising during students’ learning processes, targeting specific teaching content or employing other effective teaching methods. A representative teaching expert system is GUIDON (Computer-Aided Teaching System for Medical Knowledge on Bacterial Infectious Diseases).
(10) Debugging Expert Systems. Debugging expert systems are used to debug systems and can detect errors in the subject being tested based on relevant standards and select the best solution from various corrective action plans to eliminate errors.
Table 1 categorizes expert systems based on their characteristics and functions. This classification is often not very precise, as many expert systems possess more than one function. Expert systems can also be classified from another perspective, such as based on their application domains.
「 2. Basic Structure of Expert Systems 」
Different types of expert systems have varying functions and system structures. Choosing the appropriate system structure significantly impacts the effectiveness and adaptability of expert systems. System developers can decide what type of system structure to choose based on user requirements and their own software and hardware environments. Here, we will discuss the most basic structure of expert systems. A basic expert system should consist of six parts, including a comprehensive database and its management system, a knowledge base and its management system, an inference engine, an explanation facility, a knowledge acquisition facility, and a human-machine interface, with the organizational relationships shown in Figure 1.
Figure 1 Basic Structure of Expert Systems
The core of the expert system is the knowledge base and inference engine, whose working process is to reason based on the knowledge in the knowledge base and the facts provided by the user, continuously deriving unknown conclusions (intermediate results) from known facts and placing the intermediate results in the database as known new facts for reasoning, thus transforming the problem from an unknown state to a known state. During the operation of the expert system, it will continuously interact with users through the human-machine interface, asking questions and providing explanations.
1) Database and Its Management System
The database, also known as the comprehensive database, is used to store initial facts about domain problems, problem descriptions, and various intermediate states or results obtained during the system’s reasoning process, including the system’s target results. The database serves as the working memory of the expert system, with its scale and structure varying according to the system’s objectives. During the reasoning process, the contents of the database change dynamically. When starting to solve a problem, it stores the initial facts and basic descriptions provided by the user; when reasoning begins, it stores the intermediate results obtained during the reasoning process; the inference engine uses the data in the database as matching conditions to select suitable knowledge (rules) from the knowledge base for reasoning, then stores the reasoning results back into the database; this process repeats until the target results are obtained.
The management of the database is handled by its management system, which is responsible for adding, deleting, modifying, querying, and maintaining the data in the database to ensure consistency between data representation and knowledge representation.
2) Knowledge Base and Its Management System
The knowledge base is the knowledge storage of the expert system, used to store principled knowledge related to the problems being solved or some relevant facts and expert experiential knowledge. Principled or factual knowledge is widely recognized knowledge, such as textbook knowledge and common sense, while expert experience is the crystallization of long-term practice.
The key to establishing a knowledge base is to solve the problems of knowledge acquisition and representation. Knowledge acquisition is an important task in expert system development, requiring knowledge engineers to meticulously analyze expert experiential knowledge and study extraction methods. Knowledge representation must solve how to express knowledge in a form that can be understood by computers. Currently, knowledge extraction in expert systems is assisted by knowledge acquisition facilities, and when all knowledge is placed into the knowledge base, the inference engine can search for the required knowledge in the knowledge base when solving problems. Therefore, the knowledge base has close connections with the inference engine and the knowledge acquisition facility.
The knowledge management system organizes and manages the knowledge in the knowledge base reasonably and effectively, and can search and utilize the knowledge base based on the needs of the reasoning process, providing correct explanations for the knowledge in the knowledge base; it is also responsible for maintaining the knowledge base to ensure consistency, completeness, and compatibility.
3) Knowledge Acquisition Facility
The knowledge acquisition facility is an important part of the expert system, responsible for acquiring knowledge for the system, consisting of a set of programs. Its basic task is to obtain knowledge from knowledge engineers or automatically acquire knowledge from training data and deliver the acquired knowledge to the knowledge base, ensuring the consistency and completeness of the knowledge. The functions and implementation methods of knowledge acquisition facilities vary across different expert systems; some systems have weaker automation capabilities for knowledge acquisition and require knowledge engineers to obtain knowledge from domain experts, then use corresponding knowledge editing software to send the acquired knowledge to the knowledge base; some systems have partial learning functions, allowing the system to directly interact with domain experts to acquire knowledge to assist knowledge engineers in building the knowledge base, as well as providing means for modifying existing knowledge and expanding new knowledge; some systems possess strong machine learning capabilities, enabling them to acquire new knowledge through training data or during actual operation using various machine learning methods, such as association analysis and data mining. Regardless of the approach, knowledge acquisition remains an important issue in the development of expert systems.
4) Inference Engine
The inference engine is the core of the expert system’s reasoning process when solving problems, consisting of a set of programs designed to simulate the thinking process of domain experts, allowing the entire expert system to solve problems logically. It can select the required knowledge from the knowledge base based on current data or facts in the comprehensive database, following a certain strategy, and use that knowledge to solve the current problem. It can also assess whether the facts and data input into the comprehensive database are reasonable and provide reasoning results to the user. When designing the inference engine, the reasoning process of the program must align with the thinking process of domain experts when solving problems. The reasoning methods employed can be forward reasoning, backward reasoning, or a mixed approach, and the reasoning process can be deterministic or uncertain, determined based on specific situations.
5) Explanation Facility
The explanation facility is another key component of the expert system, serving as the bridge for communication and interaction between the expert system and the outside world, consisting of a set of programs and corresponding hardware. Domain experts or knowledge engineers can input and modify knowledge through the human-machine interface and perform daily maintenance of the knowledge base; end-users can input problem descriptions, known facts, and relevant issues through the human-machine interface; the system can then output reasoning results through the human-machine interface to answer user questions or provide data required for further problem-solving.
Editor: Liu Yang
Reviewer: Xin Zhao
——————————————————————
▼ Purchase Link ▼
Click to Purchase