CS472 and CS572 - Evolutionary Computation (Fall 2008)

"We will now discuss, in little more detail, the struggle for existence." --Charles Darwin, "The Origin of Species"

Class News

Nov 4
To let me give yet another talk and catch up on some grant stuff There is no class today Tuesday Nov 11.
NOTE: I will be in my office available at 1pm to discuss the Santa Fe Trail problem. Drop by if you are working on it and want to talk.

Nov 4
There is no class today Tuesday Nov 4. This is made possible by being a lecture ahead anyway. Use this time to go vote if you haven't. Have a great day.

Nov 2
Assignment 4 has been posted below.

Oct 31

ewltkoudpicmnagbvfqxsryhjz e237.code    9  7  8 14 25  6  5
ewltkoudpicmnagbvfqxsryhjz e237.code   23 23  7 26 25 24 24
ewltkoudpicmnagbvfqxsryhjz e237.code    6  6  7 25 25  6 18
ewltkoudpicmnagbvfqxsryhjz e237.code    7  7 11 23 26 17 24
ukjhsogdlbatfqepxzmwvrniyc i603.code    5  4  4  8  -  5  9
kqhiacumtewxpfvdrzyjbngslo k395.code    7 10  9 23  -  8 11
axoievjhyfmlutrgnbqsckdwpz m369.code    4  7  9 21  - 10  3
hrotiklqgnsypujwbfaemxcdvz n2976.code   0  0  0  0  -  0  0
osjpedqyvkrtznbhcgalmuifxw p1209.code   2  2  0 13  -  0  0
qkvtearxjoupwmzyfncgshbild u659.code    0  2  4  5  -  0  2
bmdrkyanlowfqjgxhetvcszupi tt1831.code  2  2  2 20  -  7  2
tagzjsmnvrxlkiuwbdfqypehoc vv595.code   8  9  9 15  -  8  9
abcdefghijklmnopqrstuvwxyz w1126.code   2  2  2  2  -  2  2

Oct 30
Here is a compilation of the code breaking runs.

KEY                        CODE           VARIOUS STUDENTS 
ewltkoudpicmnagbvfqxsryhjz e237.code     7  8  14 22  13  25
ewltkoudpicmnagbvfqxsryhjz e237.code    23  7  26  6  24  25
ewltkoudpicmnagbvfqxsryhjz e237.code     6  7  25 16  24  25
ewltkoudpicmnagbvfqxsryhjz e237.code     7 11  23  5  15  26
ukjhsogdlbatfqepxzmwvrniyc i603.code     4  4   8  5   7   -
kqhiacumtewxpfvdrzyjbngslo k395.code    10  9  23 17  10   -
axoievjhyfmlutrgnbqsckdwpz m369.code     7  9  21  9   8   -
hrotiklqgnsypujwbfaemxcdvz n2976.code    0  0   0  0   3   -
osjpedqyvkrtznbhcgalmuifxw p1209.code    2  0  13  -   0   -
qkvtearxjoupwmzyfncgshbild u659.code     2  4   5  -   2   -
bmdrkyanlowfqjgxhetvcszupi tt1831.code   2  2  20  -   2   -
tagzjsmnvrxlkiuwbdfqypehoc vv595.code    9  9  15  -  10   -
abcdefghijklmnopqrstuvwxyz w1126.code    2  2   2  -   4   -
My results are the in first column.

Oct 21
Since the test script just went up I am delaying the due date for assignment 3 to allow plenty of time for getting feedback from the script. I am hoping for great programs that can really smash these codes!

Oct 21
The test script is up for assignment 3.

Oct 7
Assignment 3 has been posted below.

Sep 25
Assignment 2 has been posted below.

Sep 23
Shifting a bit string that is 32 bit by 32 or 64 bits by 64 is not defined and in fact does different things on the intel and powerpc with g++ breaking deGray as was described in class. So I fixed that and made it so that rand.h would compile on either OSX 10.4 or the CS dept Linux. Here is the tar of some useful procedures .

Sep 22
The ACM will be hosting its first coding competition meeting for the year on Wednesday September 24 at 7pm in JEB 126. We will be discussing the UI ACM's new coding competition server, how to use the competition client, and the basics for competing. Everyone is welcome.

