y Turing Chương 44 MMááy Turing Chương

y Turing nh nghĩĩa ma mááy Turing Ngôn ngữữ ththừừa nha nhậận đưn đượợc vc vàà ngôn ng ngôn ngữữ xxáác đc địịnh đư nh đượợcc

nh toáánn Lý thuyếết tt tíính to Lý thuy Lý thuyết tính toán (Theory of Computation) (Theory of Computation) (Theory of Computation)

 MMááy Turing y Turing  ĐĐịịnh ngh  Ngôn ng  CCáác hc hààm tm tíính đư  CCáác ngôn ng  LuLuậận đn đềề Turing

PGS.TS. Phan Huy Kháánhnh PGS.TS. Phan Huy Kh khanhph@vnn.vn khanhph@vnn.vn

 KKỹỹ thuthuậật xây d

y Turing nh đượợc bc bởởi mi mááy Turing t kê đệệ quyquy quy vàà liliệệt kê đ

c ngôn ngữữ đ đệệ quy v Turing--Church Church y Turing t xây dựựng mng mááy Turing

nh giớới ni nộộii

Chương 44 Chương 4 Chương y Turing MMááy Turing Máy Turing

y Turing  MMởở rrộộng cng cáác mc mááy Turing  MMááy turing không đơn đ  MMááy Turing v  Ôtômat tuy  Văn ph y turing không đơn địịnhnh y Turing vạạn năng n năng Ôtômat tuyếến tn tíính gi Văn phạạm cm cảảm ngm ngữữ ccảảnhnh

2/2/5858

MMởở đ đầầuu

Mô tMô tảả mmááy Turing đơn đ

y Turing đơn địịnhnh

n NN ng không thểể đo đoáán nhn nhậận NN

 Ôhh đ

MMááy Turing đơn đ

y Turing đơn địịnh (Deterministic Turing Machine) g

nh (Deterministic Turing Machine) gồồm :m :

 MMộột băng v

Ôhh đẩẩy xuy xuốống không th aannbbnnccnn ddùù ccóó hai bhai bộộ nhnhớớ llớớn tn tùùy ýy ý  ĐĐểể ththừừa nha nhậận an annbbnnccnn, ph, phảải ti tììm kim kiếếmm

 MMộột đt đầầu đu đọọcc--ghi (Read/Write Head) di chuy

 MMộột tt tậập hp hợợp hp hữữu hu hạạn cn cáác trc trạạng th

p ôtômat kháác,c, đ đóó llàà ccáác mc mááy Turing y Turing y Turing c nhau căn bảản gin giữữa ma mááy Turing

 MMộột trt trạạng th

ng tháái đi đầầuu

 MMộột tt tậập hp hợợp cp cáác trc trạạng th

ng tháái thi thừừa nha nhậận (cu

n (cuốối)i)

 MMộột ht hààm chuy

o/ra (IO Tape) : t băng vàào/ra (IO Tape) : n trên băng ghi (Read/Write Head) di chuyểển trên băng ng tháái trong đ i trong đóó ccóó ::

ccáác lc lớớp ôtômat kh  SSựự khkháác nhau căn b vvàà ô đ ô đẩẩy xuy xuốống :ng : y Turing chỉỉ ccóó mmộột bt bộộ nhnhớớ llớớn tn tùùy ý y ý  MMááy Turing ch  MMááy Turing c y Turing cóó ththểể đ đọọc vc vàà ghighi  CCáách sch sửử ddụụng bng bộộ nhnhớớ llàà tutuỳỳ ý,ý,

m chuyểển tin tiếếpp

Y

X

a

b

a

b

b

# #

. . .

Alan Turung Alan Turung 1954) : (19121954) : (1912 nhnhàà ToToáán hn họọc c ngưngườời Anh, i Anh, ngưngườời đi đầầu tiên u tiên nghiên cứứuu nghiên c t ôtômat lý thuyếết ôtômat lý thuy 1936 năm 1936 năm

qk

nguyên lý danh sááchch không hạạn chn chếế ởở nguyên lý danh s không h ng (Stack hay LIFO) đđẩẩy xuy xuốống (Stack hay LIFO)

3/3/5858

4/4/5858

Mô tMô tảả chi ti

chi tiếếtt

CCấấu hu hìình ban đ

y Turing nh ban đầầu cu củủa ma mááy Turing

 Băng v

o/ra : Băng vàào/ra :

 CCấấu hu hìình ban đ

nh ban đầầu cu củủa ma mááy Turing đư

y Turing đượợc mô t

như sau :: c mô tảả như sau

 Câu v

 LLàà mmộột bt bộộ nhnhớớ vô hvô hạạn đưn đượợc chia th  MMỗỗi ô c

 MMỗỗi ô còn l

 Băng ch  HHààm chuy

 ĐĐầầu đu đọọcc--ghi n

 MMááy đang

 TrTrạạng th  Ký tKý tựự đ đọọc đưc đượợc c ởở vvịị trtríí dư dướới đi đầầu đu đọọcc

ng thựực hic hiệện bn bằằng cng cáách đch đọọc ký hi

c ký hiệệuu

c chia thàành nhi nh nhiềều ôu ô Câu vàào w o w  ** nnằằm m ởở mmúút trt tráái nhi nhấất ct củủa băng a băng i ô cóó ththểể chchứứa ma mộột ký t Tape Alphabet) t ký tựự aa nnàào đo đóó ( (Tape Alphabet) t ký hiệệu đu đặặc bic biệệt,t, i quy ướớc cc cóó ththểể kkééo do dàài vô h i vô hạạnn i ô còn lạại ci củủa băng ch c ký hiệệu tru trốống (B a băng chứứa ma mộột ký hi lank Symbol) ng (Blank Symbol) ggọọi li làà ccáác ký hi Băng chỉỉ ccóó ccậận trn tráái, ci, cậận phn phảải quy ư c tham đốối :i : m chuyểển tin tiếếp gp gồồm cm cáác tham đ ghi nằằm m ởở ô đ ô đầầu tiên c a băng (m(múút trt tráái nhi nhấất)t) ng tháái hi i hiệện hn hàành cnh củủa ma mááyy y đang ởở trtrạạng th ng tháái đi đầầu tiên, gi u tiên củủa băng u tiên, giảả ssửử q0

 MMááy sy sẵẵn sn sààng th ởở vvịị trtríí đ đầầu đu đọọcc

b

a

a

b

a

b

b

# #

. . .

 TrTrạạng th i tiếếp theo c  Ký tKý tựự ssẽẽ ghi lên băng t  ChiChiềều di chuy (qua tráái, ph (qua tr

q0

p theo củủa ma mááyy ng tháái ti ghi lên băng tạại vi vịị trtríí ký tký tựự vvừừa đa đọọc đưc đượợc c u di chuyểển cn củủa đa đầầu đu đọọcc--ghighi i, phảải hay đ ng yên) i hay đứứng yên)

5/5/5858

6/6/5858

1

y Turing HoHoạạt đt độộng cng củủa ma mááy Turing

ĐĐịịnh ngh

nh nghĩĩa ha hìình th

y Turing nh thứức mc mááy Turing

MMááy Turing đư

c mô tảả bbởởi mi mộột bt bộộ bbảảy :y :

HoHoạạt đt độộng cng củủa ma mááy Turing đư

y Turing đượợc mô t

như sau :: c mô tảả như sau

y Turing đượợc mô t , #, F) M = (Q, , , , , , q, q00, #, F) M = (Q,

trong đóó :: trong đ

 MMááy đy đọọc ký hi  TuTuỳỳ theo tr hhààm chuy  Ghi đGhi đèè lên ký hi

lên ký hiệệu vu vừừa đa đọọc mc mộột ký hi

 Di chuy

Di chuyểển đn đầầu đu đọọcc--ghi sang ph

ghi sang phảải, ho

i, hoặặc sang tr

c sang tráái mi mộột ôt ô

c ký hiệệu nu nằằm m ởở dư dướới đi đầầu đu đọọcc ng tháái hi i hiệện hn hàành,nh, theo trạạng th m chuyểển tin tiếếp cho ph ng thááii p cho phéép mp mááy thy thựực hic hiệện :n : t ký hiệệu khu kháácc

 Thay đ

Thay đổổi tri trạạng th  MMááy thy thừừa nha nhậận câu khi đ

ng thááii n câu khi đạạt tt tớới tri trạạng th

 Q lQ làà ttậập hp hữữu hu hạạn cn cáác trc trạạng th   llàà bbảảng ch     llàà bbảảng ch  qq00  Q lQ làà trtrạạng th  F F  Q lQ làà ttậập hp hợợp cp cáác trc trạạng th  # #   --  llàà ký tký tựự trtrốốngng

Y

X

X

Y

X

X

X

# #

. . .

ng chữữ ghi lên băng ghi lên băng ng chữữ vvààoo ng tháái đi đầầuu ng tháái thi thừừa nha nhậận,n, ng tháái thi thừừa nha nhậậnn gigiảả ssửử qj  FF

  : h: hààm chuy

qj

m chuyểển tin tiếếpp

7/7/5858

8/8/5858

Mô tMô tảả hhààm chuy

m chuyểển tin tiếếp p

y Turing CCấấu hu hìình cnh củủa ma mááy Turing

 HHààm chuy

m chuyểển tin tiếếp :p :

 CCấấu hu hìình (hay c

nh (hay cấấu hu hìình) c

y Turing nh) củủa ma mááy Turing

llàà mmộột pht phầần tn tửử ccủủa quan h

a quan hệệ : (q,

: (q, 11, , 22) )  QQ****

 : Q: Q  QQMM

trong đóó ::

(q, a) = (q’’, x, x, m, m), ), trong đ

