What is an Expert System?

ESs are computer programs that emulate the reasoning process of a human expert or perform in an expert manner in a domain for which no human expert exists. Typically they reason with uncertain and imprecise information. Knowledge they embody is often not exact, in the same way that a human's knowledge is imperfect. The facts - or user supplied information - are also uncertain.

ESs have modeled uncertainty and imprecision in various ways: certainty factors (that MYCIN associates to rules and user input), most significant results of tests (CASENET), probabilistic inference networks (which have a rigorous underlying theory; in this case knowledge is represented in a network where the nodes are states in the domain's universe of discourse and the links are conditional probabilities), belief intervals etc.

A close examination of the trends in ESs development shows that ESs have evolved mainly into fuzzy ESs and hybrid systems. As opposed to the probabilistic approaches fuzzy mathematics offer a more intuitive mapping to real world problems, to daily concepts; for example stating that

*X is*is easily represented in fuzzy set theory by denoting a set `tall' and associating with it a membership function; in a probabilistic approach one should assign a probability distribution function for the feature of `height', which is a rather out of hand approach. However use of fuzzy theory does not eliminate the other possibilities: we could, for example have a fuzzy rule-based ES, with certainty factors attached to each rule (factors obtained using statistical data, for example)**tall**The most successful examples of dealing with imprecision come from the field of fuzzy control. The next diagram illustrates the core of a fuzzy expert system:

The system's inputs go through a fuzzifier. The inference engine works with attribute values, which have fuzzy memberships attached. They may be created from real-valued attributes which have been partitioned into individual fuzzy sets. The inference engine provides a fuzzy output which may need to be defuzzified. Certainly, in control domain the output must be defuzzified so that there is a single, well defined control action taken.