Turing Machines, Part I



Similar documents
3515ICT Theory of Computation Turing Machines

Turing Machines: An Introduction

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

Introduction to Turing Machines

CAs and Turing Machines. The Basis for Universal Computation

CS 3719 (Theory of Computation and Algorithms) Lecture 4

Notes on Complexity Theory Last updated: August, Lecture 1

Computational Models Lecture 8, Spring 2009

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

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

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

Computability Theory

Automata and Computability. Solutions to Exercises

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

Turing Machines, Busy Beavers, and Big Questions about Computing

CSE 135: Introduction to Theory of Computation Decidability and Recognizability

24 Uses of Turing Machines

THEORY of COMPUTATION

Theory of Computation Chapter 2: Turing Machines

Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP

6.080/6.089 GITCS Feb 12, Lecture 3

Lecture 2: Universality

Super Turing-Machines

Universal Turing Machine: A Model for all Computational Problems

Regular Languages and Finite State Machines

Introduction to Theory of Computation

Lecture 36: Turing Machines [Fa 14]

Chapter 1. Computation theory

Automata and Formal Languages

Reading 13 : Finite State Automata and Regular Expressions

Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, School of Informatics University of Edinburgh als@inf.ed.ac.

NP-Completeness and Cook s Theorem

1 Definition of a Turing machine

How To Compare A Markov Algorithm To A Turing Machine

The Halting Problem is Undecidable

The Classes P and NP

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

4.6 The Primitive Recursive Functions

Regular Languages and Finite Automata

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

Models of Sequential Computation

Computation Beyond Turing Machines

THE TURING DEGREES AND THEIR LACK OF LINEAR ORDER

CS103B Handout 17 Winter 2007 February 26, 2007 Languages and Regular Expressions

C H A P T E R Regular Expressions regular expression

Increasing Interaction and Support in the Formal Languages and Automata Theory Course

FINITE STATE AND TURING MACHINES

Introduction to Automata Theory. Reading: Chapter 1

CMPSCI 250: Introduction to Computation. Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013

The P versus NP Solution

How To Understand The Theory Of Computer Science

Regular Expressions and Automata using Haskell

Outline 2. 1 Turing Machines. 2 Coding and Universality. 3 The Busy Beaver Problem. 4 Wolfram Prize. 5 Church-Turing Thesis.

Turing Machines and Understanding Computational Complexity

Wang s B machines are efficiently universal, as is Hasenjaeger s small universal electromechanical toy

Formal Grammars and Languages

Finite Automata. Reading: Chapter 2

Hilberts Entscheidungsproblem, the 10th Problem and Turing Machines

Oracle Turing machines faced with the verification problem

Welcome to... Problem Analysis and Complexity Theory , 3 VU

Chapter 7 Uncomputability

Properties of Stabilizing Computations

MACM 101 Discrete Mathematics I

UNIVERSALITY IS UBIQUITOUS

Model 2.4 Faculty member + student

Composability of Infinite-State Activity Automata*

Diagonalization. Ahto Buldas. Lecture 3 of Complexity Theory October 8, Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

Finite Automata and Regular Languages

Complexity of Algorithms

CS 301 Course Information

A Framework for the Semantics of Behavioral Contracts

Row Echelon Form and Reduced Row Echelon Form

Universality in the theory of algorithms and computer science

Kenken For Teachers. Tom Davis June 27, Abstract

(LMCS, p. 317) V.1. First Order Logic. This is the most powerful, most expressive logic that we will examine.

Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University

20 CODE CHALLENGES. GCSE (9 1) Computer Science GCSE REFORM. February 2015

Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi

Theoretical Computer Science (Bridging Course) Complexity

First programming project: Key-Word indexer

2 Elements of classical computer science

Informatique Fondamentale IMA S8

Hypercomputation: computing more than the Turing machine

Lecture 13 - Basic Number Theory.

Lecture summary for Theory of Computation

11 Multivariate Polynomials

Computer Science Theory. From the course description:

Introduction to Finite Automata

3 Monomial orders and the division algorithm

Modeling of Graph and Automaton in Database

Creating While Loops with Microsoft SharePoint Designer Workflows Using Stateful Workflows

Reduced echelon form: Add the following conditions to conditions 1, 2, and 3 above:

T Reactive Systems: Introduction and Finite State Automata

CPSC 211 Data Structures & Implementations (c) Texas A&M University [ 313]

Deterministic Finite Automata

Course Manual Automata & Complexity 2015

On the Structure of Turing Universe: The Non-Linear Ordering of Turing Degrees

Algebraic Computation Models. Algebraic Computation Models

Fundamentele Informatica II

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

Transcription:

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 Free Languages Regular Languages Finite Languages We re going to start to look at languages out here Computer Science Theory 3 The Turing Machine We investigate the next classes of languages by first considering the machine Turing Machine Developed by Alan Turing in 1936 More than just recognizing languages Foundation for modern theory of computation Computer Science Theory 4 2

