Turing Machine and the Conceptual Problems of Computational Theory

Save this PDF as:

Size: px
Start display at page:

Transcription

1 Research Inventy: International Journal of Engineering And Science Vol.4, Issue 4 (April 204), PP Issn (e): , Issn (p): , Turing Machine and the Conceptual Problems of Computational Theory Edward E. Ogheneovo Department of Computer Science, University of Port Harcourt, Nigeria. ABSTRACT: As computer hardware and software continue to develop at an ever increasing rate, one will be forced to believe that no problem is too hard for a computer to solve. Given enough memory, time, and ingenuity on the part of the programmer, one will think that there is no problem too difficult for the computer to solve. Yet there are many problems inherently unsolvable by a computer. There are problems for which, if a program were to exist, whether or not there was a machine big enough and fast enough to actually perform it, a logical contradiction would result. In this paper, we discuss Turing machines and the conceptual problems of computational Theory. The paper argues that there are some set of problems that cannot be computed by Turing machine and these set of problems are called uncomputable sets and functions. Examples of such sets and functions were provided. The paper also discuss how we can simulate one Turing machine to another Turing machine which of course can act as a universal Turing machine that can be used to solve all computable problems. A proof of the theorem was proposed. KEYWORDS: Turing machine, computation, computational theory, computability, computer simulation I. INTRODUCTION Computers differ from each other in terms of their hardware and software. As a result, there is need to construct a standard computation theory that will apply to all standard computers. There are several abstract models of computer devices: non-deterministic finite automata (NFA), deterministic finite automata (DFA), non-deterministic finite automata with transition, pushdown automata (PDA), and deterministic pushdown automata (DPDA). However, none of these models of computing devices is as useful as real computer. Thus we need to consider the theoretical model for a computer that will be equivalent to all other standard computers. This standard theoretical model is referred to as the Turing machine. Turing machines are simple, abstract computational devices intended to help investigate the extent and limitations of what can be computed [4], [9]. As a computer hardware and software continue to develop at an ever increasing rate, one will be forced to believe that no problem is too hard for a computer to solve. Given enough memory, time, and ingenuity on the part of the programmer, one will think that there is no problem too difficult for the computer to solve. Yet there are many problems inherently unsolvable by a computer. There are problems for which, if a program were to exist, whether or not there was a machine big enough and fast enough to actually perform it, a logical contradiction would result. However, computability is also relevant to the more logically fundamental parts of mathematics. As an example, consider the concept of real number in mathematics. Most of them are irrational and as a result cannot be defined by writing out their decimal expansion. However, for numbers like and, we could write a computer program which, if left to run, would run forever and would print out all their digits [8]. Unless we can write a program to do this and a computer to solve such a problem, otherwise they will forever remain unsolvable or uncomputable [5]. However, with uncountably many real numbers and only countably many potential computer programs, most real numbers are inaccessible to human thought. More so, there are some real numbers that can be precisely defined, yet no computer program can be devised to print out all their digits. As another example, we can think of a BASIC program in which the GOTO statement is used [5]. The effect of this command is that the program will run forever as it will cause an infinite loop. For this reason, the use of GOTO statement has been discouraged and is no longer used in programming languages. 53

3 These two assumptions are intended to ensure that the definition of computation is not too narrow. This ensures that no computable function will fail to be Turing-computable solely because there is inefficient time or memory to complete the computation []. Thus there may be some Turing-computable functions which may not be carried out by any existing computer, perhaps because no existing machine has sufficient memory to carry out the task. However, some Turing-computable functions may never be computable in practice since they may require more memory than can be built using all of the (finite number of) atoms in the universe. On the other hand, a result that shows that a function is not Turing-computable is very strong, since it implies that no computer that we could ever build could carry out the computation [0]. 2. Formal Definition of Turing Machines Formally, we define a Turing machine as a 7-tuple (Q, q 0, Г, b,, F, σ) where Q is a finite set of states with one of them q 0 Q being a designated starting state (this is the state the machine starts its operation in). Г is a finite set of symbols with one of them b Г being a designated starting state (this is the state the machine starts its operation in). Г is a subset of input symbols P Q is a subset of accepting states which finalizes the computation (when the machine reaches F, the computation final state). σ: Q x Г Q x Г x {L, R} is a partial transition function (if the machine reaches a state and input that are not defined for σ, the machine halts). In this transition function, q 0 Q is the start state, q accept Q is the accept state, q reject Q is the reject state, where q accept q reject From the foregoing, it can be seen that the heart of a Turing machine is its transition function σ since it tells us how the machine gets on from one configuration to another. A Turing machine configuration is often described by its current state, the current tape contents, and the current head location. The machine at state Q q, reads the current symbol γ Г on the tape loading to σ(q, γ) = (q, γ, d) where q Q is the next state γ Г is the output symbol being written by the head on the tape. d {L, R} is the movement of the head (left or right) on the infinite tape As an example, consider a Turing machine that is supposed to process a binary tape to the right of the starting position and halt execution when the number of one s reaches 0. In this case, we have Q = {q 0, q,, q 0 }, q 0 is the starting state, F = {q 0 }, Г = {0,, b}, Σ = {0, } and σ defined as follows: σ(q i, 0) = (q i, b, R) and σ(q i, ) = (q i+, b, R). The machine reads the input left to right. It does not modify the tape since it writes blanks) and halts computation after reading 0 -symbols. At this point it transits to the final state, q 0. From the discussion above, it can be seen that the tape serves three main purposes: () input, (2) output, (3) memory, while the state of the machine q Q is a different form of memory the control. The control, or state, is hard-wired into the machine in a similar way to hardware. The tape, on the other hand, may change from one operation of the machine to another. In other words, the control unit defines what the machine does like the program code of a function. However, while the tape is infinite, Q is finite. This means that the Turing machine corresponds to a finite program a program that has at its disposal an infinite ream of scratch paper. 55

