My research interests are focused on the intersection of computer science, ecology, and evolutionary biology. This involves doing in silico experiments to understand general properties of ecology and evolution, and using principles from biology to solve computational problems. Often these goals intersect. Many of my in silico experiments are carried out on the Avida Digital Evolution Platform, an open source research platform developed and maintained by the Devolab. The primary theme uniting my research is that I am fascinated by how evolution shapes and is shaped by ecological communities. This often leads me to ask questions about how evolutionary processes generate and maintain diversity, particularly in the presence of spatial structure.

Some specific projects that I’m currently working on include:

Ecological communities in evolutionary computation

Ecological interactions (blue is positive, red is negative) between members of a population under various selection schemes from evolutionary computation.

Maintaining population diversity is critical to successfully solving challenging problems with evolutionary computation. As a result, evolutionary computation researchers have come up with a variety of techniques for generating and maintaining diversity. All of these techniques create ecological interactions between members of the population. By understanding how these techniques map onto ecological scenarios in nature, we can import a vast number of results from evolutionary computation back into biology and vice versa.

Preliminary work is presented here, and more in depth analysis is forthcoming (feel free to get in touch if you want more details now!).

Using ecology to provide hints to evolutionary computation

Eco-EA is able to solve an otherwise too-challenging problem when it is given an adequate number of good hints (regardless of the number of bad hints it is given). Lexicase, another algorithm that generates and maintains diversity by associating niches with different approaches to solving the problem, performs better when given perfect hints but is not resistant to bad hints.

Many of the most effective techniques for generating and maintaining diversity in evolutionary computation involve creating niches associated with different approaches to solving the problem. We can build on this technique by using niche creating as a tool for giving the algorithm "hints" about how it might be effective to solve a problem. Most attempts to give hints to machine learning algorithms are unsuccessful because humans are often very wrong about the best way to solve a problem. However, Eco-EA, an ecology-based evolutionary algorithm developed by Sherri Goings and Charles Ofria, has an amazing ability to ignore bad hints. We are studying the mechanisms behind this property and experimenting with using them to improve evolutionary computation.

Understanding barriers to open-ended-evolution

Our schematic outline of what things could get in the way of open-ended evolution. Explained here in blog form or here in the form of me giving a talk.

Are there systematic differences between evolution in digital systems and evolution in nature? If so, it's important to know about them, both so that we can make sure insights from digital systems apply to natural systems in the way we expect, and so because the sources of such discrepancies are likely highly informative when it comes to understanding drivers of evolution. Research on open-ended evolution seeks to address these questions. We have put together a suite of metrics for understanding open-ended evolution, and are now in the process of applying them to various systems to see what we can learn. We have begun applying these metrics to simple evolving systems.

Understanding long term evolutionary dynamics through lineages and phylogenies

A phylogeny color-coded by each individual's position in the world, demonstrating the spatial dynamics of the evolving population. Interactive version available here.

In an effort to understand the short-term effects that add up to produce long-term evolutionary dynamics, we have been working on ways to summarize and quantify the behavior of individual lineages. This includes a suite of quantitative metrics, and a three-dimensional visualization (described here, viewable here).

Evolution in spatially heterogenous environments

Hotspots of evolutionary potential in four spatially heterogenous enviroments.

How do spatially heterogenous environments impact the way populations traverse fitness landscapes? Do some regions of the environment guide the population into more evolvable areas of the fitness landscape? If so, we would expect to see that there are some regions of space where a new trait is more likely to first appear than we would expect by chance. Using Avida, I found that such evolutionary hotspots do indeed occur. This work builds on my prior research on the effect of spatial heterogeneity on eco-evolutionary dynamics.

Interactions between evolution and reserve placement

Phenotypes preserved over evolutionary time across multiple reserves.

When we place reserves for conservation purposes, we are determining the spatial structure of the population going forward, something which is known to have strong impacts on evolutionary dynamics. However, most conservation biology research does not study evolutionary effects, because of the broad temporal scale this would require. We are using Avida to explore the interactions between evolution and reserve placement decisions.