A New SAT Encoding of the At-Most-One Constraint

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.