Tải bản đầy đủ (.doc) (26 trang)

tiểu luận môn lý thuyết tính toán máy turing

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (424.9 KB, 26 trang )

Tiểu luận môn học Lý Thuyết Tính Toán
BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
Trường Đại Học Bách Khoa
Khoa Công Nghệ Thông Tin
Môn học:
LÝ THUYẾT TÍNH TOÁN
Đề tài:
MÁY TURING
Giảng viên hướng dẫn : TS. PHAN HUY KHÁNH
Nhóm thực hiện : Nhóm 02
LÊ VĂN LINH
MAI VĂN TÙNG
HUỲNH ANH TUẤN
Lớp : Khoa học máy tính
Niên khóa : 2011 - 2013
Nhóm 02 – Lớp KHMT Khoá 24 Trang 1
Đà Nẵng, 05/2012
Tiểu luận môn học Lý Thuyết Tính Toán
MỤC LỤC
ĐỀ TÀI: 1
MỤC LỤC 2
LỜI MỞ ĐẦU 3
PHẦN 1. LÝ THUYẾT 4
8.2.1 TÌM QUYẾT ĐỊNH CHO TẤT CẢ CÁC CÂU HỎI TOÁN HỌC 5
8.2.2 KÝ HIỆU CHO CÁC MÁY TURING 6
8.2.3 MÔ TẢ TỨC THỜI CHO MÁY TURING 8
8.2.4 NHỮNG SƠ ĐỒ CHUYỂN TIẾP CHO MÁY TURING 13
8.2.5 NGÔN NGỮ CỦA MÁY TURING 17
8.2.6 MÁY TURING VÀ SỰ DỪNG 18
PHẦN 2. BÀI TẬP 20


2.1. BÀI 8.2.1 20
2.2. BÀI 8.2.3 23
TÀI LIỆU THAM KHẢO 26
Nhóm 02 – Lớp KHMT Khoá 24 Trang 2
Tiểu luận môn học Lý Thuyết Tính Toán
LỜI MỞ ĐẦU
Nhóm 02 thực hiện việc nghiên cứu tài liệu “Introduction to Automata
Theory, Languages and Computation”, phần 8.2 (p.316 – 328).
Nội dung chính của tiểu luận bao gồm:
Phần 1. LÝ THUYẾT
Máy Turring
8.2.1 Tìm quyết định cho tất cả các câu hỏi toán học.
8 2.2 Ký hiệu cho các máy Turing.
8.2.3 Mô tả tức thời cho máy Turing.
8.2.4 Những sơ đồ chuyển tiếp cho máy Turing.
8.2.5 Ngôn ngữ của máy Turing.
8.2.6 Máy Turing và sự dừng.
Phần 2. BÀI TẬP
Bài tập 8.2.1 (p.328) và 8.25 (p. 329)
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 02 đã 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.2 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 02 – Lớp KHMT Khóa 24
Lê Văn Linh
Mai Văn Tùng
Huỳnh Anh Tuấn
Nhóm 02 – Lớp KHMT Khoá 24 Trang 3

Tiểu luận môn học Lý Thuyết Tính Toán
PHẦN 1. LÝ THUYẾT
MÁY TURING
Mục đích của các lý thuyết của các vấn đề không thể quyết định là không
chỉ để thành lập sự tồn tại của vấn đề như vậy - một ý tưởng về trí tuệ thú vị ở
bên phải của riêng của nó -nhưng để cung cấp hướng dẫn cho các lập trình viên
về những gì họ có thể hoặc có thể không được có thể thực hiện thông qua lập
trình. Lý thuyết này cũng có tác động lớn khi chúng ta thảo luận, chúng tôi quy
định tại chương 10, vấn đề là mặc dù có thể quyết định, yêu cầu số lượng lớn 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 lớn cho các lập trình và hệ thống thiết kế so với các
vấn đề không thể quyết định. Lý do là, trong khi các vấn đề không thể quyết định
thường khá rõ ràng như vậy, và giải pháp của họ hiếm khi thực nghiệm trong
thực tế, những vấn đề khó đang phải đối mặt mỗi ngày. Hơn nữa, họ thường
mang lại những thay đổi nhỏ trong các yêu cầu hoặc khám phá các giải pháp. Vì
vậy, những người thiết kế thường xuyên phải đối mặt với việc phải quyết định có
hay không một vấn đề là trong lớp khó chữa, và phải làm gì về nó, nếu như vậy.
Chúng ta cần các công cụ mà sẽ cho phép chúng ta để chứng minh câu hỏi
không thể quyết định hàng ngày hoặc khó chữa. Các công nghệ đã được giới
thiệu tại mục 8.1 rất 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ẽ giảm được khó khăn các câu hỏi trong bài toán hello-
world cho dù ngữ pháp là mơ hồ.
Kết quả là, chúng ta cần phải xây dựng lại lý thuyết không thể quyết định
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áy tính có mô hình rất đơn giản đượ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 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 cấu hình của nó một cách chính xác, bằng cách sử dụng một ký

