1. Trang chủ
  2. » Giáo án - Bài giảng

Lý thuyết ngôn ngữ và tính toán: Phần 2 - Nguyễn Văn Ba

148 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Tiêu đề Lý Thuyết Ngôn Ngữ Và Tính Toán: Phần 2
Định dạng
Số trang 148
Dung lượng 34,55 MB

Nội dung

Tiếp nội dung phần 1, Cuốn sách Lý thuyết ngôn ngữ và tính toán: Phần 2 cung cấp cho người học những kiến thức như: máy turing; tính được và không tính được; độ phức tạp. Mời các bạn cùng tham khảo!

Trang 1

CHUONG V MAY TURING

Như ta đã thấy ở chương trước, các ơ tơ mát đây xuống dù đã cĩ một bộ nhớ khơng giới nội (điều hơn hẳn so với các ơ tơ mát hữu hạn) thì chúng vẫn khơng thể đốn nhận được ngơn ngữ a”¿"c” Mà ngơn ngữ đơn giản này, thì chỉ bằng trực quan thơi, ta cũng dễ thấy là sẽ phải cĩ

một thủ tục hữu hiệu (tức là một thuật tốn) nào đĩ đốn nhận được

nĩ Chang han viết một chương trình PASCAL để đốn nhận các xâu đ"b"c” thì thực ra chỉ đáng là một bài tập nhỏ Vậy cĩ nghĩa là các ơ tơ mát đây xuống, dù đã cho phép đốn nhận lớp các ngơn ngữ phi ngữ cảnh, thì cũng cịn chưa đủ mạnh để đốn nhận các lớp ngơn ngữ rộng hơn mà các thuật tốn thơng thường cĩ thể đốn nhận được Vậy phải đi tìm một loại “máy trừu tượng” khác, trên con đường nhằm tới sức

mạnh sánh được với các thuật tốn nĩi chung Đĩ chính là máy

Turing, mà ta sẽ nghiên cứu trong Chương V này Điều khác biệt cơ bản so với ơ tơ mát đây xuống là máy Turing cũng cĩ một bộ nhớ

khơng giới nội, nhưng trên đĩ sự truy cập khơng cịn bị gị bĩ bởi the

thức LIFO (Last In First Out) nữa

Liệu sau máy Turing ta cịn cĩ thể cĩ các ơ tơ mát khác mạnh hơn trong việc đốn nhận ngơn ngữ, cũng như trong các cơng việc xử lý ký

hiệu khác? Câu trả lời mà ta sẽ nhận được là: khơng cĩ Bởi vì máy

Turing làm được mọi việc mà các thuật tốn làm được, nĩi cách khác

thì máy Turing đã là một mơ hình hình thức của khái niệm thuật tốn (một khái niệm trực quan rất quen dùng đối với các nhà tốn học và tin học, nhưng lại khơng cĩ một định nghĩa hình thức cho nĩ) Điều khăng định này sẽ được đưa ra ở chương tiếp sau, dưới cái tên là Luận đề Church-Turing

1 MƠ TẢ VÃ ĐỊNH NGHĨA MẦY TURING

1.1 Mơ tả trực quan

Máy Turing (do Alan Turing đưa ra năm 1936) cĩ nhiều dạng đồng

khả năng Một số dạng đĩ ta sẽ nĩi sau, ở đây ta xét nĩ ở dạng thơ sơ nhất (tiền định và cĩ băng vơ hạn một phía) gọi là mơ hình cơ bản Đĩ

Trang 2

1 Mơ tả và định nghĩa máy Turing 141

là một máy trừu tượng (ơ tơ mát) gồm cĩ các bộ phận sau (xem Hình V.]):

e Một bộ nhớ vơ 6 han dưới dạng một băng gồm nhiều ơ, cĩ thể kéo dài vơ hạn về phía phải Mỗi ơ trên băng cĩ thể chứa một ký | hiệu thuộc một bộ chữ, gọi là bộ chữ trên băng (mà một

phần trong đĩ là bộ chữ vào, dùng cho xâu vào);

e _ Một đầu đọc di chuyển ở trên băng, ở mỗi thời điểm nhìn vào

một ơ trên băng;

se Một tập hữu hạn các trạng thái, trong đĩ cĩ phân biệt một trạng thái đầu và một tập hợp các trạng thái thừa nhận;

e - Một hàm dịch chuyển cho phép cứ với mỗi trang thai cha may và một ký hiệu đọc được trong 6 đối diện với đầu đọc, thì sẽ xác định được:

o_ một trạng thái tiếp theo,

© một ký hiệu sẽ được viết lên băng, đè lên ký hiệu vừa đọc,

o một hướng địch chuyển một ơ của đầu đọc (sang trái

hay sang phải) ai |đ | ue | a, | BL B băng đầu 4| 4 | trạng thái

Hình V.I Các bộ phận của máy Turing Sự thực hiện của máy Turing cĩ thể được mơ tả như sau:

" Lúc khởi đầu, xâu vào được đặt trên băng (tận cùng bên trái)

Mọi ơ khác trên băng đều chứa một ký hiệu đặc biệt B gọi là ký hiệu trắng Đầu đọc trỏ vào ơ thứ nhất trên băng và máy ở

trạng thái đầu

* Cứ mỗi bước trong quá trình thực hiện (xem Hình V.2), máy

Trang 3

142 Ch.V May Turing o thay ký hiệu đĩ bằng ký hiệu tính được từ hàm dịch chuyên, o_ đời đầu đọc một ơ sang trái hay sang phải theo hướng chỉ định bởi hàm dịch chuyển, ò đổi trạng thái hiện tại thành trạng thái tiếp theo, cho bởi hàm dịch chuyền " Xâu vào là được thừa nhận khi quá trình thực hiện đối với xâu đĩ đạt đền một trạng thái thừa nhận [0]1]0]1]1|z]2] [0]1]1]1][!]?[2] te > f q P

Hình V.2_ Một bước dich chuyén

Su mé ta may Turing mot cách trực quan như trên là chỉ nhằm để giúp chúng ta trong bước đầu dễ dàng hình dung ra sự hoạt động của nĩ Tuy nhiên một sự mơ tả phi hình thức như thế là chưa đủ chặt chẽ để ta cĩ thể tiến hành sự suy diễn tốn học, nhằm đi sâu nghiên cứu về máy Turing được Bởi vậy ta cần cĩ một định nghĩa hình thức về máy Turing, dya trén các hệ viết lại như sau đây

1.2 Định nghĩa V.1

