As the research field called Genetic Programming has shown during the last decade, it is possible not only to write computer programs by hand but also to let the computer itself develop programs that solve given problems. This is achieved by simulating natural evolution on the computer for "breeding" programs that are well adapted to a specific problem environment. The use of mechanisms found in nature can lead to solutions to complex problems that by far outperform any man-made approaches. The reasons are that complex problems often are difficult to solve analytically and many other possible approaches are not accessible to the human way of thinking. The use of the mechanisms of evolution based on genetic variation and "survival of the fittest" is only one example. Another example are Artificial Neural Networks that imitate clusters of nervous cells and their interactions for solving difficult problems (inspired among others by the human brain).
The here presented work explores a different and new approach to adopting problem solving methods found in nature. It uses the natural cell control mechanism called Gene Regulation that according to modern molecular genetics is the basis of the cooperation between and differentiation into all the different cells in living creatures. The most astonishing example of self-organization between simple units that cooperate to solve complex problems is not the interaction between nervous cells on the basis of mutual electrical activation through explicit and directed connections. It is the interaction between all kinds of cells in a living creature which is based on the diffusion of messages in the form of produced substances. This interaction is much more powerful and flexible than the neural interaction because of many reasons. The main reason is, that a cell in this context is not only a simple unit which can have different levels of activation, but it is a complex system with many behavioural possibilities. The communication between the cells not only bases on different activation intensities but on many different message types which (also depending their intensity) can have very sophisticated effects on the behaviour of a cell.
This new programming and control paradigm has been combined with genetic programming for breeding "multicellular" programs (which probably is the only feasible way of producing them). The system that implements this combination can not only be used to create programs with a new modular structure which has several advantages. It also is a great tool for developing systems of cooperating autonomous units like Amorphous Computers and Multiagent Systems.
Object-Oriented Ontogenetic Programming, Genetic Programming, Multicellular Programming, Swarm-Programming, Evolution of Distributed Intelligence, Gene Regulation, Embryology, Amorphous Computing, Multiagent Systems, Programming Multiagent Systems, Programming Amorphous Computers.
Thanks to Wolfgang Banzhaf for initially interesting me in genetic programming and ontogeny and then letting me do what I thought was right. Thanks to Peter Dittrich for drawing my attention to amorphous computing, for some good discussions and for always answering my e-mailed questions very quickly. Thanks to Christian Lasarczyk for always being of practical help when I needed it and thanks to Martin Villwock for finding several errors in the text concerning good English. Thanks to all the people that work at the chair of systems analysis for being such a nice community to be in. Last but not least thanks to all the developers that made Linux become such a great environment and thanks to Google for providing the currently best access point to the fantastic information base internet.