(excerpted and edited from Chapter 1 Introduction to Evolutionary Computing, pp. 1-18. Applied Evolutionary Algorithms in Java by Robert Ghanea-Hercock)
Rule-based AI methods as comparison with soft computing and EA
Expert systems utilise rule-based programming rules to represent heuristics, or rules of thumb, which specify a set of actions to be performed for a given situation. A rule is composed of an if portion and a then> portion. The if portion of a rule is a series of patterns that specify the facts (or data) that cause the rule to be applicable (the precondition). The process of matching facts to patterns is called pattern matching. The expert system tool provides a mechanism, called the inference engine, which automatically matches facts against patterns and determines which rules are applicable. The if portion of a rule ca actually be thought of as the whenever portion of a rule since pattern matching always occurs whenever changes are made to facts. The then portion of a rule is the sets of actions to be executed (the postcondition). Hence the actions of applicable rules are executed when the inference engine is instructed to begin execution. The inference engine selects a rule and then the actions of teh selected rule are executed (which may also affect the list of applicable rules by adding or removing facts).
A useful publicly available rule-based expert system is CLIPS (the C Language Integrated Production System) which was originally developed at NASA. A useful Java-based rule system is the IBM AbleBeans code library, a Java framework, component library, and productivity tool kit for building intelligent agents using machine learning and reasoning (which implements also the agent-based approach of symbolic AI)
Current work in expert systems has now shifted to Case Based Reasoning and agent-based systems, each of which extends and adapts the use of heuristic inferencing. An interesting and profitable application domain example involves online e-commerce systems in which agents and CBR are combined to support intelligent user services. However, the majority of working business and e-commerce systems still rely heavily on simple rule-based inferencing.
NOTE: I think this rule-based approach form the basis of Business Process Modelling platforms.
It is a highly successful computational intelligence method. It has enjoyed wide popularity in engineering as an advanced control and AI technique; particularly within the Japanese and Asian markets. It is only in the past two decades that it has been recognised in Europe and America as a useful AI system. An intense debate has surrounded this subject. The argument has revolved around whether fuzzy logic is just another form of probabilistic reasoning or whether probability is a subset of fuzziness.
A fuzzy rule system effectively embeds expert knowledge into a set of flexible overlapping rules in order to create an adaptive data processing system. Its prime application area is in advanced control systems such as robotics, industrial plant control, transport speed controllers, and washing machines! Its strength lies in its ability to control a complex system, even if no precise mathematical model of the underlying processes is available. The key issue revolves around designing the required input and output rule sets.
Since a fuzzy system normally contains no learning ability in itself, it is often combined with evolutionary algorithms or neural networks, which act to learn the necessary rule sets from some training data.
The arguments for fuzzy control includes:
– They permit the incorporation of linguistic knowledge into a control architecture.
– It is a model-free system, hence no underlying mathematical model of the control process or plant is required.
– It provides an efficient non-linear control mechanism, which is justified by the universal approximation theorem.
– Ease of implementation
– Simple to design, compared to an equivalent conventional controller for the same system (particularly true for non-linear systems).
– Cheap to develop, with well-established software packages available, and fast to prototype new code if required.
– Possible to implement as a VLSI chip (?), which are now widely available (in contrast to the inherent complexity of hardware neural network systems).