Theory Hall of Fame Alan Turing 1912 1954 b. London, England. PhD Princeton (1938) Research Cambridge and Manchester U. National Physical Lab, UK Creator of the Turing Test Computer Science Theory 5 More about Turing Breaking the Code Movie about the personal life of Alan Turing Death was by cyanide poisoning (some say suicide) Turing worked as a code breaker for the Allies during WWII. Turing eventually tried to build his machine and apply it to mathematics, code breaking, and games (chess). Was beat to the punch by vonneumann Computer Science Theory 6 3

The Turing Machine Some history Created in response to Kurt Godel s 1931 proof that formal mathematics was incomplete There exists logical statements that cannot be proven by using formal deduction from a set of rules Good Reading: Godel, Escher, Bach by Hofstadter Turing set out to define a process by which it can be decided whether a given mathematical statement can be proven or not. Computer Science Theory 7 Theory Hall of Fame Kurt Godel 1906 -- 1978 b. Brünn, Austria- Hungary PhD University of Vienna (1929) Research Princeton University Godel s Incompleteness Theorem Computer Science Theory 8 4

The Turing Machine Motivating idea Build a theoretical human computer Likened to a human with a paper and pencil that can solve problems in an algorithmic way The theoretical machine provides a means to determine: If an algorithm or procedure exists for a given problem What that algorithm or procedure looks like How long would it take to run this algorithm or procedure. Computer Science Theory 9 The Church-Turing Thesis (1936) Any algorithmic procedure that can be carried out by a human or group of humans can be carried out by some Turing Machine Equating algorithm with running on a TM Turing Machine is still a valid computational model for most modern computers. Computer Science Theory 10 5

Theory Hall of Fame Alonso Church 1903 -- 1995 b. Washington D.C. PhD Princeton (1927) Mathematics Prof (1927 1967) Advisor to both Turing and Kleene Computer Science Theory 11 Turing Machine A Machine consists of: A state machine An input tape A movable r/w tape head A move of a Turning Machine Read the character on the tape at the current position of the tape head Change the character on the tape at the current position of the tape head Move the tape head Change the state of the machine based on current state and character read Computer Science Theory 12 6

Turing Machine Input tape (input/memory)... Read head State Machine (program) Tape that holds character string Movable tape head that reads and writes character Machine that changes state based on what is read in Computer Science Theory 13 Turing Machine In the original Turing Machine The read tape was infinite in both directions The text describes a semi-infinite TM where The tape is bounded on the left and infinite on the right It can be shown that the semi-infinite TM is equivalent to the basic TM. As not to confuse, we ll follow the conventions in the book Computer Science Theory 14 7

Turing Machines About the input tape Bounded to the left, infinite to the right All cells on the tape are originally filled with a special blank character Tape head is read/write Tape head can not move to the left of the start of the tape If it tries, the machine crashes Computer Science Theory 15 Turing Machines About the machine states A Turing Machine does not have a set of accepting states Instead, each TM has a special halting state, h. Once in the halting state, the machine halts. Unlike PDAs, the basic TM is deterministic! Computer Science Theory 16 8

Turing Machines Let s formalize this A Turing Machine M is a 5-tuple: M = (Q, Σ, Γ, q 0, δ) where Q = a finite set of states (assumed not to contain the halting state h) Σ = input alphabet (strings to be used as input) Γ = tape alphabet (chars that can be written onto the tape. Includes symbols from Σ) Both Σ and Γ are assumed not to contain the blank symbol δ = transition function Computer Science Theory 17 Turing Machines Transition function: δ: Q x (Γ { }) (Q {h}) x (Γ { }) x {R, L, S} Input: Current state Tape symbol read at current position of tape head Output: State in which to move the machine (can be the halting state) Tape symbol to write at the current position of the tape head (can be the blank symbol) Direction in which to move the tape head (R = right, L = left, S= stationary) Computer Science Theory 18 9

Turing Machines Transition Function Symbol at current tape head position X / Y, R Symbol to write at the current head position Direction in which to move the tape head q 0 q 1 Computer Science Theory 19 Turing Machine Configuration of a TM Gives the current configuration of a TM (q, xay) Current state Current contents of the tape (without trailing blanks) Underlined character is current position of the tape head Computer Science Theory 20 10

Turing Machine We indicate (q, xay) a (p, ubv) If you can go from one configuration to another on a single move, and (q, xay) a * (p, ubv) If you can go from one configuration to another in zero or more moves. Computer Science Theory 21 Turing Machine Initial configuration: To run an input string x on a TM, Start in the stating state place the string after the leftmost blank on the tape place the head at this leftmost blank: (q 0, x) Computer Science Theory 22 11

Turing Machine Running a Turing Machine The execution of a TM can result in 4 possible cases: The machine halts (ends up in the halting state) The machine has nowhere to go (at a state, reading a symbol where no transition is defined) The machine crashes (tries to move the tape head to before the start of the tape) The machine goes into an infinite loop (never halts) Computer Science Theory 23 Turing Machine Accepting a string A string x is accepted by a TM, if Starting in the initial configuration With x on the input tape The machine eventually ends up in the halting state. i.e. (q 0, x) a * (h, xay) for x,y (Γ { }) *, a (Γ { }) Computer Science Theory 24 12

