The Church-Turing Thesis

Slides:



Advertisements
Similar presentations
Turing Machines Memory = an infinitely long tape Persistent storage A read/write tape head that can move around the tape Initially, the tape contains only.
Advertisements

Introduction to Computability Theory
Variants of Turing machines
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Pages COMPUTABILITY THEORY.
Foundations of (Theoretical) Computer Science Chapter 3 Lecture Notes (Section 3.2: Variants of Turing Machines) David Martin With.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture11: Variants of Turing Machines Prof. Amos Israeli.
CS5371 Theory of Computation Lecture 11: Computability Theory II (TM Variants, Church-Turing Thesis)
Computation Theory Introduction to Turing Machine.
CHAPTER 3 The Church-Turing Thesis
CS5371 Theory of Computation Lecture 10: Computability Theory I (Turing Machine)
More Theory of Computing
Turing Machines Chapter 17. Languages and Machines SD D Context-Free Languages Regular Languages reg exps FSMs cfgs PDAs unrestricted grammars Turing.
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Part 1 – Pages COMPUTABILITY THEORY.
Measuring complexity Section 7.1 Giorgi Japaridze Theory of Computability.
The Church-Turing Thesis Chapter 3 Giorgi Japaridze Theory of Computability.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Turing Machines.
TM Design Macro Language D and SD MA/CSSE 474 Theory of Computation.
Lecture 9  2010 SDU Lecture9: Turing Machine.  2010 SDU 2 Historical Note Proposed by Alan Turing in 1936 in: On Computable Numbers, with an application.
1 Turing Machines and Equivalent Models Section 13.1 Turing Machines.
Overview of the theory of computation Episode 3 0 Turing machines The traditional concepts of computability, decidability and recursive enumerability.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
 2004 SDU 1 Algorithm Informally speaking, an algorithm is a collection of simple instructions for carrying out a task. Example:  Elementary arithmetic.
1 Introduction to Turing Machines
Theory of Computation Automata Theory Dr. Ayman Srour.
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesTuring.
WELCOME TO A JOURNEY TO CS419 Dr. Hussien Sharaf Dr. Mohammad Nassef Department of Computer Science, Faculty of Computers and Information, Cairo University.
Turing’s Thesis Costas Busch - LSU.
The Church-Turing Thesis
Time complexity Here we will consider elements of computational complexity theory – an investigation of the time (or other resources) required for solving.
CS21 Decidability and Tractability
Variants of Turing machines
Turing Machines Chapter 17.
Pushdown Automata.
Pushdown Automata.
(Universal Turing Machine)
CSE 105 theory of computation
CS154, Lecture 7: Turing Machines.
Theory of Computation Lecture 22: Turing Machines III
CSE 105 theory of computation
Turing Machines Acceptors; Enumerators
COSC 3340: Introduction to Theory of Computation
فصل سوم The Church-Turing Thesis
Turing Machines (TM) Deterministic Turing Machine (DTM)
Theory of Computation Turing Machines.
Finite Automata Reading: Chapter 2.
CSCI 2670 Introduction to Theory of Computing
CS21 Decidability and Tractability
CS21 Decidability and Tractability
MA/CSSE 474 Theory of Computation
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
Theory of Computability
Decidability and Tractability
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
CSE 105 theory of computation
Theory of Computability
Instructor: Aaron Roth
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
Theory of Computability
Theory of Computability
Variants of Turing machines
CSC 4170 Theory of Computation Time complexity Section 7.1.
Theory of Computability
Theory of Computation Lecture 23: Turing Machines III
Intro to Theory of Computation
CSE 105 theory of computation
Presentation transcript:

The Church-Turing Thesis Giorgi Japaridze Theory of Computability The Church-Turing Thesis Chapter 3

Components of a Turing machine (TM) Giorgi Japaridze Theory of Computability a a b a b b - - - - - - (Q,,,,start,accept,reject) Q is the set of states  is the input alphabet not containing the blank symbol -  is the tape alphabet, where - and   is the transition function of the type Q Q{L,R} start,accept,reject Q, where rejectaccept; the states accept and reject are called halting states. There are no transitions from the halting states, and they immediately take effect! xy,R q1 q2 If the current tape symbol is x, replace it with y, move the head right and go to q2. The label xx,R is simply written as xR. If we here have L instead of R, then the head is moved left, unless it was on the first cell, in which case it remains where it was.

How a Turing machine works 3.1.b Giorgi Japaridze Theory of Computability 0  L x  L q5 xR -  R -  L xR start q2 q3 0 -,R 0x,R  R x  R -  R 0 x,R 0R xR q4 reject accept Configuration: Current state; Tape contents; Head position -  R - x - - - - - - -

