Abstract

Constraint Programming (CP) is a proven set of techniques for solving complex combinatorial problems from a range of disciplines. The problem is specified as a set of decision variables (with finite domains) and constraints linking the variables. Local reasoning (propagation) on the constraints is central to CP. Many constraints have efficient constraint-specific propagation algorithms. In this work, we generate custom propagators for constraints. These custom propagators can be very efficient, even approaching (and in some cases exceeding) the efficiency of hand-optimised propagators.Given an arbitrary constraint, we show how to generate a custom propagator that establishes GAC in small polynomial time. This is done by precomputing the propagation that would be performed on every relevant subdomain. The number of relevant subdomains, and therefore the size of the generated propagator, is potentially exponential in the number and domain size of the constrained variables.The limiting factor of our approach is the size of the generated propagators. We investigate symmetry as a means of reducing that size. We exploit the symmetries of the constraint to merge symmetric parts of the generated propagator. This extends the reach of our approach to somewhat larger constraints, with a small run-time penalty.Our experimental results show that, compared with optimised implementations of the table constraint, our techniques can lead to an order of magnitude speedup. Propagation is so fast that the generated propagators compare well with hand-written carefully optimised propagators for the same constraints, and the time taken to generate a propagator is more than repaid.

Highlights

  • Constraint Programming is a proven technology for solving complex combinatorial problems from a range of disciplines, including scheduling, planning and design

  • The second adaptation is Smallest Maybe+Domain First (SM+DF). This is similar to Smallest Maybe First (SMF) with two changes: when selecting the variable SD is used in place of SD \ ValsIn, and variables are chosen from the set of variables that have at least one literal in SD \ ValsIn

  • These experiments have demonstrated that symmetry is useful in extending the scalability of propagator trees

Read more

Summary

Introduction

Constraint Programming is a proven technology for solving complex combinatorial problems from a range of disciplines, including scheduling (nurse rostering, resource allocation for data centres), planning (contingency planning for air traffic control, route finding for international container shipping, assigning service professionals to tasks) and design (of cryptographic S-boxes, carpet cutting to minimise waste). In this paper we will consider propagators that establish a property called Generalised Arc Consistency (GAC) [1], which requires that every value in the domains of the variables in the scope of a particular constraint participates in at least one assignment that satisfies that constraint. The second is a simple virtual machine: the propagator tree is encoded as a sequence of instructions, and the constraint solver has a generic propagator that executes it Given a constraint c and a subdomain list S of scope(c), a literal v, d is supported iff there exists an assignment that satisfies c and is contained in S and contains v, d.

A naïve method
Propagator trees
Comparing propagator trees to handwritten propagators
Generating propagator trees
Executing a propagator tree
Correctness
Generating smaller trees
Bounds on tree size
Heuristic
Implementation of GenTree
Experimental evaluation of propagator trees
Generic GAC propagators
Case study
Case study: low autocorrelation binary sequences
Case study: maximum density oscillating life
Symmetry in propagator trees
Group theory background
Symmetries of constraints
Symmetries of propagator trees
Constraint symmetries and variable-stability
Generating and executing symmetry-reduced propagator trees
Generating symmetry-reduced trees in detail
Execution of symmetry-reduced trees
Refining GenTreeSym by limiting jumping
Complexity of execution of symmetry-reduced trees
Experimental evaluation of symmetry-reduced trees
Time taken to generate propagators
GAC Methods
XCSP benchmarks
Experimental conclusions
Related work
Findings
10. Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.