Natural evolution has an amazing ability to produce elegant solutions to the challenges faced by living systems. As these challenges become more complex, so too must the organisms that respond to them. Evolution is clearly a powerful force, yet it is difficult to gather sufficient data to understand how complex traits arise and are incorporated into the working whole. The twin goals for this project are to understand how evolution designs complex functions, and to apply this knowledge to solving complicated computational problems. To accomplish this, the investigators will use "digital organisms" as a model system. These are self-replicating computer programs, subject to mutations and selection, that evolve complex features de novo in a natural evolutionary process. The investigators will use this system both for research purposes and as the basis of a teaching platform in biology classrooms and museum kiosks.
Populations of digital organisms are tractable and transparent, allowing researchers to study all aspects of the evolutionary design process. For example, the lineage of an evolved individual can easily be traced and the contributions of each mutation along the way can be quantified. The investigators will use these techniques to study several fundamental questions: How contingent are the outcomes of adaptive evolution on small random events? When populations reach evolutionary dead-ends, is it due to a single, severe 'wrong turn' in multidimensional genotypic space, or is this a more gradual process? How vital are deleterious mutations to promoting adaptive evolution? Are neutral mutations more important? How can these forces be harnessed to solve computational design problems? Finally, can harmful populations ( e.g., pathogens or evolving computer viruses) be forced into evolutionary dead-ends?
Evolution in nature is an incredibly powerful process, but it often progresses at such a gradual pace that it is difficult to observe, let alone perform experiments on. Fundamentally, however, evolution can be thought of as an algorithm -- a series of steps that can directly be implemented in a computer. Such a system not only allows us to perform new types of experiments to understand the natural processes of evolution, but also allows us to harness its power to solve computational problems. For this award, we examined how evolution produces biological complexity and explored how our discoveries could be used in applied evolutionary algorithms. Highlights of our findings include: * Individual mutations can, on rare occasion, have a dramatic impact on whether complex traits arise in a system. Specifically, some mutations that are immediately beneficial when they occur can lead a population to an evolutionary dead-end. On the flip side, mutations that are initially deleterious can lead a population across a "fitness valley" allowing for much higher fitness levels in the future. * When resources are in short supply, populations are MORE likely to evolve complex traits and behaviors. This result turns out to be due to a combination of higher diversity (organisms specialize in fewer resources to be more likely to get them) and easier tradeoffs to gain rare resources (it is typically more valuable to be able to use a single resource that no one is competing with you for than many resources that everyone else is also trying to get.) Since resources that require more complex behaviors to obtain tend to be more rarely used, this combination increases evolved complexity. * If groups of these digital organisms are selected as a unit, more complex coordination and cooperation will evolve, including task specialization and reproductive division of labor. On the more applied side: * Evolution of computer programs turns out to be surprisingly robust to the details about the underlying programming used. While features of the language can certainly make some difference, those difference were rarely as dramatic as we had expected them to be. * The use of limited resources in applied genetic algorithms allows for easy implementation when multiple objectives must be simultaneously optimized. It also allows the user to add additional resources associated with "hints" for how to achieve the ultimate goals. These hints can, for example, be simpler tasks that are stepping stones to a more complex task. We showed that if a "bad" hint is given this way, it have only a negligible slowdown on the overall system.