Optimizing SAT Encodings for Arithmetic Constraints

@inproceedings{Zhou2017OptimizingSE,
  title={Optimizing SAT Encodings for Arithmetic Constraints},
  author={Neng-Fa Zhou and H{\aa}kan Kjellerstrand},
  booktitle={CP},
  year={2017}
}
The log encoding has been perceived to be unsuited to arithmetic constraints due to its hindrance to propagation. The surprising performance of PicatSAT, which is a pure eager SAT compiler based on the log encoding, in the MiniZinc Challenge 2016 has revived interest in the log encoding. This paper details the optimizations used in PicatSAT for encoding arithmetic constraints. PicatSAT adopts some well-known optimizations from CP systems, language compilers, and hardware design systems for… 

Encoding PB Constraints into SAT via Binary Adders and BDDs -- Revisited

This paper revisits encoding PB constraints into SAT via binary adders and BDDs and presents an optimizing compiler that incorporates preprocessing, decomposition, constant propagation, and common subexpression elimination techniques tailored to PB constraints.

The SAT Compiler in Picat

SAT solvers’ performance drastically improved during the years, thanks to the inventions of techniques from conflict-driven clause learning, backjumping, variable and value selection heuristics, to

Yet Another Comparison of SAT Encodings for the At-Most-K Constraint

This paper presents an experiment that shows astounding performance of the binary-adder encoding for the at-most-k constraint.

Selecting SAT Encodings for Pseudo-Boolean and Linear Constraints: Preliminary Results

It is shown that it is possible to select encodings effectively using a standard set of features for constraint problems, however it is obtained better performance with a new set of Features specifically designed for the pseudo-Boolean and linear integer constraints.

Abacus : Un nouvel encodage pour SAT

The Abacus Encoding is presented, a new hybrid encoding that combines Log and Order encodings and provides a good trade-off between the instance size and the resolution effectiveness.

Abacus: A New Hybrid Encoding for SAT Problems

The Abacus Encoding is presented, a new hybrid encoding that combines Log and Order encodings and provides a good trade-off between the instance size and the resolution effectiveness.

Selecting SAT Encodings for Pseudo-Boolean and Linear Integer Constraints

It is shown that it is possible to select encodings effectively using a standard set of features for constraint problems; however, better performance is obtained with a new set of Features specifically designed for the pseudo-Boolean and linear constraints.

Optimization Modulo Theories with OptiMathSAT

A variety of techniques that deal with the identified issues and advance both the expressiveness and the efficiency of OMT are presented, including implementation of these techniques inside OptiMathSAT, a state-of-the-art OMT solver based on MathSAT5, along with its high-level architecture, Input/Output interfaces and configurable options.

Proceedings of the 2022 XCSP3 Competition

Mistral is an open source constraint programming library written in C++ and available on GitHub that implements a modelling API, however, it can also read instance files in XCSP3 or FlatZinc format and supports dynamic type change for variables.

A Picat-based XCSP Solver – from Parsing, Modeling, to SAT Encoding

This short paper gives an overview of a Picat-based XCSP3 solver, named PicatSAT, submitted to the 2018 XCSP competition. The solver demonstrates the strengths of Picat, a logic-based language, in

References

SHOWING 1-10 OF 47 REFERENCES

The Picat-SAT Compiler

Picat-SAT is presented, the SAT compiler in the Picat system, which employs the sign-and-magnitude log encoding for domain variables and attempts to experimentally justify the choices of the algorithms for the addition and multiplication constraints.

The Log-Support Encoding of CSP into SAT

A new encoding is proposed, called log-support, that combines the log and support encodings, and has a logarithmic number of variables, and uses support clauses to improve propagation.

Translating Pseudo-Boolean Constraints into SAT

By applying a proper mix of translation techniques, a SAT-solver can perform on a par with the best existing native pseudo-boolean solvers, particularly valuable in cases where the constraint problem of interest is naturally expressed as a SAT problem, except for a handful of constraints.

Compiling finite domain constraints to SAT with BEE*

BEE is written in Prolog and integrates directly with a SAT solver through a suitable Prolog interface and it is demonstrated that constraint simplification is often highly beneficial when solving hard finite domain constraint problems.

Universal Booleanization of Constraint Models

This work presents a translation of constraint models to SAT at language level, using the recently proposed constraint modeling language MiniZinc, such that any satisfaction or optimization problem written in the language can be automatically Booleanized and solved by one or more calls to a SAT solver.

Encoding Linear Constraints into SAT

New approaches to encoding linear constraints into SAT are defined, by extending encoding methods for pseudo-Boolean constraints, which are not only better than the state-of-the-art SAT encodings, but also improve on MIP and CP solvers on appropriate problems.

meSAT: multiple encodings of CSP to SAT

This work presents a system that translates specifications of finite linear CSP problems into SAT instances using several well-known encodings, and their combinations, and a methodology for selecting a suitable encoding based on simple syntactic features of the input CSP instance.

Efficient BDDs for bounded arithmetic constraints

This paper shows how to construct linear-sized BDDs for linear integer arithmetic constraints and presents basic constructions for atomic equality and inequality constraints and generalize the complexity results for arbitrary linear arithmetic formulas.

Compiling finite linear CSP into SAT

A new method to encode Constraint Satisfaction problems with integer linear constraints into Boolean Satisfiability Testing Problems (SAT), and it is found and proved the optimal results for all instances including three previously undecided problems.

Compiling Problem Specifications into SAT

A compiler that translates a problem specification into a propositional satisfiability test (SAT) is presented, which is an executable specification language for all NP problems which shows interesting computational properties.