© Mét mdy Turing la mét b6-7: M= (2, O,T, 8, go, B, F), trong đĩ ¢ @Q1a mét tap hợp hữu hạn các (rạng thái,

¢ 11a b6 chit trén băng (bộ chữ dùng trên băng),

© >T là bơ chữ vào (bộ chữ dùng cho xâu vào),

© _ qoeQ là tạng thái đâu,

s FC Q là tập hợp các trạng thái thừa nhận (hay trang thái

°` cuơi),

e_ Bel-Y là hiệu trắng,

Trang 4

7 Mơ tả và định nghĩa máy Turing 143

& Ta gọi hình trạng là mọi xâu cĩ dạng #ynqy;#, trong đĩ #«T, i.yaeT* và qeQ Ký hiệu # được gọi là ký hiệu mút (hoặc đấu chặn)

Như vậy một hình trạng của một máy Turing chứa mọi thơng tin cần thiết

cho sự thực hiện tiếp theo (xém Hình hà của nĩ: o_ trạng tháig,

© nội dung trên băng is,

o vị trí của đầu đọc (tại ký hiệu đầu tiền của y;)

Dù rằng băng là vơ hạn, thì nội dung trên băng ở mỗi thời điểm luơn luơn

cĩ thể được xác định bởi một tiễn tố hữu hạn của nĩ, đĩ là yryz; phần cịn

lại chỉ chứa tồn ký hiệu trắng, Nĩi chính xác hơn thì y¡y; là xâu các ký

hiệu trên băng trải dài từ mút trái của băng cho đến ký hiệu cuối cùng khác

ở bên phải, hoặc cho đến vị trí của đầu đọc trong trường hợp đầu đọc đã vượt quá ký hiệu nĩi trên một ơ về phía phải (xem Hình ƒ.4) ®—Yi——>4—1%› —> Hình V.3 Một tình huống tức thời biểu diễn bởi #472 “——w ——x++ x

Hình V.4 Một tình huống tức thời khác biểu diễn bởi #qB#

Một xâu #qow# với weÐ* được gọi là một hình trạng đâu

© Ta gọi hệ viết lại ngầm định của máy Turing M là hệ viết lại Wu= (V.P) trong đĩ:

e V= TUQUEF} (giả sử T, „Ø,{#} là rời nhau),

Trang 5

144 Ch.V Máy Turing

1) Nếu ơ(g,X) = (p,Y,R), thì P cĩ các quy tắc: 4#Z->YpZ, với mọi ZeT (chuyển phải),

qX#—>YpB# (chuyén phải và nới thêm vùng làm việc (thêm B)), 2) Nếu ð(g,X) = (p,,U), thì P cĩ các quy tắc:

ZqX—>pZY, với mọi ZeT (chuyển trái)

(lưu ý: khơng cĩ chuyển trái và nới thêm vùng làm việc (tức là

khơng thêm Ư ở bên trái))

Ta ký hiệu lần lượt các quan hệ suy dẫn trực tiếp và suy dẫn trong hệ viết lại W bởi => và ©„*, thay cho => w„ VÀ => ạ, *:

# Ta gọi ngơn ngữ thừa nhận (hay đốn nhận) bời máy Turïng M, là

ngơn ngữ:

1(M) = {weÐ* | #qowf =* #ụipyz#' trong đĩ vị,yaeT* và peF}

Các ngơn ngữ thừa nhận bởi các máy Turing được gọi là các ngơn ng# đệ quy kế được"

# Cho một máy Turing À thừa nhận ngơn ngữ L, ta cĩ thể giả thiết

mà khơng làm mắt tính tổng quát là M4 dừng mỗi khi nĩ đạt đến một

trạng thái thừa nhận, nĩi cách khác là ta giả thiết rằng hàm ư là khơng xác định với mọi cặp (g,X) trong đĩ qeF Sự thực hiện của máy trên một xâu vào w bây giờ sẽ diễn ra theo hai trường hợp khác nhau:

(1) Sự thực hiện đi đến kết thúc với một hình trạng khơng cĩ hình trạng tiếp theo, bởi vì:

© ˆ hoặc là hàm dịch chuyển khơng xác định trên hình trạng ấy,

© hoặc là hàm dịch chuyển yêu cầu một chuyển dời đầu đọc sang trái, mà đầu đọc thì lại đang đứng tại ơ đầu tiên trên

băng :

(2) Sự thực hiện khơng bao giờ kết thúc cả

Trong trường hợp thứ nhất, thì máy Turing cho ta một câu trả lời: cĩ (xâu vào w thuộc 7(M)) nếu trạng thái hiện thời là một trạng thái thừa nhận, va khéng (xau vào w khơng thudc L(M)) nếu trạng thái hiện thời

Trang 6

ee eres Se 1 Mơ tả và định nghĩa máy Turing 145

khơng phải là một trạng thái thừa nhận Trong trường hợp thứ hai thì

thực chất là xâu w khơng được thừa nhận, song chăng bao giờ ta nhận được câu trả lời từ máy Turing cả Quả vậy, chẳng cĩ lúc nào chúng ta

(người chờ đợi sự trợ giúp của máy) lại cĩ thể biết chắc rằng xâu w là khơng được thừa nhận, bởi vì khơng bao giờ ta cĩ.thể khẳng định

được là máy sẽ chạy mãi khơng dừng

Thơng thường thì người ta quan niệm rằng một thủ tục là hữu hiệu chính là ở chỗ khi nĩ đã làm việc thì chắc chắn nĩ sẽ cho câu trả lời

(sau một thời gian hữu hạn) Như vậy cĩ thể nĩi rằng máy Turing; khi

đốn nhận ngơn ngữ theo định nghĩa của sự thừa nhận ở trên, với sự

cĩ mặt của những thực hiện vơ hạn, khơng thể xem là một thủ tục hữu hiệu được

Bởi vậy, ta đưa thêm một cách xác định ngơn ngữ khác bằng máy

Turing, chặt hơn và gọi là sự quyết định (thay cho sự thừa nhận), như

Sau:

Một ngơn ngữ L 1a duge quyết định bởi một may Turing M néu: e Mthia nhan L, va

e Mkhéng cé cdc thyc hién v6 han

Các ngơn ngữ quyết định bởi các máy Turing được gọi là các ngơn ngữ đệ quy Thê thì cĩ thể nĩi một ngơn ngữ đệ quy là một ngơn ngữ cĩ thể xác định bởi một thủ tục hữu hiệu (ấy là một máy Turing khơng cĩ thực hiện vơ hạn) Điều này cũng như điều ngược lại ta sẽ xét kỹ hơn trong chương sau L]

Thí dụ

Hãy xem máy Turing M = (2, Q,T, 8, qo, B, F) thừa nhận ngơn ngữ

L= {01|m>1) :

Để đốn nhận một xâu w, M lặp đi lặp lại một chu kỳ làm việc như sau: Trước hết nĩ thay thế con 0 nằm bên trái nhất bởi X, rồi chuyển đời đầu đọc sang phải cho đến con 1 nằm bên trái nhất, thay nĩ bởi Y,

quay trở sang trái tìm đến chữ X ở bên phải nhất, rồi chuyển sang phải

một ơ để tìm con 0 ở bên trái nhất, và như thế kết thúc một chu kỳ và tiếp tục thực hiện một chu kỳ mới Trong trường hợp đang đi tìm con 1, ma M gap một chữ ð, thì nĩ dừng và khơng thừa nhận xâu vào w

Trang 7

146 Ch.V Máy Turing

một con 0 nữa, thì nĩ đi tiếp sang phải để kiểm tra xem cĩ cịn các 1 khơng, nếu khơng thì nĩ thừa nhận xâu vào w Vậy thì:

Ĩ= (án, 41, 92; 93, 94}

E=(0,1}

T = {0, 1, X, Y, B} F= {qa}

6 duge dinh nghia nhu sau:

1) ð(qo,0) = (4i,X,R) - Cĩ mộtcon0, thay nĩ bằng X 2) 5(g1,0) = (41,0,R) Vượt qua (các) con 0 sang phải

ð(4,V) =(4\,V,R) Vượt qua (các) Y sang phải

51,1) =(@2,¥,L) Gặp 1 (nằm bên trái nhất), thay nĩ thành ŸY 3) 8(g2,¥)=(q2,¥,L) Vugt qua (cac) Y sang trai

8(g2,0) = (q2,0,L) Vượt qua (các) 0 sang trái

Š(g›„X) = (qo,X,R) Gặp X, kết thúc chu trình (trở về gu)

4) ð(qoY)=(4›Y,R) Khơng cịn0

5) ð(s,Ÿ)=(g›,Y,R) Chuyén sang phai dé tim 1

ð(4›;B) = (ga,B,R) Kh6ng con 1, dừng ở trạng thái thừa nhận Các quy tắc viết lại tương ứng trong hệ viết lai ngầm định Wy là như

Sau:

Trang 8

Ệ š 1 Mơ tả và định nghĩa máy Turing 147 qXU—>X4o0, - qX1—>X4ol, — qXXX4qX, q›XT->XqoY, q2XB->XqnB, - q›X†->XaoBt 4) qoY0->¥q30, - qoYl->Ÿ4l, — qoYX—>VaX, qoŸY—>ŸYq¬›Y, -' qoYB->»Y4›B 5) @3Ƒƒ0 f0, - g;Yl>W@1l, q›YX->Y4›X, qQ3YY-Yq3Y, ` q:YB->ƒ4›B, @3Y#->Yq:B# 4:?0->Bq40, ˆ 4:B1—>Bạa1, q›BX->BqJ, Q3BYBqsY, 9q3BB—BquB, q3BH->Bq4BH Sau đây là quá trình đốn nhận xâu 0011 : #q00011# => #Xq,011#: => #X04¡11# => #Xag;0Y1# — #a;X0Y1# =#Xqo0Y1# — #XX4(Y1# — #XXYq\1# => AXXQYYH = #⁄q,XTYYt © #XXqoYY† © #XXYq›:Ytt

= #XXYYq›B† > #XXYYBq4B†

Ơ tơ mát đến được trạng thái thừa nhận đa, vậy 001 1 c7(M) Ta cĩ thẻ chứng minh rằng trong mọi trường hợp, sự thực hiện khơng bao giờ kéo đài vơ hạn Với mọi xâu vào cĩ dạng 0”1” (z > 1), quá trình thực

hiện luơn luơn dừng ở trạng thái g4 và xâu đĩ được thừa nhận Với mọi xâu khác, quá trình thực hiện sẽ dừng ở một trạng thái khác ga và xâu

đĩ bị loại `

Vậy máy M quyết định ngơn ngữ 0”1”(w>1) O BÀI TẬP

Trang 9

— 148 Ch.V Máy Turing a) Giải thích hành vi của M b) Cho quá trình thực hiện của M trên xâu vào Ưacca, rồi trên xâu vào baa V.2 Thành lập các máy Turing thừa nhận các ngơn ngữ sau: 2a) {a'b'|i>0} b) {0”1”0”|z>0} c) {we{0,1}* |w cĩ số các ø và số các b bằng nhau} 2 CÁC KỸ THUẬT XÂY DỰNG MÁY TURING

Trong tiết này ta sẽ trình bày một số các kỹ thuật xây dựng các máy Turing Jam cho nĩ thực hiện được nhiều nhiệm vụ khá phức tap, cho

dù ta vẫn khơng vượt ra khỏi định nghĩa của mơ hình cơ bản, vốn rất

đơn giản, của máy Turing

2.1 Nhớ bằng các trạng thái

Một máy Turing cĩ thể ghi nhớ một vài thơng tin nào đĩ trong quá

trình thực hiện nhờ vào các trạng thái Chỉ cần xem mỗi trạng thái như

là một cặp: phân tử đầu tiên vẫn tham gia bình thường vào việc điều

khién, cịn phần tử thứ hai chính là thơng tin cần nhớ Như vậy số các trạng thái sẽ tăng lên, tuy nhiên vẫn luơn là hữu hạn Nĩi chung thì ta cĩ thể xem mỗi trạng thái như là một bé-n, trong dé n-1 phan tử được

dùng để nhớ các thơng tin cần thiết

Thí dụ

Giả sử ta muốn một máy Turing M cĩ khả năng đọc ký hiệu đầu tiên của xâu vào, nhớ lẫy nĩ dé rồi tìm xem phải chăng ký hiệu đĩ khơng

Trang 10

2 Các kỹ thuật xây dựng máy Turing 149

Vậy xuất phát từ trạng thái đầu, M ghi nhớ ký hiệu đọc được trong phân tử thứ hai của trạng thái của nĩ

2) 8((91,0],1) = ((91,0],1,R)

(b) ð([z„1],0)=(ai.1],0,R)

Nếu ký hiệu đọc được là khác với ký hiệu đã nhớ, thì đầu đọc vượt

qua ký hiệu đĩ sang phải

3) (@) - ð(au0],B)=(f2i,#],0,}) ®) 8((91,1],B) = ((41,B],0,L)

Néu M gap mét B, no sé dimg 6 trang thai thira nhan [q1,B], va thia nhận xâu vào Ngược lại, nêu À⁄ gặp ký hiệu đã nhớ, thì do ơ([gn,0].0) và ð([4¡,1],1) đều khơng xác định, À⁄Z sẽ dừng và khơng thừa nhận xâu

vào O

2.2 Băng nhiều rãnh

Ta cũng cĩ thể xem mỗi ký hiệu trên băng như là một bộ-z (>1), vậy băng giờ đây gồm z rãnh, như ta thấy trên Hình ƒ.5 (với n = 3) &|1]J0|1J1 B |B|B|BỊI B 0|0|1 1|$|B|ĐB 1{ Bi BiB 1| Bi BiB 1 [s|> clel- Hình V.S Một máy Turing với băng cĩ nhiều rãnh Thí dụ

Ta hãy thành lap m6t may Turing M nhằm xác định phải chăng một số

nguyên „ (viết dưới dạng nhị phân) là một số nguyên tố Máy này sử

dụng một băng cĩ ba rãnh (xem jình V5) mà sự hoạt động của nĩ cĩ thể mơ tả một cách sơ lược như sau: số „ được viết trên rãnh 1, kẹp giữa hai dấu chặn & và $ M chép lại số đĩ vào rãnh 3 Trên rãnh 2,

M viết số 2 (nghĩa là xâu 10) Sau đĩ ‡/ liên tiếp trừ rãnh 2 vào rãnh 3,

nghĩa là làm phép chia m cho 2 Nếu số dư (trên rãnh 3) là bằng 0, thì „

khơng phải là số nguyên tố Nếu khơng, A⁄ cộng rãnh 2 với 1, chép lại

Trang 11

ee,

150 Ch.V May Turing

2 đến n-1, thi 7 là số nguyên tố Trên Hình V.5, ta cĩ: n = 47, và M

đang chia 47 cho 5; nĩ đã hai lần trừ 5 vào 47, cho nên trên rãnh 3 đang cĩ số 37 O

2.3 Đánh dấu các ký hiệu

Để đánh dấu những ký hiệu nào đĩ trong quá trình thực hiện, ta phải

dùng một rãnh phụ trên bang, | chứa B hoặc một ký hiệu đánh dấu Q Người ta dùng kỹ thuật này để đốn nhận các ngơn ngữ cĩ sự lặp lại xâu, như là:

{ww|we>*), twey|w,ye>*,wsy}, {wwR|we>*}

hoặc khi cĩ sự so sánh về độ dài xâu, như trong các ngơn ngữ: {alb'|¡>0},- {ale*|ï=7 hoặc j = k}

Thí dụ

Hay xét may Turing M = (2, Q, T, 8, qo, B, F) đốn nhận ngơn ngữ

{wew | we{a,b}*}

Cho Q= {[q,d]|qe {41,925.99} va de {a,b,B}}

Trang 12

2 Các Kỹ thuật xây dựng máy Turing 151 | Ệ 4) 5) §) 7) 8) 9) Tìm được e, đổi trạng thái và chuyển sang phải ð({2›„4],[ ©,ø]) = (4›.2].[©,ø]-R) Tiếp tục sang phải, vượt qua các ký hiệu đã đánh dấu §((93,4],[B,4]) = ([44,B],[2,q],L)

Gặp đúng ký hiệu d đã được nhớ và chửa được đánh dấu, M

đánh đấu ký hiệu đĩ và chuyển trái Cịn nếu gặp một ký hiệu chưa đánh dấu khác với đ, hoặc gặp [P,P], thì máy dừng và

khơng thừa nhận xâu vào 8((94,B),[2,d]) = ([94,B],[9.4],L) Lién tiép chuyén trai, vot qua moi ky hiéu đánh dấu 5((44,B],[B,c]) = ([95,B],[B,¢].L) Gặp c, đổi trạng thái và tiếp tục sang trái 8((9s,B],[B,4]) = ((9s,B],[B,4],L)

Nếu ký hiệu sát ngay bên trái c là chưa đánh dấu, A tiếp tục

sang trái để tìm ký hiệu đã đánh dấu gần nhất

ð([4e,B].[B,4]) = (4ø.B].LB,4].1)

Tiếp tục chuyển trái, vượt qua mọi ký hiệu khơng đánh dấu 10) ð([4,B],[O,4]) = (4i.],[0,2],R)

3 gặp một ký hiệu đánh đấu, quay sang phải và trở về trạng thái g¡ đề lặp lại chu trình

11) đøs,B],[9,4]) = (a;.P],[9„4],R)

Trên đường trở sang trái để khép kín chu trình, sau khi vượt qua c, M gip ngay một ký hiệu đã đánh dấu, vậy bên trái c khơng cịn ký hiệu chưa đánh dấu, 4⁄ lại phải quay sang phải

Trang 13

154 Ch.V Máy Turing

Thí dụ

Ta cĩ thể thành lập một may Turing AM để thực hiện phép nhân hai số nguyên dương zn, n theo cách sau:

1 bắt đầu phép nhân với xâu 0”10” ở trên băng, và hồn thành phép nhân với 0”” vây quanh bởi các dấu trắng ở trên băng Đẻ tiến hành phép nhân, trước hết AM viết một con 1 sau 0”10” rồi chép zz lần liên tiếp khối z con 0, và cứ mỗi lần chép một khối đĩ thì lại loại bớt một con 0 trong khối 0” Như vậy ta đạt được xâu 10”10”” ở trên băng va như vậy À⁄ phải xố bớt tiền tố 10”1, để cịn lại khối 0”” trên băng Hạt

nhân của thuật tốn này là một chương trình con CHÉP Chương trình con này - bắt đầu làm việc từ một hình trạng cĩ dạng: #0”1g0”101# - và kết thúc với hình trạng: #0”1g;0”10””# Chương trình con CHÉP được định nghĩa như sau: 0 1 B R LD 2,0, ol 330 3,0, 351 ,R 4 1 40,1

Từ trang thái ạ¡, đọc được một con 0, M đổi nĩ thành 2, và chuyển

sang trang thai qo Ở trạng thái q›, M di chuyển sang phải cho đến khi gặp một Ư; viết 0 vào vị trí của B, rồi quay sang trái trong trạng thái

qs Ở trạng thái g¿, M di chuyển luơn luơn sang trái cho đến khi gặp một con 2, lúc đĩ nĩ trở lại trạng thái g¡ để lặp lại chu trình Nếu ở trạng thái g¡, ÁZ gặp một con 1, như thể việc chép đã xong, nĩ chuyển qua trạng thái 44 để thay các con 2 trở lại thành 0 như cũ, và kết thúc chương trình con bằng cách chuyển qua trạng thái ra qs

Đề hồn tắt thuật tốn nhân, cần bổ sưng thêm các trạng thái để biến đơi

hình trạng đầu #qo0”10'# thành #B0”11q¡0"1#

Trang 14

2 Các kỹ thuật xây dựng may Turing 155 1 6 61 11 Ngồi ra ta lại cịn phải thêm các trạng thái để biến đổi hình trạng #B!0”'1g;0"10”# thành ##”10”?!1¿¡0"10”'# để bắt đầu lại chương trinh con CHEP, đồng thời để kiểm tra phải

chăng ¡ = m, nghĩa là tat cả m con 0 đã bị xố hết Trong trường hợp ¡=m, thì xâu con 10”1 cũng bị xố nốt và thuật tốn kết thúc ở trang

thai g14 Các quy tắc được bơ sung là như sau:

12,0,R LLR

10 13:

3 \3,B,R 4,B,R

Cần lưu ý rằng một chương trình con cĩ thể được gọi nhiều lần từ các chỗ khác nhau trong chương trình gọi; tuy nhiên mỗi cuộc gọi phải

dùng một tập hợp khác biệt (một phiện bản khác) của các trạng thái của chương trình con O

BÀI TẬP

V.3 Lập một máy Turing thừa:nhận tập các xâu trên {1,2,3} sao cho ký hiệu sau cùng cũng xuất hiện ở vị trí thứ ba kể từ bên phải

V.4' Lập một máy Turing thừa nhận tập các xâu trên {4,b} sao cho trong mọi tiền tố, hiệu giữa số các a và số các b là nhỏ thua hoặc bằng

1;

V.§ Máy phiên dịch: Trên băng của máy Turing 7 cĩ một xâu wịe¡*

trong đĩ 3 = {4,đa,.:.,4„} Cho D2 = {b1,b25 5n} là một bộ chữ khác

Trang 15

156 Ch.V Máy Turing

wạ phải được viết ngay sau xâu wạ ở trên băng, wị thì khơng thay đổi gì Hãy thành lập máy Turing 7

V.6 Lập các máy Turing để tính các hàm sau:

aw b) m

3 CÁC DẠNG MỞ RỘNG CỦA CÁC MÃY TURING

Như trên ta đã thấy, thì mơ hình cơ bản của máy Turing (inh nghĩa

V.1) là rất đơn giản (tiền định, một băng vơ hạn về một phía) khiên ta đâm ra nghỉ ngờ về khả năng của nĩ Chính vì vậy mà ở tiết này ta tìm cách đưa ra hàng loạt các mơ hình mở rộng của máy Turing, làm cho

nĩ phong phú hơn, hịng tìm ra những loại máy Turing mạnh hơn Lạ lùng thay, mong muốn đĩ là khơng thể đạt được, nghĩa là chẳng tìm

được mơ hình nào mạnh hơn mơ hình cơ bản, buộc ta phải trở lại “suy

tơn” cho mơ hình này

3.1 Máy Turing cĩ băng vơ hạn hai đầu

Hãy xét các máy Turing cĩ băng vơ hạn về cả hai phía Điều đĩ cĩ

nghĩa là:

Nếu ta cĩ ỗ(g„X) = (p,Y,L), thì cĩ hai cách chuyển hình trạng: ZaX -> pZY với mọi ZeT : chuyển trái bình thường;

#ạX —> #pBY : chuyển trái cĩ nới thêm vùng làm việc, hồn tồn đối xứng với trường hợp chuyển phải ð(4„X) = (p, Y,R) như đã cĩ trong mơ hình cơ bản

Định lý V.1

Một ngơn ngữ L là được thừa nhận (hoặc là được quyết định - một cách tương ứng) bởi một máy Turing cĩ băng vơ hạn hai đầu khi va chỉ khi nĩ được thừa nhận (quyết định) bởi một máy Turing cĩ băng

vơ hạn một đầu a Chứng mình

* Khi: Đề xây dựng một máy Turing À⁄¿ cĩ băng vơ hạn hai đầu bắt

Trang 16

3: Các dạng mở rộng của các máy Turing 157

bắt chước mọi hành vi của M¡ Trong quá trình thực hiện, nếu 3⁄; gặi

ký hiệu đánh dâu trên (ứng với bước chuyền trái của Mị, nhưng hệt chỗ), thì 1⁄2 ngừng và khơng thừa nhận xâu vào (cũng như Mi)

* Chỉ khi: Cho 1 = 2, Ĩ, Th, &, qo, B, F›) là một máy Turing cé

băng vơ hạn hai đầu Ta xây dựng một máy Turing M⁄¡ bắt chước M; mà chỉ ding băng vơ hạn một đầu Băng này cĩ hai rãnh Ranh trên

biểu diễn cho nửa bên phải của băng của À⁄2, bắt đầu từ vị trí đầu tiên

của đầu đọc (4o trên Hình 1.6) Ranh dưới biểu diễn cho nửa bên trái của băng của M2, nhưng được đặt quay sang phải và bắt đầu bằng một

ký hiệu đánh đấu &

Như vậy, giả sử Äị = Œị; Ơi, Tu, ðL, 4i, Bị, Fi) thita sé lay:

T= (KY) | Xela, YeTs (&)}, Bì=1B,ĐỊ ¡= {Ia,B] | ae5z} .]J 44] 4:[42[Ƒ4+[ 42 L4 [42] 4 [42] 1 M, | Ao | Ai | Ao | Az | Ag & |Ail 4;| As | As Hình V.6 Băng của M› và băng của Mị

Trong quá trình làm việc thì Ä⁄ị phải biết rằng nĩ đang làm việc ở rãnh trên hay ở rãnh dưới, tương ứng với đầu đọc của A⁄¿ đang ở nửa phải

hay nửa trái trên băng của nĩ Bởi thế ta phải đưa thêm vào trạng thái

của Ä⁄¡ một thành phân thứ hai là 7 hay D (trên hay dưới):

Ø¡= (m)2114.7114,0] Ì 4e05} và Fi= {lala | geFs}

Cuéi cing thi ham chuyén 6; dugc định nghĩa như sau:

1) V6i mọi ae3;U{B}

81(41,14,B]) = (9, T1LX&1,8) néu 2(q2,a) = (4,X,R)

M, bit chuée bude dau tién chuyén phai cla Mp, nhung ghi thém &

Trang 17

158 Ch.V Máy Turing 2): Với mọi ae3;L{P}

ð¡(gu[2,B]) = ([a,D],|X,&],R) nếu z(4›,4) = (4,X,)

Mạ bắt chước bước đầu tiên chuyển trái của Ä⁄, nhưng nĩ lại chuyển

phải, sau khi đã ghi & vào rãnh dưới của ơ đầu tiên và ghi nhận là đang làm việc ở rãnh dưới (D)

3) V6i moi [X, YJeT trong 46 Y4& va Ee {L,R}

ä¡([ø,7],[X,Y)) = ([p,7]|Z,Y],E) nếu ðz(4,X) = (p,Z,E) -Mị bắt chước À⁄; ở rãnh trên

4) Với mọi [X,Y]eI) trong đĩ Yz& và Ee{L,R}

ð¡(4,D].X,Y))= (Ip.D]JX,ZI,E) nếu 8;(4,Y) = 0,Z,E')

trong d6 E = L néu E' = RvaE=R néu E’= 1 Mị bắt chước M; trên rãnh dưới, nhưng chuyển đầu đọc ngược hướng với Mo

5) ði{øT],X,&])=ði(4,D]IX,&]) = (Ip,H2.&],R)

nếu ồz(4,X)= (p,Z,E)

trong đĩ Ư#ƒ = 7 nếu E = R Và, H= Dnếu E = L Mạ bắt chước bước dịch chuyển của Ä; trên ơ xuất phát A⁄ luơn luơn chuyển sang phải trong bước này song nĩ sẽ làm việc ở rãnh trên (7) hay rãnh dưới (D) tuỳ thuộc Ä⁄¿ chuyên sang phải hay chuyển sang trái trong bước đĩ O 3.2 Máy Turing nhiều băng

Đĩ là loại máy Turing cĩ một bộ điều khiển hữu hạn vẫn như trong

mơ hình cơ bản, nhưng lại cĩ nhiều băng và trên mỗi băng cĩ một đầu

đọc riêng Tuỳ thuộc vào trạng thái của máy, và các ký hiệu đọc được

trên các băng của nĩ mà máy thực hiện một dịch chuyển, gồm các

hành động sau:

1) Thay đổi trạng thái,

Trang 18

TRE) tong te wpitetne-Sy nu D 15A St 3 Các dạng mở rộng của các máy Turing 159 Định lý V.2

Nếu một ngơn ngữ ⁄ được thừa nhận (hoặc quyết định, một cách tương ứng) bởi một máy Turing nhiều băng, thì nĩ cũng cĩ thể được thừa nhận (quyêt định) bởi một máy Turing một băng O

Chứng minh

°

Để bắt chước một máy Turing Mị cĩ È băng, ta lập một máy Turing M› một băng với 2k rãnh Mỗi cặp rãnh của Ä⁄; biểu diễn cho một băng của M¡: một rãnh chứa nội dung của băng đĩ, và một rãnh chứa ký hiệu đánh dấu X trỏ vị trí của đầu đọc trên băng này (xem Hình

V.7)

Mỗi trạng thái cla may M gồm cĩ k+2 thành phần: thành phần thứ nhất ghi nhớ trạng thái hiện thời của máy 3ÉMị, thành phần thứ hai chứa

số các dau doc cha M, (nghĩa là số các X) cịn nằm ở bên phải đầu đọc

của máy Mp, và k thành phần cuối cùng dùng để nhớ các ký hiệu đọc

được trên k băng của À4 Dau doc 1 xX Bang 1 A, | A An Đâu đọc 2 x Bang 2 By | Bo Be Dau doc 3 | X Bang 3 Cr | C2 Ca

Hình V.7 Băng cĩ nhiều rãnh của Mạ

Mỗi bước dịch chuyển của M, sẽ được mơ phỏng bởi một dãy các bước dịch chuyển của À; chia thành hai giai đoạn:

Giai đoạn I: Di chuyển đầu đọc từ trái sang phải, lần lượt đọc và ghi nhớ các ký hiệu đọc được bởi M\ (trong các ơ cĩ đánh dấu bởi X), đồng thời cập nhật số các X cịn nằm ở bên phải đầu đọc sau mỗi lần đọc một ký hiệu Nếu số đĩ đến 0, thì kết thúc giai đoạn 1

Giai đoạn 2: Di chuyển đầu đọc từ phải qua trái, đến mỗi ơ cĩ chứa X, thực hiện hành động của 3⁄¿ trên băng tương ứng (nghĩa là việt ký hiệu mới và di chuyển ký hiệu đánh đầu X sang phải, sang trái hay dé

yên) đồng thời cập nhật s6 cdc cĩ ở bên phải Nếu số đĩ trở về đến

Trang 19

160 Ch.V Máy Turing

Nếu trạng thái mới của Mị là một trạng thái thừa nhận, thì Ä⁄¿ cũng

thừa nhận xâu vào như Mị L Thí dụ

Ngơn ngữ {ww# | we{0,1}*} cĩ thẻ thừa nhận bởi một máy Turing M

cĩ hai băng như sau: Ä⁄ trước hết chép lại xâu vào từ băng 1 lên băng

2 Sau đĩ M đồng thời di chuyển đầu đọc trên băng 1 từ trái sang phải

bắt đầu từ mút trái của xâu vào và di chuyển đầu đọc trên băng 2 từ

phải sang trái bắt đầu từ mút phải của xâu vào Xâu vào sẽ được thừa

nhận nếu trong quá trình thực hiện các ký hiệu đọc được trên hai bang

luơn luơn như nhau

Như ta đã thấy thì để đốn nhận ngơn ngữ này thì máy Turing bình thường phải lui tới nhiều lần trên băng để so sánh các ký hiệu trên hai nửa của xâu vào Như vậy số hành động của nĩ xấp xi bằng bình phương độ dài của xâu vào, trong khi đối với máy Turing 2 băng, thì số các hành động chỉ là tỷ lệ với độ dài của xâu vào O

3.3 Máy Turing khơng tiền định

May Turing khơng tiền định (khơng đơn định) cũng giống như máy

Turing bình thường (tiền định) chỉ trừ hàm chuyển thì nay được định nghĩa như sau:

8: Ox —>#{0xTx{1,R))

Vậy nghĩa là với một cặp dữ liệu (g,X), 5 sé xác định khơng phải một bộ ba duy nhất trong @xI'x{L,R}, mà là một tập hợp hữu hạn những

bộ ba như thê Trong một quá trình thực hiện thì máy sẽ tuỳ chọn một

trong những bộ ba đĩ Như vậy với một xâu vào w cho trước, máy Turing khơng tiền định khơng phải chỉ cĩ một quá trình thực hiện mà cĩ nhiều Chỉ cần cĩ một quá trình thực hiện trong những quá trình đĩ chứa một hình trạng mà trạng thái trong đĩ là trạng thái thừa nhận, thì

máy thừa nhận xâu vào

Từ đĩ nếu so sánh hành vị của các máy Turing tiền định và khơng tiền định đối với các quá trình thực hiện vơ hạn, thì:

o với máy Turing tiền định, một thực hiện vơ hạn chỉ cĩ thể xã: ra với một xâu vào khơng được thừa nhận (vẫn với giả thiệt khơng làm suy giảm tính tổng quát, là máy khơng cĩ dịch

Trang 20

3 Các dạng mở rộng của các máy Turing 161

© với một máy Turing khơng tiền định, một thực hiện vơ hạn vẫn cĩ thể xây ra khơng những với một xâu vào khơng được thừa

nhận, mà cịn cả với một xâu vào được thừa nhận (bởi một quá

trình thực hiện khác)

Do sự khác biệt đĩ mà ta khơng đưa vào khái niệm quyết định với

máy Turing khơng tiền định Định lý V.3

Mọi ngơn ngữ được thừa nhận bởi một máy Turing khơng tiền định thì

đều cĩ thể thừa nhận bởi một máy Turing tiền định 0 Chứng minh

Chứng minh của định lý được xuất phát từ một ý tưởng đơn giản: chỉ việc cho máy Turing tiền định mơ phỏng lại hết các quá trình thực hiện của máy Turing kRơng tiền định Tuy nhiên vấn để nấy sinh là

các thực hiện đĩ khơng thể tiến hành đồng thời được (như ta đã làm đối với các ơ tơ mát hữu hạn để chứng minh Định lý II.2) Quả vậy,

mỗi quá trình thực hiện của máy Turing (khác với ơ tơ mát hữu hạn) đều cần đến một vùng làm việc trên băng, bởi vậy nếu muốn mơ

phỏng đồng thời mọi quá trình thực hiện của một máy Turing khơng tiền định bằng một máy Turing tiền định, thì ta phải bố trí các vùng làm việc cho tất cả các quá trình đĩ trên băng của máy Turing tiền định; nhưng cĩ bao nhiêu vùng (ứng với bao nhiêu quá trình) và mỗi vùng dài bao nhiêu thì ta khơng thể biết trước để mà bố trí được Như vậy giải pháp khả thi sẽ là mơ phỏng lần lượt các quá trình thực hiện

Nhưng vấn đề nấy sinh lại là cĩ một số quá trình là vơ hạn, và khi đã sa vào việc mơ phỏng cho một quá trình như vậy thì ta khơng cịn cơ

hội để xem xét các quá trình cịn lại, mà biệt đâu trong đĩ lại cĩ quá

trình đi đến thừa nhận Để khơng rơi vào tình trạng trên, ta vẫn mơ phỏng lần lượt các quá trình nhưng chỉ trên một tiền tố của chúng; với độ dài tăng dần: 1, rồi 2, rồi 3, Cứ thế, cho đến khi một trong các

quá trình đến một trạng thái thừa nhận, thì xâu vào sẽ được thừa nhận Ta hãy hình thức hố cách tiếp cận này Đối với một máy Turing

khơng tiền định đã cho, cĩ một số tối đa các chọn lựa cho:bởi hàm chuyển 8 Số đĩ là: = max(#ơ(4,X)), g<Q, XeT

Trang 21

162 Ch.V Máy Turing đĩ, để mơ tả các chọn lựa đã thiết lập trong một tiền tố cĩ độ dài m

của một quá trình thực hiện, ta chỉ cân cho một dãy zø sơ nhỏ thua

hoặc băng z (nêu một chọn lựa được chỉ ra là khơng tương ứng với một dịch chuyên cĩ thực, thì sự mơ phỏng tiên tơ đĩ ngừng mà khơng

thừa nhận)

Để thực hiện sự mơ phỏng máy Turing khơng tiền định, ta dùng một máy Turing tiền định cĩ ba băng

1) Băng thứ nhất chứa xâu vào và khơng bị điều chỉnh (nĩ giúp tìm

lại được xâu vào mỗi khi bắt đầu lại một quá trình thực hiện) 2) Băng thứ hai dùng để chứa các dãy số nhỏ thua hay bằng r 3) Băng thứ ba dùng cho máy Turing tiền định mơ phỏng các hành

vi của máy Turing khơng tiền định

Máy tiền định hoạt động như sau:

1) Trên băng thứ hai, nĩ sản sinh lần lượt các dãy hữu hạn các số

nhỏ thua hoặc bằng z Các dãy này được sản sinh theo thứ tự độ

đài tăng dần, và với cùng một độ dài thì theo thứ tự độ lớn của

số được biểu diễn bởi dãy đĩ theo cơ sở z

2) Với mỗi một dãy đĩ, nĩ mơ phỏng máy khơng tiền định dựa vào các chọn lựa đã cho trong dãy

Nĩ ngừng và thừa nhận xâu vào khi sự mơ phỏng của một quá trình thực hiện của máy khơng tiền định đến một trạng thái thừa nhận L1

4 CÁC NGƠN NGỮ ĐỆ QUY KỂ ĐƯỢC VẢ ĐỆ QUY Nhắc lại rằng: một ngơn ngữ đệ quy kế được là một ngơn ngữ được thừa nhận bởi một máy Turïng, và một ngơn ngữ đệ quy là một ngơn ngữ được quyết định bởi một máy Turing

Trong tiết này ta sẽ xét thêm ba cách xác định khác và các tính chất

của các ngơn ngữ đệ quy kê được và đệ quy

4.1 Ngơn ngữ tính tốn bởi máy Turing

Trang 22

i Ệ | Ệ : § b Ệ 4 Các ngơn ngữ đệ quy kê được và độ quy 163

Ta gọi ngơn ngữ tính tốn bởi M là tập hợp các xâu: {w | Sw sao cho Mngimg voi u va w =fidu)} Định lý V.4

Một ngơn ngữ là ngơn ngữ tính tốn bởi một máy Turing khi và chỉ

khi nĩ là ngơn ngữ đệ quy kề được 0 Chứng minh

* Cho Ƒ là một ngơn ngữ được thừa nhận bởi một máy Turing Ä⁄ Máy

Turing Ä⁄? mơ tả như sau đây sẽ tính tốn ngơn ngữ đĩ

1) Đầu tiên, ÀZ ghi nhớ xâu vào (cĩ thể giả thiết rằng nĩ cĩ một

băng thứ hai dùng vào việc đĩ)

2) Tiếp đĩ, nĩ làm việc đúng như À⁄

3) Néu M thiva nhan, M chép lại xâu vào đã nhớ lên băng

4) Nếu Ä⁄ khơng thừa nhận, Ä kéo dài sự thực hiện ra vơ hạn

* Bây giờ lại cho một ngơn ngữ tính tốn bởi một máy Turing ẤM, và

chứng minh rằng nĩ được thừa nhận bởi một máy Turing 3⁄” Để xác định một xâu vào w là cĩ thừa nhận được khơng, máy 3ˆ sẽ kiểm tra

là cĩ chăng một xâu mà w = /„Á)

Đương nhiên là M” chưa biết xâu và cách chọn lựa duy nhất của nĩ

là thử một cách cĩ hệ thống tất cả các xâu Vấn đề là ở chỗ khi kiểm

tra phai ching w = fidu) đối với một xâu u cho trước thì rất cĩ thể là

sẽ rơi vào một quá trình thực hiện vơ hạn và như thế sẽ khơng cịn khả năng xem xét các xâu tiếp theo

Một khĩ khăn tương tự như vậy đã được xử lý khi ta chứng minh rằng

mỗi máy Turing khơng tiền định là tương đương với một máy Turing tiền định (Định lý V.3) Ta tận dụng kết quả đã thu được ở đĩ để đưa ra một máy Ä? dưới dạng một máy Turing khơng tiền định

1), Đầu tiên máy Ä⁄ ghi nhớ lại xâu vào w

2) Tiếp đĩ nĩ sản sinh một cách khơng tiền định một xâu 3) Máy Mĩ mơ phỏng hành vi của M trên u

4) Néu M ngimg với ø, thì M⁄° so sánh w với ƒ24z) và thừa nhận w

nếu w = fidu)

Trang 23

164 Ch.V Máy Turing

4.2 Ngơn ngữ sản sinh từ một văn phạm loại 0

Chúng ta nhớ lại rằng một văn phạm loại 0 (hay văn phạm tổng quat) là một văn phạm (xem Mục 3.3, Chương ]) trong đĩ mỗi quy tắc d—>B chỉ thoa man yéu cau: Be(ZUA)*, we(ZUA)*A(ZUA)* ma khéng c6

thêm điều kiện ràng buộc nào khác Thí dụ

Văn phạm sản sinh ra ngơn ngữ {đ' |¡ là một luỹ thừa dương của 2}

được định nghĩa như sau:

1)S -> ACaB 2) Ca—> aaC 3) CB—> DB 4) CB — E 5)aD > Da 6) AD -> AC 1) aE > Ea 8) AE —>e

A và B giữ vai trị là các ký hiệu đánh dấu mút trái và mút phải của một dạng câu (xâu trung gian trong một suy dẫn) c đi chuyên từ trái

sang phải, vượt qua các z giữa 4 và B và gập đơi số các a đĩ lên theo quy tắc (2) Khi C gặp B, nĩ trở thành D hay Z theo các quy tac (3) hay (4) Néu Ð được chọn, thì D di chuyển trở về bên trái theo (5), cho

đến khi gặp A, bấy giờ nĩ lại trở thành Œ bởi (6) và như thế khép kín

một chu trình Nếu E được chọn, thì B biến mất bởi (4), và E di chuyển, trở về bên trái theo @) cho đến khi gap 4, thì nĩ xố 4 và

biến mắt theo (8), để lại xâu gồm 2! ký hiệu a, với ¡ > 0

Cĩ thể chứng minh bằng quy nạp theo số bước trong suy dẫn rằng nếu

quy tắc (4) cịn chưa dùng đến, thì mọi đạng câu trong suy dẫn phải ở một trong ba dạng sau:

i Ss

ii) AaCaJ, trong đĩ j+27 là một luỹ thừa dương của 2

iii) 4a 'DdB, trong đĩ ¡+/ là một luỹ thừa dương của 2

Khi (4) được dùng, ta thu được dạng câu 4z'E trong đĩ ¡ là một luy thừa dương của 2 Tiếp đĩ thi chi cĩ thể áp dụng ¡ lần quy tắc (7) để

tới AEal Cuối cùng với (8), ta cĩ đ' trong đĩ ¡ là một luỹ thừa dương của2 O

Định lý V.5

Một ngơn ngữ là ngơn ngữ sản sinh từ văn phạm loại 0 khi và chỉ khi

Trang 24

4 Các ngơn ngữ độ quy kẻ được và đệ quy 165 Chứng minh

* Dau tiên ta chứng minh rằng một ngơn ngữ được sản sinh từ một

văn phạm loại 0, thì cũng sẽ được thừa nhận bởi một máy Turing Ý

tưởng của chứng minh là xây dựng một máy Turing cĩ khả năng ghi nhớ xâu vào, sản sinh một cách khơng tiền định một suy dẫn của văn

phạm đã cho và thừa nhận nếu xâu thu được của suy dẫn đĩ trùng với

xâu vào đã ghi nhớ Giả sử văn phạm đã cho là G = (, A, P, S), máy Turing Ä⁄ mơ tả như sau sẽ hiện thực hố ý tưởng trên và sẽ thừa nhận

ngơn ngữ sản sinh tir G

1) Khởi đầu Ä⁄ ghi nhớ lại xâu vào; ta giả sử nĩ cĩ một băng thứ hai dành riêng cho việc này

2 Tiếp đĩ, nĩ xố băng chính của nĩ và đặt lên đĩ ký hiệu đầu 6 của

văn phạm

3) Lặp lại chu trình sau day:

a)- Chọn (một cách khơng tiền định) một quy tắc của P và một xâu

con trên băng; :

b)_ Nếu xâu con đã chọn là đồng nhất với về trái của quy tắc trên,

thì thay nĩ bởi về phải của quy tắc; ;

e) So sánh nội dung trên băng với xâu vào được ghi nhớ, nếu là đồng nhất thì thừa nhận; nếu khơng thì lặp lại chu trình

* Bây giờ ta chứng minh rằng một ngơn ngữ được một máy Turing

thừa nhận thì cũng sẽ được sản sinh bởi một văn phạm loại 0 Ÿ tưởng

của chứng minh là xây dựng một văn phạm mà các từ được sinh ra là tương ứng với các hình trạng-cĩ thê của máy Vậy với một máy Turing M = (2, QO, T, 5, qo, B, F) đã cho, ta lập văn phạm

G=(2, A, P, S;) san sinh ra các xâu do M thừa nhận, với: A= (LU fe} xT JU {S1,S2,#})

Các quy tắc trong P được định nghĩa sao cho mỗi suy dẫn được diễn

Ta theo ba giai đoạn:

e _ Giai đoạn một: Œ sản sinh một cách khơng tiền định một xâu w

thuộc Ð* Xâu này được viết thành hai bản để cho một bản sẽ được giữ nguyên cho đến cuối suy dẫn, cịn bản kia sẽ biến đổi theo các

Trang 25

166 Ch.V May Turing

1b) S2 —> [a,a]5 với mọi ae3 Ic) Soe

e Giai đoạn hai: G bắt chước một thực biện của 1 trên xâu Vào w bằng cách thực hiện đúng suy dẫn tương ứng của hệ viết lại ngầm định của M Vay cdc quy tắc dùng trong giai đoạn này được thành lập như

Sau:

9 Nếu ð(4,X) =(@,Y,R) với pqeQ và X,YeT, ta đưa vào P các

quy tắc cĩ dạng (2a) hay (2b) như sau:

2a) q[a,X] [b,Z] — [a,Y] p [ư,Z] với mọi a,beZU{e} và

mọi Zel"

2b) q[a,X]#-> [a,Y] p [e,B]# với mọi aeS\2{£}

ộ Nếu 8(q.X) = (p,Y,L) với p,q<Q và X,YeT, ta đưa vào P các quy tắc cĩ dạng (2c) như sau:

2£) [ðZ] 4 [a.X] > p[b,Z] [a,¥] voi mọi a,beZU{e} va moi Ze

© Giai doan ba: Giai doan này chi tồn tại khi giai đoạn hai kết thúc với sự xuất hiện một trạng thái ạeƑ (nghĩa là M thừa nhận xâu

w) Lúc đĩ G biến đổi xâu được sản sinh ở cuối giai đoạn hai về xâu

w Các quy tắc dùng cho giai đoạn này cĩ các dạng (3a), (3b), (3©),

(3d), (3e) với mọi ạeƑ':

3a) [4,X] — gaq, với mọi ae>U{e} và mọi XeT 3b) 4[a,X] —> gaq, với mọi ae3\/{e} và mọi XeT

3c) g#—e 3d) #g>e 3e) gq>e O

4.3 Các ngơn ngữ kê được

Thuật ngữ “đệ quy kể được” mà ta gán cho các ngơn ngữ loại 0 (xem

Mục 3.3 Chương I) xuất phát từ khả năng là cĩ thê kế ra được (liệt kê

được) bằng một thủ tục hữu hiệu đối với các ngơn ngữ đĩ Nếu chấp

nhận rằng các máy Turing là một dạng hình thức của chính các thủ tục

Trang 26

4 Các ngơn ngữ đệ quy kẻ được và đệ quy 167

tỏ rằng với mọi ngơn ngữ đệ quy kể được (tức là đã được thừa nhận bởi một máy Turing) tồn tại một máy Turing sản sinh lần lượt tất cả

các xâu của ngơn ngữ đĩ

Ý tưởng đầu tiên đến ngay với chúng ta hẳn là như sau: Cho một máy Turing M, để kế lần lượt các xâu được thừa nhận bởi máy đĩ, ta chỉ

cân

e _ sản sinh tất cả các xâu trên bộ chữ vào theo độ dai tăng và thứ tự từ điển,

e với mỗi xâu mới, mơ phỏng quá trình đốn nhận của M và chỉ

ghi nhận xâu đĩ nếu nĩ được 3⁄ thừa nhận

Tuy nhiên giải pháp đĩ là khơng hữu hiệu, vì quá trình liệt kê sẽ bị bế

tắc ở xâu đầu tiên mà trên đĩ máy M cĩ một quá trình thực hiện vơ hạn, mặc dù sau xâu đĩ thì vẫn cĩ thể cịn những xâu được M thừa

nhận

Giải pháp đúng đắn là phải dùng một trật tự liệt kê khác Xét các cặp

(w,n) trong đĩ w là một xâu và n là một số tự nhiên Tập các xâu và tập các số tự nhiên đều là kể được, do đĩ tập các cặp , n) cũng là kế được Bảng cho trén Hinh V.8 chi ra một trật tự liệt kê cĩ thể được của các cặp đĩ n w 1 2 3 4 wy (1,1) —>_1,2) (1,3) —>_01,4) %2 tu a 2= wạ (93,1) (93,2) wa tứ) Ti Hình V.8 Trật tự kế lần lượt các cắp

Từ đĩ thì quá trình kể lần lượt mọi xâu mà M thừa nhận cĩ thể thực hiện một cách hữu hiệu như sau:

Trang 27

168 Ch.V Máy Turing

e Với mỗi cặp đĩ, mơ phỏng sự thực hiện của Ä⁄ trên w nhưng chỉ giới hạn sự thực hiện đến ø bước Ghi nhận xâu w nếu quá trình đĩ thừa nhận w

e Chuyển sang cặp tiếp sau

4.4 Tính chất của các ngơn ngữ đệ quy kê được và đệ quy

Định lý V.6

Nếu 7¡ và L; là các ngơn ngữ đệ quy kể được, thì L¡LJLa, Ly.L2 va Li*

đều là các ngơn ngữ đệ quy kể được O Chứng minh

Xin nhường sự chứng minh cho độc giả: Hãy dùng các văn phạm loại 0 và tham khảo trường hợp các ngơn ngữ phi ngữ cảnh (xem Mục 3.1,

Chương IV) O

Định lý V.7

Nếu 7¡ và L; là các ngơn ngữ đệ quy kể được, thì r,=W cũng là ngơn ngữ đệ quy kê được Chứng minh Chứng minh là rất đơn giản nếu dùng các máy Turing 0 Định lý V.8 Lớp các ngơn ngữ đệ quy kể được là khơng đĩng đối với phép lấy bổ sung O Hệ quả V.1 Tơn tại các ngơn ngữ khơng là đệ quy kể được 0 Chứng minh

Trang 28

4 Các ngơn ngữ đệ quy kẻ được và độ quy 169 cách sau: nếu ta ky hiéu x) = a va x.= b và ký hiệu đi = R và 4¿= ¿thì

ta cĩ thể mã hố một quy tắc r' (một tương ứng của hàm ð) ð(g,x;) = (qux;„ đ;) bằng từ cứ) = blaab*ablab°, và nêu M là một máy

Turnng với các quy the rura, Tp thi ta inal hod M bing ti c(n\)aac(›)aa aac,)aaa Tập hợp các máy Turing duge ma hoa nhu vậy là một tập hợp đêm được bởi vì ching tương ứng 1-1 với một tập con của tập {a,b}* Vậy thì ta cĩ thể đánh số ching va goi M, là máy

Turing thứ ¡ trong cách đánh số đĩ Mặt khác thì ta cũng cĩ thể đánh số tất cả các xâu trong {a,b}*, ching han bang cach sap chung theo

trật tự độ dài tăng dần và với các xâu cĩ độ dài bằng nhau thì sắp theo

trật tự từ điển Gọi w; là xâu của {z,b}* đứng thứ j trong trật tự đánh

số đĩ

Ngơn ngữ L = (wi | w; được thừa a nhận bởi Ä,} là một ngơn ngữ đệ quy

kể được mà bổ sung của nĩ Ly lai là khơng đệ quy kể được Xin

nhường cho độc giả chứng minh ring L 1a đệ quy kể được, và ta chỉ chứng minh ở đây rằng 7 là khơng đệ quy kể được

Để phản chứng ta giả sử rằng cĩ một máy Turing thừa nhận ngơn ngữ L, và đương nhiên máy đĩ phải cĩ một số thứ tự k nào đĩ Bây giờ

hãy xét xâu wạ:

- Nếu xâu đĩ được M¿ thừa nhận, thì nĩ thuộc vào L (theo định

nghĩa của L), và như vậy thì nĩ khơng thuộc 7 và (theo giả thiết của phản chứng) nĩ khơng được thừa nhận bởi Mự

- Nếu xâu đĩ khơng được A⁄¿ thừa nhận, thì nĩ khơng thuộc vào L

(theo định nghĩa của 7), và như vậy thì nĩ lại thuộc 7 và (theo giả thiết của phản chứng) nĩ được thừa nhận bởi Ä⁄¿

Trong mọi trường hợp cĩ thể, ta đều đi đến mâu thuẫn Vậy L khơng là đệ quy kể được 0

Nguyên nhân sâu xa của tính chất nêu trong Định lý V.8 chính là ở

chỗ các máy Turing thừa nhận các ngơn ngữ đệ quy kể được cĩ thể cĩ

các quá trình thực hiện vơ hạn Cịn với một ngơn ngữ đệ quy, luơn luơn cĩ thể được thừa nhận bởi một máy Turing mà với bất cứ hình

trạng xuất phát nào nĩ cũng sẽ dừng, thì các tính chất như sau ee sé

Trang 29

170 Ch.V Máy Turing Định lý V.9 vú Nếu 7 là một ngơn ngữ đệ quy, thì ngơn ngữ 7 cũng là một ngơn ngữ đệ quy [1 Định lý V.10 ;

Một ngơn ngữ là đệ quy khi và chỉ khi nĩ là đệ quy kê được và bd

sung của nĩ cũng là đệ quy kể được 0

Các Định lý V.8 và V.9 cũng dẫn tới một hệ quả là tồn tại các ngơn ngữ là đệ quy kể được mà khơng là đệ quy

BÀI TẬP

V.7 Chongénngt L={a"b"c"| n20}

a) Hãy lập một máy Turing tính tốn L b) Hãy lập một máy Turing liệt kê L

V.8 Hay lập các văn phạm tổng quát lần lượt sản sinh các ngơn ngữ Sau:

a) {ww|we{0,1}*} b) {2”|m>1}

©) {a7 |n20} :

4) {a”|p là số khơng nguyên tố}

5 NGON NGU CAM NGU CANH VA

Õ TƠ MẤT TUYẾN TĨNH GIỚI NỘI

5.1 Văn phạm cảm ngữ cảnh

Nhắc lại rằng ngơn ngữ cảm ngữ cảnh là ngơn ngữ được sản sinh từ một văn phạm cảm ngữ cảnh (văn phạm loại 1) Văn phạm cảm ngữ cảnh là một văn phạm G = (, A, P, Š) mà (xem Mục 3.3 Chương 1) trong đĩ mỗi sản xuất đều ở dạng œ4—>œœB, với œ,B e(ELJA)*, 4À, @e(ZUA)’

Trang 30

5 Ngơn ngữ cảm ngữ cảnh và ơ tơ mát tuyến tính giới nội 171

xung quanh Chính vì lẽ đĩ mà cĩ các tên gọi văn phạm cảm ngữ cảnh và văn phạm phi ngữ cảnh

Nhận xét thêm rằng trong văn phạm cảm ngữ cảnh thì mỗi sản xuất

đều cĩ độ dài về trái nhỏ thua hoặc bằng độ dài vế phải (chính vì vậy

mà nĩ khơng thể sản sinh ra xâu rỗng e)

Nĩi chung thì một văn phạm mà trong đĩ mỗi sản xuất œ->B đều thoả mãn điều kiện |œ| < BI được gọi là một văn phạm đơn điệu Cĩ thể chứng minh rằng mọi văn phạm đơn điệu bất kỳ đều cĩ thể biến đổi tương đương về văn phạm cảm ngữ cảnh (xem bài tap V.9, voi gợi ý chứng minh từ thí dụ dưới đây) Vì vậy mà một văn phạm đơn điệu cũng thường được gọi ngay là văn phạm cảm ngữ cảnh Thí dụ Xét văn phạm đơn điệu G = (3, A, P, S) với A= (6%, B), š = (a,b,c) và P gồm cĩ các quy tắc sau: 1) SaSBe 2) S abe 3) cB—>Bc 4) bB—bb

Văn phạm này sản sinh ngơn ngữ L = {a"b"c" | n>1} Quả vậy : Xuất phát từ Š ta chỉ cĩ thể áp dụng nhiều lần quy tắc (1) rồi kết thúc sự đệ quy với S đĩ bằng quy tắc (2), để cĩ:

S=>* d”'S(Be)"! = a"'abc(Be)}”` với n>1

Tiếp đĩ chỉ cĩ thẻ áp dụng quy tắc (3) nhiều lần để đây các c ra sau

các P, và thu được:

a”labc(Bc)"! =* đ”bB"'c"

Cuối cùng áp dụng (4) để chuyển các ÿ thành b va do đĩ cĩ được kết quả chờ đợi: $ =* 4”Ư"c”.với n>1

Cĩ thể đưa văn phạm đơn điệu trên về văn phạm cảm ngữ cảnh như

Trang 31

172 Ch.V May Turing

một ký hiéu khéng két thic méi C cing véi san xuất mới C—>c, ta sẽ

thu được văn phạm tương đương sau: 1") §-»aSBC 2) S—abC 3') CB->BC 4) bB-»bb 5) C3

Bay gid loai bo (3”), déng thoi đưa thêm hai ký hiệu khơng kết thúc

mới là Dị, D; (chú ý 2 là độ dài về trái của sản xuất này) và thêm các sản xuất: 31) CB>D,B 32) D¡B-›D,D; 33) D,D;->BD; 34) BD,>BC

