In this paper, we study how to encode the at-most-one (AMO) constraint in conjunctive normal form (CNF). The AMO constraint means that at most one out of n propositional variables is allowed to be true. We present a new AMO encoding that improves on the existing one. The logarithmic bitwise AMO encoding by Frisch et al. requires log n auxiliary variables and n log n clauses. Sinz’s sequential AMO encoding requires n − 1 auxiliary variables and 3n − 4 clauses. Our recursive 2product AMO encoding requires 2 √ n + O( 4 √ n) auxiliary variables and 2n + 4 √ n + O( 4 √ n) clauses, which is fewer than the known best one. In terms of total number of literals appearing in the clauses, our encoding is the best, since it requires 4n + 8 √ n + O( 4 √ n) literals, while Sinz’s encoding and the logarithmic bitwise AMO encoding do 6n−8 and 2n log n literals, respectively.
[1]
Steven David Prestwich,et al.
Variable Dependency in Local Search: Prevention Is Better Than Cure
,
2007,
SAT.
[2]
Carsten Sinz,et al.
Towards an Optimal CNF Encoding of Boolean Cardinality Constraints
,
2005,
CP.
[3]
Stefan Porschen,et al.
On Some Aspects of Mixed Horn Formulas
,
2009,
SAT.
[4]
Alan M. Frisch,et al.
Solving Non-Boolean Satisfiability Problems with Stochastic Local Search: A Comparison of Encodings
,
2001,
Journal of Automated Reasoning.
[5]
Gihwon Kwon,et al.
Efficient CNF Encoding for Selecting 1 from N Objects
,
2007
.
[6]
Josep Argelich,et al.
Sequential Encodings from Max-CSP into Partial Max-SAT
,
2009,
SAT.
[7]
Marijn J. H. Heule.
Solving edge-matching problems with satisfiability solvers
,
2009
.