Otherwise the string is considered rejected. Definitions 3.1.c1 Giorgi Japaridze Theory of Computability A TM accepts an input string iff, on this input, sooner or later it enters the accept state. Otherwise the string is considered rejected. Thus, the input is rejected in two cases: The machine enters the reject state at some point, or The machine never halts (never enters a halting state). A Turing machine is said to be a decider iff it halts on every input. The language recognized by a TM --- the set the strings that TM accepts; If this machine is a decider, then we say that it not only recognizes, but also decides that language. A language is said to be Turing-recognizable iff some TM recognizes it. A language is said to be Turing-decidable iff some TM decides it.

Recognizing vs deciding Giorgi Japaridze Theory of Computability accept 0  R -  R -  R  R 0 R 0  R reject What language does the above machine recognize? Does it decide that language? accept 0  R -  R 0  R -  R reject What language does the above machine recognize? Does it decide that language?

Diagrams without the reject state Giorgi Japaridze Theory of Computability 0  L x  L xR q5 -  R -  L start xR q2 q3 0 -,R 0x,R -  R 0R 0 x,R accept xR q4 The reject state can be safely removed. It will be understood that all the missing transitions lead to the reject state.

Design a TM that recognizes (better – decides) {#n =m | n=m} Designing TM: Example 1 3.1.e1 Giorgi Japaridze Theory of Computability Design a TM that recognizes (better – decides) {#n =m | n=m} 1. Sweep left to right across the tape, testing if the input has the form #*=*; if not, reject; if yes, go back to the beginning of the tape and go to step 2 (state q3). L = L x L - L R R # R = R - L start q1 q2 q9 #  L q3

2. Keep going to the right, replace the first  you see before = with Designing TM: Example 1 3.1.e2 Giorgi Japaridze Theory of Computability 2. Keep going to the right, replace the first  you see before = with x and go to step 3 (state q5); if you reach = without seeing a , go to step 4 (state q6). xR x,R q3 q4 q5 # R = R q6

with x and go to the beginning of the tape, step 2 (this can be Designing TM: Example 1 3.1.e3 Giorgi Japaridze Theory of Computability 3. Keep going to the right, pass = and then replace the first  you see with x and go to the beginning of the tape, step 2 (this can be done by going to state q9); if you reach a blank without seeing a , reject. q9 x,R R = R xR q5 q7

4. Keep going to the right as long as you see x. If you see a  before Designing TM: Example 1 3.1.e4 Giorgi Japaridze Theory of Computability 4. Keep going to the right as long as you see x. If you see a  before reaching a blank, reject; otherwise accept. xR - R q6 accept

- - - #     =     start Designing TM: Example 1 q1 q2 q9 q3 q4 Giorgi Japaridze Theory of Computability L = L x L - L R R # R = R - L start q1 q2 q9 #  L x,R xR R x,R = R xR q3 q4 q5 q7 # R xR = R - R q6 accept - - - #     =    

Design a TM that decides {#n <m | n<m} Designing TM: Example 2 3.1.f Giorgi Japaridze Theory of Computability Design a TM that decides {#n <m | n<m} L < L x L - L L < L x L R R # R < R - L start q1 q2 q9 #  L x,R xR R x,R < R xR q3 q4 q5 q7 # R xR < R R q6 accept

Design a TM that decides {#n +m = k | n+m=k} Designing TM: Example 3 3.1.g Giorgi Japaridze Theory of Computability Design a TM that decides {#n +m = k | n+m=k} + L L = L x L - L R R R # R + R = R - L start q0 q1 q2 q9 #  L x,R xR +R R +R x,R = R q3 q4 q7 xR q5 # R xR = R - R q6 accept

Design a TM that decides {#n m = k | nm=k} Designing TM: Example 4 3.1.h Giorgi Japaridze Theory of Computability Design a TM that decides {#n m = k | nm=k} Step 1: Check if the string has the form #* * = * . If not, reject; If yes, go back to the beginning of the tape, step 2. Step 2: Find the first  between # and , delete it and go to step 3; If no such  was found, go to step 5. Step 3: Find the first  between  and =, delete it and go to step 4; If no such  was found, go to the beginning of the tape, restoring on the way back all the deleted  between  and =, and go to step 2. Step 4: Find the first  after =, delete it, go back to , and go to step 3; If no such  was found before seeing a blank, reject. Step 5: Go right past = ; if no  is found there before reaching a blank, accept; otherwise reject. #       =       -

Testing whether the head is at the beginning of the tape Giorgi Japaridze Theory of Computability Design a fragment of a TM that, from a state “Beg?”, goes to a state “Yes” or “No”, depending on whether you are at the beginning of the tape or not, without corrupting the contents of the tape. Tape alphabet: {x1,…,xn} Add a new tape symbol: $ Read the current symbol, remember it, type $, and move left; Read the current symbol. If it is $, restore the remembered symbol and go to “Yes”. If it is not $, move right, restore the remembered symbol and go to “No”. x1,…,xn R a1 b1 $ x1,L x1,R x1 $,L … L Beg? Yes Temp No xn $,L $ xn,L xn,R an bn x1,…,xn R

Implementing the “go to the beginning of the tape” operation 3.1.j Giorgi Japaridze Theory of Computability Design a fragment of a TM that, from a state “Go to the beginning”, goes to the beginning of the tape and state “Done”. Move left and test if you are at the beginning of the tape. If yes, go to “Done”. If not, repeat the step. No Done Go to the beginning Beg? Yes

Shifting tape contents 3.1.k Giorgi Japaridze Theory of Computability Design a fragment of a TM that types 0 in the current cell and shifts the (old) contents of the remaining tape one cell to the right. Assume the tape alphabet is {0,1,-}. Read the current symbol, remember it, type 0 and move right. While the current symbol is not -, remember it, type the previously remembered symbol and move right. Once you see a blank, type the remembered symbol and you are done. Shift Done

A TM for the element distinctness problem Giorgi Japaridze Theory of Computability Design a TM that decides the language E={#x1#x2#…#xn | each xi{0,1}* and xixj for each ij} See page 135 for a description of such a TM # x1 # x2 # x3 # x4 # x5 x1 x2 x3 x4 # 1 1 # 1 # # 1 1 -

Turing machines with the “stay put” option Giorgi Japaridze Theory of Computability A transition of this type of machine may have either L (move left), Or R (move right), or S (stay put). ab,S q1 q2 “Replace a with b and go to state q2 without moving the head” This does not increase the power of the machine, because the above transition can be simulated with the ordinary TM as follows:

Multitape Turing machines 3.2.b Giorgi Japaridze Theory of Computability A multitape TM has k tapes, each with its own read/write had. Initially, the input is written on the first tape, and all the other tapes are blank, with each head at the beginning of the corresponding tape. For a 3-tape TM, a transition will look like 0,1,11,0,1,R,R,L q1 q2 “If you are in state q1 and see 0 on Tape1, 1 on Tape2 and 1 on Tape3, type 1 on Tape1, 0 on Tape2 and 1 on Tape3; move Head1 right, Head2 right and Head3 left; go to state q2.”

Multitape Turing machines: Example Giorgi Japaridze Theory of Computability Design a fragment of a 2-tape TM that swaps the contents of the tapes, from the position where the heads are at the beginning and there are no blanks followed by non-blank symbols. Tape alphabet: {0,1,-} 0,00,0,R,R 0,11,0,R,R 0,-  -,0,R,R 1,00,1,R,R 1,11,1,R,R 1,-  -,1,R,R -,00,-,R,R -,11,-,R,R -,- - ,-,L,L Done Swap Tape1 Tape2 1 1 - - -

Simulating multitape TM with ordinary TM Giorgi Japaridze Theory of Computability Theorem 3.13: Every multitape TM M has an equivalent single-tape TM S. Proof idea: The tape contents and the head positions of M can be represented on the single tape of S and correspondingly updated as shown on the following example for a 3-tape M; S follows the steps of M and accepts iff M accepts. Tape1 M: Tape2 Tape3 S: 1 - q0 - - - - - - - - . . . # 1 # - # - # - - - - - -

Nondeterministic Turing machines Giorgi Japaridze Theory of Computability A nondeterministic TM is allowed to have more than 1 transition for a given tape symbol: A string is accepted, if one of the branches of computation takes us to the accept state. q2 ab,R q1 ac,L q3 Theorem 3.16: Every nondeterministic TM has an equivalent deterministic TM. Proof omitted. Idea: Simulate every possible branch of computation in a breadth-first manner.

Turing machines with an output (not in the textbook!) 3.2.f Giorgi Japaridze Theory of Computability The only difference with ordinary TM is that a TM with an output (TMO) has a state halt instead of accept and reject; if and when such a machine reaches the halt state, the contents of the tape (up to the first blank cell) will be considered its output. Example: Design a machine that, for every input w, returns w0.

A function g: * * is said to be computable, iff there is a TMO Computable functions 3.2.g Giorgi Japaridze Theory of Computability A function g: * * is said to be computable, iff there is a TMO M such that for every input w* M returns the output u with u=g(w). In this case we say that M computes g. Example: Let f: {0,1}* {0,1}* be the function defined by f(w)=w0, so that f()=0, f(0)=00, f(1)=10, f(00)=000, f(01)=010, etc. Then f is computable as we saw on the previous slide. The graph of a function g: * * is the language {(w,u) | w*, u=g(w)} E.g., the graph of the above function f is {(,0), (0,00), (1,10), (00,000), (01,010), …}, i.e. {(w,u) | w{0,1}*, u=w0}

Computability vs. decidability 3.2.h Giorgi Japaridze Theory of Computability Theorem: A function is computable iff its graph is decidable. Proof sketch. Let g: * * be a function. (): Suppose C is a TMO that computes g. Construct a TM D that works as follows: D = “On input t: 1. If t does not have the form (w,u), where w,u*, then reject. Otherwise, 2. Simulate C for input w. If it returns u, accept; otherwise reject.” (): Suppose a TM D decides the graph of g. Let s1,s2,s3,… be the lexicographic list of all strings over the alphabet . Construct a TMO C that works as follows: C =“On input t: Simulate D for each of the inputs (t,s1), (t,s2),(t,s3),… until you find si such that (t,si) is accepted, and return this si”

The intuitive notion of algorithms: An algorithm (procedure, recipe) Giorgi Japaridze Theory of Computability The intuitive notion of algorithms: An algorithm (procedure, recipe) is a collection of simple instructions for carrying out some task. Examples: The elementary school algorithms for adding, subtracting, multiplying, etc.; Converting an NFA to an equivalent DFA, or a RE to NFA, or an NFA to RE, etc.; Calculating students’ GPAs; Sorting algorithms; Any other procedures Dr. Levitin taught you. To carry out an algorithm, you only need to mechanically (blindly) follow its instructions. No understanding of the objects you are manipulating, no understanding of what you are doing is needed! We need a strict mathematical definition of an algorithm. The above “definition” obviously does not qualify.

Algorithms should deal with strings 3.3.b Giorgi Japaridze Theory of Computability The structure of an algorithm: Input(s) Output or Input(s) Yes (accept) or No (reject) The attempt to formalize the notion of algorithm should start from strictly specifying what kind of objects can be inputs/outputs. These are going to be only. strings No loss of generality: non-string objects can be easily represented with strings. A tuple of such objects can also be represented with a (one single) string. After all, computers exclusively deal with strings --- strings over the alphabet {0,1} !

Encoding --- representing objects as strings in some standard way. Giorgi Japaridze Theory of Computability Encoding --- representing objects as strings in some standard way. There are usually many ways to encode; as one encoding can be easily (algorithmically) converted into another, it does not matter which encoding we choose. Encoding numbers: 0,1,2,3,…,34,…, or 0,1,10,11,…,100010,… Encoding pairs of numbers: (4,2), (1,3), …, or 4#2, 1#3,…, or aaabb, abbb, … Encoding people: “David Stewart”, “Dongfei Wei”, …, or “Stewart, David”, “Wei, Dungfei”, or 315-21-5541, 326-11-1521… Encoding assembly language instructions: Their machine language equivalents. If O is an object, <O> will stand for a (the) encoding of O.

<G> = (1,2,3,4,5)((1,4),(1,5),(2,3),(4,5)) Encoding graphs 3.3.d Giorgi Japaridze Theory of Computability 1 2 3 G = <G> = (1,2,3,4,5)((1,4),(1,5),(2,3),(4,5)) 4 5 Algorithm M for checking if a graph is connected: M = “On input <G>, the encoding of a graph G: 1. Select the first node of G and mark it. 2. Repeat the following stage until no new nodes are marked: 3. For each node in G, mark it if it is attached by an edge to a node that is already marked. 4. Scan all the nodes of G to determine whether they all are marked. If they are, accept; otherwise reject.”

The Church-Turing thesis Giorgi Japaridze Theory of Computability The Church-Turing thesis: (the intuitive notion of) Algorithm = Turing machine It can never been mathematically proven! Importance: Without the Church-Turing thesis, you can never prove that a certain problem has no algorithmic solution. Example - Hilbert’s 10th problem (see page 154).

The three levels of TM descriptions Giorgi Japaridze Theory of Computability 1. Formal description: The TM is fully described, say, by giving a transition diagram, or list of states, input/tape alphabets, a table for the transition function. Examples: Slides 3.1.b, 3.1.f, etc. 2. Implementation description: English is used to describe the way that the machine moves its head and stores data on its tape. Details of states or transition functions are not given. Example: Slide 3.1.h 3. High-level description: English is used to describe the algorithm, without worrying about implementation-level details. There is no mention of head, tape etc. Example: Slide 3.3d; All the algorithms taught in CSC 8301