Bốn sản xuất mới này đều ở dạng cảm ngữ cảnh, và khơng thể dùng ở

đâu khác ngồi việc phải thực hiện một cách liên hồn đề tạo ra hiệu

quả tương đương với sản xuất (3) [

5.2 Bài tốn từ đối với văn phạm cảm ngữ cảnh Định lý V.11

Tén tại thuật tốn để xác định, với mỗi văn phạm cảm ngữ cảnh bắt kỳ G=Œ, A,P, 5) và một xâu bất kỳ we>*, phải chăng we_(G) đ Chứng minii

Giả sử Jø| = ø Lập đồ thị mà mỗi đỉnh là một xâu thuộc (ELA)* cĩ độ dài nhỏ thua hoặc bằng ø Cĩ một cung từ đỉnh œ tới đỉnh ÿ nếu

Trang 32

5 Ngơn ngữ cảm ngữ cảnh và ơ tơ mát tuyến tính giới nội 173 Thí dụ Cho văn phạm cảm ngữ cảnh Œ: 1) S->aSBC 5) bB->bb 2) S>aBC 6) bC—>bc 3) CB->BC 7) cC—>cc 4) aB—›ab

và cho xâu w = aưưc, hỏi phải chăng weL(G)?

Để tìm đường di từ đỉnh Š tới đỉnh w trong đồ thị nĩi trên ta cĩ thể

