Fuzzy Logic

Dr. Dobb's Journal May 1998

By Peter N. Roth

Peter is president of Engineering Objects International, producers of commercial and custom Delphi and C++ components. He can be contacted at http://www.inconresearch.com/eoi/ or peteroth@erols.com.

Fuzzy Engineering
Bart Kosko
Prentice-Hall, 1997
547 pp., $80.00
ISBN 0-131-24991-6

Applications of Fuzzy Logic: Towards High Machine Intelligence Quotient Systems
Mohammad Jamshidi, Andri Titli, Lotfi Zadeh, Serge Boverie (editors)
Prentice-Hall, 1997
423 pp., $74.00
ISBN 0-133-62831-0

The Design and Development of Fuzzy Logic
Byron Miller
Impatiens Publications, 1997
142 pp., $52.00
ISBN 0-963-66370-4

Computationally, it is convenient to represent logical values with a single bit -- False being represented by 0, and True by 1. Fuzzy logic does not refute reality, but rather extends the convenient binary representation into the floating-point range [0.0...1.0]. Thus, it can be said that perception becomes part of the computational milieu. "The sky is blue" may be 95 percent true at 10 am, and five percent true at sunset. The paradox point is 0.5; at that point, truth and falsity are equal.

When designing a system to control a washing machine, for instance, you use perception to state what the system is to do. At the early stages of design, these statements take the following form: If the wash water is dirty, then add more detergent. This if-then statement is called a rule in a fuzzy system. It's fuzzy, because quantities are not mentioned (yet). Usually, several overlapping rules are used to model an entire system, so a second rule controlling the cleaning system might be as follows: If the wash water is very dirty, then add a lot more detergent. The difficulty, and art, of control-system design is determining the meaning of "water is dirty," and determining how much detergent is "more detergent." One might think of a fuzzy cleaning system as one that takes a poll of water quality and detergent quantity experts, and acts on some combination of their advice.

Because these are computerized systems, the programs can revise their own rules. Thus, fuzzy systems can be said to learn how to improve their own responses. The study of fuzzy logic is an attempt to codify these ideas, and place the discipline on a firm theoretical basis such that control systems can be built economically and confidently.

I first heard of fuzzy logic in 1993, when a friend urged me to read the semipopular treatment of the topic in Fuzzy Logic: The Revolutionary Computer Technology That Is Changing Our World, by Daniel McNeill and Paul Freiberger (Simon & Schuster, 1994). Given the pace of change these days, it seemed time to revisit the subject.

Fuzzy Engineering

Fuzzy Engineering, by Bart Kosko, is organized into 15 chapters. Each chapter presents a single topic at what I would guess is a graduate level (this comes as no surprise, considering that Kosko is a professor at the University of Southern California). The mathematics in all the chapters is challenging.

A list of references follows each chapter. The overwhelming majority of the references date from 1985, and the most-recent reference in each chapter is (at most) two years old, so the material is current. In addition to Kosko, there are 11 contributors to the text. While the book claims a single editorial control, there is some overlap and repetition of material. Each chapter repeats the mantra "a fuzzy system is a set of fuzzy if-then rules that maps inputs (the if parts) to outputs (the then parts)."

Each chapter concludes with homework problems. I would have appreciated a section that gave answers to, say, odd-numbered problems. That there is no such section suggests that the book was not designed primarily for self study, but to be used in a fuzzy-logic curriculum.

Kosko's focus is the Standard Additive Method (SAM). In this fuzzy-logic technique, the then parts of the rules are simply summed, rather than being combined with more elaborate techniques. Although this simplifies the computations, the SAM approach is not without its difficulties. Because good approximations require many rules, the SAM can suffer from rule explosion -- that is, it may require more rules to approximate a good solution than can be computed in minimal time or with the computing facilities allocated to the job. Attacks on this problem are made in several ways: by altering the shape of the rules such that they cover ellipsoidal patches rather than rectangles; by training the systems to learn and adapt their solutions; by making some parts of the system "smarter"; and so on. Programmers will recognize these strategies as attempts to deal with the law of the conservation of hair, which is stated roughly: In a hairy computation, you can move the hair around, but the quantity of hair remains constant.

