Cargando…

Tinted, Detached, and Lazy CNF-XOR Solving and Its Applications to Counting and Sampling

Given a Boolean formula, the problem of counting seeks to estimate the number of solutions of F while the problem of uniform sampling seeks to sample solutions uniformly at random. Counting and uniform sampling are fundamental problems in computer science with a wide range of applications ranging fr...

Descripción completa

Detalles Bibliográficos
Autores principales: Soos, Mate, Gocht, Stephan, Meel, Kuldeep S.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7363182/
http://dx.doi.org/10.1007/978-3-030-53288-8_22
Descripción
Sumario:Given a Boolean formula, the problem of counting seeks to estimate the number of solutions of F while the problem of uniform sampling seeks to sample solutions uniformly at random. Counting and uniform sampling are fundamental problems in computer science with a wide range of applications ranging from constrained random simulation, probabilistic inference to network reliability and beyond. The past few years have witnessed the rise of hashing-based approaches that use XOR-based hashing and employ SAT solvers to solve the resulting CNF formulas conjuncted with XOR constraints. Since over 99% of the runtime of hashing-based techniques is spent inside the SAT queries, improving CNF-XOR solvers has emerged as a key challenge. In this paper, we identify the key performance bottlenecks in the recently proposed [Formula: see text] architecture, and we focus on overcoming these bottlenecks by accelerating the XOR handling within the SAT solver and on improving the solver integration through a smarter use of (partial) solutions. We integrate the resulting system, called [Formula: see text], with the state of the art approximate model counter, [Formula: see text], and the state of the art almost-uniform model sampler [Formula: see text]. Through an extensive evaluation over a large benchmark set of over 1896 instances, we observe that [Formula: see text] leads to consistent speed up for both counting and sampling, and in particular, we solve 77 and 51 more instances for counting and sampling respectively.