foundations of computational agents
While it might seem that the main problem is how to optimize and how to solve a constraint problem, a perhaps more important problem is to decide on what to optimize. Consider the exam scheduling problem of Example 4.29. A bad exam schedule can affect a student’s performance, which could potentially affect whether they get into the career they want if they are on the borderline. The schedule found depends on the soft constraints, and their costs.
Students in a first-year class were asked their opinions on a perfect exam schedule, and they generally wanted one or two days off between each exam, no early morning exams, no evening exams, the first exam should be early in the exam period, and the last exam as early in the exam period as possible. Not all students can have such a schedule. Making a schedule better for some people may make it worse for others.
When the schedule was created by someone in an office (presumably by making adjustments to the previous schedule), it was not open to inspection. One of the hopes is that by making the preference function explicit, it can be criticized, and improved.
Constraint reasoning techniques are used to solve logistic problems of significant economic importance. Consider the routing problem of scheduling multiple vehicles to various customer locations where the items, of varying size, being transported must be picked up and delivered within given time windows. The task is to minimize the number of vehicles required by the schedule. Bent and Van Hentenryck [2004] show that a two-stage algorithm using simulated annealing followed by neighborhood search with branch and bound achieves excellent performance on standard benchmarks.