Other chapters develop and apply fuzzy-logic theory to chaos, recursive partitioning, signal processing, communication, hardware, and cognitive maps. Chapter 12, entitled "Fuzzy Cubes And Fuzzy Mutual Entropy," is a tour de force. Given that a single fuzzy variable can be mapped continuously over the [(0,0),(1,0)] line, then two fuzzy variables map to the unit square [(0,0),(1,0),(1,1),(0,1)]; three map to the unit cube; and n variables map to the n-dimensional hypercube. The information state within the fuzzy cube is continuous, with the center paradox point being the fuzziest of the fuzzy. Kosko deduces from the presence of the divergence operator in the information field equations that fuzzy computations can be thought of as information fluid calculations.

Fuzzy Engineering is a product of at least 12 authors. It is therefore appropriate to indicate such collaboration on the cover. In fairness to the other contributors, Kosko should have been listed as the editor, rather than implied to be the sole author.

Kosko is best suited to the fuzzy-logic practitioner, or to a graduate student following the Kosko curriculum: This is not a starter book. The book does include a 3.5-inch diskette with software that runs on DOS and Windows 3.x. The programs are demos only; no source code is provided. The fuzzy cognitive map demo is only useful after thorough study of the text.

Applications of Fuzzy Logic

Applications of Fuzzy Logic, edited by Mohammad Jamshidi, Andri Titli, Lotfi Zadeh, and Serge Boverie, is a collection of 20 papers by an international panel of authors. The spectrum is wide: The systems to be measured and controlled include mobile robots, active autosuspension systems, traffic noise, cement production, automotive powertrains, locomotive slip, shuttle training aircraft, and zero-sum games.

Each paper has the familiar engineering paper outline:

Because the authors work independently, and produce their papers to stand alone, there is some overlap in specifying the fundamentals of fuzzy logic.

The first beef (of two) that I have with Applications of Fuzzy Logic is the New Registered Phrase. On the cover, it's presented as "High Machine Intelligence Quotient Systems ®." In the "Preface," the text is self-praised with the sentence "This is one of the first volumes in which MIQ® is brought to the attention of the scientific community." I was disappointed that the index had no entries to what was apparently an important idea. A careful search of the text revealed the single mention of Machine Intelligence Quotient on page 103, without the ® mark. The text does not explain MIQ®, nor why it is important.

The second beef is that the four editors who collected the papers and prepared them to be published should have refined the material: You can find clinkers such as, "The essence of the developed in the work ideas allows as well come along other way, that is to design original [system] for the new plants being constructed." Practitioners are more likely to be interested in the mathematics and the graphs than in pellucid syntax, so this is more of a cavil than a beef.

Judging by the dates of the references, the papers presented here are state of the art. Practitioners in the control field will want to have a copy of this book on their shelf, but are likely to be interested only in the papers that apply to their discipline.

Applications of Fuzzy Logic does not include a diskette, and the papers contain little code. On the other hand, the authors occasionally mention the languages in which their control programs are written: Fortran, C, Matlab/Simulink, and Pascal. Computers mentioned in the papers included a DEC PDP-11/44, 20-MHz Inmos T800 Transputer, 386 laptop, and IBM RISC6000. I can only conclude that fuzzy-logic engineers are more interested in getting their jobs done, than in exploiting the hyped technology du jour.

The Design and Development of Fuzzy Logic Controllers

As I scanned The Design and Development of Fuzzy Logic Controllers, by Byron Miller, several simple drawings illustrated what looked like interesting low-budget projects. However, the "graphics" are the bane of this book.

On page 2, Figure 1.1 is supposed to show a dynamic system. Instead, it shows graphs of continuous and discrete data, and the graphs are mislabeled.

On page 3, Figure 1.2 is a duplicate of Figure 1.1. Again, the continuous and discrete data labels are swapped.

After an abbreviated and fairly clear survey of fuzzy logic, an input file for the FuzzyStat system is listed in its entirety. It is followed by an unintelligible and unexplained "3D graph." Several additional unintelligible input files are included, each accompanied by an equally opaque graphic.

The software-development process is diagrammed with the hoary waterfall diagram. Unfortunately, the diagram is said to demonstrate the spiral model of development.

These, and other errors, make the text unreliable and not at all credible.

Save yourself $52.00 and skip this one.

DDJ


Copyright © 1998, Dr. Dobb's Journal