PROGRAMMER'S BOOKSHELF

Warm and Fuzzy

Peter D. Varhol

Ironically, I began reading Fuzzy Thinking by Bart Kosko on the same day one of my students gave a presentation about digital logic. The data line is either high or low, he explained. At five volts or more it was high, at three or less low. And in between? "Indeterminate," was his response, as though this state of affairs was only a minor annoyance to engineers. To my student, the indeterminate condition was something to be hunted down and fixed. To Kosko, and to fuzzy theorists in general, this state represents an integral part of a fuzzy condition that includes various degrees of high and low.

Fuzzy Thinking is not a book on computers or engineering, but, rather, one on a way of thinking. The fuzzy system of thought, which has much in common with Eastern religions, is that all states of being exist to some degree. Once you recognize this as the true and universal worldview, it's possible to model complex, nonlinear systems without high-order mathematics, and ultimately to raise the intelligence level of machines through the use of adaptive fuzzy systems. Kosko debunks the myth of what he calls "bivalence"--that a state is either A or not-A. While much of our work with computers assumes a bivalence model, a moment's reflection reveals that it's clearly a poor approximation of the world. Certainly the grass is green, at least as a first approximation. As we obtain greater precision, however, we find that some of the grass reflects light at a slightly different wavelength than the rest. If we look closer still, sections of each individual blade of grass reflect light differently, making the concept of green still more fuzzy. His criticism here is well-taken; it's clear that fuzzy thinking is a correct way of looking at the world.

Kosko also attempts to debunk the concepts of probability, a somewhat more difficult proposition since probability is itself a slippery concept. Rather than debunking it, he decides that it's merely a part of fuzzy theory. He forms the fuzzy concept of "subsethood," the degree to which one set is a subset of another set. Probability is the proportion to which one set--the true outcome--contains the set of all possible outcomes.

However, Kosko has some logical problems in trying to do away with the probabilistic worldview. First, it's easy to claim that probability and fuzzy logic are the same thing, or at least produce the same results, as many probabilistic theorists do. This problem is apparently confounded by a number of bright scientists who either relegate fuzzy thinking to a semantic niche, or dismiss it altogether. Even with the subsethood principle, he's uncomfortable with any substantive discussion of probability.

Fuzzy Thinking is presented in three parts. The first part, "The Fuzzy Past," presents the historical antecedents of both Aristotelian and Eastern thought, and compares the two, largely to the benefit of the Eastern approaches. Kosko lays down the philosophical and logical antecedents of fuzzy thinking.

The second part, "The Fuzzy Present," examines the founding and application of fuzzy-set theory. Kosko is at his most convincing here. He combines a layman's introduction to the fuzzy-application theorem with a glimpse at the personalities and personal insights that give life to the story. His examples are straightforward, yet still convey the expressive power of fuzzy thought, primarily in control applications.

Of particular interest is his assertion that fuzzy logic enables engineers to control nonlinear systems via fuzzy "rules" without the complexities of nonlinear mathematics. This is where neural networks come in. But adaptive fuzzy systems go beyond the neural network, which only creates a mathematical model of the process. These produce rules from system behavior that can be incorporated into fuzzy control devices designed to monitor and control similar behavior.

As a roadmap to fuzzy rules, especially in human-behavioral systems, Kosko introduces fuzzy cognitive maps (FCMs) which are simply diagrams of states, actions, and outcomes, along with their relationships. The FCM in Figure 1, for example, describes the rules by which I plan (or would like to plan) my day. While FCMs seem to be more suited to group rather than individual actions, they still portray, reasonably accurately, influences on the decisions individuals can make. Applying changes to one or more states in the diagram results in different actions or conclusions. From FCMs, rules can be derived to determine actions based on the strength of the influence.

