CS 540, Spring 2008: Assignment 2
Scheduling and Genetic Algorithms

Due Friday March 28 by 9:00AM

For this assignment, you are required to implement a Genetic Algorithm to solve the jobshop scheduling problems from Assignment 1.

As before, you have considerable latitude in your selection of language and algorithm. For language, if you wish to choose a language other than C, C++, Java or Lisp, you must obtain instructor's permission. Whatever you hand in must run on department lab linux machines, which is where I will be testing your code.

The input and output format is identical to what was spec'ed for the search code. As are the requirements for what to turn in to run your code (i.e., readme, single file for electronic submission, etc.)

Genetic Algorithm

Again, you have a fair amount of latitude in the design of your GA, e.g., recombination operators, selection... The primary restriction is that you must follow the Canonical GA framework described in Whitley's tutorial and part of your design must be motivated by an approach described in the literature. Also, it must be your own implementation; you cannot, for example, download and use Genitor.

Changes or Clarifications from A1

What to hand in

You can submit almost everything electronically, but I require your question answers in hardcopy. If submitting more than one file electronically, email a tar or zip file.
  1. Output from six runs as in assignment 1, one for each problem and objective function. (If submitted electronically, then make sure the files have apparent file names and are commented to indicate what was run.)
  2. Written answers to the following three questions:
    1. Describe your GA implementation, motivating its design and citing any relevant literature or pilot experiments that you did.
    2. Consider your search solution. Did you think the GA or the search would perform better? How did actual performance compare to your expectations? Where possible, explain why and motivate your points with data, explanations of your intuition and/or references to the literature.
    3. Read some published research paper on a GA applied to scheduling (any one of your choice). Describe what you learned that helps explain your solution and your results.
  3. One or more files containing the source code. You should submit this via email to howe@cs.colostate.edu by the due date/time for the assignment. Source code should put output in a file whose name is given as an argument.
  4. A README file describing how to compile and run your code and how to set the parameters, if you have any. Make sure it includes any path variables that must be set; assume it will be run in as vanilla an account as possible. You will lose points if I cannot simply follow the instructions to run your code.
  5. And if appropriate, a makefile for compiling your code and/or a script file for running it.