prototype algorithm 8C2: Pre-release note on a new SAT algorithm

Status: Working pre-release with stable comparative results
Version: 0.9 (final version in progress)
Date: March 2026


SAT (Boolean Satisfiability Problem)

One of the fundamental NP-complete problems in computer science.

For practical domains such as hardware verification, planning, and cryptanalysis, solver behavior near the phase transition is critical, because classic heuristics usually degrade there.

Random 3-SAT instances with m/n ≈ 4.2-4.5 are notably difficult for stochastic local search (SLS). Under a fixed budget (for example, 180 flips), many modern solvers get trapped in local optima and do not reach 100% satisfied clauses.

prototype algorithm 8C2 extends the CSAW idea with three key additions: formal primal-dual clause-weight dynamics, size/density-aware behavior across scales, and improved zero-break handling. In our current pre-release experiments, this gives +0.04-0.19% satisfied clauses versus probSAT and WalkSAT at a fixed step budget.

For instances around n=3000 and m≈12800, even 0.19% corresponds to about 24 additional satisfied clauses, which is meaningful in hard regimes.

CNF formulation (Conjunctive Normal Form)

$$ F = {C_1, C_2, \dots, C_m} $$

Each clause $C_i$ is a disjunction of literals over $n$ boolean variables.

We optimize over assignments $x \in {0,1}^n$ to maximize the number of satisfied clauses:

$$ \max_x ; S(x) = \sum_{i=1}^{m} \mathbf{1}[C_i(x) = \text{true}] $$

where $\mathbf{1}[\cdot]$ is the indicator function.

SAT special case: if $S(x)=m$, all clauses are satisfied.

Hard-regime metric

With a fixed step budget (e.g. 180 flips), the key metric is:

$$ \text{Success Rate} = \frac{S(x)}{m} \times 100% $$

For fair comparison, we fix size n, density α = m/n, and budget (usually 180 flips).

Architecture of prototype algorithm 8C2

High-level flow (without sensitive implementation details)

Pipeline diagram (English)

ComponentPurpose
Adaptive scoringDynamic flip priority via make/break
Clause weightingDynamic conflict-clause weights (dense-gated mode)
Size/density awarenessParameter behavior adapted to problem scale
Zero-break prioritizationDedicated path for free improvements

Make/Break scoring

For each candidate $v$ in the selected UNSAT clause:

$$ p(v) \propto \bigl(1 + \alpha \cdot \text{make}(v)\bigr) \cdot \bigl(\varepsilon + \text{break}(v) + \text{novelty}(v)\bigr)^{-c_b} $$

Make/Break scoring diagram (English)

Here, make(v) is the number of clauses that become SAT after the flip, while break(v) is the number of clauses that become UNSAT. novelty(v) penalizes recently flipped variables. α (make_weight) controls the make reward strength, and c_b (cb) controls the break penalty curvature. ε ensures numerical stability.

Special case: candidates with break(v)=0 are chosen randomly within the zero-break set, preserving free gains while maintaining exploration.

Primal-Dual clause weight updates

When dense mode is enabled

Dense-gated primal-dual is enabled when:

$$ \frac{m}{n} \geq \text{dual_density_on} $$

In high-density instances, uniform weighting is usually not enough, so structured weight dynamics help target persistent conflicts.

Update equations

For a selected clause $C_i$ at step $t$:

$$ \eta_t = \frac{\eta}{\sqrt{t+1}} $$

$$ g_t = \mathbf{1}[C_i \text{ remains UNSAT after flip}] $$

$$ w_i^{t+1} = \Pi_{[w_{\min}, w_{\max}]} \left( w_i^t + \eta_t \bigl(g_t - \lambda (w_i^t - 1)\bigr) \right) $$

Primal-Dual update diagram (English)

$\eta_t$ is a decaying step size, $g_t$ is the conflict signal, and $\lambda$ regularizes weights toward 1.0. Projection $\Pi_{[w_{\min}, w_{\max}]}$ keeps values bounded.

This is effectively a regularized subgradient-style dual update for MAX-SAT weighting.

Experimental results

Upper size range (n=1500-3000)

Setup: ratio = 4.267, steps = 180, random 3-SAT.

nprototype algorithm 8C2probSATW-WalkSATΔ vs probSATΔ vs W-WalkSAT
150099.835999.742299.6641+0.09375+0.17188
200099.850699.745199.6836+0.10546+0.16698
250099.838399.798499.6625+0.03984+0.17578
300099.816499.769599.6270+0.04687+0.18944

The method leads consistently on all tested sizes.

Stability across densities

Checked at ratio ∈ {4.1, 4.2, 4.35, 4.5}, n ∈ {500, 1000}, seeds {42, 123}.

rationprototype algorithm 8C2probSATW-WalkSAT
4.35100099.833399.758699.7356
4.50100099.711199.706799.5689

A/B test: primal-dual contribution

ModeSuccess RateW/L vs baseline
baseline (--disable-primal-dual)99.6278
candidate (PD on)99.80004/0

Gain: +0.17222%.

Core make/break scoring fragment

// Flip probability for candidate v
const double adjusted_break = eps_ + break_count + penalty;
const double make_factor = 1.0 + make_weight_ * make_count;
const double probability = make_factor * std::pow(adjusted_break, -cb_);

Dual weight update fragment

// Decaying step size
double eta_t = dual_eta_ / std::sqrt(static_cast<double>(step) + 1.0);

// Conflict signal
double grad = unsat_mask[chosen_clause] ? 1.0 : 0.0;

// Regularized gradient
double regularized_grad = grad - dual_reg_ * (old_weight - 1.0);

// Bounded update
double new_weight = std::clamp(
    old_weight + eta_t * regularized_grad,
    dual_weight_floor_,
    dual_weight_cap_
);

Open questions and roadmap

Remaining gaps

  • Regression checks for sparse regimes.
  • Expanded statistical sampling to ≥10 seeds per setup.
  • Less size-specific tuning and a more robust default behavior.

Next release steps

  • Additional seeds 200-210 for n=2000, 2500, 3000.
  • Reporting 95% confidence intervals.
  • Further formalization of the primal-dual/subgradient interpretation.
  • Comparison of adaptive bucket selection against manual tuning.

Confirmed vs. hypothesis

Confirmed:

  • Better success rate than probSAT and W-WalkSAT on tested dense hard settings.
  • Positive contribution of primal-dual updates in dense mode.
  • Strong impact of zero-break prioritization.

Hypothesis (ongoing):

  • Advantage persists at larger scales n > 3000.
  • A universal config can replace size-specific tuning.
  • Stronger formal convergence/regret characterization is possible.

Conclusion

prototype algorithm 8C2 is an intentional pre-release: already competitive in hard random 3-SAT settings, while theoretical and statistical finalization is still in progress.

Glossary

TermMeaning
SATBoolean Satisfiability Problem
CNFConjunctive Normal Form
3-SATSAT variant with 3 literals per clause
Phase transitionRegion around m/n ≈ 4.2-4.5 with hardest instances
SLSStochastic Local Search
make/breakClauses becoming SAT / becoming UNSAT after flip
Primal-DualMethods updating primal and dual signals jointly

Contact

For questions, experiment suggestions, or collaboration: email: vremyavnikuda@protonmail.com