109
Source of Slides: Introduction to Automata Theory, Languages, and Computati By John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman

Theory of Computation

  • 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

Page 1: Theory  of Computation

Source of Slides: Introduction to Automata Theory, Languages, and ComputationBy John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman

Page 2: Theory  of Computation

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.

Page 3: Theory  of Computation

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

Page 4: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 4

Turing MachineTuring Machine

Formal Definition

Page 5: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 5

Turing MachineTuring Machine

Page 6: Theory  of Computation

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

Page 7: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 7

Turing MachineTuring Machine

Notational Conventions For Turing Machines

Page 8: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 8

Turing MachineTuring Machine

A Turing Machine M that accepts the language { 0n1n | n ≥0 }

Page 9: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 9

Turing MachineTuring Machine

Moves for input 0011:

Moves for input 0010:

Page 10: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 10

Turing MachineTuring Machine

Transition Diagram for 0011 input

Page 11: Theory  of Computation

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

Page 12: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 12

Turing MachineTuring Machine

Evaluating function

Page 13: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 13

Turing MachineTuring Machine

Evaluating function

Page 14: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 14

Turing MachineTuring Machine

Transition Table for the function

Page 15: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 15

Turing MachineTuring Machine

Transition Diagram for

Page 16: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 16

Turing MachineTuring Machine

Transition Table for the function

Transition Diagram for

Page 17: Theory  of Computation

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

Page 18: Theory  of Computation

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 }

Page 19: Theory  of Computation

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 }

Page 20: Theory  of Computation

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 }

Page 21: Theory  of Computation

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 }

Page 22: Theory  of Computation

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 }

Page 23: Theory  of Computation

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 }

Page 24: Theory  of Computation

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 }

Page 25: Theory  of Computation

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 }

Page 26: Theory  of Computation

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 }

Page 27: Theory  of Computation

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 }

Page 28: Theory  of Computation

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 }

Page 29: Theory  of Computation

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 }

Page 30: Theory  of Computation

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 }

Page 31: Theory  of Computation

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 }

Page 32: Theory  of Computation

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 }

Page 33: Theory  of Computation

End of Simulation

Dept. of Computer Science & IT, FUUAST Theory of Computation 33

Turing MachineTuring Machine

Page 34: Theory  of Computation

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

Page 35: Theory  of Computation

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

Page 36: Theory  of Computation

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

Page 37: Theory  of Computation

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

Page 38: Theory  of Computation

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

Page 39: Theory  of Computation

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

Page 40: Theory  of Computation

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

Page 41: Theory  of Computation

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

Page 42: Theory  of Computation

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

Page 43: Theory  of Computation

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

Page 44: Theory  of Computation

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

Page 45: Theory  of Computation

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

Page 46: Theory  of Computation

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

Page 47: Theory  of Computation

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

Page 48: Theory  of Computation

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

Page 49: Theory  of Computation

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

Page 50: Theory  of Computation

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

Page 51: Theory  of Computation

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

Page 52: Theory  of Computation

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

Page 53: Theory  of Computation

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

Page 54: Theory  of Computation

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

Page 55: Theory  of Computation

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

Page 56: Theory  of Computation

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

Page 57: Theory  of Computation

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

Page 58: Theory  of Computation

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

Page 59: Theory  of Computation

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

Page 60: Theory  of Computation

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

Page 61: Theory  of Computation

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

Page 62: Theory  of Computation

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

Page 63: Theory  of Computation

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

Page 64: Theory  of Computation

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

Page 65: Theory  of Computation

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

Page 66: Theory  of Computation

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

Page 67: Theory  of Computation

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

Page 68: Theory  of Computation

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

Page 69: Theory  of Computation

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

Page 70: Theory  of Computation

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

Page 71: Theory  of Computation

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

Page 72: Theory  of Computation

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

Page 73: Theory  of Computation

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

Page 74: Theory  of Computation

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

Page 75: Theory  of Computation

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

Page 76: Theory  of Computation

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

Page 77: Theory  of Computation

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

Page 78: Theory  of Computation

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

Page 79: Theory  of Computation

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

Page 80: Theory  of Computation

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

Page 81: Theory  of Computation

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

Page 82: Theory  of Computation

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

Page 83: Theory  of Computation

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

Page 84: Theory  of Computation

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

Page 85: Theory  of Computation

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

Page 86: Theory  of Computation

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

Page 87: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 87

End of Simulation

Turing MachineTuring Machine

Page 88: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 88

Turing MachineTuring Machine

0m10n1

Multiplication

Page 89: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 89

Turing MachineTuring Machine

0m10n1Multiplication

Page 90: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 90

Turing MachineTuring Machine

Page 91: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 91

Turing MachineTuring Machine

Page 92: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 92

Turing MachineTuring Machine

Page 93: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 93

Turing MachineTuring Machine

Page 94: Theory  of Computation

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:

Page 95: Theory  of Computation

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 ……

Page 96: Theory  of Computation

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

Page 97: Theory  of Computation

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”

Page 98: Theory  of Computation

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

Page 99: Theory  of Computation

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.

Page 100: Theory  of Computation

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

Page 101: Theory  of Computation

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…

Page 102: Theory  of Computation

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

Page 103: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 103

Turing MachineTuring Machine

Page 104: Theory  of Computation

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.

Page 105: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 105

Turing MachineTuring Machine

Simulating a Turing Machine by Computer

Page 106: Theory  of Computation

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

Page 107: Theory  of Computation

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

Page 108: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 108

Turing MachineTuring Machine

Universal Turing Machine

Page 109: Theory  of Computation

Dept. of Computer Science & IT, FUUAST Theory of Computation 109

Turing MachineTuring Machine

END