4 The example above shows how difficult it is do design a Turing machine that will perform a specific task. This is why programming languages, which are a much more convenient way to design a computation, are used instead of the Turing machine. However, to analyze the theoretical properties of computers, the Turing machine is more convenient to use. It has the properties of being simple and does not change as computers do when changes are made to the software or hardware. If a Turing machine can accomplish a task, the task is called computable. If a Turing machine cannot accomplish a task, the task is said to be non-computable or unsolvable. The study of these classes of problems is the topic of the theory of computability. The time it takes a Turing machine to finish its computation is called its time complexity. The amount of tape it uses is called the space complexity. The study space and time complexity of different problems is the topic of the theory of complexity. III. COMPUTABLE AND UNCOMPUTABLE SETS AND FUNCTIONS In computational theory, there are problems that the Turing machine and by extension the modern computer can solve and there are problems that are unsolvable. Those problems that can be solved are called computable problems while those that defy solution are called uncomputable problems. The study of these problems is collectively referred to as computational theory []. 3. Computable Sets and Functions These are functions that can be computed with Turing machines and other computational function has an algorithm (procedure) that is explicitly and have unambiguous instructions on how to compute it. Such a procedure must also be encoded in the finite alphabet used by the computational model. 3.2 Uncomputable Functions In this section, we discuss functions that cannot be computed. Thus functions having real numbers are uncomputable. This is so because real numbers are uncountable. Also, the set of finitary functions on the natural numbers is uncountable and most of them are therefore uncomputable [2], [4]. We discuss the real numbers and the set of natural numbers such as the halting problem and the Entscheidungsproblem problem Real Numbers A real number is a number that has continuous value. A real number is computable if it can be approximated by some computable function in such that given any integer n, the function produces an integer k such that: a The real numbers (R) include all the rational numbers include all the rational numbers, such as integer - 2 and the fraction, and all the irrational numbers such as and. A real number can be determined by a possibly infinite decimal representation such as (for ) and (for ). The real numbers are uncountable and so must real numbers are not computable. A computable number is a real number that can be computed to within a desired precision by a finite, terminating algorithm. Most real numbers have infinite values and as such they are said to be uncomputable. Examples include the busy beaver and the kolmogorvo complexity or any function that outputs the digits of a noncomputable number. The busy beaver function, Σ : N N, is defined such that Σ(n) is the maximum attainable score (the maximum of s on a tape) among all halting 2-symbol n-state Turing machines when started on blank tape. Thus since the busy beaver function (Σ) is well-defined, therefore, for every n, there are at most finitely many n-state Turing machine with at most finitely many running times. The kolmogorvo complexity is a measure of the computability resources needed to specify the object. The complexity of a string is the length of the shortest possible description of the string in some fixed universal description language. However, the kolmogorvo complexity of any string cannot be more than a few bytes larger than the length of the string itself. 56

5 3.2.2 The Set of Natural Numbers Most sets and subsets of natural numbers (N) are not computable. Examples include the Halting problem and the Entscheidungsproblem. Church and Turing [7] independently showed in that this set of natural numbers is not computable. According to the Church-Turing thesis, there is no effective procedure (an algorithm) that can perform these computations. The halting problem is a decision problem about properties of computer program on a fixed Turing-complete model of computation. The halting problem states that given a description of an arbitrary computer program, decide whether the program finishes running or continue to run forever. According to Turing [7], the halting problem is undecidable over Turing machine. Turing proved that a general algorithm to solve the halting problem for all possible input pairs does not exist [2]. The Entscheidungsproblem problem was posed by David Hilbert in 928 as the 0 th problem that has no solution. The Entscheidungsproblem problem asks for an algorithm that will take as input a description of a formal language and a mathematical statement in the language (or Diophantine equations) and produce as either Yes or No ( TRUE or FALSE ) according to whether the statement is true or false. Put another way, Entscheidungsproblem asks for an algorithm to decide whether a given statement is provable from the axioms using logical rules. The Entscheidungsproblem is solved when we know a procedure that allows for any given logical expression to decide by finitely many operations its validity or satisfiability. A quite definite generally applicable prescription is required to allow one to decide in a finite number of steps the truth or falsity of a given purely logical assertion. The Entscheidungsproblem is considered as one of the main problems in mathematical logic. Church and Turing [7] provide the answer to Hilbert s problem by stating that a general solution to the Entscheidungsproblem is impossible. According to Church-Turing thesis, whenever there is an effective method (algorithm) for obtaining the values of a mathematical function, the function can be computed by a Turing machine. 3.3 The Limit of Computation Computer science was born knowing its limitations. The strength of the universal machine leads directly to a negative consequence of uncomputability [0]. By computability we mean certain natural computational problems cannot be solved by the Turing machines or, by extension computer programs. This leap from the notion of universality to impossibility is rooted in two basic issues: ) the difficulty in determining the ultimate behavior of a program; and 2) the self-referential character of the universal Turing machine T u [6], [7]. In the first case, recall that our universal machine T u simply performed a step-by-step simulation of a Turing machine T m on an input n. This means that if T m computes forever, without halting, then T m s simulation will run forever as well. This phenomenon is often referred to as infinite loop. A situation where by a machine or program run forever without producing desired result a program keeps running without producing any result or output [3], [3]. However, to solve the problem of infinite loop where a machine runs forever without halting, it is necessary to introduce a device that can help detect whether a machine can halt by producing an out or it will run forever; and to also determine what can be done in case where the program runs forever instead for us to just producing a blind simulation of T u which cannot detect these signs. Thus the machine used for this process is referred to as Universal Terminator Detector a Turing machine D that behaves as follows: Given a description of a Turing machine T m and an input a to T m, the machine D performs a finite number of steps, and then correctly reports whether or not T m will ever halt with a result when it is run on n [2]. IV. INITIALIZING A TURING MACHINE FOR COMPUTATION The pseudocode described in algorithm uses variables q, i,, k,,, k, d,, d k to initialize the variables in our Turing machine. Each of these variables can assume only finitely many values. Let K, Ʃ denote the state set and alphabet of M. Also, let [k] = [,, k] and L denote the set of line numbers of the pseudocode in the algorithm. Then the k a is defined as: K a = K x [k] x Ʃ k x Ʃ k x {,, }) k x L Therefore, a state of M a determines the values of the variables q, i,, k, the line number of the line of pseudocode that M a is currently working on.,, k, d,, d k as well as As the algorithm shows, the initialization process starts by copying the transition function of the Turing machine M from the input tape to the description tape. The tape header then moves right until after the second comma on the input tape. Then a while loop is introduced to ensure that the input symbols have not been exhausted, since the semicolon ; is not reached. This is followed by a for loop is set to indicate the number of tapes. Finally, a repeat until loop set to ensure that all the input alphabets are read until the input tape symbols are exhausted. 57

