Minion: A Fast Scalable Constraint Solver

We present Minion, a new constraint solver. Empirical results on standard benchmarks show orders of magnitude performance gains over state-of-the-art constraint toolkits. These gains increase with problem size --MINION delivers scalable constraint solving. MINION is a general-purpose constraint solver, with an expressive input language based on the common constraint modelling device of matrix models. Focussing on matrix models supports a highly-optimised implementation, exploiting the properties of modern processors. This contrasts with current constraint toolkits, which, in order to provide ever more modelling and solving options, have become progressively more complex at the cost of both performance and usability. MINION is a black box from the user point of view, deliberately providing few options. This, combined with its raw speed, makes MINION a substantial step towards Puget's 'Model and Run' constraint solving paradigm.

[1]  Victor W. Marek,et al.  Constraint Lingo: towards high‐level constraint programming , 2004, Softw. Pract. Exp..

[2]  Ian Miguel,et al.  The Rules of Constraint Modelling , 2005, IJCAI.

[3]  Ian P. Gent,et al.  Watched Literals for Constraint Propagation in Minion , 2006, CP.

[4]  Toby Walsh,et al.  Matrix modelling: Exploiting common patterns in constraint programming , 2002 .

[5]  Christian Schulte,et al.  Views and Iterators for Generic Constraint Implementations , 2005, CSCLP.

[6]  Jean-François Puget,et al.  Constraint Programming Next Challenge: Simplicity of Use , 2004, CP.

[7]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[8]  Walther Dieckmann 20. J. F. , 1989 .

[9]  A. Tanenbaum Computer recreations , 1973 .

[10]  Brahim Hnich,et al.  Function Variables for Constraint Programming , 2003 .

[11]  Pierre Flener,et al.  Introducing esra, a Relational Language for Modelling Combinatorial Problems , 2003, LOPSTR.

[12]  Alan M. Frisch,et al.  Symmetry and Implied Constraints in the Steel Mill Slab Design Problem , 2001 .

[13]  Pierre Flener,et al.  Introducing ESRA, a Relational Language for Modelling Combinatorial Problems , 2003, CP.

[14]  Pascal Van Hentenryck The OPL optimization programming language , 1999 .

[15]  Luigi Palopoli,et al.  NP-SPEC: an executable specification language for solving all problems in NP , 1999, Comput. Lang..

[16]  Jimmy Ho-Man Lee,et al.  Increasing Constraint Propagation by Redundant Modeling: an Experience Report , 1999, Constraints.

[17]  Donald E. Knuth,et al.  Dancing links , 2000, cs/0011047.

[18]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[19]  Jean-Charles Régin,et al.  A Filtering Algorithm for Constraints of Difference in CSPs , 1994, AAAI.

[20]  Toby Walsh,et al.  Global Constraints for Lexicographic Orderings , 2002, CP.

[21]  Sharad Malik,et al.  Cache Performance of SAT Solvers: a Case Study for Efficient Implementation of Algorithms , 2003, SAT.

[22]  Patrick Prosser,et al.  HYBRID ALGORITHMS FOR THE CONSTRAINT SATISFACTION PROBLEM , 1993, Comput. Intell..

[23]  Ian Miguel,et al.  Modelling and solving English Peg Solitaire , 2006, Comput. Oper. Res..

[24]  Rina Dechter,et al.  Constraint Processing , 1995, Lecture Notes in Computer Science.

[25]  Christopher Jefferson,et al.  Representations of Sets and Multisets in Constraint Programming , 2005 .