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 programming class. All assignments will be programmed in C++ for speed and uniformity of grading. It is expected that you are a skilled C++ programmer and understand UNIX utilities such as make. GAs, GPs, ESs, EPs, EDAs, etc will be covered. Theory including representations, landscapes, epistasis, code bloat, diversity, and problem structure will be discussed. We will play with some special techniques such as predator/prey. Most of all, we will try to have fun. :-)
Time: 9:30-10:30 MWFLocation: Live at the time above via Zoom. See BBLearn for class for zoom id.
Tests: None
Final: None
Coding: Lots of C++, plus UNIX skills.
Covid-19 Adjustments
|
Textbook:
Introduction to Evolutionary Computation, 2nd Ed. by A. E. Eiben and J. E. Smith, ISBN: 978-3662448731 |
Sample Syllabus (WARNING: NOT UP-TO-DATE)
This syllabus is an estimate of what we might cover this semester. The class varies from semester to semester to reflect new and interesting topics.
Wk# | Monday |
Topics/Links | Assignments | Comments | |
---|---|---|---|---|---|
1 | Aug 24 | Evolution as search and the strength of evolution as a technique. When can you apply evolution? Evolution as a general framework. | Read Chapter 1 | ||
2 | Aug 31 | The nature and relationship of landscapes, operators, representations. Intro to local search | Assignment 1 [pdf] | ||
3 | Sep 7 | Simulated annealing, memory and taboo search | Read Chapter 2 | NO CLASS ON MONDAY - LABOR DAY | |
4 | Sep 14 | Landscapes and representation, start GAs | |||
5 | Sep 21 | Genetic Algorithms as population based search | Assignment 2 [pdf], Read Chapter 3 | ||
6 | Sep 28 | xover and other components of GAs | Assignment 3 [pdf] | ||
7 | Oct 5 | GAs for permutation problems, xover operators for permutations | |||
8 | Oct 12 | Epistasis, schema, schema theory, implicit parallelism | |||
9 | Oct 19 | Evolution Strategies, diversity and population structure | Assignment 4 [pdf]Read Chapter 4 | ||
10 | Oct 26 | Genetic programming in general, tree based GP | Read Chapter 5 & 6 | ||
11 | Nov 2 | GP operators, Code bloat and hints on the cipher problem | |||
12 | Nov 9 | Cartesian Genetic Programming | |||
13 | Nov 16 | Multiobjective and Multimodal Optimization | |||
14 | Nov 23 | THANKSGIVING BREAK! | NO CLASS THIS WEEK | ||
15 | Nov 30 | Ant Colony Optimization, Estimation of Distribution Algorithms, Epistasis, What if you don't have a fitness function, Prisoner's Dilemma | Extra Credit Assignment 5 [pdf], Read Chapter 9 | ||
16 | Dec 7 | ||||
17 | Dec 14 | FINALS WEEK (NO FINAL FOR US) |
References and Resources
Problem Resources General Resources General EC References- A star field for use as a fitness landscape
- Some Example Fitness Landscapes
- A tutorial on bitwise operations in C and C++
- mapFunctions.cpp and
- mapFunctions.h for mapping a range of numbers to another range
- Fast portable 64 bit random number generators (read the header file first): rand.tar or rand.zip portable random number generator
- A basic tree library for GP with debugging
- Example code for random permutation by shuffling
- A review of the basic ant colony optimization techniques
- A paper that describes the Santafe Ant Problem
- The path of particles
- Highest mountain peaks
- Karl Sims virtual creatures page
- AMS math guide
- LaTeX for Computer Scientists
- The Giant Book of Symbols
- Cool tool that lets you draw a latex symbol and
it will do pattern matching to look it up. Try it! Don't always pick the first symbol it picks.
- The Source for all things TeX and LaTeX
- examples-tex.tar are the notes I used when I talked about LaTeX in one of my other classes
- A weird LaTeX example just doing lots of things. It requires the files: latexGraph.png, latexHyenaBib.bib, latexStripedHyena.jpg
Services
- Homework submission page. This our homework submission page. This is not to be confused with any other submission tools used in the CS department.
- Submitting homework without a browser
- Computer Science IT FAQ including information on logging onto class machines.
- The CS472/572 student machine is called cs-475.cs.uidaho.edu. That is not a typo. We are just reusing the machine from CS475. If you are off campus you can access this machine only by first "coming on campus" with VPN. For details see CS IT FAQ