Luis Zaman, Ph.D.
Assistant Professor of Ecology & Evolutionary Biology and Complex Systems
- Email: [email protected] (I prefer Canvas posts/discussions)
- Phone: (734) 615-2828
- Office Hours: TBD
While every population of living organisms is evolving, not everything that evolves is alive. Nature’s success at finding innovative solutions to complex problems has inspired many computational implementations of the evolutionary process. Philosophically, this is possible because evolution is itself a substrate neutral process (i.e., evolution can occur regardless of what particular substance makes up the individuals in a population). This fundamental property of evolution creates a deep connection between computational implementations and the biological process responsible for the diversity of life on Earth. We will highlight this connection and the possibility of two-way interdisciplinary discovery through regular readings and discussions. Some of the various implementations of evolution we will learn about include approaches to solve optimization problems, building controllers and/or bodies for robots, and using computational instances of Darwinian evolution to study fundamental questions in biology.
-
You will develop a deep understanding of the evolutionary process; both how it can be harnessed to solve "real-world" problems, and how it can be digitized to study biological questions.
-
You will engage often with primary literature, developing the necessary background to evaluate and hopefully contribute to active research on Evolution In Silico.
-
You will extend or create a computational implementation of evolution as part of your group projects, which could lead to publication in one of several appropriate conference proceedings or journals.
There will be a non-trivial amount of biological concepts discussed in this course. It is not required that you have a formal background, but a comfort or curiosity about ecological and evolutionary processes will be very helpful.
In addition to Math 115, some comfort with basic probability or statistics will be useful.
Since we will be using, extending, and creating computational models of evolution as a core part of this class, you should be comfortable programing in at least one commonly used "scripting" language such as Python, R, or Matlab. We will be using Python in this class.
Feel free to chat with me about your programing skill level or other concerns about the prerequisites if you have any concerns.
- 40% Group Homework Assignments
- 30% Group Term Project and Presentation
- 20% Literature Summaries
- 10% Participation
We will approach topics about Evolution In Silico from primary literature readings and discussions. My lectures will reinforce core concepts and develop the necessary background to make those readings accessible. Most of the work in this class will be group based, and active, almost lab-like. Group homework assignments will introduce you to different implementations and uses of evolution in computation. You will also work on a larger group project that extends (or creates) an implementation of Evolution In Silico to address scientific questions of the group's choice.
NB: This is a draft list of topics that may change depending on enrolled students' interests.
- Foundations of Evolutionary Biology (~2 weeks)
- Simple Simulations of Evolution (~2 weeks) (Group Homework 1)
- Python Refresher
- Moran and Wright-Fisher Models
- Game Theory, Replicator Dynamics
- Iterated PD (Axelrod)
- Genetic Algorithms and Genetic Programing (~3 weeks) (Group Homework 2)
- GA/GP
- Schema Theory (Holland)
- Learning Classifier Systems (Holland)
- Advanced Topics (Niching, Fitness Sharing, Multi-Objective Optimization)
- Neuroevolution (~2 weeks) (Group Homework 3)
- Evolving Artificial Neural Networks
- Direct and Generative Encodings
- Body/Brain Coevolution
- Digital Life: Computational Evolutionary Biology (~3 weeks) (Group Homework 4)
- What is Life? What is the difference between GA/GP and Digital Life?
- Avida and its Precursors
- Digital Eco-Evolution