1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn học lý thuyết tính toán THE TURING MACHINE

18 378 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 275,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kết quả là, chúng ta cần xây dựng lại lý thuyết không giải được của chúng ta, không dựa trên các chương trình trong C hoặc ngôn ngữ khác, nhưng dựa trên một mô hình rất đơn giản của một

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC ĐÀ NẴNG

TIỂU LUẬN MÔN HỌC

LÝ THUYẾT TÍNH TOÁN

ĐỀ TÀI:

8.2 THE TURING MACHINE

Giảng viên hướng dẫn : PGS.TS Phan Huy Khánh Nhóm học viên: Nguyễn Nương Quỳnh

Lê Nam Trung Nguyễn Duy Linh Hoàng Đình Tuyền Lớp: Khoa học Máy tính - K24 Quảng Bình Khóa: 2011-2013

Quảng Bình, tháng 12 năm 2012

Trang 2

MỤC LỤC

8.2 Máy Turing 2

8.2.1 Các Quest Quyết định Tất cả các câu hỏi toán học 3

8.2.2 Ký hiệu cho Máy Turing 4

8.2.3 Mô tả tức thời cho máy Turing 6

8.2.4 Sơ đồ quá trình chuyển đổi cho máy Turing 10

8.2.5 Ngôn ngữ của máy Turing 14

8.2.6 Máy Turing và Tạm dừng 15

8.2.7 Các bài tập cho Phần 8.2 16

Trang 3

8.2 Máy Turing

Mục đích của lý thuyết của các vấn đề không giải được là không chỉ thiết lập sự tồn tại các vấn đề như vậy - một ý tưởng trí tuệ thú vị của riêng nó – mà còn để cung cấp hướng dẫn cho các lập trình viên về những gì họ có thể hay không thể thực hiện thông qua lập trình Lý thuyết này cũng có tác động tích cực khi ta thảo luận, như chúng ta quy định trong chương 10, các vấn đề mặc dù giải quyết được, vẫn cần nhiều thời gian để giải quyết chúng Những vấn đề này, được gọi là "vấn đề nan giải", có xu hướng trình bày khó khăn hơn cho các lập trình viên và các nhà thiết kế hệ thống để làm các vấn đề không thể giải quyết

Lý do là, trong khi các vấn đề không thể giải quyết thường khá rõ ràng, và giải pháp của họ hiếm khi cố gắng trong thực tế, những vấn đề nan giải đang phải đối mặt hàng ngày

Hơn nữa, người ta thường mang lại thay đổi nhỏ trong các yêu cầu hoặc các giải pháp dựa trên kinh nghiệm cải tiến Do đó, người thiết kế khá thường xuyên phải đối mặt với việc quyết định có hoặc không có một vấn đề là trong lớp nan giải, và phải làm gì với nó, nếu như vậy

Chúng ta cần các công cụ cho phép chứng minh các câu hỏi không thể giải quyết hoặc khó giải quyết hàng ngày Các công nghệ được giới thiệu trong phần 8.1 là hữu ích cho các câu hỏi đối phó với các chương trình, nhưng nó không dịch một cách dễ dàng đến các vấn đề trong các lĩnh vực không liên quan Ví dụ, chúng ta sẽ gặp khó khăn trong việc giảm vấn đề hello-world các câu hỏi cho dù ngữ pháp là mơ hồ

Kết quả là, chúng ta cần xây dựng lại lý thuyết không giải được của chúng

ta, không dựa trên các chương trình trong C hoặc ngôn ngữ khác, nhưng dựa trên một mô hình rất đơn giản của một máy tính, được gọi là máy Turing Thiết

bị này chủ yếu là tự động hữu hạn có một băng dài vô hạn mà trên đó nó có thể đọc và ghi dữ liệu Một trong những lợi thế của máy Turing qua các chương trình là đại diện của những gì có thể được tính là máy Turing là đủ đơn giản mà chúng ta có thể đại diện cho cấu hình của nó một cách chính xác, bằng cách sử

Trang 4

dụng một ký hiệu đơn giản giống như ID của PDA Trong khi đó, các chương trình C có một trạng thái, liên quan đến tất cả các biến trong bất cứ trình tự của các chức năng gọi đã được thực hiện, các ký hiệu để mô tả những trạng thái quá phức tạp để cho phép chúng tôi làm cho dễ hiểu, chứng minh chính thức

Sử dụng các ký hiệu máy Turing, chúng ta sẽ chứng minh một số vấn đề không giải quyết được xuất hiện không liên quan đến lập trình Ví dụ, chúng ta

