Professional Documents
Culture Documents
Bài tập giữa kỳ LTDPTTT
Bài tập giữa kỳ LTDPTTT
B. Bài tập
Câu 1. Xây dựng máy Turing 1 băng đoán nhận ngôn ngữ { 0i1j với điều kiện nào
đó của i, j, ví dụ i>j, i<j, i=j+1, j=i+1}
Câu 2. Xây dựng máy Turing 1 băng tính hàm f(n,m) = n*m-n, n*m-m, n*m+n,
n*m+m (với n>=m)
Câu 3. Xây dựng máy Turing 2 băng đoán nhận ngôn ngữ {w#wR , w ∈ {0,1}+},
hoặc ngôn ngữ {w#w, w ∈ {0,1}+}
GIẢI
*Chú thích*:
Vì có nhiều ký tự đặc biệt nên tao quy ước lại để gõ cho nhanh, ae để ý thích
nghi nha ^.^
q0 = q0 …, q0’ = q0’, qy = qy, qn = qn
∅ = trống
𝛿=O
Câu 1.
Điều kiện: i<j
Máy Turing 1 băng đoán nhận ngôn ngữ { 0i1j với i<j} được xác định như sau:
M = {Q, {0,1}, {0,1,∅}, 𝛿, q0, qy, qn}
Trong đó:
Q = {q0, q0’, q1, q2, q3, q4, qy, qn}
Hàm chuyển được xác định như sau:
O(q0, trống) = (qn, trống, S)
O(q0, 1) = (qn, 1, S)
O(q0, 0) = (q1, trống, R)
O(q1, trống) = (qn, trống, S)
O(q1, 0) = (q1, 0, R)
HỌC TẬP VÌ NGÀY MAI KIẾM ĂN
O(q1, 1) = (q2, 1, R)
O(q2, 0) = (qn, 0, S)
O(q2, 1) = (q2, 1, R)
O(q2, trống) = (q3, trống, L)
O(q3, 1) = (q4, trống, L)
O(q4, 1) = (q4, 1, L)
O(q4, 0) = (q4, 0, L)
O(q4, trống) = (q0’, trống, R)
O(q0’, 0) = (q1, trống, R)
O(q0’, trống) = (qn, trống, S)
O(q0’, 1) = (qy, 1, S)
O(q2, 0) = (qn, 0, S)
O(q2, trống) = (q3, trống, L)
O(q3, 1) = (q4, trống, L)
O(q4, 1) = (q4, 1, L)
O(q4, 0) = (q4, 0, L)
O(q4, trống) = (q0’, trống, R)
O(q0’, 0) = (q1, trống, R)
O(q0’, trống) = (qn, trống, S)
Điều kiện i = j+1
Máy Turing 1 băng đoán nhận ngôn ngữ {0i1j với i=j+1} được xác định như sau:
M = {Q, {0,1}, {0,1,trống}
Trong đó:
Q = {q0, q0’, q1, q2, q3, q4, q5, q6, qy, qn}
Hàm chuyển được xác định như sau:
O(q0, trống) = (qn, trống, S)
O(q0, 1) = (qn, 1, S)
O(q0, 0) = (q1, trống, R)
O(q1, 0) = (q1, 0, R)
O(q1, 1) = (q2, 1, R)
O(q2, 0) = (qn, 0, S)
O(q2, 1) = (q2, 1, R)
O(q2, trống) = (q3, trống, L)
O(q3, 1) = (q4, trống, L)
O(q4, 1) = (q4, 1, L)
O(q4, 0) = (q4, 0, L)
HỌC TẬP VÌ NGÀY MAI KIẾM ĂN
O(q5, #) = (q7, #, L)
O(q7, x) = (q7, 0, L)
O(q7, 1) = (q8, 1, L)
O(q8, 0) = (q8, 0, L)
O(q8, x) = (q0’, x, R)
O(q0’, 0) = (q9, x, R)
O(q9, 0) = (q9, 0, R)
O(q9, 1) = (q5, 1, R)
O(q0’, 1) = (q10, 1, L)
O(q10, x) = (q10, 0, L)
O(q10, omg) = (q11, trống, R)
O(q11, 0) = (q12, trống, R)
O(q12, 0) = (q12, 0, R)
O(q12, 1) = (q12, 1, R)
O(q12, #) = (q12, #, R)
O(q12, trống) = (q13, trống, L)
--- Phần in nghiêng này là thực hiện phép trừ. Xem phần in đậm phía
dưới để thấy sự khác biệt đối với phép cộng ---
O(q13, 0) = (q14, trống, L)
O(q14, 0) = (q14, 0, L)
O(q14, #) = (q14, #, L)
O(q14, 1) = (q14, 1, L)
O(q14, trống) = (q11, trống, R)
O(q11, 1) = (q15, trống, R)
O(q15, 0) = (q15, trống, R)
O(q15, #) = (qy, #, R)
HỌC TẬP VÌ NGÀY MAI KIẾM ĂN
O(q15, #) = (qy, #, R)
Tính hàm F(n,m) = n*m-m
*Chú ý: phần +-m thì không cần xét đến Omega ở đầu xâu, tức là không cần thêm
Omega vào*
Máy Turing 1 băng tính hàm f(n,m) = n*m-m được định nghĩa như sau:
M = {Q, {0,1}, {0,1,trống, #, x}, O, q0, qy, qn}
Trong đó:
Q = {q0, q0’, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, qy, qn}
Hàm chuyển được xác định như sau:
O(q0, trống) = (qn, trống, S)
O(q0, 1) = (qn, 1, S)
O(q0, 0) = (q1, trống, R)
O(q1, trống) = (qn, trống, S)
O(q1, 0) = (q1, 0, R)
O(q1, 1) = (q2, 1, R)
O(q2, 0) = (q3, 0, R)
O(q2, 1) = (qn, 1, S)
O(q2, trống) = (qn, trống, S)
O(q3, 0) = (q3, 0, R)
O(q3, 1) = (qn, 1, S)
O(q3, trống) = (q4, #, L)
O(q4, 0) = (q4, 0, L)
O(q4, 1) = (q5, 1, R)
O(q5, 0) = (q6, x, R)
O(q6, 0) = (q6, 0, R)
O(q6, #) = (q6, #, R)
HỌC TẬP VÌ NGÀY MAI KIẾM ĂN
Q = {q0, q0’, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, qy, qn}
Hàm chuyển được xác định như sau:
O(q0, trống) = (qn, trống, S)
O(q0, 1) = (qn, 1, S)
O(q0, 0) = (q1, trống, R)
O(q1, trống) = (qn, trống, S)
O(q1, 0) = (q1, 0, R)
O(q1, 1) = (q2, 1, R)
O(q2, 0) = (q3, 0, R)
O(q2, 1) = (qn, 1, S)
O(q2, trống) = (qn, trống, S)
O(q3, 0) = (q3, 0, R)
O(q3, 1) = (qn, 1, S)
O(q3, trống) = (q4, #, L)
O(q4, 0) = (q4, 0, L)
O(q4, 1) = (q5, 1, R)
O(q5, 0) = (q6, x, R)
O(q6, 0) = (q6, 0, R)
O(q6, #) = (q6, #, R)
O(q6, trống) = (q4, 0, L)
O(q5, x) = (q5, x, R)
O(q5, #) = (q7, #, L)
O(q7, x) = (q7, 0, L)
O(q7, 1) = (q8, 1, L)
O(q8, 0) = (q8, 0, L)
HỌC TẬP VÌ NGÀY MAI KIẾM ĂN