6 Algorithm : Initializing a Turing machine : // Copy the transition function of M from the input tape to the description tape. 2: Move right past the first and second commas on the input tape. 3: while not reading ; on input tape do 4: Read input symbol, copy to description tape, move right on both tapes 5: end while // end of while loop 6: // Write the identifiers of the halting states and the direction of which the input symbols move 7: Move to start of input 8: Using binary addition subroutine, write m + n in binary on working tape 9: for i = 0,, 2, 3, 4, 5 do 0: On special tape, write binary representation of m + n + I, followed by ; : // The value of m + n is stored in the working tape and not memory 2: end for 3: // Copy the input string x unto the working tape, l, and separate the with commas 4: Write m + n + 6 in binary on the state tape, // to store the value of l 5: Starting from the left edge of input tape, move right until ; is reached 6: Move to left edge of working tape and state tape 7: Move one step right on state tape 8: repeat 9: while state tape symbol is not 20: Move right on input tape, working tape, and state tape 2: Copy symbol from input tape to working tape 22: end while // while loop ends 23: Write ; on working tape 24: Rewind to left edge of state tape, then move one step right 25: until input tape symbol is 26: Copy m from input tape to state tape 27: // end initialization 4. Simulating One Turing Machine to Another Turing Machine A multi-tape Turing machine k tapes is defined almost the same way as conventional single-tape Turing machine, except that a multi-tape Turing machine stores k strings simultaneously. It does this by maintaining a position in each of the k strings, updates these k positions independently (i.e., it can move left in one string while moving right in another string), and its state changes are based on the entire k-tuple of symbols that it reads at any point in time. More formally, a k-tape Turing machine has a finite alphabet and state set K as before, but its transition function is: : K x Ʃ k (K {halt, yes, no}) x (Ʃ x {,, }) k, The difference being that the transition is determined by the entire k-tuple of symbols that it is reading, and that the instruction for the next action taken by the machine must include the symbol to be written, and the direction of motion, for each of the k-strings. The algorithm 2 is used to simulate the multi-tape Turing machine M using a single-tape Turing machine M o. Algorithm 2: Simulation a Turing machine M by Turing machine M a : q s // Initialize state 2: repeat 3: // Simulation round 4: // First, find out what symbols M is seeing 5: repeat 6: Move right without changing contents of string 7: for I =,, k do 8: if i th flag at current location equals then 9: I i th symbol at current location 0: end if : end for 2: until M a reaches 58

