Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation A Bradford Book The MIT Press Cambridge, Massachusetts London, England Contents Preface xiii How to Read This Book xiv Dealing with Difficult Subjects xv Personal Motivation xvi Acknowledgments xvi 1 Introduction 1 1.1 Simplicity and Complexity 2 1.2 The Convergence of the Sciences 1.3 The Silicon Laboratory 6 I Computation 9 2 Number Systems and Infinity 11 2.1 Introduction to Number Properties 12 2.2 Counting Numbers 14 2.3 Rational Numbers 15 2.4 Irrational Numbers 16 2.5 Further Reading 22 3 Computability and Incomputability 23 3.1 Godelization 25 3.2 Models of Computation 26 3.3 Lisp and Stutter 30 3.4 Equivalence and Time Complexity 36 3.5 Universal Computation and Decision Problems 40 3.6 Incomputability 42 3.7 Number Sets Revisited 45 3.8 Further Reading 48 viii Contents 4 Postscript: Computation 51 4.1 Godel's Incompleteness Result 52 4.2 Incompleteness versus Incomputability 53 4.3 Discrete versus Continuous 55 4.4 Incomputability versus Computability 56 4.5 Further Reading 57 II Fractals 59 5 Self-Similarity and Fractal Geometry 61 5.1 The Cantor Set 62 5.2 The Koch Curve 65 5.3 The Peano Curve 66 5.4 Fractional Dimensions 67 5.5 Random Fractals in Nature and Brownian Motion 71 5.6 Further Exploration 75 5.7 Further Reading 76 6 L-Systems and Fractal Growth 77 6.1 Production Systems 78 6.2 Turtle Graphics 80 6.3 Further Exploration 81 6.4 Further Reading 92 7 Afflne Transformation Fractals 93 7.1 A Review of Linear Algebra 94 7.2 Composing Affine Linear Operations 96 7.3 The Multiple Reduction Copy Machine Algorithm 98 7.4 Iterated Functional Systems 103 7.5 Further Exploration 105 7.6 Further Reading 106 8 The Mandelbrot Set and Julia Sets 111 8.1 Iterative Dynamical Systems 112 8.2 Complex Numbers 112 8.3 The Mandelbrot Set 114 8.4 The M-Set and Computability 118 8.5 The M-Set as the Master Julia Set 120 8.6 Other Mysteries of the M-Set 125 8.7 Further Exploration 125 Contents 8.8 Further Reading 127 Postscript: Fractals 129 9.1 Algorithmic Regularity as Simplicity 130 9.2 Stochastic Irregularity as Simplicity 132 9.3 Effective Complexity 134 9.4 Further Reading 136 III Chaos 137 10 Nonlinear Dynamics in Simple Maps 139 10.1 The Logistic Map 141 10.2 Stability and Instability 144 10.3 Bifurcations and Universality 148 10.4 Prediction, Layered Pastry, and Information Loss 150 10.5 The Shadowing Lemma 153 10.6 Characteristics of Chaos 154 10.7 Further Exploration 156 10.8 Further Reading 158 11 Strange Attractors 159 11.1 The Henon Attractor 160 11.2 A Brief Introduction to Calculus 165 11.3 The Lorenz Attractor 168 11.4 The Mackey-Glass System 173 11.5 Further Exploration 176 11.6 Further Reading 180 12 Producer-Consumer Dynamics 181 12.1 Producer-Consumer Interactions 182 12.2 Predator-Prey Systems 183 12.3 Generalized Lotka-Volterra Systems 186 12.4 Individual-Based Ecology 187 12.5 Unifying Themes 197 12.6 Further Exploration 198 12.7 Further Reading 201 13 Controlling Chaos 203 13.1 Taylor Expansions 204 13.2 Vector Calculus 205 13.3 Inner and Outer Vector Product 207 Contents 13.4 Eigenvectors, Eigenvalues, and Basis 209 13.5 OGY Control 211 - 13.6 Controlling the Henon Map 215 13.7 Further Exploration 218 13.8 Further Reading 219 14 Postscript: Chaos 221 14.1 Chaos and Randomness 222 14.2 Randomness and Incomputability 224 14.3 Incomputability and Chaos 226 14.4 Further Reading 227 IV Complex Systems 229 15 Cellular Automata 231 15.1 One-Dimensional CA 232 15.2 Wolfram's CA Classification 236 15.3 Langton's Lambda Parameter 242 15.4 Conway's Game of Life 245 15.5 Natural CA-like Phenomena 251 15.6 Further Exploration 255 15.7 Further Reading 258 16 Autonomous Agents and Self-Organization 261 16.1 Termites 262 16.2 Virtual Ants 264 16.3 Flocks, Herds, and Schools 270 16.4 Unifying Themes 275 16.5 Further Exploration 276 16.6 Further Reading 278 17 Competition and Cooperation 281 17.1 Game Theory and Zero-Sum Games 282 17.2 Nonzero-Sum Games and Dilemmas 288 17.3 Iterated Prisoner's Dilemma 293 17.4 Stable Strategies and Other Considerations 295 17.5 Ecological and Spatial Worlds 297 17.6 Final Thoughts 303 17.7 Further Exploration 303 17.8 Further Reading 304 Contents 18 Natural and Analog Computation 307 18.1 Artificial Neural Networks, 309 18.2 Associative Memory and Hebbian Learning 312 18.3 Recalling Letters 316 18.4 Hopfield" Networks and Cost Optimization 318 18.5 Unifying Themes 324 18.6 Further Exploration 325 18.7 Further Reading 326 19 Postscript: Complex Systems 327 19.1 Phase Transitions in Networks 328 19.2 Phase Transitions in Computation 332 19.3 Phase Transitions and Criticality 334 19.4 Further Reading 336 V Adaptation 337 20 Genetics and Evolution 339 20.1 Biological Adaptation 340 20.2 Heredity as Motivation for Simulated Evolution 342 20.3 Details of a Genetic Algorithm 343 20.4 A Sampling of GA Encodings 348 20.5 Schemata and Implicit Parallelism 353 20.6 Other Evolutionary Inspirations 355 20.7 Unifying Themes 356 20.8 Further Exploration 358 20.9 Further Reading 360 21 Classifier Systems 361 21.1 Feedback and Control 363 21.2 Production, Expert, and Classifier Systems 364 21.3 The Zeroth Level Classifier System 370 21.4 Experiments with ZCS 373 21.5 Further Exploration 379 21.6 Further Reading 380 22 Neural Networks and Learning 383 22.1 Pattern Classification and the Perceptron 385 22.2 Linear Inseparability 390 22.3 Multilayer Perceptrons 392 Contents 22.4 Backpropagation 393 22.5 Function Approximation, 398 22.6 Internal Representations 404 22.7 Other Applications 409 22.8 Unifying Themes 410 22.9 Further Exploration 411 22.10 Further Reading 413 23 Postscript: Adaptation 415 23.1 Models and Search Methods 416 23.2 Search Methods and Environments 419 23.3 Environments and Models 422 23.4 Adaptation and Computation 423 23.5 Further Reading 424 Epilogue 425 24 Duality and Dichotomy 427 24.1 Web of Connections 428 24.2 Interfaces to Hierarchies 429 24.3 Limitations on Knowledge 431 Source Code Notes 435 Glossary 443 Bibliography 469 Index 483