
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
- To expedite grading, you must name your submission file
mylastname.{zip,tar,gzip}.. When the files are extracted, the
object file to be called should be no more than one directory down
from the tar or whatever file.
- I will test your code on problems not necessarily from the
OR Library.
- Your question answers should:
- be at least a half page in length (without using ridiculous
spacing),
- have been proof-read and run through a spell checker
- reflect some thought beyond what we have discussed in class
- include details as necessary to understand your implementation
without looking at code
- support your points with evidence wherever possible
- use some standard bibliographic format for references
- I am willing to run your solutions on my verifier no more than 3
times prior to submission.
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.
- 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.)
- Written answers to the following three questions:
- Describe your GA implementation, motivating its design
and citing any relevant literature or
pilot experiments that you did.
- 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.
- 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.
- 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.
- 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.
- And if appropriate, a makefile for compiling your code and/or a
script file for running it.