More SAT Algorithms




CS254

Chris Pollett

Mar 8, 2017

Outline

Introduction

Schaeffer's Dichotomy Theorem (1978)

Theorem. `S` is either one of the six cases we've considered and SAT(S) is in P, or SAT(S) is NP-complete.

Proof Idea. We've already established last day, if `S` is one of the six cases then SAT(S) does have a p-time algorithm. Suppose `S` does not correspond to one of the six cases. We can prove (but don't in my slides) the following lemmas:

  1. If `S` contains a non-Horn relation, then one of `x != y` or `x vv y` is expressible.
  2. If `S` contains a non dual-Horn relation, then one of `x != y` or `bar{x} vv \bar{y}` is expressible.
  3. If `S` contains a non dual-Horn relation and a non-Horn relation then it can express of `x != y`.
  4. If `S` contains a nonaffine relation and can express `x != y` then it can express all 2-ary relations that are 0 for only one value.
  5. If `S` contains a non 1-assignment relation, a non 0-assignment relation, a non 2-ary relation, and can express `x != y`, `x vv y`, then it can express `R(x,y,z)` which is 1 iff exactly one of `x`, `y`, `z` is set to 1.
  6. If `S` can express `R(x,y,z)` from the last step then it can express any logical relation (so in particular the 8 possible SAT clause types.)

Threshold for 3-SAT Satisfibility

Almost Surely Unsatisfiable

Theorem (CS88) Suppose instances of 3-SAT are chosen according to the process of the previous slide. Then if the clause to variable ratio exceeds 5.19 then as `n` the number of variables in the instances gets larger, the odds the instance is satisfiable goes to 0.

Proof. A given clause chosen by the process of the last slide will have at most a 7/8 chance of being satisfied by any given assignment. As we chose clauses independently of each other the odds an `m` clause formula will be satisfied by a particular assignment is `(7/8)^m`. The odds that some assignment on `n` variable would make an `m` clause formula 1 is less than `2^n(7/8)^m`. This will converge to 0 as `n -> infty` if `(2^n(7/8)^m)^{1/n} < 1`. We note
`(2^n(7/8)^m)^{1/n} = 2 cdot (7/8)^{m/n}`
and solving the equation `2 cdot (7/8)^{m/n} = 1` implies a value `m/n` of `- (ln2)/ln (7/8) approx 5.19`.

Almost Surely Satisfiable

In-class Exercise

Generate a random 3SAT formula using our procedure above with 3 variables and 6 clauses. We would expect such a formula to be satisfiable.

Now apply the procedure of the previous slide to choose an assignment for the three variables. Did it satisfy your formula?

Take pictures of your work and post them to the Mar 8 Class Thread.