turing machine

78

Upload: umar-alharaky

Post on 13-Jun-2015

987 views

Category:

Technology


4 download

DESCRIPTION

This presentation provide an example to explain the idea of Turing Machine with two ways infinite tape (BALANCED PARENTHESES EXAMPLE).

TRANSCRIPT

Page 1: Turing machine
Page 2: Turing machine

Finite Control

qi

R\D Head

Input Tape

ε a0 a1 … an ε ε ε … …

Page 3: Turing machine

Create a Turing Machine that takes as input a string consists of different parentheses ( ), [ ] or { } and ensure

if that string is balanced – open parentheses are balanced with closed parentheses – and correct – the smaller one does not include the bigger –.

Examples:

{[[(()())]()]} Accepted (balanced and correct)

[(())(){()()}] Rejected (balanced but wrong)

{[()}}{[(())]} Rejected (correct but unbalanced)

{()([])}[(()]] Rejected (unbalanced and wrong)

Page 4: Turing machine

Q = { Start , Find1 , Find2 , Find3 , End , Rejected , Accepted }

States Description :

Start : initial state, that begin to find first symbol ), ] or } then check it with X, Y or Z respectively.

Find1 : moving left to find matched symbol (, then check it with X and return to Start state.

Find2 : moving left to find matched symbol [, then check it with Y and return to Start state.

Find3 : moving left to find matched symbol {, then check it with Z and return to Start state.

End : the string is finished, thus moving left to ensure that all symbols are checked.

Rejected : there are unchecked (unbalanced) symbols or the string is wrong, therefore string is rejected.

Accepted : all symbols are checked (balanced) and the string is correct, therefore string is accepted.

Page 5: Turing machine

Γ = { ( , ) , [ , ] , { , } , X , Y , Z , ε } (Tape Alphabet)

Σ = { ( , ) , [ , ] , { , } } (Input Alphabet)

F = { Accepted } (Finite States)

Initial State: Start

Blank Symbol: ε

Page 6: Turing machine

ε Z Y X } { ] [ ) ( δ(q , γ)

End

ε , L

Start Z , R

Start Y , R

Start X , R

Find3 Z , L

Start { , R

Find2 Y , L

Start [ , R

Find1 X , L

Start ( , R

Start → ) , ] , }

Rejected

ε , R (unbalanced)

Rejected Z , L

(wrong)

Rejected Y , L

(wrong)

Find1 X , L

- Rejected

{ , L (wrong)

- Rejected

[ , L (wrong)

- Start X , R

Find1 (

Rejected

ε , R (unbalanced)

Rejected Z , L

(wrong)

Find2 Y , L

Find2 X , L

- Rejected

{ , L (wrong)

- Start Y , R

- Rejected

( , L (unbalanced)

Find2 [

Rejected

ε , R (unbalanced)

Find3 Z , L

Find3 Y , L

Find3 X , L

- Start Z , R

- Rejected

[ , L (unbalanced)

- Rejected

( , L (unbalanced)

Find3 {

Accepted

ε , R (correct)

(balanced)

End Z , L

End Y , L

End X , L

- Rejected

{ , L (unbalanced)

- Rejected

[ , L (unbalanced)

- Rejected

( , L (unbalanced)

End

ε

- - - - - - - - - - Rejected

Stop

- - - - - - - - - - Accepted

Stop

Page 7: Turing machine

X / Y , D X : Scanned Symbol Y : Written Symbol D : Move Direction

Find2

Find1

Accept Reject

Find3

End Start

X/X,L

]/Y,L

[/Y,R

ε/ε,R ε/ε,L (/(,L {/{,L

[/[,L

Z/Z,L ε/ε,L

Y/Y,L

Y/Y,L

Page 8: Turing machine

{ [ ε ε … … ( ) ] }

A. The string: {[()]}

Start

Page 9: Turing machine

{ [ ε ε … … ( ) ] }

A. The string: {[()]}

Start

Page 10: Turing machine

{ [ ε ε … … ( ) ] }

A. The string: {[()]}

Start

Page 11: Turing machine

{ [ ε ε … … ( ) ] }

A. The string: {[()]}

Start

Page 12: Turing machine

{ [ ε ε … … ( X ] }

A. The string: {[()]}

Find1

Page 13: Turing machine

{ [ ε ε … … X X ] }

A. The string: {[()]}

Start

Page 14: Turing machine

{ [ ε ε … … X X ] }

A. The string: {[()]}

Start

Page 15: Turing machine

{ [ ε ε … … X X Y }

A. The string: {[()]}

Find2

Page 16: Turing machine

{ [ ε ε … … X X Y }

A. The string: {[()]}

Find2

Page 17: Turing machine

{ [ ε ε … … X X Y }

A. The string: {[()]}

Find2

Page 18: Turing machine

{ Y ε ε … … X X Y }

A. The string: {[()]}

Start

Page 19: Turing machine

{ Y ε ε … … X X Y }

A. The string: {[()]}

Start

Page 20: Turing machine

{ Y ε ε … … X X Y }

A. The string: {[()]}

Start

Page 21: Turing machine

{ Y ε ε … … X X Y }

A. The string: {[()]}

Start

Page 22: Turing machine

{ Y ε ε … … X X Y Z

A. The string: {[()]}

Find3

Page 23: Turing machine

{ Y ε ε … … X X Y Z

A. The string: {[()]}

Find3

Page 24: Turing machine

{ Y ε ε … … X X Y Z

A. The string: {[()]}

Find3

Page 25: Turing machine

{ Y ε ε … … X X Y Z

A. The string: {[()]}

Find3

Page 26: Turing machine

{ Y ε ε … … X X Y Z

A. The string: {[()]}

Find3

Page 27: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Start

Page 28: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Start

Page 29: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Start

Page 30: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Start

Page 31: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Start

Page 32: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Start

Page 33: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 34: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 35: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 36: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 37: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 38: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 39: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

End

Page 40: Turing machine

Z Y ε ε … … X X Y Z

A. The string: {[()]}

Accepted

Page 41: Turing machine

[ { ε ε … … ( ) } ]

B. The string: [{()}]

Start

Page 42: Turing machine

[ { ε ε … … ( ) } ]

B. The string: [{()}]

Start

Page 43: Turing machine

[ { ε ε … … ( ) } ]

B. The string: [{()}]

Start

Page 44: Turing machine

[ { ε ε … … ( ) } ]

B. The string: [{()}]

Start

Page 45: Turing machine

[ { ε ε … … ( X } ]

B. The string: [{()}]

Find1

Page 46: Turing machine

[ { ε ε … … X X } ]

B. The string: [{()}]

Start

Page 47: Turing machine

[ { ε ε … … X X } ]

B. The string: [{()}]

Start

Page 48: Turing machine

[ { ε ε … … X X Z ]

B. The string: [{()}]

Find3

Page 49: Turing machine

[ { ε ε … … X X Z ]

B. The string: [{()}]

Find3

Page 50: Turing machine

[ { ε ε … … X X Z ]

B. The string: [{()}]

Find3

Page 51: Turing machine

[ Z ε ε … … X X Z ]

B. The string: [{()}]

Start

Page 52: Turing machine

[ Z ε ε … … X X Z ]

B. The string: [{()}]

Start

Page 53: Turing machine

[ Z ε ε … … X X Z ]

B. The string: [{()}]

Start

Page 54: Turing machine

[ Z ε ε … … X X Z ]

B. The string: [{()}]

Start

Page 55: Turing machine

[ Z ε ε … … X X Z Y

B. The string: [{()}]

Find2

Page 56: Turing machine

[ Z ε ε … … X X Z Y

B. The string: [{()}]

Rejected (wrong)

Page 57: Turing machine

{ [ ε ε … … [ ( ) ]

C. The string: {[[()]

Start

Page 58: Turing machine

{ [ ε ε … … [ ( ) ]

C. The string: {[[()]

Start

Page 59: Turing machine

{ [ ε ε … … [ ( ) ]

C. The string: {[[()]

Start

Page 60: Turing machine

{ [ ε ε … … [ ( ) ]

C. The string: {[[()]

Start

Page 61: Turing machine

{ [ ε ε … … [ ( ) ]

C. The string: {[[()]

Start

Page 62: Turing machine

{ [ ε ε … … [ ( X ]

C. The string: {[[()]

Find1

Page 63: Turing machine

{ [ ε ε … … [ X X ]

C. The string: {[[()]

Start

Page 64: Turing machine

{ [ ε ε … … [ X X ]

C. The string: {[[()]

Start

Page 65: Turing machine

{ [ ε ε … … [ X X Y

C. The string: {[[()]

Find2

Page 66: Turing machine

{ [ ε ε … … [ X X Y

C. The string: {[[()]

Find2

Page 67: Turing machine

{ [ ε ε … … [ X X Y

C. The string: {[[()]

Find2

Page 68: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

Start

Page 69: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

Start

Page 70: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

Start

Page 71: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

Start

Page 72: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

End

Page 73: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

End

Page 74: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

End

Page 75: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

End

Page 76: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

End

Page 77: Turing machine

{ [ ε ε … … Y X X Y

C. The string: {[[()]

Rejected (unbalanced)

Page 78: Turing machine