Download presentation
Presentation is loading. Please wait.
Published byEmma Bridges Modified over 6 years ago
1
SUBSET-SUM Instance: A set of numbers denoted S and a target number t.
Problem: To decide if there exists a subset YS, s.t yYy=t. Problem definition: Subset Sum - Given a (multi)set A of integer numbers and an integer number t, does there exist a subset of A such that the sum of its elements is equal to t?
2
SUBSET-SUM is in NP On input S,t: Guess YS Accept iff yYy=t.
The length of the certificate: O(n) (n=|S|) Time complexity: O(n)
3
SUBSET-SUM is NP-Complete
Proof: We’ll show 3SAT SUBSET-SUM. t
4
Examples SUBSET-SUM … because 2+8=10
… because 11 cannot be made out of {2,4,8}
5
Reducing 3SAT to SubSet Sum
Proof idea Choosing the subset numbers from the set S corresponds to choosing the assignments of the variables in the 3CNF formula. The different digits of the sum correspond to the different clauses of the formula. If the target t is reached, a valid and satisfying assignment is found.
6
Satisfying Clauses c1 c2 …… ck yi zi digit per clause
number per variable xi assigned true: yi number per variable xi assigned false: zi 1 if xi is in cj 0 otherwise 1 if xi is in cj 0 otherwise
7
Subset Sum + clause: 3CNF formula: Make the number table,
1 2 3 4 +x1 –x1 +x2 –x2 +x3 –x3 +x4 –x4 1 3CNF formula: Make the number table, and the ‘target sum’ t dummies + 1 3
8
Reducing 3SAT to SubSet Sum
Let 3CNF with k clauses and variables x1,…,x. Create a Subset-Sum instance <S,t> by: 2+2k elements of S = {y1,z1,…,y,z,g1,h1,…,gk,hk} yj indicates positive xj literals in clauses zj indicates negated xj literals in clauses gj and hj are dummies and
9
Subset Sum + clause: 3CNF formula: Make the number table,
1 2 3 4 +x1 –x1 +x2 –x2 +x3 –x3 +x4 –x4 1 y1 z1 y2 z2 y3 z3 y4 z4 3CNF formula: Make the number table, and the ‘target sum’ t dummies + 1 3
10
Subset Sum Note 1: The “1111” in the target forces a proper assignment
+x1 –x1 +x2 –x2 +x3 –x3 +x4 –x4 1 Note 1: The “1111” in the target forces a proper assignment of the xi variables. Note 2: The target “3333” is only possible if each clause is satisfied. (The dummies can add maximally 2 extra.) 1 3
11
Subset Sum + is a satisfying assignment +x1 –x1 +x2 –x2 +x3 –x3 +x4
1 3 + is a satisfying assignment 1 3
12
Subset Sum + is not a satisfying assignment +x1 –x1 +x2 –x2 +x3 –x3
1 ? 2 + is not a satisfying assignment 1 3
13
Proof 3SAT Subset Sum For every 3CNF , take target t=1…13…3 and the corresponding set S. If 3SAT, then the satisfying assignment defines a subset that reaches the target. Also, the target can only be obtained via a set that gives a satisfying assignment for .
14
Directed Hamiltonian Path
Given a directed graph G, does there exist a Hamiltonian path, which visits all nodes exactly once? Two Examples: but this graph has no Hamiltonian path this graph has a Hamiltonian path
15
3SAT to Hamiltonian Path
Proof idea: Given a 3CNF , make a graph G such that … a Hamiltonian path is possible if and only if there is a zig-zag path through G, … where the directions (zig or zag) determine the assignments (true or false) of the variables x1,…,xL of .
16
“Zig-Zag Graphs” s t There are 2L different Hamiltonian paths from s to the target t. For every i, “Zig” means xi=True … while “Zag” means xi=False
17
Accessing the Clauses stands for If has K clauses, = C1 Ck,
then xi has K “hubs”: Idea: Make K extra nodes Cj that can only be visited via the hub- path that defines an assignment of xi which satisfies the clause (using zig/zag = T/F). stands for
18
Connecting the Clauses
Let the clause Cj contain xi: If then xi=True=“zig” reaches node Cj If then xi=False=“zag” reaches node Cj
19
Proof 3SAT P HamPath Given a 3CNF (x1,…,xL) with K clauses
Make graph G with a zig/zag levels for every xi Connect the clauses Cj via the proper “hubs” If SAT, then the satisfying assignment defines a Hamiltonian path, and vice versa.
20
Example 4 variables… 4 clauses… Clauses connected via zig-zag “hubs”
21
Example assignment… …satifies all four clauses; hence it defines a Hamiltonian Path
22
Example assignment… …does not satify
first clause; hence the path misses the C1 node
23
More on Hamiltonian Path
Useful for proving NP-completeness of “optimal routing problems” Typical example: NP-completeness of “Traveling Salesman Problem” Issue of directed versus undirected graphs
24
Forcing Directions Given a directed graph with s,x1,…,xk,t
Replace s with sout, the t with tin ,and every xi with the triplet “xi,in—xi,mid — xi,out” Redraw the original directed edges with edges going from out-nodes to in-nodes. If and only if the directed graph has a HamPath from s to t, then so has this graph.
25
Example: Directions becomes becomes
y y xin sout xmid xout becomes ymid yout yin xin sout xmid xout becomes ymid yout yin “Undirected HamPath” is NP-complete
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.