Computability THEORY OF COMPUTATION

Similar documents
Chap. 4 Computability

Chapter 8. Turing Machine (TMs)

Computability Theory. CS215, Lecture 6,

Decidability: Church-Turing Thesis

CS Lecture 29 P, NP, and NP-Completeness. k ) for all k. Fall The class P. The class NP

THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET

CSE 105 Theory of Computation

CS Lecture 28 P, NP, and NP-Completeness. Fall 2008

Theory of Computation

CP405 Theory of Computation

UNRESTRICTED GRAMMARS

Theory of Computer Science

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Theory of Computation - Module 4

Turing s thesis: (1930) Any computation carried out by mechanical means can be performed by a Turing Machine

Notes for Lecture Notes 2

Primitive recursive functions: decidability problems

1 Computational Problems

Most General computer?

CS21 Decidability and Tractability

Turing Machines (TM) Deterministic Turing Machine (DTM) Nondeterministic Turing Machine (NDTM)

Complexity: Some examples

Chapter 1 - Time and Space Complexity. deterministic and non-deterministic Turing machine time and space complexity classes P, NP, PSPACE, NPSPACE

U.C. Berkeley CS278: Computational Complexity Professor Luca Trevisan August 30, Notes for Lecture 1

CS154, Lecture 13: P vs NP

Large Numbers, Busy Beavers, Noncomputability and Incompleteness

Mm7 Intro to distributed computing (jmp) Mm8 Backtracking, 2-player games, genetic algorithms (hps) Mm9 Complex Problems in Network Planning (JMP)

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

About the relationship between formal logic and complexity classes

CS154, Lecture 13: P vs NP

Informal Statement Calculus

Computation Histories

Lecture 3: Nondeterminism, NP, and NP-completeness

Notes for Lecture 3... x 4

Q = Set of states, IE661: Scheduling Theory (Fall 2003) Primer to Complexity Theory Satyaki Ghosh Dastidar

Advanced Topics in Theoretical Computer Science

15.1 Proof of the Cook-Levin Theorem: SAT is NP-complete

DM17. Beregnelighed. Jacob Aae Mikkelsen

Part I: Definitions and Properties

Undecidability COMS Ashley Montanaro 4 April Department of Computer Science, University of Bristol Bristol, UK

Computability and Complexity

258 Handbook of Discrete and Combinatorial Mathematics

Lecture 16: Time Complexity and P vs NP

Chapter 6: Turing Machines

Turing Machine Recap

Theory of Computation CS3102 Spring 2015 A tale of computers, math, problem solving, life, love and tragic death

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

The Cook-Levin Theorem

The Turing Machine. Computability. The Church-Turing Thesis (1936) Theory Hall of Fame. Theory Hall of Fame. Undecidability

Chapter 7: Time Complexity

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2018, face-to-face day section Prof. Marvin K. Nakayama

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

Decidability (What, stuff is unsolvable?)

Non-emptiness Testing for TMs

4.2 The Halting Problem

Decision Problems with TM s. Lecture 31: Halting Problem. Universe of discourse. Semi-decidable. Look at following sets: CSCI 81 Spring, 2012

Exam Computability and Complexity

Functions on languages:

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2016, face-to-face day section Prof. Marvin K. Nakayama

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

MA/CSSE 474 Theory of Computation

Chapter 2 Algorithms and Computation

SCHEME FOR INTERNAL ASSESSMENT TEST 3

Introduction to Turing Machines

Chomsky Normal Form and TURING MACHINES. TUESDAY Feb 4

Lecture 12: Mapping Reductions

TURING MAHINES

CS6901: review of Theory of Computation and Algorithms

Turing machines Finite automaton no storage Pushdown automaton storage is a stack What if we give the automaton a more flexible storage?

Computability and Complexity CISC462, Fall 2018, Space complexity 1

CS3719 Theory of Computation and Algorithms

A An Overview of Complexity Theory for the Algorithm Designer

1 Showing Recognizability

THEORY OF COMPUTATION

NP, polynomial-time mapping reductions, and NP-completeness

The space complexity of a standard Turing machine. The space complexity of a nondeterministic Turing machine

where Q is a finite set of states

Time Complexity (1) CSCI Spring Original Slides were written by Dr. Frederick W Maier. CSCI 2670 Time Complexity (1)

The Unsolvability of the Halting Problem. Chapter 19

CSCE 551: Chin-Tser Huang. University of South Carolina

