NP-completeness - Department of Information and Computing

Download Report

Transcript NP-completeness - Department of Information and Computing

NP-completeness
Algorithms and Networks
Today
• Complexity of computational problems
• Formal notion of computations
• NP-completeness
– Why is it relevant?
– What is it exactly?
– How is it proven?
• P vs. NP
• Some animals from the complexity zoo
2
Algorithms and Networks: NP-completeness
1
Introduction
Easy problems / Hard problems
• Finding the shortest
simple path between
vertices v and w in a given
graph
• Determine if there is an
Euler tour in a given graph
• Testing 2-colorability
• Satisfiability when each
clause has two literals
4
• Finding the longest simple
path between vertices v
and w in a given graph
• Determine if there is a
Hamiltonian circuit in a
given graph
• Testing 3-colorability
• Satisfiability when each
clause has three literals
Algorithms and Networks: NP-completeness
Fast and slow
• Algorithms whose
running time is
polynomial in input
size
• Algorithms whose
running time is
exponential in input
size
• Or worse…
Or in
between???
5
Algorithms and Networks: NP-completeness
EXPTIME
• Many problems appear not to have a
polynomial time algorithm
• For a few, we can proof that each algorithm
needs exponential time:
– EXPTIME hardness, in particular generalized
games (Generalized Go, Generalized Chess)
• For most, including many important and
interesting problems, we cannot.
6
Algorithms and Networks: NP-completeness
NP-completeness
• Theory shows relations and explains behavior of
many combinatorial problems
• From many fields:
–
–
–
–
–
–
7
Logic
Graphs, networks, logistics, scheduling
Databases
Compiler optimization
Graphics
…
Algorithms and Networks: NP-completeness
We need formalisation!
• Formal notion of
–
–
–
–
8
problem instance
decision problem
computation
running time
Algorithms and Networks: NP-completeness
2
Abstract and concrete problems
Different versions of problems
• Decision problems
– Answer is yes or no
Focus on
decision problems
• Optimization problems
– Answer is a number
• Construction problems
– Answer is some object (set of vertices,
function, …)
10
Algorithms and Networks: NP-completeness
Abstract versus concrete
problems
• Abstract:
– Talks about graphs, logic formulas,
applications, ...
• Concrete:
– Inputs are sets of strings in finite alphabet
11
Algorithms and Networks: NP-completeness
Abstract problem instances
• Computers work with bit strings
• Problems are described using objects:
– G is a graph, …
– Given a logic formula, …
– Is there a clique of size at least k, ...
• We must map objects to bit strings
(or another encoding like Gödel numbers...)
12
Algorithms and Networks: NP-completeness
Formal problem instances
0 1 1 0 0 0 1 0
1
2
4
7
8
1 0 1 0 0 0 0 0
1 1 0 1 1 1 0 0
0 0 1 0 1 0 0 0
3
6
5
0 0 1 1 0 0 0 0
0 0 1 0 0 0 1 0
1 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0
13
Algorithms and Networks: NP-completeness
Abstract decision problems
• Abstract decision problem:
– Set of instances I
• Objects like graphs, integers, logic formulas, etc.
– Subset of I: instances where the answer to the
problem is YES.
14
Algorithms and Networks: NP-completeness
Encoding / concrete problem
• Encoding: mapping of set of instances I to
bitstrings in {0,1}*
• Concrete (decision) problem:
– Subset of {0,1}*
• With encoding, an abstract decision
problem maps to a concrete decision
problem
15
Algorithms and Networks: NP-completeness
3
P and NP
Complexity Class P
FORMAL
• Class of languages L,
for which there exists
a deterministic Turing
Machine deciding
whether i  L, using
running time O(p(|i|))
for some polynomial p
17
INFORMAL
• Class of decision
problems that have
polynomial time
algorithms solving
them
Algorithms and Networks: NP-completeness
P
• An algorithm solves a problem
– Decides if string in {0,1}* belongs to subset
• Time: deterministic, worst case
• Algorithm uses polynomial time, if there is a
polynomial p such that on inputs of length n the
algorithm uses at most p(n) time.
– Size of input x is denoted |x|.
• P is the class of decision problems that have an
algorithm that solves it in polynomial time
18
Algorithms and Networks: NP-completeness
Using P for abstract problems
• Abstract problem (with encoding) is in P, if the
resulting problem is in P
• In practice: encoding and corresponding concrete
problem is assumed very implicitly
• For polynomiality, encoding does not matter!
– If we can transform encodings in polynomial time to
each other
• Details: see e.g., chapter 34 of Introduction to
Algorithms
19
Algorithms and Networks: NP-completeness
Language of a problem
• Decision problem as a language:
– Set of all yes-instances
• P is the set of all languages that have a
polynomial time decision algorithm
20
Algorithms and Networks: NP-completeness
Verification algorithm
• Verification algorithm has two arguments:
– Problem input
– Certificate (“solution”)
• Answers “yes” or “no”
• Checks if 2nd argument is certificate for first
argument for studied problem
• The language verified by the verification
algorithm A is
– {i | there is an c with A(i,c)= true}
21
Algorithms and Networks: NP-completeness
Complexity Class NP
Two equivalent definitions of NP
• Class of languages L, for which there exists a
Non-Deterministic Turing Machine deciding
whether i  L, using running time O(p(|i|))
• Class of languages L, for which there exists a
Deterministic Turing Machine verifying whether
i  L, using a polynomial sized certificate c, and
using running time O(p(|i|))
–
22
This definition we use: details follow
Algorithms and Networks: NP-completeness
NP
• Problems with polynomial time verification
algorithm and polynomial size certificates
• Problem L belongs to the class NP, if there exists
a 2-argument algorithm A, with
– A runs in polynomial time
– There is a constant d such that for each i, i is a yesinstance to L, if and only if there is a certificate c with
• A(i,c) = true
• |c| = O(|i|d)
23
Algorithms and Networks: NP-completeness
Many problems are in NP
• Examples: Hamiltonian Path, Maximum
Independent Set, Satisfiability, Vertex
Cover, …
• Al of these have trivial certificates (set of
vertices, truth assignment, …)
• In NP (not trivial): Integer Linear Program
24
Algorithms and Networks: NP-completeness
P  NP
• If A decides L in polynomial time, then as
verification algorithm, compute
– B(i,c) = A(i)
– “We do not need a certificate”.
• Famous open problem: P = NP ?? Or not??
25
Algorithms and Networks: NP-completeness
4
Reducibility
Reducibility
• Language L1 is polynomial time reducible
to language L2 (or: L1 P L2 ), if there exists
a polynomial time computable function f :
{0,1}*  {0,1}* such that
– For all x  {0,1}*:
• x  L1 if and only if f(x)  L2
27
Algorithms and Networks: NP-completeness
Lemma
Lemma: If L1 P L2 then if L2  P, then L1
 P.
