Presentation is loading. Please wait.

Presentation is loading. Please wait.

SUBSET-SUM Instance: A set of numbers denoted S and a target number t.

Similar presentations


Presentation on theme: "SUBSET-SUM Instance: A set of numbers denoted S and a target number t."— Presentation transcript:

1 SUBSET-SUM Instance: A set of numbers denoted S and a target number t.
Problem: To decide if there exists a subset YS, s.t yYy=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 YS Accept iff yYy=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


Download ppt "SUBSET-SUM Instance: A set of numbers denoted S and a target number t."

Similar presentations


Ads by Google