The P versus NP Problem. Dean Casalena University of Cape Town CSLDEA001

Final exam study sheet for CS3719 Turing machines and decidability.

UNIT-VIII COMPUTABILITY THEORY

CSE 105 THEORY OF COMPUTATION

Turing machines and linear bounded automata

Turing Machines. Wolfgang Schreiner

Harvard CS 121 and CSCI E-121 Lecture 14: Turing Machines and the Church Turing Thesis

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

(a) Definition of TMs. First Problem of URMs

Finish K-Complexity, Start Time Complexity

Turing machines and linear bounded automata

CS151 Complexity Theory. Lecture 1 April 3, 2017

Polynomial time reduction and NP-completeness. Exploring some time complexity limits of polynomial time algorithmic solutions

On the Computational Hardness of Graph Coloring

Computability and Complexity

ECE 695 Numerical Simulations Lecture 2: Computability and NPhardness. Prof. Peter Bermel January 11, 2017

A Universal Turing Machine

Artificial Intelligence. 3 Problem Complexity. Prof. Dr. Jana Koehler Fall 2016 HSLU - JK

Transcription:

11/27/14 9-1 Computability 1 Computability THEORY OF COMPUTATION Formal Languages, Automata, and Complexity J. Glenn Brokshear The Benjamin/Cummings Pub. Comp., Inc. 1989 1.1 Foundation of Recursive Function Theory computation operational approach how a computation is performed functional approach what a computation accomplishes computable some function rather than some algorithm in a particular system functional approach function computed means of computing them the study of recursive function theory initial functions combined functions

11/27/14 9-1 Computability 2 Partial Functions f: N m \ N n where m, n N(m, n 0) various domain and range any data can be coded into 0 s and 1 s tuples of nonnegative integers Ex. div(x, y) = x/y, if y 0. partial function strictly partial function total function arbitrary m-tuple x - = (x 1,, x m ) Three Initial Functions 1. zero function, : N m {0} (0 m) (x - ) = 0 2. successor function, : N N (x) = x + 1 3. projections, m n : N m N (0 n m) m n (x 1,, x m ) = x n. all of three initial functions are computable.

11/27/14 9-1 Computability 3 Primitive Recursive Functions 1. combination of functions: Define f g: N m N n+k from f: N m N n and g: N m N k by f g (x - ) = (f(x - ), g(x - )). 2. composition of functions: Define f g: N m N k from f: N m N n and g: N n N k by f g (x - ) = g(f(x - )). Ex): (x - ) = 1 3. primitive recursion of functions: f Define f: N m N k from g: N m-1 N k and h: N m+k N k by f(x -, 0) = g(x - ) f(x -,y+1)= h(x -, y, f(x -, y)) where x - N m-1 and y N. or f(x -, (y)) = g(x - ) f(x -, (y)) = h(x -, y, f(x -, y)) where x - N m-1 and y N.

11/27/14 9-1 Computability 4 Example: f(x, y): the number of nodes in a full x-ary balanced tree whose depth is y f: N 2 N level y: x y nodes For fixed x, f(x, y+1) = f(x, y) + x y+1 = f(x, y) + x y x f(x, 0) = x 0 (1) f(x, y+1) = f(x, y) + x y x (2) f is computable f(3, 2) = f(3, 1) + 3 1 3 = f(3, 1) + 9 = f(3, 0) + 3 0 3 + 9 = f(3, 0) + 12 = 3 0 + 12 = 13 f(x, 0) = x 0 f(x, y+1) = f(x, y) + x y x or Let g: N N and h: N 3 N where g(x) = x 0 and h(x, y, z) = z + x y x f(x, 0) = g(x) f(x, y+1) = h(x, y, f(x, y))

11/27/14 9-1 Computability 5 Primitive recursion Let g: N m-1 N k and h: N m+k N k. Then f: N m N k (1 m, 0 k) is defined by f(x -, 0) = g(x - ) f(x -, y+1) = h(x -, y, f(x -, y)) where x - denotes (m-1)-nary vector f is primitive recursion of g and h, if f(x -, ()) = g(x - ) f(x -, (y)) = h(x -, y, f(x -, y)) primitive recursion is computable f(x -, 3) = h(x -, 2, f(x -, 2)) = h(x -, 2, h(x -, 1, f(x -, 1))) = h(x -, 2, h(x -, 1, h(x -, 0, f(x -, 0)))) = h(x -, 2, h(x -, 1, h(x -, 0, g(x - )))) primitive recursive functions constructed from initial functions with finite number of combinations, compositions, and primitive recursions

