This is a reasonable book on writing software emulators of neural networks and programming fuzzy logic. I assume that most readers have some idea as to what a neural network is (a self-adjusting system that can be trained by providing it with inputs and required outputs. If the actual output does not meet the target, it adjusts itself to bring it closer. These have a wide range of uses including such things as face recognition. Fuzzy logic is probably rather less well known. In classic logic we have just two values; true and false. The rules for combining statements are easy to explain and to program. The problem is that the real world doesn't quite work that way. Sometimes we only have partial knowledge, at other times we cannot know things with certainty (quantum physics is an example of some profound levels of necessary ignorance). Fuzzy logic is a relatively new mathematics aimed at trying to compute results in such situations of uncertainty. One problem is that we are unsure as how these calculations should be done. For example, suppose someone whose track record as an 80% accurate weather forecaster says that there is a ninety percent chance of rain before evening; what is the probability that it will rain?
What I am far from happy with is the general standard of the C++ source code in this book. To start with far too much of it has been printed. No practical purpose is served by printing pages of output messages. Much of the code is poor C masquerading as C++. In places, dangerous code lurks inside deeply nested structures. The page I am looking at while I write this contains part of an eight-page
main(). Among other complexity we have an
if, nested inside a
fornested inside a
whilenested inside a
while. The controlling expression of the outer while includes five boolean
ands and two
This book would be greatly improved by the authors finding a competent C++ programmer to do the design and implementation. A good editor would then have insisted that the only code printed was that necessary to understand the task. Reams of output text fuzzes understanding and wastes paper. Source code does not make good pseudo code. I only hope that all concerned do something about these issues before producing a third edition. The subject matter is tough enough without making things worse with bad code obfuscated by bad presentation.