Skip to main content

Fuzzy Expert Systems and Fuzzy Reasoning

Fuzzy Expert Systems and Fuzzy Reasoning

William Siler, James J. Buckley

ISBN: 978-0-471-69849-4

Feb 2005

350 pages



Fuzzy sets were for a long time not accepted by the AI community. Now they have become highly evolved and their techniques are well established.  This book will teach the reader how to construct a fuzzy expert system to solve real-world problems. After a general discussion of expert systems, the basic fuzzy math required is presented first, requiring little more math background than high-school algebra. This book will fill a void in the market because although there are many books on expert systems, none devote more than a few pages to the notion of fuzzy sets and their applications in this domain. Therefore their use in this book is timely and should be well received.

The book is designed as a text and has ample problems with solutions, a solutions manual and an accompanying program on our ftp site. Coverage is accessible to practitioners and academic readers alike.


1 Introduction.

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.

1.9 Summary.

1.10 Questions.

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.

2.8 Summary.

2.9 Questions.

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.

3.7 Questions.

4 Fuzzy Logic, Fuzzy Sets, and Fuzzy Numbers: II.

4.1 Introduction.

4.2 Algebra of Fuzzy Sets.

4.3 Approximate Reasoning.

4.4 Hedges.

4.5 Fuzzy Arithmetic.

4.6 Comparisons between Fuzzy Numbers.

4.7 Fuzzy Propositions.

4.8 Questions.

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.

5.6 Summary.

5.7 Questions.

6 Inference in an Expert System I.

6.1 Overview.

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.

6.7 Summary.

6.8 Questions.

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.

7.11 Summary.

7.12 Questions.

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.

8.6 Summary.

8.7 Questions.

9 Expert System Shells and the Integrated Development Environment (IDE).

9.1 Overview.

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.

9.7 Summary.

9.8 Questions.

10 Simple Example Programs.

10.1 Simple FLOPS Programs.

10.2 Numbers.fps.

10.3 Sum.fps.

10.4 Sum.par.

10.5 Comparison of Serial and Parallel FLOPS.

10.6 Membership Functions, Fuzzification and Defuzzification.

10.7 Summary.

10.8 Questions.

11 Running and Debugging Fuzzy Expert Systems I: Parallel Programs.

11.1 Overview.

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.

11.8 Summary.

11.9 Questions.

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.

12.7 Summary.

12.8 Questions.

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.

13.4 Schizo.par.

13.5 Discussion.

13.6 Questions.

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.

14.6 Discussion.

14.7 Questions.

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.

15.9 Discussion.

15.10 Questions.





Errata Document Download
  • The book is designed as a text and has ample problems with solutions, a solutions manual and an accompanying program on our ftp site.