sẽ hiển thị tại mục 9,4 rằng "Vấn đề tương ứng của bài viết", một câu hỏi đơn giản liên quan đến hai danh sách các chuỗi, là không giải quyết được, và vấn đề này làm cho nó dễ dàng để hiển thị câu hỏi về ngữ pháp, chẳng hạn như sự mơ

hồ, là không giải quyết được tương tự như vậy, khi chúng tôi giới thiệu các vấn

đề khó, chúng ta sẽ thấy rằng câu hỏi nào đó, dường như có ít để làm với tính toán (ví dụ, khả năng đáp ứng các công thức boolean), là khó chữa

8.2.1 Các Quest để quyết định tất cả các câu hỏi toán học

Bước vào thế kỷ 20, nhà toán học D.Hilbert hỏi liệu đã có thể tìm thấy một thuật toán để xác định sự thật hay dối trá của bất kỳ mệnh đề toán học Đặc biệt, ông hỏi nếu có một cách để xác định xem bất kỳ công thức trong tính toán vị đầu tiên để áp dụng cho số nguyên, là sự thật Kể từ khi các tính toán vị đầu tiên

để tính toán các số nguyên là đủ mạnh để thể hiện báo cáo như "ngữ pháp này là

mơ hồ", hay "Chương trình này in chào, thế giới", có phải Hilbert đã thành công, những vấn đề này sẽ có các thuật toán mà chúng ta biết không tồn tại

Tuy nhiên, vào năm 1931, K Gödel công bố định lý bất toàn nổi tiếng của ông Ông đã xây dựng một công thức tính toán vị áp dụng cho số nguyên, trong

đó khẳng định rằng công thức đó có thể được chứng minh không phải và cũng không bác bỏ trong các tính toán Gödel kỹ thuật tương tự như việc xây dựng các chương trình mâu thuẫn sefl-H2 trong phần 8.1.2, nhưng giao dịch với các chức năng trên các số nguyên, chứ không phải với các chương trình C

Các tính toán vị không phải là khái niệm duy nhất mà các nhà toán học đã

có "bất kỳ tính toán có thể" Trong thực tế tính toán vị, khai báo chứ không phải

là tính toán, phải cạnh tranh với một loạt các chỉ số, bao gồm cả "một phần các

Trang 5

hàm đệ quy", thay vì một ký hiệu giống như ngôn ngữ lập trình, và các ký hiệu tương tự khác Năm 1936, sáng Turing đề xuất các máy Turing là một mô hình

"bất kỳ tính toán có thể" Mô hình này giống như máy tính, chứ không phải là chương trình như thế, mặc dù điện tử đúng , hoặc thậm chí máy tính điện tử là của những năm trong tương lai (Turing đã tự mình tham gia trong việc xây dựng của máy như vậy trong Thế chiến thứ II)

Thật thú vị, tất cả các đề nghị nghiêm trọng cho một mô hình tính toán có sức mạnh tương tự, có nghĩa là, họ tính toán các chức năng tương tự hoặc nhận

ra các ngôn ngữ tương tự Giả định Unprovable rằng bất kỳ cách thức chung để tính toán sẽ cho phép chúng ta tính toán chỉ có một phần các hàm đệ quy (hoặc tương đương, máy Turing hoặc máy tính hiện đại có thể tính toán) được biết như

là giả thuyết của Church (sau nhà lý luận học A Church) hoặc luận án Church-Turing

8.2.2 Ký hiệu cho Máy Turing

Chúng ta có thể hình dung một máy Turing như trong hình 8.8 Máy bao gồm một điều khiển hữu hạn, có thể trong bất kỳ tập hợp hữu hạn các trạng thái

Có một băng được chia thành các hình vuông hoặc các ô, mỗi ô có thể nắm giữ bất kỳ một trong hữu hạn các biểu tượng

Hình 8.8: Máy Turing Ban đầu, đầu vào, là một chuỗi hữu hạn chiều dài của các biểu tượng được chọn từ bảng chữ cái đầu vào, được đặt trên băng Tất cả các ô băng khác, mở rộng vô hạn về bên trái và bên phải, ban đầu giữ một biểu tượng đặc biệt được gọi là trống Trống là một biểu tượng băng, nhưng không phải là một biểu tượng

Finite control

… B B X1 X2 Xi Xn B B …

Trang 6

đầu vào, và có thể có biểu tượng băng khác ngoài những biểu tượng đầu vào và trống

Có một đầu băng luôn là vị trí tại một trong những ô của băng Máy Turing được cho là được quét ô đó Ban đầu, đầu băng là các ô ngoài cùng bên trái chứa các đầu vào