Nhóm 02 – Lớp KHMT Khoá 24 Trang 4
Tiểu luận môn học Lý Thuyết Tính Toán
hiệu đơn giảngiống như ID của một PDA. Trong so sánh, trong khi chương trình
C có một trạng thái, liên quan đến tất cả các biến theo trình tự của lời gọi hàm
được thực hiện, các ký hiệu cho mô tả các trạng thái quá phức tạp để cho phép
chúng ta dễ hiểu, chính thức chứng minh.
Sử dụng các ký hiệu máy Turing, chúng ta sẽ chứng minhbài toán không
thể quyết định được xuất hiện không liên quan đến lập trình. Một ví dụ, mà
chúng ta sẽ thấy trong phần 9.4 là "Vấn đề tương ứng của Bưu chính", một câu
hỏi đơn giản liên quan đến hai danh sách các chuỗi, là không thể quyết định
đượ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 thể quyết định được. Tương tự, khi chúng tôi giới
thiệu các vấn đề khó, chúng ta sẽ thấy rằng một số câu hỏi, dường như có ít để
làm với tính toán (ví dụ như, thỏa mãn công thức của boolean), là khó chữa.
8.2.1 Tìm quyết định cho 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 có thể tìm thấy một thuật
toán để xác định sự thật hay là dối trá bất kỳ lời tuyên bố toán học nào. Đặc biệt,
ông hỏi nếu có một cách để xác định xem bất kỳ công thức nào trước: thứ tự các
phép tính toán, áp dụng số nguyên, là sự đúng. Kể từ khi thứ tự các phép tính
toán là các số nguyên thì đủ mạnh mẽ để thể hiện phát biểu như "ngữ pháp này là
mơ hồ," hoặc "chương trình này in hello world," Hilbert đã thành công, có
những vấn đề sẽ có các thuật toán mà đến bây giờ chúng ta biết không tồn tại.
Tuy nhiên, vào năm 1931, K. Godel 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 trong tính toán vị áp dụng cho số nguyên,
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 vị. Kỹ thuật của Gödel tương tự như việc xây
dựng các chương trình mâu thuẫn H2 tại mục 8.1.2, nhưng với các chức năng
trên số nguyên, chứ không phải với các chương trình C.
Tính toán vị không phải là khái niệm chỉ rằng các nhà toán học đã có "bất
kỳ tính toán có thể." Trong tính toán vị thực tế, được khai báo chứ không phải là

Nhóm 02 – Lớp KHMT Khoá 24 Trang 5
Tiểu luận môn học Lý Thuyết Tính Toán
tính toán, phải hoàn tất với một loạt các ký hiệu, bao gồm cả "đệ quy một phần
chức năng", giống một ký hiệu hơn là ngôn ngữ lập trình và những ký hiệu tương
tự khác. Năm 1936, A. M. Turing đề xuất các máy Turing như là một mô hình
của "bất kỳ tính toán có thể." Mô hình này giống như máy tính, hơn so với
chương trình, mặc dù đúng điện tử, hoặc thậm chí máy tính điện tử đã nhiều năm
trong tương lai (Turing đã tự mình tham gia vào xây dựng như là máy trong suốt
chiến tranh thế giới thứ II).
Thật thú vị, tất cả các đề nghị quan trọng cho một mô hình tính toán có
cùng một quyền lực, đó là, họ tính toán các hàm giống nhau hoặc công nhận
giống nhau ngôn ngữ. Giả định không thể chứng minh được 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ó hàm đệ quy một
phần (hoặc tương đương máy Turing máy hoặc các máy tính hiện đại ngày nay có
thể tính toán) được biết đến như giả thuyết của Giáo Hội (sau khi một luận sư A.
Church) hoặc luận văn Church-Turing.
8.2.2 Ký hiệu cho các máy Turing
Chúng tôi có thể hình dung một máy Turing như trong hình. 8.8. Máy này
bao gồm một điều khiển hữu hạn, mà có thể là trong bất kỳ của một tập hợp hữu
hạn của các trạng thái. Có một băng được chia thành các ô vuông hoặc các tế
bào, mỗi tế bào có thể chứa bất kỳ một trong số hữu hạn biểu tượng.

Hình 8.8
Ban đầu, đầu vào, mà 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 ô khác của
Nhóm 02 – Lớp KHMT Khoá 24 Trang 6
Tiểu luận môn học Lý Thuyết Tính Toán
băng, mở rộng vô hạn đến bên trái và bên phải, ban đầu chứa một biểu tượng đặc
biệt gọi là biểu tượng rỗng. Các biểu tượng rỗng là một biểu tượng băng, nhưng
không phải là một biểu tượng đầu vào, và có thể là biểu tượng băng khác, bên

cạnh những biểu tượng đầu vào và biểu tượng rỗng.
Một đầu băng là ô ở vị trí thứ nhất của băng. Máy Turing có thể quét các ô
trên băng. Ban đầu, đầu băng ở ô cùng nhất bên trái chứa dữ liệu đầu vào.
Di chuyển của máy Turing là một hàm của trạng thái về kiểm soát hữu hạn
và biểu tượng của 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ể là tương tự như
trạng thái hiện tại.
2. Viết một biểu tượng băng trong các tế bào quét. Biểu tượng băng này
thay thế những biểu tượng đã có trong ô. Tuy nhiên, biểu tượng có thể là
giống như các biểu tượng hiện 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 một di chuyển, và không cho phép đầu đọc đứng yên
một chỗ. Hạn chế này không không hạn chế những gì một máy Turing có
thể tính toán, vì bất kỳ chuỗi di chuyển với một đầu đọc đứng yên tại chỗ
có thể ngưng tụ, cùng với đầu băng tiếp theo di chuyển, vào một thay đổi
trạng thái duy nhất, một biểu tượng mới băng, và một di chuyển sang trái
hoặc phải.
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ư sử dụng automát hữu hạn hoặc PDA. Chúng ta mô tả một TM bởi
các tuple-7
M = (Q, ∑, Γ, δ, q0, B, F)
có các thành phần có ý nghĩa như sau:
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.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 7
Tiểu luận môn học Lý Thuyết Tính Toán
Γ: bộ hoàn chỉnh các biểu tượng băng; E luôn luôn là một tập hợp con của
r.
δ: chức năng chuyển đổi. Những tham số của hàm 5 (q, X) là một trạng
thái q và một băng ký hiệu X. Giá trị của hàm b(q, X), nếu nó được định nghĩa, là

