Generating Hard Satisfiability Problems

advertisement
Generating Hard Satisfiability
Problems
Bart Selman, David Mitchell, Hector J.
Levesque
Presented by Xiaoxin Yin
Generating Hard Satisfiability Problems
1
Can SAT be solved in polynomial time in
average case?


In Goldberg’s paper [Goldberg ‘79] it is
claimed that SAT can be solved “on average”
in polynomial time.
Goldberg’s model of generating formulas


m clauses, n variables, each literal has probability
p to be in each clause
Is SAT really easy?
Generating Hard Satisfiability Problems
2
Can SAT be solved in polynomial time in
average case?



Goldberg’s SAT formulas are easy to solve
[Franco & Paull ‘83]
Theorem 1: Number of truth assignments for
a formula is greater than 2n(1-ε) with
probability 1
Theorem 2: By randomly guessing truth
assignments w times,
Pr(success)=1 – m/(2αnw)
assume each clause has at least αr literals
Generating Hard Satisfiability Problems
3
K-SAT is a harder problem

K-SAT: each clause has K literals
Generating Hard Satisfiability Problems
4
Problem Definition of K-SAT

Generate formulas of




To generate a clause



N variables
K literals per clause (K = 3 in this paper)
M clauses
Randomly choose K distinct variables
Negate each with probability 0.5
Generate formulas with certain ratio of
clauses-to-variables
Generating Hard Satisfiability Problems
5
DP Procedure


DP: a backtracking depth-first search in the
space of all truth assignments
Procedure DP



Given a set of clauses Σ defined over a set of
variables V
Set the value of a variable v and call DP on the
simplified formula
 If this call returns “satisfiable”, then return
“satisfiable”
Set v to the opposite value, return the result of
calling DP on the re-simplified formula
Generating Hard Satisfiability Problems
6
Three Common Rules for DP

The unit clause rule


The pure literal rule


If a formula contains a literal but not its
complement, set it to true
The smallest clause rule


If a clause contains only one literal, set it to true
If none of the above rules applies, set a variable in
a smallest clause
The last two rules are not used in this paper
Generating Hard Satisfiability Problems
7
DP’s Performances on K-SAT

Ratio of clauses-to-variables significantly affects the
hardness of formulas
Generating Hard Satisfiability Problems
8
Ratio of Clauses-to-variables vs.
Computational Cost

Another example in [Mitchell & Levesque ‘96]
Generating Hard Satisfiability Problems
9
50% Point


