You are on page 1of 7

Expert system

From Wikipedia, the free encyclopedia

In artificial intelligence, an expert system is a computer system that emulates the decision-making ability of a human expert.[1] Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the procedure of a developer as is the case in conventional programming.[2][3][4] The first expert systems were created in the 1970s and then proliferated in the 1980s.[5] Expert systems were among the first truly successful forms of AI software.[6]
[7][8][9][10][11]

An expert system has a unique structure, different from traditional programs. It is divided into two parts, one fixed, independent of the expert system: the inference engine, and one variable: the knowledge base. To run an expert system, the engine reasons about the knowledge base like a human[12]. In the 80's a third part appeared: a dialog interface to communicate with users.[13] This ability to conduct a conversation with users was later called "conversational".[14][15]
Contents
[hide]

o o o o o o o o o o

1 Software architecture 1.1 The rule base or knowledge base 1.2 The inference engine 2 Advantages 2.1 Conversational 2.2 Quick availability and opportunity to program itself 2.3 Ability to exploit a considerable amount of knowledge 2.4 Reliability 2.5 Scalability 2.6 Pedagogy 2.7 Preservation and improvement of knowledge 2.8 New areas neglected by conventional computing 3 Disadvantages 4 Application field 5 Examples of applications 6 Knowledge engineering 7 History

o o o

8 References 9 Bibliography 9.1 Textbooks 9.2 History of AI 9.3 Other

10 External links

[edit]Software [edit]The

architecture

rule base or knowledge base

In expert system technology, the knowledge base is expressed with natural language rules IF ... THEN ... For examples :

"IF it is living THEN it is mortal" "IF his age = known THEN his year of birth = date of today - his age in years" "IF the identity of the germ is not known with certainty AND the germ is gram-positive AND

the morphology of the organism is "rod" AND the germ is aerobic THEN there is a strong probability (0.8) that the germ is of type enterobacteriacae"[16] This formulation has the advantage of speaking in everyday language which is very rare in computer science (a classic program is coded). Rules express the knowledge to be exploited by the expert system. There exists other formulations of rules, which are not in everyday language, understandable only to computer scientists. Each rule style is adapted to an engine style. The whole problem of expert systems is to collect this knowledge, usually unconscious, from the experts. There are methods but almost all are usable only by computer scientists.

[edit]The

inference engine

The inference engine is a computer program designed to produce a reasoning on rules. In order to produce a reasoning, it is based on logic. There are several kinds of logic: propositional logic, predicates of order 1 or more, epistemic logic, modal logic, temporal logic, fuzzy logic, etc. Except propositional logic, all are complex and can only be understood by mathematicians, logicians or computer scientists. Propositional logic is the basic human logic, that expressed in the syllogism. The expert system that uses that logic are also calledzeroth-order expert system. With logic, the engine is able to generate new information from the knowledge contained in the rule base and data to be processed.

The engine has two ways to run: batch or conversational. In batch, expert system has all the necessary data to process from the beginning. For the user, the program works as a classical program: he provides data and receives results immediately. Reasoning is invisible. The conversational becomes necessary when the developer knows he can't ask the user all the necessary data at the start, the problem being too complex. The software must "invent" the way to solve the problem, request the user missing data, gradually, approaching the goal as quickly as possible. The result gives the impression of a dialogue led by an expert. To guide a dialogue, the engine may have several levels of sophistication : "forward chaining", "backward chaining" and "mixed chaining". Forward chaining is the questioning of an expert who has no idea of the solution and investigates progressively (e.g. fault diagnosis). In backward chaining, the engine has an idea of the target (e.g. is it okay or not? Or: there is danger but what is the level?). It starts from the goal in hopes of finding the solution as soon as possible. In mixed chaining the engine has an idea of the goal but it is not enough: it deduces in forward chaining from previous user responses all that is possible before asking the next question. So, quite often, he deduces the answer to the next question before asking it. A strong interest in using logic is that this kind of software is able to give to user clear explanation of what it is doing (the "Why?") and what it has deduced (the "How?" ). Better yet, thanks to logic the most sophisticated expert system are able to detect contradictions[17] into user informations or in the knowledge and can explain them clearly, revealing at the same time the expert knowledge and his way of thinking.

[edit]Advantages This section does not cite any references or sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (November 2011)
Expert systems offer many advantages for users when compared to traditional programs because they operate like a human brain.

[edit]Conversational [edit]Quick

availability and opportunity to program itself

As the rule base is in everyday language (the engine is untouchable), expert system can be written much faster than a conventional program, by users or experts, bypassing professional developers and avoiding the need to explain the subject.

[edit]Ability

to exploit a considerable amount of knowledge

The expert system uses a rule base, unlike conventional programs, which means that the volume of knowledge to program is not a major concern. Whether the rule base has 10 rules or 10 000, the engine operation is the same.

[edit]Reliability
The reliability of an expert system is the same as the reliability of a database, i.e. good, higher than that of a classical program.

[edit]Scalability
Evolving an expert system is to add, modify or delete rules. Since the rules are written in plain language, it is easy to identify those to be removed or modified.

[edit]Pedagogy
The engines that are run by a true logic are able to explain to the user in plain language why they ask a question and how they arrived at each deduction. In doing so, they show knowledge of the expert contained in the expert system. So, user can learn this knowledge in its context. Moreover, they can communicate their deductions step by step. So, the user has information about their problem even before the final answer of the expert system.

[edit]Preservation

and improvement of knowledge