một bộ ba (p, Y, D), trong đó:
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 quét, thay thế
bất cứ điều gì biểu tượng đã có.
3. D là một định hướng, hoặc L hoặc R, là viết tắt của chữ "left"
hoặc "right", riêng từng từ, và cho chúng ta biết hướng di chuyển
đầu.
q0: Trạng thái bắt đầu, là một thành viên của Q, trong đó kiểm soát hữu
hạn được tìm thấy ban đầu.
B: Biểu tượng rỗng. Biểu tượng này là trong Γ nhưng không phải trong ∑,
nghĩa là, nó không phải là một biểu tượng đầu vào. Biểu tượng rỗng xuất hiện
ban đầu trong tất cả, nhưng số lượng hữu hạn của ô ban đầu mà giữ biểu tượng
đầu vào.
F: tập hợp các trạng thái cuối cùng hoặc chấp nhận, là 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 (TM) làm, 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 mô tả tức thời (ID), giống như các
ký hiệu chúng ta phát triển cho PDA. Từ một TM, về nguyên tắc, có một băng
dài vô tận, chúng ta có thể tưởng tượng rằng nó là không thể mô tả các cấu hình
của một TM ngắn gọn. Tuy nhiên, sau khi bất kỳ số lượng hữu hạn của sự di
chuyển, TM có thể chỉ có một số hữu hạn của các ô đã truy cập, mặc dù số lượng
của các ô truy cập cuối cùng có thể phát triển xa hơn bất kỳ giới hạn hữu hạn.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 8
Tiểu luận môn học Lý Thuyết Tính Toán
Như vậy, trong mỗi ID, có một tiền tố và hậu tố vô hạn của các ô không bao giờ
được truy cập. Tất cả những ô này phải giữ một trong hai khoảng trống hoặc một
số hữu hạn các ký hiệu đầu vào. Do đó chúng ta hiển thị trong một ID chỉ có các
ô giữa tận cùng bên trái và những khoảng trống ngoài cùng bên phải. Trong điều
kiện đặc biệt, khi đầu đọc đang quét một số hàng đầu hoặc dấu trống, một số hữu

hạn các khoảng trống bên trái hoặc bên phải của phần không trống của băng cũng
phải được bao gồm trong các ID.
Ngoài ra để đại diện cho các băng, chúng ta phải đại diện cho sự kiểm soát
hữu hạn và vị trí đầu băng. Để làm như vậy, chúng ta nhúng các trạng thái trong
băng, và ngay lập tức đặt nó tới bên trái của các ô đã được quét. Để phân biệt với
các chuỗi băng cộng với trạng thái, chúng ta phải chắc chắn rằng chúng ta không
sử dụng bất kỳ một biểu tượng trạng thái nào 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 vì thế chúng không có gì
chung với các biểu tượng băng, kể từ khi hoạt động của TM không phụ thuộc vào
những gì các trạng thái được gọi. Vì vậy, chúng ta sẽ sử dụng chuỗi X
1
X
2
… X
i-
1q
X
i
X
i+1
X
n
để đại diện cho một ID, trong đó:
1. q là trạng thái của máy Turing.
2. Đầu đọc băng quét các biểu tượng thứ i từ bên trái.
3. X
1
X
2
… X

n
là một phần của băng giữa tận cùng bên trái và bên phải
không trống. Như một ngoại lệ, nếu đầu đọc đến bên trái của tận cùng
bên trái không trống hoặc đến bên phải của ngoài cùng bên phải không
trống, thì một số tiền tố hoặc hậu tố của X
1
X
2
X
n
sẽ được để trống, và
i sẽ là 1 hoặc n, tương ứng.
Chúng ta mô tả di chuyển của một máy Turing M = (Q, E, Г,δ, qo, B, F)
bằng các ký hiệu được sử dụng cho PDA. Khi TM M này được hiểu, chúng
ta sẽ sử chỉ cần dụng để phản ánh di chuyển. Như thường lệ, hoặc sẽ
được dùng để chỉ 0, 1 hoặc nhiều di chuyển của máy Turing M.
Giả sử δ(q, Xi) = (p, Y, L), tức là, động thái tiếp theo là ở vế trái. Sau đó,
Nhóm 02 – Lớp KHMT Khoá 24 Trang 9
M
Tiểu luận môn học Lý Thuyết Tính Toán
Chú ý động thái này phản ánh sự thay đổi trạng thái p và thực tế rằng đầu
đọc băng bây giờ ở tại vị trí ô i - 1. Có hai trường hợp ngoại lệ quan trọng:
1. Nếu i = 1, thì M di chuyển vào chỗ trống bên trái của X1. Trong trường
hợp đó,
2. Nếu i = n và Y = B, thì ký hiệu B được viết đè lên Xn 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 các ID tiếp theo. Vì
vậy,
Bây giờ, giả sử δ(q,Xi) = (p,Y,R), tức là di chuyển tiếp theo là hướng về
bên phải. Sau đó,
Ở đây, sự di chuyển này phản ánh thực tế rằng đầu đọc đã chuyển đến ô i +

