Generalized Totalizer Encoding for Pseudo-Boolean Constraints
Saurabh Joshi, Ruben Martins, Vasco Manquinho

TL;DR
This paper introduces a generalized Totalizer encoding (GTE) for pseudo-Boolean constraints that preserves arc-consistency and is efficient in terms of auxiliary variables, improving SAT solving performance especially with constraints having few distinct coefficients.
Contribution
The paper presents GTE, an extension of Totalizer encoding that reduces auxiliary variables and maintains arc-consistency for pseudo-Boolean constraints, outperforming existing encodings in certain scenarios.
Findings
GTE requires fewer auxiliary variables when constraints have few distinct coefficients.
GTE maintains arc-consistency, leading to more efficient SAT solving.
Experimental results show GTE's competitiveness across various constraint types.
Abstract
Pseudo-Boolean constraints, also known as 0-1 Integer Linear Constraints, are used to model many real-world problems. A common approach to solve these constraints is to encode them into a SAT formula. The runtime of the SAT solver on such formula is sensitive to the manner in which the given pseudo-Boolean constraints are encoded. In this paper, we propose generalized Totalizer encoding (GTE), which is an arc-consistency preserving extension of the Totalizer encoding to pseudo-Boolean constraints. Unlike some other encodings, the number of auxiliary variables required for GTE does not depend on the magnitudes of the coefficients. Instead, it depends on the number of distinct combinations of these coefficients. We show the superiority of GTE with respect to other encodings when large pseudo-Boolean constraints have low number of distinct coefficients. Our experimental results also show…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
