# INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.

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

INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011

A CIRCUIT … is a collection of gates and inputs connected by wires. ∧ ⋁ ¬ ⋁ x0x0 x1x1 x2x2 … is satisfiable if some setting of inputs makes it output 1. … can be encoded as a string CIRCUIT-SAT = { 〈 C 〉 : C is a satisfiable circuit }

CIRCUIT-SAT IS DECIDABLE is_satisfiable(C): for each x ∈ {0,1} n : if (circuitValue(C,x)==1): return True else: return False How long does the algorithm take on n-bit inputs? COMPLEXITY THEORY: What problems have efficient algorithms? CIRCUIT-SAT ∈ TIME(2 O(n) )

TIME COMPLEXITY Definition: Let M be a TM that halts on all inputs. The running time or time-complexity of M is the function ƒ : N  N, where ƒ(n) is the maximum number of steps that M uses on any input of length n. Definition: TIME(t(n)) = { L | L is a language decided by a O(t(n)) time Turing Machine }

FAST ALGORITHMS Idea: a problem A is efficiently decidable if A  TIME( ) ?

Theorem: Let t(n) be a function such that t(n)  n. Then every t(n)-time multi-tape TM has an equivalent O(t(n) 2 ) single tape TM COMPUTATIONAL MODELS A = { 0 k 1 k | k  0 }  TIME(n log n) No (single-tape) TM decides A in time o(n log n) A is decidable in time O(n) with a two-tape TM

P = TIME(n c )  c  ℕ IMPORTANT COMPLEXITY CLASS P is the class of problems that can be solved in polynomial time: they are efficiently decidable

WHY P? Many t(n) time variants of TMs can be simulated in time O(t(n) c ) by a single-tape TM, including: TMs with double-unbounded tape: O(t(n)) Multi-tape TMs: O(t 2 (n)) RAM Machines: O(t 6 (n)) Polynomials are the simplest class of functions closed under composition, multiplication, etc… They “grow slowly” compared to exponentials

EXAMPLE: PATH A directed graph with n nodes… is a set of vertices V = {1,2,…,n} and a set of edges E ⊆ VV. 1 2 3 4 can be encoded as an adjacency matrix has a path from s to t if there are nodes i 1, …, i k such that { (s,i 1 ), (i 1, i 2 ),…, (i k, t) } ⊆ E. PATH = { 〈 G,s,t 〉 | G has a path from s to t } A ij = 1, if (i,j) ∈ E 0, otherwise

PATH IS IN P has_path(G,s,t): mark s and add it to the queue while the queue is not empty: take v i from the queue for each v j in {1,…, n}: if A ij = 1 and v j is not marked: mark v j and add it to the queue if t is marked: return True else: return False 1 2 3 4 Total RAM Complexity: O(n 2 ) 5 6 7 O(1) O(n)

EXAMPLES Show that the following are in P: 3PATH = { 〈 G,s,t 〉 | There is a path of length at most 3 from s to t} E DFA = { 〈 D 〉 | D is a DFA and L(D)=Ø } MEDIAN = { 〈 (y 1,…,y n ),k 〉 | median(y 1,…,y n ) is at least k }

STABLE MARRIAGES A High School has N boys and N girls. Each has a ranked list of dates for the 1951 Senior Prom. Albert BobCharlie Alice Betty Carol B,C,A A,C,B A,B,C B,A,CC,A,BC,B,A An unstable couple prefer each other to their current dates. STABLE = { 〈 B,G 〉 | There is a pairing with no unstable couple}

STABLE MARRIAGES in P Albert BobCharlie Alice Betty Carol B,C,A A,C,B A,B,C B,A,C C,A,B C,B,A 1. Each boy asks his “first choice” to the prom. 2. Each girl “accepts” her best offer – for now. 3. Repeat until everyone has a date: a. Each boy with no date asks the next girl on his list. b. Each girl “accepts” her new best offer – for now. Total Time = O(n 2 )

NON-DETERMINISTIC TMs …are just like standard TMs, except: 1. The machine may proceed according to several possibilities. Formally, the transition function outputs a set of zero or more (state,symbol,direction) choices. 2. The machine accepts a string if there exists a path from start configuration to an accepting configuration 3. The running time of the machine is the length of the longest path to q accept or q reject.

Deterministic Computation Non-Deterministic Computation accept or rejectaccept reject

{ L | L is decided by a O(t(n))-time non-deterministic Turing machine } Definition: NTIME(t(n)) = TIME(t(n))  NTIME(t(n)) NTIME(t(n)) ⊆ TIME(?)

Non-Deterministic Computation accept reject ntm_accepts(M,C): if (current_state(C) = q accept ): return True if (current_state(C) = q reject ): return False for each C’ ∈ M.  (C): if ntm_accepts(M,C’): return True return False Deterministic Computation 2c2c t(n) NTIME(t(n)) ⊆ TIME(2 O(t(n)) )

NON-DETERMINISTIC PROGRAMS …are just like standard programs, except: 1. There is a special instruction, guess(), that can return 0 or 1. 2. The program accepts an input if there exists a list of guesses that make it accept. 3. The running time of the program is the maximum number of steps that can be caused by calls to guess().

NP = NTIME(n c )  c  ℕ

BOOLEAN FORMULAS (  x  y)  z  = logical operations variables parentheses A satisfying assignment is a setting of the variables that makes the formula true x = 1, y = 1, z = 1 is a satisfying assignment for   (x  y)  (z   x) 0010

SAT = {  |  is a satisfiable Boolean formula } A Boolean formula is satisfiable if there exists a satisfying assignment for it  (x  y)  x a  b  c   d YES NO

A 3cnf-formula is of the form: (x 1   x 2  x 3 )  (x 4  x 2  x 5 )  (x 3   x 2   x 1 ) clauses (x 1  x̅ 2  x 1 ) (x 3  x 1 )  (x 3  x̅ 2  x̅ 1 ) (x 1  x 2  x 3 )  (x̅ 4  x 2  x 1 )  (x 3  x 1  x̅ 1 ) (x 1  x̅ 2  x 3 )  (x 3  x̅ 2  x̅ 1 ) YES NO 3SAT = {  |  is a satisfiable 3cnf-formula }

Theorem: 3SAT  NP 3SAT = {  |  is a satisfiable 3cnf-formula } 1. Check if the formula is in 3cnf On input  : 2. For each variable, non-deterministically substitute it with 0 or 1 3. Test if the assignment satisfies  (x  y  x) (  y  )00 (  y  ) 11 (  )000(  )010

Theorem: 3SAT  NP 3SAT = {  |  is a satisfiable 3cnf-formula } 1. Check if the formula is in 3cnf On input  : 2. For each variable x i : 3. Test if the assignment satisfies  a. Set temp = guess(). b. Scan across , replacing x i with temp. Total running time = O(mn)