Một di chuyển của máy Turing là một chức năng của trạng thái kiểm soát hữu hạn và biểu tượng băng quét Trong một động thái, máy Turing sẽ:

1 Thay đổi trạng thái Trạng thái tiếp theo tùy chọn có thể giống như trạng thái hiện tại

2 Viết một biểu tượng băng trong các ô được quét Biểu tượng băng này thay thế bất cứ biểu tượng từng có trong ô đó Tùy chọn, biểu tượng được viết vào có thể là giống như biểu tượng hiện đang có

3 Di chuyển đầu băng sang trái hoặc phải Trong hình thức của chúng ta, chúng ta yêu cầu di chuyển, và không cho phép đầu băng vẫn đứng yên Hạn chế này không hạn chế những gì một máy Turing có thể tính toán, từ bất kỳ trình tự

di chuyển với một đầu băng cố định có thể ngưng tụ, cùng với sự di chuyển của đầu băng tiếp theo, vào một thay đổi trạng thái duy nhất, một biểu tượng băng mới, và di chuyển sang trái hoặc phải

Các ký hiệu chính thức chúng ta sẽ sử dụng cho một máy Turing (TM) là tương tự như được sử dụng cho automat hữu hạn hoặc PDA Chúng tôi mô tả một TM bởi các 7 thành phần

M = (Q, Σ, Г, δ, q0, B, F)

Có các thành phần có ý nghĩa sau đây:

Q: tập hữu hạn của các trạng thái kiểm soát hữu hạn

Σ: tập hợp hữu hạn các ký hiệu đầu vào

Г: tập hợp đầy đủ các biểu tượng băng;

Σ: luôn luôn là một tập hợp con của Г

δ: chức năng chuyển đổi Những lập luận của δ (q, X) là một trạng thái q và một băng biểu tượng X Giá trị của δ(q, X), nếu nó được định nghĩa, là một bộ

ba (p, Y, D), trong đó:

Trang 7

1 p là trạng thái tiếp theo, trong Q

2 Y là biểu tượng, trong Г, được viết trong các ô được quét, thay thế bất cứ biểu tượng gì đang có

3 D là một định hướng, hoặc L hoặc R, đứng "bên trái" hoặc "phải" tương ứng, và nói với chúng ta hướng di chuyển của đầu đọc

q0: Trạng thái bắt đầu, một thành viên của Q, trong đó kiểm soát hữu hạn nếu tìm thấy ban đầu

B: Các biểu tượng trống Biểu tượng này là trong Г nhưng không phải trong Σ, tức là, nó không phải là một biểu tượng đầu vào Trống xuất hiện ban đầu trong tất cả, nhưng số lượng hữu hạn của các ô ban đầu nắm giữ các ký hiệu đầu vào

F: tập hợp các trạng thái cuối cùng hoặc trạng thái chấp nhận, một tập hợp con của Q

8.2.3 Mô tả tức thời cho máy Turing

Để mô tả chính thức những gì một máy Turing, chúng ta cần phải phát triển một ký hiệu cho các cấu hình hoặc các mô tả tức thời (ID), giống như các ký hiệu đã phát triển cho PDA Với máy Turing, về nguyên tắc, có một băng dài vô tận, có thể tưởng tượng rằng không thể mô tả cấu hình của một máy Turing một cách thật ngắn gọn Tuy nhiên, sau bất kỳ số lượng hữu hạn các di chuyển, máy Turing chỉ có thể thăm một số hữu hạn các ô, mặc dù vậy số lượng các ô được đến thăm có thể phát triển vượt ra ngoài bất kỳ giới hạn hữu hạn nào Như vậy, trong mỗi ID, có vô hạn tiền tố và vô hạn hậu tố các ô mà chưa bao giờ được duyệt Những ô này đều phải nắm giữ hoặc các khoảng trắng hoặc một số hữu hạn các ký hiệu đầu vào Như vậy, chúng ta hiển thị trong một ID chỉ các ô giữa tận cùng bên trái và tận cùng bên phải khoảng trắng Dưới những điều kiện đặc biệt, khi đầu đọc đang quét một trong những khoảng trắng hàng đầu hoặc cuối, một số hữu hạn các khoảng trắng từ bên trái hoặc bên phải của các ký hiệu không phải khoảng trắng trên băng cũng phải được bao gồm trong các ID

Trang 8

Ngoài việc mô tả băng, chúng ta phải mô tả sự kiểm soát hữu hạn và vị trí đầu đọc băng Để làm như vậy, chúng ta nhúng các trạng thái trong băng, và đặt

