Skip to content

Let's implement a SAT-solver (AIMA ch. 7).

Photo of Peter Danenberg
Hosted By
Peter D.
Let's implement a SAT-solver (AIMA ch. 7).

Details

The boolean satisfiability problem (SAT) was recognized as one of the
first NP-complete problems[1]; Norvig implemented it in AIMA-Lisp by
expanding the truth table for a proposition and figuring out whether
any of the rows were satisfied.[2]

The truth-table method is somewhat inefficient, however; and a few
algorithms have been developed (such as DPLL[3] and WalkSAT[4]) which
are more efficient.

Gomes, et al. wrote a good survey of the relevant algorithms[5]; we
can't avoid implementing something like this if we're ever going to
have logical agents, unfortunately.

Footnotes:
[1] http://en.wikipedia.org/wiki/Boolean_satisfiability_problem

[2] http://www.cs.berkeley.edu/~russell/code/logic/algorithms/prop.lisp

[3] http://en.wikipedia.org/wiki/DPLL_algorithm

[4] http://en.wikipedia.org/wiki/WalkSAT

[5] http://www.cs.cornell.edu/gomes/papers/SATSolvers-KR-Handbook.pdf

Photo of Computer Science Reading Group group
Computer Science Reading Group
See more events
TrueCar (120 Santa Monica office)
120 Broadway, Suite 200 · Santa Monica, CA