83 research outputs found
Sampling Techniques for Boolean Satisfiability
Boolean satisfiability ({\SAT}) has played a key role in diverse areas
spanning testing, formal verification, planning, optimization, inferencing and
the like. Apart from the classical problem of checking boolean satisfiability,
the problems of generating satisfying uniformly at random, and of counting the
total number of satisfying assignments have also attracted significant
theoretical and practical interest over the years. Prior work offered heuristic
approaches with very weak or no guarantee of performance, and theoretical
approaches with proven guarantees, but poor performance in practice.
We propose a novel approach based on limited-independence hashing that allows
us to design algorithms for both problems, with strong theoretical guarantees
and scalability extending to thousands of variables. Based on this approach, we
present two practical algorithms, {\UniformWitness}: a near uniform generator
and {\approxMC}: the first scalable approximate model counter, along with
reference implementations. Our algorithms work by issuing polynomial calls to
{\SAT} solver. We demonstrate scalability of our algorithms over a large set of
benchmarks arising from different application domains.Comment: MS Thesis submitted to Rice Universit
Balancing Scalability and Uniformity in SAT Witness Generator
Constrained-random simulation is the predominant approach used in the
industry for functional verification of complex digital designs. The
effectiveness of this approach depends on two key factors: the quality of
constraints used to generate test vectors, and the randomness of solutions
generated from a given set of constraints. In this paper, we focus on the
second problem, and present an algorithm that significantly improves the
state-of-the-art of (almost-)uniform generation of solutions of large Boolean
constraints. Our algorithm provides strong theoretical guarantees on the
uniformity of generated solutions and scales to problems involving hundreds of
thousands of variables.Comment: This is a full version of DAC 2014 pape
Rounding Meets Approximate Model Counting
The problem of model counting, also known as #SAT, is to compute the number
of models or satisfying assignments of a given Boolean formula . Model
counting is a fundamental problem in computer science with a wide range of
applications. In recent years, there has been a growing interest in using
hashing-based techniques for approximate model counting that provide
-guarantees: i.e., the count returned is within a
-factor of the exact count with confidence at least
. While hashing-based techniques attain reasonable scalability for
large enough values of , their scalability is severely impacted for
smaller values of , thereby preventing their adoption in application
domains that require estimates with high confidence.
The primary contribution of this paper is to address the Achilles heel of
hashing-based techniques: we propose a novel approach based on rounding that
allows us to achieve a significant reduction in runtime for smaller values of
. The resulting counter, called RoundMC, achieves a substantial runtime
performance improvement over the current state-of-the-art counter, ApproxMC. In
particular, our extensive evaluation over a benchmark suite consisting of 1890
instances shows that RoundMC solves 204 more instances than ApproxMC, and
achieves a speedup over ApproxMC.Comment: 18 pages, 3 figures, to be published in CAV2
- …