Results 1 - 10
of
16
Implementing Logical Connectives in Constraint Programming
"... Combining constraints using logical connectives such as disjunction is ubiquitous in constraint programming, because it adds considerable expressive power to a constraint language. We explore the solver architecture needed to propagate such combinations of constraints efficiently. In particular we d ..."
Abstract
-
Cited by 13 (5 self)
- Add to MetaCart
(Show Context)
Combining constraints using logical connectives such as disjunction is ubiquitous in constraint programming, because it adds considerable expressive power to a constraint language. We explore the solver architecture needed to propagate such combinations of constraints efficiently. In particular we describe two new features named satisfying sets and constraint trees. We also make use of movable triggers [1], and with these three complementary features we are able to make considerable efficiency gains. A key reason for the success of Boolean Satisfiability (SAT) solvers is their ability to propagate OR constraints efficiently, making use of movable triggers. We successfully generalise this approach to an OR of an arbitrary set of constraints, maintaining the crucial property that at most two constraints are active at any time, and no computation at all is done on the others. We also give an AND propagator within our framework, which may be embedded within the OR. Using this approach, we demonstrate speedups of over 10,000 times in some cases, compared to traditional constraint programming approaches. We also prove that the OR algorithm enforces generalised arc consistency (GAC) when all its child constraints have a GAC propagator, and no variables are shared between children. By extending the OR propagator, we present a propagator for ATLEASTK, which expresses that at least k of its child constraints are satisfied in any solution. Some logical expressions (e.g. exclusive-or) cannot be compactly expressed using AND, OR and ATLEASTK. Therefore we investigate reification of constraints. We present a fast generic algorithm for reification using satisfying sets and movable triggers. 1
Effective Compilation of Constraint Models
, 2010
"... Constraint Programming is a powerful technique for solving large-scale combinatorial (optimisation) problems. However, it is often inaccessible to users without expert knowledge in the area, precluding the wide-spread use of Constraint Programming techniques. This thesis addresses this issue in thre ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
(Show Context)
Constraint Programming is a powerful technique for solving large-scale combinatorial (optimisation) problems. However, it is often inaccessible to users without expert knowledge in the area, precluding the wide-spread use of Constraint Programming techniques. This thesis addresses this issue in three main contributions. First, we propose a simple ‘model-and-solve ’ approach, consisting of a framework where the user formulates a solver-independent problem model, which is then automatically tailored to the input format of a selected constraint solver (a process similar to compiling a high-level modelling language to machine code). The solver is then executed on the input, solver, and solutions (if they exist) are returned to the user. This allows the user to formulate constraint models without requiring any particular background knowledge of the respective solver and its solving technique. Furthermore, since the framework can target several solvers, the user can explore different types of solvers. Second, we extend the tailoring process with model optimisations that can compensate for a wide selection of poor modelling choices that novices (and experts) in Constraint Programming often make and hence result in redundancies. The elimination of these redundancies
Lazy explanations for constraint propagator
, 2010
"... Abstract Explanations are a technique for reasoning about constraint propagation, which have been applied in many learning, backjumping and user-interaction algorithms for constraint programming. To date ex-planations for constraints have usually been recorded eagerly when con-straint propagation h ..."
Abstract
-
Cited by 8 (6 self)
- Add to MetaCart
(Show Context)
Abstract Explanations are a technique for reasoning about constraint propagation, which have been applied in many learning, backjumping and user-interaction algorithms for constraint programming. To date ex-planations for constraints have usually been recorded eagerly when con-straint propagation happens, which leads to inefficient use of time and space, because many will never be used. In this paper we show that it is possible and highly effective to calculate explanations retrospectively when they are needed. To this end, we implement lazy explanations in a state of the art learning framework. Experimental results confirm the effectiveness of the technique: we achieve reduction in the number of explanations calculated up to a factor of 200 and reductions in overall solve time up to a factor of 5. Key words: constraint programming, explanations, learning 1
Machine learning for constraint solver design -- A case study for the alldifferent constraint
"... ..."
Connections and Integration with SAT Solvers: A Survey and a Case Study in Computational Biology
"... Boolean constraints play a fundamental rôle in optimization and constraint satisfaction. The resolution of these constraints has been the subject of intense and successful work during the past decade, and SAT solvers have reached a spectacular maturity. This chapter gives a brief overview of the rel ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
(Show Context)
Boolean constraints play a fundamental rôle in optimization and constraint satisfaction. The resolution of these constraints has been the subject of intense and successful work during the past decade, and SAT solvers have reached a spectacular maturity. This chapter gives a brief overview of the relevant literature on modern SAT solvers and on the recent efforts to better integrate Boolean reasoning with other constraint satisfaction techniques. As a case study that illustrates the use of SAT and CP we consider an application in computational biology: the task to build gene regulatory networks (GRNs). We report on experiments made on this problem with a combined SAT/CP approach.
The Extended Global Cardinality Constraint: An Empirical Survey
, 2010
"... The Extended Global Cardinality Constraint (EGCC) is a vital component of constraint solving systems, since it is very widely used to model diverse problems. The literature contains many different versions of this constraint, which trade strength of inference against computational cost. In this pape ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
The Extended Global Cardinality Constraint (EGCC) is a vital component of constraint solving systems, since it is very widely used to model diverse problems. The literature contains many different versions of this constraint, which trade strength of inference against computational cost. In this paper, I focus on the highest strength of inference usually considered, enforcing generalized arc consistency (GAC) on the target variables. This work is an extensive empirical survey of algorithms and optimizations, considering both GAC on the target variables, and tightening the bounds of the cardinality variables. I evaluate a number of key techniques from the literature, and report important implementation details of those techniques, which have often not been described in published papers. Two new optimizations are proposed for EGCC. One of the novel optimizations (dynamic partitioning, generalized from AllDifferent) was found to speed up search by 5.6 times in the best case and 1.56 times on average, while exploring the same search tree. The empirical work represents by far the most extensive set of experiments on variants of GAC algorithms for EGCC. Overall, the best combination of optimizations gives a mean speedup of over 50 times compared to the same implementation without the optimizations.
Explaining alldifferent
"... Lazy clause generation is a powerful approach to reducing search in constraint programming. For use in a lazy clause generation solver, global constraints must be extended to explain themselves. Alternatively they can be decomposed into simpler constraints which already have explanation capability. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Lazy clause generation is a powerful approach to reducing search in constraint programming. For use in a lazy clause generation solver, global constraints must be extended to explain themselves. Alternatively they can be decomposed into simpler constraints which already have explanation capability. In this paper we examine different propagation mechanisms for the alldifferent constraint, and show how they can be extended to explain themselves. We compare the different explaining implementations of alldifferent on a variety of problems to determine how explanation changes the trade-offs for propagaton. The combination of global alldifferent propagators with explanation leads to a state-of-the-art constraint programming solution to problems involving alldifferent. 1
Propagation Engine Prototyping with a Domain Specific Language
, 2013
"... Constraint propagation is at the heart of constraint solvers. Two main trends co-exist for its implementation: variable-oriented propagation engines and constraint-oriented propagation engines. Those two approaches ensure the same level of local consistency but their efficiency (computation time) ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Constraint propagation is at the heart of constraint solvers. Two main trends co-exist for its implementation: variable-oriented propagation engines and constraint-oriented propagation engines. Those two approaches ensure the same level of local consistency but their efficiency (computation time) can be quite different depending on the instance solved. However, it is usually accepted that there is no best approach in general, and modern constraint solvers implement only one. In this paper, we would like to go a step further providing a solver independent language at the modeling stage to enable the design of propagation engines. We validate our proposal with a reference implementation based on the Choco solver and the MiniZinc constraint modeling language.