nó ngay bên trái của các ô đã được quét Để phân biệt với chuỗi băng cộng với trạng thái, chúng ta phải đảm bảo rằng chúng ta không sử dụng như là một biểu tượng trạng thái bất kỳ đó cũng là một biểu tượng băng Tuy nhiên, nó rất dễ dàng để thay đổi tên của các trạng thái để không có gì chung với các ký hiệu băng, từ khi hoạt động của máy Turing không phụ thuộc vào tên gọi các trạng thái Do đó, chúng ta sẽ sử dụng chuỗi X1X2 Xi-1qXiXi +1 Xn để mô tả cho một

ID, trong đó:

1 q là trạng thái của máy Turing.

2 Đầu đọc băng quét qua ký hiệu thứ i từ trái sang

3 X1X2 Xn là một phần của băng giữa tận cùng bên trái và tận cùng bên phải là ký hiệu trắng Như một ngoại lệ, nếu đầu đọc ở bên trái của tận cùng bên trái không phải là ký hiệu trắng hoặc bên phải tận cùng bên phải không phải là

ký hiệu trắng, thì tiền tố hoặc hậu tố X1X2 Xn sẽ được để trống, và i sẽ tương ứng là 1 hoặc n

Chúng ta mô tả sự di chuyển của máy Turing M = (Q, Σ, Γ, δ, Q0, B, F) bởi

ký hiệu├M đã được sử dụng cho PDA Khi máy Turing được hiểu, chúng ta sẽ sử dụng ký hiệu ├ để phản ánh sự di chuyển Thông thường, ├M* hoặc chỉ ├*, sẽ được sử dụng để chỉ không, một hay nhiều bước di chuyển của máy Turing M

Cho rằng δ(q, Xq, X i ) = (q, Xp,Y,L) ) tức là bước dịch chuyển tiếp theo là sang trái.

Thì :

X 1 X 2 …X i-1 q X i X i+1 …X n ├M X 1 X 2 …X i-2 p X i-1 Y X i+1 …X n

Chú ý động thái này phản ánh sự thay đổi trạng thái p như thế nào và thực

tế rằng người đầu đọc băng được đặt tại vị trí ô i-1 Có hai trường hợp ngoại lệ quan trọng:

Nếu i =1, thì M dịch chuyển đến ký tự trắng ở bên trái của X 1 Trong trường hợp này,

q X 1 X 2 …X n ├M p B Y X 2 …X n

Trang 9

1 Nếu i = n và Y=B, thì ký hiệu B ghi đè lên X n tham gia vào chuỗi vô hạn các khoảng trắng theo sau và không xuất hiện trong ID tiếp theo Do đó:

X 1 X 2 …X n-1 q X n ├M X 1 X 2 …X n-2 p X n-1

Bây giờ, cho rằng δ(q, Xq, X i ) = (q, Xp,Y,R)) ; tức là bước dịch chuyển tiếp theo là

sang phải Thì:

X 1 X 2 …X i-1 q X i X i+1 …X n ├M X 1 X 2 …X i-1 Y p X i+1 …X n

Ở đây, bước dịch chuyển phản ánh sự thay đổi rằng đầu đọc đã dịch chuyển

đến ô i+1 Lại có hai ngoại lệ quan trọng:

Nếu i =n, thì ô thứ 1+1 chứa ký tự trắng , và ô đó không thuộc phần của ID

trước đó Do đó, thay vì có:

X 1 X 2 …X n-1 q X n ├M X 1 X 2 …X n-1 Y p B

Nếu i = 1 và Y=B, thì ký hiệu B ghi đè lên X 1 tham gia vào chuỗi vô hạn

các khoảng trắng trước đó và không xuất hiện trong ID tiếp theo Do đó:

q X 1 X 2 …X n ├M p X 2 …X n

Ví dụ 8.2: Chúng ta sẽ thiết kế một máy Turing và xem cách nó hoạt động trên một đầu vào điển hình Máy Turing sẽ chấp nhận ngôn ngữ {0n1n | n≥ 1}

Ban đầu, nó được cung cấp một chuỗi hữu hạn 0 và 1 trên băng, trước và sau bởi các khoảng trắng đến vô cùng Luân phiên, TM sẽ thay mỗi ký tự 0 bởi X và mỗi

ký tự 1 bởi Y, cho đến khi tất cả các ký tự 0 và 1 đều được thay thế.

Chi tiết hơn, bắt đầu từ phía bên trái nhất của dãy dữ liệu vào, nó liên tục

thay đổi mỗi ký tự 0 bởi X và di chuyển về bên phải qua bất kỳ ký tự 0 và Y nào được tìm thấy, cho đến khi nó tìm thấy ký tự 1 Thay 1 bởi Y , và chuyển sang trái, qua bất kỳ ký tự Y và 0, đến khi tìm thấy ký tự X Lúc đó, nó tìm kiếm ký tự

0 ngay phía bên phải, và nếu tìm thấy một ký tự, thay nó bởi X và lặp lại tiến

trình, thay 1 bởi Y.

Nếu dữ liệu vào khác ký tự trắng và khác 0*1*, máy Turing sẽ bị lỗi Tuy

nhiên, nếu nó kết thúc thay đổi tất cả các ký tự 0 bởi X và trong cùng một vòng

nó thay ký tự 1 cuối cùng bởi Y, sau đó nó tìm thấy đầu vào của nó có dạng 0n1n

và chấp nhận Đặc tả chính thức của máy Turing M là:

M= ({q0,q1,q2,q3,q4}, {0,1},{0,1,X,Y,B}, δ, q0, B, {q4})

Trang 10

Trong đó δ được mô tả trong bảng mục 8.9

M thực hiện tính toán của nó, các phần của băng nơi đầu đọc của M đã duyệt qua, sẽ luôn là một chuỗi các ký hiệu được mô tả bởi các biểu thức chính

quy X*0*Y*1* Nghĩa là, sẽ có một số ký tự 0 được thay thế bởi X, và theo sau

bởi một số ký tự 0 chưa được thay thế bởi X Và cũng vậy, có một số ký tự 1 được thay thế bởi Y, một số ký tự 1 chưa được thay thế bởi Y Có thể có hoặc không có một số ký tự 0 và 1 theo sau.

Bảng 8.9: TM chấp nhận {0n1n | n≥ 1}

Khởi động bởi trạng thái q 0, M cũng nhập từ trạng thái q0 mỗi khi nó quay

về ký tự 0 còn lại bên trái nhất Nếu M đang ở trạng thái q 0 và quét qua ký tự 0,

theo quy tắc góc trên bên trái trong hình 8.9 thì nó sẽ dịch chuyển đến trạng thái

q 1 , thay 0 bởi X, và chuyển sang phải Mỗi lần ở trạng thái q 1, M chuyển sang

phải qua tất cả các ký tự 0 và Y được tìm thấy trên băng, lưu lại trạng thái q 1

Nếu M tìm thấy ký tự X hoặc B, nó lỗi Tuy nhiên, nếu M thấy 1 ở trạng thái q 1,

nó thay 1 bởi Y, chuyển sang trạng thái q 2, và bắt đầu dịch chuyển sang trái

Ở trạng thái q 2 , M dịch chuyển trái qua các ký tự 0 và Y, lưu lại lại ở trạng thái q 2 Khi M nhận ra ký tự X ở bên phải nhất, đánh dấu vị trí cuối cùng bên

phải của dãy các ký tự 0 đã được thay bởi X, M quay về trạng thái q 0 và chuyển sang phải Có hai trường hợp:

1 Nếu M thấy ký tự 0, nó lặp lại chu kỳ phù hợp đã được mô tả.

2 Nếu M thấy ký tự Y, nó đã thay đổi tất cả ký tự 0 bởi X Nếu tất cả các ký

tự 1 đã được thay bởi Y, thì đầu vào đã ở dạng 0n1n, và M chấp nhận Do đó, M

chuyển sang trạng thái q 3 , và di chuyển sang phải, qua các ký tự Y Nếu ký tự đầu tiên khác Y, M xem là ký tự trắng, sau đó thực sự đã có một số lượng tương đương ký tự 0 và 1, vì vậy, M chuyển sang trạng thái q và chấp nhận Mặt khác,

Ngày đăng: 23/03/2015, 13:29

HÌNH ẢNH LIÊN QUAN

Hình 8.8: Máy Turing Ban đầu, đầu vào, là một chuỗi hữu hạn chiều dài của các biểu tượng được chọn từ bảng chữ cái đầu vào, được đặt trên băng - Tiểu luận môn học lý thuyết tính toán THE TURING MACHINE
Hình 8.8 Máy Turing Ban đầu, đầu vào, là một chuỗi hữu hạn chiều dài của các biểu tượng được chọn từ bảng chữ cái đầu vào, được đặt trên băng (Trang 5)
Hình 8.11: Một máy Turing tính chức năng thích hợp-trừ. - Tiểu luận môn học lý thuyết tính toán THE TURING MACHINE
Hình 8.11 Một máy Turing tính chức năng thích hợp-trừ (Trang 14)

TỪ KHÓA LIÊN QUAN

w