Tải bản đầy đủ

LT3 ch4 turingmachine

Ch

ng 4

Máy Turing

 Máy Turing

nh ngh a má
máy Turing
 Ngôn ng th a nh n đ
c và
và ngôn ng xác đ nh đ
 Các hà
hàm tí
tính đ c b i má
máy Turing
 Các ngôn ng đ quy và
và li t kê đ quy
 Lu n đ TuringTuring-Church
 K thu t xây d ng má

máy Turing
 M r ng cá
các má
máy Turing
 Máy turing không đ n đ nh
 Máy Turing v n n ng
 Ôtômat tuy n tí
tính gi i n i
 V n ph m c m ng c nh

Lý thuy t tí
ính toá
án
ttính
to
toán
(Theory
(Theory of
of Computation)
Computation)
PGS.TS. Phan Huy Khá
Khánh
khanhph@vnn.vn

Ch ng 4
Máy Turing
Máy

c

2/58
2/
58

M đ u

Mô t máy Turing đ n đ nh

 Ôhh đ y xu ng không th đoá
đoán nh n NN

anbncn dù có hai b nh l n tù
tùy ý

th a nh n anbncn, ph i tì
tìm ki m
các l p ôtômat khá
khác, đó
đó là các má
má y Turing
 S khá
khác nhau c n b n gi a má
máy Turing
và ô đ y xu ng :
 Máy Turing ch có m t b nh l n tù
tùy ý
 Máy Turing có
có th đ c và
và ghi
 Cách s d ng b nh là tu ý,
không h n ch
nguyên lý danh sá
sách
đ y xu ng (Stack hay LIFO)

Máy Turing đ n đ nh (Deterministic Turing Machine) g m :