dùng phương pháp “vết dầu loang” như sau: Lập các R() với ¡ = 0,1,2, theo cách sau:

RO) = {S}

RŒ)= RŒ-1) O{B|œ=>B với œeRŒ-1) và |B|<|w|}

Do R(0)c#(1)G c RŒ) c RŒ+1) C tập các đỉnh,

vậy tồn tại k sao cho: R(k) = R(k+1) = R(K+2) =

Như thế quá trình thành lập các RŒ) cĩ thể ngừng sau È bước, và we1(G) khi và chỉ khi cĩ ¡ < k để cho weR()

Trong thí dụ trên thì, với chú ý |w| = 4, ta cĩ: #(0)={5}

R(1) = {S, aSBC, aBC} R(2) = {S, aSBC, aBC, abC} R(3) = {S, aSBC, aBC, abC, abc} R(4) = RG)

Vậy xâu abbc khéng thuéc L(G) - 0 Chủ thích

Trang 33

174 Ch.V Máy Turing

được rằng tồn tại ngơn ngữ đệ quy mà khơng là ngơn ngữ cảm ngữ

cảnh (xem [21]) Tĩm lại ta cĩ trật tự phân câp sau:

~ Lớp các ngơn ngữ chính quy thực sự nằm trong lớp các ngơn ngữ phí ngữ cảnh - Lớp các ngơn ngữ phi ngữ cảnh khơng chứa xâu rỗng thực sự nằm trong lớp các ngơn ngữ cảm ngữ cảnh - Lớp các ngơn ngữ cảm ngữ cảnh thực sự nằm trong lớp các ngơn ngữ đệ quy - Lớp các ngơn ngữ đệ quy thực sự nằm trong lớp các ngơn ngữ đệ quy kể được

