PSU CS410/510: Search and Scheduling
Homework 3
``Intelligent'' Shift Packing

This homework is the obvious continuation of Homework 2 on shift packing.

Assignment

  1. Construct and document at least two different value-ordering heuristics for the schedule packing problem of Homework 2.

    Using these heuristics, construct an LDS or DDS solver for the problem.

    Evaluate the performance of this solver as with Homework 2 (using this instance data). Does ``intelligent'' search help?

  2. Construct a Min-Conflicts local-search solver in the style of Johnston and Minton [mcnfl]. Think carefully about what Min-Conflicts means before proceeding, and pay close attention to the relevant parts of the paper. (Note, however, that Johnston and Minton do not appear to discuss any method of injecting noise, or any restart schedule!)

    Questions to think about:

    1. How do you construct the initial assignment?
    2. How do you inject ``noise'' into this search?
    3. How much noise seems to work well?
    4. How often should you restart the search?

    Again, evaluate the solver. Does it work better or worse than your systematic solver?

  3. Instance (d) is the same job data as instance (c) of Homework 2, but with fewer, larger shifts. Specifically, shifts-9-5400.dat contains 9 shifts of size 600.

    Try your Homework 3 code on this new instance. Do your techniques work well in this somewhat different domain?

Turn in answers to questions, source code, and output of runs. Plain old ASCII text strongly preferred. tar or zip archives packed with uuencode or MIME encoding are probably your best bet. E-mail everything to me at <bart@cs.pdx.edu> on or before Wednesday, February 23. Please include "CS510SS Homework 3" in the subject line of your e-mail.


Author: Bart Massey <bart@cs.pdx.edu>
Last Updated: 2000/2/18