11/27/14 9-1 Computability 6 Every primitive recursive function is total and computable. initial functions are total and computable. finite number of, and primitive recursions applied to total and computable. Primitive recursive functions are total and computable. primitive recursive functions contains most, if not all, of computable total functions (Ackermann function) that are required in traditional computer applications But every computable function is not primitive recursive. There are computable functions that are not primitive recursive. Ackermann function is total and computable but not primitive recursive. Division is partial primitive recursive computable total functions computable functions

11/27/14 9-1 Computability 7 1.2 The Scope of Primitive Recursive Functions 1. extend primitive recursive functions includes total computable functions in typical computer applications provide specific examples(following sections) 2. distinction between primitive recursive functions and computable total functions Consider ( 1 3 3 3 ) plus (x, y, z) = plus(x, z) = x + z Examples of primitive recursive functions Constant functions K n m : N m {n}, m, n N. where K m n (x - ) = n, x - N n. For m = 0, K 0 2 = = 2 K 0 n = = n = n K 0 n is primitive recursive For m 0, K m n (x -, 0) = K m-1 n (x - ) K n m (x -, (y)) = m+2 m+2 (x -, y, K n m (x -, y)) = K n m (x -, y) K n m is primitive recursive(n 0).

11/27/14 9-1 Computability 8 K m n (n 1,, n m ) = K m n (n 1,, n m -1) = = K m n (n 1,, n m-1, 0) = K m-1 n (n 1,, n m-1 ) = = K 1 n (n 1 ) = = K 1 m (0) = K 0 n () = () = = n Consider C n1 n k m,k : N m N k K n1 m K nk m : k times C n1 n k m,k (x - ) = (n 1,, n k ) Constants are also primitive recursive functions 7 = K 7 n (2, 5) = K 2 n K 5 n Arithmetic functions mult(x, 0) = K 1 0 (x) mult(x, (y)) = ( 3 1 3 3 ) plus (x, y, mult(x, y)) mult(x, 0) = 0 mult(x, y+1) = plus(x, mult(x, y)) expo(x, 0) = K 1 1 (x) expo(x, (y)) = ( 3 1 3 3 ) mult (x, y, expo(x, y))

11/27/14 9-1 Computability 9 expo(x, 0) = 1 expo(x, y+1) = mult(x, expo(x, y)) predecessor function pred: N N pred(0) = () = 0 pred( (x)) = 2 1 (x, pred(x)) = x monus(x, 0) = 1 1 (x) monus(x, (y)) = pred 3 3 (x, y, monus(x, y)) monus(x, 0) = x monus(x, y+1) = pred(monus(x, y)) monus x y = x - y, if x y; 0, otherwise. eq: N 2 N eq(x, y) = 1 if x = y, 0 if x y eq(x, y) = 1 ((x y) + (y x)) =monus(1, plus(monus(x, y), monus(y, x))) Example: eq(5, 3) = 1 ((5 3) + (3 5)) = 1 (2 + 0) = 1 2 = 0 eq(5, 5) = 1 ((5 5) + (3 5)) = 1 (0 + 0) = 1 0 = 1

11/27/14 9-1 Computability 10 Beyond Primitive Recursive Functions initial functions primitive recursive functions computable functions computable ftns primitive recursive functions div(partial function) primitive recursive functions? computable total Ackermann function(w. Ackermann in 1928) A: N 2 N A(0, y) = y + 1 A(x+1, 0) = A(x, 1) A(x+1, y+1) = A(x, A(x+1, y)) Ackermann function is computable total(app. B) but not primitive recursive. A(3, 2) = A(2, A(3, 1)) = A(2, A(2, A(3, 0))) = A(2, A(2, A(2, 1))) = A(2, A(2, A(1, A(2, 0)))) = A(2, A(2, A(1, A(1, 1)))) = A(2, A(2, A(1, A(0, A(1, 0))))) = A(2, A(2, A(1, A(0, A(0, 1))))) = A(2, A(2, A(1, A(0, 2)))) =

11/27/14 9-1 Computability 11 Theorem 4.1 There is a computable total function from N to N that is not primitive recursive. Proof the number of p.r. functions is countable (finite combination, composition, p. rec.) f 1,, f n, f:n N. f(n) = f n (n) + 1 computable total If f is p.r., m N. f = f m. But f(m) = f m + 1 f is computable but not p.r. ( no. of computable functions is uncountable) computable function? -recursive functions Church s hypothesis initial functions primitive recursive functions computable total functions (= -recursive total function) computable partial function (= -recursive (partial) function) (= partial recursive function)

