Master’s Programme in Computer Science
Juha Kärkkäinen
Based on slides by Veli Mäkinen
DESIGN AND ANALYSIS OF ALGORITHMS (DAA 2018)
11/10/2018 1 Design and Analysis of Algorithms 2018 week 6
SAT is NP-complete & encodings
Week VI
11/10/2018 Design and Analysis of Algorithms 2018 week 6 2
SAT is NP-complete
Cook-Levin theorem, proof using Turing machine
11/10/2018 Design and Analysis of Algorithms 2018 week 6 3
Master’s Programme in Computer Science
REDUCTION TREE COVERED IN THIS COURSE
SAT (now)
3CNF-SAT (last week)
CLIQUE (last week) SUBSET-SUM (today)
VERTEX-COVER (last week)
HAM-CYCLE (see the book, this shows how complex reduction gadgets can be)
Independent set (study group)
Multi-LCS (study group)
Inapproximability of TSP (last week) Hamiltonian path (study group)
11/10/2018 Design and Analysis of Algorithms 2018 week 5 4
Unbounded Knapsack (exercises)
Master’s Programme in Computer Science
RECALL
11/10/2018 Design and Analysis of Algorithms 2018 week 6
Master’s Programme in Computer Science
RECALL: BOOLEAN SATISFIABILITY SAT
11/10/2018 Design and Analysis of Algorithms 2018 week 6 6
Φ=((x1˄x2)˅¬x3) (x4→x5)
Master’s Programme in Computer Science
BACK TO TURING
Proposition: Computation in RAM model can be simulated in
polynomial time with Turing machine, and vice versa. (proof
omitted here)
Corollary. Problem L is in NP iff it can be solved in O(nc) time on
a non-deterministic Turing machine (NDTM), where c is a
constant.
11/10/2018 Design and Analysis of Algorithms 2018 week 6 7
Master’s Programme in Computer Science
NON-DETERMINISTIC TURING MACHINE (NDTM)
q
p
start state accepting state
a
Head in an input / working tape
Transition: Read ”a” on tape, replace it with ”b”, and
move head to the right (+1), move state p->q
11/10/2018 Design and Analysis of Algorithms 2018 week 6 8
Nondeterministic:
accept input if
there exists a path
from the start state
to an accepting state.
Master’s Programme in Computer Science
MORE FORMALLY…
11/10/2018 Design and Analysis of Algorithms 2018 week 6 9
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
11/10/2018 Design and Analysis of Algorithms 2018 week 6 10
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
a
b
… p(n)
2p(n)
11/10/2018 Design and Analysis of Algorithms 2018 week 6 11
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
SAT variables: Hi,k = 1 if head is at position i at step k
Qq,k = 1 if state q is active at step k
Ti,c,k = 1 if tape contains symbol c at index i at step k
11/10/2018 Design and Analysis of Algorithms 2018 week 6
a
b
… p(n)
2p(n)
i
k c
…
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
Initialization (step 0): H0,0=1
Qs,0=1
Ti,c,0=1 if c is initial content of cell i
11/10/2018 Design and Analysis of Algorithms 2018 week 6
a
b
… p(n)
2p(n)
i c
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
11/10/2018 Design and Analysis of Algorithms 2018 week 6 14
a
b
… p(n)
2p(n)
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
11/10/2018 Design and Analysis of Algorithms 2018 week 6 15
a
b
… p(n)
2p(n)
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
a
b
… p(n)
2p(n)
c
i
k
blackboard/exercise
11/10/2018 Design and Analysis of Algorithms 2018 week 6 16
˅
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
a
b
p(n)
2p(n)
c
c’
…
…
k
k+1 p
q
i
11/10/2018 Design and Analysis of Algorithms 2018 week 6 17
˄ ˄
Master’s Programme in Computer Science
THEOREM: SAT IS NP-COMPLETE
Enforcing ”one head at a time” creates O(p(n)3)long expression,
and other parts create shorter expressions.
Thus, an instance of any problem in NP can be casted in
polynomial time to a boolean expression, such that a ”yes”
instance maps into a satisfying variable assignment where the
variables set to ”true” reveal a state-path transition in the NDTM
to an accepting state.
11/10/2018 Design and Analysis of Algorithms 2018 week 6
Master’s Programme in Computer Science
REDUCTION TREE COVERED IN THIS COURSE
SAT (done)
3CNF-SAT (last week)
CLIQUE (last week) SUBSET-SUM (today)
VERTEX-COVER (last week)
HAM-CYCLE (see the book, this shows how complex reduction gadgets can be)
Independent set (study group)
Multi-LCS (study group)
Inapproximability of TSP (last week) Hamiltonian path (study group)
11/10/2018 Design and Analysis of Algorithms 2018 week 5 19
Unbounded Knapsack (exercises)
Encodings
Pseudopolynomiality of dynamic programming solutions to
subset sum and knapsack
11/10/2018 Design and Analysis of Algorithms 2018 week 6 20
Master’s Programme in Computer Science
ENCODING INPUT P = problems that can be solved in O(nk) time
k constant
n input length
NP = problems that can be verified in O(nk) time
k constant
n input length
The size of input depends on its encoding:
• Any encoding of polynomial size in n is ok
• Encoding integers can be tricky
• Binary encoding: 6=110=00000110. How many bits to use?
• Unary encoding: 6=0000001=061. Exponentially larger than binary.
• Gamma encoding: 6=0001 110. (0001 is number of bits in unary)
11/10/2018 Design and Analysis of Algorithms 2018 week 5 21
Encoding?
Master’s Programme in Computer Science
EXAMPLE: HAMILTONIAN CYCLE PROBLEM
Given an undirected graph G=(V,E), is there a cycle visiting each vertex exactly once?
Assume |V|≤|E|.
Encoding:
vertices numbered 1..|V|.
Input = <|E|,(v1,w1),(v2,w2),…, (v|E|,w|E|)>
000000..0 1 bin(|E|) 00..0bin(v1) 00..0bin(w1) …
Input size ~ 2(|E|+1)log |E| bits
Unary encoding for all values, ≤ (2|E|+1)(|V|+1) bits, would be polynomial too.
number of bits in unary 0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
…
x bin(x)
11/10/2018 Design and Analysis of Algorithms 2018 week 6 22
Master’s Programme in Computer Science
EXAMPLE: UNBOUNDED KNAPSACK
Unbounded Knapsack: Given integers W and V and m pairs of (weight,value) item types, is there a collection of items with total weight ≤W and total value ≥V.
In study groups we saw an O(mW) dynamic programming algorithm which makes Knapsack pseudopolynomially solvable: there is a fast algorithm if input parameters are suitably bounded.
However, Unbounded Knapsack is NP-hard (exercise). This does not contradict pseudopolynomiality because of encodings.
• Input can be encoded in O(m log N) bits, where N is the largest integer in input.
• Assume N=W=2m. Then input size is O(m2) bits but the time complexity is O(m2m), which is exponential in input size.
11/10/2018 Design and Analysis of Algorithms 2018 week 6 23
Master’s Programme in Computer Science
EXAMPLE: SUBSET-SUM
SUBSET-SUM: Given an integer t and a set S of integers, is there
a subset S’ of S with a total sum of exactly t?
SUBSET-SUM is another pseudopolynomially solvable but NP-
complete problem.
• We saw an O(|S|t) time dynamic programming algorithm earlier
(lecture blackboard).
• NP-hardness proof by reduction from 3CNF-SAT (blackboard,
book Sect. 34.5.5).
11/10/2018 Design and Analysis of Algorithms 2018 week 6 24
Master’s Programme in Computer Science
REDUCTION TREE COVERED IN THIS COURSE
SAT (today)
3CNF-SAT (last week)
CLIQUE (last week) SUBSET-SUM (today)
VERTEX-COVER (last week)
HAM-CYCLE (see the book, this shows how complex reduction gadgets can be)
Independent set (study group)
Multi-LCS (study group)
Inapproximability of TSP (last week) Hamiltonian path (study group)
11/10/2018 Design and Analysis of Algorithms 2018 week 5 25
Unbounded Knapsack (exercises)
Master’s Programme in Computer Science
RECAP: PROVING NP-COMPLETENESS
11/10/2018 Design and Analysis of Algorithms 2018 week 6 26
Prove NP-completeness of L by reduction from L’
1. Prove L is in NP
• Certificate that can be verified in polynomial time
2. Describe conversion from L’ to L
• L’ is known NP-complete problem
• Conversion of input to input, not solution to solution
3. Prove that “yes”-instance maps to “yes”-instance
• Conversion of solution to solution
4. Prove that “no”-instance maps to “no”-instance
• Often proof by contradiction: “yes”-instance maps to “yes”-instance in
opposite direction (which contradicts “no”-instance mapping to “yes”-
instance).
Top Related