COSC 6367 --- Evolutionary Programming ( Dr. Eick )


The Joy of Living - Max Ernst (1936)

2012 Course Summary

Evolutionary Computing studies a wide range of problem-solving techniques which are based on principles of biological evolution, such as natural selection and genetic inheritance. These techniques are currently widely applied to a variety of problems, ranging from practical applications in industry and commerce to leading-edge scientific research.

The course will be giving an introduction to evolutionary computing and discuss the application of evolutionary computing to search, optimization, machine learning, design, simulation of evolution in biological and other systems, and art. It will also provide a sound introduction to related fields, namely search, numerical optimization, soft computing and reinforcement learning. Moreover, we will take a look at approaches which try to understand what rules guide the evolution of complex systems in general, such as the evolution of cities. Finally, Artificial Life which centers on the study of computer systems which exhibit charactistics of living organisms will also briefly covered.

The course is quite "hands-on" and project-oriented and with less emphasis on exams; there will be will be a final exam and two review-style quizes. As the course covers a smaller field more time will be allocated to explaining principles and applications of evolutionary computing in more depth, and in assisting students with the course projects. There will be 3 course projects, including a group project which count 51% towards the course grade. The course exam and the two quizzes ount 47% towards the course grade, and 2% are allocated to attendance and extra credit. Overall, the workload for the course will be less than for the Data Mining course I teach every fall semester (about 75%, is my best guess).

Parts of the course webpage still show the content of the last teaching of the course in 2010; it will be updated as we move along teaching the course.

News COSC 6367

Course Information Spring 2012

Syllabus: Link to Spring 2012 COSC 6367 Syllabus
Prerequisites: the course is more or less self-contained, students should have sound programming skills; students can use programming languages of their own preferences in course project.
Focus: Theory and application of evolutionary programming and other related areas in evolutionary and natural computation centering on genetic algorithms and programming, evolution strategies, classifier systems, artificial life, and other models that rely on evolutionary principles. Students will perform course projects that apply the discussed techniques to optimization problems, to develop adaptive systems, to the simulation of biological and cultural systems, and to producing computer art.
Teaching Philosophy: The course will be very project oriented; you will develop medium-sized software systems that employ evolutionary computing paradigms in 3 course projects. Alternatively, you can choose to investigate a subject and give a oral presentation (+ report or webpage) as your third project. In addition to regular lectures there will be a lot of project related discussions during the lectures.
Textbook: A.E Eiben and J.E. Smith, Introduction to Evolutionary Computing, Springer, second edition or later, 2007 or later (Eiben Textbook Transparencies)

The 6367 Team

Instructor: Dr. Christoph F. Eick
Office hours: TU 2-3:15p and TH 1-1:45p in 589 PGH
e-mail: ceick@uh.edu
TA: Zechun Cao
Office hours: TU/TH 9:30-10:30a (in 313 PGH)
TA Website: http://www2.cs.uh.edu/~zechun_cao/EP12S.html
TA Email: zechun.eps12@gmail.com
6367 Google News Group

Tentative 2012 Course Schedule

Quiz1: Th., March 8
Quiz2: Th. April 5
Final Exam: Tu., May 8, 11a(!)-1:10p
Cancelled Lecture: Th., April 12 (??)
Makeup Lecture: Tu., May 1, 11:30a-1p (??)

2012 Class Transparencies

Course Information (
Part1,Part2)
Knapsack Problem (will be used as an example for how EC works).
Obitko.com Tutorial (will be used to demo some EC systems)
Example Applying EC to the Travelling Salesman Problem
Eiben Chapter1
Eiben Chapter2
Student February 2010 Questions
Eiben Chapter3 Genetic Algorithms
Overview ES
Eiben Chapter4 Evolution Strategies
Eick on Using EC for Transportation Problems
Project1-07
On Numerical Optimization Problems
Eiben Chapter6 Genetic Programming
2003 Koza & Poly Genetic Programming Tutorial
A Field Guide to Genetic Programming
Review of Popular Search Techniques (Search1, Search2, Search3, Search4)
Simulating, Modeling, and Understanding Evolution of Complex Systems (new topic; no transparencies yet!)
Dr. Eick's Introduction to Machine Learning with EC
XCS Tutorial by Stewart Wilson (in ps-format)
Eiben Chapter8 Parameter Control
Eiben Chapter9 (Spatial Considerations)
Eiben Chapter10 (Memetic Alg.)
Bull Paper Review
Introduction to Reinforcement Learning
Project3-10
Learning to Predict and Classify ( added on April 18, 2010)
Introduction to Artificial Life
Eiben Chapter11 Theoretical Foundation of EC
Brief Introduction to Soft Computing (only the first 11 transparencies will be used)
Will Brown's Presentation on Useful AI Techniques
Eiben Chapter13 (Computer Art)
Teaching Material of the Spring 2001 Teaching of Evolutionary Programming

2012 Course Projects

First Draft of Project1

Useful Links Spring 2010

  • Bull's "Introduction to Learning Classfier Systems; Butz' XCS Software
  • Hitchhiker's Guide to Evolutionary Computing
  • Brig Klyce's "Computer Models of Evolution" Webside (gives a good introduction to the field of Artificial Life and contains a lot of links to other Artificial Life Websites)
  • Santa Fe Institute Webpage
  • Tierra Homepage (The Tierra C source code creates a virtual computer and its Darwinian operating system, whose architecture has been designed in such a way that the executable machine codes are evolvable).
  • Biologically Insprired Robotics Network (Biro-net aims to understand the underlying mechanisms that allow natural and robotic agents to adapt and survive in uncertain and dynamic environments).
  • DEMO (Dynamic and Evolutionary Machine Organization)
  • Learning Classifier Systems Web (LCSWEB ia a good source concerning what is going on in classifier systems; see also lcsg-website).
  • On Genetic Drift
  • Reinforcement Learning Repository at UM Amherst (reinforcement learning and classifier systems have a lot in common)
  • Links---donated by Justin Thomas---about an evolutionary computing success story at NASA AMES Research Center in 2004: genetic algorithms were used to create antenna designs for new experimental satellites; by the way, the evolved antenna did really fly in space! (Link1, Link2, Video).
  • Epimorph Virtual Creatures(Video, general information)---donated by Paul Ledbetter III.
  • Image Creation through Cellular Automata "Ying Yang Fire"

    Previous Quizzes and Examps

    Quiz1 2008 (Answer Sheet for Quiz1)
    Quiz2 2008 (Answer Sheet for Quiz2)
    Quiz1 2007 (Answer Sheet for Quiz1)
    Quiz2 2007 (Answer Sheet for Quiz2)
    2007 Final Exam
    2008 Final Exam

    EC Software

    Jing Zhang's Survey EC Programming Environments
    Java Genetic Algorithm Library---you are allowed to use this library or any other library for the course programming projects---donated by Abraham Bagherjeiran.
    ECJ---a Java-based EC Research systems (GMU)

    Discipulus Genetic-Programming Software
    Sipper's Genetic Programming for Games
    LISP-Code of a "simple" Symbolic Regression System that employs Genetic Programming. To run the system save the file as gp.l, login into a Sun-workstation and type:
    akcl
    (load "gp.l")
    (run-gp 30 #'eval1)
    (bye)

    Journals, Conferences, and Books

    Evolutionary Computation Journal

    Alternative Project3 Presenations/Demos

    Feb. 13, 2007: Survey on EC Programming Environments (presenters will get a 3-day extension for Project1)
    Feb. 22, 2007: Transportation Problems: History, Approaches, Software, and Applications (presenter will get 5 day extension for Project1)
    March 29, 2007: Classifier Systems --- XCS and Beyond (presenters will receive a 5 day extension for Project2)
    April 5, 2007: Bucket Brigade Algorithms --- History and New Developments

    2007 Projects

    Project1: Project1 Specification, Supplement to the Specification of Project1. Moreover, Paul Ledbetter used an optimization package to obtain the following "optimal" solutions for cost-function1 --- the linear cost function. Solutions for the Quadratic Transporatation Problem (generated by Justin Thomas).
    Project2: Specification
    Project3: Specification

    2010 Projects

    Project1: Solving Balanced Transportation Problems (What to submit no later than March 6, 11p to Chun-sheng)
    Project2: Survey on a Subfield of Evolutionary Computing (group project; each group will investigate a different theme)
    Project3: Learning to Predict with Genetic Programming

    2010 Homeworks and Reading Assignments

    Feb. 1: Read Project1 Specification; checkout http://www.obitko.com/tutorials/genetic-algorithms/ (prepare questions concerning what you do not understand; each student should have at least one question unless you used evolutionary computing before)

    Feb. 8:

    2008 Projects

    Project1: Travelling Salesman
    Project1 Specification
    TSP Benchmark

    Project2: Developing Adaptive Systems

    Project3 2008

    last updated: February 8, 2011




    created by YingYangFire