This is a very good introductory text for those starting out in non-traditional artificial intelligence or soft computing. It gives a survey of the three major branches within the field along with examples. While it is not explicitly written to be a text book for teaching a computational intelligence course, there are recommendations in the first chapter and sample problems throughout that would make this transition fairly straightforward (but no answers are given for these problems). The broad approach makes it a good choice for an instructor seeking a text for an introductory course or set of courses.

The book is organized in three sections, each matching one of the three major branches of computational intelligence with four chapters dedicated to each. The material is most appropriate for a student in science, technology, engineering or mathematics who is completing their final year of study for a bachelor’s degree or is at an early post graduate level. As would be expected, a fairly strong background in mathematics is recommended before approaching any of the topics covered in the book. Readers will want to be familiar with integral calculus, linear algebra, and set theory.

The first section covers Neural Networks. The foundation of the area is well laid and many of the major approaches are discussed, and I was happy to see that Convolutional Neural Networks were also included. The progression through the chapters builds up in a logical manner from basic Artificial Neural Networks to a discussion on Hopfield Networks and Grossberg Networks. I would have like to have seen some discussion on Support Vector Machines, but this may have been an omission to limit the length of the text. The material discussing radial basis functions gives the reader a background that would enable them to grasp SVMs quickly. This worked well in my first year graduate electrical/systems engineering course with only a very small addition of teaching material.

The Fuzzy Systems section guides the reader through how to construct a fuzzy integral and apply it to real world problems. This is also where the reader is introduced to combining computational intelligence techniques to create more powerful algorithms. The handwriting recognition example also highlights this, although it is left to the reader to find more information on self-organizing maps.

One chapter of the Fuzzy Systems section that really stands out is the discussion of Fuzzy Clustering and Classification (Chapter 8). The authors walk through Fuzzy C-means and lay out how it is a generalization of k-means clustering (which they refer to as Hard C-means). This is a great example of how fuzzy systems can be applied to traditional (crisp) methods to expand their usefulness.

Many readers of Genetic Programming and Evolvable Machines will be interested in the evolutionary computation chapters. Again, the chapters have a nice flow that leads the readers through how evolutionary computation works and the major operators and selection criteria. This includes a treatment on GP and finite state machines to show how additional capabilities can be included. One of the more powerful areas: the use of hybrid methods (combining different computational intelligence techniques) is also discussed here. My only issue would be that the reader was not referred to Chapter 12 in earlier related areas. Again, this is more of a personal preference for using the book as a text book. The evolutionary computation section gives a nice coverage of some more advanced methods, such as particle swarm optimization, ant colony optimization and differential evolution and so if each of the chapters were used as a template for a computational intelligence course it would provide a very nice platform.

As with any text, there are omissions. In future editions, I think a section that makes a comparison between the methods would be very beneficial. One of the biggest issues for people starting out is determining which method(s) best fits with their problem. Some recommendations about which class of problems the methods work well on would be very beneficial to readers who are not using it as part of a computational intelligence course.

Overall, Fundamentals of Computational Intelligence: Neural Networks, Fuzzy Systems, and Evolutionary Computation is very comprehensive and the best text book that I have found for an introductory computational intelligence course. The few issues I have mentioned are all minor. The authors are world-class experts in the respective areas, with one author championing each branch. This gives a broad level of expertise I have not found in other books, and so I think it is well worth the investment.