Turing Machines (At last!).

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
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Variants of Turing machines
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Pages COMPUTABILITY THEORY.
Turing Machines (At last!). Designing Universal Computational Devices Was Not The Only Contribution from Alan Turing… Enter the year 1940: The world is.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Fall 2004COMP 3351 Turing Machines. Fall 2004COMP 3352 The Language Hierarchy Regular Languages Context-Free Languages ? ?
CS 310 – Fall 2006 Pacific University CS310 Turing Machines Section 3.1 November 6, 2006.
CS5371 Theory of Computation Lecture 10: Computability Theory I (Turing Machine)
Computability and Complexity 3-1 Turing Machine Computability and Complexity Andrei Bulatov.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Turing Machines CS 105: Introduction to Computer Science.
Prof. Busch - LSU1 Turing Machines. Prof. Busch - LSU2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Turing Machines A more powerful computation model than a PDA ?
Context-Free Languages Regular Languages Violates Pumping Lemma For RLs Violates Pumping Lemma For CFLs Described by CFG, PDA 0n1n0n1n 0n1n2n0n1n2n Described.
Turing Machines Chapter Plan Turing Machines(TMs) – Alan Turing Church-Turing Thesis – Definitions Computation Configuration Recognizable vs. Decidable.
CSE202: Introduction to Formal Languages and Automata Theory Chapter 9 The Turing Machine These class notes are based on material from our textbook, An.
CSCI 2670 Introduction to Theory of Computing September 28, 2005.
 Computability Theory Turing Machines Professor MSc. Ivan A. Escobar
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.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
 2005 SDU Lecture13 Reducibility — A methodology for proving un- decidability.
Fundamentals of Informatics Lecture 3 Turing Machines Bas Luttik.
CS 3240: Languages and Computation
1 Section 13.1 Turing Machines A Turing machine (TM) is a simple computer that has an infinite amount of storage in the form of cells on an infinite tape.
1 Turing Machines and Equivalent Models Section 13.1 Turing Machines.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
THE CONVENTIONS 2 simple rules: Rule # 1: Rule # 2: RR “move to the right until you find  “ Note: first check. Then move (think of a “while”) “Never.
1 Introduction to Turing Machines
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 12 Mälardalen University 2007.
Summary of Previous Class There are languages that are not decidable –(we have not proved this yet) Why not extend Turing machines just as we did with.
1 Unit – 5 : STATE MACHINES Syllabus: Languages and Grammars – Finite State Machines State machines and languages – Turing Machines – Computational Complexity.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Theory of Computation Automata Theory Dr. Ayman Srour.
CS 154 Formal Languages and Computability April 5 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesTuring.
CSE202: Introduction to Formal Languages and Automata Theory
Turing Machines Alan Turing ( ) mathematician and logician.
More variants of Turing Machines
Busch Complexity Lectures: Turing Machines
COSC 3340: Introduction to Theory of Computation
Busch Complexity Lectures: Reductions
Turing Machines.
CS21 Decidability and Tractability
Pumping Lemma Revisited
COSC 3340: Introduction to Theory of Computation
Turing Machines 2nd 2017 Lecture 9.
CSE 105 theory of computation
Formal Definition Definition. A Turing machine is a 5-tuple (S, , , s, H), where: S is a set of states  is an alphabet It must contain  and . It cannot.
Chapter 3: The CHURCH-Turing thesis
فصل سوم The Church-Turing Thesis
Constructing Complex Turing Machines
Turing Machines (TM) Deterministic Turing Machine (DTM)
CSE 105 theory of computation
Decidable Languages Costas Busch - LSU.
Decidable Languages A language L is decidable if there is a Turing machine ML such that given any word w  0*, then: Input of ML: a  b  … w Output of.
CS21 Decidability and Tractability
MA/CSSE 474 Theory of Computation
COSC 3340: Introduction to Theory of Computation
Turing Machines Complexity ©D.Moshkovitz.
Decidability and Tractability
CSE 105 theory of computation
CSE 105 theory of computation
Computability Catch up last lecture. Turing machines. Variations
Turing Machines Everything is an Integer
Intro to Theory of Computation
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

Turing Machines (At last!)

Designing Universal Computational Devices Was Not The Only Contribution from Alan Turing… Enter the year 1940: The world is at war Nazi Germany has succeeded in conquering most of west Europe Britain is under siege British supply lines are threaten by German Germany used the Enigma Code, considered unbreakable Alan Turing led a group of scientist that broke the enigma code Enter the year 2006: The National Security Agency (NSA) needs people! (www.nsa.gov)

Background Automata accepts regular languages only For example, {anbn : n = 0, 1, …} is not regular Pushdown Automata accepts context-free languages only For example, {anbncn : w  *} is not context-free We can easily write an algorithm (in C) recognizing if a sequence of characters have the form anbncn or not

The Key Question Is it possible to design a formal model of a computational device that capture the capabilities of any algorithm? Alan Turing, 1940’s: Yes!

Basic Idea Turing decomposed operations in the device as follows: A pencil will be “observing” symbols from a paper The pencil can move left and right Computational steps erase a symbol observed by the pencil and write a new one in its place The decision about which symbol should be written and which will be observed next depend on: The current symbol being observed The “state of mind” of the device This device is called a Turing Machine

Turing Machine Looks Similar to Finite Automata Common: A “state of mind” sounds like the collection of states A “pencil” sounds like the pointer for the next word Main differences: Turing machines can write on the “paper” Turing machines can backup and read symbols again This turns out to be a major difference!

In Turing’s Own Words ... which can be made to do the work of any special-purpose machine, that is to say to carry out any piece of computing, if a tape bearing suitable "instructions" is inserted into it.

