Improving Constraint Modelling Using Visualization
Résumé
This talk gives an overview of CP-Viz, a constraint solver independent visualization toolkit for understanding search trees, variables and global constraints of modern constraint applications. We show how visualization can play a central role in developing, analyzing and tuning constraint models. Together with the declarative problem modelling framework of CP, and the specialized propagation methods inside global constraints it is a key element for rapid application development with constraints. This is demonstrated on three practical examples. In the rst example we compare di erent search strategies for rectangle packing problems, which require millions of search steps. We show that, even when a detailed search tree visualization is no longer possible, visualization can still extract key information explaining the dirences between the search strategies. In the second example we consider a sports scheduling example (suggested by R. Finkel) and show how missing redundant constraints are found with the help of the visualization tools. The last example given is a constraint optimization problem, minizing the makespan in a scheduling problem with cumulative resources. The problem was introduced by R. Nieuwenhuis, based on a real-life, industrial application. The visualization explains a problem with the chosen search strategy caused by missing propagation in the implementation of the cumulative constraint of ECLiPSe. The idea used was generalized in CP-Viz to allow systematic checking of propagation invariants at each step of the the search process. CP-Viz is a post-mortem visualization tool which collects light-weight execution traces in a generic XML format based on the global constraint catalog [1]. This trace log is then processed by an extensible Java program which produces vector based SVG output for interactive use, but which can also easily be integrated in reports and presentation slides. CP-Viz was initially developed for an ELearning course [2] for ECLiPSe [3], but has since been adapted to SICStus Prolog, Choco and the proposed JSR-331 (Java Constraint API, http://jcp.org/en/ jsr/detail?id=331) reference implementation. CPViz is being developed under an open-source Modzilla licence, more information can be found at http: //4c.ucc.ie/~hsimonis/cpviz.pdf.
Domaines
Langage de programmation [cs.PL]
Origine : Fichiers produits par l'(les) auteur(s)