Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Chapter 12: Theory of Computation
1-2 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12-2 Chapter 12: Theory of Computation 12.1 Functions and Their Computation 12.2 Turing Machines 12.4 A Noncomputable Function 12.5 Complexity of Problems
1-3 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The powers of computers Goal: To investigate the capabilities of computers Question: What computers can and can not do? Unsolvable v.s. Solvable v.s. Intractable 12-3
1-4 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Functions Function: A correspondence between a collection of possible input values and a collection of possible output values so that each possible input is assigned a single output –Converting measurements in yards into meters –Sort function –Addition function –etc 12-4
1-5 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Functions (Cont.) Computing a function: Determining the output value associated with a given set of input values –Compute the addition function to solve an addition problem; –Compute the sort function to sort a list The ability to compute functions is the ability to solve problems. Computer science: find techniques for computing the functions underlying the problems we want to solve 12-5
1-6 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Inputs and outputs can be predetermined and recorded in a table Techniques for computing functions 12-6
1-7 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Techniques for computing functions (Cont.) A more powerful approach: follow directions provided by an algebraic formula –V = P(1+r) n Can the sine function be expressed in terms of algebraic manipulations of the degree value? –Need good approximation Some functions’ input/output relationships are too complex to be described by algebraic manipulations. 12-7
1-8 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computability Functions with increasing complexity need more powerful computing techniques. Question: Can we always find a system for computing functions, regardless of their complexity? –The answer is “No”. That is, no algorithmic system for some very very complex problems. Noncomputable function: A function that cannot be computed by any algorithm 12-8
1-9 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Turing machines To understand capabilities and limitations of machines, many researchers have proposed and studied various computational devices. Alan M. Turing in 1936 proposed the Turing machines, which is still used today as a tool for studying the power of algorithmic processes. 12-9
1-10 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.2 The components of a Turing machine a finite set of symbols a finite set of states (start, halt) 12-10
1-11 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Turing Machine Operation Inputs at each step –State –Value at current tape position Actions at each step –Write a value at current tape position –Move read/write head –Change state 12-11
1-12 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-12
1-13 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-13
1-14 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-14
1-15 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-15
1-16 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-16
1-17 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-17
1-18 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 11.3 A Turing machine for incrementing a value 12-18
1-19 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Church-Turing Thesis A function that can be computed by a Turing machine is said to be Turing computable. Turing’s conjecture (Church-Turing Thesis): The functions that are computable by a Turing machine are exactly the functions that can be computed by any algorithmic means. –Widely accepted today 12-19
1-20 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The Halting Problem Given any program with its inputs, return 1 if the program is self-terminating, or 0 if the program is not
1-21 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The Polynomial Problems The question of whether a solvable problem has a practical solution. Polynomial problems P: a problem is a polynomial problem if the problem is in O(f(n)), where f(n) is either a polynomial itself or bounded by a polynomial –E.g., O(n 3 ), O(nlg n) –Searching a list, sorting a list The problems in P are characterized as having practical solutions
1-22 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The Polynomial Problems (Cont.) Consider the problem of listing all possible subcommittees that can be formed from a group of n people. –There are 2 n -1 such subcommittees –Any algorithm that solves this problem must have at least 2 n -1 steps –This problem is not in P. The non-polynomial problems are called “intractable”
1-23 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The traveling salesman problem Traveling salesman problem (TSP): visit each of his clients in different cities without exceeding his travel budget (the length of the path does not exceed his allowed mileage) –An exponential time algorithm: consider the potential paths in a systematic manner 12-23
1-24 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley A nondeterministic algorithm for the traveling salesman problem Pick one of the possible paths, and compute its total distance If (this distance is not greater than the allowable mileage) then (declare a success) else (declare nothing) => A nondeterministic algorithm based on “lucky guess”
1-25 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley P versus NP Class P: All problems in any class O(f(n)), where f(n) is a polynomial Class NP: All problems that can be solved by a nondeterministic algorithm in polynomial time –Nondeterministic algorithm = an “algorithm” whose steps may not be uniquely and completely determined by the process state We know that P is a subset of NP. Whether the class NP is bigger than class P is currently unknown. –NP = P? 12-25
1-26 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure A graphic summation of the problem classification 12-26
1-27 Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley NP-Complete problems NP-complete problems: NP problems to which all other NP problems can be reduced in polynomial time The traveling salesman problem is a NP- complete problem 3-Coloring problem: Given an undirected graph G = (V, E), determine whether G can be color with three color with the requirement –Each vertex is assigned one color and no two adjacent vertices have the same color 12-27