# CSci 4011 INHERENT LIMITATIONS OF COMPUTER PROGRAMS.

## Presentation on theme: "CSci 4011 INHERENT LIMITATIONS OF COMPUTER PROGRAMS."— Presentation transcript:

CSci 4011 INHERENT LIMITATIONS OF COMPUTER PROGRAMS

HARDEST PROBLEMS IN NP Definition: A language B is NP-complete if:
Theorem: A language B is NP-complete if: 1. B  NP 2. A is NP-complete and A ≤P B 2. Every A in NP is poly-time reducible to B (i.e. B is NP-hard) If B is NP-Complete and P  NP, then There is no fast algorithm for B.

REDUCTION STRATEGIES A reduction by restriction shows that the source
problem is a special case of the target problem. For example, 3SAT ≤P CNF-SAT because every satisfiable 3CNF is also a satisfiable CNF. Example. Prove 3SAT ≤P 4SAT by restriction. A 3CNF can be converted to an equivalent 4CNF by repeating one literal in each clause.

REDUCTION STRATEGIES A reduction from A to B by local replacement
shows how to “translate” between “units” of A and “units” of B. Example. vertex cover “units” are vertices and edges; set cover “units” are elements and sets. Example. CIRCUIT-SAT units are gates, CNFSAT units are clauses, 3SAT units are 3-literal clauses.

GRADUATION A transcript is a set of course numbers a student has taken
A major consists of: Pairs: exactly one of which must be taken Lists: at least one course of which must be taken GRADUATION = {〈T,M〉 | a subset of T satisfies M} For example: T = {1901A, 1902B, 1902A, 2011, 4041A, 4061, 4211} M = [1901A,1901B], [1902A,1902B] (4011,4041A,4041B), (4211,4707), (4061)

GRADUATION ∈ NP: The subset is a proof that (T,M) ∈ GRADUATION. 3SAT ≤P GRADUATION: T = {101, 102, 201, 202, 301, 302} (x1 ⋁ x2 ⋁ ¬x3) ∧ (¬x1 ⋁ x2 ⋁ x2) ∧ (¬x2 ⋁ x3 ⋁ x1) M = [101, 102], [201, 202], [301, 302] (101,201,302), (101,201,201), (101,202,301)

GRADUATION ∈ NP: The subset is a proof that (T,M) ∈ GRADUATION. 3SAT ≤P GRADUATION: Let  = C1 ∧ C2∧ … ∧Cm have variables x1…xk For each xi: add classes i01 and i02 to T. add pair (i01,i02) to M. For each Cj, we add a triple to M: if xi is a literal in Cj, the triple includes i01. if ¬xi is a literal in Cj, the triple includes i02.

UHAMPATH No HAM PATH Undirected HAM PATH A B A B C D C D E F E F
UHAMPATH = {〈G,s,t〉 | G is an undirected graph with a Hamiltonian path from s to t}

HAMPATH ≤P UHAMPATH Amid A B Aout Ain C D E F

HAMPATH ≤P UHAMPATH A B C D E F

HAMPATH ·P UHAMPATH f(G,s,t) = (G’,s’,t’) where: For each node u  G:
add nodes uin, uout, umid to G’. add edges {uin,umid} and {umid,uout} to G’ For each edge (u,v)G, add {uout,vin} to G’ s’ = sin, t’ = tout. If 〈G,s,t〉 HAMPATH, then 〈G’,s’,t’〉UHAMPATH: (s,u,v,..,t) ! (sin,smid,sout,uin,umid,uout,vin,vmid,vout,…tout)

If v2  smid, then no vi=smid. So v2=smid, v3=sout
HAMPATH ·P UHAMPATH If 〈G’,s’,t‘〉 2 UHAMPATH, then 〈G,s,t〉2 HAMPATH: Let (sin=v1,v2,…,v3n=tout) be the undirected path. Claim: for all i≥0, there exists u  G so that: v3i+1=uin, v3i+2=umid, v3i+3=uout. i=0: If v2  smid, then no vi=smid. So v2=smid, v3=sout Induction: if v3i = u’out, then v3i+1=uin, so v3i+2=umid. The directed Hamiltonian path is (u1, u2, …, un)

3SAT P SUBSET-SUM We transform a 3-cnf formula  into 〈y1…yn, t〉:
  3SAT  〈y1…yn,t〉  SUBSET-SUM The transformation can be done in time polynomial in the length of 

