0% found this document useful (0 votes)
61 views82 pages

Turingmachines 120327094202 Phpapp02

A Turing machine is a simple mathematical model of a computer invented by Alan Turing in 1936 that is capable of simulating any other machine. It consists of an infinite tape divided into cells that can be read from and written to by a read/write head, a finite set of states, and transition rules that determine the next state and head movement based on the current state and tape symbol. Turing machines operate by reading/writing symbols on the tape and moving the head left or right according to the transition function until they halt in an accepting or rejecting state.

Uploaded by

Jaweria Jaweria
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views82 pages

Turingmachines 120327094202 Phpapp02

A Turing machine is a simple mathematical model of a computer invented by Alan Turing in 1936 that is capable of simulating any other machine. It consists of an infinite tape divided into cells that can be read from and written to by a read/write head, a finite set of states, and transition rules that determine the next state and head movement based on the current state and tape symbol. Turing machines operate by reading/writing symbols on the tape and moving the head left or right according to the transition function until they halt in an accepting or rejecting state.

Uploaded by

Jaweria Jaweria
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 82

Turing Machines

Invented by Alan Turing in 1936.

A simple mathematical model of a general


purpose computer.

It is capable of performing any calculation


which can be performed by any computing
machine.
The Language Hierarchy

nnn?
abc ww?

Context-Free Languages
nn R
ab ww
Regular Languages
a* a*b*
Languages accepted by
Turing Machines
nnn
abc ww

Context-Free Languages
nn R
ab ww NDPA
Regular Languages
Finite
a* a*b* Automata
A Turing Machine
Tape
...... ......

Read-Write head
Control Unit
The Tape
No boundaries -- infinite length
...... ......

Read-Write head

The head moves Left or Right


...... ......

Read-Write head

The head at each time step:

1. Reads a symbol
2. Writes a symbol
3. Moves Left or Right
Example:
Time 0
...... a b a c ......

Time 1
...... a b k c ......

1. Reads a
2. Writes k
3. Moves Left
Time 1
...... a b k c ......

Time 2
...... a f k c ......

1. Reads b
2. Writes f
3. Moves Right
The Input String
Input string Blank symbol

...... a b a c ......

head
Head starts at the leftmost position
of the input string

Are treated as left and right brackets for the
input written on the tape.
States & Transitions
Read Write
Move Left

q1
a b
,L q
2

Move Right

q1
a b
,R q
2
Example:
Time 1
...... a b a c ......

q1
current state

q1
a b
,R q
2
Time 1
...... a b a c ......

q1

Time 2
...... a b b c ......

q2

q1
a b
,R q
2
Example:
Time 1
...... a b a c ......

q1

Time 2
...... a b b c ......

q2

q1
a b
,L q
2
Example:
Time 1
...... a b a c ......

q1

Time 2
...... a b b c g ......

q2

q1
g
,Rq
2
Determinism
Turing Machines are deterministic

Allowed Not Allowed



a b
,R q2
a b
,R q2

q1 q1
q q

b ,L 3
d a ,L 3
d

No lambda transitions allowed


Partial Transition Function
Example:

...... a b a c ......

q1


a b
,R q2 Allowed:

q1 No transition
for input symbol c

b q
,L 3
d
Halting

The machine halts if there are


no possible transitions to follow
Example:

...... a b a c ......

q1


a b
,R q2
No possible transition
q1
HALT!!!

b q
,L 3
d
Final States
q1 q2 Allowed

q1 q2 Not Allowed

Final states have no outgoing transitions

In a final state the machine halts


Acceptance
If machine halts
Accept Input
in a final state

If machine halts
in a non-final state
Reject Input or
If machine enters
an infinite loop
Turing Machine Example
A Turing machine that accepts the language:
aa
*


a a
,R



,L
q0 q1
Time 0 a a a

q0


a a
,R



,L
q0 q1
Time 1 a a a

q0


a a
,R



,L
q0 q1
Time 2 a a a

q0


a a
,R



,L
q0 q1
Time 3 a a a

q0


a a
,R



,L
q0 q1
Time 4 a a a

q1


a a
,R Halt & Accept



,L
q0 q1
Rejection Example

Time 0 a b a

q0


a a
,R



,L
q0 q1
Time 1 a b a

q0
No possible Transition

a ,R Halt & Reject
a



,L
q0 q1
Infinite Loop Example


b b
,L

a a
,R



,L
q0 q1
Time 0 a b a

q0


b b
,L

a a
,R



,L
q0 q1
Time 1 a b a

q0


b b
,L

a a
,R



,L
q0 q1
Time 2 a b a

q0


b b
,L

