Turing Machines

1 / 33

# Turing Machines - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Turing Machines' - justus

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
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)

Pushdown Automata accepts context-free languages only

For example, {anbncn : w  *} is not context-free

Background
• Automata accepts regular languages only

For example, {anbn : n = 0, 1, …} is not regular

• 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.

Control

Tape

cell

Informal Description

a1

a2

• 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

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
•  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 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

Preliminaries to Formal Description (II)
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

(q,h,LS,RS)

• 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
Configuration for Turing Machines

Configuration:

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

C yields C’, written C * C’:

There is a sequence of configurations in one step:

C C0 C1 … C’

Computation in Turing Machines
• A configuration C1 = LS1q1h1RS1yields 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,)
• Example: eq0aaa yieldse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

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
Constructing Complex Turing Machines

Idea:

Use a modular approach similar to the one use to construct complex programs

a

A

B

Means that:

• If A halts in a configuration of the form w1qacceptaw2 wherew1or w2 are any words
• Then B starts with the configuration w1q0aw2
Graphical Conventions

We will use a convention similar to a flow chart to indicate how to put together Turing machines (TMs).

A;

if a then B

A

B

M

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 (2)

a

a

M;

If a then A

else B

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
Graphical Conventions (3)

a

while (not a) do

A

a

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 “”)

a

Basic Turing Machines

b

a

Other Simple Turing Machines

What it does

Machine

a

“if current cell has an a,then replace it with a b”

“if current cell has a character a different than , then move once to the right and write that a”

The  TuringMachine

• What it does?

Move to the right until if finds 

The  TuringMachine

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

R

R

“move to the right until you find “

“move to the right until you find a symbol other than “

The Conventions
• 2 simple rules:
• Rule # 1:
• Rule # 2:

Note: first check. Then move (think of a “while”)

“Never forget Rule # 1”

(Mr Miogi, The Karate Kid)

Example: Deciding the language (ab)*

“yes”

a

b

a

b

a

b

a

a

“no”