Máy Turing Turing machineMỤC ĐÍCH: Trang bị khái niệm về máy Turing, văn phạm loại 0, các kỹ thuật thiết kế máy Turing; Khái niệm về LBA, văn phạm loại 1; Sơ lược về ác hướng nghi
Trang 1Automata
Trang 2Bài 7 Máy Turing (Turing machine)
MỤC ĐÍCH:
Trang bị khái niệm về máy Turing, văn phạm loại
0, các kỹ thuật thiết kế máy Turing;
Khái niệm về LBA, văn phạm loại 1;
Sơ lược về ác hướng nghiên cứu liên quan đến
TA&FL;
YÊU CẦU:
Sinh viên về nhà tìm hiểu thêm về các nội dung
được giới thiệu như một hướng học thuật mở.
©copyright by PhD C.T.Ha, Le Quy Don Technical University
Trang 3Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
3
Trang 4Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
4
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 57.1 Máy hữu hạn trạng thái có đầu ra
Một trong những hạn chế của FA là chỉ có khả năng đoán nhận từ hay chấp nhận ngôn ngữ ( acceptors and
recognizers ) , với mỗi chuỗi nhập vào thì chỉ có tín hiệu
ra dạng true (đạt đến trạng thái kết thúc) hoặc false
(không thể xử lý hoặc không rơi vào trạng thái kết thúc);
Trong bài toán thực tế, rõ ràng qua từng bước tính toán,
FA có thể đưa ra các xử lý tương ứng (các OUPUT ) Như vậy, hoàn toàn có thể mở rộng FA để giải quyết các lớp bài toán rộng hơn (FA có đầu ra – transducers ):
Mealy machine (Developed by G.H Mealy in 1955)
Moore machine (Developed by E.F Moore in 1956)
5
Trang 67.1 Máy hữu hạn trạng thái có đầu ra
Định nghĩa 7.1: Mealy machine là bộ 6:
M = (Q, Σ, Δ, q0, δ, φ)) trong đó:
Σ : tập hữu hạn gọi là tập các kí hiệu vào;
Δ : tập hữu hạn gọi là tập các kí hiệu ra;
Q : tập hữu hạn gọi là tập các trạng thái;
q0 : trạng thái bắt đầu ;
δ : ánh xạ từ Q x Σ sang Q (gọi là hàm chuyển
trạng thái);
φ) : là ánh xạ từ tập Q x Σ sang tập Δ (gọi là hàm ra).
Δ(t) = φ)[q(t),x(t)] q(t),x(t)]
Automat Mealy hoạt động theo cơ chế phát tín hiệu
ra phụ thuộc vào tín hiệu vào và trạng thái nhận
Trang 77.1 Máy hữu hạn trạng thái có đầu ra
7
Ví dụ: Một người cha gửi con
trai đến trường học, chú bé
đem về các điểm 0 và điểm 9,
người cha không muốn lần
nào cũng dùng đến roi mây
mỗi lần đứa bé bị điểm
không, mà muốn có một chiến
lược giáo dục tinh tế hơn qua
Trang 87.1 Máy hữu hạn trạng thái có đầu ra
Trang 97.1 Máy hữu hạn trạng thái có đầu ra
9
tin nào đó, nếu có 3 bit xuất hiện liên tục thì trạm thu thông báo là quá trình truyền tin
xảy ra lỗi, thiết kế automata có thể thực hiện điều đó.
Trang 107.1 Máy hữu hạn trạng thái có đầu ra
11/25/2023
10
Ví dụ: Thiết kế một máy bán hàng tự động đáp ứng
các yêu cầu sau:
Khi thả vào máy lớn hơn 30 xu, máy lập tức trả lại số tiền vượt quá, khi người dùng nhấn nút màu đỏ (R) sẽ nhận được nước Coca, nhấn nút màu cam (O) sẽ nhận được nước cam;
Ý tưởng: thiết kế các trạng thái, sao cho để đạt trạng thái thứ i, thì người dùng phải bỏ vào máy 5i xu, chỉ
cho phép nhận lại tiền thừa và nước uống sau khi đã
bỏ vào máy không dưới 30 xu.
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 117.1 Máy hữu hạn trạng thái có đầu ra
Trang 127.1 Máy hữu hạn trạng thái có đầu ra
Định nghĩa 7.2: Moore machine là bộ 6:
M = (Q, Σ, Δ, q0, δ, φ)) trong đó:
Σ : tập hữu hạn gọi là tập các kí hiệu vào;
Δ : tập hữu hạn gọi là tập các kí hiệu ra;
Q : tập hữu hạn gọi là tập các trạng thái;
Trang 13Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
13
Trang 147.2 Khái niệm về máy Turing
A Turing vào năm 1936 đã đề xuất máy có khả
năng biểu diễn các thuật toán:
Thực chất TM là một automata , nó phân rã họat động của một quá trình tính toán thành các thao tác đơn giản;
TM sử dụng bộ nhớ ngoài vô hạn, đầu đọc có thể dịch chuyển theo chiều bất kỳ, có thể đọc và sửa đồi giá trị ghi trên bộ nhớ.
TM có khả năng đoán nhận lớp ngôn ngữ đệ quy đếm được (ngôn ngữ loại 0 – recursively
enumerable).
TM không đơn định có bộ nhớ giới hạn thì gọi là một automata tuyến tính giới nội (Linear Baunded Automata -LBA) , LBA có khả năng đoán nhận CSL (ngôn ngữ loại 1)
11/25/2023
14
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 157.2 Khái niệm về máy Turing
Định nghĩa 7.3: TM (đơn định) là một hệ thống gồm 7 thành phần:
q0 : trạng thái khởi đầu;
B : ký hiệu dùng để chỉ khoảng trống trên băng;
F Q : tập các trạng thái kết thúc.
15
Trang 167.2 Khái niệm về máy Turing
Định nghĩa 7.4: Hình thái của TM có dạng α1qα2, với q là trạng thái hiện hành của TM, α1α2 là nội
dung của băng tính từ đầu băng cho đến ký hiệu
khác Blank bên phải nhất.
Định nghĩa 7.5: Đặt X1X2 Xi-1qXi Xn là một hình thái (ID) Phép dịch chuyển sang trái được ký hiệu là:
Trang 177.2 Khái niệm về máy Turing
Tương tự, phép dịch chuyển sang phải được ký hiệu là
Trang 187.2 Khái niệm về máy Turing
Định nghĩa 7.6: phép chuyển trạng thái mở rộng:
δ*: Γ* Q Γ* Γ* Q Γ* :
δ*(ua, q, bv) = (uac, qr, v) nếu δ(q, b) = (qr, c, R)
δ*(ua, q, bv) = (u, qr, acv) nếu δ(q, b) = (qr, c, L)
Định nghĩa 7.7: ngôn ngữ được chấp nhận bởi TM M là:
Trang 197.2 Khái niệm về máy Turing
Ví dụ 7.2: Thiết kế TM chấp nhận L = {0n1n | n > 0}
19
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 207.2 Khái niệm về máy Turing
Xét chuỗi nhập w = 0011, ta có:
q00011 → Xq1011 → X0q111 → X q20Y1 → q2X0Y1 → X
q00Y1 → XXq1Y1 → XXY q11 → XX q2YY → X q2XYY →
XX q0YY → XXYq3Y → XXYYq3 → XXYYq4
q0(0,X,R)
(Y,Y,R)
(0,0,R) (Y,Y,R)
(1,Y,L)
(X,X,R)
(0,0,L) (Y,Y,L)
Trang 217.3 Kỹ thuật thiết kế TM
Ví dụ 7.3: Có thể thiết kế TM như là máy tính làm
việc với các hàm số nguyên.
Quy ước: một số nguyên trong TM được viết dưới dạng nhất phân là một chuỗi số 0, cách nhau bởi 1 số 1.
Trang 23(1,1,R)
(1,1,R) (0,1,L)
(0,0,L) (1,1,L)
(B,B,L) (B,B,R)
(1,B,L) (0,0,L)
(B,0,Ø)
(0,B,R) (1,B,R) (B,B,Ø)
23
Trang 24Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
24
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 257.3 Kỹ thuật thiết kế TM
Việc xây dựng máy Turing bằng cách liệt kê tất cả các hàm chuyển của nó trên băng nhập có thể là
một công việc thiếu hiệu quả Ta cần sử dụng
những công cụ hay phương pháp thiết kế “thông
minh” hơn:
Lưu trữ trong bộ điều khiển (Storage in the finite control);
Sử dụng nhiều rãnh trên băng (multiple tracks);
Đánh dấu ký hiệu (Checking off symbols);
Dịch qua (Shifting over);
Kỹ thuật chu trình con (subrountines);
25
Trang 26Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.3 Kỹ thuật thiết kế TM
7.3.1 Kỹ thuật lưu trữ trong bộ điều kiển
7.3.2 Kỹ thuật dịch qua 7.3.3 Kỹ thuật chu trình con 7.3.4 Sử dụng nhiều rãnh trên băng 7.4 Sự tương đương giữa TM và REL
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
26
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 277.3.1 Kỹ thuật lưu trữ trong bộ điều
kiển
Ví dụ 7.4: thiết kế TM kiểm tra ký tự đầu tiên của một
chuỗi không xuất hiện ở bất kỳ vị trí nào khác trong chuỗi.
Ta xây dựng TM cho ví dụ trên như sau:
M(Q, {0, 1}, {0, 1, B}, δ, [q(t),x(t)] q0, B], B, F) trong đó: các trạng thái thuộc Q là một cặp {q0, q1} x {0,1,
Trang 28Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
28
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 29Hàm chuyển trạng thái δ:
δ([q(t),x(t)] q1, B, B], A1) = ([q(t),x(t)] q1, B, A1], X, R) δ([q(t),x(t)] q1, B, A1], A2) = ([q(t),x(t)] q1, A1, A2], X, R) δ([q(t),x(t)] q1, A1, A2], A3) = ([q(t),x(t)] q1, A2, A3], A1, R)
δ([q(t),x(t)] q1, Ai-2, Ai-1], Ai) = ([q(t),x(t)] q1, Ai-1, Ai], Ai-2, R)
δ([q(t),x(t)] q1, An-1, An], B) = ([q(t),x(t)] q2, An, B], An-1, R) 11/25/2023
29
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Trang 30Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.3 Kỹ thuật thiết kế TM
7.3.1 Kỹ thuật lưu trữ trong bộ điều kiển 7.3.2 Kỹ thuật dịch qua
7.3.3 Kỹ thuật chu trình con
7.3.4 Sử dụng nhiều rãnh trên băng 7.4 Sự tương đương giữa TM và REL
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
30
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 317.3.3 Kỹ thuật chu trình con
Ví dụ 7.6: thiết kế TM thực hiện phép nhân 2 số nguyên dương m và n
Input: 0m1 0nB
Output: 0m*nB
Ý tưởng: đặt số 1 sau 0m1 0n ( 0m1 0n1), sau đó
chép n số 0 sang phải m lần, mỗi lần xóa đi 1 số
0 bên trái của m, Sau khi m đã được xóa, phép
nhân đã được thực hiện xong, xóa tiếp 1 0n1 Kếu quả còn lại sẽ là B 0m*nB
Phân tích:
Xóa 1 số 0 bên trái của m, dịch đầu đọc sang số
n để chuẩn bị cho việc copy n số 0: q00m1 0n1 →
Trang 327.3.3 Kỹ thuật chu trình con
Quay lại trạng thái bắt đầu:
Trang 337.3.3 Kỹ thuật chu trình con
33
Trang 347.3.3 Kỹ thuật chu trình con
Biến đổi hình thái q00m1 0n1 → B 0m-11q10n1:
Trang 357.3.3 Kỹ thuật chu trình con
(B,0,L)
(0,0,L) (1,1,L)
(2,2,R)
q4
q5
(1,1,L) (2,0,L)
Trang 36Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.3 Kỹ thuật thiết kế TM
7.3.1 Kỹ thuật lưu trữ trong bộ điều kiển
7.3.2 Kỹ thuật dịch qua
7.3.3 Kỹ thuật chu trình con
7.3.4 Sử dụng nhiều rãnh trên băng
7.4 Sự tương đương giữa TM và REL
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/202336
Trang 377.3.4 Sử dụng nhiều rãnh trên băng
ĐL 7.1: Nếu L được nhận diện bởi TM với băng vô
hạn hai chiều thì L cũng được nhận diện bằng TM vô hạn một chiều băng
ĐL 7.2: Nếu L được nhận dạng bởi máy Turing nhiều băng vô hạn hai chiều thì nó cũng được nhận dạng bởi máy Turing một băng vô hạn hai chiều.
ĐL 7.3: Nếu L được chấp nhận bởi máy Turing
không đơn định M1 thì L cũng được chấp nhận bởi
một máy Turing đơn định M2 nào đó.
ĐL 7.4: Nếu L được chấp nhận bởi máy Turing k
chiều M1 thì L cũng được chấp nhận bởi một máy
Turing một chiều M2 nào đó.
37
Trang 38Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.4 Sự tương đương giữa TM và REL
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
38
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 397.4 Sự tương đương giữa TM và REL
ĐL 7.5: Nếu L được chấp nhận bởi máy Turing k đầu đọc M1 thì L cũng được chấp nhận bởi một TM một
đầu đọc M2 nào đó.
ĐL 7.6: Một máy Turing có thể mô phỏng một RAM (Random Access Machine), với điều kiện là mỗi chỉ thị RAM cũng có thể được mô phỏng bởi một TM
ĐL 7.7: Một ngôn ngữ là tập đệ qui liệt kê nếu và chỉ nếu nó là G(M2) với TM M2 nào đó.
ĐL 7.8: Nếu L là L(G) với một văn phạm không hạn chế G thì L là ngôn ngữ đệ quy liệt kê.
ĐL 7.9: Nếu L là ngôn ngữ đệ quy liệt kê thì L = L(G) với một văn phạm không hạn chế G nào đó
39
Trang 40Bài 7 Máy Turing
7.1 Máy hữu hạn trạng thái có đầu ra
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
11/25/2023
40
Automata và ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don
Technical University
Trang 417.5 Automata tuyến tính giới nội
(LBA)
LBA ( Linear Bounded Automata) là một TM
không đơn định và băng nhập có giới hạn ở hai đầu (cận phải và cận trái) Vì vậy, nó phải thỏa mãn hai điều kiện sau:
Bộ chữ cái nhập có chứa thêm hai ký hiệu đặc
biệt ⊄ và $ dùng làm ký hiệu đánh dấu mút trái
và mút phải
LBA không thực hiện phép chuyển sang trái (L) từ
⊄ và không thực hiện phép chuyển sang phải (R)
từ $, và cũng không viết các ký hiệu khác lên ⊄
và $.
41
Trang 427.5 Automata tuyến tính giới nội
(LBA)
Định nghĩa 7.6: LBA là hệ thống 8 thành phần
M(Q, Σ, Γ,δ,qo,⊄, $, F), trong đó Q, Σ, Γ, qo, F vẫn như đã định nghĩa ở máy Turing, còn ⊄, $ ∈ Σ và hàm chuyển δ: Q × Γ → (Q
× Γ × { L, R}) phải thỏa mãn điều kiện:
Trang 437.5 Automata tuyến tính giới nội
(LBA)
ĐL 7.6: Tồn tại giải thuật để xác định với mọi ngôn ngữ cảm ngữ cảnh CSG G(V, T, P, S) bất kỳ và một chuỗi nhập w ∈ T*, liệu chuỗi w có thuộc ngôn ngữ L(G) hay không.
ĐL 7.6: Nếu L là một CSG thì L sẽ được chấp nhận bởi một LBA nào đó.
ĐL 7.6: Nếu L = L(M) với một LBA M (Q, Σ,
Γ,δ,qo,⊄, $, F) thì L – {ε} là một ngôn ngữ cảm
ngữ cảnh.
43
Trang 447.6 Các hướng nghiên cứu mở liên
quan
Giả thuyết Church-Turing: Any algorithm can be expressed as a TM.
Giả thuyết Church-Turing mở rộng:
Any polynomial-time algorithm can be expressed
as a TM that operates in polynomial time;
A polynomial-time algorithm: number of element operations is a polynomial function of input
length;
A polynomial-time TM: number of state transition
is a polynomial function of input length.
11/25/202344
Trang 45Bài 7 Máy Turing
7.1 Sự mở rộng của automata hữu hạn
7.2 Khái niệm về máy Turing
7.5 Automata tuyến tính giới nội (LBA)
7.6 Các hướng nghiên cứu mở liên quan
45
Trang 46The Story So Far
ed b
y
CFG
, N
D PD A
Trang 47The Story So Far
d b
y
C FG
, N
D PD A
Trang 48Languages
recognizable by any
mechanical computing machine
Trang 50Decidable Problems
Decidable Problems
Problems that can be solved by
a computer (eventually) Problems that can be solved by a computer in a reasonable time.
NP P
Note: not known if P NP or P = NP