In this book, Gary William Flake develops in depth the simple idea that recurrent rules can produce rich and complicated behaviors. Distinguishing “agents” (e.g., molecules, cells, animals, and species) from their interactions (e.g., chemical reactions, immune system responses, sexual reproduction, and evolution), Flake argues that it is the computational properties of interactions that account for much of what we think of as “beautiful” and “interesting.” From this basic thesis, Flake explores what he considers to be today’s four most interesting computational topics: fractals, chaos, complex systems, and adaptation.
Each of the book's parts can be read independently, enabling even the casual reader to understand and work with the basic equations and programs. Yet the parts are bound together by the theme of the computer as a laboratory and a metaphor for understanding the universe. The inspired reader will experiment further with the ideas presented to create fractal landscapes, chaotic systems, artificial life forms, genetic algorithms, and artificial neural networks.
Flake covers the traditional subjects of fractals (snowflakes and Mandelbrots, L-systems, affine transformations), chaos (logistic map, bifurcations, strange attractors, controlling chaos), complex systems (cellular automata, social insects, flocks, self-organisation), neural networks, evolutionary algorithms, and more, from a computational perspective. But that doesn’t mean just giving code samples for the various examples. Although plentiful C source code is provided (fortunately via an ftp address, not as interminable listings), Flake’s text covers background, theory, theoretical computational aspects, a glossary, further reading, and the like.
I could almost recommend this as an introductory textbook. The material is certainly covered to such a level, and it is well written, well laid out, and lavishly illustrated with detailed diagrams. Yet it has one draw-back: the link to the technical literature is not there. The text, for example, introduces Langton’s lambda-parameter, defines it, and discusses its properties (see section 15.3); the final bibliography (but no the chapter level further reading) includes a reference to the relevant paper; but there is no explicit link from the text to this particular reference.
Despite this single caveat, this is a nice book that covers a lot of material in an accessible manner, with a depth that adds real meat to the topic.