Syllabus for

Evolutionary Computation

COSC 668

(TTh 2:00-3:15, PH503)

Instructor: Matt Evett ; Dept. Computer Science; CS trailers
Tel: 734-487-1227; e-mail: evett@emunix.emich.edu; http://emunix.emich.edu/~evett/ECCourse
Office Hours: M-Th 4:00-5:00
You may drop by at times other than office hours, but in that case I cannot guarantee that I'll be able to see you.
Prerequisite: A senior level programming course.

Textbook: Foundations of Genetic Programming, W. B. Langdon and R. Poli , Springer, 2002.

Recommended textbooks:

Course Summary: This course will examine the major techniques and subfields of evolutionary computation (EC), with particular emphasis on genetic programming, and their application to various domains. There will be several small programming projects (in C++ or Java), in which students will use preexisting EC systems to derive solutions, or near solutions, to relatively simple problems. The course is organized as a seminar; students are expected to complete the assigned readings in a timely fashion so as to be able to participate during the lectures. A significant portion of each student's grade is determined by his or her class participation. So, don't be afraid to speak up! During lectures, always feel free to ask questions, raise doubts, or mention a topic you feel should be discussed in the current context. If you have a question, it is almost always the case that someone else has the same question.

Course Goals & Objectives: Students will complete a significant programming project that uses an evolutionary programming technique to solve a problem that would be difficult, if not impossible to solve without a self-adaptive approach. Students will be able to characterize genetic programming, genetic algorithms and evolutionary programming, and specify the conditions under which these techniques might be most applicable. Students will be able to write a brief essay explaining why the Scheme Theorem may explain why evolutionary techniques can succeed in some situations, and why they may fail in others.

Course Outline:

  1. Introduction to evolutionary computation: what is it?
  2. The basics of machine learning and search.
  3. The basics (and I mean basics!) of biological evolution and genetics.
  4. Genetic Algorithms (GA): fitness, reproduction, mutation, etc.
  5. The Schema Theorem in GA.
  6. Genetic programming and how it differs from GA.
  7. The creation and regeneration of populations: crossover, mating, and reproduction.
  8. ECJ -- a Java-based freeware system for conducting GP experiments.
  9. lilGP -- a C++ freeware system for conducting GP experiments.
  10. Classic GP problems and their solutions: Santa Fe Trail, lawnmower, numeric regression, boolean circuit design, etc.
  11. What's wrong with crossover? Why bother? Introns, bloat, building blocks, the schema theorem, the problem with variable length representation.
  12. Statistical tools for the analysis of EC systems (and GP in particular)--statistical significance.
  13. Evolutionary Programming: comparison to GP and GA.
  14. Artificial Life, and evolving strategies. Simulating competing populations and co-evolution.
  15. Evolving the behavior of animats (computer animation critters).
  16. Parallel processing in EC: when to use memes.
  17. Alternative representations in EC. GP using graphs, machine code programs, etc.

Grading Policy:

Portion of total grade: programs and projects (excluding the final project) 30%, midterm exam 20%, final exam 25%, final project 25%.

Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted a full grade penalty for each class period (rounded up) that the assignment is late. E.g., if an assignment is worthy of an 'A', but is turned in after the due date, but up to an including the start of the following class, it will be marked as a 'B'.

Attendance Policy: We're all grown-ups: when and whether you attend class is up to you. However, missed exams shall only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day. Also, missing a number of classes will adversely affect the "class participation" component of your course grade.

Assignments: There will be several assignments, mostly involving pre-existing EC systems, written in Java or C++. These assignments will typically be experimental: students will design and implement a simple experiment, and present their results and conclusions in a short written report (a few pages each). I'm not looking for poetry here: I just need to be able to understand your experimental design and results. The final project will be multi-staged: students will submit a written project design, which I will have to approve, possibly with changes. This document will serve as the formal specifications for the final project. The grade for the project will be proportional to the degree to which it satisifies these specfications.

Cheating policy:

Students are required to attend to the policy on academic dishonesty outlined in the EMU student handbook. In addition, collaboration among students in solving programming and homework assignments is forbidden. If I receive programs or homework assignments that are substantially equivalent, or which are not the original work of the student submitting the material, I will not hesitate to punish all involved parties to the fullest extent, up to and including assignment of a failing grade for the course, and referral to the Office of Judicial Student Services for possible punitive action at the University level, which may include expulsion from the University. In addition, the University and the computer science department maintain policies regarding proper behavior on its computer systems. Failure to adhere to these policies can result in loss of computer privileges, and possible legal action.
 

Calendar:
 

Week # Text Projects due
1 Chapter —Machine Learning  
2 Chapter 2—Basic biological genetics
3 Chapter 3—Combinatorics of EC HW#1 ECJ
4 Koza ch3 (course pack)—Intro to GA  
5 Koza ch4 (pack)—Intro to GP HW#2, Gazelles
6 Chapter 4—GP as EC  
7 Chapter 5—GP fitness functions, fine-tuning HW#3, Lions
8 Koza ch7 (pack)—Schema Theorem applied to GP midterm
9 Chapter 6—GP crossover Select Final Project
10 Chapter 7 & 8—Introns & bloat Design for Final
11 Chapter 9—Different flavors of GP (graph & tree based)  
12 Chapter 12—Applications of GP  
13 Selected conference papers (pack)  
14 Selected conference papers (pack) Final Project
15  Selected conference papers (pack) Final Exam