artificial life

Chapter 8: Conclusion

This project covered several topics in Artificial Life in three major parts. The first part is an exploration of several areas in Artificial Life including Jon von Neumann, Emergence, Cellular Automata, L-Systems, Genetic Algorithms and Genetic Programming. The second part of the project implemented examples of some of the topics discussed in the history section. These included the Langton Loops Applet, the Game of Life Applet, the One-Dimensional Cellular Automata Applet, the Graphical L-Systems, the 3D Graphical L-Systems, the 0-1 Knapsack Applet and the Symbolic Regression Applet. The final part of this project is the implementation of a system that allows a user to evolve Genetic Images.

Possible extensions of the work include expanding the function base for the Genetic Images Application to include noise, warping or gradient functions. Also, time could be added as a third variable so that animations are generated. The Genetic Algorithm and Genetic Programming Applets are implemented using libraries intended to be used in extensible to other problems using these techniques.

An area that remains unexplored by this project is 3D genetic art and virtual creatures similar to those created by Karl Sims. Using the 3D L-Systems Application and the C++ Genetic Programming Library it should be possible to implement some form of 3D Genetic L-Systems Application that could produce interesting 3D geometry. By implementing a physics system in conjunction to this it should be possible to create Artificial Life that can learn move through the system.

The project shows that Artificial Life, although still in its nascent stages in terms of being able to create something artificial but considered alive, has given us some incredibly powerful tools. Cellular Automata are used in a multitude of fields as simulation tools for various phenomena. L-Systems are used by biologists to model botanical life and animal behavior and by artists to create complex structures quickly from simple rules. Genetic Algorithms and Genetic Programming can be applied to a large variety of problems, from trying to predict economic conditions to finding superior strategies to classic games such as “the Prisoner Dilemma”.

A major characteristic of “successful” Artificial Life is the importance of humans as a supervisor and judge of the a-life. From being able to recognize Graphical L-Systems as being similar to plants instead of being a jumble of lines to guiding the Genetic Images application to gradually more sophisticated imagery the human eye for complexity and beauty is a key to developing successful Artificial Life.

As computers continue to increase in speed and parallel computing becomes more common the possibilities for Artificial Life increase proportionally. Programming techniques such as Genetic Algorithms and Genetic Programming benefit tremendously from being processed in parallel. So, as processing power increases and an understanding of these techniques increases it can be expected that their utilization will become more common-day, thus adding tremendous power to our computational ability.