From Evolving to Self-Replicating Engineering Systems
Hod Lipson Sibley School of Mechanical and Aerospace Engineering, and Faculty of Computing and Information Science, Cornell University This talk will present evolutionary computation processes for both synthesizing and analyzing complex systems, and their implications for understanding the evolution of complexity in nature and in engineering. Our investigation of these evolutionary design systems gives rise to questions not unlike those raised by biological evolution. For example, under what conditions can the evolutionary process yield functionally complex designs? What are the roles of functional modularity, structural regularity and hierarchy in the scaling of evolutionary processes? I will give an overview of some of these challenges, and provide two perspectives: one where we use evolutionary and co-evolutionary processes to design systems with a desired behavior, and a second where we use evolutionary processes to reverse-engineer a given system based on observation of its behavior. Both of these may provide a system-level perspective of biology: one helps us understand what properties to expect from evolved systems, and the other provides us tools to infer the structure of existing evolved systems. In a first set of examples, we will see how simple evolutionary processes are used to explore the space of morphologies and controllers for a variety of robotic systems, and how these machines ultimately perform in physical reality [1]. Some of these systems make use of modular and regular substructures, and in some we observe the emergence of compound structures, such as in undirected evolution of self-replicating machines [2]. In a second set of examples, we will see how we can use evolutionary processes to reverse-engineer existing systems. One approach would be to evolve system representations whose behavior matches that of the observed target system we wish to reverse-engineer. But by pitching the reverse-engineering problem as a co-evolutionary game, where candidate models of the system and candidate tests co-evolve in a predator–prey-like ecosystem, we get much better results: Models compete to explain data produced by tests, and tests compete to make models disagree in their predictions. We shall see how this form of co-evolutionary active learning [3,4] is used to reverse-engineer a variety of systems from dynamical systems, structural systems and biological networks. Ultimately, combining synthesis and analysis capabilities allows us to analyze existing systems, model them, and then use the model predictions to synthesize improved machines, leading to novel forms of machine adaptation. 1. Lipson, H. & Pollack J. B. Nature 406, 974-978 (2000).  2. Zykov, V., Mytilinaios, E., Adams, B. & Lipson, H. Nature 435, 163-164 (2005). 3. Bongard, J. C. & Lipson, H. J. Machine Learning Res. (in press). 4. Bongard, J. & Lipson, H. IEEE Trans. Evol. Computation 9, 361-384 (2005).