a a
,R



,L
q0 q1
Time 2 a b a
q0
Time 3 a b a
q0
Time 4 a b a
q0

Time 5 a b a
q0
... Infinite Loop
Because of the infinite loop:

The final state cannot be reached

The machine never halts

The input is not accepted


Another Turing Machine
Example nn
Turing machine for the language {
ab}

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 0 a a b b

q0

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 1 x a b b

q1

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 2 x a b b

q1

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 3 x a y b

q2

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 4 x a y b

q2

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 5 x a y b

q0

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 6 x x y b

q1

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 7 x x y b

q1

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 8 x x y y

q2

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 9 x x y y

q2

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 10 x x y y

q0

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 11 x x y y

q3

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 12 x x y y

q3

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Time 13 x x y y

q4
Halt & Accept

q4
y y
,R y y
,L

y y
,R
a
,R a
a a
,L


,L

y y
,Ra
x,R b
y,L
q3 q0 q1 q2

x x
,R
Observation:

If we modify the
machine for the language nn
{
ab}

we can easily construct


nnn
a machine for the language {
abc}
Formal Definitions
for
Turing Machines
Transition Function

q1
c d
,L q
2

(
q,
c
)(
q,
d,
L)
1 2
Turing Machine:

Input Tape
alphabet alphabet
States


M
(
Q
,

,,
,q
0
,
,F
)
A partial Final
Transition states
function Initial Blank : a special symbol
state Of
Configuration
c a b a

q1

Instantaneous description: ca
q
1ba
Time 4 Time 5
x a y b x a y b

q2 q0

A Move: q
2
xayb
x
q
0ay
Time 4 Time 5
x a y b x a y b

q2 q0

Time 6 Time 7
x x y b x x y b

q1 q1

q
2
0
xay
x
q
ay
q
1
xx
y
xq
b
1
q
2
0
xay
x
q
ay
q
1
xx
y
xq
b
1


Equivalent notation: q
2
xayb
xxy
q
1b
Initial configuration: q0 w

Input string

a a b b

q0
The Accepted Language
For any Turing Machine M


L
(
M
){
w:q
w
0x
q
1fx
2}

Initial state Final state


Standard Turing Machine
The machine we described is the standard:

Deterministic

Infinite tape in both directions

Tape is the input/output file


Design a Turing machine to recognize all
strings in which 010 is present as a
substring. 0,0,R

0,0,R 1,1,R 0,0,R


q0 q1 q2 H

1,1,R
1,1, R
DFA for the previous language
0

0 1 0
q0 q1 q2

1
1
0,1
Turing machine for odd no of 1s

1, 1 , R
1, b , R

1, b , R
Recursively Enumerable
and
Recursive

Languages
Definition:
A language is recursively enumerable
if some Turing machine accepts it
Let L be a recursively enumerable language
and M the Turing Machine that accepts it

For string w:
if
w L then M halts in a final state

if
w L then M halts in a non-final state
or loops forever
Definition:
A language is recursive
if some Turing machine accepts it
and halts on any input string

In other words:
A language is recursive if there is
a membership algorithm for it
Let L be a recursive language
and M the Turing Machine that accepts it

For string w:

if
w L then M halts in a final state

if
w L then M halts in a non-final state
We will prove:

1. There is a specific language


which is not recursively enumerable
(not accepted by any Turing Machine)

2. There is a specific language


which is recursively enumerable
but not recursive
Non Recursively Enumerable

Recursively Enumerable

Recursive
We will first prove:

If a language is recursive then


there is an enumeration procedure for it

A language is recursively enumerable


if and only if
there is an enumeration procedure for it
The Chomsky Hierarchy
Unrestricted Grammars:

Productions
uv

String of variables String of variables


and terminals and terminals
Example unrestricted grammar:

S aBc
aB cA
Ac d
Theorem:

A language L is recursively enumerable


if and only if L is generated by an
unrestricted grammar
Context-Sensitive Grammars:

Productions
uv

String of variables String of variables


and terminals and terminals

and: |
|u |v
|
The language {nnn
abc}
is context-sensitive:

S abc | aAbc
Ab bA
Ac Bbcc
bB Bb
aB aa | aaA
The language {nnn
abc}
is context-sensitive:

S abc | aAbc
Ab bA
Ac Bbcc
bB Bb
aB aa | aaA
Theorem:

A language L is context sensistive


if and only if
L is accepted by a Linear-Bounded automaton
Observation:

There is a language which is context-sensitive


but not recursive
The Chomsky Hierarchy

Non-recursively enumerable

Recursively-enumerable
Recursive

Context-sensitive

Context-free

Regular

You might also like