In the third part of his book, "The Fuzzy Future," Kosko focuses less on applications and more on how a fuzzy philosophy of life might change our society. He points out that many philosophical issues--life and death, ethics, and God (and presumably questions such as, "Is rap music really music?")--are all really fuzzy concepts, and can be dealt with rationally by society once their fuzzy nature is recognized and factored into the debate. Kosko proposes that machines employing fuzzy thought will gradually increase the wealth and happiness of society. All in all, this is the most fuzzy part of the book.

But does fuzzy thinking have implications for computer science? According to Kosko, fuzzy thinking leads to machines with higher IQs. He points out examples of current products (mostly from Japan and South Korea) that incorporate fuzzy "rules" in control systems to provide environmental controls, adjust fuel flow in engines, and fine-tune antilock brakes, among other applications.

It's worth noting that traditional expert systems assume a bivalent, or, at best, probabilistic, model of the world. This may be why many expert systems are difficult and time consuming to build. Most experts express their opinions not as absolutes or probabilities, but rather as signposts or rules of thumb, which together tend to point to a conclusion. This process seems much better modeled by fuzzy thinking.

Fuzzy thinking also leads to conclusions beyond Kosko's. Are computer programs provably correct? Not insofar as the requirements are fuzzy. Many such fuzzy goals we relate to software engineering may not be bivalent. Requirements that are expressed bivalently may be artificially so.

Some of Kosko's comments bring fuzzy thinking to a more personal and useful level. For example, he believes that one of Lotfi Zadeh's motivations in developing fuzzy theory was a reaction against the tendency of engineers to solve increasingly difficult real-life problems by "throwing more math at them." This attitude may be analogous to the programmer who solves increasingly complex problems by writing more code, rather than stepping back and questioning the whole approach to the problem. For programmers, different perspectives often lead to more elegant solutions.

At the end, I couldn't help but shrug my shoulders and say to myself, "Yet another model of the world." Well argued? Yes, for the most part. The Truth? I wouldn't go that far. The techniques would seem to be useful in computing problems where the bivalent model either breaks down or becomes too complex. However, as Kosko admits, fuzzy rules are not necessarily a snap to derive and test.

Part of the problem is that, while data and circumstances are often (always, according to Kosko) fuzzy, the decisions based on these circumstances are, in fact, bivalent. While a control system may look at the degrees of warmth in determining how to control the air conditioner, at some point that air conditioner has to be either on or off. Kosko might argue that the on/off bivalence is due to a lack of detail in the control system (and he's probably right) but we may not need to control down to that level of detail.

Kosko's view of the world is valid to a point, and useful for those of us who, in our daily work, simplify problems down to the bivalent "A or not-A" paradigm. While he glorifies large chunks of Eastern thought as inherently fuzzy, Kosko fails to consider Western culture's ability to hold two contradictory beliefs as an indication of mental dexterity.

I've usually viewed fuzzy logic as no more than an extension of set theory that allows for partial membership in sets, as a way of modeling certain aspects of the world. Kosko claims that it is the true and proper way to view the world. I'm perhaps too comfortable with my familiar paradigms, but I don't feel I have to give up Western bivalence to see some value in fuzzy thinking. Still, I'm willing to learn, and have turned to Byte Dynamics' Fuzzy Logic Designer, a Windows-based development tool and code generator, to explore fuzzy thinking in more hands-on terms. (Look for my report in an upcoming issue of DDJ.)

What is significant is that the computational sciences are starting to make serious efforts to deal with nonlinear systems, which are much more common in nature than linear systems. Kosko admits that the math of most nonlinear systems is beyond us right now, and proposes fuzzy thinking as a suitable alternative. Fuzzy thinking is a systematic approach to this end, and may serve as a stepping stone into a better understanding and modeling of nonlinear systems. Then again, to be appropriately fuzzy, maybe not.

Fuzzy

Thinking

Bart Kosko

Hyperion, 1993, 318 pp.

$24.95

ISBN 1-56282-839-8

Figure 1: Typical fuzzy cognitive map (FCM).


Copyright © 1993, Dr. Dobb's Journal