Bài giảng Lý thuyết tính toán chương 4 giới thiệu về máy Turing với một số nội dung liên quan như: Định nghĩa máy Turing, ngôn ngữ thừa nhận được và ngôn ngữ xác định được, các hàm tính được bởi máy Turing, một số kỹ thuật xây dựng máy Turing,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Trang 1Lý thuyết tính toán
(Theory of Computation)
Lý thuyết tính toán
(Theory of Computation)
PGS.TS Phan Huy Khánh
khanhph@vnn.vn
Chương 4 Máy Turing
Chương 4 Máy Turing
2/58
Máy Turing
Định nghĩa máy Turing
Ngôn ngữthừa nhận được vàngôn ngữxác định được
C c hàm tính được bởi máy Turing
C c ngôn ngữ đệquy vàliệt kê đệquy
Luận đềTuring-Church
Kỹthuật xây dựng máy Turing
Mởrộng các máy Turing
Máy turing không đơn định
Máy Turing vạn năng
Ôtômat tuyến tính giới nội
Văn phạm cảm ngữcảnh
3/58
Mở đầu
Ôhh đẩy xuống không thể đoán nhận NN
anbncn d cóhai bộnhớlớn tùy ý
Đểthừa nhận anbncn, phải tìm kiếm
các lớp ôtômat khác, đólàcác máy Turing
Sựkhác nhau căn bản giữa máy Turing
v ô đẩy xuống :
Máy Turing chỉcómột bộnhớlớn tùy ý
Máy Turing cóthể đọc vàghi
C ch sửd ng bộnhớlàtuỳý,
không hạn chế nguyên lý danh sách
đ y xuống (Stack hay LIFO)
Alan Turung (19121954) : nhà Toán học người Anh, người đầu tiên nghiên cứ
lý thuyết ôtômat năm 1936
4/58
Máy Turing đơn định (Deterministic Turing Machine) gồm :
Một băng 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 trạng thái trong đócó:
Một trạng thái đầ
Một tập hợp các trạng thái thừa nhận (cuối)
Một hàm chuyển tiế
qk
X a b a b b
5/58
Băng vào/ra :
Làmột bộnhớvô hạn được chia thành nhiều ô
Mỗi ô cóthểchứa một ký tựa ào đó (Tape Alphabet)
Băng chỉcócận trái, cận phải quy ước cóthểkéo dài vô hạ
Hàm chuyển tiếp gồm các tham đối :
Trạng thái hiện hành của máy
Ký tự đọc được ởvịtrí dưới đầu đọc
Trạng thái tiếp theo của máy
Ký tựsẽ ghi lên băng tại vịtríký tựvừa đọc được
Chiều di chuyển của đầu đọc-ghi
(qua trái, phải hay đứng yên)
6/58
Cấu hình ban đầu của máy Turing
Cấu hình ban đầu của máy Turing được mô tả như sau :
Câu vào w *nm ởmút trái nhất của băng
Mỗi ô còn lại của băng chứa một ký hiệu đặc biệt,
g i làcác ký hiệu trống (Blank Symbol)
Đầu đọc-ghi nằm ở ô đầu tiên của băng (mút trái nhất)
Máy đang ởtrạng thái đầu tiên, giảsửq0
Máy sẵn sàng thực hiện bằng cách đọc ký hiệ
ởvịtrí đầu đọc
q0
a a b a b b
Trang 2Hoạt động của máy Turing
Hoạt động của máy Turing được mô tả như sau :
Máy đọc ký hiệu nằm ở dưới đầu đọc
Tuỳtheo trạng thái hiện hành,
h m chuyển tiếp cho phép máy thực hiện :
Ghi đèlên ký hiệu vừa đọc một ký hiệu khác
Di chuyển đầu đọcghi sang phải, hoặc sang trái một ô
Thay đổi trạng thái
Máy thừa nhận câu khi đạt tới trạng thái thừa nhận,
giảsửqj F
qj
X X Y X X X
8/58
Định nghĩa hình thức máy Turing
Máy Turing được mô tảb i một bộb y :
M = (Q, , , , q0, #, F) trong đó:
Q làtập hữu hạn các trạng thái
là ảng chữ ghi lên băng
là ảng chữvà
q0Q làtrạng thái đầ
F Q làtập hợp các trạng thái thừa nhậ
# -làký tựtrống
: hàm chuyển tiế
9/58
Hàm chuyển tiếp :
: QQM
g m các phần tử(q, a) = (q’, x, m), trong đó:
q, q’Q ; a ; x ; m M = { L, R }
L chỉ định dịch đầu đọc-ghi sang trái (Left)
R chỉ định dịch đầu đọc-ghi sang phải (Right)
C thểviết gọn mỗ phần tửcủa :
hoặc (q, a, x, m, q’)
hoặc qamxq’
10/58
Cấu hình của máy Turing
Cấu hình (hay cấu hình) của máy Turing
làmột phần tửcủa quan hệ: (q, 1, 2) Q * *
Trong đó:
q : trạng thái hiện hành của má
1 : phần câu trên băng phía trước vịtrí đầu đọcghi
2 : Phần câu trên băng từvịtrí đầu đọcghi đến hết câu (ký tựcuối cùng khác ký tựtrống #)
q
a a b a b b
11/58
Cho cấu hình C = (q, 1, 2) vàC’= (q’, ’1, ’2)
Giảsử2= b’2 trường hợp 2= , lấy b = #
Chuyển tiếp một bước C ├C’ được định nghĩa như sau :
Trường hợp 1 : Nếu (q, b) = (q’, b’, R), ta có:
(q, 1, b’2) (q’, 1b’, ’2) vớ ’1= 1b’
q
a b b a b b
1
2
q’
a b’ b a b b
’2
├
12/58
Cho cấu hình C = (q, 1, 2) vàC’= (q’, ’1, ’2) Giảsử 1= ’1a 1
2= b3 trường hợp 2= , lấy b = #
Chuyển tiếp một bước C ├C’ được định nghĩa như sau :
Trường hợp 2 : Nếu (q, b) = (q’, b’, L), ta có: (q, ’1a, 2) ├(q’, ’1, ab’3) vớ ’2= ab’3
q
b a b a b b
’1
1
q’
b a b’ a b b
’2
’1
├
2
Trang 3Chuyển tiếp nhiều bước
Cho cấu hình C = (q, 1, 2) vàC’= (q’, ’1, ’2)
Tương tựtrong ôhh, ta nói chuyển tiếp nhiều bước
C ├*C’n u:
k 0 vàcác cấu hình trung gian C0, C1, , Cksao cho :
C 0
C’ k
Ci├Ci+1với 0 k
14/58
Máy Turing đoán nhận câu của ngôn ngữ
Máy Turing đoán nhận câu của một ngôn ngữ như làcác ôtômat hữu hạn đã xét
Cho w :
Câu w được một máy Turing M đoán nhận nễu : (q0, , w) ├*(qj, , 2) vớ , 2 *
Câu w được một máy Turing thừa nhận nễu : (q0, , w) ├*(qj, , 2) vớ , 2 * và j F
Một ngôn ngữ L được thừa nhận bởi một máy Turing M,
L = L(M), nễu : L(M) = { w (q0, , w) ├*(qj, , 2) với qj F }
15/58
Ví d
Cho 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àm chuyển tiếp không được định nghĩa)
q4
(q4, #, R) (q3, Y, R)
q3
(q2, Y, L)
(q0, X, R)
(q1, a, L)
q2
(q1, Y, R)
(q2, Y, L) (q1, a, R)
q1
(q3, Y, R)
(q1, X, R)
q0
# Y
X
b a
16/58
Đánh dấu con a trái nhất
Đánh dấu con a trái nhất
q4
(q4, #, R) (q3, Y, R)
q3
(q2, Y, L)
(q0, X, R)
(q1, a, L)
q2
(q1, Y, R)
(q2, Y, L) (q1, a, R)
q1
(q3, Y, R)
(q1, X, R) q0
# Y X
b a
a/X, R q1 q0
q4
Y/Y, R
q2 b/Y, L
Y/Y, R
a/a, R a/a, L X/X, R
Y/Y, R
Y/Y, R
#/#, R q3
Vượt qua phải
Vượt qua phải
17/58
Các chuyển tiếp đoán nhận câu aabb lần lượt như sau :
18/58
dãy các chuyển tiếp từcâu vào aaabbb được cho như sau :
q1Xaabbb# . q3XXXYYY#
th ừ a nh ậ n !
Trang 4Ví d
Máy Turing thừa nhận ngôn ngữchính quy aa* + b(a+b)*
q1
q0
a|a, R
#|#, L
0
3
R a
a ,
R y
y ,
L y
b ,
L a
a ,
L y
y ,
R x
x ,
R y
y ,
R
y
q L
,
20/58
Định nghĩa
Máy Turing đoán nhận một câuwlàthực hiện (xửlý) một dãy cực đại các cấu hình :
(q0, , w) = C0 ├C1 ├Ck= (qk, k, k)
nghĩa làsao cho :
Dãy tựkết thúc tại một cấu hình cóchứa trạng thái kết thúc
vàthừa nhậ câuw hoặc
Dãy tựkết thúc tại một cấu hình không chứa trạng thái kết thúc màtừ đó, không còn cấu hình nào cóthểchuyển đến : máy bịh c
hoặc
Dãy cấu hình làvô hạn, máy không bao giờ ừng
21/58
Tính xác định được (Deterministic)
Một ngôn ngữ L được xác định bởi một máy Turing M n u:
M thừa nhận L
M không cócác xửlý vô hạ
Nhận xét :
T n tại thuật toán cho phép máy Turing đoán nhận một ngôn
ngữ, hay kiểm tra tính xác định được
Đối với các ôtômát hữu hạn đơn định, điều đóhiển nhiên
Đối với một ô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án,
vì :
T i mỗi giai đoạn đ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ách tường minh
22/58
Hình thức hóa tính xác định được
Tính xác định được của máy Turing cóthểhiểu như sau :
V i mọi phần tử(q, a) QG, tồn tại nhiều nhất một quy tắc (q, a) (q’, a’, m), viết gọn qama’q’, với m M={L, R}
Hàm bộphận QG QGM cóthểtách thành ba hàm :
Hàm “ký tựmới” nc : QG G
hay nc(q, a) = a’
Hàm “di chuyển đầu đọc mh :QG M
hay mh(q, a) =m
Hàm “trạng thái mới” ns : QG Q
hay ns(q, a) = q’
23/58
Máy Turing tính hàm
Máy Turing cóthểtính hàm theo cách hiểu như sau :
Tham đối của hàm làcâu vào wn m trên băng
Giátrịtrảvềcủa hàm làcâu được ghi trên băng
sau khi máy Turing kết thúc việc xử lý (đ c hết w)
Máy Turing tính một hàm f : n u :
V i một câu vào wb t kỳ, máy luôn luôn dừng trong một
cấu hình màf(w) cómặt ở trên băng
Hàm f đgl tính được bởi một máy Turing nếu tồn tại một
máy Turing tính được nó
24/58
A function f(w) has:
D
Notation of Function
A function may have many parameters:
Example: Addition function
f(x, y) = x + y
Trang 5Integer Domain
Unary:
Binary:
Decimal:
11111 101 5
We prefer unary representation:
easier to manipulate with TMs
Data representation
26/58
Definition:
A function is computable if there is a Turing Machine such that:
f
M
D
0
q
f
q
)
(w
f
final state initial state
For all
27/58
Initial
Configuration
Final Configuration
A function is computable if
there is a Turing Machine such that:
f
M
In other words:
D
For all
) (
28/58
Example
The function f ( x , y ) x y is computable
Turing Machine:
y
29/58
0
q
1
Start
initial state
The 0 is the delimiter that separates the two numbers
Input representation
30/58
f
q
1
y
x
Finish
final state
0
q
1
Start
initial state
Computing Function
Trang 6f
q
1
y
x
Finish
final state
The 0 helps when we use
the result for other operations
Computing Function
32/58
Turing machine for function
y x y x
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
33/58
Execution Example (1)
0
q
Time 0
Final Result
4
q
y
x
11
11
34/58
0
q
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
Execution Example (2)
35/58
0
L
, 1
1
R
,
R
,
1
0
R
,
1
1
4
q
R
, 1
1
0
q
0
Time 1
Execution Example (3)
36/58
0
q
Time 2
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
Execution Example (4)
Trang 7
1
q
Time 3
0
L
, 1
1
R
,
R
,
1
0
R
,
1
1
4
q
R
, 1
1
Execution Example (5)
38/58
1
q
Time 4
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
Execution Example (6)
39/58
1
q
Time 5
0
L
, 1
1
R
,
R
,
1
0
R
,
1
1
4
q
R
, 1
1
Execution Example (7)
40/58
2
q
Time 6
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
Execution Example (8)
41/58
3
q
Time 7
0
L
, 1
1
R
,
R
,
1
0
R
,
1
1
4
q
R
, 1
1
Execution Example (9)
42/58
3
q
Time 8
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
Execution Example (10)
Trang 8 3
q
Time 9
0
L
, 1
1
R
,
R
,
1
0
R
,
1
1
4
q
R
, 1
1
Execution Example (11)
44/58
3
q
Time 10
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
Execution Example (12)
45/58
3
q
Time 11
0
L
, 1
1
R
,
R
,
1
0
R
,
1
1
4
q
R
, 1
1
Execution Example (13)
46/58
4
q
Time 12
0
L
, 1
1
R
,
R
, 1
0
R
, 1
1
4
q
R
, 1
1
HALT & accept
Execution Example (14)
47/58
Turing Machine:
48/58
f
q
1
x
2
Finish
final state
0
q
1
x
1
Start
initial state
Trang 9TM Pseudocode for f(x) = 2x
• Replace every 1 with $
• Repeat:
• Find rightmost $ , replace it with 1
• Go to right end, insert 1
Until no more $ remain
50/58
Example TM for f(x) = 2x
0
3
q
R
, 1
$
L
, 1
L
,
R
$,
R
,
0
q
1 1
Start
3
q
Finish
51/58
T = <S, Q, P> ; 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 }
TM compute succ(n)
1
0|0, R
2
q
1|1, R 1|0, L
#|1, L
#|#, R
0|1, L
52/58
Another Example
The function is
0
y
x
if if
Turing Machine for
53/58
Turing Machine Pseudocode:
Match a 1 from with a x 1 from y
• Repeat
Until all of or is matched x y
• If a 1 from is not matched
erase tape, write 1
else
erase tape, write 0
x
) ( x y
) ( x y
54/58
Các ngôn ngữxc định được bởi một máy Turing được gọ
làđệquy(Recusive)
Các ngôn ngữ được thừa nhận bởi một máy Turing gọi là liệt kê đệquy(Recursively Enumerable)
T đóta cócác định nghĩa sau :
Một ngôn ngữlà đệquy nếu nó được xác định
b i một máy Turing
Một ngôn ngữlàliệt kê đệquy nếu nó được thừa nhậ
b i một máy Turing
Trang 10Luận đềTuring-Church phát biểu như sau :
C c ngôn ng ữ đượ c nh ậ n bi ế t b ở i m ộ t thu ậ t
toán là các ngôn ng ữ xá c định đượ c b ở i m ộ t
máy Turing
Người ta cóthểphát biểu luận đềTuring
-Church theo nghĩa của phép tính hàm :
C c hàm tí nh đượ c b ở i m ộ t thu ậ t toán là các
h m tí nh đợ c b ở i m ộ t máy Turing
Alonzo Church (1903-1995) : nhà Toán học người Mỹ
đã nghiên cứu phép tính hàm (Functional Calculus) vàtính tính được (Computability)
56/58
Luận đề Turing-Church đóng vai trò quan trọng trong
lý thuyết tính toán (Computability)
Luận đề đưa ra lập luận rằng một sốngôn ngữkhông thể được đoán nhận bởi một thuật toán : thực chất là ình thức
h a khái niệm tính toá
Luận đềTuring-Church không phải làmột định lý, nên không thểchứng minh được
Luận đềTuring-Church áp dụng mô hình lý thuyết làmáy Turing được định nghĩa chặt chẽ đểmô hình hoáquan niệm
vềthuật toán làkhái niệm không được xác định rõ ràng
Dễd ng mô phỏng sựhoạt động của một máy Turing nhờ:
Một bút chìvàtờgiấy
Một chương trình chạy trên một máy tính cụthể
57/58
Xây dựng máy Turing
Một sốk thuật xây dựng máy Turing
Ghi nhớ b điều khiển hữu hạ
Mởrộng băng vào vô hạn vềcảhai phía
Máy Turing cónhiều băng
Máy Turing có ộnhớtruy cập trực tiế
58/58
Các máy Turing vạn năng
Một vấn đềthúvịàliệu cóthểcómột máy Turing
mô phỏng được bất kỳmáy Turing nào ?
Một cách tường minh, ta muốn cung cấp cho một máy Turing M sựmô tảcủa một máy Turing M’b t kỳn o đó sao cho với một câu vào wn o đó, máy Turing M’cóthể
mô phỏng sự đoán nhận của M trên w
Một máy Turing như vậy sẽlàmột sựnhại lại các máy Turing khác, và được gọi làmáy Turing vạn năng (Universal Turing Machine)