Fuzzy Expert Systems and Fuzzy Reasoning presents new, cutting–edge theories that enable programmers to emulate human thought processes to solve real–life problems. This text begins with an overview and comparison of current approaches, including rule–based and neural net systems that programmers have developed to solve real–world problems. Next, the authors introduce readers to three key concepts that considerably advance both the power and the speed of conventional expert systems: nonprocedural data–driven languages; fuzzy systems theory (fuzzy logic, fuzzy sets, fuzzy numbers); and a language that allows statements to be executed either sequentially or in parallel, as opposed to conventional one–statement–at–a–time languages that presently dominate programming.
While providing a conceptual framework for fuzzy expert systems, the focus is on the development of skills for applications. In addition to the text, readers have access via an FTP site to the fuzzy expert system language FLOPS, which enables them to actually write and debug a fuzzy expert system. Moreover, tutorials and simplified examples help to show how abstract concepts of logic and reasoning are used for problem solving.
Special features include:
- An introduction to fuzzy mathematics that anyone with an understanding of basic algebra can follow
- Question sets with answers accompanying each chapter ensure that readers can apply their new knowledge to develop their own fuzzy expert systems
- An FTP site with a complete demonstration version of a fuzzy expert system, Integrated Development Environment
Fuzzy Expert Systems and Fuzzy Reasoning, with its expert presentation of both theory and application, is an excellent textbook for graduate and upper–level undergraduate students. In addition, this is essential reading for program designers and researchers in fuzzy sets, fuzzy logic, computer science, and artificial intelligence.
1.1 Characteristics of Expert Systems.
1.2 Neural Nets.
1.3 Symbolic Reasoning.
1.4 Developing a Rule–Based Expert System.
1.5 Fuzzy Rule–Based Systems.
1.6 Problems in Learning How to Construct Fuzzy Expert Systems.
1.7 Tools for Learning How to Construct Fuzzy Expert Systems.
1.8 Auxiliary Reading.
2 Rule–Based Systems: Overview.
2.1 Expert Knowledge: Rules and Data.
2.2 Rule Antecedent and Consequent.
2.3 Data–Driven Systems.
2.4 Run and Command Modes.
2.5 Forward and Backward Chaining.
2.6 Program Modularization and Blackboard Systems.
2.7 Handling Uncertainties in an Expert System.
3 Fuzzy Logic, Fuzzy Sets, and Fuzzy Numbers: I.
3.1 Classical Logic.
3.2 Elementary Fuzzy Logic and Fuzzy Propositions.
3.3 Fuzzy Sets.
3.4 Fuzzy Relations.
3.5 Truth Value of Fuzzy Propositions.
3.6 Fuzzification and Defuzzification.
4 Fuzzy Logic, Fuzzy Sets, and Fuzzy Numbers: II.
4.2 Algebra of Fuzzy Sets.
4.3 Approximate Reasoning.
4.5 Fuzzy Arithmetic.
4.6 Comparisons between Fuzzy Numbers.
4.7 Fuzzy Propositions.
5 Combining Uncertainties.
5.1 Generalizing AND and OR Operators.
5.2 Combining Single Truth Values.
5.3 Combining Fuzzy Numbers and Membership Functions.
5.4 Bayesian Methods.
5.5 The Dempster–Shafer Method.
6 Inference in an Expert System I.
6.2 Types of Fuzzy Inference.
6.3 Nature of Inference in a Fuzzy Expert System.
6.4 Modification and Assignment of Truth Values.
6.5 Approximate Reasoning.
6.6 Tests of Procedures to Obtain the Truth Value of a Consequent from the Truth Value of Its Antecedent.
7 Inference in a Fuzzy Expert System II: Modification of Data and Truth Values.
7.1 Modification of Existing Data by Rule Consequent Instructions.
7.2 Modification of Numeric Discrete Fuzzy Sets: Linguistic Variables and Linguistic Terms.
7.3 Selection of Reasoning Type and Grade–of–Membership Initialization.
7.4 Fuzzification and Defuzzification.
7.5 Non–numeric Discrete Fuzzy Sets.
7.6 Discrete Fuzzy Sets: Fuzziness, Ambiguity, and Contradiction.
7.7 Invalidation of Data: Non–monotonic Reasoning.
7.8 Modification of Values of Data.
7.9 Modeling the Entire Rule Space.
7.10 Reducing the Number of Classification Rules Required in the Conventional Intersection Rule Configuration.
8 Resolving Contradictions: Possibility and Necessity.
8.1 Definition of Possibility and Necessity.
8.2 Possibility and Necessity Suitable for MultiStep Rule–Based Fuzzy Reasoning.
8.3 Modification of Truth Values During a Fuzzy Reasoning Process.
8.4 Formulation of Rules for Possibility and Necessity.
8.5 Resolving Contradictions Using Possibility in a Necessity–Based System.
9 Expert System Shells and the Integrated Development Environment (IDE).
9.2 Help Files.
9.3 Program Editing.
9.4 Running the Program.
9.5 Features of General–Purpose Fuzzy Expert Systems.
9.6 Program Debugging.
10 Simple Example Programs.
10.1 Simple FLOPS Programs.
10.5 Comparison of Serial and Parallel FLOPS.
10.6 Membership Functions, Fuzzification and Defuzzification.
11 Running and Debugging Fuzzy Expert Systems I: Parallel Programs.
11.2 Debugging Tools.
11.3 Debugging Short Simple Programs.
11.4 Isolating the Bug: System Modularization.
11.5 The Debug Run.
11.6 Interrupting the Program for Debug Checks.
11.7 Locating Program Defects with Debug Commands.
12 Running and Debugging Expert Systems II: Sequential Rule–Firing.
12.1 Data Acquisition: From a User Versus Automatically Acquired.
12.2 Ways of Solving a Tree–Search Problem.
12.3 Expert Knowledge in Rules; auto1.fps.
12.4 Expert Knowledge in a Database: auto2.fps.
12.5 Other Applications of Sequential Rule Firing.
12.5.1 Missionaries and Cannibals.
12.6 Rules that Make Themselves Refireable: Runaway Programs and Recursion.
13 Solving “What?” Problems when the Answer is Expressed in Words.
13.1 General Methods.
13.2 Iris.par: What Species Is It?
13.3 Echocardiogram Pattern Recognition.
14 Programs that Can Learn from Experience.
14.1 General Methods.
14.2 Pavlov1.par: Learning by Adding Rules.
14.3 Pavlov2.par: Learning by Adding Facts to Long–Term Memory.
14.4 Defining New Data Elements and New: RULEGEN.FPS.
14.5 Most General Way of Creating New Rules and Data Descriptors.
15 Running On–Line in Real–Time.
15.1 Overview of On–Line Real–Time Work.
15.2 Input/Output On–Line in Real–Time.
15.3 On–Line Real–Time Processing.
15.4 Types of Rules Useful in Real–Time On–Line Work.
15.5 Memory Management.
15.6 Development of On–Line Real–Time Programs.
15.7 Speeding Up a Program.
15.8 Debugging Real–Time Online Programs.
JAMES J. BUCKLEY is Associate Professor of Mathematics at the University of Alabama in Birmingham. A prominent researcher in fuzzy mathematics, he has published over 200 papers and several books on the topic.