- Tén tai ngơn ngữ khơng là đệ quy kể được 5.3 Ơ tơ mát tuyến tính giới nội

Ơ tơ mát tuyến tính giới nội là một máy Turing khơng tiền định và khơng cĩ khả năng nới rộng vùng làm việc ra khỏi mút phải và mút

trái của xâu vào

Nĩ khơng bao giờ sử dụng tới các ơ trống trên băng về phía phải và phía trái của xâu vào, cho nên ký hiệu trắng B như đã dùng ở máy Turing là khơng cần dùng ở đây Trái lại để ơ tơ mát tuyến tính giới nội nhận biết được giới hạn bên trái và giới hạn bên phải của xâu vào,

ta phải đưa thêm vào 5 hai ký hiệu đặc biệt #, và #p để đánh dấu mút trái và mút phải của xâu vào Vậy lúc xuất phát, xâu vào ở trên băng

sẽ cĩ dạng #wfp trong đĩ we(Z-{#„#;})* là xâu cần đốn nhận Trong quá trình làm việc, khi đầu đọc tới ơ cĩ chứa #, hay #p thì phản ứng được phép tiếp sau đĩ chỉ cĩ thê là đổi trạng thái, chuyển đầu đọc trở lại phía trong (tức là chuyển phải khi gặp #, và chuyển trái khi gặp #,) mà khơng được viết gì khác thay cho #y và #ụ