7 3: repeat 4: Move left without changing contents of string 5: until M a reaches 6: // Let I,, k store the k symbols that M is seeing 7: // Evaluate state transition function for machine M 8: q, (, d ), ( 2, d 2 ),, ( k, d k ) (q,,, k) 9: for i =,, k do 20: // Phase i 2: repeat 22: Move right without changing the contents of the string 23: until a location whose i th flag is is reached 24: Change the i th symbol at this location to 25: if d i = then 26: Change i th flag at to 0 at this location 27: Move one step left 28: Change i th flag to 29: else if d i = then 30: Change i th to 0 at this location 3: Move one step right 32: Change i th flag to 33: end if 34: repeat 35: Move left without changing the contents of the string 36: until the symbol is reached 37: end for 38: q q 39: until q {halt, yes, no} 40: // If the simulation reaches this line, q {halt, yes, no} 4: if q = yes then 42: Transition to yes state 43: else if q = no then 44: Transition to no state 45: else 46: Transition to halt state 47: end if 4.2 Theorem: Any multi-tape Turing machine M can be simulated with a single-tape Turing machine M a. Proof: Simulating a Turing machine M by Turing machine M a Using algorithm 2, we then show that any multi-tape Turing machine M can be simulated with a single-tape Turing machine M a. this is done by showing the content of the k-strings of the two machines simultaneously, as well as the position of M within each of these strings. The single tape machine M s will have alphabet Ʃ s = Ʃ k x {0, } k. the k-tuple of symbols (, 2) Ʃ k at the i th location on the tape is interpreted as the symbols at the i th location on each of the k tapes used by machine M. the k-tuple of the binary values (p,, p k ) {0, } k at the i th location on the tape represents whether the position of machine M on each M of its k tapes is currently at location i with binary values = TRUE and 0 = FALSE. However, the alphabet must have two special symbols,. For alphabet Ʃ s, the special symbol is identical to ( ) k x (0) k and the special symbol is identical to ( ) k x (0) k. Machine M s runs in a sequence of simulation rounds, each divided into k phases. The purpose of each round is to simulate one step of M, and the purpose of phase i in a round is to simulate what happens in the i th string of M during that step. At the start of a phase, M s is always at the left edge of its tape, on the symbol. It moves right or left as the string end is trying to locate the flag that indicates the position of M on the i th tape and updating that symbol (and possibly the adjacent one) to reflect the way that M updates its i th string during the corresponding step of its execution. The pseudocode described in algorithm uses variables q, i,, k,,, k, d,, d k. Each of these can assume only finitely many values. Let K, Ʃ denote the state set and alphabet of M. Also, let [k] = [,, k] and L denote the set of line numbers of the pseudocode in the algorithm. Then the k a is defined as: 59

8 K a = K x [k] x Ʃ k x Ʃ k x {,, }) k x L Therefore, a state of M a determines the values of the variables q, i,, k, well as the line number of the line of pseudocode that M a is currently working on.,, k, d,, d k as V. CONCLUSION Computers differ from each other in terms of their hardware and software. As a result, there is need to construct a standard computation theory that will apply to all standard computers. There are several abstract models of computer devices: non-deterministic finite automata (NFA), deterministic finite automata (DFA), non-deterministic finite automata with transition, pushdown automata (PDA), and deterministic pushdown automata (DPDA). However, none of these models of computing devices is as useful as real computer. Thus we need to consider the theoretical model for a computer that will be equivalent to all other standard computers. This standard theoretical model is referred to as the Turing machine. Turing machines are simple, abstract computational devices intended to help investigate the extent and limitations of what can be computed. As a computer hardware and software continue to develop at an ever increasing rate, one will be forced to believe that no problem is too hard for a computer to solve. Given enough memory, time, and ingenuity on the part of the programmer, one will think that there is no problem too difficult for the computer to solve. Yet there are many problems inherently unsolvable by a computer. There are problems for which, if a program were to exist, whether or not there was a machine big enough and fast enough to actually perform it, a logical contradiction would result. This paper discusses Turing machines and the conceptual problems of computational Theory. The paper argues that there are some set of problems that cannot be computed by Turing machine and these set of problems are called uncomputable sets and functions. Examples of such sets and functions were provided. The paper also discuss how we can simulate one Turing machine to another Turing machine which of course can act as a universal Turing machine that can be used to solve all computable problems. A proof of the theorem was proposed. REFERENCES [] Arora, S. and Barak B. (2009). Computational Complexity: A Modern Approach, Cambridge University Press. [2] Bassey, P. C., Asoquo, D. E., and Akpan, I. O. (200). Undecidability of the Halting Problem for Recursively Enumerable Sets, World Journal of Applied Science and Technology, Vol. 2, No., ISSN: , pp [3] Boolos, G. S. and Jeffrey, R. C. (974). Computability and Logic, Cambridge: Cambridge University Press. [4] Davis, M. (982). Computability and Solvability, New York: McGraw-Hill Post, E. (947). Recursive Unsovability of Problem of Thue, The Journal of Symbolic Logic, Vol. 2, pp. -. [5] Enderton, H. (977). Elements of Recursion Theory. Handbook of Mathematical Logic, Edited by Barwise, North-Holland (977), pp [6] Herken, R., (ed.) (988). The Universal Turing Machine: A half-century Survey, New York, Oxford University Press. [7] Jarvis, J. and Lucas, J. M. (2008). Understanding the Universal Turing Machine: An Implementation in JFLAp, Journal of ACM, Vol. 23, Issue 5, pp [8] Kleene, S. C. (936). General Recursive Function of Natural Numbers, Mathematics Annalen, Vol. 2, pp [9] Kleinberg, J. (2004). Computability and Complexity. In Computer Science: Reflections fromi the Field, Academics Press. [0] Lewis, H. R. and Papadimitrinu, C. H. (98). Elements of the Theory of Computation, Englewood Cliffs, N. S. Prentice-Hall. [] Lin, S. and Radó, T. (965). Computer Studies of Turing Machine Problems, Journal of ACM, Vol. 2, pp [2] Minsky, M. (967). Computation: Finite and Infinite Machines, Prentice-Hall, Inc., N. J., 967. [3] Petrzold, G. (2008). The Annotated Turing Machine: A Guided Tour through Alan Turing s Historic Paper on Computability and Turing Machines, Indianapolis, Indiana, Wiley Publisher [4] Radó, T. (962). On Non-Computable Numbers, with an Application to the Etscheidungsproblem. In Proceedings of London Mathematical Society, Ser. 2, Vol. 42, pp [5] Sumitha, C. H. and Geddam, K. O. (20). Implementation of Recursive Enumerable Languages in Universal Turing Machine. Int l journal of Computer Theory and Engineering, Vol. 3, No., , pp [6] Turing, A. M. (936). On Computable Numbers with Application to the Etscheidungsproblem. In Proceedings of London Mathematical Society, 42, pp ; correction in 43 (937), pp ; reprinted in (Davis, 965, pp. 5-54). [7] Turing, A. M. (937). Computability and λ-definability. The Journal of Symbolic Logic, Vol. 2, pp

Universal Turing Machine: A Model for all Computational Problems

Universal Turing Machine: A Model for all Computational Problems Edward E. Ogheneovo Lecturer I, Dept of Computer Science, University of Port Harcourt, Port Harcourt Nigeria. ABSTRACT: Turing machines

Turing Machines: An Introduction

CIT 596 Theory of Computation 1 We have seen several abstract models of computing devices: Deterministic Finite Automata, Nondeterministic Finite Automata, Nondeterministic Finite Automata with ɛ-transitions,

Notes on Complexity Theory Last updated: August, 2011. Lecture 1

Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look

CS 3719 (Theory of Computation and Algorithms) Lecture 4

CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a

1 Definition of a Turing machine

Introduction to Algorithms Notes on Turing Machines CS 4820, Spring 2012 April 2-16, 2012 1 Definition of a Turing machine Turing machines are an abstract model of computation. They provide a precise,

Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras

Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture No. # 31 Recursive Sets, Recursively Innumerable Sets, Encoding

Finite Automata and Formal Languages

Finite Automata and Formal Languages TMV026/DIT321 LP4 2011 Lecture 14 May 19th 2011 Overview of today s lecture: Turing Machines Push-down Automata Overview of the Course Undecidable and Intractable Problems

3515ICT Theory of Computation Turing Machines

Griffith University 3515ICT Theory of Computation Turing Machines (Based loosely on slides by Harald Søndergaard of The University of Melbourne) 9-0 Overview Turing machines: a general model of computation

(IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems.

3130CIT: Theory of Computation Turing machines and undecidability (IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems. An undecidable problem

CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move.

CS54 Turing Machines Turing Machine q 0 AI N P U T IN TAPE read write move read write move Language = {0} q This Turing machine recognizes the language {0} Turing Machines versus DFAs TM can both write

Computing basics. Ruurd Kuiper

Computing basics Ruurd Kuiper October 29, 2009 Overview (cf Schaum Chapter 1) Basic computing science is about using computers to do things for us. These things amount to processing data. The way a computer

Computability Theory

CSC 438F/2404F Notes (S. Cook and T. Pitassi) Fall, 2014 Computability Theory This section is partly inspired by the material in A Course in Mathematical Logic by Bell and Machover, Chap 6, sections 1-10.

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION REDUCIBILITY ( LECTURE 16) SLIDES FOR 15-453 SPRING 2011 1 / 20 THE LANDSCAPE OF THE CHOMSKY HIERARCHY ( LECTURE 16) SLIDES FOR 15-453 SPRING 2011 2 / 20 REDUCIBILITY

6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008

MIT OpenCourseWare http://ocw.mit.edu 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

Computing Functions with Turing Machines

CS 30 - Lecture 20 Combining Turing Machines and Turing s Thesis Fall 2008 Review Languages and Grammars Alphabets, strings, languages Regular Languages Deterministic Finite and Nondeterministic Automata

Computability. COMP2600 Formal Methods for Software Engineering. Katya Lebedeva. Australian National University Semester 2, 2016

Computability COMP2600 Formal Methods for Software Engineering Katya Lebedeva Australian National University Semester 2, 2016 Slides created by Katya Lebedeva COMP 2600 Turing Machines 1 Definition of

Computational Models Lecture 8, Spring 2009

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown Univ. p. 1 Computational Models Lecture 8, Spring 2009 Encoding of TMs Universal Turing Machines The Halting/Acceptance

Turing Machines, Part I

Turing Machines, Part I Languages The \$64,000 Question What is a language? What is a class of languages? Computer Science Theory 2 1 Now our picture looks like Context Free Languages Deterministic Context

CSE 135: Introduction to Theory of Computation Decidability and Recognizability

CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing

A Formalization of the Turing Test Evgeny Chutchev

A Formalization of the Turing Test Evgeny Chutchev 1. Introduction The Turing test was described by A. Turing in his paper [4] as follows: An interrogator questions both Turing machine and second participant

Sets and Subsets. Countable and Uncountable

Sets and Subsets Countable and Uncountable Reading Appendix A Section A.6.8 Pages 788-792 BIG IDEAS Themes 1. There exist functions that cannot be computed in Java or any other computer language. 2. There

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March

The Halting Problem is Undecidable

185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine

Post s (and Zuse s) forgotten ideas in the Philosophy and History of Computer Science.

Post s and Zuse s forgotten ideas in the Philosophy of Computer Science. L. De Mol Post s (and Zuse s) forgotten ideas in the Philosophy and History of Computer Science. Liesbeth De Mol Boole centre for

ECS 120 Lesson 17 Church s Thesis, The Universal Turing Machine

ECS 120 Lesson 17 Church s Thesis, The Universal Turing Machine Oliver Kreylos Monday, May 7th, 2001 In the last lecture, we looked at the computation of Turing Machines, and also at some variants of Turing

6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008

MIT OpenCourseWare http://ocw.mit.edu 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

Chapter 7 Uncomputability

Chapter 7 Uncomputability 190 7.1 Introduction Undecidability of concrete problems. First undecidable problem obtained by diagonalisation. Other undecidable problems obtained by means of the reduction

6.080/6.089 GITCS Feb 12, 2008. Lecture 3

6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my

Enhancement of Turing Machine to Universal Turing Machine to Halt for Recursive Enumerable Language and its JFLAP Simulation

, pp.193-202 http://dx.doi.org/10.14257/ijhit.2015.8.1.17 Enhancement of Turing Machine to Universal Turing Machine to Halt for Recursive Enumerable Language and its JFLAP Simulation Tribikram Pradhan

Introduction to Turing Machines

Automata Theory, Languages and Computation - Mírian Halfeld-Ferrari p. 1/2 Introduction to Turing Machines SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Automata Theory, Languages and Computation

Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP

International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 1 (2014), pp. 79-84 International Research Publications House http://www. irphouse.com /ijict.htm Implementation

We give a basic overview of the mathematical background required for this course.

1 Background We give a basic overview of the mathematical background required for this course. 1.1 Set Theory We introduce some concepts from naive set theory (as opposed to axiomatic set theory). The

Automata and Computability. Solutions to Exercises

Automata and Computability Solutions to Exercises Fall 25 Alexis Maciel Department of Computer Science Clarkson University Copyright c 25 Alexis Maciel ii Contents Preface vii Introduction 2 Finite Automata

Super Turing-Machines

1 This preprint differs from the published version. Do not quote or photocopy. Super Turing-Machines B. Jack Copeland 2 1. Universal Turing Machines A universal Turing machine is an idealised computing

Outline. Database Theory. Perfect Query Optimization. Turing Machines. Question. Definition VU , SS Trakhtenbrot s Theorem

Database Theory Database Theory Outline Database Theory VU 181.140, SS 2016 4. Trakhtenbrot s Theorem Reinhard Pichler Institut für Informationssysteme Arbeitsbereich DBAI Technische Universität Wien 4.

CAs and Turing Machines. The Basis for Universal Computation

CAs and Turing Machines The Basis for Universal Computation What We Mean By Universal When we claim universal computation we mean that the CA is capable of calculating anything that could possibly be calculated*.

Mathematical Logic. Giuseppe Peano ( ) Core Logic 2005/06-1ab p. 2/4

Mathematical Logic. From the XIXth century to the 1960s, logic was essentially mathematical. Development of first-order logic (1879-1928): Frege, Hilbert, Bernays, Ackermann. Development of the fundamental

Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 20

CS 70 Discrete Mathematics and Probability Theory Fall 009 Satish Rao, David Tse Note 0 Infinity and Countability Consider a function (or mapping) f that maps elements of a set A (called the domain of

Theory of Computation Chapter 2: Turing Machines

Theory of Computation Chapter 2: Turing Machines Guan-Shieng Huang Feb. 24, 2003 Feb. 19, 2006 0-0 Turing Machine δ K 0111000a 01bb 1 Definition of TMs A Turing Machine is a quadruple M = (K, Σ, δ, s),

Gödel s Theorem: An Incomplete Guide to Its Use and Abuse

Gödel s Theorem: An Incomplete Guide to Its Use and Abuse by Torkel Franzén Summary by Xavier Noria August 2006 fxn@hashref.com This unique exposition of Kurt Gödel s stunning incompleteness theorems for

NP-Completeness and Cook s Theorem

NP-Completeness and Cook s Theorem Lecture notes for COM3412 Logic and Computation 15th January 2002 1 NP decision problems The decision problem D L for a formal language L Σ is the computational task:

Universality in the theory of algorithms and computer science

Universality in the theory of algorithms and computer science Alexander Shen Computational models The notion of computable function was introduced in 1930ies. Simplifying (a rather interesting and puzzling)

Regular Expressions and Automata using Haskell

Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions

24 Uses of Turing Machines

Formal Language and Automata Theory: CS2004 24 Uses of Turing Machines 24 Introduction We have previously covered the application of Turing Machine as a recognizer and decider In this lecture we will discuss

Oracle Turing machines faced with the verification problem

Oracle Turing machines faced with the verification problem 1 Introduction Alan Turing is widely known in logic and computer science to have devised the computing model today named Turing machine. In computer

Reading 13 : Finite State Automata and Regular Expressions

CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model

CS_226 Computability Theory

Examples CS_226 Computability Theory http://www.cs.swan.ac.uk/ csetzer/lectures/computability/ 08/index.html Course Notes, Michaelmas Term 2008 Anton Setzer (Dept. of Computer Science, Swansea) http://www.cs.swan.ac.uk/

CS 301 Course Information

CS 301: Languages and Automata January 9, 2009 CS 301 Course Information Prof. Robert H. Sloan Handout 1 Lecture: Tuesday Thursday, 2:00 3:15, LC A5 Weekly Problem Session: Wednesday, 4:00 4:50 p.m., LC

Models of Sequential Computation

Models of Sequential Computation 13 C H A P T E R Programming is often considered as an art, but it raises mostly practical questions like which language should I choose, which algorithm is adequate, and

Pushdown Automata. place the input head on the leftmost input symbol. while symbol read = b and pile contains discs advance head remove disc from pile

Pushdown Automata In the last section we found that restricting the computational power of computing devices produced solvable decision problems for the class of sets accepted by finite automata. But along

Computation Beyond Turing Machines

Computation Beyond Turing Machines Peter Wegner, Brown University Dina Goldin, U. of Connecticut 1. Turing s legacy Alan Turing was a brilliant mathematician who showed that computers could not completely

Clock. D Flip-Flop. Flip-Flops and Finite State Automata 3/31/2009

Finite State Machine Design COMP370 Intro to Computer Architecture Flip-Flops and Finite State Automata Finite State Automata (FSA) have states. The system has to remember the current state. Flip-Flops

Turing Machines and Understanding Computational Complexity

Turing Machines and Understanding Computational Complexity Paul M.B.Vitányi CWI, Science Park 123, 1098XG Amsterdam The Netherlands 1. Introduction A Turing machine refers to a hypothetical machine proposed

Satisfiability of Boolean Expressions

Satisfiability of Boolean Expressions In the previous section, we have analysed in great detail one particular problem reachability in directed graphs. The reason for the attention devoted to this one

Hilberts Entscheidungsproblem, the 10th Problem and Turing Machines

Hilberts Entscheidungsproblem, the 10th Problem and Turing Machines Nitin Saxena (Hausdorff Center for Mathematics, Bonn) [Happy] [100 th ] [Alan] [Mathison] [Turing!][][][]... **all pictures are works

Alan Turing and the Unsolvable Problem To Halt or Not to Halt That Is the Question

Alan Turing and the Unsolvable Problem To Halt or Not to Halt That Is the Question Cristian S. Calude 26 April 2012 Alan Turing Alan Mathison Turing was born in a nursing home in Paddington, London, now

Automata and Languages

Automata and Languages Computational Models: An idealized mathematical model of a computer. A computational model may be accurate in some ways but not in others. We shall be defining increasingly powerful

A TM. Recall the A TM language: A TM = { M, w M is a TM and M accepts w.} is undecidable. Theorem: The language. p.2/?

p.1/? Reducibility We say that a problem Q reduces to problem P if we can use P to solve Q. In the context of decidability we have the following templates : If A reduces to B and B is decidable, then so

Classical Information and Bits

p. 1/24 Classical Information and Bits The simplest variable that can carry information is the bit, which can take only two values, 0 or 1. Any ensemble, description, or set of discrete values can be quantified

Theory of Computation Lecture Notes

Theory of Computation Lecture Notes Abhijat Vichare August 2005 Contents 1 Introduction 2 What is Computation? 3 The λ Calculus 3.1 Conversions: 3.2 The calculus in use 3.3 Few Important Theorems 3.4 Worked

Theory of Computation

Theory of Computation For Computer Science & Information Technology By www.thegateacademy.com Syllabus Syllabus for Theory of Computation Regular Expressions and Finite Automata, Context-Free Grammar s

TDDD65 Introduction to the Theory of Computation

TDDD65 Introduction to the Theory of Computation Lecture 3 Gustav Nordh Department of Computer and Information Science gustav.nordh@liu.se 2012-09-05 Outline Context-free Grammars Ambiguity Pumping Lemma

CANTOR S DIAGONAL ARGUMENT: PROOF AND PARADOX

CANTOR S DIAGONAL ARGUMENT: PROOF AND PARADOX Cantor s diagonal method is elegant, powerful, and simple. It has been the source of fundamental and fruitful theorems as well as devastating, and ultimately,

Introduction to Theory of Computation

Introduction to Theory of Computation Prof. (Dr.) K.R. Chowdhary Email: kr.chowdhary@iitj.ac.in Formerly at department of Computer Science and Engineering MBM Engineering College, Jodhpur Tuesday 28 th

2. Methods of Proof Types of Proofs. Suppose we wish to prove an implication p q. Here are some strategies we have available to try.

2. METHODS OF PROOF 69 2. Methods of Proof 2.1. Types of Proofs. Suppose we wish to prove an implication p q. Here are some strategies we have available to try. Trivial Proof: If we know q is true then

Turing Machine Extensions, and Enumerators

Turing Machine Extensions, and Enumerators Prof. (Dr.) K.R. Chowdhary Email: kr.chowdhary@iitj.ac.in Formerly at department of Computer Science and Engineering MBM Engineering College, Jodhpur Tuesday

An example of a computable

An example of a computable absolutely normal number Verónica Becher Santiago Figueira Abstract The first example of an absolutely normal number was given by Sierpinski in 96, twenty years before the concept

Lecture 2: Universality

CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal

The Classes P and NP

The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

Lecture 39: Extensions to Turing Machines

Lecture 39: Extensions to Turing Machines Aims: To see that extensions to Turing machines add no power. Page 1 of 12 39.1. More Example Turing Machines By naming machines, we can combine complex machines

Practice Problems for Final Exam: Solutions CS 341: Foundations of Computer Science II Prof. Marvin K. Nakayama

Practice Problems for Final Exam: Solutions CS 341: Foundations of Computer Science II Prof. Marvin K. Nakayama 1. Short answers: (a) Define the following terms and concepts: i. Union, intersection, set

Algebraic Computation Models. Algebraic Computation Models

Algebraic Computation Models Ζυγομήτρος Ευάγγελος ΜΠΛΑ 201118 Φεβρουάριος, 2013 Reasons for using algebraic models of computation The Turing machine model captures computations on bits. Many algorithms

The Undecidability of the Generalized Collatz Problem

The Undecidability of the Generalized Collatz Problem Stuart A. Kurtz Department of Computer Science The University of Chicago Janos Simon Department of Computer Science The University of Chicago December

3. Recurrence Recursive Definitions. To construct a recursively defined function:

3. RECURRENCE 10 3. Recurrence 3.1. Recursive Definitions. To construct a recursively defined function: 1. Initial Condition(s) (or basis): Prescribe initial value(s) of the function.. Recursion: Use a

Finite Sets. Theorem 5.1. Two non-empty finite sets have the same cardinality if and only if they are equivalent.

MATH 337 Cardinality Dr. Neal, WKU We now shall prove that the rational numbers are a countable set while R is uncountable. This result shows that there are two different magnitudes of infinity. But we

Properties of Stabilizing Computations

Theory and Applications of Mathematics & Computer Science 5 (1) (2015) 71 93 Properties of Stabilizing Computations Mark Burgin a a University of California, Los Angeles 405 Hilgard Ave. Los Angeles, CA

Introduction to computer science

Introduction to computer science Michael A. Nielsen University of Queensland Goals: 1. Introduce the notion of the computational complexity of a problem, and define the major computational complexity classes.

Lecture 1: Time Complexity

Computational Complexity Theory, Fall 2010 August 25 Lecture 1: Time Complexity Lecturer: Peter Bro Miltersen Scribe: Søren Valentin Haagerup 1 Introduction to the course The field of Computational Complexity

CS/Math 240: Introduction to Discrete Mathematics Fall 2015 Instructors: Beck Hasti, Gautam Prakriya Reading 7 : Program Correctness 7.1 Program Correctness Showing that a program is correct means that

the lemma. Keep in mind the following facts about regular languages:

CPS 2: Discrete Mathematics Instructor: Bruce Maggs Assignment Due: Wednesday September 2, 27 A Tool for Proving Irregularity (25 points) When proving that a language isn t regular, a tool that is often

Chapter 2. Values, Variables, and Types. 2.1 Java Values in DrJava s Interaction Pane

14 Chapter 2 Values, Variables, and Types In this chapter we explore the primitive building blocks that are used to develop Java programs. We experiment with the following concepts within DrJava s interactive

Hypercomputation: computing more than the Turing machine

Hypercomputation: computing more than the Turing machine Abstract: Toby Ord Department of Philosophy * The University of Melbourne t.ord@pgrad.unimelb.edu.au In this report I provide an introduction to

1.3 Induction and Other Proof Techniques

4CHAPTER 1. INTRODUCTORY MATERIAL: SETS, FUNCTIONS AND MATHEMATICAL INDU 1.3 Induction and Other Proof Techniques The purpose of this section is to study the proof technique known as mathematical induction.

Chapter 1. Computation theory

Chapter 1. Computation theory In this chapter we will describe computation logic for the machines. This topic is a wide interdisciplinary field, so that the students can work in an interdisciplinary context.

Lecture 36: Turing Machines [Fa 14]

Caveat lector: This is the zeroth (draft) edition of this lecture note. In particular, some topics still need to be written. Please send bug reports and suggestions to jeffe@illinois.edu. Think globally,

Incompleteness and Artificial Intelligence

Incompleteness and Artificial Intelligence Shane Legg Dalle Molle Institute for Artificial Intelligence Galleria 2, Manno-Lugano 6928, Switzerland shane@idsia.ch 1 Introduction The implications of Gödel

Notes on Complexity Theory Last updated: August, 2011. Lecture 1

Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look

DISCRETE MATHEMATICS W W L CHEN

DISCRETE MATHEMATICS W W L CHEN c W W L Chen, 1982, 2008. This chapter originates from material used by the author at Imperial College, University of London, between 1981 and 1990. It is available free

On the Relationship between Classes P and NP

Journal of Computer Science 8 (7): 1036-1040, 2012 ISSN 1549-3636 2012 Science Publications On the Relationship between Classes P and NP Anatoly D. Plotnikov Department of Computer Systems and Networks,

If f is a 1-1 correspondence between A and B then it has an inverse, and f 1 isa 1-1 correspondence between B and A.

Chapter 5 Cardinality of sets 51 1-1 Correspondences A 1-1 correspondence between sets A and B is another name for a function f : A B that is 1-1 and onto If f is a 1-1 correspondence between A and B,

8 Algorithms. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, students should be able to:

8 Algorithms 8.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, students should be able to: Define an algorithm and relate it to problem solving. Define

What computers can't do

1997 2009, Millennium Mathematics Project, University of Cambridge. Permission is granted to print and copy this page on paper for non commercial use. For other uses, including electronic redistribution,

Honors Class (Foundations of) Informatics. Tom Verhoeff. Department of Mathematics & Computer Science Software Engineering & Technology

Honors Class (Foundations of) Informatics Tom Verhoeff Department of Mathematics & Computer Science Software Engineering & Technology www.win.tue.nl/~wstomv/edu/hci c 2011, T. Verhoeff @ TUE.NL 1/20 Information

6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, 2010. Class 4 Nancy Lynch

6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, 2010 Class 4 Nancy Lynch Today Two more models of computation: Nondeterministic Finite Automata (NFAs)

Markov Algorithm. CHEN Yuanmi December 18, 2007

Markov Algorithm CHEN Yuanmi December 18, 2007 1 Abstract Markov Algorithm can be understood as a priority string rewriting system. In this short paper we give the definition of Markov algorithm and also

CHAPTER 7 GENERAL PROOF SYSTEMS

CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

NUMBER SYSTEMS CHAPTER 19-1

NUMBER SYSTEMS 19.1 The Decimal System 19. The Binary System 19.3 Converting between Binary and Decimal Integers Fractions 19.4 Hexadecimal Notation 19.5 Key Terms and Problems CHAPTER 19-1 19- CHAPTER

Automata and Formal Languages

Automata and Formal Languages Winter 2009-2010 Yacov Hel-Or 1 What this course is all about This course is about mathematical models of computation We ll study different machine models (finite automata,