Proof-idea: run an algorithm for L2 on f(i) for
input i to problem L1.
Also: If L1 P L2 then if L2  NP, then L1 
NP.
28
Algorithms and Networks: NP-completeness
5
NP-completeness and
the Cook-Levin theorem
NP-completeness
A language L is NP-complete, if
1. L  NP
2. For every L’ NP: L’ P L
A language L is NP-hard, if
1. For every L’ NP: L’ P L
•
30
NP-hardness sometimes also used as term for
problems that are not a decision problem, and for
problems that are ‘harder than NP’
Algorithms and Networks: NP-completeness
What does it mean to be
NP-complete?
• Evidence that it is (very probably) hard to
find an algorithm that solves the problem
– Always
– Exact
– In polynomial time
31
Algorithms and Networks: NP-completeness
CNF-Satisfiability
• Given: expression over Boolean variables in
conjunctive normal form
• Question: Is the expression satisfiable? (Can
we give each variable a value true or false
such that the expression becomes true).
– CNF: “and” of clauses; each clause “or” of
variables or negations (xi or not(xj))
32
Algorithms and Networks: NP-completeness
Cook-Levin theorem
• Satisfiability is NP-complete
– Most well known is Cook’s proof, using Turing
machine characterization of NP.
33
Algorithms and Networks: NP-completeness
Brief sketch of ideas in proof of
Cook-Levin theorem
• Suppose problem Q is in NP
• Build a Turing Machine that
– gets on an input tape a string (i, c), with c a certificate of size
O(|i|d)
– Runs the verification algorithm A in O(|i|q) time
– d, q constants
• Make a logic formula that expresses
“A halts in an accepting state on (i,c)”
– Variables:
• a(t,r,s): true if at time t, the r’s symbol on the tape is symbol s
• b(t,a): true if the machine is at time t at state a
• c(t,r): true if at time t, the reading head at the tape is at position r
– Lots of clauses that express that the variable act like a Turing
Machine tells them to do
34
Algorithms and Networks: NP-completeness
5
Proving that problems are
NP-complete
Proving problems NP-complete
Lemma
1. Let L’ P L and let L’ be NP-complete. Then
L is NP-hard.
2. Let L’ P L and let L’ be NP-complete, and L
 NP. Then L is NP-complete.
