PROGRAMMER'S BOOKSHELF

Fuzzy Logic? Get Real!

Jonathan Erickson

Walking around the exhibit hall of the recent Second IEEE International Conference on Fuzzy Systems, you're struck by the parallels between it and DDJ's 1993 February issue. The cover of that issue, if you recall, proclaimed "Cognitive Computing: Finding Its Way into the Mainstream." With the similar slogan "Real tools for the real world," HNC (formerly Hecht-Nielsen Neurocomputer) was typical of many of the exhibits at the IEEE conference. Fuzzy logic still has to prove itself.

The problem fuzzy logic has in the U.S. is that it's the Rodney Dangerfield of computing--it just can't get no respect, at least in the commercial end of the business. Both Colin Johnson's article "What Is Cognitive Computing?" (DDJ, February 1992) and Business Week's special report on AI techniques (November 1992) took strides to dispel the notion that neural nets, genetic algorithms, and fuzzy systems are interesting from a research perspective, but otherwise impractical. As both articles clearly demonstrate, fuzzy logic and its cousins are finally making inroads into real-world, mainstream computing.

One question that comes to mind, therefore, is: If fuzzy logic is more than just a glimmer in a research scientist's eye, how did it get stuck with the "impractical" rap. To a large degree, that's the question Paul Freiberger and Dan McNeill tackle in Fuzzy Logic: The Discovery of a Revolutionary Computer Technology--and How it is Changing Our World. As in the classic Fire in the Valley: The Making of the Personal Computer (a collaborative effort of Freiberger and DDJ's Michael Swaine), we see technology as history, starting in this case with Lotfi Zadeh's famous 1965 paper which introduced fuzzy set theory. To be fair, Freiberger and McNeill carefully give credit where credit's due, acknowledging among others Ludwig von Bertalanffy's 1951 discussion of "general systems theory," Max Black's 1937 paper "Vagueness: An Exercise in Logical Analysis," and even Georg Cantor's 19th-century work in set theory. Still, fuzzy logic is Zadeh's baby.

Not that, at the time, Zadeh got the credit he was due. What he did get was a lot of criticism like that of Rudolph Kalman, who said, "Fuzzification is a kind of scientific permissiveness; it tends to result in socially appealing slogans unaccompanied by the discipline of hard scientific work and patient observation." Apparently, the simplicity of fuzzy logic, perhaps its greatest strength, didn't fit into Kalman's view of research and work ethic--if there's no pain, there's no gain. Because of misunderstanding, academic infighting, and a host of other reasons, fuzzy logic was never accepted as anything more than an academic exercise, and perhaps a flawed one at that--except in Japan, where the technology was embraced from the outset.

For their part, Japanese companies created a fuzzy bandwagon, then jumped on it. Everywhere in Japan you'll find fuzzy-controlled washing machines, microwaves, automobiles (for both fuel efficiency and safety), cameras, elevators, traffic lights, robots, subway systems, and more. If fuzzy logic is a research project, then all of Japan is the laboratory.

McNeill and Freiberger seek to answer the question of how the U.S. happened to miss the fuzzy boat, or in their words "blind itself to a commercial jackpot." Near the end of the book, they show how Johnny-come-lately U.S. companies are finally taking the fuzzy plunge, although the Japanese clearly dominate the field with their legions of trained engineers and, more importantly , their commitment to the technology.

Fuzzy Logic isn't necessarily a technical book and certainly not a programming one. Instead, it's a book that mixes science and history into a very good, very readable tale.

If it's technical details you're looking for, however, try the Proceedings of the 1993 IEEE International Conference on Fuzzy Systems, Volumes I and II (IEEE Catalog #93CH3136-9; phone number 1-800-678-IEEE). This massive, two-volume set presents details on every aspect of fuzzy logic, from reasoning theory and knowledge representation to control, database, robotic, and surgical applications. While there's not much source code for the software-pure at heart, like any set of IEEE conference proceedings there are enough algorithms to keep you busy through a long winter.

While papers such as "Fuzzy Logic-based Banknote Transfer Control" or "Real-time Fuzzy Control of Mean Arterial Pressure in Postsurgical Patients" are certainly interesting, "Fuzzy Database Language and Library: Fuzzy Extensions to SQL" (by Hakajima, Sogoh, and Arao of Omron Corp.) is probably of more interest for DDJ readers. In this paper, the authors describe a fuzzy database language called Fuzzy SQL and a C library (called FDL2) that implements a fuzzy SQL preprocessor. Their specific challenge is to extend the fuzzy-database model so that it's more tightly integrated to object-oriented database systems to facilitate the manipulation of multimedia (sound and images). The problem with these data types is that they're often imprecise and therefore difficult to process--exactly the type of problem fuzzy logic was invented to solve. Figure 1 illustrates the fuzzy database described by the authors.

To address these issues, the authors provided fuzzy extensions to SQL in terms of a data definition language (DDL), column (table) definition, and fuzzy data definitions. Example 1 provides an example of table definition (column constraint) implemented in Fuzzy SQL-DDL. In this example, Fuzzy stores the fuzzy data, Reldeg is the reliability degree value, Check is the search condition, and With the limitation condition. When data is stored in a column (defined by Check) using either Insert or Update, the conditions are applied. In this case, only data that have a 0 grade value (as determined by the results of the conditions) are stored.

Example 1: Sample Fuzzy SQL table definition.

  CREATE TABLE  People
  ( Name        CHAR (8) NOT NULL,
    Age         DEC (3)  FUZZY RELDEG
                CHECK Age >= young
                WITH GRADE > 0
  Hair_Color    CHAR (12) FUZZY,
  Hobby         CHAR (12),
  Height        DEC (3) FUZZY,
  Weight        DEC (3) FUZZY)

Fuzzy data used by the data manipulation language are defined in the data definition language. Example 2 is a typical data definition where Fuznum is the fuzzy number, Fuzlab is the fuzzy label, Hedge is a linguistic modifier that modifies the shape of the membership function using a shifting function (used for numeric data), and Param is a fuzzy-operator parameter relation defined by the fuzzy predicate; available fuzzy predicates include =,<,>,Some, All, and so on. Other relations are approximately equal, much greater than, and much less than. Example 3 shows a typical database query using Fuzzy SQL-DML.

Example 2: Sample fuzzy data definition.

  CREATE FDD young_people.age
    CREATE FUZNUM
    ( RATED, 10, 2.0)
    CREATE FUZLAB
    ( young NMF (0, 0, 20, 30),
      old NMF (40, 50, 150, 150))
    CREATE HEDGE
    ( very TIGHT 1, more_or_less WIDE 1 )
    CREATE PARAM
    ( APE 0.2, MGT 5, MLT 5)

Example 3: Sample use of Fuzzy SQL DML (data manipulation language).

  SELECT Name, Age,
    Hair_color, hobby FROM people
  WHERE age = young
  WITH GRADE > 0.5

Although the FDL2 fuzzy-database library can be used with pre-existing relational or object-oriented databases, it's limited at this time to running only on the Omron Luna88K workstation.

If you want more timely information on fuzzy systems than yearly conference proceedings, you might start with a new quarterly magazine called the Journal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology (John Wiley & Sons, 212-850-6645), edited by Mo Hamshidi and Timothy Ross. The magazine (which has a noticeably academic flavor, perhaps because both editors are on the faculty of the University of New Mexico) consists of many of the same sort of articles as you'd expect to see in conference proceedings--except that they're more finely edited and produced. Among the articles presented in the inaugural issue are: "A Review of Probabilistic, Fuzzy, and Neural Models for Pattern Recognition" by James Bezdek, "Generalized Fuzzy and Matrix Associative Holographic Memories" by Ron Yager, "Silicon Implementation for a Novel High-speed Fuzzy Interference Engine" by Miki, Matsumoto, Ohto, and Yamakawa, and a short foreword by honorary editor Lotfi Zadeh. As you'd expect of just about any technical journal with peer-review boards, the magazine takes itself seriously, perhaps too much so for my taste. But then, I'm not necessarily typical of its target audience. I enjoy conference proceedings on obscure applications like "Recognition of Facial Expressions using Conceptual Fuzzy Sets" or "A Neural-Fuzzy Model of Recall Based on Neuropathological Findings in Alzheimer's Patients" or even "Fuzzy Logic Technology and the Intelligent Highway System." You probably won't find too many articles like these in the Journal, but if you're getting serious about fuzzy systems, the magazine looks to be a good place to start.


Copyright © 1993, Dr. Dobb's Journal