tiểu luận môn lý thuyết tính toán programming techniques for turing machines

15 425 0
tiểu luận môn lý thuyết tính toán programming techniques for turing machines

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC & ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG ~~~oOo~~~ TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN ĐỀ TÀI PROGRAMMING TECHNIQUES FOR TURING MACHINES GIẢNG VIÊN : PGS.TS PHAN HUY KHÁNH LỚP : KHOA HỌC MÁY TÍNH - K24 NHÓM HỌC VIÊN • TRẦN NGỌC CHINH • PHÙNG THỊ NGỌC DUNG • VÕ VĂN THIÊN ĐÀ NẴNG, 05/2012 Mục lục MỤC LỤC GIỚI THIỆU 1 PHẦN I: LÝ THUYẾT CÁC KỸ THUẬT XÂY DỰNG MÁY TURING 2 .I LƯU TRỮ Ở BỘ ĐIỀU KHIỂN HỮU HẠN 2 .II BĂNG NHIỀU RÃNH 4 .III CHƯƠNG TRÌNH CON 6 PHẦN II: BÀI TẬP 10 .IV PHÁT BIỂU BÀI TOÁN 10 .V GIẢI QUYẾT BÀI TOÁN 10 TÀI LIỆU THAM KHẢO 13 GIỚI THIỆU Nhóm 05 thực hiện việc nghiên cứu tài liệu “Addison-Wesley – Introduction to Automata Theory, Languages and Computation”, phần 8.3 (p.329 – 336). Nội dung chính của tiểu luận bao gồm: PHẦN 1. LÝ THUYẾT Các kỹ thuật xây dựng máy Turing • Lưu trữ ở bộ điều khiển hữu hạn • Băng nhiều rãnh • Chương trình con PHẦN 2. BÀI TẬP Bài tập 8.3.3 (p.336) Với những kiến thức có được còn hạn chế, trong quá trình nghiên cứu các thành viên của Nhóm 05 đã có nhiều cố gắng tìm hiểu, nghiên cứu nhiều tài liệu khác nhau để bổ sung vào phần tìm hiểu mục 8.3 này. Do đó, kết quả nghiên cứu và trình bày không thể tránh khỏi những sai sót, hạn chế. Rất mong được sự đóng góp ý kiến của Thầy PGS, TS. PHAN HUY KHÁNH và các bạn cùng lớp. Xin chân thành cảm ơn! Nhóm 05 – Lớp Khoa học Máy tính K24 • Trần Ngọc Chinh • Phùng Thị Ngọc Dung • Võ Văn Thiên Nhóm 5 – Lớp KHMT.K24 1 PHẦN I: LÝ THUYẾT CÁC KỸ THUẬT XÂY DỰNG MÁY TURING Việc xây dựng máy Turing bằng cách viết (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 đơn điệu. Để mô tả đầy đủ cách xây dựng máy Turing, ta cần một vài công cụ "cấp cao" hơn. Phần này sẽ trình bày một số công cụ tổng quát. Mục đích của phần này cho thấy ý nghĩa của việc một máy Turing (Turing Machine – TM) có thể được sử dụng để tính toán, trong mức độ nào đó không khác so với với máy tính hiện nay. Chúng ta sẽ nghiên cứu những tính toán trên những máy Turing khác nhau. Khả năng “nội hàm” này của cả máy Turing và máy tính cho phép chúng ta chứng minh những vấn đề chưa quyết định được. Để minh chứng khả năng của TM một cách rõ ràng, chúng ta sẽ trình bày một số ví dụ về điều này và phải nghĩ đến băng từ và bộ điều khiển hữu hạn của máy. Không một thủ thuật nào mở rộng kiểu cơ bản của TM. Chúng ta chỉ sử dụng những ký hiệu để giả lập các máy TM mở rộng cùng với băng từ nhiều rãnh hơn so với TM cơ bản .I LƯU TRỮ Ở BỘ ĐIỀU KHIỂN HỮU HẠN Bộ điều khiển có thể dùng để lưu trữ một lượng hữu hạn thông tin. Để làm như thế, ta viết mỗi trạng thái như là một cặp các phần tử: một thành phần để điều khiển, thành phần kia lưu giữ một ký hiệu. Chú ý rằng, đây chỉ là một cách mở rộng trên khái niệm chứ không thay đổi định nghĩa máy Turing. Có thể dùng bộ điều khiển hữu hạn không chỉ để chỉ rõ vị trí trong chương trình (đầu đọc trên băng từ) của TM mà còn lưu trữ dữ liệu, hình 1.1 minh hoạ kỹ thuật này (cũng giống như một phương pháp khác: băng nhiều rãnh), hình vẽ cho thấy bộ điều khiển hữu hạn không những chứa một trạng thái điều khiển q mà còn ba phần tử dữ liệu A, B và C. Điều này không phải mở rộng kiểu TM mà đơn thuần xem trạng thái như 1 bộ. Như hình 1 đó là: [q, A, B, C]. Đối với nhiều trạng thái, phương pháp này cho phép mô tả có hệ thống hơn và chương trình TM cũng dễ hiểu hơn. Nhóm 5 – Lớp KHMT.K24 2 Tiểu luận môn Lý thuyết tính toán 3 (Hình 1 - TM có bộ điều khiển hữu hạn lưu trữ dữ liệu và nhiều track) Ví dụ 1.1: Thiết kế một TM M = (Q, {0, 1}, {0, 1, B}, δ , [q 0 , B], {[q 1 , B]}) Bộ điều khiển hữu hạn sẽ nhận biết ký tự đầu tiên là 0 hoặc 1 và xác định rằng ký tự này sẽ không xuất hiện bất cứ vị trí nào trong chuỗi nhập. Như vậy, M chấp nhận ngôn ngữ dạng 01* + 10*. Việc chấp nhận ngôn ngữ dạng này không cho thấy được hết khả năng của TM, nhưng là một ví dụ đơn giản về khả năng của TM. Tập hợp các trạng thái Q gồm {q 0 , q 1 } × {0, 1, B}, được biểu diễn từng cặp với 2 thành phần: a) Phần đầu là trạng thái điều khiển của TM q 0 hoặc q 1 , trạng thái q 0 là trạng thái khởi đầu mà M chưa đọc ký tự nào, q 1 là trạng thái M đã đọc 1 ký tự và kiểm tra ký tự này sẽ không xuất hiện bất cứ nơi nào trong câu khi đầu đọc di chuyển về phía phải, nếu gặp ô trắng thì câu được chấp nhận. b) Phần thứ 2 chứa dữ liệu, đó là ký hiệu đầu tiên được tìm thấy (0 hoặc 1), ký hiệu B xuất hiện trong phần này chứng tỏ M chưa đọc ký tự nào. δ : hàm chuyển của M: 1. δ ([q 0 , B], a) = ([q 1 , a], a, R) với a = 0 hoặc a = 1. q 0 là trạng thái khởi đầu và phần lưu dữ liệu của trạng thái là B. Ký tự đọc được ghi vào thành phần GVHD: PGS.TS PHAN HUY KHÁNH 3 Tiểu luận môn Lý thuyết tính toán 4 thứ hai của trạng thái, đầu đọc di chuyển về phía phải và chuyển sang trạng thái q 1 . 2. δ ([q 1 , a], a ) = ([q 1 , a], a , R), ở đây nếu a = 0 thì a = 1 và ngược lại. Ở trạng thái q 1 , M sẽ bỏ qua những ký tự đọc được nếu so sánh khác với ký tự đã đọc lần đầu tiên (đang lưu ở thành phần thứ hai của trạng thái) và di chuyển tiếp về phía phải. 3. δ ([q 1 , a], B) = ([q 1 , B], B, R) với a = 0 hoặc a = 1. Nếu M tìm thấy ký tự trắng sẽ chuyển sang trạng thái kết thúc [q 1 , B]. Chú ý rằng M không được định nghĩa δ ([q 1 , a], a) với a = 0 hoặc a = 1, vì như vậy sẽ bắt gặp một sự cố khi so sánh ký tự đang đọc và ký tự đã lưu trong bộ điều khiển hữu hạn tại lần đọc đầu tiên. Khi đó M treo và không đi đến trạng thái kết thúc. .II BĂNG NHIỀU RÃNH Một cách khác được nghĩ đến là băng của TM chứa nhiều rãnh. Mỗi ký tự của băng bao gồm một bộ, mỗi thành phần của bộ nằm trên một rãnh. Vì vậy, trong hình 1.1, mỗi ô được đầu đọc quét qua chứa 1 bộ [X, Y, Z]. Kỹ thuật lưu trữ trong bộ điều khiển hữu hạn sử dụng nhiều rãnh trên băng không phải mở rộng tính năng của TM, mà đơn giản đó là một phương pháp để dễ quan sát và hình dung. Ví dụ 1.2: Trên băng dùng nhiều rãnh, thông thường một rãnh lưu giữ dữ liệu, rãnh thứ hai dùng để đánh dấu ký tự đã “duyệt” hoặc có thể lưu trong rãnh một số ít những vị trí tương ứng với dữ liệu đã “duyệt”. Ví dụ đang xét sẽ minh hoạ rõ cách sử dụng rãnh thứ hai để nhận một ngôn ngữ phi ngữ cảnh. L wcw = {wcw | w is in (0 + 1) + } TM sẽ được thiết kế: M = (Q, Σ , Γ , δ , [q 1 , B], [B, B], {[q 9 , B]}) Trong đó: Q: là tập hợp các trạng thái: {q 1 , q 2 , …, q 9 } × {0, 1, B}, gồm những cặp chứa một trạng thái điều khiển q i và thành phần dữ liệu: 0, 1 hoặc ký tự trắng. Chúng GVHD: PGS.TS PHAN HUY KHÁNH 4 Tiểu luận môn Lý thuyết tính toán 5 ta một lần nữa sử dụng kỹ thuật lưu trữ trong bộ điều khiển hữu hạn, như vậy chúng ta cho phép một trạng thái ghi nhớ một ký tự đầu vào 0 hoặc 1. Γ: Tập hợp các ký tự gồm: {B, ∗ } × {0, 1, c, B}. Thành phần đầu tiên có thể là ký tự trắng (B) hoặc đã đánh dấu ( ∗ ). Dùng dấu ∗ để đánh dấu những ký tự đã duyệt qua trong w (gồm chuỗi các ký tự 0 và 1) nằm về hai phía của c có giống nhau hay không. Thành phần thứ hai là một trong những ký tự đã được mô tả ở trên. Nghĩa là nếu chúng ta có ký hiệu [B, X] thì X là một trong các ký tự 0, 1, c hoặc B. ∑: ký tự nhập [B, 0], [B, 1]. Như đã đề cập đến, chúng ta định nghĩa tương ứng với 0 và 1. δ: Hàm chuyển, được định nghĩa bởi các luật sau, trong đó a và b đại diện cho 0 hoặc 1: 1. δ ([q 1 , B], [B, a]) = ([q 2 , a], [ ∗ , a], R). Ở trạng thái khởi động M tìm thấy ký tự a (có thể là 0 hoặc 1), lưu a vào trong bộ điều khiển hữu hạn, chuyển sang trạng thái q 2 và đánh dấu vị trí vừa đọc bằng cách thay B bằng ∗ , di chuyển về phía phải. 2. δ ([q 2 , a], [B, b]) = ([q 2 , a], [B, b], R). M di chuyển về phải, tìm ký tự c. Chú ý rằng a, b có thể hoặc 0 hoặc 1 nhưng không thể là c. 3. δ ([q 2 , a], [B, c]) = ([q 3 , a], [ ∗ , b], R). M tìm thấy c, chuyển thành trạng thái q 3 và đi tiếp về phía phải. 4. δ ([q 3 , a], [ ∗ , b]) = ([q 3 , a], [ ∗ , b], R). M di chuyển qua tất cả các ký tự đã đánh dấu và giữ trạng thái q 3 . 5. δ ([q 3 , a], [B, a]) = ([q 4 , B], [ ∗ , a], L). Nếu M gặp ký tự đầu tiên chưa đánh dấu giống với ký tự đang lưu trong bộ điều khiển hữu hạn thì đánh dấu ký tự này. Chuyển sang trạng thái q 4 đồng thời xoá dữ liệu trong bộ điều khiển hữu hạn, M chuyển sang trái. 6. δ ([q 4 , B], [ ∗ , a]) = ([q 4 , B], [ ∗ , a], L). M di chuyển về trái bỏ qua tất cả các ký tự đã đánh dấu, giữ nguyên trạng thái. 7. δ ([q 4 , B], [B, c]) = ([q 5 , B], [B, c], L). Khi M gặp c, chuyển sang trạng thái q 5 và đi tiếp về phía trái. Trong trạng thái q 5 , M gặp và giải GVHD: PGS.TS PHAN HUY KHÁNH 5 Tiểu luận môn Lý thuyết tính toán 6 quyết các trường hợp: các ký tự trong chuỗi phía trái c chưa đánh dấu hết hoặc đã đánh dấu xong. Nếu đã đánh dấu xong, vấn đề còn lại là kiểm tra chắc chắn chuỗi phía phải c cũng đã đánh dấu toàn bộ và đi vào trạng thái kết thúc. Nếu chưa, M tìm ký tự chưa đánh dấu phía trái nhất, đánh dấu và bắt đầu lặp lại ở trạng thái q 1 . 8. δ ([q 5 , B], [B, a]) = ([q 6 , B], [B, a], L). Trường hợp xảy ra khi tìm thấy phía trái c có ký tự chưa đánh dấu, M chuyển trạng thái q 6 và đi tiếp về phía trái tìm ký tự đã đánh dấu. 9. δ ([q 6 , B], [B, a]) = ([q 6 , B], [B, a], L). M tiếp tục về phái trái, bỏ qua những ký tự chưa đánh dấu. 10. δ ([q 6 , B], [ ∗ , a]) = ([q 1 , B], [ ∗ , a], R). Tìm thấy ký tự đánh dấu, M đi vào trạng thái q 1 , dịch phải để duyệt ký tự chưa đánh dấu phía trái nhất. 11. δ ([q 5 , B], [ ∗ , a]) = ([q 7 , B], [ ∗ , a], R). Nếu tìm thấy chuỗi phía trái c đã được đánh dấu toàn bộ, M dịch phải, chuyển thành trạng thái q 7 . 12. δ ([q 7 , B], [B, c]) = ([q 8 , B], [B, c], R). Gặp c, M tiếp tục dịch phải và đi vào trạng thái q 8 . 13. δ ([q 8 , B], [ ∗ , a]) = ([q 8 , B], [ ∗ , a], R). M giữ nguyên trạng thái q 8 , di chuyển qua tất cả các ký tự đã được đánh dấu được tìm thấy. 14. δ ([q 8 , B], [B, B]) = ([q 8 , B], [B, B], R). Ở trạng thái q 8 , nếu M gặp ký tự trắng (B) sẽ đi vào trạng thái q 9 – kết thúc, câu được chấp nhận. Nếu gặp bất kỳ ký tự nào khác, câu không được chấp nhận, M treo. .III CHƯƠNG TRÌNH CON Trong những chương trình máy tính nói chung, TM có thể thực thi một tập các thành phần tương tác hay những chương trình con. Một chương trình con của TM là một tập các trạng thái được thực thi đầy đủ. Trong đó bao gồm trạng thái bắt đầu và một trạng thái khác không có phép chuyển kế tiếp được xem như là trạng thái trở về GVHD: PGS.TS PHAN HUY KHÁNH 6 Tiểu luận môn Lý thuyết tính toán 7 để giao quyền điều khiển đến một tập trạng thái khác của cùng một TM hay một TM khác. Khi một chương trình con được gọi, trạng thái bắt đầu (q 0 ) sẽ thi hành. Vì TM không có kỹ thuật để nhớ địa chỉ trở về – trạng thái kế tiếp sau khi nó kết thúc, nên phải thiết kế TM yêu cầu một chương trình con được gọi tại một số trạng thái, tạo ra nhiều bản sao của chương trình con, mỗi bản sao là một tập các trạng thái mới, như vậy mỗi lần gọi là thực thi một bản sao khác nhau của chương trình con. Ví dụ 1.3: Thiết kế một TM thực hiện phép nhân. TM khởi động với chuỗi nhập trên băng 0 m 10 n 1 và kết thúc với chuỗi 0 mn trên băng. Nguyên tắc chung của giải thuật này là: 1. Trên băng, trong trường hợp tổng quát, dạng chuỗi 0 i 10 n 10 kn với mỗi số k nguyên dương. 2. Thay đổi 1 ký tự 0 trong nhóm đầu tiên thành B (blank: ký tự trắng) và thêm n ký tự 0 nối vào sau chuỗi, lúc này chuỗi có dạng: 0 i-1 10 n 10 (k+1)n . 3. Lặp lại bước 2 m lần, khi đó toàn bộ các ký tự 0 của nhóm đầu được thay bằng ký tự B và mn ký tự 0 được nối thêm vào sau chuỗi. 4. Bước cuối cùng thay nhóm đầu 10 n 1 bằng các ký tự B, kết thúc công việc. Biến ý tưởng giải thuật này thành chương trình con có tên Copy. Copy sẽ thực hiện bước 2 trong 4 bước trên. Chính xác hơn, chương trình con Copy sẽ chuyển dạng 0 m-k 1q 1 0 n 10 (k-1)n thành dạng 0 m-k 1q 5 0 n 10 kn . Hình 2 minh họa sự chuyển đổi của chương trình con Copy. Chương trình con này thay ký tự 0 đầu tiên ở chuỗi thành X, dịch chuyển sang phải trở thành q 2 và giữ trạng thái này cho đến khi tìm thấy một ký tự trắng, ghi 0, dịch trái, chuyển thành trạng thái q 3 để tìm X đã đánh dấu. Lặp lại chu kỳ trên ở trạng thái q 1 cho đến khi thay toàn bộ 0 phía trái thành X, gặp 1 chuyển thành trạng thái q 4 , dịch trái, thay X trở thành 0 và kết thúc ở trạng thái q 5 . GVHD: PGS.TS PHAN HUY KHÁNH 7 Tiểu luận môn Lý thuyết tính toán 8 ( Hình 2 - Chương trình con Copy) TM thực hiện hoàn chỉnh phép nhân bắt đầu ở trạng thái q 0 . Đầu tiên trong vài bước di chuyển từ dạng q 0 0 m 10 n thành 0 m-1 1q 1 0 n 1. Những bước chuyển được minh họa ở hình 1.3, bên trái của chương trình con; những bước dịch chuyển này chỉ gồm trạng thái q 0 và q 6 . Bên phải của chương trình con trên hình 1.3, gồm trạng thái q 7 đến q 12 . Mục đích trạng thái q 7 , q 8 và q 9 nắm lấy điều khiển sau khi chương trình con Copy ghi khối n ký tự 0 và ở trạng thái 0 m-k 1q 5 0 n 10 kn . Cuối cùng, những trạng thái này sẽ đưa về trạng thái q 0 0 m-k 10 n 10 kn . Lúc này chu trình bắt đầu lần nữa và chương trình con Copy được gọi để lặp lại việc chép khối n ký tự 0 vào cuối chuỗi. Đặc biệt, tại trạng thái q 8 , TM phải tìm thấy toàn bộ m ký tự 0 đã được thay bằng B, trong trường hợp này chuyển sang trạng thái q 10 , trạng thái q 11 sẽ thay chuỗi 10 n 1 thành B và đi vào trạng thái dừng q 12 , dạng chuỗi q 12 0 mn . GVHD: PGS.TS PHAN HUY KHÁNH 8 [...].. .Tiểu luận môn Lý thuyết tính toán 9 ( Hình 3 - Chương trình thực hiện phép nhân hoàn chỉnh dùng chương trình con Copy) GVHD: PGS.TS PHAN HUY KHÁNH 9 Tiểu luận môn Lý thuyết tính toán 10 PHẦN II: BÀI TẬP IV PHÁT BIỂU BÀI TOÁN *Bài tập 8.3.3 (p.336): Thiết kế một chương trình con để di chuyển một đầu TM từ vị trí... trình con “GoToRight”) GVHD: PGS.TS PHAN HUY KHÁNH 12 Tiểu luận môn Lý thuyết tính toán 13 TÀI LIỆU THAM KHẢO [1] John E Hopcroft, Rajeev Motwani, Jefferey D Ullman, Introduction to Automata Theory, Languages, and Computation, Addison Wesley, 2001 [2] PGS.TS Phan Huy Khánh, Giáo trình Lý thuyết tính toán, ĐH Đà Nẵng, 1999 [3] PGS.TS Phan Huy Khánh, Lý thuyết ngôn ngữ hình thức và ôtômat, ĐH Đà Nẵng, 1997... ta chắc chắn không quét qua một số 0 Hai trạng thái này có thể kết hợp lại thành một trạng thái chung Ngoài ra, chương trình con không phải là một giải pháp GVHD: PGS.TS PHAN HUY KHÁNH 11 Tiểu luận môn Lý thuyết tính toán 12 hoàn hảo mà chúng ta muốn, và sẽ có một số bước nhảy qua lại trên băng không cần thiết Dưới đây là phần còn lại của bảng chuyển đổi state q0 q5 q6 q4 Start q0 0 (q5,0,R) (q1,0,L)... về bên trái ở trạng thái q4, là trạng thái kết thúc của chương trình con state q1 q2 q3 0 (q2,0,R) (q2,0,R) (q4,0,L) GVHD: PGS.TS PHAN HUY KHÁNH 1 (q3,1,R) (q4,1,L) B (q3,B,R) (q4,B,L) 10 Tiểu luận môn Lý thuyết tính toán 11 0/0→ Start 0/0 → q1 q4 0/0 ← B/B ← 1/1 ← q2 1/1 → B/B → q3 ( Hình 4 - Chương trình con “GoToRight”) Hình 4 minh họa sự chuyển đổi của chương trình con GoToRight Chương trình con... có biểu tượng băng khác hơn 0, 1, và B (trống) Sau đó, sử dụng chương trình con này để thiết kế một TM chấp nhận tất cả các chuỗi 0 và 1 mà không có hai số 1 liên tiếp trong một hàng .V GIẢI QUYẾT BÀI TOÁN Chương trình con (GoToRight): Chú ý rằng bởi vì các yêu cầu về kỹ thuật của chương trình con và vì TM không cho phép đầu đọc của nó đứng yên Khi thấy 1 ký tự khác 0, TM sẽ chuyển sang trạng thái q3, . KHÁNH 8 Tiểu luận môn Lý thuyết tính toán 9 ( Hình 3 - Chương trình thực hiện phép nhân hoàn chỉnh dùng chương trình con Copy) GVHD: PGS.TS PHAN HUY KHÁNH 9 Tiểu luận môn Lý thuyết tính toán 10 PHẦN. TẠO ĐẠI HỌC ĐÀ NẴNG ~~~oOo~~~ TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN ĐỀ TÀI PROGRAMMING TECHNIQUES FOR TURING MACHINES GIẢNG VIÊN : PGS.TS PHAN HUY KHÁNH LỚP : KHOA HỌC MÁY TÍNH - K24 NHÓM HỌC VIÊN • TRẦN. tả có hệ thống hơn và chương trình TM cũng dễ hiểu hơn. Nhóm 5 – Lớp KHMT.K24 2 Tiểu luận môn Lý thuyết tính toán 3 (Hình 1 - TM có bộ điều khiển hữu hạn lưu trữ dữ liệu và nhiều track) Ví dụ

Ngày đăng: 01/02/2015, 00:22

Từ khóa liên quan

Mục lục

  • GIỚI THIỆU

  • PHẦN I: LÝ THUYẾT CÁC KỸ THUẬT XÂY DỰNG MÁY TURING

  • PHẦN II: BÀI TẬP

  • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan