Cardinality Networks and Their Applications
We introduce Cardinality Networks, a new CNF encoding of cardinality constraints. It improves upon the previously existing encodings such as the sorting networks of [ES06] in that it requires much less clauses and auxiliary variables, while arc consistency is still preserved: e.g., for a constraint x 1 + ... + x n ≤ k, as soon as k variables among the x i ’s become true, unit propagation sets all other x i ’s to false. Our encoding also still admits incremental strengthening: this constraint for any smaller k is obtained without adding any new clauses, by setting a single variable to false.
Here we give precise recursive definitions of the clause sets that are needed and give detailed proofs of the required properties. We demonstrate the practical impact of this new encoding by careful experiments comparing it with previous encodings on real-world instances.
KeywordsAuxiliary Variable Unit Propagation Cardinality Constraint Sorting Network Incremental Strengthen
Unable to display preview. Download preview PDF.
- [Bat68]Batcher, K.E.: Sorting Networks and their Applications. In: AFIPS Spring Joint Computing Conference, pp. 307–314 (1968)Google Scholar
- [MSP08]Marques-Silva, J., Planes, J.: Algorithms for Maximum Satisfiability usint Unsatisfiable Cores. In: DATE 2008, pp. 408–413. IEEE Computer Society Press, Los Alamitos (2008)Google Scholar