Trang 34

5 Ngơn ngữ cảm ngữ cảnh và ơ tơ mát tuyến tính giới nội 175

"- Nếu(@,Y,E) e ð(g.#) thì Y=#và E=£ " Nếu(Œ,F,E) c ư(g#,) thì Y=#pvà E=L

Hệ viết lại (V„P) ngầm định của ơ tơ mát tuyến tính giới nội A cĩ bộ

chữ V = QUI (bao gồm # và #p) và cĩ tập P các quy tắc ở các dang sau đây, trong đĩ p,geQ và X,YeI'-{f#t#p}:

1) 4X-—› Yp tương ứng với (p,Y,R) e ð(g,X)

2) Z4X — pZY tương ứng với (p,Y,L) e ơ(g,X) với mọi ZeT` 3) gt > Hp tương ứng với (p,#„R) e ơ(g,#h)

4) Za#y > pZf; tương ứng với (p,#p,L) ð(g,#y) với mọi Zel"

Với các quan hé suy din > va >* ở trong hệ viết lại đĩ, ta định nghĩa

ngơn ngữ thừa nhận bởi ơ tơ mát tuyên tính giới nội M là:

1(M)= {w| we(Œ-{#,#,})* và #qowfp>*yuy› với peF' và TizeT*}

Chú thích

Bởi các đạng (1)-(4) thì một sản xuất œ->B trong hệ viết lại ngầm định

của một ơ tơ mát tuyến tính giới nội luơn luơn thoả mãn điều kiện |ơ| < |B|- Trái lại máy Turing cĩ thể cĩ quy tắc với dạng X#->ŸpB# (nới rộng vùng làm việc sang phai) khơng thoả mãn điều kiện này 5.4 Tương đương giữa ơ tơ mát tuyến tính giới nội

và văn phạm cảm ngữ cảnh

Lưu ý rằng ơ tơ mát tuyến tính giới nội cĩ thẻ thừa nhận xâu rỗng s, cịn văn phạm cảm ngữ cảnh thì khơng thể sinh ra s Ngồi trường hợp đĩ ra thì ta sẽ thấy ơ tơ mát tuyến tính giới nội thừa nhận đúng các ngơn ngữ cảm ngữ cảnh

Định lý V.12

Nếu L là một ngơn ngữ cảm ngữ cảnh, thì ⁄ được thừa nhận bởi một ơ tơ mát tuyến tính giới nội nào đĩ _H

Chứng minh

Trang 35

176 Ch.V May Turing

sản sinh các dạng câu, bắt chước suy dẫn của văn phạm, mà chỉ dùng

rãnh thứ hai trên băng của ơ tơ mát tuyến tính giới nội vào việc đĩ

Với G = Œ, A, P, Š) là văn phạm cảm ngữ cảnh đã cho, ta lập một ơ tơ mát tuyến tính giới nội M như sau: Băng gồm hai rãnh, ranh 1 chira xâu vào w v6i cdc dau chan #,, #) 6 hai dau, rinh 2 ding dé san sinh các dạng câu œ của van phạm Bắt đầu nếu w = e thì ơ tơ mát dừng và

khơng t thừa nhận, néu khơng thì viết Š ở rãnh 2, ngay dưới ky hiệu bên trái nhất của w Tiếp đĩ M thực hiện quá trình sau:

1) Chọn một xâu con B của œ trên rãnh 2 một cách khơng đơn

định sao cho B—>y là một sản xuất trong P

2) Thay B bởi y, nếu cần dịch chuyên phần đuơi sang phải cho đủ chỗ, tuy nhiên nếu dịch chuyển ra ngồi #; thì ngừng và khơng

thừa nhận

3) (Tới đây ở rãnh 1 là #w#y, cịn ở rãnh 2 là một xâu œ mà

S=o* ava |ơ| < bw) So sánh rãnh 1 và rãnh 2, nếu œ = w thì ngừng và thừa nhận, nếu khơng thì trở về bước (1)

Như vậy khi M thừa nhận xâu w thì S =s* œ Ngược lại nếu Š =e* œ

thi moi dang cau a xuất hiện trong suy dẫn đĩ đều thoả mãn |ơ| < ]w|, bởi vì mọi sản xuất §—»y đều cĩ |B| < |y| Bởi thế M cĩ thể thực hiện suy dẫn đĩ trong rãnh 2, giữa hai mút #\ và #p Vậy M thừa nhận w Tĩm lại M thừa nhận mọi xâu và chỉ những xâu sinh ra bởi văn phạm G Oa

Định lý V.13

Nếu 7 = "(M) với một ơ tơ mát tuyến tính giới nội A= Œ,O.T, ð, 90>

#,, #p, F) thi L-{e} 1a một ngơn ngữ cảm ngữ cảnh Chứng mình

Cách chứng minh cũng tương tự như cách chứng minh phần hai của

Định lý V.5, bằng cách xây dựng một văn phạm cảm ngữ cảnh Œ làm

việc qua ba giai đoạn:

- Giai doan 1: Van phạm sinh ra một xâu w (xâu vào của Ä⁄), với hai bản, cùng với các ký hiệu #4, #; và đọ, tạo ra một hình

Trang 36

5 Ngơn ngữ cảm ngữ cảnh và ơ tơ mát tuyến tính giới nội 177 -_ Giai đoạn 2: Văn phạm lặp lại cơng việc của hệ viết lại ngầm định của M

-_ Giai đoạn 3: Khi xuất hiện geF, thu về xâu w

Lưu ý rằng trong hệ viết lại của M, cdc sin xudt œ->B đều cĩ |œ| = |B| vậy mơ phỏng lại các sản xuất đĩ bởi các sản xuất trong văn: phạm cảm ngữ cảnh là khơng cĩ vướng mắc gì Chỉ cĩ ở giai đoạn 3 thì việc xố đi các ký hiệu #, #p và q khơng được phép làm co ngắn xâu lại

Để giải quyết vướng TÚC này, ta gắn các ký hiệu # , #) va q với các ký hiệu kề bên của xâu vào mà khơng để đứng rời ra như DEN

Cụ thể giai đoạn 1 thực hiện với các sản xuất trong G sau:

Si > [a, #rqoa]S2 Sĩ —> [4, #qozfp]

S) > [a, a]Sp S > [a, at] vGi moi a € L-{#,#5}

Các sản xuất trong G cho thứ, thực hiện giai đoạn 2 rập khuơn các

sản xuất trong hệ viết lại ngâm định của Ä⁄, xin nhường để các bạn đọc xây dựng lấy

Cuối cùng, ở giai đoạn 3, để thu về xâu w khi gặp eƑ thì:

- Đầu tiên là phải biến đổi ơ cĩ chứa ạ Muốn thế trong G phải cĩ các sản xuất cĩ đạng:

[4, œqB] —> ä

với mọi ae>-{#„#,}, mọi qeF va moi a, B cĩ thể cĩ

Số sản xuất như vậy là hữu hạn, vì œ và/hoặc ÿ chỉ gồm #„„#; và một

ký hiệu vào

- Tiếp đĩ biến đổi các ơ cịn lại nhờ các sản xuất cĩ dạng: [a, ơ]ð —> ab

b[a, a] > ba

với mọi a,be>-(#,#,} và mọi œ cĩ thể cĩ

Như vậy văn phạm được xây dựng là văn phạm cảm ngữ cảnh và ta cĩ thể chứng minh:

Trang 37

178 Ch.V Máy Turing

BÀI TẬP

V.9 Chimg minh ring mọi văn phạm đơn điệu đều cĩ thể biến đơi tương đương về một văn phạm cảm ngữ cảnh

V.10 Lập các văn phạm cảm ngữ cảnh (hay đơn điệu) cho các ngơn ngữ sau đây: a) {ww|we{0,1}} b) {a"|n21} c) {a’|plasd khong nguyên tố} đ) {abc | i> 1} a {ab“|i>1,k<ï}

V.1I Chứng minh rằng lớp các ngơn ngữ cảm ngữ cảnh là đĩng đối

với các phép hợp, ghép tiếp, giao

V.12 Lập các ơ tơ mát tuyến tính giới nội đốn nhận các ngơn ngữ: a) {2b'#|n>1}

b) {ww|w e {a,b,c}*}

al

Trang 38

EPCs ses CHUONG VI

TINH DUOC VA KHONG TINH DUOC

Cho tới đây (từ Chương I đến Chương V) ta vẫn luơn luơn tập trung

vào vấn đề tìm kiếm các phương tiện để biểu diễn (sản sinh hay đốn

nhận) các lớp ngơn ngữ Trong Chương V ta đã nghiên cứu các máy Turing như là những ơ tơ mát đốn nhận các lớp ngơn ngữ, được gọi là các ngơn ngữ đệ quy kẻ được và đệ quy Thực ra thì may Turing là một cơng cụ hết sức quan trong trong Tin hoc ly thuyét, duge ding khơng chỉ trong Lý thuyết ngơn ngữ, mà cả trong Lý thuyết thuật tốn hay Lý thuyết tính tốn Người ta đã chọn máy Turing như là một mơ hình (một sự hình thức hố) của khái niệm trực quan về thuật tốn (hay thủ tục hữu hiệu) Với sự lựa chọn đĩ, mà ta sẽ giải thích vì sao ở ngay trong chương này, thì người ta khơng những đã cĩ thể chính xác

hố được khái niệm về sự tính được, mà cịn phát hiện ra sự khơng

tính được, cũng như làm rõ được những giới hạn lý thuyết (nghĩa là các giới hạn độc lập với cơng nghệ) của chính Tin học

1 MAY TURING VA SU TINH DUOC 1.1 Bài tốn và thuật tốn

Để cĩ khái niệm rõ thế nào là một bài tốn, ta hãy nhìn qua một số bài

tốn cụ thể:

(1) Xác định một số tự nhiên là chẵn hay lẻ là một bài tốn

(2) Tính tích của hai số nguyên m và mở là một bài tốn

(3) Sắp thứ tự một bảng các số là một bài tốn

(4) Xác định xem một chương trình viết bằng PASCAL là cĩ dừng với bất kỳ giá trị dữ liệu nào cung cấp cho nĩ là một bài tốn

(bài tốn đừng)

(5) Xác định một đa thức cĩ các hệ số nguyên là cĩ các nghiệm nguyên khơng là một bài tốn (bài tốn thứ mười của Hilbert)

Qua các thí dụ trên ta cĩ thể phát hiện được nhiều đặc trưng của khái niệm bài tốn

Trang 39

180 Ch.VI Tính được và khơng tính được

e Một bài tốn là một câu hỏi chung, nghĩa là một câu hỏi đặt ra cho một tập hợp các phần tử (chẳng hạn các số tự nhiên trong bài tốn @))

© M6i biéu hién (instance) cia bai tốn, nghĩa là mỗi trường hợp cá biệt của bài tốn, cũng tức là câu hỏi áp đặt cho một phan tử riêng biệt của tập hợp (chẳng hạn, phải chăng số 35 là chẵn?) cĩ một trả lời, Trả lời cĩ thê là bội (như trong các thí dụ (2) và (3)) hoặc là

nhị phân (như trong các thí dụ (1), (4), (5)) Một bài tốn với trả

lời nhị phân (cĩ, khơng) được gọi là một bời tốn quyết định Trong các nghiên cứu sau này, chúng ta lưu ý trước hết tới lớp các bài

tốn quyết định, bởi vì như thế cũng đủ để nghiên cứu các hiện tượng mà chúng ta quan tâm Vả lại các kết quả thu được từ lớp các bài tốn quyết định cĩ thể dễ dàng tổng quát hố cho các bài tốn khơng nhị phân

Để giải một bài tốn, ta phải tìm các thuật tốn cho ta kết quả trả lời từ mỗi biểu hiện của bài tốn Cần phải phân biệt bài tốn và thuật tốn, bởi vì một bài tốn cĩ thẻ được giải bởi nhiều thuật tốn khác nhau Nhưng thuật tốn là gì? Đĩ chính là câu hỏi cơ bản đặt ra cho chàng này Đâu đĩ hẳn nhiều bạn đọc đã gặp một định nghĩa đại loại như th

này: Thuật tốn (hay cũng gọi là (rủ fục hữu hiệu) là một mơ tả khơng nhập nhăng của một tập hợp các quá trình tính tốn; mỗi quá trình tính tốn được xác lập cho một dữ liệu và được phân rã thành một dãy các bước tính tốn, mà khi thực hiện kết thúc sẽ cho ta một kết quả Tập các cặp <dữ Hệu, kết quả> định nghĩa hàm được tính bởi thuật tốn

Một định nghĩa như vậy, theo kiểu lời lẽ dàn trải như ta thường thấy

trong các từ điền, chỉ cĩ thể cung cấp cho ta một hiểu biết trực quan đối với khái niệm cần định nghĩa Chỗ thiếu chặt chế trong định nghĩa này nằm ở đoạn: “mơ tả khơng nhập nhằng” Thực vậy, để định nghĩa

thuật tốn (là một văn bản mơ tả), ta khơng thể khơng nĩi đến ngơn ngữ diễn tả thuật tốn, mà ngơn ngữ đĩ thì phải ( chính xác về cú pháp và ngữ nghĩa để đảm bảo cho thuật tốn cĩ thể được hiểu một cách

ng nhập nhằng và được thực hiện một cách đúng đắn Đề tránh sự mơ hồ này, trong định nghĩa ta cĩ thể dùng một ngơn ngữ lập trình, như PASCAL chẳng hạn, làm ngơn ngữ diễn tả thuật tốn, vì cú pháp và ngữ nghĩa của ngơn ngữ đĩ thì đã được định nghĩa chặt chế roi Vay chẳng hạn ta sẽ định nghĩa: Một thuật tốn là một chương trình

Trang 40

1 Máy Turing và sự tính được 181 "nghe ET SNE

Điều đáng phân vân trong định nghĩa này là ở sự lựa chọn tuỳ tiện

ngơn ngữ PASCAL Cũng cĩ thẻ định nghĩa chẳng kém phần hợp lý

răng thuật tốn là một chương trình trong C, hoặc trong Lisp, hay trong ngơn ngữ 80X86, v.v Thực ra thì đã tồn tại các trình diễn giải

hay các trình biên dịch cho phép chuyển đổi các ngơn ngữ sang cho

nhau, cho nên việc chọn ngơn ngữ thuật tốn (là một ngơn ngữ rõ

ràng, chính xác nào đĩ) khơng cịn là vấn để quan trọng và một định

nghĩa thuật tốn dựa trên một ngơn ngữ thuật tốn cụ thể như trên là

chấp nhận được

Tuy nhiên, việc chọn một ngơn ngữ lập trình như PASCAL để hình thức hố khái niệm thuật tốn là khơng tạo thuận lợi cho việc nghiên

cứu lý thuyết, bởi vì cú pháp và ngữ nghĩa của các ngơn ngữ lập trình, được biểu hiện thơng qua các trình diễn giải hay trình biên dịch, là quá

phức tạp Vậy thì để hình thức hố khái niệm thuật tốn ta hãy dựa vào một ngơn ngữ thuật tốn đơn giản hết mức cĩ thể, mà sự diễn giải n6 hau như là tức thì Một trong những phương tiện hình thức hố

được chọn lựa chính là máy Turing, bởi thực chất một máy Turing

cũng là một chương trình Nhưng liệu các máy Turing là cĩ đủ mạnh, nghĩa là chúng cĩ thẻ diễn tả được mọi chương trình viết trong các

ngơn ngữ lập trình nh PASCAL, LISP, 80X86 , tire 14 moi thi tục hữu hiệu? Câu trả lời là “cĩ” và sẽ được bàn luận kỹ trong phần cuối

của tiết này

1.2 Bài tốn và sự mã hố

Nếu muốn một thuật tốn giải một bài tốn đã cho, thì trước tiên phải

biểu điễn mỗi biểu hiện của bài tốn đĩ theo một cách nào đĩ mà thuật

tốn đĩ cĩ thể truy cập được Vậy những biểu diễn nào là chấp nhận

được? Nếu thuật tốn là một chương trình PASCAL, thì biểu hiện của bài tốn (các dữ liệu mà trên đĩ chương trình phải xử lý) phải được biểu diễn qua các kiểu khác nhau (như nguyên, thực, xâu ký tự: ) mà rốt cục đều là các xâu ký tự thuộc bảng chữ của PASCAL Với các

ngơn ngữ máy, tất cả các dữ liệu mà chương trình phải xử lý được biểu diễn bởi các dãy bít, nghĩa là các xâu trên bảng chữ {0,1}

Như vậy cĩ thể nĩi là ta luơn luơn cĩ thể biểu diễn mỗi biểu hiện của

mọi bài tốn cần xem xét dưới dạng một xâu các ký tự Ta gọi hàm mã hố là hàm mà, từ một biểu hiện của bài tốn, cho mã của nĩ dưới

Ngày đăng: 16/07/2022, 14:57

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN