Combinatorial problems can be efficiently tackled with constraint programming systems. The main tasks of the development of a
constraint-based application are modeling the problem at hand and
subsequently implementing that model. Typically, erroneous behavior
of a constraint-based application is caused by either the model or the
implementation (or both of them). Current constraint programming
systems provide limited debugging support for modeling and
implementing a problem.
This paper proposes the Constraint Investigator, an interactive tool
for debugging the model and the implementation of a constraint-based
application. In particular, the Investigator is targeted at problems
like wrong, void, or partial solutions. A graph metaphor is used to
reflect the constraints in the solver and to present them to the user.
The paper shows that this metaphor is intuitive and that it scales up
to real-life problem sizes.
The Constraint Investigator has been implemented in Mozart Oz. It
complements other constraint debugging tools as an interactive search
tree visualizer, forming the base for an integrated constraint
debugging environment.