Expressivity of Turing Machines (TMs) TMs can simulate any data structure TMs can simulate major components of imperative languages: sequence, branching and loop TMs can control branching and loops Several extensions have been attempted: adding multiple heads (pencils), tapes, non-determinism, etc. But we can show that TMs can simulate each of these extensions

Church-Turing Thesis Every computer algorithm can be implemented as a Turing machine Therefore, C, C++, Prolog, Lisp, Small talk, and Java programs can be simulated in Turing machines Definition: a programming language is Turing-complete if it is equivalent to a Turing machine.

Informal Description Control head a1 a2 … Tape cell The head: Reads the symbol from the cell it is pointing to, and Either: Writes a new symbol in the cell, or Moves one cell to the left or right

Informal Description (II) New cells can be added to the right of the tape as needed (similar to RAM memory) These new cells contain the blank symbol,  The tape is bounded to the left

Preliminaries to Formal Description  denotes the alphabet of characters in language as usual.  denotes the set of symbols that can be written on tape It contains  and all symbols in  Transitions can be described by (Case I): ((s,a),(q,b,)) If the machine is in state s and the current cell has an a then jump to state q and write b in the current cell and moves head to right

Preliminaries to Formal Description (II) Transitions can be described by (Case II): ((s,a),(q,b,)) If the machine is in state s and the current cell has an a then jump to state q and write b in the current cell and moves head to left

Formal Definition Definition. A Turing machine is a 7-tuple (Q, , , , q0, qaccept, qreject), where: Q is a set of states  is a set of symbols (the alphabet)  is a set of symbols that can be written in tape,    and    q0  Q is the initial state qaccept is the accepting state qreject is the rejecting state, qreject  qaccept

Formal Definition (II)  is a collection of transitions defined by the function: : (Q  {qaccept, qreject })    Q    {, }

My First Turing Machine Construct a Turing machine such that: input: a substring over the alphabet  ={a,b}, the substring contains at least 1 character b the header is pointing to the first cell in tape When the Turing machine halts, the header must be pointing to the first occurrence of b in the input a b a  a b a 

Discussion: Are you sure that such a simple model can simulate my C++ program for computing the Minimum Spanning Tree?

The “Eraser” TM Construct a Turing machine that receives as input a substring of a’s and replace each a for a blank space,  a a a     

Configuration for Turing Machines The current state, q The symbol pointed by the head, h The string left of the head, LS The string right of the head, RS (q,h,LS,RS)

Configuration for Turing Machines (2) Instead of writing: (q,h,LS,RS), we write:LSqhRS If q = qaccept, then LSqhRS is called an accepting configuration If q = qreject, then LSqhRS is called a rejecting configuration Examples: - Initial configuration with 3 a’s for the eraser TM: eq0aaa - Accepting configuration starting with eq0aaa: qaccept

Computation in Turing Machines A configuration C1 = LS1q1h1RS1 yields a configuration C2 = LS2h2q2RS2 in one step, written C1 C2, if:  There is a transition: (q1, h1) = (q2,h2,) The other case is analogous for (q1, h1) = (q2,h2,) C yields C’, written C * C’:  There is a sequence of configurations in one step: C C0 C1 … C’ Example: eq0aaa yields eq0

Two Forms of Computability Definition. A word w is accepted by a Turing machine M if M yields an accepting configuration starting from the configuration eq0w Definition. The language L(M) recognized by a Turing machine M: L(M) = {w | w accepted by M} Definition. A language L is Turing-recognizable if there is a Turing machine that recognizes L Definition. A language L is decidable if there is a Turing machine M such that: L(M) = L For any word w L, M yields a rejecting configuration starting from the configuration eq0w

Constructing Complex Turing Machines Idea: Use a modular approach similar to the one use to construct complex programs Example (programming): Given two nn matrixes A and B to compute ABT we: Construct a procedure to compute BT, transverse(B,C) Construct a procedure to multiply two matrices, multiply(B,C,D) Call transverse(B,C) and then multiply(A,C,D). D contains the answer

Graphical Conventions We will use a convention similar to a flow chart to indicate how to put together Turing machines (TMs). Convention. Let A and B be 2 TMs, and a be a character in  then: A a B A; if a then B Means that: If A halts in a configuration of the form w1qacceptaw2 where w1or w2 are any words Then B starts with the configuration w1q0aw2

Graphical Conventions (2) M a a M; If a then A else B A B Means that: If M halts in a configuration of the form w1qacceptaw2, then A starts with the configuration w1q0aw2 If M halts in a configuration of the form w1 qacceptw2 with   a, then B starts with the configuration w1q0w2

Graphical Conventions (3) while (not a) do A a A Means that: If the initial configuration has the form w1q0w2, then A starts with this configuration if   a, where s is the initial state in A If A halts in a configuration of the form w1qacceptw2 with   a, then A starts with the configuration w1q0w2

Basic Turing Machines a Denotes “write a on the current cell” (a is a character in )  Denotes “move to the right of the current cell” (the book uses “R” instead of “”)  Denotes “move to the left of the current cell” (the book uses “L” instead of “”)

Other Simple Turing Machines What it does a “if current cell has an a, then replace it with a b” b a  “if current cell has a character a different than , then move once to the right and write that a”

The  Turing Machine –  –   What it does? Move to the right until if finds 

The  Turing Machine Draw diagram for    –

 and  – –  – Move to the left until the first non-blank space cell is found   – Move to the right until the first non-blank space cell is found 

The Conventions 2 simple rules: Rule # 1: Rule # 2: R “move to the right until you find “ R “move to the right until you find a symbol other than “ Note: first check. Then move (think of a “while”) “Never forget Rule # 1” (Mr Miogi, The Karate Kid)

Example: Deciding the language (ab)*  a b “yes” a b  a b a a “no”