- Bài tập (practices and exercises)
7.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 đố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 tốn thực tế, rõ ràng qua từng bước tính tốn, FA có thể đưa ra các xử lý tương ứng (các OUPUT). Như vậy, hồn tồn có thể mở rộng FA để giải quyết các lớp bài tố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) 7.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 tốn:
Thực chất TM là một automata, nó phân rã họat động của một q trình tính tốn thành các thao tác đơn giản;
TM sử dụng bộ nhớ ngồ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 đố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 đốn nhận CSL (ngơn ngữ loại 1)
Định nghĩa 7.3: TM (đơn định) là một hệ thống gồm 7 thành phần:
M (Q, Σ, Γ, δ, q0, B, F) Q : tập hữu hạn các trạng thái;
Σ : bộ ký hiệu nhập;
Γ : tập hữu hạn các ký hiệu được viết trên băng; δ : hàm chuyển Q x Γ → Q x Γ x {L, R, Ø}; q0 : trạng thái khởi đầu;
F Q : tập các trạng thái kết thúc.
Đị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à:
δ(q, Xi) = (p, Y, L)
Nếu i - 1 = n thì Xi là B;
Nếu i = 1 thì khơng có ID kế tiếp (đầu đọc khơng được phép vượt qua cận trái của băng;
Nếu i > 1 ta viết:
X1X2...Xi-1qXi...Xn →X1X2...Xi-2pXi-1YXi+1...Xn Tương tự, phép dịch chuyển sang phải được ký hiệu là
δ(q, Xi) = (p, Y, R)
Với : X1X2...Xi-1qXi...Xn →X1X2...Xi-2Xi-1YpXi+1...Xn Và với : δ(q, Xi) = (p, Y, Ø)
X1X2...Xi-1qXi...Xn →X1X2...Xi-2Xi-1pYXi+1...Xn
Đị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à:
L(M) = {w | w Γ* và q0w →α1pα2 với p F}
Ví dụ 7.1: Hoạt động của các chương trình trên ngơn ngữ lập trình như C,
C++, Prolog, Lisp, Small talk, Java… có thể được mơ phỏng bởi các Turing machines.