Alan Turung
(1912
(19121954) :
nhà
nhà Toá
Toán h c
ng i Anh,
ng i đ u tiên
nghiên c u
lý thuy t ôtômat
n m 1936



M t b ng và
vào/ra (IO Tape) :



M t đ u đ c-ghi (Read/Write Head) di chuy n trên b ng



M t t p h p h u h n cá
các tr ng thá
thái trong đó
đó có :





M t tr ng thá
thái đ u



M t t p h p cá
cá c tr ng thá
thái th a nh n (cu i)

M t hà
hàm chuy n ti p
Y

X

a

b

a

b

b

#

#

...

qk
3/58
3/
58

4/58
4/
58

C u hì
hình ban đ u c a má
máy Turing

Mô t chi ti t
 B ng và
vào/ra :


Là m t b nh vô h n đ c chia thà
thành nhi u ô
M i ô có
có th ch a m t ký t a nào đó
đó (Tape
(Tape Alphabet)



B ng ch có c n trá
trái, c n ph i quy



 C u hì
hình ban đ u c a má
máy Turing đ



Tr ng thá
thái hi n hà
hành c a má
máy
Ký t đ c đ c v trí
trí d i đ u đ c



Tr ng thá
thái ti p theo c a má
máy



Ký t s ghi lên b ng t i v trí
trí ký t v a đ c đ
Chi u di chuy n c a đ u đ c-ghi
(qua trá
trái, ph i hay đ ng yên)





Câu và
vào w  * n m



M i ô còn l i c a b ng ch a m t ký hi u đ c bi t,
g i là
là các ký hi u tr ng (Blank
(Blank Symbol)

c có
có th kéo dà
dài vô h n

 Hàm chuy n ti p g m cá
các tham đ i :

c mô t nh sau :

mút trá
trái nh t c a b ng






u đ c-ghi n m
Máy đang

ô đ u tiên c a b ng (mú
(mút trá
trái nh t)

tr ng thá
thái đ u tiên, gi s q0

 Máy s n sà
sàng th c hi n b ng cá
cách đ c ký hi u
v trí
trí đ u đ c
c
b

a

a

b

a

b

b

#

#

...

q0
5/58
5/
58

6/58
6/
58

1


Ho t đ ng c a má
máy Turing
Ho t đ ng c a má
máy Turing đ





nh ngh a hì
hình th c má
máy Turing
Máy Turing đ

c mô t nh sau :

trong đó
đó :

Ghi đè
đè lên ký hi u v a đ c m t ký hi u khá
khác



Di chuy n đ u đ c-ghi sang ph i, ho c sang trá
trá i m t ô



Thay đ i tr ng thá
thái

X

Y

X

X

X

#

#



q0  Q là
là tr ng thá
thái đ u




F  Q là
là t p h p cá
các tr ng thá
thái th a nh n
#   -  là ký t tr ng



 : hà
hàm chuy n ti p



Máy th a nh n câu khi đ t t i tr ng thá
thái th a nh n,
gi s qj  F
X



Q là
là t p h u h n cá
các tr ng thá
thái
 là b ng ch ghi lên b ng
   là b ng ch vào





Y

c mô t b i m t b b y :

M = (Q, , , , q0, #, F)

Máy đ c ký hi u n m d i đ u đ c
Tu theo tr ng thá
thái hi n hà
hành,
hàm chuy n ti p cho phé
phép má
máy th c hi n :

...

qj
7/58
7/
58

8/58
8/
58

Mô t hàm chuy n ti p

C u hì
hình c a má
máy Turing

 Hàm chuy n ti p :

 C u hì
hình (hay c u hì
hình) c a má
máy Turing
là m t ph n t c a quan h : (q, 1, 2)  Q**

 : Q
Q  QM
M

Trong đó
đó :

g m cá
các ph n t (q, a) = (q’
(q’, x,
x, m),
m), trong đó
đó :
q, q’
q’  Q ;

a  ; x;

m  M = { L, R }

L ch đ nh d ch đ u đ c-ghi sang trá
trái (Left)



q  Q : tr ng thá
thái hi n hà
hành c a má
má y



1

: ph n câu trên b ng phí
phía tr



2

: Ph n câu trên b ng t v trí
trí đ u đ c-ghi đ n h t câu
(ký t cu i cù
cùng khá
khác ký t tr ng #)

R ch đ nh d ch đ u đ c-ghi sang ph i (Right)
 Có th vi t g n m i ph n t

c a:

1

c v trí
trí đ u đ c-ghi

2

ho c (q, a, x, m, q’
q’)
b

ho c qa
qamxq’
mxq’

a

a

b

a

b

b

#

#

...

q
9/58
9/
58

Chuy n ti p m t b

cC

Chuy n ti p m t b

C’

 Cho c u hì
hình C = (q, 1, 2 ) và
và C’ = (q’
(q’, ’1, ’2)
tr

Gi s 2 = b
b’2

 Chuy n ti p m t b
 Tr

ng h p 2 = , l y b = #

cC

C’ đ

c đ nh ngh a nh sau :

ng h p 1 : N u  (q, b) = (q’
(q’, b’
b’, R), ta có
có :

(q, 1, b
b’2)

(q’
(q’, 1b’, ’2)

b a b b a b b #

 Chuy n ti p m t b

1

b a b’ b a b b #

v i ’2 = ab’
ab’3
’2

3

q
11/58
11/
58

c đ nh ngh a nh sau :

’1

...

q’

C’ đ

(q’
(q’, ’1, ab’
ab’3)

b b a b a b b #
q

cC

2

’1
...

C’

ng h p 2 : N u  (q, b) = (q’
(q’, b’
b’, L), ta có
có :

(q, ’1a, 2 )
’2

’1

’2

cC

 Cho c u hì
hình C = (q, 1, 2 ) và
và C’ = (q’
(q’, ’1, ’2)
Gi s 1 = ’1a
1  
2 = b
tr ng h p 2 = , l y b = #
b3
 Tr

v i ’1 = 1b’

2
1

10/58
10/
58

...

b b

3
a b’ a b b #

...

q’
12/58
12/
58

2


Chuy n ti p nhi u b

Máy Turing đoá
đoán nh n câu c a ngôn ng

c

 Cho c u hì
hình C = (q, 1, 2 ) và
và C’ = (q’
(q’, ’1, ’2)
 T

ng t trong ôhh, ta nó
nói chuy n ti p nhi u b

 Máy Turing đoá
đoán nh n câu c a m t ngôn ng nh là
là các
ôtômat h u h n đã xé
xét

c

 Cho w   :

C * C’ n u:
k  0 và
và các c u hì
hình trung gian C0, C1, . . ., Ck sao cho :
 C  C0





Câu w đ

c m t má
máy Turing M đoá
đoán nh n n u :

(q0, , w) * (qj, ,
, 2) v i ,
, 2  *

C’  Ck
Ci Ci+1 v i 0  i  k



Câu w đ

c m t má
máy Turing th a nh n n u :

(q0, , w) * (qj, ,
, 2) v i ,
, 2  * và
và qj  F


M t ngôn ng L đ
L = L(M), n u :

c th a nh n b i m t má
máy Turing M,

L(M) = { w   (q
(q0, , w) * (qj, ,
, 2) v i qj  F }

13/58
13/
58

14/58
14/
58

Bi u di n đ th

Ví d
 Cho má
máy Turing M  (Q, , , , q0, B, F) v i :
 Q   q0, q1, q2, q3, q4 
   { a, b, X, Y, # },
  { a, b }
F  { q4}
  đ
c cho b i b ng d i đây
(d u "
"" ch ra r ng hà
hàm chuy n ti p không đ

q0
q1
q2
q3
q4

b

X

Y

#

q0

(q1, X, R)





(q3, Y, R)



q1

(q1, a, R)

(q2, Y, L)



(q1, Y, R)



q2

(q1, a, L)



(q0, X, R)

(q2, Y, L)



#
R)

R)

L)

R) (q4, #, R)


VV

tt qua
qua ph
ph ii

áánh
nh dd uu con
con aa
trá
ái nh
tr
trái
nh tt

c đ nh ngh a)

a

a
b
X
Y
(q1, X, R)


(q3, Y,
(q1, a, R) (q2, Y, L)

(q1, Y,
(q1, a, L)

(q0, X, R) (q2, Y,



(q3, Y,





X/X, R
q0
q0

Y/Y, R
a/X, R

q1
q1







(q3, Y, R)

(q4, #, R)

q4











Y/Y, R

q3
q3

Y/Y, R
q2
q2
a/a, L

a/a, R

Y/Y, R

q3

b/Y, L

#/#, R

q4
q4

15/58
15/
58

16/58
16/
58

Máy Turing đoá
đoán nh n câu a2b2
 Các chuy n ti p đoá
đoán nh n câu aabb l n l

Máy Turing đoá
đoán nh n câu a3b3

t nh sau :

 dãy cá
các chuy n ti p t câu và
và o aaabbb đ

c cho nh sau :



q0aabb#

q0XaYb#

q0XXYY#



q0aaabbb#

q2XaaYbb#

q2XXXYYY#



q1Xabb#
q1Xabb#

q1XXYb#
q1XXYb#

q3XXYY#
q3XXYY##




q1Xaabbb#
q1Xaabbb#

q0XaaYbb#
.........

q0XXXYYY#
q3XXXYYY#

q2XaYb#
q2XaYb#

q2XXYY#
q2XXYY#

q4XXYY##
th a nh n



q1Xaabbb#

q1XXXYYb#

q3XXXYYY#




q2XaaYbb#
q2XaaYbb#

q2XXXYYY#
q2XXXYYY#

q3XXXYYY#
q4XXXYYY##



th a nh n !





17/58
17/
58

18/58
18/
58

3


Ví d

nh ngh a

 Máy Turing th a nh n ngôn ng chí
chính quy aa* + b(a+b)*

 Máy Turing đoá
đoán nh n m t câu w là th c hi n (x lý)
m t dãy c c đ i cá
các c u hì
hình :

(q0, , w) = C0

a|a, R
q0

y  y, R
q3

q4
  , L

y  y, R

q0

q1

y  y, R
a  a, R

a  x, R

Ck = (qk, k, k)

C1 ...

...

ngh a là
là sao cho :

#|#, L

q1

Dãy t k t thú
thúc t i m t c u hì
hình có
có ch a tr ng thá
thái k t thú
thúc
và th a nh n câu w
ho c


y  y, L
a  a, L

b  y, L

Dãy t k t thú
thúc t i m t c u hì
hình không ch a tr ng thá
thái k t
thú
thúc mà
mà t đó
đó, không còn c u hì
hình nà
nào có
có th chuy n đ n :
máy b hóc
ho c


q2

x  x, R



Dãy c u hình là
là vô h n, má
máy không bao gi d ng

19/58
19/
58

Tính xá
xác đ nh đ
 M t ngôn ng L đ



20/58
20/
58

Hình th c hó
hóa tí
tính xá
xác đ nh đ

c (Deterministic)

c xá
xác đ nh b i m t má
máy Turing M n u :

M th a nh n L
M không có
có các x lý vô h n

 Nh n xé
xét :
 T n t i thu t toá
toán cho phé
phép má
máy Turing đoá
đoán nh n m t ngôn
ng , hay ki m tra tí
tính xá
xác đ nh đ c

i v i cá
các ôtômá
ôtômát h u h n đ n đ nh, đi u đó
đó hi n nhiên

i v i m t ôtômá
ôtômát h u h n không đ n đ nh,
không ph i luôn luôn t n t i thu t toá
toán,
vì :
T i m i giai đo n đoá
đoán nh n, không th ch ra chuy n ti p
nào ti p theo s đ c ch n m t cá
cách t ng minh

 Tính xá
xác đ nh đ

c c a má
máy Turing có
có th hi u nh sau :



V i m i ph n t (q, a)  QG, t n t i nhi u nh t m t quy t c
(q, a)  (q’
(q’, a’
a’, m), vi t g n qama’
qama’q’, v i m  M={L, R}



Hàm b ph n Q
QG  QGM có
có th tách thà
thành ba hà
hàm :
nc : QG  G



Hàm “ký t m i”



Hàm “di chuy n đ u đ c” mh : QG  M



Hàm “tr ng thá
thái m i”

hay nc(q, a) = a’
a’
hay mh(q, a) =m
ns : QG  Q
hay ns(q, a) = q’
q’

21/58
21/
58

22/58
22/
58

Máy Turing tí
tính hà
hàm

Notation of Function

 Máy Turing có
có th tính hà
hàm theo cá
cách hi u nh sau :


Tham đ i c a hà
hàm là
là câu và
vào w  n m trên b ng



Giá
Giá tr tr v c a hà
hàm là
là câu  đ c ghi trên b ng
sau khi má
máy Turing k t thú
thúc vi c x lý (đ c h t w)

A function f(w) has:

w


Result Region: S

Domain: D

wD

 Máy Turing tí
tính m t hà
hàm f :    n u :


c

f (w )

f (w)  S

V i m t câu và
vào w
w b t k , má
máy luôn luôn d ng trong m t
c u hì
hình mà
mà f(w) có
có m t trên b ng

 Hàm f đgl tí
tính đ c b i m t má
máy Turing n u t n t i m t
máy Turing tí
tính đ c nó


A function may have many parameters:
Example: Addition function
f(x, y) = x + y

23/58
23/
58

24/58
24/
58

4


Definition:

Data representation

f
A function
is computable if
there is a Turing Machine M such that:

Integer Domain
Decimal:

5

Binary:

101

Unary:

11111

Initial configuration



Final configuration



w



q f final state

q0 initial state

We prefer unary representation:
easier to manipulate with TMs

For all

f (w) 

w D

Domain

25/58
25/
58

26/58
26/
58

In other words:

Example

f
A function
is computable if
there is a Turing Machine M such that:


q0 w

q f f ( w)

Initial
Configuration

The function

x, y

w D

are integers

Turing Machine:

Final
Configuration

For all

f ( x, y )  x  y is computable

Domain

Input string:

x0 y

unary

Output string:

xy 0

unary

27/58
27/
58

28/58
28/
58

Computing Function
y
x

Input representation

x

Start

 1 1



y
1 0 1  1 

Start

 1 1



1 0 1  1 

q0 initial state

initial state q0

x y

The 0 is the delimiter that
separates the two numbers
29/58
29/
58

Finish

 1 1



q f final state

1 1 0 
30/58
30/
58

5


Computing Function

Turing machine for function

f ( x, y )  x  y
The 0 helps when we use
the result for other operations

x y
 1 1

Finish

1 1 0 



1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R

q f final state

q4

31/58
31/
58

Execution Example (1)

Execution Example (2)

x  11 (2)
y  11 (2)
Time 0

Time 0

1  1, R

Final Result

x y

 1 1 0 1 1 

 1 1 1 1 0 

q0

 1 1 0 1 1 
q0

y

x

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R

q4

q4

33/58
33/
58

Execution Example (3)
Time 1

34/58
34/
58

Execution Example (4)

 1 1 0 1 1 

Time 2

 1 1 0 1 1 

q0
1  1, R

32/58
32/
58

q0

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R
q4

35/58
35/
58

  , R
q4

36/58
36/
58

6


Execution Example (5)
Time 3

Execution Example (6)

 1 1 1 1 1 

 1 1 1 1 1 

Time 4

q1
1  1, R

q1

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R
q4

  , R
q4

37/58
37/
58

Execution Example (7)
Time 5

Execution Example (8)

 1 1 1 1 1 

 1 1 1 1 1 

Time 6

q1
1  1, R

1  1, R

q2
1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R
q4

  , R
q4

39/58
39/
58

Execution Example (9)
Time 7

40/58
40/
58

Execution Example (10)

 1 1 1 1 0 

Time 8

 1 1 1 1 0 

q3

q3
1  1, R

38/58
38/
58

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R
q4

41/58
41/
58

  , R
q4

42/58
42/
58

7


Execution Example (11)

Execution Example (12)

 1 1 1 1 0 

Time 9

 1 1 1 1 0 

Time 10

q3
1  1, R

q3

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R
q4

  , R
q4

43/58
43/
58

Execution Example (13)
Time 11

Execution Example (14)

 1 1 1 1 0 

Time 12

 1 1 1 1 0 
q4

q3
1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

1  1, R

1  1, R

1  1, L

q0 0  1, R q1   , L q2 1 0, L q3

  , R
q4

Another Example: f(x) = 2x
The function

f ( x)  2 x
x

  , R
HALT & accept

45/58
45/
58

(1)

Another Example: f(x) = 2x

Start

is integer

Output string:

q4

46/58
46/
58

(2)

x

is computable

 1 1



1 

q0 initial state

Turing Machine:
Input string:

44/58
44/
58

x

unary

xx

unary

2x
Finish

 1 1



1 1 1 

q f final state
47/58
47/
58

48/58
48/
58

8


TM Pseudocode for f(x) = 2x

Example TM for f(x) = 2x
Start
 1

• Replace every 1 with $

Finish


1 

q0

• Repeat:

1  1, L

1  1, R

q0   , L q1 $  1, R

• Go to right end, insert 1

  , R
q3

Until no more $ remain



1

q3

1  $, R

• Find rightmost $, replace it with 1

1 1

1

q2

  1, L

49/58
49/
58

50/58
50/
58

Another Example

TM compute succ(n)
T = ; S = { 0, 1, # } ; Q = {q1, q2, q3}
P = { q1, 1  1, R, q1,
q2, 0  1, L, q3,
q1, 0  0, R, q1,
q2, 1  0 L, q2,
q1, #  #, L, q2,
q2, #  1, L, q3 }
1|0, L
1|1, R
0|1, L
#|#, R

q1

q2

The function is
computable

f ( x, y ) 

1

if

xy

0

if

x y

Turing Machine for

x0 y

Input:
q3

Output:

1

or

0

#|1, L
0|0, R
51/58
51/
58

Các ngôn ng đ quy và
và li t kê đ quy

Turing Machine Pseudocode:

 Các ngôn ng xác đ nh đ
là đ quy (Recusive)

• Repeat
Match a 1 from
Until all of

x

or

x with a 1 from y

y

52/58
52/
58

cg i

 Các ngôn ng đ c th a nh n b i m t má
máy Turing g i là

li t kê đ quy (Recursively Enumerable)

is matched

 T đó
đó ta có
có các đ nh ngh a sau :


• If a 1 from x is not matched
erase tape, write 1
else
erase tape, write 0

c b i m t má
máy Turing đ

( x  y)



M
b
M
b

t ngôn ng là đ quy n u nó
nó đ c xá
xác đ nh
i m t má
máy Turing
t ngôn ng là li t kê đ quy n u nó
nó đ c th a nh n
i m t má
máy Turing

( x  y)
53/58
53/
58

54/58
54/
58

9


Lu n đ TuringTuring-Church

Nh n xé
xét lu n đ TuringTuring-Church
 Lu n đ TuringTuring-Church đó
đóng vai trò quan tr ng trong
lý thuy t tí
tính toá
toán (Computability)

Lu n đ TuringTuring-Church phá
phát bi u nh sau :
 Các ngôn ng đ
c nh n bi t b i m t thu t
toá
toán là
là các ngôn ng xác đ nh đ c b i m t



máy Turing

Ng i ta có
có th phá
phát bi u lu n đ Turing Church theo ngh a c a phé
phép tí
tính hà
hàm :
Alonzo Church
 Các hà
hàm tí
tính đ c b i m t thu t toá
toán là
là các (1903(1903-1995) : nhà
nhà
Toá
Toán h c ng i M
hàm tí
tính đ c b i m t má
máy Turing

đã nghiên c u phé
phép
tính hà
hàm
(Functional
Calculus) và
và tính
tính đ c
(Computability)




Lu n đ đ a ra l p lu n r ng m t s ngôn ng không th
đ c đoá
đoán nh n b i m t thu t toá
toán : th c ch t là
là hình th c
hóa khá
khái ni m tí
tính toá
toán
Lu n đ TuringTuring-Church không ph i là
là m t đ nh lý,
nên không th ch ng minh đ c
Lu n đ TuringTuring-Church áp d ng mô hì
hình lý thuy t là
là máy
Turing đ c đ nh ngh a ch t ch đ mô hì
hình hoá
hoá quan ni m
v thu t toá
toán là
là khá
khái ni m không đ c xá
xác đ nh rõ rà
ràng

 D dàng mô ph ng s ho t đ ng c a m t má
máy Turing nh :



M t bú
bút chì
chì và t gi y
M t ch ng trì
trình ch y trên m t má
máy tí
tính c th

55/58
55/
58

Các má
máy Turing v n n ng

Xây d ng má
máy Turing

 M t v n đ thú
thú v là li u có
có th có m t má
máy Turing
mô ph ng đ c b t k máy Turing nà
nào ?

 M t s k thu t xây d ng má
máy Turing



Ghi nh
b đi u khi n h u h n
M r ng b ng và
vào vô h n v c hai phí
phía
Máy Turing có
có nhi u b ng



Máy Turing có
có b nh truy c p tr c ti p




56/58
56/
58

 M t cá
cách t ng minh, ta mu n cung c p cho m t má
máy
Turing M s mô t c a m t má
má y Turing M’
M’ b t k nào đó
đó
sao cho v i m t câu và
và o w nà o đó
đó, má
máy Turing M’
M’ có th
mô ph ng s đoá
đoán nh n c a M trên w  
 M t má
máy Turing nh v y s là m t s nh i l i cá
các má
máy
Turing khá
khác, và
và đ c g i là
là máy Turing v n n ng
(Universal Turing Machine).

57/58
57/
58

58/58
58/
58

10



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×