Skip to content

C++ SAT solver using DPLL and CDCL algorithms to solve Boolean SAT problems supporting pure literal elimination, unit propagation, clause learning, and non-chronological backtracking.

Notifications You must be signed in to change notification settings

QabasAK/SAT-Solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAT-Solver

A Boolean SAT solver that determines the satisfiability of propositional logic formulas in CNF (Conjuctive Normal Form) using both the DPLL (Davis-Putnam-Logemann-Loveland) algorithm and the CDCL (Conflict-Driven Clause Learning) algorithm.

DPLL Algorithm

Implements pure literal elimination and unit propagation. Uses a vector of clauses to store the CNF formula.

CDCL Algorithm

Implements conflict analysis, clause learning and non-chronological backtracking. Uses a structured approach to track assignments, including value, reason and level. It performs 1-UIP (Unique Implication Point) learning for effective clause learning.

Benchmarking & Visualization

The solvers were evaluated against SATLIB test cases with chrono-based runtime measurements and built using Manim to animate SAT solver steps (rendered with LaTeX-based representation).

Future Work

  • Implementing watched literals to improve unit propagation efficiency.
  • Add a learned clause database with deletion heuristics (LBD).
  • Introducing restart strategies for better solver performance.

About

C++ SAT solver using DPLL and CDCL algorithms to solve Boolean SAT problems supporting pure literal elimination, unit propagation, clause learning, and non-chronological backtracking.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy