CS 371
Introduction to Artificial Intelligence
Homework #3

Due: Tuesday 9/19
  1. Iterative Improvement: For this assignment, your challenge problem will be to apply iterative improvement techniques to the constraint optimization problem of class scheduling.  You will first need to download the class definitions in folder csp of the class code repository.  HTML browsable documentation is in the doc folder of csp.

  2. new ClassSchedulingProblem(240, 5, 100, 12, 10.0) creates a new class scheduling problem with 240 students, each taking 5 classes of 100 offered, with classes being assign to one of 12 time slots.  The first class probabilistically will have 10.0 times the enrollment of the last class.  Students, classes, and time slots are represented as integers starting with zero.
    Your task is to implement two approaches to this problem from the choices below.  In addition, a steepest ascent approach is included with assignment code.  Compare each algorithm for average case behavior on randomly generated problems with the parameters given above. At least one of your two approaches must have a (*) to the right of its name: Required for grading:
  3. Describe the formal definition of a Constraint Satisfaction Problem (CSP) as described in your readings.  How does a constraint optimization problem such as our Class Scheduling Problem differ from a CSP such as a map coloring problem?
  4. A CSP can be thought of as a search problem.  How are CSPs different from a search problem such as TripleCross?  (Hint: What are we seeking to have the search show us for each problem?  Generalize the difference in abstract terms.)
  5. What is node consistency?  What is arc consistency?  How and why would you enforce such consistency in solving a CSP?



(c) 2000 Todd Neller