50% point: given a certain N (# variables), the point
that 50% of generated formulas are satisfiable
N
20
50
100
150
50% point
4.55
4.36
4.31
4.3
50% point is stable w.r.t. ratio of clauses-tovariables
Generating Hard Satisfiability Problems
10
50% Point – The Hardest Point (cont.)

50% point is close to the location of peak hardness
Generating Hard Satisfiability Problems
11
Satisfiable vs. Unsatisfiable Formulas


Short formulas – under-constrained, have many satisfying
assignments
Long formulas – over-constrained, contradictions can often
be easily found
Generating Hard Satisfiability Problems
12
Finding All Satisfying Assignments or
Contradiction


Let DP search the full space, until finding a contradiction
Given a set of variables

Ratio of clauses to variables increases → Search space
decreases
Generating Hard Satisfiability Problems
13
Finding All Satisfying Assignments or
Contradiction (cont.)

Computational cost of DP – monotonically
decreases for increasing ratios of clauses to
variables
Generating Hard Satisfiability Problems
14
Satisfiablity when ratio of clause-tovariable is small


Pure literal rule: if a formula contains a literal
but not its complement
 Set this literal to 1
 Remove all clauses containing this literal
For 3-CNF with up to 1.63n clauses, pure
literal rule by itself finds satisfying
assignments with high probability [Broder,
Frieze & Upfal ‘93]
Generating Hard Satisfiability Problems
15
Satisfiablity when ratio of clause-tovariable is small

Smallest clause rule:



Choose a (random) literal in a (random) smallest
clause
For 3-CNF with less than 3.003n clauses, by
smallest clause rule one can find satisfying
assignments with high probability [Frieze &
Suen ‘92]
By “high probability” we mean Pr → 1 as n → ∞
Generating Hard Satisfiability Problems
16
Satisfiablity when ratio of clause-tovariable is large


When c>4.762, a random 3-SAT formula is
unsatisfiable with high probability [Kamath et al ‘94].
Some intuitions of proof:




Consider a certain assignment Z1, each clause is true with
probability 7/8.
Let #F denote number of satisfying assignments on F.
E[#F] = 2n(7/8)cn.
By Markov inequality, P[#F>0]≤E[#F]=(2∙(7/8)c)n
This probability is exponentially small when c > 5.191
Generating Hard Satisfiability Problems
17
DP vs. Resolution



DP searches for satisfying assignments as
well as contradictions
Resolution searches for contradictions
Some result about resolution


In k-SAT problems of cn clauses, when k ≥ 3 and
c2–k ≥ 0.7, with probability tending to 1 as n goes
to infinity, a randomly chosen formula of cn
clauses is unsatisfiable, but there exists ε>0 such
that every resolution proof must generate at least
(1+ε)n clauses [Chvatal & Reed ‘92]
c=5.6 when k=3
Generating Hard Satisfiability Problems
18
Satisfiability for Different K

For a random formula Fk(n, cn)


ck = sup{ c : Fk(n, cn) is satisfiable with high prob}
ck*= inf{ c : Fk(n, cn) is unsatisfiable with high prob}
satisfiable
undetermined
ck


unsatisfiable
ck*
[Kirousis et al ‘98]
ck* ≤ 2k ln2 – (1+ln2)/2
[Achlioptas and Peres ‘03]
ck = ck* (1 – o(1))
ck ≥ 2k ln2 – (k+1)ln2/2 – 1 – δk
(for a certain sequence δk→0)
Generating Hard Satisfiability Problems
19
Satisfiability for Different K (cont.)
Lower and upper bounds for different K
1000000
100000
10000
ratio

Lower
1000
Upper
100
10
1
3
4
5
7
10
20
K
Generating Hard Satisfiability Problems
20
K-SAT with different K’s

When K is larger → Higher satisfiability, larger
search space when n is large
Generating Hard Satisfiability Problems
21
P-SAT with different K’s


Each variable has certain probability to appear in
each clause
Each clause has K variables on average
Generating Hard Satisfiability Problems
22
Solving SAT by Local Search



[B. Selman et al ‘92] “A new method for
solving hard satisfiability problems”
GSAT – greedily search in the space of
assignments
GSAT algorithm
Repeat for MAX-TRIES times
randomly generate an assignment
repeat for MAX-FLIPS times
flip a variable to get largest increase in number
of satisfied clauses
Generating Hard Satisfiability Problems
23
Solving SAT by Local Search (cont.)

Performance of GSAT
100000
10000
second
1000
GSAT
100
DP
10
1
0.1
50
70 100 120 140 150 200 250 300 400 500
num of var

Drawback – cannot prove unsatisfiability
Generating Hard Satisfiability Problems
24
Thank you!
Generating Hard Satisfiability Problems
25
Additional Contents

Performances of other approaches for solving
K-SAT are presented in [Larrabee & Tsuji
‘93], which shows similar results (easy-hardeasy pattern)
Generating Hard Satisfiability Problems
26
Solving 2-SAT in Linear Time

Choose a variable x and assign a value (e.g. x=1)





Remove all clauses that are true
Set values to all variables whose values are decided
Propagate in this way until nothing can be done
If contradiction happens, return false
A set of clauses are left that are independent with
the removed ones


If these clauses are satisfiable, return true
Else return false
Generating Hard Satisfiability Problems
27
Download