*The Importance of Being Fuzzy* is an introduction to three types of "soft computing:" fuzzy logic, neural networks, and genetic algorithms. Arturo Sangalli distinguishes these from traditional "hard" computing methods by their reliance on "uncertain, ambiguous, or incomplete data; massive parallelism; randomness; approximate solutions; and self-modifying programs." His goal is to describe this recent work to a broad audience; he succeeds quite admirably. *The Importance of Being Fuzzy* is clear and easy to read, and yet it provides enough mathematical detail to give some appreciation for the meaning behind the metaphors.

The book is divided into three essentially independent parts of two chapters each. Part One is an introduction to fuzzy sets and fuzzy logic. After a brief review of standard sets, Chapter One describes the need for and mechanics of fuzzy sets. Chapter Two then presents several practical uses of these sets, centering around fuzzy control systems. These systems combine the idea of rule-based expert systems with fuzzy sets to produce fuzzy inference rules. The mechanics for working with fuzzy inferences are described but only briefly. The bulk of the chapter is given to wide-ranging examples of fuzzy systems.

Given the author's intent, one might expect Parts Two and Three to similarly devote two chapters each to neural networks and genetic algorithms, but Part Two is a surprise: it consists of two chapters on the theoretical limitations of computers and mathematics. These are here, says Sangalli, because the new ideas "can only be fully appreciated against the background of traditional -- 'hard' -- computing and its mathematical underpinning." Thus, Chapter Three contains an introduction to complexity theory, including Turing machines, the Halting problem, and P=NP. Chapter Four describes Gödel's Incompleteness Theorem, and then finishes with a somewhat out-of-place discussion of mathematical proofs which depend on computation, such as the Four Color Theorem.

Part Two is clearly the most unusual aspect of this book. I think the idea is a good one, but Sangalli never answers the question, "Do these same limits apply to soft computing?" In fact, the reader is given the impression that they must not, since the limitations are described specifically as applying to traditional methods. This is at best misleading. Sangalli makes a point of showing the mathematical underpinnings of the soft methods, but Gödel's Theorem applies just as well to that mathematics as it does to traditional mathematics. Sangalli also knows (but the reader may not) that soft computing algorithms are for the most part implemented using traditional hardware and software tools; thus, Turing machines are equally good models for their computations. The reader will learn something about complexity theory and the limits of formal logic; the danger is that he or she will make assumptions about soft computing that simply are not valid.

Part Three closes more as Part One began, with a chapter on neural networks and a chapter on genetic algorithms. Sangalli adopts a more critical stance towards neural nets than he did fuzzy sets, which gives this chapter a more balanced feel than Part One. Chapter Six contains a brief introduction to genetic algorithms, including their application to the Traveling Salesperson Problem (TSP). Using TSP here provides a nice link with the complexity theory chapter, where TSP was first introduced as an NP-complete problem. Beware, however, that Sangalli insists on referring to TSP as the traveling salesman problem and somewhat denigrates those who would do otherwise: "Predictably, in the 1970's, some attempted to rename it..." Predictably, some still resist.

Finally, while Sangalli's writing is clear for the most part, this book would have benefited from more careful proof-reading and editing. There are sentence fragments, some inappropriate informalities ("how come...?"), and the definition of Turing machine "E" in Appendix 3 is backwards. These matters aside, though, *The Importance of Being Fuzzy* is worth reading for its lucid accounts of soft computing and some of the limits of computation and mathematics.

Mark Johnson (johnsonm@central.edu) is Associate Professor of Mathematics and Computer Science at Central College. Besides logic and computing, his interests include Bill Evans, Van Morrison, the Minnesota Twins, and burritos as big as your head.