npycomp.solvers.DPLL.
solve#
- DPLL.solve()#
Solve a SAT problem.
- Returns:
- list[int] | False
A satisfying assignment if one exists, or False otherwise.
Examples
Solve a SAT problem defined by a list of clauses.
>>> from npycomp.solvers import DPLL >>> clauses = [("x1", "~x2"), ("x1", "x2")] >>> solver = DPLL(clauses) >>> model = solver.solve() >>> model [1, None] >>> solver.model_to_string(model) x1 = 1, x2 ∈ {0, 1}
Reduce a problem to SAT and solve it.
>>> from npycomp.problems import Clique >>> A = [ ... [0, 1], ... [1, 0], ... ] >>> k = 2 >>> clique = Clique(A, k) >>> clauses = clique.reduce("SAT") >>> solver = DPLL(clauses) >>> model = solver.solve() [1, 0, 0, 1]