1 . Một lần nữa, có hai trường hợp ngoại lệ quan trọng:
1. Nếu i = n thì ô thứ i + 1 giữ một khoảng trống, và ô này không phải là
một phần của ID trước. Vì vậy, thay vào chúng ta có
2. Nếu i = 1 và Y = B, ký hiệu B viết đè lên X1 tham gia vào chuỗi vô hạn
các khoảng trống đầu hàng và không xuất hiện trong các ID tiếp theo. Vì vậy,
Ví dụ 8.2: Chúng ta thiết kế một máy Turing và xem nó làm thế nào để hoạt
động trên một đầu vào điển hình. Các TM chúng ta xây dựng sẽ chấp nhận ngôn
ngữ {0
n
1
n
|N≥1}. Ban đầu, nó cho 1 chuỗi hữu hạn của số 0 và l trên băng của nó,
trước và sau là vô hạn của khoảng trống. Cách khác, TM sẽ thay đổi từ số 0
thành X và sau đó thay đổi số 1 thành Y, cho đến khi tất cả các số 0 và l đã được
phù hợp.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 10
Tiểu luận môn học Lý Thuyết Tính Toán
Chi tiết hơn, bắt đầu từ đầu bên trái của đầu vào, nó liên tục thay đổi từ số 0
thành X và di chuyển từ phải qua bất cứ khi nó nhìn thấy số 0 và Y, cho đến khi
nó đến số 1. Nó thay đổi số 1 thành Y và di chuyển sang trái, qua Y và số 0, cho
đến khi nó tìm thấy X. Vào thời điểm đó, nó lập tức cho số 0 ngay bên phải, và
nếu tìm thấy số 1, nó thay đổi thành X và lặp đi lặp lại các quy trình, thay đổi
một kết hợp số 1 thành Y.
Nếu đầu vào không trống không thuộc 0*1*, thì TM cuối cùng sẽ không có
một sự di chuyển tiếp theo và sẽ ngừng hoạt động mà không chấp nhận. Tuy
nhiên, nếu nó kết thúc thay đổi tất cả các số 0 thành các X trên cùng một vòng
thay đổi số 1 thành Y cuối cùng, thì nó đã tìm thấy đầu vào của hình thức 0nln và
chấp nhận đặc điểm kỹ thuật chính thức của TM M là
δ được cho bởi bảng trong hình. 8.9.
M thực hiện tính toán của nó, các phần của băng, đầu băng của M đã truy

cập, sẽ luôn luôn là một chuỗi các biểu tượng được mô tả bởi các biểu thức chính
quy X*0*Y*1*. Đó là, sẽ có một số các số 0 đã được thay đổi thành các X, tiếp
theo là một số các số 0 chưa được thay đổi thành các X. Sau đó có một số các số
l đã được thay đổi thành các Y, và một số các số l chưa được thay đổi thành các
Y. Có thể có hoặc có thể không có các số 0 và các số 1 làm theo.
Hình 8.9: Một máy Turing chấp nhận {0
n
l
n
| n≥ 1}
Trạng thái qo là trạng thái ban đầu, và M cũng nhập vào trạng thái qo mỗi
khi nó trở về số 0 còn lại tận cùng bên trái. Nếu M là ở trạng thái qo và quét một
Nhóm 02 – Lớp KHMT Khoá 24 Trang 11
Tiểu luận môn học Lý Thuyết Tính Toán
số 0, các quy tắc ở góc trên bên trái của hình 8.9 “nói” để nó đi đến trạng thái q1,
thay đổi từ số 0 thành X và di chuyển sang phải. Một khi ở trạng thái q1, M di
chuyển trên tất cả số 0 và Y mà nó tìm thấy trên băng còn lại ở trạng thái q1. Nếu
M thấy X hoặc B, nó sẽ ngừng hoạt động. Tuy nhiên, trong trạng thái q1 nếu M
nhìn thấy số 1, nó thay đổi số 1 thành Y, nhập vào trạng thái q2, và bắt đầu di
chuyển trái.
Trong trạng thái q2, M di chuyển sang trái trên các số 0 và các Y, còn lại ở
trạng thái q2. Khi M đến các X ngoài cùng bên phải, đánh dấu sự kết thúc của các
khối số 0 mà đã được thay đổi thành X, M trở về trạng thái qo và di chuyển sang
bên phải. Có hai trường hợp:
1. Nếu M bây giờ nhìn thấy một số 0, thì nó lặp đi lặp lại chu kỳ phù hợp
với chúng ta vừa mô tả.
2. Nếu M thấy một Y, thì nó thay đổi tất cả các số 0 thành các X. Nếu tất cả l
đã được thay đổi thành Y, thì các đầu vào của hình thức 0nln, và M phải chấp
nhận. Như vậy, M nhập vào trạng thái q3, và bắt đầu di chuyển sang bên phải,
qua các Y. Nếu biểu tượng khác hơn so với một Y thì M nhìn thấy đầu tiên là một