Valuable knowledge can disappear with the death, resignation or retirement of an expert. Recorded in an expert system, it becomes eternal. To develop an expert system is to interview an expert and make the system aware of their knowledge. In doing so, it reflects and enhances it.

[edit]New

areas neglected by conventional computing

Automating a vast knowledge, the developer may meet a classic problem: "combinatorial explosion" that greatly complicates his work and results in a complex and time consuming program. The reasoning expert system does not encounter that problem since the engine automatically loads combinatorics between rules. This ability can address areas where combinatorics are enormous: highly interactive or conversational applications, fault diagnosis, decision support in complex systems, educational software, logic simulation of machines or systems, constantly changing software.

[edit]Disadvantages This section may need to be rewritten entirely to comply with Wikipedia's quality standards. You can help. The discussion page may contain suggestions. (October 2011)
The expert system has a major flaw which explains its low success although the principle has existed for 70 years: knowledge collection and interpretation into rules, the knowledge engineering. Most

developers have no method to perform this task. They work "manually" what opens to many possibilities for errors. Expert knowledge is not well understood, there is a lack of rules, rules are contradictory, some are poorly written and unusable. Worse, they most often use an engine unable to reasoning. Result: the expert system works badly and the project is abandoned.[18] Correct development methodology can mitigate these problems. There exists software to interview the expert step by step which automatically write the rules and simultaneously run the expert system before his eyes, performing a consistency of the rules control[19][20][21]. So expert and users can check the quality of the software before it is finished. Many expert systems are also penalized by the logic used. Most of the logics operate on "variables" facts, i.e. whose value changes several times during one reasoning, considered as a property belonging to a more powerful logic. Exactly like in classical computing, a way of programming where developers are in fact comfortable. This is the case of Mycin, Dendral, fuzzy logic, predicate logic (Prolog), symbolic logic, mathematical logic, etc.. Propositional logic uses only not variable facts[22]. It turns out that in human mind, the facts used must remain invariable as long as the brain reasons on them. This makes possible detection of contradictions and production of explanations, two ways of controlling consistency of the knowledge[23][24]. That is why expert systems using variable facts, more understandable for IT developers so the most numerous, are less easy to develop, less clear to users, less reliable and why they don't produce explanation or contradiction detection.

[edit]Application

field

Expert systems address areas where combinatorics is enormous:

highly interactive or conversational applications, IVR, voice server, chatterbot fault diagnosis, medical diagnosis decision support in complex systems, process control, interactive user guide educational and tutorial software logic simulation of machines or systems knowledge management constantly changing software.

They can also be used in software engineering for rapid prototyping applications (RAD). Indeed, the expert system quickly developed in front of the expert shows him if the future application should be programmed. Indeed, any program contains expert knowledge and classic programming always begins with an expert interview. A program written in the form of expert system receives all the specific benefits of

expert system, among others things it can be developed by anyone without computer training and without programming languages. But this solution has a defect: expert system runs slower than a traditional program because he consistently "thinks" when in fact a classic software just follows paths traced by the programmer.

[edit]Examples

of applications

Expert systems are designed to facilitate tasks in the fields of accounting, medicine, process control, financial service, production, human resources, among others. Typically, the problem area is complex enough that a more simple traditional algorithm cannot provide a proper solution. The foundation of a successful expert system depends on a series of technical procedures and development that may be designed by technicians and related experts. As such, expert systems do not typically provide a definitive answer, but provide probabilistic recommendations. An example of the application of expert systems in the financial field is expert systems for mortgages. Loan departments are interested in expert systems for mortgages because of the growing cost of labour, which makes the handling and acceptance of relatively small loans less profitable. They also see a possibility for standardized, efficient handling of mortgage loanby applying expert systems, appreciating that for the acceptance of mortgages there are hard and fast rules which do not always exist with other types of loans. Another common application in the financial area for expert systems are in trading recommendations in various marketplaces. These markets involve numerous variables and human emotions which may be impossible to deterministically characterize, thus expert systems based on the rules of thumb from experts and simulation data are used. Expert system of this type can range from ones providing regional retail recommendations, like Wishabi, to ones used to assist monetary decisions by financial institutions and governments. Another 1970s and 1980s application of expert systems, which we today would simply call AI, was in computer games. For example, the computer baseball games Earl Weaver Baseballand Tony La Russa Baseball each had highly detailed simulations of the game strategies of those two baseball managers. When a human played the game against the computer, the computer queried the Earl Weaver or Tony La Russa Expert System for a decision on what strategy to follow. Even those choices where some randomness was part of the natural system (such as when to throw a surprise pitch-out to try to trick a runner trying to steal a base) were decided based on probabilities supplied by Weaver or La Russa. Today we would simply say that "the game's AI provided the opposing manager's strategy".

[edit]Knowledge

engineering

Main article: knowledge engineering

The building, maintaining and development of expert systems is known as knowledge engineering.
[25]

Knowledge engineering is a "discipline that involves integrating knowledge intocomputer systems in

order to solve complex problems normally requiring a high level of human expertise".[26] There are generally three individuals having an interaction in an expert system. Primary among these is the end-user, the individual who uses the system for its problem solving assistance. In the construction and maintenance of the system there are two other roles: the problem domain expert who builds the system and supplies the knowledge base, and aknowledge engineer who assists the experts in determining the representation of their knowledge, enters this knowledge into an explanation module and who defines the inference technique required to solve the problem. Usually the knowledge engineer will represent the problem solving activity in the form of rules. When these rules are created from domain expertise, the knowledge base stores the rules of the expert system.

You might also like