advertisement

Capabilities of computing systems • Numeric and symbolic Computations • A look at Computability theory • Turing Machines Objectives • What is numeric computation Popularity, applications Limitations • What is symbolic computation • Is is theoretically possible to solve all mathematical problems by computers? An intoduction to the study of this problem? Numeric computation • The earliest and most important application – number cruching • Virtually all applications that we come across are numeric. • Eg virtual reality.- High resolution, very fast graphics with multimedia and specialized input output devices. Encryption, decryption/ Data bases Need for more than numeric computing • Many mathematical tasks are dealt with in a symbolic way by human beings. eg. Simplify a polynomial Solve equations factorize polynomials Similarly, computing pi to a large number of decimal places, factorials of large numbers would not fall within the range of numeric data handled by a computer. Symbolic Computing Area dealing with a new type use of computers in mathematics, science and engineering. Can enhance significantly the types of problems humans can use computers for. What is symbolic computing • Solving problems expressed in terms of `symbols’ or variables like x and y instead of numeric values is called symbolic computing • Laborious tasks like expanding (1 + x + 3y) 4 or solving (x 10 –1) can be given to computers Mathematica • • • • • • • It is a symbolic computing package. Wolfram Research Inc. http://www.wolfram.com/mathematica/ Some commands N[expr,I] eg N[pi,250] Factorial example: 200! Simplify[expr], Factor[expr], Solve[equation,unknown] (systems) • Expand[expr], D[expr,x], Integrate[expr,x] Implementation • Some of these tasks are simple, and have a simple interface to a numeric version of the problem and its solution • Some tasks are more difficult and require techniques from artificial intelligence, using symbolic logic and complicated searches. An example Solve[x2 – 3 = 0] Curve fitting Linear equation x2 – 3 = 0 a=1,b=0,c=3Quadratic Compute User Equation User equation the two roots Interface Solver + 1.732 Display + 1.732 Results on Cubic screen Plotting equation A model of a computing agent 1. Accepts input 2. Store and retrieve information 3. Can take actions according to algorithmic instructions; actions depend on present state of the computing agent and the input 4. Produce output Theory of computation Early studies on formalizing proofs, before modern computers. Study of the nature of proofs. Formalizing, validating and mechanizing proofs. Many statements cannot be proved using a system.Led to a study of the nature of computation itself. Different models of computation and computing agents. Turing’s model – ingenious - captures the essence of computing A Turing machine • A conceptual model • An infinite tape , extending in both the directions left and right. • Tape divided into cells, each can contain a symbol, from a finite set of symbols called the alphabet. • Special symbol b – blank, 1 , 0 and other symbols, placeholders or markers. The Turing Machine (cont’d) • At any time only a finite number of cells contain nonblank symbols. • Tape holds input to a TM/ input must be a finite string of nonblank symbols from the alphabet (a finite set of symbols). • TM writes its output to tape using same set of symbols. • Tape also serves as memory TM (cont’d) • The TM has a `state’ at any time, which is one of a finite set of states of a TM, labeled 1,2, ….k. • Also, at a time, its `head’ is on a particular cell and it can read that cell. • Based on state and input read, it does three things. a. Writes a symbol to the cell (replacing if needed) b. Go to new state c. Move one cell left or right Transitions or instructions • A typical TM transition rule or instruction says: If you are in state i and read symbol j then Write symbol k on tape, and go to state s, and move in direction d. It is of the form (i,j,k,s,d) (current state, input symbol, next symbol, next state, move) A set of such instructions defines a TM. TM • TM starts from state 1. • Finds an instruction to apply, for present sate and input and applies the instruction. • Repeats the above. • If there is no instruction applicable, TM halts. • Assumption: For one state input pair, there is at most one instruction applicable. An example A TM for converting 011 to 100 • (1,0,1,2,R) • (1,1,1,2,R) • (2,0,1,2,R) • (2,1,0,2,R) • (2,b,b,3,L) s1….bb011bb…. s2….bb101bb…. s3….bb100bb…. s2…bb111bb…. s2…bb100bb…. Tm as a computing agent • Satisfies all criteria. • Can be built for all computable problems - see later. Can solve more than real or practical computers, as infinite memory is there. TM as an algorithm • An algorithm: 1. Well ordered collection. 2. contains unambiguous and effectively computable operations. 3. Halt in finite amount of time. (Problem) For `correct input’ halts. 4. Produce an output. TM • TM starts from state 1. • Finds an instruction to apply, for present sate and input and applies the instruction. • Repeats the above. • If there is no instruction applicable, TM halts. • Assumption: For one state input pair, there is at most one instruction applicable. An example A TM for converting 011 to 100 • (1,0,1,2,R) • (1,1,1,2,R) • (2,0,1,2,R) • (2,1,0,2,R) • (2,b,b,3,L) s1….bb011bb…. s2….bb101bb…. s3….bb100bb…. s2…bb111bb…. s2…bb100bb…. Tm as a computing agent • Satisfies all criteria. • Can be built for all computable problems - see later. Can solve more than real or practical computers, as infinite memory is there. TM as an algorithm • An algorithm: 1. Well ordered collection. 2. contains unambiguous and effectively computable operations. 3. Halt in finite amount of time. (Problem) For `correct input’ halts. 4. Produce an output. Examples • Bit inverter: (1,0,1,1,R) (1,1,0,1,R) • A parity bit machine: (1,1,1,2,R) (1,0,0,1,R) (2,1,1,1,R) (2,0,0,2,R) (1,b,1,3,R) (2,b,0,3,R) An extra bit called odd parity bit is attached to each string such that the number of 1’s in each string becomes odd. Turing machines and algorithms • • • • • Church Turing Thesis Church (Lambda calculus) Turing (Turing machines) Showed that algorithms are equivalent And unsolvability of problems. TMs • Popularity • For describing algorithms • For showing unsolvabilities The Halting Problem of TMs • Given a Turing machine M (encoded) and an input I can it be decided whether the Turing machine accepts or does not accept. • --------------------------------------------------• (Special states accept) • (Special states reject) • Else loops Not decidable • If it is , T is a TM to do this task. • Construct H to read <M> and run T on <M M>. • Reject if T accepts , accept if T rejects. • Run H with <H> as input • Contradiction – accepts if reject and reject if accepts • Hence no T exists. Problems • Find the output of the TM (1,1,1,2,R) (1,0,0,2,R) (1,b,1,2,R) (2,0,0,2,R) (2,1,0,1,R) When run on the tape…. bbb1001bbbb… • Describe the behaviour of a TM (1,1,1,1,R) (1,0,0,2,L) (2,1,0,2,L) (2,b,1,3,L) (3,b,b,1,R) on the input bbb101bbb Solutions • 10001 and halts • Prints successively 1001, 10001, 100001, and so on without halting Problem • Write a TM that begins on a tape containing a single 1 and never halts but successively displays the strings • ..b1b… • …010… • 00100…. • And so on