khoảng trống, thì thực sự đã có một số lượng của số 0 bằng số lượng của l, do đó,
M nhập vào trạng thái q4 và chấp nhận. Mặt khác, nếu M gặp số khác 1 thì có
quá nhiều số 1, do đó M ngừng hoạt động mà không chấp nhận. Nếu nó gặp một
số 0 thì đầu vào của các hình thức sai, và M cũng ngừng hoạt động.
Đây là một ví dụ của một tính toán chấp nhận bởi M. Đầu vào của nó là
0011. Ban đầu, M là trạng thái qo, quét số 0 đầu tiên, nghĩa là, ID ban đầu của M
là q
0
0011. Trình tự toàn bộ di chuyển của M là:
Ví dụ khác, hãy xem xét M nhập vào 0010, đó không phải là ngôn ngữ
được chấp nhận.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 12
Tiểu luận môn học Lý Thuyết Tính Toán
Các hành vi của M trên 0010 giống như các hành vi trên 0011, cho đến khi
trong ID XXYq
1
0 M quét số 0 cuối cùng cho lần đầu tiên. M phải di chuyển sang
phải, ở trong trạng thái q1, đưa đến ID XXY0q
1
B. Tuy nhiên, ở trạng thái q
1
M
không có di chuyển trên băng biểu tượng B, do đó M ngừng hoạt động và không
chấp nhận đầu vào.
8.2.4 Những sơ đồ chuyển tiếp cho máy Turing
Chúng ta có thể biểu diễn cho quá trình chuyển đổi của một hình tượng máy
Turing, nhiều như chúng ta đã làm cho các PDA. Một sơ đồ chuyển đổi là quá
trình bao gồm một tập hợp các nút tương ứng với các trạng thái của TM. Một
vòng cung từ trạng thái q đến trạng thái p được dán nhãn bởi một hoặc nhiều mục
của mẫu X/YD, trong đó X và Y là biểu tượng băng, và D là một định hướng (L

hay R). Bất cứ khi nào δ(q,X)=(p,Y,D), chúng ta tìm thấy các nhãn X/YD trên
vòng cung từ q đến p. Tuy nhiên, trong sơ đồ của chúng ta, hướng D được mô tả
bởi ← cho "bên trái" và → cho "bên phải”.
Đối với các loại biểu đồ dịch chuyển, chúng ta sử dụng "Start" để đại diện
cho trạng thái bắt đầu và một mũi tên vào trạng thái đó. Trạng thái chấp nhận
được chỉ định bởi vòng tròn kép. Như vậy, thông tin duy nhất về một TM không
thể đọc trực tiếp từ biểu đồ là biểu tượng được sử dụng cho khoảng trống. Chúng
ta giả định rằng biểu tượng này là B trừ các trạng thái khác.
Ví dụ 8.3: Hình 8.10 cho thấy sơ đồ chuyển tiếp cho máy Turing ở ví dụ
8.2, có chức năng chuyển đổi đã được đưa ra trong hình 8.9.
Ví dụ 8.4: Trong khi ngày nay chúng ta thấy nó thuận tiện nhất để nghĩ
rằng máy Turing xin nhận ngôn ngữ, hoặc tương đương, giải quyết các vấn đề,
quan điểm ban đầu của máy Turing là một máy có chức năng tính giá trị là số
nguyên. Trong chương trình của mình, các số nguyên được biểu diễn ở dạng đơn
nguyên, như các khối của một đơn ký tự, và máy tính bằng cách thay đổi chiều
dài của các khối hoặc bởi việc xây dựng khối mới ở nơi khác trên băng. Trong ví
dụ đơn giản này, chúng ta sẽ hiển thị chức năng tính toán một máy Turing
Nhóm 02 – Lớp KHMT Khoá 24 Trang 13
Tiểu luận môn học Lý Thuyết Tính Toán
như thế nào, được gọi là phép trừ monus hoặc proper subtraction và được xác
định bởi m n = max (m - n, 0). Cụ thể, m n bằng m - n nếu m> n và bằng số
0 nếu m<n.
Một TM thực hiện hoạt động này được quy định cụ thể:
Lưu ý rằng, kể từ khi TM này không được sử dụng để chấp nhận đầu vào,
chúng ta đã bỏ qua thành phần thứ bảy, là các thiết lập của các trạng thái đang
chấp nhận. M sẽ bắt đầu với một băng gồm 0
m
10
n
bao quanh bởi khoảng trống. M

tạm dừng với 0
m n
trên băng của nó, bao quanh bởi các khoảng trống.
Hình 8.10: sơ đồ chuyển tiếp cho một TM chấp nhận chuỗi hình thức 0
n
1
n
M lặp lại việc tìm kiếm số 0 còn lại tận cùng bên trái của nó và thay thế
bằng một khoảng trắng. Sau đó tìm kiếm số 1 ở bên phải. Sau khi tìm thấy một
số 1, nó vẫn tiếp tục tìm bên phải cho đến khi nó đến số 0 thì thay thế số 0 bởi
một số 1. M sau đó trả về bên trái, tìm kiếm số 0 tận cùng bên trái mà nó xác định
Nhóm 02 – Lớp KHMT Khoá 24 Trang 14
Tiểu luận môn học Lý Thuyết Tính Toán
khi lần đầu tiên nó gặp một khoảng trống và sau đó di chuyển một ô đến bên
phải. Kết thúc lặp đi lặp lại nếu thỏa mãn một trong hai trường hợp:
1. Tìm kiếm số 0 bên phải, M gặp một khoảng trống. Sau đó tất cả n số 0
trong 0
m
10
n
đều được thay đổi thành số 1, và n + 1 của m số 0 được thay đổi
thành B. M thay thế n+1 số l bằng một số 0 và n B, để lại m - n số 0 của băng. Từ
khi m ≥ n trong trường hợp này, m - n =m n.
2. Bắt đầu chu kỳ, M không thể tìm thấy một số 0 để thay đổi thành một
khoảng trống, bởi vì m số 0 đầu tiên đã được thay đổi thành B. Sau đó, n ≥ m, vì
vậy m n = 0. M thay thế tất cả các số 1 và số 0 bởi B và kết thúc với một băng
hoàn toàn trống.
Hình 8.11 cho các quy tắc của chức năng chuyển đổi δ, và chúng ta cũng có
đại diện δ như là một sơ đồ quá trình chuyển đổi trong hình 8.12. Sau đây là một
bản tóm tắt vai trò mỗi trạng thái trong 7 trạng thái:

q0: Trạng thái này bắt đầu chu kỳ, và cũng phá vỡ chu kỳ khi thích hợp.
Nếu M đang quét một số 0, chu kỳ lặp lại. Số 0 được thay thế bằng B, đầu đọc di
chuyển sang phải, và trạng thái q1 được nhập vào. Mặt khác, nếu M đang quét số
1 thì có thể phù hợp tất cả các số 0 giữa hai nhóm trên băng đã được thực hiện,
và M đi vào trạng thái q5 để làm cho băng trống.
q1: Trong trạng thái này, M tìm kiếm bên phải, thông qua các khối số 0 ban
đầu, tìm kiếm số 1 tận cùng bên trái. Khi tìm thấy, M đi đến trạng thái q2.
q2: M di chuyển sang phải, bỏ qua các số 1, cho đến khi nó tìm thấy một số
0. Nó thay đổi số 0 đó thành 1, quay về bên trái, và vào trạng thái q3. Tuy nhiên,
nó cũng có thể không có nhiều số 0 bên trái sau khối của số 1. Trong trường hợp
đó, M ở trạng thái q2 bắt gặp một khoảng trống. Chúng ta có (1) trường hợp mô
tả ở trên, n số 0 của khối thứ hai được sử dụng để hủy bỏ n của m số 0 trong khối
đầu tiên, và phép trừ được hoàn tất. M vào trạng thái q4, có mục đích là để
chuyển đổi các số 1 trên băng thành khoảng trống.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 15
Tiểu luận môn học Lý Thuyết Tính Toán
q3: M di chuyển sang trái, bỏ qua các số 0 và các số 1, cho đến khi nó tìm
thấy một khoảng trống. Khi nó tìm thấy B, nó di chuyển phải và trở lại trạng thái
q0, bắt đầu lại chu kỳ.
q4: Ở đây, phép trừ hoàn tất, nhưng có một 0 trong khối đầu tiên chưa được
thay đổi thành một B. Do đó M di chuyển sang trái, thay đổi các số 1 thành các
B, cho đến khi nó gặp một B trên băng. Nó thay đổi đó B trở về 0, và đi vào trạng
thái q6, trong đó M tạm dừng.
q5: Trạng thái q5 được nhập từ q0 khi nó tìm thấy tất cả các số 0 trong khối
đầu tiên đã được thay đổi thành B. Trường hợp này được mô tả trong (2) ở trên,
kết quả của phép trừ thích hợp (proper subtaction) là 0. M thay đổi tất cả các số
0 và các số 1 còn lại thành B và đi vào trạng thái q6.
q6: Mục đích duy nhất của trạng thái này là cho phép M dừng khi nó đã
hoàn tất nhiệm vụ của mình. Nếu phép trừ đã được một chương trình con của
một số chức năng phức tạp hơn thì q6 sẽ bắt đầu bước tiếp theo của tính toán lớn

hơn.
Hình 8.11: Một máy Turing tính toán chức năng proper-subtraction
Nhóm 02 – Lớp KHMT Khoá 24 Trang 16
Tiểu luận môn học Lý Thuyết Tính Toán
Hình 8.12: Sơ đồ chuyển đổi cho TM của ví dụ 8.4
8.2.5 Ngôn ngữ của máy Turing
Chúng ta đã trực quan cho thấy cách mà máy Turing chấp nhận một ngôn
ngữ. Chuỗi đầu vào được đặt trên một băng từ và đầu đọc bắt đầu từ ký tự đầu
tiên tận cùng bên trái. Nếu máy Turing cuối cùng chấp nhận trạng thái thì đầu
vào được chấp nhận, ngược lại thì không.
Thông thường, đặt M=(Q,
Σ
,
Γ
,
δ
, q
0
, B, F) vào một máy Turing. Thiết lập
L(M)
1
là tập hợp của chuỗi w trong Σ
*
chẳng hạn như q
0
w
α
p
β
cho trạng

thái p trong F và một đầu đọc bất kỳ chuỗi
α

β
. Định nghĩa này được giả định
rằng khi chúng ta thảo luận về máy Turing ở ví dụ 8.2, chấp nhận chuỗi từ 0
n
1
n
.
Tập hợp các ngôn ngữ có thể dùng với máy Turing được gọi là các ngôn
ngữ suy diễn được hay ngôn ngữ RE. Thuật ngữ “suy diễn được” hình thành từ
các hệ hình thức có khả năng tính toán trước khi có máy Turing nhưng lại được
định nghĩa như một lớp ngôn ngữ tương tự hoặc các chức năng số học. Chúng ta
thảo luận về nguồn gốc thuật ngữ này trong một phần của 9.2.1.
1
Tập hợp các chuỗi trong Γ* là nguyên nhân đưa TM M đi vào trạng thái kết thúc khi đã thực hiện việc
thay thế từ bên trái các ký hiệu trên băng của M với trạng thái bắt đầu q0
Nhóm 02 – Lớp KHMT Khoá 24 Trang 17
*
Tiểu luận môn học Lý Thuyết Tính Toán
KÝ HIỆU QUY ƯỚC CHO MÁY TURING
Các ký hiệu chúng ta thường sử dụng cho máy Turing tương tự như các loại thiết
bị tự động khác mà chúng ta đã được biết.
1. Các ký tự chữ thường bắt đầu bảng chữ cái được dùng cho ký hiệu đầu
vào.
2. Các ký tự hoa, thông thường là cuối bảng chữ cái thường được dùng cho
các ký hiệu băng, có thể có hoặc không có thể là biểu tượng đầu vào. Tuy
nhiên B thông thường được dùng như biểu tượng trắng.
3. Các ký tự thường gần cuối bảng chữ cái là các chuỗi của biểu tượng đầu

vào.
4. Các ký tự Hy Lạp là chuỗi của biểu tượng băng.
5. Các ký tự như q, p và các ký tự gần đó dùng để chỉ trạng thái.
8.2.6 Máy Turing và sự dừng
Còn có một khái niệm "chấp nhận" thường được sử dụng cho máy Turing:
chấp nhận bằng cách dừng. Ta nói một máy Turing “dừng” nếu nó vào trạng thái
q, quét biểu tượng băng X và không có một sự dịch chuyển trong điều kiện này.
Ví dụ,
δ
(q, X) không định nghĩa.
Ví dụ 8.5: Một máy Turing M trong ví dụ 8.4 không được thiết kế để chấp
nhận một ngôn ngữ; thay vì xem nó như là như máy tính để tính các hàm số học.
Tuy nhiên máy M dừng với tất cả chuỗi của 0’s và 1’s, vì không có vấn đề chuỗi
M tìm thấy trên băng, cuối cùng sẽ hủy bỏ nhóm thứ hai của 0’s, nếu nó tìm thấy
một nhóm, so với nhóm đầu tiên của số 0’s, và do đó phải đạt được trạng thái q
s
và dừng lại.
Chúng ta luôn luôn giả định một máy Turing ở tráng thái dừng nếu nó chấp
nhận. Do đó, không có sự thay đổi đối với một ngôn ngữ được chấp nhận. Chúng
Nhóm 02 – Lớp KHMT Khoá 24 Trang 18
Tiểu luận môn học Lý Thuyết Tính Toán
ta có thể tạo
δ
(q, X). Không xác định bất cứ khi nào q là một trạng thái được
chấp nhận. Nói chung, không có nếu không nói như vậy.
Chúng tôi giả định rằng một máy Turing luôn luôn tạm dừng khi nó trong
một trạng thái được chấp nhận.
Không may, nó không phải lúc nào cũng có thể yêu cầu rằng một máy
Turing dừng ngay nếu nó không được chấp thuận. Những ngôn ngữ với máy
Turing dừng lần cuối, bất kể có hay không họ chấp nhận, được gọi là đệ quy, và

chúng ta sẽ xem xét các thuộc tính quan trọng của nó bắt đầu trong mục 9.2.1.
Máy Turing luôn luôn dừng không phân biệt có hay không được chấp nhận, là
mô hình tốt của thuật toán. Nếu thuật toán giải quyết được một vấn đề tồn tại, thì
ta gọi vấn đề đó là “decidable”, vì vậy máy Turing luôn có số dừng quan trọng
trong lý thuyết quyết định ở Chương 9.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 19
Tiểu luận môn học Lý Thuyết Tính Toán
PHẦN 2. BÀI TẬP
2.1. Bài 8.2.1
* Yêu cầu: Cho biết ID của máy Turing được mô tả trong hình 3 nếu đầu
vào của nó là: 000111
Trạng thái
Ký hiệu
0 1 X Y B
q
o
(q
1
, X, R) - - (q
3
, Y, R) -
q
1
(q
1
, 0, R) (q
2
, Y, L) - (q
1
, Y, R) -

q
2
(q
2
, 0, L) - (q
0
, X, R) (q
2
, Y, L) -
q
3
- - - (q
3
, Y, R) (q
4
, B, R)
q
4
- - - - -
Máy Turing chấp nhận {0
n
1
n
| n ≥ 1}
Giải:
Ta mô tả một TM: M=(Q,
Σ
,
Γ
,

δ
,q
0
,B,F)
Thành phần trên có nghĩa sau:
Q: Tập hữu hạn của các trạng thái của sự điều khiển có giới hạn.
Σ
: Tập hữu hạn của các ký hiệu đầu vào.
Γ
: Tập so sánh của các ký hiệu băng,
Σ
luôn luôn là một tập con của
Γ
.
δ
: Hàm chuyển trạng thái. Đối số của
δ
(q,X), nếu nó được định nghĩa, là
một bộ ba (p,Y,D):
Nhóm 02 – Lớp KHMT Khoá 24 Trang 20
Tiểu luận môn học Lý Thuyết Tính Toán
1. p là trạng thái tiếp theo, trong Q.
2. Y là ký hiệu, trong
Γ
, được viết trong ô được quét, thay thế bất
cứ ký hiệu nào ở đó.
3. D là một sự điều khiển, cả L hay R, đang dứng bên “trái” hay
“phải”, và điều khiển đầu di chuyển.
q
0

: Trạng thái bắt đầu, một thành phần của Q, trong sự điều khiển có giới
hạn được tìm thấy lúc đầu.
B: Ký hiệu rỗng. Ký hiệu này trong
Γ
nhưng không trong
Σ
; ví dụ, nó là
một ký hiệu đầu vào. Ký hiệu rỗng xuất hiện lần đầu trong tất cả nhưng số
hữu hạn của các ô lúc đầu giữ các ký hiệu đầu vào.
F: Tập của các trạng thái cuối hoặc trạng thái chấp nhận, một tập con của
Q.
Cho biểu đồ 8.9, TM M được mô tả cụ thể như sau:
M= ({q
0
,q
1
,q
2
,q
3
,q
4
),{0,1},{0,1,X,Y,B},
δ
,q
0
,B,{q
4
})
δ

được cho trong biểu đồ 8.9.
Biểu đồ trạng thái cho một TM thừa nhận các chuỗi dạng 0
n
1
n
như biểu đồ 8.9
là:
Trạng thái q0 là trạng thái khởi tạo, và M cũng đi đến trạng thái q0 mỗi khi
nó quay lại bên trái nhất giữ số 0. Nếu M ở trạng thái q0 và đang quét một số 0,
qui luật trong góc trái-trên của hình 8.9 nói lên rằng để đi đến trạng thái q1, thay
số 0 thành X, và di chuyển sang phải. Một khi đang trong trạng thái q1, M giữ
việc di chuyển sang phải khắp tất cả các ô số 0 và Y mà nó tìm thấy trong băng,
giữ nguyên trạng thái q1. Nếu M gặp một X hoặc một B, nó dừng. Tuy nhiên, nếu
M gặp một số 1 khi trong trạng thái q1, nó thay đổi 1 thành Y, đi đến trạng thái
q2, và bắt đầu việc di chuyển sang trái.
Trong trạng thái q2, M di chuyển sang trái qua các ô số 0 và Y, giữ nguyên
trạng thái q2. Khi M đến bên phải nhất của X, vị trí đánh dấu kết thúc bên phải
Nhóm 02 – Lớp KHMT Khoá 24 Trang 21
Tiểu luận môn học Lý Thuyết Tính Toán
của khối các ô số 0 đã được chuyển thành X, M trở về trạng thái q0 và di chuyển
sang phải. Có hai trường hợp:
1. Nếu M gặp số 0, thì nó lặp chu kỳ so khớp mà chúng ta vừa mô tả.
2. Nếu M gặp Y, thì nó đã thay đổi tất cả các ô số 0 thành X. Nếu tất cả các ô
số 1 đã được chuyển thành Y, thì đầu vào là mẫu 0
n
1
n
, và M sẽ chấp nhận.
Vì vậy M đi đến trạng thái q3, và bắt đầu việc di chuyển sang phải, qua
các ô Y. Nếu ký hiệu đầu tiên khác với một Y mà M gặp là một ô rỗng, thì

