Illustrating Evolutionary Computation with Mathematica (The Morgan Kaufmann Series in Artificial Intelligence)Christian Jacob | 2001-02-12 00:00:00 | Morgan Kaufmann | 578 | Others
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.
Living organisms manage to solve all kinds of deviously complex problems with a natural simplicity that leaves programmers speechless. Incorporating techniques based on principles elaborated by Darwin and his intellectual descendents, a new generation of hackers has tackled hairy challenges with surprising success. Christian Jacob introduces interested programmers and scientists to these tools in Illustrating Evolutionary Computation with Mathematica, translated from German by the author. The basics of biological evolution through mutation and adaptation are covered quickly before they are adapted themselves to the purposes of computer-aided problem solving. Jacob then explores the fundamentals of evolutionary computing through well-illustrated examples and a good balance of text, formulae, and code. Genetic algorithms, evolutionary strategies, and finite state automata each get their share of attention and integration with Evolvica, Jacob's Mathematica-based genetic programming system. The system and Web enhancements to the book are available through the University of Calgary's site and are essential for getting the most from the text. The last few chapters cover advanced applications like the classic "hungry ants" programs, cellular automata, and artificial plant evolution, suggesting further possibilities for this programming frontier. Illustrating Evolutionary Computation with Mathematica is an excellent introduction and handbook for those wishing to harness the power of this vigorous new hybrid. --Rob Lightner
Reviews
This book is poorly structured and lacks depth. It trivialises aspects of EAs, especially representational issues. I understand the emphasis is on teaching the reader how to program GAs using mathematica but I would not recommend this book as an introduction to GAs. The visualisation aspects of Mathematica applied to EAs are useful, but I would definitely recommend Melanie Mitchell's Introduction to Genetic Algorithms or one of Koza's books for those interested in GP.
Reviews
As a Mechanical Engineer with just a side interest in AI, I find most books in this field need heavy attention after the first few pages. Not so with this one. Its a great piece of work. I was kind of skeptical at first since this is billed as a translation from German, but it reads really well... and once you get the notebooks in Mathematica...its almost imposible to get anything else done, youll be hooked. Looking forward to more titles in this field from Jacob.
Reviews
I am quite satisified with what I am reading. As a non-scientist, I can see how this evolutionary theory and this particular theory relates to life in general and its applications and conditions. The introduction is quite important and explains how the theory of evolution (correct or not is not necessary) is used to help with mathematical computations and solve mathematical problems.
What is implied in Christian Jacob's book is quite broad and revolutionary. In color plate 2, page 288, "independent populations climbing peaks" reminds me of the recent findings of a particular species of parrot (thought extinct in South America since 1910)living currently on some Volcano in South America by residents there by accident. Yet, through evolutionary models, one can track species and perhaps any existence.
What is most interesting is what is implied--that tracking can be used to oppress or cause extinctions (such as poaching) and so it could be implied that randomness would occur by species under these conditions to avoid tracking such as avoiding evolutionary tracking. Randomness would therefore be an evolutionary process to survive. Finding randomness could suggest a species or whatever is possibly trying to avoid being tracked through evolutionary tracking. Evolutionary tracking is relatively new and so this is why there is perhaps little randomness (or maybe none has been discovered yet), but randomness is a possibility that seems to be a probable result and not clearly an original play--since so far, not much randomness if any has been found.
If one turns Color Plate 3 on page 289 upside down, one is perhaps presented with an ocean. Recently, life that does not need oxygen to exist has been found living deep in an ocean. The life was most likely dicovered without using evolutionary tracking models, though the models would suggest something is there though what has evolved or not is not clear and would need more elaborate formulas and charts of various sorts. That ocean life found uses other sources as reported by this science news wire:
[URL]
So, Color Plate 3 is quite interesting as it would suggest that in addition to the findings of the scientists, there are at least two other entities there they have not discovered...
It is as though the models and formulas can be applied in a variety of instances due to lack of randomness and that evolutionary tracking has so far not been avoided with randomness...
This suggests early birth of Earth and evolution of all or most species and things on Earth, evolutionary tracking not done until recently by Earthlings or others, or that evolutionary tracking so far is used for good and not to cause extinction or disruption...
I would say the book is written for scientists mainly and there are a number of formulas, but they do apply to the humanities.
Reviews
Like the previous reader, I must applaud this book. While I know Mathematica well, I am no mathematician and I have no patience for books that do not explain the foundations of their programs or functions.
The author here, Jacob, does an excellent job of introducing the reader gradually to the different concepts of simulating evolution. As you can download the Mathematica notebooks and run them on your own computer, this quickly becomes a fun and interactive book.
The book starts with simple selection processes for reproduction. Select shapes, colors or features and see a next generation evolve! This can be a fun game. See breeding and mutation be used to search for an optimum of a three-dimensional function, where the reader knows the global optimum, while different "populations" try to find it by evolutionary methods-mutating or breeding to a different spot, which they evaluate and according to its height be successful in the passing of their genes or not. Other fun chapters include evolutionary production of mobiles and flowers. The culmination is in the evolution of algorithms. This evolves small programs for searching for food in a maze. The successful programs "breed," "mutate," and reproduce, while the unsuccessful ones starve and die. The result is a complex path toward better algorithms for searching for food.
Part of the value of this book for me is that it really shows the limits of evolutionary analysis. You can simulate the successes--the butterflies that do manage to change colors to avoid falling easy prey when the environment changes; the evolutionary mechanisms that find the global optimum of a function-but there is no concrete way to determine or describe their efficiency ex ante. This is a major failure of evolutionary analysis generally, rather than a drawback of the book. If anything, the book deserves credit for making this failure understandable, although Jacob does not spend time exploring or solving the problem of determining evolutionary fitness.
[To put it in an example, suppose there are two evolutionary mechanisms. An organism can evolve by mutation or by reproduction. Mutation is the random change of some individuals in the population, and the change makes them either more or less successful in their environment. Reproduction means parents producing an offspring by mixing their features, and the different offspring will have different degrees of success in their environment. We can simulate their operation in a hypothetical environment, by for example, saying that the background foliage changes color and organisms have different probabilities of being eaten by predators depending on their color. We run the simulation and see which evolutionary mechanism adapts to the new environment faster and better. Nevertheless, we cannot conclude that the evolutionary mechanism that won this test will win every test. Needless to say, when designing evolutionary systems this conclusion is crucially necessary. If we are designing a computer search program, should we have it "mutate" or "reproduce"? Since we do not know the challenges it will face (the changes in the environment that it must overcome) we cannot evaluate its success ex ante.]
With the caveat of not exploring measurements of the success (fitness) of different evolutionary mechanisms, this is a spectacular book. It is worth comparing it with the books of the various biologists, who simply offer examples of evolutionary changes from the past or hypotheses of evolutionary explanations for various phenomena. Those are speculations of amateurs compared to the experimentation and verification that Jacob's approach offers. That the field is not ready for rigorous conclusions is unfortunate, but something that is no fault of this author.
Reviews
This book provides a thorough survey of evolutionary computation techniques, including genetic algorithms, genetic programming, evolutionary programming, and evolution strategies. The author uses mathematica to illustrate the examples. If you know mathematica, you'll find this unique angle to be invaluable, but even if you don't know mathematica, if you're familiar with any programming languages, or matlab, maple, etc., you should be able to make the connections. The figures in this book have to be the most illustrative examples offered in any evolutionary computation text to date. The text is easy to read and very informative.
Download this book!
Free Ebooks Download