NobleCount: �Revisiting a Forgotten Data Structure for Local Search in SAT
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
1
Background: SAT & Local Search
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
2
[1] Fu et al. (2024), “Improving Two-Mode Algorithm via Probabilistic Selection for SAT.”
[2] Biere et al. (2024), “CaDiCaL 2.0.”
How Local Search Works
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
3
Local Search Performance
This work:
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
4
Local Search – Reducing Clause Access
Additional compact data structure that is faster to access:
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
5
Clause DB
Clause DB
SLC
Clause-State Transitions
We want to reduce clause access for the 1→2 + 2→1 transitions!
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
6
NobleCount: The Core Idea
We keep a little extra data with every clause
Why it helps
It works by…
We call the new compact data-structure the Light Data
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
7
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
8
The NobleCount Scheme
Clause DB
1
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
9
The NobleCount Scheme
Occ. Lists
Clause DB
1
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
10
The NobleCount Scheme
Occ. Lists
Update
Clause DB
1
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
11
The NobleCount Scheme
Occ. Lists
[1, -1]
[1, -3]
Clause DB
Update
1
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
12
The NobleCount Scheme
Occ. Lists
[1, -1]
[1, -3]
Clause DB
Update
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
13
The NobleCount Scheme
Occ. Lists
[1, -1]
[1, -3]
Clause DB
Update
NobleCount: A Forgotten Optimization
Yet it never reached today’s strongest LS solvers !
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
14
A Tale of Two Lineages
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
15
Two lineages evolved in parallel
This work:
probSAT
Balint & Schöning, 2012
YalSAT
Biere, 2014
TaSSAT
Chowdhury et al., 2024
Swcca
Cai & Su, 2012
CCAnr
Cai et al., 2015
ProbCCAnr
Fu et al., 2024
probSAT lineage
CCA lineage
Experimental Setup
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
16
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
17
Config | 20s Solved | 20s PAR2 | 100s Solved | 100s PAR2 | 300s Solved | 300s PAR2 |
NC | 7,819 | 14,586 | 7,948 | 26,743 | 7,979 | 86,377 |
Base | 7,699 | 19,415 | 7,939 | 32,233 | 7,971 | 95,479 |
TS | 6,600 | 61,599 | 7,273 | 187,648 | 7,675 | 362,836 |
−24.8% PAR2 at 20s (NC vs Base) �
FCC Benchmark Results
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
18
Config | 20s Solved | 20s PAR2 | 100s Solved | 100s PAR2 | 300s Solved | 300s PAR2 |
NC | 710 | 3,235 | 815 | 20,913 | 881 | 74,330 |
Base | 700 | 3,748 | 808 | 22,990 | 865 | 83,244 |
TS | 639 | 6,061 | 776 | 31,179 | 885 | 82,902 |
SC22 Anniversary Benchmark
Future Work & Broader Applicability
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
19
GPU parallelism - Work In Progress
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
20
Occ. Lists
Update
GPU parallelism - Work In Progress
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
21
Occ. Lists
Update
yogevshalmon@campus.technion.ac.il
NOBLECOUNT FOR LOCAL SEARCH IN SAT — FLOC’2026
22