The Computational Beauty of Nature

Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation

"Simulation," writes Gary Flake in his preface, "becomes a form of experimentation in a universe of theories. The primary purpose of this book is to celebrate this fact." 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.

Table of Contents

  1. Preface
  2. 1. Introduction
  3. I. Computation
  4. 2. Number Systems and Infinity
  5. 3. Computability and Incomputability
  6. 4. Postscript: Computation
  7. II. Fractals
  8. 5. Self-Similarity and Fractal Geometry
  9. 6. L-Systems and Fractal Growth
  10. 7. Affine Transformation Fractals
  11. 8. The Mandelbrot Set and Julia Sets
  12. 9. Postscript: Fractals
  13. III. Chaos
  14. 10. Nonlinear Dynamics in Simple Maps
  15. 11. Strange Attractors
  16. 12. Producer-Consumer Dynamics
  17. 13. Controlling: Chaos
  18. 14. Postscript: Chaos
  19. IV. Complex Systems
  20. 15. Cellular Automata
  21. 16. Autonomous Agents and Self-Organization
  22. 17. Competition and Cooperation
  23. 18. Natural and Analog Computation
  24. 19. Postscript' Complex Systems
  25. V. Adaptation
  26. 20. Genetics and Evolution
  27. 21. Classifier Systems
  28. 22. Neural Networks and Learning
  29. 23. Postscript: Adaptation
  30. Epilogue
  31. 24. Duality and Dichotomy
  32. Source Code Notes
  33. Glossary
  34. Bibliography
  35. Index
  36. Production Notes