Evolutionary Computation
605.755
Course Description
This course explores how principles from theories of evolution can be used to
construct systems that exhibit nontrivial behavior with a focus on genetic
algorithms, genetic programming, and artificial life. Specific topics include
representation and schemata; selection, reproduction, and recombination; the
schema theorem; optimal allocation of trials (i.e., bandit problems);
classifiers and other rule-based approaches; search, optimization, and machine
learning; evolution of programs; and emergent behavior. Students will
participate in seminar discussions and will complete and present the results of
an individual project.
Syllabus
Prerequisites
605.451
Principles of Artificial Intelligence is recommended, but not required.
Instructor
John Sheppard is a Staff Principal Analyst at ARINC Incorporated and
performs research in machine learning, intelligent diagnostics, and game theory. He
holds a B.S. in computer science from Southern Methodist University and an M.S. and
Ph.D. in computer science from the Johns Hopkins University. His research in evolutionary
computation has included developing a genetic algorithm for learning evasive maneuvers and
using a genetic algorithm to bootstrap memory based learning. In addition, he has
supervised graduate students in performing research in evolutionary hardware and
artificial life.
Computer Lab Requirements
All students will complete a non-trivial project and may make use of any computer system
and any language.
Textbook
Papers by various authors on the web.
An Introduction to Genetic Algorithms by Melanie Mitchell
Genetic Programming: An Introduction by W. Banzhaf, P. Nordin, R. Keller,
and F. Francone
Artificial Life by Christopher Langton
Return to Computer Science Courses | Computer Science | Part-Time Engineering