O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Illustrating Evolutionary Computation with Mathematica

Book Description


An essential capacity of intelligence is the ability to learn. An artificially intelligent system that could learn would not have to be programmed for every eventuality; it could adapt to its changing environment and conditions just as biological systems do. Illustrating Evolutionary Computation with Mathematica introduces evolutionary computation to the technically savvy reader who wishes to explore this fascinating and increasingly important field. Unique among books on evolutionary computation, the book also explores the application of evolution to developmental processes in nature, such as the growth processes in cells and plants. If you are a newcomer to the evolutionary computation field, an engineer, a programmer, or even a biologist wanting to learn how to model the evolution and coevolution of plants, this book will provide you with a visually rich and engaging account of this complex subject.

* Introduces the major mechanisms of biological evolution.
* Demonstrates many fascinating aspects of evolution in nature with simple, yet illustrative examples.
* Explains each of the major branches of evolutionary computation: genetic algorithms, genetic programming, evolutionary programming, and evolution strategies.
* Demonstrates the programming of computers by evolutionary principles using Evolvica, a genetic programming system designed by the author.
* Shows in detail how to evolve developmental programs modeled by cellular automata and Lindenmayer systems.
* Provides Mathematica notebooks on the Web that include all the programs in the book and supporting animations, movies, and graphics.

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Preface: From Darwin to an ArtFlowers Garden
  7. Chapter 1: Introduction: The Fascination of Evolution
    1. 1.1 Flavors of evolution
    2. 1.2 Adaptation and selection
    3. 1.3 Drip by drip—cumulative selection
    4. 1.4 Simulated mimesis of butterflies
    5. 1.5 Evolutionary creativity—biomorphs
    6. 1.6 Bibliographical notes
  8. Part I: Evolutionary Computation
    1. Part I: Introduction to Evolutionary Computation
    2. Chapter 2: Evolutionary Algorithms for Optimization
      1. 2.1 A simplified formal model of evolution
      2. 2.2 Optimization through adaptive structures
      3. 2.3 A general evolutionary algorithm scheme
      4. 2.4 Bibliographical notes
    3. Chapter 3: Genetic Algorithms
      1. 3.1 Polyploid GA chromosomes
      2. 3.2 Point mutation on GA chromosomes
      3. 3.3 GA recombination
    4. Chapter 4: Evolution Strategies
      1. 4.1 Representation of individuals
      2. 4.2 Mutation
      3. 4.3 Recombination
      4. 4.4 Selection and reproduction schemes
      5. 4.5 Meta-evolution strategies and the island model
      6. 4.6 Evolution strategies with Evolvica
      7. 4.7 Evolution strategies at work
      8. 4.8 Bibliographical notes
  9. Part II: If Darwin Had Been a Programmer…
    1. Part II: Introduction to If Darwin Had Been a Programmer…
    2. Chapter 5: Programming by Evolution
      1. 5.1 Evolving versus programming
      2. 5.2 Evolution and programming: a survey
      3. 5.3 Bibliographical notes
      4. Color Plates
    3. Chapter 6: Evolutionary Programming
      1. 6.1 Computer programs as finite state machines
      2. 6.2 Mutation operators on FSA
      3. 6.3 Automatic generation of finite state machines
      4. 6.4 EP selection and evolution scheme
      5. 6.5 Evolutionary programming with Evolvica
      6. 6.6 Evolutionary programming at work
      7. 6.7 Diversification of evolutionary programming
      8. 6.8 Bibliographical notes
    4. Chapter 7: Genetic Programming
      1. 7.1 Symbolic expressions as genotypical program structures
      2. 7.2 GP recombination of program structures
      3. 7.3 GP mutation of program structures
      4. 7.4 GP evolution scheme
      5. 7.5 Genetic programming in action
      6. 7.6 Bibliographical notes
    5. Chapter 8: Advanced Genetic Programming at Work
      1. 8.1 Breeding of computer programs: the AntTracKer example
      2. 8.2 Analysis of an evolution experiment
      3. 8.3 Adaptive operator weights
      4. 8.4 Advanced GP operators and functionality
      5. 8.5 Bibliographical notes
  10. Part III: Evolution of Developmental Programs
    1. Part III: Introduction to Evolution of Developmental Programs
    2. Chapter 9: Computer Models of Developmental Programs
      1. 9.1 Cellular automata and cellular programming
      2. 9.2 Lindenmayer systems
      3. 9.3 Bibliographical notes
    3. Chapter 10: Evolutionary Inference of Lindenmayer Systems
      1. 10.1 Encoding of IL-systems
      2. 10.2 Evolution of fractal structures
      3. 10.3 Bibliographical notes
    4. Chapter 11: Artificial Plant Evolution
      1. 11.1 The ArtFlower garden
      2. 11.2 Breeding artificial flowers
      3. 11.3 The ArtFlower garden in full bloom
      4. 11.4 Extensions for more realistic plant modeling
      5. 11.5 Evolution of plant ecosystems
      6. 11.6 Bibliographical notes
  11. References
  12. Index