x2 x1 x1 (x1 ⋁ x2 ⋁ x2) ∧ (¬x1⋁ x2 ⋁ x2) ∧ (x1 ⋁ ¬x2 ⋁ x2) x2
Each variable and each clause result in two yi’s. Each yi will have a digit for each clause and variable. x2 x1 C3 C2 C1 y1 1 y2 y3 y4 y5 y6 y7 y8 y9 y10 t 3 x1 (x1 ⋁ x2 ⋁ x2) ∧ (¬x1⋁ x2 ⋁ x2) ∧ (x1 ⋁ ¬x2 ⋁ x2) x2 C3 C2 C1

REDUCTION STRATEGIES A reduction by component design constructs
gadgets that simulate variables and clauses. In particular a reduction must provide: a gadget to force the solution to the target instance to choose either x or ¬x a gadget to force the solution to the target instance to choose one literal from each clause a gadget to force the solution to the target instance to satisfy every clause

K-CLIQUES b a e c d f g

3SAT P CLIQUE We transform a 3-cnf formula  into 〈G,k〉 such that
  3SAT  〈G,k〉  CLIQUE The transformation can be done in time polynomial in the length of 

(x1  x1  x2)  (x1  x2  x2)  (x1  x2  x2)
k = #clauses

(x1  x1  x1)  (x1  x1  x2)  (x2  x2  x2)  (x2  x2  x1)

3SAT P CLIQUE We transform a 3-cnf formula  into 〈G,k〉 such that
  3SAT  〈G,k〉  CLIQUE If  has k clauses, we create a graph with k clusters of 3 nodes each. Each cluster corresponds to a clause. Each node in a cluster is labeled with a literal from the clause. We do not connect any nodes in the same cluster We connect nodes in different clusters whenever they are not contradictory

3SAT P CLIQUE We transform a 3-cnf formula  into 〈G,k〉 such that
  3SAT  〈G,k〉  CLIQUE  is satisfiable iff there is an assignment that makes at least one literal true in each clause. The nodes corresponding to these k true literals do not contradict each other, so they form a k- clique in G. A k-clique in G must have one node from each cluster. Setting the corresponding literals to true will satisfy 

VERTEX COVER Theorem: VERTEX-COVER is NP-Complete
b a e c d b a e c d Theorem: VERTEX-COVER is NP-Complete (1) VERTEX-COVER  NP (2) CLIQUE ≤P IND-SET ≤P VERTEX-COVER

VERTEX-COVER = { 〈G,k〉 | G is an undirected graph with a k-node vertex cover }
Theorem: VERTEX-COVER is NP-Complete (1) VERTEX-COVER  NP (2) 3SAT P VERTEX-COVER

3SAT P VERTEX-COVER We transform a 3-cnf formula  into 〈G,k〉 such that   3SAT  〈G,k〉  VERTEX-COVER The transformation can be done in time polynomial in the length of 

(x1  x1  x2)  (x1  x2  x2)  (x1  x2  x2)
k = 2(#clauses) + (#variables)

HAMILTONIAN PATHS b a e c d f h i g

HAMPATH = { 〈G,s,t〉 | G is a graph with a Hamiltonian path from s to t }
Theorem: HAMPATH is NP-Complete (1) HAMPATH  NP (2) 3SAT P HAMPATH

3SAT P HAMPATH We transform a 3-cnf formula  into 〈G,s,t〉 so that
  3SAT  〈G,s,t〉  HAMPATH The transformation can be done in time polynomial in the length of 

(x1 Ç x2 Ç x2) Æ (:x1 Ç x2 Ç x2) s x1 x1 x2 x2 t

(x1 Ç x2 Ç x2) Æ (:x1 Ç x2 Ç x2) s x1 c1 x11 x12 x21 x22 x1 x2 x2 t

(x1 Ç x2 Ç x2) Æ (:x1 Ç x2 Ç x2) s x1 x11 x12 x14 x15 x1 c1 c2 x2 x21
t

3-COLORING b a e c d b a e c d a a d d b b c

3SAT P 3COLOR We transform a 3-cnf formula  into a graph G so
  3SAT  G  3COLOR The transformation can be done in time polynomial in the length of 

(x1 Ç x2 Ç x2) ? x1 x2 F T

(x1 Ç x2 Ç x2) ? x1 x1 F T x2 x2 c11 c12 c13 c14 c15 c16

(x1 Ç x2 Ç x2) Æ (x2 Ç :x1 Ç :x1) ? x1 x1 F T x2 x2 c11 c12 c13 c11

(x1 Ç x2 Ç x2) Æ (x2 Ç :x1 Ç :x1) ? x1 x1 F T x2 x2 c11 c12 c13 c11