Turing Machine Running a Turing Machine The execution of a TM can result in 4 possible cases: The machine halts (ACCEPT) The machine has nowhere to go (REJECT) The machine crashes (REJECT) The machine goes into an infinite loop (REJECT but keeps us guessing!) Computer Science Theory 25 Turing Machine Language accepted by a Turing Machine The language accepted by a TM is the set of all input strings x on which the machine halts. Computer Science Theory 26 13

TMs and Regular Languages Example: L = { x { a, b } * x contains the substring aba } b a a,b a b a b Computer Science Theory 27 TMs and Regular Languages Example: L = { x { a, b } * x contains the substring aba } Build a TM that mimics the FA that accepts this language Computer Science Theory 28 14

TMs and Regular Languages b/b,r a/a,r 0 /,R a/a,r b /b,r a /a,r h B/b,R Computer Science Theory 29 TMs and Regular Languages Example Observations Like FAs TM tape head will always move to the right Like FAs, TM will not write new chars onto the tape Can enter halt state even before the machine reads all the characters of x. Computer Science Theory 30 15

TMs and Context Free Language Example Our old friend the palindrome: L = { x {a, b} * x = x r } We won t simulate a PDA since the PDA for pal is non-deterministic (we ll deal with nondeterministic TMs later). Computer Science Theory 31 TMs and Context Free Language Example L = { x {a, b} * x = x r } Basic idea: Compare the first character with the last character. If they match compare the second character with the second to last character If they match, compare the 3 rd character with the 3 rd to last character And so on For x in pal, eventually we will end up with 0 or 1 unmatched characters. Computer Science Theory 32 16

TMs and Context Free Language Example L = { x {a, b} * x = x r } How to compare characters? Read a character and replace it with blanks. Move across the tape to first blank character Check the character to the left If it s the character that you initially read in, replace it with a blank, move the tape head left until you reach the first blank character and so on. Computer Science Theory 33 TMs and Context Free Language Example L = { x {a, b} * x = x r } Halting condition: If when you moved left/right after finding the first blank, the character found is a blank, we have found a palindrome! Computer Science Theory 34 17

TMs and Context Free Language Computer Science Theory 35 TMs and Context Free Language Example L = { x {a, b} * x = x r } States: q 1 at the leftmost blank q 2 read an a, move right until you find a blank q 3 looking for an a, look left after finding rightmost blank q 4 matched first character read, move left till you find the leftmost blank q 5 read an b, move right until you find a blank q 6 looking for an b, look left after finding rightmost blank Computer Science Theory 36 18

Let s try a non-context free language Example L = { xx x { a, b } * } Basic idea Find and mark the middle of the string Compare characters starting from the start of the string with characters starting from the middle of the string. Computer Science Theory 37 Let s try a non-context free language Example L = { xx x { a, b } * } Finding the middle of the string Convert first character to it s upper case equiv. Move all the way to the right to the last lower case character and change it to upper case. Move all the way back left to the first lower case character and change it to upper case And so on. Computer Science Theory 38 19

Let s try a non-context free language Once you ve found the middle, Convert the 1 st half of the string back to lower case. Start from the left of the tape Match upper case chars in 1 st half with lower case chars in the 2 nd. Replace a matched upper case char with blanks Repeat until the 1 st half of the string is all blank. Computer Science Theory 39 Let s try a non-context free language Find middle of string 1 st half to lower case Character matching Computer Science Theory 40 20

Turing Machines Next, combining Turing Machines Computer Science Theory 41 Combining Turing Machines Suppose an algorithm has a number of tasks to perform Each task has its own TM Much like subroutines or functions They can be combined into a single TM T 1 T 2 is the composite TM T 1 T 2 Computer Science Theory 42 21

Combining Turing Machines Composite TMs T 1 T 2 Start at start state of T 1 For any move that causes T 1 to enter the halt state, have T 1 move to the start state of T 2. So T 2 will get executed immediately after T 1 as long as T 1 will halt on a given input. Allows one to define subroutines. Computer Science Theory 43 Combining Turing Machines Useful subroutines Copy TM Creates a copy of the input string to the right of the input separated by a blank (q 0, x) a * (h, x x) Basic idea Examines each character in turn and writes it after the 1 st blank to the right of the input string Keeps track of its progress by converting copied characters to upper case When finished, converts original string back to lower case. Computer Science Theory 44 22

Combining Turing Machines Copy TM Computer Science Theory 45 Combining Turing Machines Useful subroutines Delete TM Deletes a character from a string (q, yaz) a * (h, yz) Basic idea: Replace the char to be deleted with a blank Go to the rightmost non-blank character of the string Move left towards the blanked out character shifting each character along the way to the left. Computer Science Theory 46 23

Combining Turing Machines Delete TM Go backwards and shift Replace char with blank Go to end Computer Science Theory 47 Combining Turing Machines Useful subroutines Delete TM Something to note The TM must be set up to be in the correct configuration before delete is called i.e. the tape head must be at the character to be deleted. Questions? Computer Science Theory 48 24

Summary Turing Machines Combining Turing Machines Turing Machine Subroutines Computer Science Theory 49 25