Sep 19
I would prefer the answer be printed out in this order:

  1. The number of fitness evaluations when it found the best it found in the number of evaluations allowed.
  2. The number of improving moves made.
  3. The best x and y that gave that fitness.
  4. The best fitness found.
But at this point I will take them in either order.

Sep 17
The test script is up in Beta form. Give it a try and report any problems.

Sep 17
Note that to compile rand.cpp on wormulon you need to have the following includes active in your rand.h:
#include <time.h>
#include <unistd.h>

Sep 16
Here is a more up-to-date version of the tar of some possibly useful code (like below). The old tar had two makefiles and this has a newer version of the bitutils in C.

Sep 15
Due to the powerfailure and some trouble with moving to the new system configuration I will delay the homework due date until 5pm Friday.

Sep 13
The server was down from the night of Sep 12 to afternoon of Sep 13 because of a planned poweroutage for the remodel of JEB.

Sep 11
The first ACM (student computer science club) meeting for the semester will be held Wednesday September 17 at 7pm in JEB 126. The ACM will also be announcing its first coding competition which will be sometime during the week of the 22nd. Join the fun and meet people with similar interests.

Sep 7
Assignment 1 has been posted below.

Aug 28
We are moving to a new room: TLC 144!

Aug 27
By popular demand I am opening up most of the links on the page except for some assignment specific pages and the programming assignments themselves.

Aug 25
Welcome to Evolutionary Computation! Be sure to read the material in the Service Links section below. You are responsible for everything that appears on the class web pages. Many links will be dead links until we talk about them in class so I can update them for each semester. The syllabus is only an estimate of what will happen. The class discussions and pacing for each class changes the schedule ever semester. Have fun!


Class Description

An introduction to a wide variety of robust optimization algorithms based on the theme of nature inspired optimization techniques. This is a hands on class. There will be lots of programming of a variety of algorithms. Those taking the course as 572 will be required to do a project and do a short presentation on the project to the class. Video students will be required to write up a web presentation in place of the in class presentation. GAs, GPs, ESs, EPs, EDAs, etc will be covered. Theory including representations, landscapes, code bloat, problem structure will be discussed. We will play with some special techniques such as preditor/prey. We will try to have fun. :-) The ad for the course.

There are no requirements for the class but it is a senior course. The student should be fluent in C or C++ and understand basic analysis of algorithms and basic college math.

Text: Introduction to Evolutionary Computation
by A. E. Eiben and J. E. Smith
Time: TTh 12:30-1:45
Location: TLC 144

Class Goals

  1. To learn the basics of evolution as an black box optimization strategy for a wide variety of problems.
  2. To learn by experience several evolutionary computation techniques including GA, GP, ES, and others.
  3. To understand in more detail the effects of representation, fitness, selective pressure, population structure, on optimization
  4. To explore various interesting techniques from nature such as preditor/prey.
  5. Taken as a graduate course: to produce a publication quality paper on a project of your choosing.
  6. Have fun evolving solutions. It is way too cool!

CS472 Syllabus by Week

This schedule will be built on the fly. The book will be used as an outline for the course but we will go beyond the book to explore some other popular and fun topics in the area.
Wk#

In-Class Week

Topics/Links Assignments Comments
1Aug 25 Evolution as search and the strength of evolution as a technique    
2Sep 1 The nature and relationship of landscapes, operators, representations. Intro to local search Assignment 1  
3Sep 8 Simulated annealing, memory and taboo search    
4Sep 15 landscapes and representation    
5Sep 22 xover and other components of GAs, xover operators for permutations Assignment 2  
6Sep 29 epistasis, schema, schema theory, implicit parallelism    
7Oct 6 Prepare for Assignment 3 Assignment 3  
8Oct 13 Evolution Stratagies    
9Oct 20 Genetic programming    
10Oct 27 Code bloat and hints on the cipher problem    
11Nov 3 Other kinds of GP and prep for assignment 4 Assignment 4  
12Nov 10      
13Nov 17      
xxNov 24     NO CLASSES THIS WEEK! Fall Break
14Dec 1      
15Dec 8 No exams this week    
16Dec 15 Final is   Final Exam Week

References and Resources

Class Services

Class Documentation

Cool Links

These links are provided to entertaining and informative. You don't need to study them unless it is suggested that you do so. These links are not guaranteed to accurate, contain information that is safe to download, or not offend your morals, good sense or good taste, or to give sound financial advice. Some small parts may pose a choking hazzard for children...