Tổng hợp những câu hỏi cần thiết và quan trọng của môn Lý thuyết độ phức tạp tính toán (KMA). Tài liệu này giúp các bạn sinh viên có thể vượt qua các bài kiểm tra giữa kỳ, cuối kỳ và đạt kết quả cao nhất. Xin cảm ơn các bạn đã xem và tải tài liệu.
Trang 1B 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,
Đ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:
Trang 2Điều kiện i>j
Máy Turing đoán nhận ngôn ngữ có dang {0i1j với i>j} được xác định như sau:
Trang 4Điều kiện j = i+1
Máy Turing 1 băng đoán nhận ngôn ngữ {0i1j với j = i+1} được xác định như sau:
Trang 5Dấu Omega: omg
Dấu x khoanh tròn bên ngoài: x
( nói sơ qua ý tưởng về tính hàm kiểu này như sau:
- Đối với bài này thì mặc định dấu Omega được thêm vào đầu xâu, các
anh em không cần quan tâm đến nó cho tới khi thực hiện phép cộng hoặc trừ
- Đầu tiên là thực hiện phép nhân:
o Ví dụ 2x3 thì xâu vào có dạng 001000, nghĩa là bao nhiêu chữ
số 0 thì tượng trưng cho số đó, còn số 1 tượng trưng cho dấu nhân
o Trước tiên thêm # ở cuối xâu coi như ngăn cách xâu với kết quả
o Lấy 1 ngăn cách ở giữa, chia xâu ra làm 2 vế Duyệt tuần tự vế
trái, cứ mỗi số 0 ở vế trái thì lại bê toàn bộ 0 ở vế phải sang kết
o Lại thực hiện duyệt tuần tự vế trái Cứ mỗi số 0 ở vế trái thì thì
thêm một số 0 vào phần kết quả ( đối với phép cộng ) hoặc bớt một số 0 ở phần kết quả ( đối với phép trừ )
Trang 7- 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 -
Trang 11- Phần in nghiêng là thực hiện phép –m ( những phần còn lại thì làm y hịt cho bài +m bên dưới -