11/27/14 9-1 Computability 12 1.3 Partial -Recursive Functions computable partial functions 4th combinator of function: minimization( ) Define f: N n \ N from g: N n+1 \ N by f(x - ) = y[g(x -, y) = 0] = minimum( ) y N,. g(x -, y) = 0 g(x -, z) is defined 0 z y. Example: g(x, y) g: y\x 0 1 2 3 0 2 3 8 2 1 3 4 3 6 2 1 0 X 7 3 5 2 6 2 4 0 0 0 8 f 4 2 X? f: N N f(x) = y[plus(x, y)=0] f(x) = 0, if x = 0 = undefined, x 0.

11/27/14 9-1 Computability 13 div: N 2 N div(x, y) = z[( (x) (mult(z, y)+ y)) = 0] f(x) = y[monus(x, y) = 0] total function(f(x) = x) minimization f: N n N f(x - ) = y[g(x -, y) = 0] Assume the partial function g is computable, for all x - N n do y = 0 while (not exit loop) do if g(x -, y) = 0 then f(x - ) = y; exit loop fi; if g(x -, y) = undefined then f(x - ) = undefined; exit loop fi; y := (y) od od f is computable and partial, if g is computable and partial.

11/27/14 9-1 Computability 14 -recursive function initial functions, finite number of combinations, compositions, primitive recursions, and minimizations. f g(x - ) is defined iff f(x - ) and g(x - ) are defined f g(x - ) is defined iff f(x - ) and g(x - ) are defined y[g(x -, y)=0] is defined iff g(x - ) and h(x -, z, f(x -, z)) is defined for 0 z y.

11/27/14 9-1 Computability 15 initial functions primitive recursive functions -recursive total functions ( computable total functions) -recursive partial functions ( computable functions) all functions Turing s thesis the class of Turing machine possesses the computational power of any computational system Church s thesis the class of -recursive (partial)function contains all computational(partial) functions No one has proved it to be false no one has found a partial function that is computable but not partial recursive But! Turing s thesis and Church s thesis are one and the same. TM = partial recursive function Turing s thesis TM = computation process Church s thesis RF = computation feature TM = RF.

11/27/14 9-1 Computability 16 Turing Machine A Turing machine is the sextuple of the form M = (Q,,,,, h) where (1) Q is a finite set of states, (2) is a finite set of input alphabets (3) ( ) is a finite set of tape alphabets (4) : (S - {h}) S ( {L, R}) is the transition function (5) i S is the initial state (6) h S is the halting state B (B ) is the blank symbol Configuration: * Q *. Let p, q Q; X, Y ; and, *. Then configuration (, p, ) state p, tape (scanning 1: ) transition function (1) (p, X) = (q, Y) p X/Y q (, p, X ) (, q, Y ) (2) (p, X) = (q, L) p X/L q ( Y, p, X ) (, q, YX ) (3) (p, X) = (q, R) p X/R q ( Y, p, X ) ( YX, q, )

11/27/14 9-1 Computability 17 initial configuration for w * (, i, wbbb ) w *. final configuration (, h, ), *. abnormal termination (, p, X ) X/L? L(M) = {w * (, i, wbbb ) * (, h, ),, * }

11/27/14 9-1 Computability 18 Basic Building Blocks machine R, L, and X X, R (i, X) = (h, R) X, L (i, X) = (h, L) Y, X (i, Y) = (h, X) write x combining the machines R X L or RXL Y, (, i, Y ) * (, h, X ) move one cell right move one cell left searching symbols R X : search for X to right of the initial position. (, i, XZ) * (, h, XZ) ( -{X}) *. R X : search for other symbols than X to right of.. (, i, YZ) * (, h, YZ) ({X}) *, Y X L X, L X : search for... left to... abnormal termination Shift operations S R : shift one cell right ( X, i, Y ) * (, h, X ) X B ( B, i, Y ) * ( B, h, B ) to avoid abnormal termination S L : shift one cell left ( X, i, Y ) * ( X, h, )

