/wildsat

SAT solver

Primary LanguageKotlin

A simple Kotlin SAT solver framework.

Use parseFile() to read a CNF file and get a SATSolver object. Call solve() and hand it an algorithm to use.

Provided:

Greedy BFS + Backtracking
Random Search

Example run:

parsing: zebra_v155_c1135.cnf
parsed in: 29 ms
literals: 155
clauses: 1160
distance to goal:
261 TTFTTFTFTTFFFTTTTFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTTTTTTTFFFFFTFFFTFTTTTFFTFTTFTFTTFTTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
246 TTFTTFTFTTFFFTTTFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTTTTTTTFFFFFTFFFTFTTTTFFTFTTFTFTTFTTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
234 TTFTTFTFTTFFFTTFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTTTTTTTFFFFFTFFFTFTTTTFFTFTTFTFTTFTTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
224 TTFTTFTFTTFFFTTFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTTTTFFFFFTFFFTFTTTTFFTFTTFTFTTFTTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
214 TTFTTFTFTTFFFTTFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTTFFFFFTFFFTFTTTTFFTFTTFTFTTFTTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
205 TTFTFFTFTTFFFTTFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTTFFFFFTFFFTFTTTTFFTFTTFTFTTFTTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
196 TTFTFFTFTTFFFTTFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTTFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
188 TTFTFFTFTTFFFTFFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTTFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
180 TTFTFFTFTTFFFTFFFFTFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTFFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
173 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFTTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTFFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
166 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFFTTTTTFTFTTTTFTFFTFTTTFFFFFFTFTFTFTTFTTFTFFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
159 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFFTTTTTFTFTTTTFTFFTFTFTFFFFFFTFTFTFTTFTTFTFFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
152 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFFTTTTTFTFTTTTFTFFTFTFTFFFFFFTFTFFFTTFTTFTFFFFFFTFFFTFTTTTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
145 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFFTTTTTFTFTTTTFTFFTFTFTFFFFFFTFTFFFTTFTTFTFFFFFFTFFFTFTTFTFFTFTTFTFTTFFTTFTFFFTFTTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
138 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFFTTTTTFTFTTTTFTFFTFTFTFFFFFFTFTFFFTTFTTFTFFFFFFTFFFTFTTFTFFTFTTFTFTTFFTTFTFFFTFFTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
132 TTFTFFTFTTFFFTFFFFFFFFFFFTFFTFTTFFTFFFTTTTFFTFTTTFTFTTTTFTFFTFTFTFFFFFFTFTFFFTTFTTFTFFFFFFTFFFTFTTFTFFTFTTFTFTTFFTTFTFFFTFFTTFTTFFFFTFTTTTTTFFFTFFFFFFTFTFT
(truncated)