Modelling with Option Types in MiniZinc

Option types are a powerful abstraction that allows the concise modelling of combinatorial problems where some decisions are relevant only if other decisions are made. They have a wide variety of uses: for example in modelling optional tasks in scheduling, or exceptions to a usual rule. Option types represent objects which may or may not exist in the constraint problem being modelled, and can take an ordinary value or a special value ⊤ indicating they are absent. The key property of variables of option types is that if they take the value ⊤ then the constraints they appear in should act as if the variable was not in the original definition. In this paper, we explore the different ways that basic constraints can be extended to handle option types, and we show that extensions of global constraints to option types cover existing and common variants of these global constraints. We demonstrate how we have added option types to the constraint modelling language MiniZinc. Constraints over variables of option types can either be handled by transformation into regular variables without extending the requirements on underlying solvers, or they can be passed directly to solvers that support them natively.

[1]  Philippe Laborie,et al.  Reasoning with Conditional Time-Intervals , 2008, FLAIRS.

[2]  Petr Vilím,et al.  Reasoning with Conditional Time-Intervals. Part II: An Algebraical Model for Resources , 2009, FLAIRS.

[3]  Peter J. Stuckey,et al.  Scheduling Optional Tasks with Explanation , 2013, CP.

[4]  Peter J. Stuckey,et al.  MiniZinc: Towards a Standard CP Modelling Language , 2007, CP.

[5]  Peter J. Stuckey,et al.  The Proper Treatment of Undefinedness in Constraint Languages , 2009, CP.

[6]  Carlos Castro,et al.  Variable and Value Ordering When Solving Balanced Academic Curriculum Problems , 2001, ArXiv.

[7]  Eugene C. Freuder,et al.  Greater Efficiency for Conditional Constraint Satisfaction , 2003, CP.

[8]  Warwick Harvey,et al.  Essence: A constraint language for specifying combinatorial problems , 2007, Constraints.

[9]  Peter J. Stuckey,et al.  Propagation via lazy clause generation , 2009, Constraints.

[10]  Jean-Charles Régin,et al.  Open Constraints in a Closed World , 2006, CPAIOR.

[11]  Laurence A. Wolsey,et al.  Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems, 4th International Conference, CPAIOR 2007, Brussels, Belgium, May 23-26, 2007, Proceedings , 2007, CPAIOR.

[12]  Peter J. Stuckey,et al.  Lazy Clause Generation Reengineered , 2009, CP.

[13]  Peter van Beek,et al.  Principles and Practice of Constraint Programming - CP 2005, 11th International Conference, CP 2005, Sitges, Spain, October 1-5, 2005, Proceedings , 2005, CP.

[14]  Ian P. Gent Proceedings of the 15th international conference on Principles and practice of constraint programming , 2009 .

[15]  Francesca Rossi,et al.  Principles and Practice of Constraint Programming – CP 2003 , 2003, Lecture Notes in Computer Science.

[16]  Brian Falkenhainer,et al.  Dynamic Constraint Satisfaction Problems , 1990, AAAI.

[17]  Christian Bessière Principles and Practice of Constraint Programming - CP 2007, 13th International Conference, CP 2007, Providence, RI, USA, September 23-27, 2007, Proceedings , 2007, CP.

[18]  Roberto Rossi,et al.  Synthesizing Filtering Algorithms for Global Chance-Constraints , 2009, CP.

[19]  Michael Veksler,et al.  Assumption-Based Pruning in Conditional CSP , 2005, CP.

[20]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[21]  J. Lukasiewicz,et al.  ON THREE-VALUED LOGIC , 2016 .

[22]  Peter J. Stuckey,et al.  Finite type extensions in constraint programming , 2013, PPDP.

[23]  Mats Carlsson,et al.  Global Constraint Catalogue: Past, Present and Future , 2007, Constraints.

[24]  Merrie Bergmann,et al.  On a three-valued logical calculus and its application to the analysis of the paradoxes of the classical extended functional calculus , 1981 .