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.
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.
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.
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)
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)
SELECT Name, Age, Hair_color, hobby FROM people WHERE age = young WITH GRADE > 0.5