Preference-Based Problem Solving for Constraint Programming

Combinatorial problems such as scheduling, resource allocation, and configuration may involve many attributes that can be subject of user preferences. Traditional optimization approaches compile those preferences into a single utility function and use it as the optimization objective when solving the problem, but neither explain why the resulting solution satisfies the original preferences, nor indicate the trade-offs made during problem solving. We argue that the whole problem solving process becomes more transparent and controllable for the user if it is based on the original preferences. We will use the original preferences to control this process and to produce explanations of optimality of the resulting solution. Based on this explanation, the user can refine the preference model, thus gaining full control over the problem solver.