11/27/14 9-1 Computability 19 Turing Computable Functions Consider a partial function f: N m \ N n. f(x 1,, x m ) = (y 1,, y n ) = undefined input tape (B x 1 B x 2 B x m B ) output tape (B y 1 B y 2 B y n B ) A Turing machine M = (S, {0, 1, #},,, i, h) initial configuration (, i, w 1 # w 2 # w m B B ) final configuration (, h, v 1 # v 2 # v n B B ) abnormal termination w i and v j are binary representation of x i and y j, respectively The turing machine M computes the -recursive partial function f

11/27/14 9-1 Computability 20 Turing Compatibility of -recursive Functions Integer arguments = {0, 1, B}, f: N n N m. Theorem 4.2 Every -recursive function is Turing-computable. Proof Initial functions are Turing-computable (zero) (successor) i j (projection) Partial functions constructed from Turing-computable partial functions using combination, composition, partial recursion and minimization are also Turing-computable.

11/27/14 9-1 Computability 21 -Recursive Nature of Turing Machines computation power of Turing machine restricted to the ability to compute the -recursive functions Let = b. Then the content of the tape can be interpreted as a nonnegative integer of base b, written in reverse order. Turing machine partial function from N to N. the partial function computed by Turing machine is -recursive. Theorem 4.3 Any computational process performed by a Turing machine is actually the process of computing a -recursive function. Proof Let M = (S,,,, i, h) be a Turing machine f: N N be the -function computed by M by interpreting the contents of the tape as base b = integer representations in reversed order.(right blanks)

11/27/14 9-1 Computability 22 state Q = k final state 0 initial state 1 other states 2,, k-1 transition mov(p, X) = 2 head moves right 1 head moves left 0 otherwise. Y write symbol Y sym(p, X) = X otherwise. state(p, X) = q {0,, k-1} state moves to q k if p = 0 or (p, X) is not valid. mov, sym and state are primitive recursive. Configuration tuple (, p, ) New configuration tuple (w, p, n) w tape content integer of base in reverse order (right blanks) p state number {0,, k-1)} n head position = m, 1 n m.

11/27/14 9-1 Computability 23 cursym: N 3 N cursym(w,p,n)=quo(w,b n-1 ) mult(b, quo(w, b n )) nexthead, nextstate, nexttape: N 3 N using mov, sym, state, and cursym nexthead, nextstate, and nexttape are primitive recursive step: N 3 N 3 step = nexthead nextstate nexttape step is primitive recursive run: N 4 N 3 run(w, p, n, 0) = (w, p, n) run(w, p, n, t+1) = step(run(w, p, n, t)) run is primitive recursive stoptime: N N: number of steps to final states stoptime(w) = t[ 2 3 (run(w, 1, 1, t)) = 0] stoptime is -recursive partial f: N N (nexttape): final tape contents the partial function computed by M f(w) = 1 3 (run(w, 1, 1, stoptime(w))) f is -recursive partial

11/27/14 9-1 Computability 24 Church-Turing thesis operation approach(turing s thesis) Turing machine functional approach(church s thesis) -recursive function reenforce the confidence of our conjecture

11/27/14 9-1 Computability 25 Post system Def. A Post system is defined by = (C, V, A, P) where 1) C is a finite set of constants with C = C N C T and C N C T =, 2) V is a finite set of variables, 3) A is a finite set from C *, called axiom, and 3) P is a a finite set of productions of the form x 1 V 1 x 2 x n V n x n+1 y 1 W 1 y 2 y m W m y m+1, where x i, y i C *, V i, W i V, V i V j for i j and m i=1 W i n i=1 V i. any variable can appear at most once on the left each variable on the right must appear on the left In other words, {V 1,, V n } {W 1,, W m } and V 1,, V n = n W 1,, W m. f: {1,, m} {1,, n} = {1,, n} {1,, m}. x 1 V 1 x 2 x n V n x n+1 y 1 V f(1) y 2 y m V f(m) y m+1 P x 1 w 1 x 2 x n w n x n+1 y 1 w f(1) y 2 y m w f(m) y m+1 L( ) = {w C T * w 0 * w for some w 0 A}

11/27/14 9-1 Computability 26 Ex.C T = {a, b} C N = {} V = {V 1 } A = { } P = {V 1 av 1 b} ab aabb where V 1 =. Ex. C T = {1, +, = } C N = {} V = {V 1, V 2, V 3 } A = {1 + 1 = 11} P = {V 1 + V 2 = V 3 V 1 1 + V 2 = V 3 1 V 1 + V 2 = V 3 V 1 + V 2 1 = V 3 1} 1 + 1 = 11 11 + 1 = 111 11 + 11 = 1111 we can interpret the derivation 1 + 1 = 2 2 + 1 = 3 2 + 2 = 4

