{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/improving-sat-solving-with-graph-neural","title":"NeuroBack: Improving CDCL SAT Solving using Graph Neural Networks","arxiv_id":"2110.14053","date":"2021-10-26","proceeding":null,"authors":["Wenxi Wang","Yang Hu","Mohit Tiwari","Sarfraz Khurshid","Kenneth McMillan","Risto Miikkulainen"],"abstract":"Propositional satisfiability (SAT) is an NP-complete problem that impacts many research fields, such as planning, verification, and security. Mainstream modern SAT solvers are based on the Conflict-Driven Clause Learning (CDCL) algorithm. Recent work aimed to enhance CDCL SAT solvers using Graph Neural Networks (GNNs). However, so far this approach either has not made solving more effective, or required substantial GPU resources for frequent online model inferences. Aiming to make GNN improvements practical, this paper proposes an approach called NeuroBack, which builds on two insights: (1) predicting phases (i.e., values) of variables appearing in the majority (or even all) of the satisfying assignments are essential for CDCL SAT solving, and (2) it is sufficient to query the neural model only once for the predictions before the SAT solving starts. Once trained, the offline model inference allows NeuroBack to execute exclusively on the CPU, removing its reliance on GPU resources. To train NeuroBack, a new dataset called DataBack containing 120,286 data samples is created. NeuroBack is implemented as an enhancement to a state-of-the-art SAT solver called Kissat. As a result, it allowed Kissat to solve up to 5.2% and 7.4% more problems on two recent SAT competition problem sets, SATCOMP-2022 and SATCOMP-2023, respectively. NeuroBack therefore shows how machine learning can be harnessed to improve SAT solving in an effective and practical manner.","url_abs":"https://arxiv.org/abs/2110.14053v7","url_pdf":"https://arxiv.org/pdf/2110.14053v7.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"improving-sat-solving-with-graph-neural","repo_url":"https://github.com/wenxiwang/neuroback","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":null,"task_name":"CPU"},{"task_slug":null,"task_name":"GPU"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.14053","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.14053"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wenxiwang/neuroback","reach":null}],"summary":{"ran":1,"unverified":4},"by_repo_kind":{"official":{"samples":5,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"b896dd4b230e5e1b","entry":"DTBlock","repo":"wenxiwang/neuroback","repo_kind":"official","path":"gt_model.py","file_url":"https://github.com/wenxiwang/neuroback/blob/HEAD/gt_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b896dd4b230e5e1b"}},{"code_sha256_prefix":"16d15c0cd7b3efa1","entry":"GTBlock","repo":"wenxiwang/neuroback","repo_kind":"official","path":"gt_model.py","file_url":"https://github.com/wenxiwang/neuroback/blob/HEAD/gt_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"16d15c0cd7b3efa1"}},{"code_sha256_prefix":"1cf0e6702e10ce27","entry":"GTModel","repo":"wenxiwang/neuroback","repo_kind":"official","path":"gt_model.py","file_url":"https://github.com/wenxiwang/neuroback/blob/HEAD/gt_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cf0e6702e10ce27"}},{"code_sha256_prefix":"96da7da2d0414e7f","entry":"RGINConv","repo":"wenxiwang/neuroback","repo_kind":"official","path":"gt_model.py","file_url":"https://github.com/wenxiwang/neuroback/blob/HEAD/gt_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96da7da2d0414e7f"}},{"code_sha256_prefix":"00e71845e28c1ef1","entry":"SimpleRGATConv","repo":"wenxiwang/neuroback","repo_kind":"official","path":"gt_model.py","file_url":"https://github.com/wenxiwang/neuroback/blob/HEAD/gt_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"00e71845e28c1ef1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}