This preview shows pages 1–3. Sign up to view the full content.
Boolean Satisfiability
ECE 256B – Spring 2002
1 of 17
RCFB256B3449  Bool. Satis.
CNF:
Conjunctive Normal Form
A CNF is a Product of Sums of literals
eg:
xy zx yz uu z
+
′ +
()
′
++
′ +
′ +
such a representation is general in that any logic function can be represented (note: can find a CNF
from DNF by applying negation & De Morgan laws:
fx
y
zx
u
zy
z f xyzxuz
yz
=
′
+
′
+⇒=
′
′
′ +
′ +
′ +
′
although it is trivial to find a truth assignment for DNF i.e
xy z
=
′
==
11
1
,,
above – it is very hard in
general to find a truth assignment for CNF 1 (or equivalently an assignment to false for DNF…)
SAT:
Given a CNF on a set of literals, is there an assignment of values that satisfy CNF
i.e can we find
xyz
, , .
..
∋
CNF=1?
(note: if not
⇒
CNF=0 for all assignments: not satifiable)
⇒
if we can build a BDD for CNF, any path is a SAT & nosolns
⇒
BDD=0
SAT is still interesting since can be solved (sometimes for tens of thousands of literals & hundreds
of thousands of terms)
NP&SAT:
How hard is SAT?
SAT represents evaluation of an arbitrary Boolean function.
Thus many other problems can be cast in
SAT form.
This property was exploited by S.Cook to create a partition of “Hard Problems” that, in a
specified sense, are equally hard.
Boolean Satisfiability
ECE 256B – Spring 2002
2 of 17
RCFB256B3449  Bool. Satis.
Notion:
Polynomial Equivalence
Given a problem written in K characters, can one find another problem in no more than
K
p
characters
for some fixed
P
∋
the two problems are equivalent. i.e
the first problem is valid if the second one is
valid.
Given a problem in a set of polynomial equivalent problems,
if one can solve some problem in Polynomial Time
⇒
all problems in class can be solved in PTime.
Notion:
NPTime there are many problems for which, given a solution, one can check (or validate) the
solution in PTime on a Turing machine.
Equivalently, one could solve the problems in PTime on an
exponential set of turing machines, with each machine choosing an alternate character (out of a finite
alphabet) on each program cycle.
There are several NP  problems (an infinite set.)
eg.
Traveling Salesperson i.e given a graph with weighted edges, is there a tour of each vertex with
cost =
∑
(of weights of arcs taken)
<
c,
a predefined constant.
eg.
Clique Cover
i.e given a graph, can one cover each edge with no more than
c
cliques (complete
subgraphs)?
eg.
Knapsack given a collection of objects of different weights, and a sack with capacity M, can
one fill the sack so that at most m<<M capacity is unused?
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentBoolean Satisfiability
ECE 256B – Spring 2002
3 of 17
RCFB256B3449  Bool. Satis.
SAT is clearly a member of NP: i.e given a CNF and a solution, we can clearly verify the solution in
polynomial steps of a turing machine. In fact, SAT is the prototypical NP problem…
Cook showed that he could simulate the behavior of an arbitrary turing machine as a polynomial
equivalent instance of SAT.
This is the end of the preview. Sign up
to
access the rest of the document.
 Fall '09
 brewer

Click to edit the document details