W2SAT: Learning to generate SAT instances from Weighted Literal Incidence Graphs

Weihuang Wen, Tianshu Yu
2/1/2023
cs.LGcs.AI

No official code found. Best implementation: LOGO-CUHKSZ/W2SAT (17 stars, last commit 2023-05-24).

Abstract

The Boolean Satisfiability (SAT) problem stands out as an attractive NP-complete problem in theoretic computer science and plays a central role in a broad spectrum of computing-related applications. Exploiting and tuning SAT solvers under numerous scenarios require massive high-quality industry-level SAT instances, which unfortunately are quite limited in the real world. To address the data insufficiency issue, in this paper, we propose W2SAT, a framework to generate SAT formulas by learning intrinsic structures and properties from given real-world/industrial instances in an implicit fashion. To this end, we introduce a novel SAT representation called Weighted Literal Incidence Graph (WLIG), which exhibits strong representation ability and generalizability against existing counterparts, and can be efficiently generated via a specialized learning-based graph generative model. Decoding from WLIGs into SAT problems is then modeled as finding overlapping cliques with a novel hill-climbing optimization method termed Optimal Weight Coverage (OWC). Experiments demonstrate the superiority of our WLIG-induced approach in terms of graph metrics, efficiency, and scalability in comparison to previous methods. Additionally, we discuss the limitations of graph-based SAT generation for real-world applications, especially when utilizing generated instances for SAT solver parameter-tuning, and pose some potential directions.

View on arXivView PDF

Code Implementations(1)

LOGO-CUHKSZ/W2SATCommunity100%
171C++, ShellJan 3, 20233 years ago

Similar Papers

Cite this paper

@article{wen2023wsat,
  title  = {W2SAT: Learning to generate SAT instances from Weighted Literal Incidence Graphs},
  author = {Weihuang Wen and Tianshu Yu},
  year   = {2023},
  eprint = {2302.00272},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2302.00272v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2302.00272.svg)](https://codeofpaper.com/paper/2302.00272)

Discussion