ggồồm cm cáác phc phầần tn tửử (q, a) = (q

ng tháái hi

i hiệện hn hàành cnh củủa ma mááyy

Trong đóó :: Trong đ

: ph: phầần câu trên băng ph

n câu trên băng phíía trưa trướớc vc vịị trtríí đ đầầu đu đọọcc--ghighi

n câu trên băng từừ vvịị trtríí đ đầầu đu đọọcc--ghi đ

t câu ghi đếến hn hếết câu

 q q  QQ : tr: trạạng th  11  22

: Ph: Phầần câu trên băng t (ký tựự cucuốối ci cùùng kh (ký t

ng kháác ký t

ng #) c ký tựự trtrốống #)

 CCóó ththểể viviếết gt gọọn mn mỗỗi i phphầần tn tửử ccủủa a  ::

11

22

q, qq, q’’  Q ;Q ; a a   ;; x x   ;; M = { L, R } m m  M = { L, R } L chL chỉỉ đ địịnh dnh dịịch đch đầầu đu đọọcc--ghi sang tr i (Left) ghi sang tráái (Left) R chR chỉỉ đ địịnh dnh dịịch đch đầầu đu đọọcc--ghi sang ph i (Right) ghi sang phảải (Right)

b

a

a

b

a

b

b

# #

. . .

q

hohoặặc c (q, a, x, m, q (q, a, x, m, q’’) ) hohoặặc qc qaamxqmxq’’

9/9/5858

10/10/5858

Chuyểển tin tiếếp mp mộột bưt bướớc C c C ├├ CC’’ Chuy

Chuyểển tin tiếếp mp mộột bưt bướớc C c C ├├ CC’’ Chuy

 Cho c

 Cho c

Cho cấấu hu hìình C = (q,

nh C = (q, 11, , 22) v) vàà CC’’ = (q= (q’’, , ’’11, , ’’22))

nh C = (q, 11, , 22) v) vàà CC’’ = (q= (q’’, , ’’11, , ’’22))

Cho cấấu hu hìình C = (q, GiGiảả ssửử 11 = = ’’11aa 22 = b= b3 3

 ChuyChuyểển tin tiếếp mp mộột bưt bướớc C

a như sau :: nh nghĩĩa như sau

 ChuyChuyểển tin tiếếp mp mộột bưt bướớc C

a như sau :: nh nghĩĩa như sau

11   trưtrườờng hng hợợp p 22 = = , l, lấấy y b = #b = # c C ├├ CC’’ đư đượợc đc địịnh ngh

22

’’22

11

22

’’22

11

’’11

’’22

’’11

’’11

33

33

b

a b b a b b

b

a b’ b a b b

# ...

# ...

GiGiảả ssửử 22 = b= b’’2 2 trưtrườờng hng hợợp p 22 = = , l, lấấy y b = #b = # c C ├├ CC’’ đư đượợc đc địịnh ngh  TrưTrườờng hng hợợp 1 : N (q, b) = (q’’, b, b’’, R), ta c , R), ta cóó :: p 1 : Nếếu u  (q, b) = (q  TrưTrườờng hng hợợp 2 : N (q, b) = (q’’, b, b’’, L), ta c , L), ta cóó :: p 2 : Nếếu u  (q, b) = (q (q, 11, b, b’’22) ) ├├ (q(q’’, , 11bb’’, , ’’22)) (q, vvớới i ’’11 = = 11bb’’ (q, ’’11a, a, 22) ) ├├ (q(q’’, , ’’11, ab, ab’’33)) (q, vvớới i ’’22 = ab= ab’’33

├├├

b

b a b’ a b b

# ...

b

b a b a b b

# ...

├├├

q

q’

q’

q

11/11/5858

12/12/5858

2

Chuyểển tin tiếếp nhi Chuy

p nhiềều bưu bướớcc

MMááy Turing đo

y Turing đoáán nhn nhậận câu c

n câu củủa ngôn ng

a ngôn ngữữ

 Cho c

Cho cấấu hu hìình C = (q,

 MMááy Turing đo

y Turing đoáán nhn nhậận câu c

n câu củủa ma mộột ngôn ng

t ngôn ngữữ như l

như làà ccáác c

ôtômat hữữu hu hạạn đã x ôtômat h

n đã xéétt

 Tương t

Tương tựự trong ôhh, ta n

nh C = (q, 11, , 22) v) vàà CC’’ = (q= (q’’, , ’’11, , ’’22)) trong ôhh, ta nóói chuy

i chuyểển tin tiếếp nhi

p nhiềều bưu bướớcc

 Cho w

Cho w   : :

C C ├├** CC’’ nnễễuu:: k k  0 v0 vàà ccáác cc cấấu hu hìình trung gian C  C C  CC00  CC’’  CCkk  CCii ├├ CCi+1i+1 vvớới 0

y Turing M đoáán nhn nhậận n nnễễu u :: nh trung gian C00, C, C11, . . ., C sao cho : , . . ., Ckk sao cho : , w) ├├** (q(qjj, , , , 2) v2) vớới i , , 2 2  ** y Turing thừừa nha nhậận n nnễễu u :: i 0  i i  kk , w) ├├** (q(qjj, , , , 2) v2) vớới i , , 2 2  * v* vàà qqj j  FF t ngôn ngữữ L đư y Turing M, L đượợc thc thừừa nha nhậận bn bởởi mi mộột mt mááy Turing M,

Câu w đượợc mc mộột mt mááy Turing M đo  Câu w đư (q(q00, , , w) Câu w đượợc mc mộột mt mááy Turing th  Câu w đư (q(q00, , , w)  MMộột ngôn ng L = L(M), nnễễu u :: L = L(M), L(M) = { w   (q(q00, , , w) L(M) = { w , w) ├├** (q(qjj, , , , 2) v2) vớới qi qj j  F }F }

13/13/5858

14/14/5858

VVíí ddụụ

BiBiểểu diu diễễn đn đồồ ththịị

 Cho mCho mááy Turing M

, B, F) vớới :i :

y Turing M  (Q,

(Q, , , , , , q, q00, B, F) v

 Q Q   q0, q1, q2, q3, q4 q0, q1, q2, q3, q4  { a, b, X, Y, # },    { a, b, X, Y, # },

q0 q1 q2 q3 q4

a (q1, X, R) (q1, a, R) (q1, a, L)  

b  (q2, Y, L)   

X   (q0, X, R)  

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

#    (q4, #, R) 

t qua phảảii VưVượợt qua ph Vượt qua phải

  đư đượợc cho b

u con a ĐĐáánh dnh dấấu con a Đánh dấu con a trtráái nhi nhấấtt trái nhất

ra rằằng hng hààm chuy

m chuyểển tin tiếếp không đư

p không đượợc đc địịnh ngh

nh nghĩĩa)a)

(d(dấấu "u "" ch" chỉỉ ra r

X/X, R X/X, R

Y/Y, R Y/Y, R

a

Y

b

X

#

Y/Y, R Y/Y, R

(q1, X, R)

(q3, Y, R)

q0

a/X, R a/X, R

b/Y, L b/Y, L

q0q0q0

q1q1q1

q2q2q2

(q1, a, R)

(q2, Y, L)

(q1, Y, R)

q1

a/a, L a/a, L

a/a, R a/a, R

(q1, a, L)

(q0, X, R)

(q2, Y, L)

q2

Y/Y, R Y/Y, R

#/#, R #/#, R

q3

(q3, Y, R)

(q4, #, R)

Y/Y, R Y/Y, R

q3q3q3

q4q4q4

q4

{ a, b }   { a, b } { q4} F F  { q4} c cho bởởi bi bảảng dư i đây ng dướới đây

15/15/5858

16/16/5858

MMááy Turing đo

y Turing đoáán nhn nhậận câu

n câu aa22bb22

MMááy Turing đo

y Turing đoáán nhn nhậận câu

n câu aa33bb33

 CCáác chuy

c chuyểển tin tiếếp đop đoáán nhn nhậận câu aabb l

t như sau :: n câu aabb lầần lưn lượợt như sau

 dãy c

dãy cáác chuy

c chuyểển tin tiếếp tp từừ câu v

câu vàào aaabbb đư

c cho như sau :: o aaabbb đượợc cho như sau

q0aabb#  q0aabb# q0XaYb# q0XaYb# q0XXYY# q0XXYY# q0aaabbb#  q0aaabbb# q1Xabb#  q1Xabb# q1XXYb# q1XXYb# q3XXYY# q3XXYY# q1Xaabbb#  q1Xaabbb# q1Xabb#  q1Xabb# q1XXYb# q1XXYb# q3XXYY## q3XXYY## q1Xaabbb#  q1Xaabbb# q2XXXYYY# q2XaaYbb# q2XXXYYY# q2XaaYbb# q0XXXYYY# q0XaaYbb# q0XXXYYY# q0XaaYbb# q3XXXYYY# . . . . . . . . . q3XXXYYY# . . . . . . . . . q1Xaabbb#  q1Xaabbb# q2XaYb#  q2XaYb# q2XaYb#  q2XaYb# q2XXYY# q2XXYY# q2XXYY# q2XXYY# q4XXYY## q4XXYY## ththừừa nha nhậậnn q2XaaYbb#  q2XaaYbb# q3XXXYYY# q1XXXYYb# q3XXXYYY# q1XXXYYb# q3XXXYYY# q2XXXYYY# q3XXXYYY# q2XXXYYY# q4XXXYYY## q2XXXYYY# q4XXXYYY## q2XXXYYY# q2XaaYbb#  q2XaaYbb#  ththừừa nha nhậận !n !

17/17/5858

18/18/5858

3

VVíí ddụụ

ĐĐịịnh ngh

nh nghĩĩaa

 MMááy Turing th

y Turing thừừa nha nhậận ngôn ng

nh quy aa* + b(a+b)* n ngôn ngữữ chchíính quy aa* + b(a+b)*

c hiệện (xn (xửử lý)lý)

t câu ww llàà ththựực hi

 MMááy Turing mmộột dãy c

y Turing đođoáán nhn nhậận mn mộột câu t dãy cựực đc đạại ci cáác cc cấấu hu hìình :nh :

a|a, R

(q(q00, , , w)

, w) = C= C0 0 ├├ CC11 ...

... ... ├├ CCkk = (q= (qkk, , kk, , kk) ) ├├ ...

sao cho : nghnghĩĩa la làà sao cho :

#|#, L

q0

q1

 Dãy t

y

,

Ry

y a

, ,

Ly La

y a

, ,

Ry Ra

 Dãy t

4q L,

y

,

Ry

a

,

Rx

b

,

Ly

3q

0q

2q

ng tháái ki kếết tht thúúcc Dãy tựự kkếết tht thúúc tc tạại mi mộột ct cấấu hu hìình cnh cóó chchứứa tra trạạng th vvàà ththừừa nha nhậậnn câucâu ww hohoặặcc nh không chứứa tra trạạng th , không còn cấấu hu hìình nnh nàào co cóó ththểể chuy ng tháái ki kếết t chuyểển đn đếến : n : Dãy tựự kkếết tht thúúc tc tạại mi mộột ct cấấu hu hìình không ch ththúúc mc màà ttừừ đ đóó, không còn c mmááy by bịị hhóócc

Rx

x

1q , hohoặặcc  Dãy Dãy ccấấu u hhìình lnh làà vô hvô hạạn, mn, mááy không bao gi y không bao giờờ ddừừngng

19/19/5858

20/20/5858

TTíính xnh xáác đc địịnh đư

c (Deterministic) nh đượợc (Deterministic)

HHìình th

nh thứức hc hóóa ta tíính xnh xáác đc địịnh đư

nh đượợc c

 MMộột ngôn ng

t ngôn ngữữ L đư

L đượợc xc xáác đc địịnh bnh bởởi mi mộột mt mááy Turing M

y Turing M nnễễuu ::

 TTíính xnh xáác đc địịnh đư

nh đượợc cc củủa ma mááy Turing c

y Turing cóó ththểể hihiểểu như sau

u như sau : :

 M thM thừừa nha nhậận Ln L

 VVớới mi mọọi phi phầần tn tửử (q, a) (q, a)  (q(q’’, a, a’’, m), vi (q, a)

 M không c

 HHààm bm bộộ phphậận Qn QG G  QQGGM cM cóó ththểể ttáách th

 NhNhậận xn xéét :t :

 HHààm m ““ký tký tựự mmớớii””

nc :nc : QQG G  GG

 TTồồn tn tạại thu ngngữữ, hay ki

hay nc(q, a) = a’’ hay nc(q, a) = a

 HHààm m ““di chuy

di chuyểển đn đầầu đu đọọcc”” mh :mh : QQG G  MM

hay mh(q, a) =m hay mh(q, a) =m

 ĐĐốối vi vớới ci cáác ôtôm  ĐĐốối vi vớới mi mộột ôtôm

t quy tắắc c (q, a)  QQG, tG, tồồn tn tạại nhi , m), viếết gt gọọn qama n qama’’qq’’, v, vớới m i nhiềều nhu nhấất mt mộột quy t M={L, R} i m  M={L, R} M không cóó ccáác xc xửử lý vô h lý vô hạạnn ch thàành ba h nh ba hààm :m : i thuậật tot toáán cho ph n cho phéép mp mááy Turing đo t ngôn y Turing đoáán nhn nhậận mn mộột ngôn , hay kiểểm tra t nh đượợcc

 HHààm m ““trtrạạng th

ng tháái mi mớớii””

ns :ns : QQG G  QQ

hay ns(q, a) = q’’ hay ns(q, a) = q

m tra tíính xnh xáác đc địịnh đư c ôtômáát ht hữữu hu hạạn đơn đ t ôtômáát ht hữữu hu hạạn không đơn đ i luôn luôn tồồn tn tạại thu n đơn địịnh,nh, đi điềều đu đóó hihiểển nhiên n nhiên n không đơn địịnh,nh, i thuậật tot toáán,n,

n, không thểể chchỉỉ ra chuy ra chuyểển tin tiếếp p không phảải luôn luôn t không ph vvìì :: TTạại mi mỗỗi giai đo nnàào tio tiếếp theo s i giai đoạạn đon đoáán nhn nhậận, không th ng minh p theo sẽẽ đư đượợc chc chọọn mn mộột ct cáách tưch tườờng minh

21/21/5858

22/22/5858

MMááy Turing t

y Turing tíính hnh hààmm

Notation of Function Notation of Function

A function f(w) has:

 MMááy Turing c

y Turing cóó ththểể ttíính hnh hààm theo c

m theo cáách hi

u như sau :: ch hiểểu như sau

 Tham đ

Result Region: S

Domain: D

 GiGiáá trtrịị trtrảả vvềề ccủủa ha hààm lm làà câu

( wf

)

Dw 

( wf

)

S

 MMááy Turing t

y Turing tíính mnh mộột ht hààm f : m f :    nnếếu :u :

 VVớới mi mộột câu v

Tham đốối ci củủa ha hààm lm làà câu v câu vàào wo w nnằằm trên băng m trên băng câu  đư đượợc ghi trên băng c ghi trên băng sau khi mááy Turing k sau khi m y Turing kếết tht thúúc vic việệc xc xửử lý t w) lý ((đđọọc hc hếết w)

 HHààm f đgl t

nh đượợc bc bởởi mi mộột mt mááy Turing n

y Turing nếếu tu tồồn tn tạại mi mộột t

A function may have many parameters:

m f đgl tíính đư y Turing tíính đư

mmááy Turing t

nh đượợc nc nóó

Example: Addition function

f(x, y) = x + y

y luôn luôn dừừng trong m ng trong mộột t t câu vàào wo w bbấất kt kỳỳ, m, mááy luôn luôn d ccấấu hu hìình mnh màà f(w) c trên băng f(w) cóó mmặặt t ởở trên băng

23/23/5858

24/24/5858

4

Data representation Data representation

Definition:

f

Integer Domain

M

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

Decimal:

5

Binary:

101

Final configuration (wf

Initial configuration w

)

Unary:

11111

initial state

final state

fq

0q

We prefer unary representation:

easier to manipulate with TMs

For all

Dw Domain

25/25/5858

26/26/5858

Example Example

In other words:

is computable

,( yxf

) x

y

f

The function

M

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

yx,

are integers

q

wf (

)

├─

wq 0

f

Turing Machine:

yx0

Input string:

unary

Initial Configuration

Final Configuration

0xy

Output string:

For all

unary

Domain

Dw

27/27/5858

28/28/5858

Input representation Input representation

Computing Function Computing Function y

x

y

x

Start

Start

1

1

1

1

0

1

0

1

1

1

1

1

initial state

0q

0q

initial state

x 

y

Finish

0

1

11

1

The 0 is the delimiter that separates the two numbers

fq

final state

29/29/5858

30/30/5858

5

Computing Function Computing Function

Turing machine for function ) x

,( yxf

y

The 0 helps when we use the result for other operations

1 

R,1

1 

R,1

1 

L,1

x 

y

0 

R,1

L,

1

L,0

2q

1q

0q

3q

Finish

1

11

0

1

R,

final state

fq

31/31/5858

32/32/5858

4q

Execution Example (1)

Execution Example (2)

1

1

0

1

1

Time 0

(2)

(2)

11x 11y

0q

1 

R,1

1 

R,1

1 

L,1

x

0 

R,1

L,

1

L,0

2q

1

1

0

0

Final Result x  y 1 1

Time 0 y 1

1

1

1

1q

0q

3q

R,

0q

4q

33/33/5858

34/34/5858

4q

Execution Example (3)

Execution Example (4)

1

1

1

01

0

1

1

1

1

Time 1

Time 2

0q

0q

1 

R,1

1 

R,1

1 

R,1

1 

L,1

1 

R,1

1 

L,1

0 

R,1

0 

R,1

L,

L,

1

L,0

1

L,0

2q

2q

1q

1q

0q

3q

0q

3q

R,

R,

35/35/5858

36/36/5858

4q

4q

6

Execution Example (5)

Execution Example (6)

1

1

1

1

1

1

1

1

1

1

Time 3

Time 4

1q

1q

1 

R,1

1 

R,1

1 

R,1

1 

L,1

1 

R,1

1 

L,1

0 

R,1

0 

R,1

L,

L,

1

L,0

1

L,0

2q

2q

1q

1q

0q

3q

0q

3q

R,

R,

37/37/5858

38/38/5858

4q

4q

Execution Example (7)

Execution Example (8)

1

1

1

1

1

1

1

1

1

1

Time 5

Time 6

1q

2q

1 

R,1

1 

R,1

1 

R,1

1 

L,1

1 

R,1

1 

L,1

0 

R,1

0 

R,1

L,

L,

1

L,0

1

L,0

2q

2q

1q

1q

0q

3q

0q

3q

R,

R,

40/40/5858

39/39/5858

4q

4q

Execution Example (9)

Execution Example (10)

1

1

1

1

0

0

1

1

1

1

Time 7

Time 8

3q

3q

1 

R,1

1 

R,1

1 

R,1

1 

L,1

1 

R,1

1 

L,1

0 

R,1

0 

R,1

L,

L,

1

L,0

1

L,0

2q

2q

1q

1q

0q

3q

0q

3q

R,

R,

41/41/5858

42/42/5858

4q

4q

7

Execution Example (11)

Execution Example (12)

1

1

1

1

0

0

1

1

1

1

Time 9

Time 10

3q

3q

1 

R,1

1 

R,1

1 

R,1

1 

L,1

1 

R,1

1 

L,1

0 

R,1

0 

R,1

L,

L,

1

L,0

1

L,0

2q

2q

1q

1q

0q

3q

0q

3q

R,

R,

43/43/5858

44/44/5858

4q

4q

Execution Example (13)

Execution Example (14)

1

1

1

1

0

0

1

1

1

1

Time 11

Time 12

3q

4q

1 

R,1

1 

R,1

1 

R,1

1 

L,1

1 

R,1

1 

L,1

0 

R,1

0 

R,1

L,

L,

1

L,0

1

L,0

2q

2q

1q

1q

0q

3q

0q

3q

R,

R,

HALT & accept

45/45/5858

46/46/5858

4q

4q

Another Example: Another

(1)(1)

(2)(2)

Example: f(x) = 2x f(x) = 2x

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

is computable

)( xf

2

x

The function

1

1

1

Start

x

is integer

initial state

0q

Turing Machine:

x2

x

Input string:

unary

Finish

1

11

1

1

xx

Output string:

unary

final state

fq

47/47/5858

48/48/5858

8

TM Pseudocode for f(x) = 2x

Example TM for f(x) = 2x

Start 1

1 

Finish 1 1 1

1

• Replace every 1 with $

• Repeat:

3q

R$,

1 

L,1

1 

R,1

• Find rightmost $, replace it with 1

L,

$ 

R,1

• Go to right end, insert 1

2q

1q

Until no more $ remain

L,1

0q R, 3q

0q 1 

49/49/5858

50/50/5858

TM compute succ(n) TM compute succ(n)

Another Example Another Example

if

x 

y

1

The function is computable

yxf ,(

)

x 

y

0

if

Turing Machine for

yx0

Input:

3q

1q

2q

or

1

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

0

Output:

#|1, L 0|0, R

51/51/5858

52/52/5858

CCáác ngôn ng

c ngôn ngữữ đ đệệ quy v

quy vàà liliệệt kê đ

t kê đệệ quyquy

Turing Machine Pseudocode:

 CCáác ngôn ng

nh đượợc bc bởởi mi mộột mt mááy Turing đư

y Turing đượợc gc gọọi i

• Repeat

c ngôn ngữữ xxáác đc địịnh đư (Recusive) llàà đđệệ quyquy (Recusive)

y x Match a 1 from with a 1 from

y Turing gọọi li làà

 CCáác ngôn ng liliệệt kê đ

c ngôn ngữữ đư đượợc thc thừừa nha nhậận bn bởởi mi mộột mt mááy Turing g (Recursively Enumerable) t kê đệệ quyquy (Recursively Enumerable)

y

x

Until all of or is matched

 TTừừ đ đóó ta cta cóó ccáác đc địịnh ngh

a sau : nh nghĩĩa sau :

 MMộột ngôn ng

quy nếếu nu nóó đư đượợc xc xáác đc địịnhnh t ngôn ngữữ llàà đ đệệ quy n y Turing bbởởi mi mộột mt mááy Turing

x • If a 1 from is not matched

 MMộột ngôn ng

erase tape, write 1

(

x 

y

)

else

(

x 

y

)

erase tape, write 0

t ngôn ngữữ llàà liliệệt kê đ t kê đệệ quy n quy nếếu nu nóó đư đượợc thc thừừa nha nhậậnn y Turing bbởởi mi mộột mt mááy Turing

53/53/5858

54/54/5858

9

LuLuậận đn đềề Turing

Church Turing--Church

NhNhậận xn xéét lut luậận đn đềề Turing

Church Turing--Church

Turing--Church đ

ng trong ng vai trò quan trọọng trong

LuLuậận đn đềề Turing

Turing--Church ph

Church pháát bi

u như sau :: t biểểu như sau

 LuLuậận đn đềề Turing lý thuyếết tt tíính to lý thuy

Church đóóng vai trò quan tr n (Computability) nh toáán (Computability)

 CCáác ngôn ng

 LuLuậận đn đềề đưa ra l

i ta cóó ththểể phpháát bi

Turing -- t biểểu luu luậận đn đềề Turing

NgưNgườời ta c Church theo nghĩĩa ca củủa pha phéép tp tíính hnh hààm :m : Church theo ngh

 CCáác hc hààm tm tíính đưnh đượợc bc bởởi mi mộột thu

1995) : nh: nhàà

c ngôn ngữữ đư đượợc nhc nhậận bin biếết bt bởởi mi mộột thu đưa ra lậập lup luậận rn rằằng mng mộột st sốố ngôn ng t thuậật t c ngôn ngữữ xxáác đc địịnh đưnh đượợc bc bởởi mi mộột t không thểể ngôn ngữữ không th n : thựực chc chấất lt làà hhìình th nh thứức c t thuậật tot toáán : th totoáán ln làà ccáác ngôn ng y Turing mmááy Turing

 DDễễ ddààng mô ph

ng mô phỏỏng sng sựự hohoạạt đt độộng cng củủa ma mộột mt mááy Turing nh

Alonzo Church Alonzo Church (1903--1995) (1903 c ngườời Mi Mỹỹ ToToáán hn họọc ngư đã nghiên cứứu phu phéép p đã nghiên c ttíính hnh hààm m (Functional (Functional Calculus) vàà ttíính nh Calculus) v ttíính đư nh đượợc c (Computability) (Computability)

 MMộột bt búút cht chìì vvàà ttờờ gigiấấy y  MMộột chương tr

đưđượợc đoc đoáán nhn nhậận bn bởởi mi mộột thu nh toáánn i niệệm tm tíính to hhóóa kha kháái ni Turing--Church không ph  LuLuậận đn đềề Turing nh lý, Church không phảải li làà mmộột đt địịnh lý, ng minh đượợcc nên không thểể chchứứng minh đư nên không th Church ááp dp dụụng mô h Turing--Church  LuLuậận đn đềề Turing t thuậật tot toáán ln làà ccáác c y Turing hhààm tm tíính đnh đợợc bc bởởi mi mộột mt mááy Turing ng mô hìình lý thuy nh nghĩĩa cha chặặt cht chẽẽ đ đểể mô hmô hìình ho quan niệệm m Turing đượợc đc địịnh ngh Turing đư vvềề thuthuậật tot toáán ln làà khkháái ni i niệệm không đư m không đượợc xc xáác đc địịnh rõ r nh lý thuyếết lt làà mmááy y nh hoáá quan ni nh rõ rààngng y Turing nhờờ ::

t chương trìình ch nh chạạy trên m y trên mộột mt mááy ty tíính cnh cụụ ththểể

56/56/5858

55/55/5858

y Turing Xây dựựng mng mááy Turing Xây d

CCáác mc mááy Turing v

n năng y Turing vạạn năng

 MMộột st sốố kkỹỹ thuthuậật xây d

y Turing t xây dựựng mng mááy Turing

y Turing  MMộột vt vấấn đn đềề ththúú vvịị llàà liliệệu cu cóó ththểể ccóó mmộột mt mááy Turing

mô phmô phỏỏng đư

ng đượợc bc bấất kt kỳỳ mmááy Turing n

y Turing nàào ?o ?

ch tườờng minh, ta mu

ng minh, ta muốốn cung c

n cung cấấp cho m

p cho mộột mt mááy y

t câu vàào o ww nnàào đo đóó, m, mááy Turing M

y Turing M’’ bbấất kt kỳỳ nnàào đo đóó y Turing M’’ ccóó ththểể

 Ghi nh  MMởở rrộộng băng v  MMááy Turing c  MMááy Turing c

Ghi nhớớ ởở bbộộ đi điềều khi u khiểển hn hữữu hu hạạnn o vô hạạn vn vềề ccảả hai ph hai phííaa

 MMộột ct cáách tư Turing M sựự mô tmô tảả ccủủa ma mộột mt mááy Turing M Turing M s sao cho vớới mi mộột câu v sao cho v mô phmô phỏỏng sng sựự đo đoáán nhn nhậận cn củủa M trên

a M trên ww  

 MMộột mt mááy Turing như v

y Turing như vậậy sy sẽẽ llàà mmộột st sựự nhnhạại li lạại ci cáác mc mááy y

n năng y Turing vạạn năng

Turing kháác, vc, vàà đư đượợc gc gọọi li làà mmááy Turing v Turing kh (Universal Turing Machine). (Universal Turing Machine).

ng băng vàào vô h y Turing cóó nhinhiềều băng u băng y Turing cóó bbộộ nhnhớớ truy c truy cậập trp trựực tic tiếếpp

57/57/5858

58/58/5858

10