14 research outputs found
Finite Domain Bounds Consistency Revisited
A widely adopted approach to solving constraint satisfaction problems
combines systematic tree search with constraint propagation for pruning the
search space. Constraint propagation is performed by propagators implementing a
certain notion of consistency. Bounds consistency is the method of choice for
building propagators for arithmetic constraints and several global constraints
in the finite integer domain. However, there has been some confusion in the
definition of bounds consistency. In this paper we clarify the differences and
similarities among the three commonly used notions of bounds consistency.Comment: 12 page
Symmetries of Symmetry Breaking Constraints
Symmetry is an important feature of many constraint programs. We show that
any symmetry acting on a set of symmetry breaking constraints can be used to
break symmetry. Different symmetries pick out different solutions in each
symmetry class. We use these observations in two methods for eliminating
symmetry from a problem. These methods are designed to have many of the
advantages of symmetry breaking methods that post static symmetry breaking
constraint without some of the disadvantages. In particular, the two methods
prune the search space using fast and efficient propagation of posted
constraints, whilst reducing the conflict between symmetry breaking and
branching heuristics. Experimental results show that the two methods perform
well on some standard benchmarks.Comment: To appear in the Proceedings of the Ninth International Workshop on
Symmetry and Constraint Satisfaction Problems, held alongside the 15th
International Conference on Principles and Practice of Constraint Programming
(CP 2009), Lisbon, Portuga
Combining Symmetry Breaking and Global Constraints
Abstract. We propose a new family of constraints which combine together lexicographical ordering constraints for symmetry breaking with other common global constraints. We give a general purpose propagator for this family of constraints, and show how to improve its complexity by exploiting properties of the included global constraints.
CONJURE: automatic generation of constraint models from problem specifications
Funding: Engineering and Physical Sciences Research Council (EP/V027182/1, EP/P015638/1), Royal Society (URF/R/180015).When solving a combinatorial problem, the formulation or model of the problem is critical tothe efficiency of the solver. Automating the modelling process has long been of interest because of the expertise and time required to produce an effective model of a given problem. We describe a method to automatically produce constraint models from a problem specification written in the abstract constraint specification language Essence. Our approach is to incrementally refine the specification into a concrete model by applying a chosen refinement rule at each step. Any nontrivial specification may be refined in multiple ways, creating a space of models to choose from. The handling of symmetries is a particularly important aspect of automated modelling. Many combinatorial optimisation problems contain symmetry, which can lead to redundant search. If a partial assignment is shown to be invalid, we are wasting time if we ever consider a symmetric equivalent of it. A particularly important class of symmetries are those introduced by the constraint modelling process: modelling symmetries. We show how modelling symmetries may be broken automatically as they enter a model during refinement, obviating the need for an expensive symmetry detection step following model formulation. Our approach is implemented in a system called Conjure. We compare the models producedby Conjure to constraint models from the literature that are known to be effective. Our empirical results confirm that Conjure can reproduce successfully the kernels of the constraint models of 42 benchmark problems found in the literature.Publisher PDFPeer reviewe
PYCSP3: Modeling Combinatorial Constrained Problems in Python
In this document, we introduce PYCSP, a Python library that allows us to
write models of combinatorial constrained problems in a simple and declarative
way. Currently, with PyCSP, you can write models of constraint satisfaction
and optimization problems. More specifically, you can build CSP (Constraint
Satisfaction Problem) and COP (Constraint Optimization Problem) models.
Importantly, there is a complete separation between modeling and solving
phases: you write a model, you compile it (while providing some data) in order
to generate an XCSP3 instance (file), and you solve that problem instance by
means of a constraint solver. In this document, you will find all that you need
to know about PYCSP, with more than 40 illustrative models