11/27/14 9-1 Computability 27 Theorem 13.6 A language is recursively enumerable if and only if there exists some Post system that generates it. Proof The derivation of Post system is completely mechanical, it can be carried out on a Turing machine. For converse, consider a unrestricted grammar G = (N, T, P, S) = (C, V, A, P ) C N = N, C T = T, A = {S}, V = {V 1, V 2 }, and P = {V 1 V 2 V 1 V 2 P}

11/27/14 9-1 Computability 28 Rewriting System Post system rewriting of strings in C * Turing machine rewiring of strings in Q C * * (configuration) Matrix grammar P = P 1 P 2 P n where P i = { 1 1, 2 2, } ordered set Whenever the first production of some P i is applied, the second one must be applied in next. Ex. P 1 : S S 1 S 2 P 2 : S 1 as 1, S 2 bs 2 c P 2 : S 1, S 2 S S 1 S 2 as 1 S 2 as 1 bs 2 c aas 1 bbs 2 cc aabbcc L = {a n b n c n n 0}

11/27/14 9-1 Computability 29 Def. A language L is in DTIME(T(n)) A language L is in NTIME(T(n)) DTIME(T(n)) NTIME(T(n)) If T 1 (n) = O(T 2 (n)), DTIME(T 1 (n)) DTIME(T 2 (n)) Thm. DTIME(n k ) DTIME(n k+1 ) for k 1. L REG DTIME(n) L CF DTIME(n 3 ) L CF NTIME(n) L CS every sentence of length n can be parsed in n M where M depends on the grammar But we can not say L CS DTIME(n M ), since the upper bound M is not known. L RE DTIME(f(n)) There does not exists any f(n). The connection between Chomsky s hierarchy and the complexity is tenuous and not very clear.

11/27/14 9-1 Computability 30 Def. P = i 1 DTIME(ni ) NP = i 1 NTIME(ni ) P NP But it is not known if this containment is proper. Cook-Karp thesis A problem that is in P is called tractable, and one that is not is called intractable. But 2 0.1n is intractable whereas n 100 is tractable. An empirical observation that most practical problems in P are in DTIME(n), DTIME(n 2 ), or DTIME(n 3 ). An interesting problem whether or not P = NP. NP-complete problem that is as hard as any NP problem, and in some sense is equivalent to all of them.

11/27/14 9-1 Computability 31 Def. A language L 1 ( 1 ) is polynomial-time reducible to some language L 2 ( 2 ) if there exist a deterministic Turing machine by which any w 1 * 1 can be transformed to w 2 * 2 in a such way that w 1 L 1 if and only if w 2 L 2. If L 1 is polynomial-time reducible to L 2, and if L 2 P then L 1 P. Similarly if L 2 NP then L 1 NP. Def. A language L is said to be NP-complete if L NP and if every L NP is polynomial-time reducible to L. If some L 1 is NP-complete and polynomial-time reducible to L 2, then L 2 is also NP-complete. If we can find a deterministic polynomial-time algorithm for any NP-complete language, then every language in NP is also in P, that is NP = P.

11/27/14 9-1 Computability 32 Boolean expression boolean constant 0(false), 1(true) boolean variables boolean operator (or), (and), (not) conjunctive normal form with variables x 1, x 2,, x n. e = t 1 t 2 t m where the terms t i are where t i = s 1 s 2 s p where s j is either x k or x k. Satisfiability Problem Given an expression e in conjunctive normal form, is there an assignment of values to the variables x 1, x 2,, x n that will make the value e true. e 1 = ( x 1 x 2 ) (x 1 x 3 ) satisfiable, x 1 =0, x 2 =1, x 3 =1 e 1 = (x 1 x 2 ) x 1 x 2 not satisfiable deterministic algorithm exhaustive search: 2 n cases. nondeterministic algorithm O(n).

11/27/14 9-1 Computability 33 The satisfiability problem language problem encode specific instance as a string that is accepted iff the expression is satisfiable. this problem is NP-complete. Cook s theorem A large number of NP-complete has found. For all of them we can find exponential algorithm But no one has discovered a polynomial-time alg. We believe that probably P NP (P NP) But no one has produced an actual language in NP that is not in P or alternatively, no one has proven that no such language exists. Open problem!