
SAT Solvers as Smart Search Engines - another
https://www.msoos.org/2019/02/sat-solvers-as-smart-search-engines/
======
mzl
I really like the post, except for the conflation of brute force search and
using recomputation as state restoration.

In my opinion, a brute force search algorithm is an algorithm that will
explore the whole search space without any intelligent pruning of sub-trees
(it will visit every element of the state space). Such an algorithm needs to
use a state restoration policy, with three main flavours being saving undo-
information (trailing asin SAT-solvers, Knuths dancing links), saving redo-
information (in order to do recomputation), and copying (saving whole search
states in each node) are all valid and useful. They can also be combined, with
adaptive recomputation being quite nice in some cases (leaving copies of the
seaerch state every now and then, closer togheter the farther down the tree
one is).

~~~
zero_k
(author here) Well, those are all valid strategies. In fact, in the original
work that introduced CryptoMiniSat, I used state saving (you called this
copying) to quickly reset state to an old one. One could also say that
polarity caching is in fact saving redo-information (at least to some extent
-- to what extent, can debated). The thing is -- I am not a pro at these other
strategies and I can't talk about them with the same clarity. At the end of
the day, all of these are quite abstract in some way -- there are many design
choices to be made and many different designs.

I just tried to highlight brute force vs. partial evaluation&backtrack. But of
course there are many other comparisons to be made. I'm just conscious that I
have neither the time nor the expertise to do these all unfortunately :( I let
Knuth do the heavy lifting, doing all the comparisons in his books.

------
sanxiyn
The article is spot on. Some finds it counterintuitive that SAT solver often
can solve problems with redundant clauses (hence larger problems) faster than
minimal ones. But you can find the proof faster if you have appropriate
lemmas. Since lemmas can be derived from axioms, strictly speaking, all lemmas
are redundant. But they help.

Note: the author maintains a state-of-the-art SAT solver.

------
JPLeRouzic
I am certain not a SAT specialist and it is a very frustrating technology.
There is little literature and it is very hard to figure out what it means in
concrete cases.

But this article is way above all that I read on this subject. Many thanks!

Just an example: " _Modeling has lots of interesting constraints, one of which
I often hear and I am confused by: that it should minimize the number of
variables. Given the above, that SAT solvers can be seen at as partial
evaluation engines that thrive on the fact that they can partially evaluate
and partially backtrack_ "

------
sevensor
It's rare that I feel like I'm exactly the target audience for an article, but
this is one of those times. Specifically, the advice on formulation is
something I've been wondering about for a while. It's nice to have the author
of a SAT solver come out and say that extra variables can be useful to the
solver. I'd suspected as much from experience, but I had a nagging doubt that
I was wrong.

