The Chemical Educator, Vol. 7, No. 2, S1430-4171(02)02553-2, 10.1007/s00897020553a, © 2002 Springer-Verlag New York, Inc.
Swarm Intelligence. By James Kennedy and Russell C Eberhart with Yuhui Shi. Morgan Kaufmann Publishers: San Francisco, 2001. £43.95. xxvii +512 pp. ISBN 1-55860-595-9.
Hugh Cartwright, Physical and Theoretical Chemistry Laboratory, Oxford University, Hugh.Cartwright @chem.ox.ac.uk.
If the title suggests that this might be a book about the birds and the bees, you would not be so far from the truth. Bees might not appear in the index, but flocking birds certainly do, along with ants, herds, bacteria, and even feral humans.
So is this a biology text, or perhaps something in the social sciences? Actually, it is neither. Swarm Intelligence is part of the Morgan Kaufmann Series in Evolutionary Computation, and it is further evidence of the way in which the computer scientists and engineers are finding ever more intriguing ways to solve scientific problems.
The Morgan Kaufmann series is edited by David Fogel, a (computational) evolutionary scientist of considerable standing. One would anticipate that a book to which he put his name, even as editor, would be authoritative and readable. This book is everything one would expect.
Most scientists have at least heard of neural networks and genetic algorithms, even though they may never have done anything useful with such beasts. Neural networks have been around for several decades, loosely modeled on the way the brain is (or at least was) presumed to function. Genetic algorithms too have a biological ancestry. Developed from the work of John Holland, and making use of evolutionary ideas, they constitute a set of algorithms whose aim is to try to solve optimization problems.
Swarm intelligence is a technique of much more recent vintage, which again uses ideas drawn from nature to construct algorithms, that potentially can solve scientific (and other) problems.
The authors disarmingly tell us that “The central algorithms comprise just two lines of computer code.” Just two lines? A bit disconcerting. Why, one might then wonder, are 512 pages required to let the reader in on the secret? Just give us the code and let’s be done with it. However, we are given a hint of the deeper complexity when it is revealed that the book is “...about simple procedures leading to complex results.” Even that though does not quite explain why such a substantial book is needed to cover an apparently simple topic.
Things become clearer when the authors start to provide examples. Craig Reynolds published a fascinating, and influential, study of bird flocking in 1987. He showed that only simple rules were needed to make a set of “computational” birds flock realistically. Reynolds created a set of rules for his birds so that they:
(a) avoided crashing into one another by pulling away if they got too close,
(b) tried to move toward what they perceived to be the center of the flock, and
(c) attempted to fly at speeds similar to their neighbors.
Simple rules indeed, but with just these rules, the computerized birds behaved in a fashion very similar to the apparently sophisticated behavior of real flocks. We see already a hint of how simple rules can create apparently quite complex results.
Swarm intelligence is a computational recipe that puts these ideas into practice. It brings together ideas from several computational fields, in particular the genetic algorithm and cellular automata. The basic premise is that, while it is possible in principle to solve complex problems using a single complicated method, it should also be possible to tackle many types of problem using a large number (a “swarm”) of simple reasoning units, each of which can accomplish only elementary tasks. This is the same sort of argument that underlies neural networks, in which the trivial units in a network (neurons) can, when combined into a larger whole, solve quite difficult problems, even though each individual unit is capable of only simple computations.
Now, this may sound like a computer buff’s book, rather than one that might interest an average chemist, but this would not be a fair judgment. There are at least three powerful arguments in favor of this book, drawing an audience from well beyond computer science.
First, the book is specifically intended for a lay (albeit scientifically-minded) audience. One needs neither to be familiar with artificial intelligence, nor to have prior experience of genetic algorithms or cellular automata to appreciate and understand this book. The principles of both, and of other techniques as well, are explained lucidly and at a sensible pace. If one has met the methods before, these sections can be scanned over, or omitted entirely, but those who are newcomers to the field should find the authors’ explanations clear and well-paced.
Secondly, this book is unusual in the extent to which the authors weave noncomputational, even philosophical, ideas into the text. These are not some minor musings, padding added as an afterthought, but an integral part of the discussion. The nature of evolution, the nature of intelligence, the question of what one means by intelligent computers are all discussed in a fashion that is engaging yet is tied in effectively with the principle aim of the authors—that of outlining the principles of swarm intelligence.
The authors discuss, for example, why it is that computers can already mimic the intricacies of human conversation with considerable success. This is, the authors argue, because computers can exploit “.....the shallowness or mindlessness of most conversation.” Not very flattering, but it might just be true.
The third reason why this book may find an audience well beyond the confines of computer science is the possibility that the methods it outlines will put down roots in chemistry, physics, and other areas of science. There remain numerous problems in the physical sciences that conventional methods of attack fail to solve adequately. Some of the newer computational methods in the broad field of artificial intelligence have proven effective at tackling these problems, and Swarm Intelligence is another potentially useful tool in the armory.
Entertaining and thought-provoking—but I was disappointed by one aspect of the book. The bulk of it is taken up with a presentation of the background to Swarm Intelligence, and a description of its use on model problems. Few “real-world” applications are discussed, and this makes it harder for the interested newcomer to the field to judge whether this is a fascinating, entertaining but ultimately limited technique, or whether it has the potential to rival genetic algorithms and cellular automata as a method of real power in the solution of scientific problems. It is perhaps a little unfair to criticize the authors for this paucity of applications, because a text is not necessarily the most appropriate forum in which to present them, but it would help those new to the field to appreciate the potential of the method were more real examples to be given.
This is a small quibble though. The writing in Swarm Intelligence is lucid throughout and the limited range of applications little more than an irritation. This is a book worth reading just for the breadth of topics and ideas the authors want to discuss. You will need an interest in computers and computational methods to summon up the courage to start on the 512 pages, but persistence will be well rewarded.
Full of ideas, written about a technique that perhaps may crystallize into one of real promise, this is a book any computational chemist should be happy to settle down with.