dẫn đến có sự bằng nhau của các ô số 0 và các ô số 1, vì thế M đi đến
trạng thái q4 và chấp nhận. Theo cách khác, nếu M bắt gặp số 1 khác, thì
có quá nhiều ô số 1, vì thế M dừng mà không chấp nhận. Nếu nó bắt gặp
một số 0, thì đầu vào là trong hình thức sai và M cũng dừng.
Theo qui luật trên, với đầu vào là 000111, ID của máy Turing M được
trình bày như sau:
- Khởi tạo máy Turing M ở trạng thái q
0
- ID khởi tạo của M là: q
0
000111
- Toàn bộ dãy mô tả M là:
Nhóm 02 – Lớp KHMT Khoá 24 Trang 22
q
0
q
1
q
2
q
3
q
4
Y / Y →
0 / 0 →
Y / Y ←
0 / 0 ←
1 / Y ←
0 / X →
X / X →

Y / Y →
B / B →
Y / Y →
Start
Tiểu luận môn học Lý Thuyết Tính Toán
q
0
000111 Xq
1
00111 X0q
1
0111 X00q
1
111 X0q
2
0Y11 Xq
2
00Y11
q
2
X00Y11 Xq
0
00Y11 XXq
1
0Y11 XX0q
1
Y11 XX0Yq
1
11 XX0q
2

YY1
XXq
2
0YY1 Xq
2
X0YY1 XXq
0
0YY1 XXXq
1
YY1 XXXYq
1
Y1
XXXYYq
1
1 XXXq
2
YYY XXq
2
XYYY XXXq
0
YYY XXXYq
3
YY
XXXYYq
3
Y XXXYYYq
3
B XXXYYYBq
4
B

Như vậy TM M đã được thừa nhận chuỗi 000111.
2.2. Bài 8.2.3
* Yêu cầu: Thiết kế một máy Turing với dữ liệu đầu vào là N và sau đó thực
hiên cộng 1 vào N (ở dạng nhị phân). Băng từ khởi tạo sẽ chứa bởi ký tự $ theo
sau là số N được biểu diễn ở dạng nhị phân. Đầu đọc ở trạng thái khởi tạo là q0
đang quét ở ký tự $. Máy Turing sẽ thiết kế sẽ dừng sau khi thực hiện N+1 (trạng
thái qf). Bạn có thể xoá ký tự $ trong khi tạo ra N+1 nếu cần.
Lấy ví dụ q0$10011 $qf10100, và q0$11111 $qf100000
1. Đưa ra sự chuyển đổi máy Turing của bạn và giải thích mục đích của mỗi
trạng thái.
2. Hãy đưa ra các dãy biến đổi liên tiếp của máy Turing đó khi xâu vào là
$111
Bài giải Chuyển đổi của máy Turing
Nhóm 02 – Lớp KHMT Khoá 24 Trang 23
*
*
q
1

q
2
q
5
q
3
q
4
1→1/R
0→0/R
B→B/L

0→1/L
0→0/L
1→0/L
1→0/L
$→1/L
0→1/L
1→1/L
$→$/R
q
01
$→$/R
Tiểu luận môn học Lý Thuyết Tính Toán
Giải thích mục đích của mỗi trạng thái
- Trạng thái q
0
: Đọc $ ghi $, đưa đầu đọc sang phải ($ là ký tự đầu tiên
của chuỗi dữ liệu vào) và chuyển sang trạng thái q
1
- Trạng thái q
1
: Đưa đầu đọc đến vị trí cuối cùng của dữ liệu vào (cực
phải – rightmost) có nghĩ tùy thuộc vào dữ liệu vào mà
trạng thái đọc 1 ghi 1, đưa đầu đọc sang phải hoặc đọc
0 ghi 0, đưa đầu đọc sang phải được thực hiện một số
lần cho đến lúc gặp rỗng (B – Blank) thì đọc rỗng ghi
rỗng, đưa đầu đọc sang trái và chuyển sang trạng thái
q
2
- Trạng thái q
2

: Tùy thuộc vào dữ liệu vào mà ở trạng thái này q
2
thực
hiện một trong hai công việc sau:
+ Đọc 0 ghi 1, đưa đầu đọc sang trái và chuyển sang trạng thái q
3
. Hoặc
+ Đọc 1 ghi 0, đưa đầu đọc sang trái và chuyển sang trạng thái q
4
- Trạng thái q
3
: Đưa đầu đọc về lại vị trí đầu tiên của dữ liệu vào (cực
trái – leftmost) có nghĩ tùy thuộc vào dữ liệu vào mà
trạng thái đọc 1 ghi 1, đưa đầu đọc sang trái hoặc đọc
0 ghi 0, đưa đầu đọc sang trái được thực hiện một số
lần cho đến lúc gặp $ thì đọc $ ghi $, đưa đầu đọc
sang phải và chuyển sang trạng thái q
5
Trạng thái q
4
: Chuyển tất cả ký tự 1 liên tiếp theo sau thành ký tự 0, có
nghĩ là bao giờ đầu đọc còn ở vị trí của ký tự 1 thì còn
máy Turing còn đọc 1 ghi 0 và đưa đầu đọc sang trái.
Nếu ký tự tiếp theo là 0 thì đọc 0 ghi 1, đưa đầu đọc
sang trái và chuyển sang trạng thái q
3
. Ngược lại, nếu
ký tự tiếp theo là $ (ký tự cực trái của sâu vào) thì đọc
$ ghi $, đưa đầu đọc sang trái và chuyển sang trạng
thái q

5
.
Nhóm 02 – Lớp KHMT Khoá 24 Trang 24
Tiểu luận môn học Lý Thuyết Tính Toán
b/ Các dãy biến đổi liên tiếp của máy Turing đó khi xâu vào là $111
q
0
$111 $q
1
111 $1q
1
11 $11q
1
1 $111q
1
B $11q
2
1B $1q
4
10B
$q
4
100B Bq
4
$000B q
3
B1000B q
5
1000B
Nhóm 02 – Lớp KHMT Khoá 24 Trang 25

×