Upload
riona
View
51
Download
1
Embed Size (px)
DESCRIPTION
Theory of Computation. Turing Machine. Source of Slides: Introduction to Automata Theory, Languages, and Computation By John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman. Prof. Muhammad Saeed. Turing Machine. Church-Turing’s Thesis. - PowerPoint PPT Presentation
Citation preview
Source of Slides: Introduction to Automata Theory, Languages, and ComputationBy John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman
Dept. of Computer Science & IT, FUUAST Theory of Computation 2
Turing MachineTuring Machine
Church-Turing’s ThesisChurch-Turing’s Thesis
Any mathematical problem solving that can be described by an algorithm can be modeled by a Turing Machine.
Dept. of Computer Science & IT, FUUAST Theory of Computation 3
Turing MachineTuring Machine
1) 1) Multiple trackMultiple track2) Shift over Turing Machine2) Shift over Turing Machine3) Nondeterministic3) Nondeterministic4) Two way Turing Machine4) Two way Turing Machine5) Multitape Turing Machine5) Multitape Turing Machine6) Multidimensional Turing Machine6) Multidimensional Turing Machine7) Composite Turing Machine7) Composite Turing Machine8) Universal Turing Machine8) Universal Turing Machine
Types of Turing Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 4
Turing MachineTuring Machine
Formal Definition
Dept. of Computer Science & IT, FUUAST Theory of Computation 5
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 6
Turing MachineTuring Machine
1. Start in state q0
2. Read symbol under head3. Write new symbol4. Shift left/right5. Enter new state qj
Steps
Dept. of Computer Science & IT, FUUAST Theory of Computation 7
Turing MachineTuring Machine
Notational Conventions For Turing Machines
Dept. of Computer Science & IT, FUUAST Theory of Computation 8
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 9
Turing MachineTuring Machine
Moves for input 0011:
Moves for input 0010:
Dept. of Computer Science & IT, FUUAST Theory of Computation 10
Turing MachineTuring Machine
Transition Diagram for 0011 input
Dept. of Computer Science & IT, FUUAST Theory of Computation 11
Pushdown AutomataPushdown Automata
A Turing Machine M computes a function ( proper subtraction) for 0m10n on the tape.
means if m ≥ n then m - n else if m < n then 0
Dept. of Computer Science & IT, FUUAST Theory of Computation 12
Turing MachineTuring Machine
Evaluating function
Dept. of Computer Science & IT, FUUAST Theory of Computation 13
Turing MachineTuring Machine
Evaluating function
Dept. of Computer Science & IT, FUUAST Theory of Computation 14
Turing MachineTuring Machine
Transition Table for the function
Dept. of Computer Science & IT, FUUAST Theory of Computation 15
Turing MachineTuring Machine
Transition Diagram for
Dept. of Computer Science & IT, FUUAST Theory of Computation 16
Turing MachineTuring Machine
Transition Table for the function
Transition Diagram for
Dept. of Computer Science & IT, FUUAST Theory of Computation 17
0 0 1 1 B B
q0
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 18
X 0 1 1 B B
q1
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 19
X 0 1 1 B B
q1
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 20
X 0 Y 1 B B
q2
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 21
X 0 Y 1 B B
q2
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 22
X 0 Y 1 B B
q0
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 23
X 0 Y 1 B B
q0
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 24
X X Y 1 B B
q1
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 25
X X Y 1 B B
q1
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 26
X X Y Y B B
q2
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 27
X X Y Y B B
q2
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 28
X X Y Y B B
q0
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 29
X X Y Y B B
q0
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 30
X X Y Y B B
q3
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 31
X X Y Y B B
q3
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
Dept. of Computer Science & IT, FUUAST Theory of Computation 32
X X Y Y B B
q4
Turing MachineTuring Machine
A Turing Machine M that accepts the language { 0n1n | n ≥0 }
End of Simulation
Dept. of Computer Science & IT, FUUAST Theory of Computation 33
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 34
Evaluating function
0 0 0 0 0 1 0 0 0 B B
q0
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 35
Evaluating function
B 0 0 0 0 1 0 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 36
Evaluating function
B 0 0 0 0 1 0 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 37
Evaluating function
B 0 0 0 0 1 0 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 38
Evaluating function
B 0 0 0 0 1 0 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 39
Evaluating function
B 0 0 0 0 1 0 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 40
Evaluating function
B 0 0 0 0 1 0 0 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 41
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 42
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 43
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 44
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 45
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 46
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 47
Evaluating function
B 0 0 0 0 1 1 0 0 B B
q0
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 48
Evaluating function
B B 0 0 0 1 1 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 49
Evaluating function
B B 0 0 0 1 1 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 50
Evaluating function
B B 0 0 0 1 1 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 51
Evaluating function
B B 0 0 0 1 1 0 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 52
Evaluating function
B B 0 0 0 1 1 0 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 53
Evaluating function
B B 0 0 0 1 1 0 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 54
Evaluating function
B B 0 0 0 1 1 0 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 55
Evaluating function
B B 0 0 0 1 1 1 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 56
Evaluating function
B B 0 0 0 1 1 1 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 57
Evaluating function
B B 0 0 0 1 1 1 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 58
Evaluating function
B B 0 0 0 1 1 1 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 59
Evaluating function
B B 0 0 0 1 1 1 0 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 60
Evaluating function
B B 0 0 0 1 1 1 0 B B
q0
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 61
Evaluating function
B B B 0 0 1 1 1 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 62
Evaluating function
B B B 0 0 1 1 1 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 63
Evaluating function
B B B 0 0 1 1 1 0 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 64
Evaluating function
B B B 0 0 1 1 1 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 65
Evaluating function
B B B 0 0 1 1 1 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 66
Evaluating function
B B B 0 0 1 1 1 0 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 67
Evaluating function
B B B 0 0 1 1 1 1 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 68
Evaluating function
B B B 0 0 1 1 1 1 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 69
Evaluating function
B B B 0 0 1 1 1 1 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 70
Evaluating function
B B B 0 0 1 1 1 1 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 71
Evaluating function
B B B 0 0 1 1 1 1 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 72
Evaluating function
B B B 0 0 1 1 1 1 B B
q3
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 73
Evaluating function
B B B 0 0 1 1 1 1 B B
q0
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 74
Evaluating function
B B B B 0 1 1 1 1 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 75
Evaluating function
B B B B 0 1 1 1 1 B B
q1
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 76
Evaluating function
B B B B 0 1 1 1 1 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 77
Evaluating function
B B B B 0 1 1 1 1 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 78
Evaluating function
B B B B 0 1 1 1 1 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 79
Evaluating function
B B B B 0 1 1 1 1 B B
q2
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 80
Evaluating function
B B B B 0 1 1 1 1 B B
q4
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 81
Evaluating function
B B B B 0 1 1 1 B B B
q4
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 82
Evaluating function
B B B B 0 1 1 B B B B
q4
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 83
Evaluating function
B B B B 0 1 B B B B B
q4
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 84
Evaluating function
B B B B 0 B B B B B B
q4
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 85
Evaluating function
B B B B 0 B B B B B B
q4
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 86
Evaluating function
B B B 0 0 B B B B B B
q6
Turing MachineTuring Machine
Final State
Dept. of Computer Science & IT, FUUAST Theory of Computation 87
End of Simulation
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 88
Turing MachineTuring Machine
0m10n1
Multiplication
Dept. of Computer Science & IT, FUUAST Theory of Computation 89
Turing MachineTuring Machine
0m10n1Multiplication
Dept. of Computer Science & IT, FUUAST Theory of Computation 90
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 91
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 92
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 93
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 94
Turing MachineTuring Machine
Variants of Turing Machine
A normal TM is a 7-tuple (Q, Σ, , δ, q0, qaccept, qreject) where:
everything is the same as a TM except the transition function:
δ: Q x k → Q x k x {L, R}k
δ(qi, a1,a2,…,ak) = (qj, b1,b2,…,bk, L, R,…, L) = “in state qi, reading a1,a2,…,ak on k tapes, move to state qj, write b1,b2,…,bk on k tapes, move L, R on k tapes as specified.”
o Multitape Turing Machine:
Dept. of Computer Science & IT, FUUAST Theory of Computation 95
Turing MachineTuring Machine
k-tape TM
0 1 1 0 0 1 1 1 0 1 0 0
q0
input tape
finite control…
k read/write heads
0 1 1 0 0 1
“work tapes”
…
0 1 1 0 0 1 1 1 0 1 0 0 …
0 ……
Dept. of Computer Science & IT, FUUAST Theory of Computation 96
Turing MachineTuring Machine
Informal description of k-tape TM:
Input written on left-most squares of tape #1
Rest of squares are blank on all tapes At each point, take a step determined by
• current k symbols being read on k tapes• current state of finite control
A step consists of• writing k new symbols on k tapes• moving each of k read/write heads left or right• changing state
Dept. of Computer Science & IT, FUUAST Theory of Computation 97
Turing MachineTuring Machine
Theorem: Every k-tape TM has an equivalent single-tape TM.
Proof: Simulate k-tape TM on a 1-tape TM.
. . . a b a b
a a
b b c d
. . .
. . .
(input tape)
# a b a b # a a # b b c d # . . .
• add new symbol x for each old x
•marks location of “virtual heads”
Dept. of Computer Science & IT, FUUAST Theory of Computation 98
Turing MachineTuring Machine
Theorem: The time taken by the one-tape TM
to simulate n moves of the k-tape TM is O(n2).
Dept. of Computer Science & IT, FUUAST Theory of Computation 99
Turing MachineTuring Machine
o Nondeterministic Turing Machine (NTM):
A nondeterministic Turing Machine (NTM) differs from the deterministic variety by having a transition function δ such that for each state q and tape symbol X, δ(q, X) is a set of triples{(q1,Y1,D1), (q2,Y2,D2), ……….. (qk,Yk,Dk)}Where k is any finite integer. The NTM can choose, at each step, any of the triples to be the next move. It cannot, however, pick a state from one, a tape symbol from another, a the direction from yet another.
Dept. of Computer Science & IT, FUUAST Theory of Computation 100
Turing MachineTuring Machine
Theorem: Every NTM has an equivalent (deterministic) TM.
Proof: Simulate NTM with a deterministic TM
Cstart
• computations of M are a tree
• nodes are configurations
• fanout is b = maximum number of choices in transition function
• leaves are accept/reject configurations.
accrej
Dept. of Computer Science & IT, FUUAST Theory of Computation 101
Turing MachineTuring Machine
Simulating NTM M with a deterministic TM:
Breadth-first search of tree• if M accepts: we will encounter accepting leaf and
accept• if M rejects: we will encounter all rejecting leaves,
finish traversal of tree, and reject• if M does not halt on some branch: we will not halt
as that branch is infinite…
Dept. of Computer Science & IT, FUUAST Theory of Computation 102
Turing MachineTuring Machine
Simulating NTM M with a deterministic TM:
o use a 3 tape TM:• tape 1: input tape (read-only)• tape 2: simulation tape (copy of M’s tape at point
corresponding to some node in the tree)• tape 3: which node of the tree we are exploring (string
in {1,2,…b}*)o Initially, tape 1 has input, others blank
Dept. of Computer Science & IT, FUUAST Theory of Computation 103
Turing MachineTuring Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 104
Turing MachineTuring Machine
Turing Machine and Computer
o A computer can simulate Turing Machine.o A Turing Machine can simulate a computer.
Dept. of Computer Science & IT, FUUAST Theory of Computation 105
Turing MachineTuring Machine
Simulating a Turing Machine by Computer
Dept. of Computer Science & IT, FUUAST Theory of Computation 106
Turing MachineTuring Machine
Simulating a Computer by Turing Machine
Both addresses and contents are written in binary. The marker symbol * and # are used to find the ends of addresses and contents. Another marker,$, indicates the beginning of the sequence of addresses and contents
Both addresses and contents are written in binary. The marker symbol * and # are used to find the ends of addresses and contents. Another marker,$, indicates the beginning of the sequence of addresses and contents
Dept. of Computer Science & IT, FUUAST Theory of Computation 107
Turing MachineTuring Machine
A universal Turing machine is a Turing machine Tu that works as follows. It is assumed to receive an input string of the form e(T )e(z), where T is an arbitrary TM, z is a string over the input alphabet of T , and e is an encoding function whose values are strings in {0, 1} . The ∗computation performed by Tu on this input string satisfies these two properties:
1. Tu accepts the string e(T )e(z) if and only if T accepts z.2. If T accepts z and produces output y, then Tu produces
output e(y).
Universal Turing Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 108
Turing MachineTuring Machine
Universal Turing Machine
Dept. of Computer Science & IT, FUUAST Theory of Computation 109
Turing MachineTuring Machine
END