36
Algorithms and Networks: NP-completeness
3-Sat
• 3-Sat is the special case of CNF-Satisfiability
where each clause has exactly three literals
• Lemma: CNF-Satisfiability P 3-Sat
– Clauses with one or two literals:
• Use two extra variables p and q
• Replace 2-literal clause (x or y) by (x or y or p) and (x or y or
not(p))
• Similarly, replace 1-literal clause by 4 clauses
– Clauses with more than three literals:
• Repeat until no such clauses
– For (l1 or l2 or … lr) add new variable t and take as replacement
clauses (l1 or l2 or t) and (not(t) or l3 or … or lr)
37
Algorithms and Networks: NP-completeness
3-Sat is NP-complete
• Membership in NP
• Reduction
– 3-Sat is important starting problem for many
NP-completeness proofs
38
Algorithms and Networks: NP-completeness
Clique
• Given: graph G=(V,E), integer k
• Question: does G have a clique with at least
k vertices?
Clique is NP-complete.
In NP … easy!
NP-hardness: using 3-sat.
39
Algorithms and Networks: NP-completeness
Reduction for Clique
Clause: {x1,not(x2),x3}
• One vertex per literal
x1 not(x2) x3
per clause
• Edges between
x1
vertices in different
…
clauses, except edges
x2
between xi and not(xi)
not(x3)
• If m clauses, look for
Clause: {x1,x2,not(x3)}
clique of size m
40
Algorithms and Networks: NP-completeness
Correctness
• There is a satisfying truth assignment, if and only if there
is a clique with m vertices
• =>: Select from each clause the true literal. The
corresponding vertices form a clique with m vertices.
• <=: Set variable xi to true, if a vertex representing xi is in
the clique, otherwise set it to false. This is a satisfying truth
assignment:
– The clique must contain one vertex from each 3 vertices
representing a clause.
– It cannot contain a vertex representing xi and a vertex representing
not(xi).
41
Algorithms and Networks: NP-completeness
Independent set
• Independent set: set of vertices W  V,
such that for all v,w  W: {v,w}  E.
• Independent set problem:
– Given: graph G, integer k
– Question: Does G have an independent set of
size at least k?
• Independent set is NP-complete
42
Algorithms and Networks: NP-completeness
Independent set is NP-complete
• In NP.
• NP-hard: transform from Clique.
• W is a clique in G, if and only if W is
an independent set in the complement
of G (there is an edge in Gc iff. there is no
edge in G).
43
Algorithms and Networks: NP-completeness
How do I write down this proof?
• Theorem. Independent Set is NP-complete.
• Proof: The problem belongs to NP: as certificates, we use
sets of vertices; we can check in polynomial time for a set
that it is a clique, and that its size is at least k.
To show NP-hardness, we use a reduction from Clique. Let
(G,k) be an input to the clique problem. Transform this to
(Gc,k) with Gc the complement of G. As G has a clique
with at least k vertices, if and only if Gc has an independent
set with k vertices, this is a correct transformation. The
transformation can clearly be carried out in polynomial
time. QED
44
Algorithms and Networks: NP-completeness
Writing an NP-completeness
proof
• State the theorem
• Proof starts (or ends) with showing that problem belongs to NP.
– Sometimes (e.g., in journal paper: trivial). Only if it is.
– Otherwise, explain the certificates and how / that they can be checked in
polynomial time
• State which known NP-complete problem you transform from
– Careful: do not go in the wrong direction
• Explain the transformation
• Give the proof: input to original problem is Yes-instance, if and only if
transformed input is Yes-input for known NP-complete problem
– Note: you need to proof this in two directions
• Phrase: transformation can be carried out in polynomial time, hence
problem is NP-complete QED
45
Algorithms and Networks: NP-completeness
Vertex Cover
• Set of vertices W  V with for all {x,y} 
E: x  W or y  W.
• Vertex Cover problem:
– Given G, find vertex cover of minimum size
= vertex cover
46
Algorithms and Networks: NP-completeness
Vertex cover is NP-complete
• In NP.
• NP-hard: transform from independent set.
• W is a vertex cover in G, if and only if V-W
is an independent set in G.
47
Algorithms and Networks: NP-completeness
3-coloring
• 3-Coloring
– Given: Graph G=(V,E)
– Question: Can we
color the vertices with
3 colors, such that for
all edges {v,w} in E,
the color of v differs
from the color of w
1
2
2
3
3
1
2
• 3-coloring is NPcomplete
48
Algorithms and Networks: NP-completeness
Proof of NP-completeness of
3-coloring
true
false
• In NP: …
We noemen
• Transformation from 3-sat:
de kleuren:
C
C, true, false
• We build a graph in 3 steps:
1. Take a clique with 3
not
not
vertices true, false, C x1
x
2
x1
x2
2. Take two adjacent vertices for each
variable
49
Algorithms and Networks: NP-completeness
Continue
l1
3. For each clause
{l1,l2,l3}, take the
following gadget
C
true
50
l2
l3
Algorithms and Networks: NP-completeness
Finish
• One can show:
• If the formula is satisfiable, then there is a 3coloring of G
• If there is a 3-coloring of G, then the formula
is satisfiable
• In both cases, the intuition is a literal vertex is
colored true, iff we take it to be true in the
formula
• … argue transformation takes polynomial
time; QED
51
Algorithms and Networks: NP-completeness
6
Three techniques for NPcompleteness proofs
52
Algorithms and Networks: NP-completeness
Techniques for proving
NP-hardness
1) Local replacement
2) Restriction
3) Component Design
53
Algorithms and Networks: NP-completeness
6.1
Local replacement proofs
Technique 1:
Local replacement
• Form an instance of our problem by
– Taking an instance of a known NP-complete
problem
– Making some change “everywhere”
– Such that we get an equivalent instance, but
now of the problem we want to show NP-hard
55
Algorithms and Networks: NP-completeness
Examples of Local Replacement
• We saw or will see:
–
–
–
–
56
3-Satisfiability
Independent Set
TSP
Vertex Cover
Algorithms and Networks: NP-completeness
Example Local Replacement
• Planar 3-coloring
– Given: Planar graph G=(V,E)
– Question: Can we color the vertices of G with 3
colors, such that adjacent vertices have different
colors?
• Plan: transform from 3-coloring
–
–
–
–
57
Take arbitrary graph G
Draw G on the plane
So, we possibly get some crossings
Replace the crossings by something clever
Algorithms and Networks: NP-completeness
Clever reduction
• Garey et al found the following:
a
a
d
c
d
c
b
58
b
Algorithms and Networks: NP-completeness
Property of the gadget
• If a and b have the same color, we cannot color
the gadget with 3 colors
• If c and d have the same color, we cannot color
the gadget with 3 colors
• Otherwise, we can
• ... Some additional details (basically, repeat the
step) when an edge has more than one crossing
…
59
Algorithms and Networks: NP-completeness
7
Restriction proofs
Technique 2:
Restriction
• Take the problem.
• Add a restriction to the set of instances.
NOT to the problem definition!
• Show that this is a known NP-complete
problem
61
Algorithms and Networks: NP-completeness
Restriction: Weighted Vertex Cover
• Weighted vertex cover
– Given: Graph G=(V,E), for each vertex v  V,
a positive integer weight w(v), integer k.
– Question: Does G have a vertex cover of total
weight at most k?
• NP-complete
– In NP.
– NP-hardness: set all weights to 1 (VC).
62
Algorithms and Networks: NP-completeness
Restriction: Knapsack
• Knapsack
– Given: Set S of items, each with integer value v
and integer weight w, integers W and V.
– Question: is there a subset of S of weight no
more than W, with total value at least V?
• NP-complete
– In NP
– NP-hardness: set all weights equal to their
values (Subset sum)
63
Algorithms and Networks: NP-completeness
9
Component design proofs
Technique 3:
Component design
• Build (often complicated) parts of an
instance with certain properties
• Glue them together in such a way that the
proof works
• Examples: Clique, Hamiltonian Circuit
65
Algorithms and Networks: NP-completeness
Hamiltonian circuit
• Given: Graph G
• Question: does G have
a simple cycle that
contains all vertices?
66
Algorithms and Networks: NP-completeness
NP-completeness of
Hamiltonian Circuit
• HC is in NP.
• Vertex Cover P Hamiltonain Circuit:
complicated proof (component design)
– Widgets
– Selector vertices
– Given a graph G and an integer k, we construct
a graph H, such that H has a HC, if and only if
G has a VC of size k.
67
Algorithms and Networks: NP-completeness
Widget
• For each edge {u,v}
[u,v,1]
we have a widget Wuv
[v,u,1]
[u,v,6]
[v,u,6]
68
Algorithms and Networks: NP-completeness
Only possible ways to visit all vertices in widget
69
Algorithms and Networks: NP-completeness
Selector vertices
• We have k selector vertices s1, …, sk
• These will represent the vertices selected
for the vertex cover
70
Algorithms and Networks: NP-completeness
Connecting the widgets
• For each vertex v we
connect the widgets of
the edges {v,w}.
Suppose v has
neighbors x1, …, xr:
add edges
{[v,x1,6],[v,x2,1]},
{[v,x2,6],[v,x3,1]}, …,
{[v,xr-1,6],[v,xr,1]}.
71
Algorithms and Networks: NP-completeness
Connecting the selector vertices
to the widgets s
i
• Each selector vertex is
attached to the first
neighbor widget of
each vertex, i.e. to
vertex [v,x1,1] and to
the last neighbor
widget [v,xr,6]
Vertex in example
has degree 2
72
Algorithms and Networks: NP-completeness
Correctness of reduction
• Lemma: G has a vertex cover of size (at
most) k, if and only if H has a Hamiltonian
circuit.
73
Algorithms and Networks: NP-completeness
Finally
• The reduction takes polynomial time.
• So, we can conclude that Hamiltonian
Circuit is NP-complete.
74
Algorithms and Networks: NP-completeness
TSP
• NP-completeness of TSP by local replacement:
– In NP.
– Reduction from Hamiltonian Circuit:
•
•
•
•
Take city for each vertex
Take cost(i,j) = 1 if {i,j}  E
Take cost(i,j) = 0, if {i,j}  E
G has HC, if and only if there is a TSP-tour of length 0.
• Remark: variant with triangle inequality: use
weights 2, 1 and n
75
Algorithms and Networks: NP-completeness
10
Weak and strong NP-completeness
76
Algorithms and Networks: NP-completeness
Problems with numbers
• Strong NP-complete:
– Problem is NP-complete if numbers are given
in unary
• Weak NP-complete:
– Problem is NP-complete if numbers are given
in binary, but polynomial time solvable when
numbers are given in unary
77
Algorithms and Networks: NP-completeness
Examples
• Subset-sum
– Given: set of positive integers S, integer t.
– Question: Is there a subset of S with total sum t?
• Weak NP-complete. (Solvable in pseudo-polynomial time
using dynamic programming: O(nt) time…)
• 3-Partition
– Given: set of positive integers S, (integer t).
– Question: can we partition S into sets of exactly 3
elements each, such that each has the same sum (t)?
• Strong NP-hard.
• t must be the sum of S divided by |S|/3 = number of groups
• Starting point for many reductions
78
Algorithms and Networks: NP-completeness
Remark
• Easily made mistake: reductions from
subset sum that create exponentially large
instances
• Subgraph Isomorphism for degree 2 graphs
– Given: Graphs G and H, such that each vertex
in G and H has degree at most 2
– Question: Is G a subgraph of H?
• NP-hardness proof can be done with 3-PARTITION
79
Algorithms and Networks: NP-completeness
Subgraph isomorphism for
forests
• Input: Forest F =(V,E), forest H = (W,F)
• Question: Is there an injection f: W -> V,
such that for all {v,w} in F, {f(v),f(w)} is in
E, i.e., is H isomorphic to a subgraph of F?
• Theorem: Subgraph isomorphism for forests
is NP-complete
80
Algorithms and Networks: NP-completeness
Proof
• In NP
• NP-complete: transform from 3-partition
• Suppose we have numbers a(1), …, a(3m)
with total sum mt.
• F is forest with m paths, each with t vertices
• H is forest with 3m paths, with lengths a(1),
…, a(3m)
81
Algorithms and Networks: NP-completeness
11
Some discussion
How to prove NP-completeness
• Is there an easy proof by reduction?
• Is there a problem that “looks like our
problem” – try to do local replacement
• Try component design:
– Good starting problems are: 3-Sat; special cases
of 3-sat; 3-partition; subset sum; simple graph
problems (like clique, IS, VC, Coloring)
– … puzzle …
83
Algorithms and Networks: NP-completeness
Discussion
• Is P  NP? (who thinks so?)
• www.claymath.org/prizeproblems/pvsnp.htm : one
of the millennium problems
• Why so hard to prove?
P
• What to do with
problems that are
NPNP
NP-complete?
complete
• Other complexity notions…
84
Algorithms and Networks: NP-completeness
P vs NP is hard to prove
• P = NP? Hard to design poly algorithm...
• Current mathematical knowledge does not
suffice to prove P != NP:
– “Natural Proofs” can not separate P from NP
(Razborov & Rudich, 1993)
– PA = NPA, but PB != NPB for some oracles A
and B, so diagonalisation can not separate P
from NP (Baker, Gill, & Solovay, 1975)
85
Algorithms and Networks: NP-completeness
12
A Few Animals from
The Complexity Zoo
Much more classes
• In Theoretical Computer Science, a large
number of other complexity classes have
been defined
• Here, we give an informal introduction to a
few of the more important ones
• There is much, much, much more…
87
Algorithms and Networks: NP-completeness
coNP
• Complement of a class: switch “yes” and “no”
• coNP: complement of problems in NP, e.g.:
NOT-HAMILTONIAN
– Given: Graph G
– Question: Does G NOT have a Hamiltonian circuit
UNSATISFIABLE
– Given: Boolean formula in CNF
– Question: Do all truth assignments to the variable
make the formula false?
88
Algorithms and Networks: NP-completeness
PSPACE
• All decision problems solvable in polynomial space
• Unknown: is P=PSPACE?
• Savitch, 1970: PSPACE = NPSPACE
– NPSPACE: solvable with non-deterministic program in
polynomial time
• PSPACE-complete, e.g.,
– generalized Tic-Tac-Toe, generalized Reversi,
– Some puzzles that need an exponential number of moves
– Quantified Boolean formula’s (QBF):
x1x2x3x4 x1  x2  x3   x2  x3 
89
Algorithms and Networks: NP-completeness
EXPTIME
• Decision problems that can be solved in
exponential time
• P is unequal EXPTIME (Stearns, Hartmanis,
1965)
• EXPTIME complete problems:
– Generalized chess, generalized checkers, generalized go
(Japanese drawing rule)
– Given a Turing Machine M and integer k, does M halt
after k steps?
90
Algorithms and Networks: NP-completeness
And a few more
• NEXPTIME: non-deterministic exponential
time
• EXPSPACE = NEXPSPACE: exponential
space
91
Algorithms and Networks: NP-completeness
Graph Isomorphism
• Discussed in another lecture
• Given two graphs, are they isomorphic?
• In NP, not known to be NP-complete; not
known to be in P
• Several problems are equaly hard:
Isomorphism-complete
92
Algorithms and Networks: NP-completeness
NC
• NC: “Nicks class”, after Nick Pippinger
• Talks about the time to solve a problem
with a parallel machine
• Model: we have a polynomial number of
processors, that use the same memory
– Variants depending on what happens when
processors try to read or write the same
memory location simultaneously
93
Algorithms and Networks: NP-completeness
NC – the definition
• NC: decision problems that can be solved with a
PRAM (Parallel Random Access Machine) with
polynomial number of processors in
polylogarithmic time
– O( (log n)d) for some constant d
• Unknown: P=NC?
• P-complete problems are expected not to be in
NC. An example is
– Linear Programming (formulated as decision problem)
94
Algorithms and Networks: NP-completeness
Counting
• #P: (“Sharp-P”)
• Problems that outputs a number
• The precise definition will not be given here. Think as:
“what is the number of certificates for this instance”, with
polynomial checking of certificates
• #P-complete e.g.:
– Number of satisfying truth assignments of 3SAT-formula
– Number of Hamiltonian circuits in a graph
– Number of perfect matchings in a given graph
• PP is a related class (vaguely: “decide if the number of
solutions is at most given number k”)
95
Algorithms and Networks: NP-completeness
On PP and #P
• Inference:
– Given: probabilistic network, observations O,
variable X, value x, value p in [0,1]
– Question: Pr(X = x | O ) <= p?
• Decision variant of problem from course
Probabilistic Reasoning
• Is PP-complete; variants are #P-complete
• PP-hard and #P-hard problems are probably
not polynomial...
96
Algorithms and Networks: NP-completeness
LSPACE or L
• Problems can be solved with only
logarithmic extra space:
– You can read the input as often as you want
– You may use only O(log n) extra memory
• E.g.: Q(1) pointers to your input
• NL: non-deterministic logspace...
97
Algorithms and Networks: NP-completeness
More
• The Polynomial Time Hierarchy
• Oracles
• UP: unique solutions
98
Algorithms and Networks: NP-completeness