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).