Các báo cáo đăng ký tham gia hội nghị khoa học lần 2 của PV CNTT VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TOÁN SK ĐỐI VỚI NGÔN NGỮ CHÍNH QUI VÀ NGÔN NGỮ DYCK VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TOÁN SK ĐỐI VỚI NGÔN NGỮ CHÍNH[.]
Trang 1VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TOÁN SK ĐỐI VỚI NGÔN NGỮ CHÍNH QUI VÀ NGÔN NGỮ DYCK
VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TOÁN SK ĐỐI VỚI NGÔN NGỮ CHÍNH
QUI VÀ NGÔN NGỮ DYCK.
Nguyễn Xuân Dũng, Phan Mỹ Trinh, Phạm Ngọc Linh
Nhóm Nghiên Cứu, Ứng Dụng Các Hệ Thống Thông Tin – PV CNTT Tp.HCM
Tóm tắt: Trong [11] chúng tôi đã chỉ ra rằng, Bài toán SK đối với lớp ngôn
ngữ phi ngữ cảnh đơn định chỉ giải được khi bài toán tương đương của lớp
ngôn ngữ này giải được Do đó việc tìm kiếm lời giải cho bài toán SK sẽ
hướng đến những lớp con mà bài toán tương là giải được Trong bài này
chúng tôi sẽ chỉ ra rằng bài toán SK là giải được đối với ngôn ngữ chính qui và đối
với ngôn ngữ Dyck sẽ không tồn tại bất cứ tập khung không tầm thường nào.
Các ngôn ngữ chính qui tạo thành một lớp con quan trọng trong lớp các ngôn ngữ phi ngữ cảnh đơn định nói chung và lớp các ngôn ngữ lập trình nói riêng Đây cũng là lớp ngôn ngữ có nhiều ứng dụng trong thực tế nhất với bộ nhận dạng là các ôtômát hữu hạn Đối với các ngôn ngữ lập trình thì cấu trúc chính qui được sử dụng để đặc tả cho các cấu trúc từ vựng của ngôn ngữ Về thực chất cấu trúc của bộ phân tích từ vựng trong các trình biên dịch
là một ô tô mát hữu hạn Cho nên việc giải bài toán SK cho lớp này sẽ tạo cơ sở cho việc xây dựng bộ sửa lỗi chính tả tự động của các compiler cho các chương trình khi biên dịch Ngôn ngữ Dyck là ngôn ngữ đặc tả các cấu trúc đối xứng và lồng nhau trong các ngôn ngữ lập trình Chẳng hạn như, cấu trúc của các loại dấu ngoặc khác nhau trong các
biểu thức, hoặc cấu trúc đóng mở cho các khối chương trình như cặp ký hiệu begin, end trong ngôn ngữ Pascal, hoặc {,} trong ngôn ngữ C.
Trong bài này chúng tôi sẽ chỉ ra rằng bài toán SK đối với lớp ngôn ngữ chính qui là giải được và đối với ngôn ngữ Dyck thì không tồn tại bất cứ tập khung không tầm thường nào
II Bài toán SK đối với ngôn ngữ chính qui
Trong [11] đã chỉ ra rằng bài toán SK sẽ không giải được đối với lớp ngôn ngữ phi ngữ cảnh đơn định nếu bài toán tương đương của lớp này không giải được Tuy nhiên trong bài này chúng tôi sẽ chỉ ra rằng, đối với lớp ngôn ngữ chính qui là một lớp con của lớp này thì bài toán SK là giải được
Cho L là ngôn ngữ chính qui được chấp nhận bởi ôtômát hữu hạn thu gọn
A = (Q, , , q0, F)
K là tập con của tập sao cho, {├, ┤} K Theo định nghĩa của đồng cấu K thì ta
có K(L) cũng sẽ là ngôn ngữ chính qui trên K Mỗi từ trong L có dạng:
w = a0 u1 a1…un an
với ai K với i = 0,…,n và ui (-K)* với i=1,…,n
Ta sẽ xây dựng ôtômát A1 chấp nhận K(L) như sau:
A1 = (Q1, , 1, q0, F) với Q1 = {(q,a); với mọi q Q, a K} {q0}
Ánh xạ chuyển sẽ được định nghĩa như sau:
Với mọi q Q, a K , (q,a) = { (q, ua) ; u ( - K)*}
Từ phương pháp xây dựng A1 dễ dàng suy ra L(A1) = K(L)
Trang 2VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TOÁN SK ĐỐI VỚI NGÔN NGỮ CHÍNH QUI VÀ NGÔN NGỮ DYCK
Định lý 1: K là tập khung đối với ngôn ngữ chính qui L, được cho bởi ôtômát hữu hạn
thu gọn A, khi và chỉ khi A 1 là ôtômát hữu hạn đơn định
Chứng minh:
1 Giả sử K là tập khung của ngôn ngữ chính qui L Theo định lý 2 trong [9] ngôn
ngữ L có tính chất K-hậu tố, nghĩa là với mọi xa, za Pref(L) sao cho K(x) = K(z) ta có đẳng thức:
Sufxa(L) = Sufza(L) (1)
Từ lý thuyết ôtômát dễ dàng thấy rằng Sufxa(L) = L(A’) (tương ứng, Sufza(L) = L(A’’)) , với A’ = (Q,,, (q0,xa),F) và A’’ = (Q, , , (q0, za), F) tương ứng
Từ đây suy ra A’ và A’’ là tương đương Từ giả thiết A là ôtômát thu gọn suy ra chúng có cùng các trạng thái Do đó A1 là ôtômát hữu hạn đơn định
2 Ngược lại, giả sử là A1 đơn định, sau đó ta thấy rằng, từ tính đơn định của ôtômát
A đối với các xâu bất kỳ xa và za Pref(L) sao cho x,z *, a K và K(x) = K(z) các trạng thái (q0,xa) và (q0, za) là đồng nhất Khẳng định này có thể chứng minh bằng qui nạp theo
số các ký hiệu khung trong các xâu đó Từ đây suy ra rằng, A’ và A’’ là tương đương, nghĩa
là ngôn ngữ L(A) thỏa mãn đẳng thức (1) với mọi xa,za Pref(L(A)), với x,z *, a K, nghĩa là:
Sufxa(L(A)) = Sufza(L(A)) Điều này có nghĩa, ngôn ngữ L có tính chất K-hậu tố, do đó K là tập khung
Định lý 1cho ta thuật toán xác định một tập K cho trước có phải là tập khung của ngôn ngữ chính qui L hay không?
Định nghĩa 1: Cho A = (Q, , , q0, F) là ôtômát hữu hạn đơn định Ta định nghĩa:
V = - K
(q, V*) = {(q,u); với u V*}
i+1 (q, V i+1 ) = ((q, V i ), V) , với 0 (q, V 0 ) = {q}.
Bổ đề 2: Cho A =(Q, , , q0, F) là ôtômát hữu hạn chấp nhận ngông ngữ chính qui L,
K là một tập con của Khi đó ta có thể xây dựng hữu hiệu A 1 từ A.
Chứng minh:
Theo định nghĩa của A1 có thể dễ dàng xác định tập Q1 từ bảng chuyển của ôtômát A bằng cách hợp tất cả các trạng thái kết nối bằng các ký hiệu khung với trạng thái q0 Với mỗi
q Q1 ta xác định tập (q, V*) như sau:
Đặt 0(q, V0) = {q}, i+1(q, Vi+1) = (i(q, Vi), V)
Rõ ràng là i(q, Vi) là tập tất cả các trạng thái của A từ trạng thái q với xâu có độ dài
i trong V Do q, p là các trạng thái của A với n trạng thái, nên p đạt tới được từ q với xâu có
độ dài nhỏ hơn n, ta có thể đặt:
(q, V*) = ( , )
1 0
i n
i
Mỗi tập i(q, Vi) có thể dễ dàng xác định từ i-1(q, Vi-1) Từ kết quả đó ta có thể xác định tiếp cho mỗi q Q, a K ánh xạ 1(q,a) = (q, V*a) = ((q, V*),a)
Định lý 3: Cho L là ngôn ngữ chính qui trên {├, ┤} được cho bởi ôtômát hữu hạn
đơn định A = (Q, , , q 0 , F) Khi đó bài toán SK với L là giải được.
Chứng minh:
Trang 3VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TOÁN SK ĐỐI VỚI NGÔN NGỮ CHÍNH QUI VÀ NGÔN NGỮ DYCK
Từ định lý 1 ta có, K là tập xương khi và chỉ khi A1 là ôtômát hữu hạn đơn định, nghĩa là 1(q, a) =1 với mọi q Q, a K
Từ bổ đề 2 dễ dàng kiểm tra điều kiện này Từ đây suy ra khẳng định của định lý Tiêu chuẩn được đề xuất trong định lý 1 là rất thuận lợi cho việc xác định tính khung của một tập K nào đó đối với ngôn ngữ chính qui được đặc tả bởi ôtômát hữu hạn nào đó Trong đa phần các trường hợp ta sẽ có lời giải cho bài toán SK một cách rất nhanh chóng
III Về tính tầm thường của tập xương đối với ngôn ngữ Dyck
Ngôn ngữ Dyck là ngôn ngữ dùng để biểu diễn các cấu trúc đối xứng và lồng nhau, chẳng hạn các loại dấu đóng mở ngoặc trong các biểu thức khác nhau Trong mục này chúng tôi sẽ chỉ ra rằng, đối với ngôn ngữ Dyck không tồn tại bất cứ tập khung không tầm thường nào Nghĩa là, đối với ngôn ngữ Dyck trên bảng chữ n thì tập khung của nó hoặc chỉ sẽ là các ký hiệu đánh dấu mút trái và mút phải, hoặc toàn bộ bảng chữ n
Định nghĩa 2: Cho n {a a,a1, ,a n,a n}, n 1 D1i ký hiệu ngôn ngữ Dyck trên bảng chữ {a i,a i} và ij
D2 ký hiệu ngôn ngữ Dyck trên bảng chữ {a i,a i,a j,a j}với 1 I, j
n và i j.
Định lý 4: Nếu K là một tập khung bất kỳ đối với ngôn ngữ L * và {├, ┤} 1 , khi đó ta có tập K 1 là tập khung của ngôn ngữ L 1 *.
Chứng minh: Ta thấy rằng trong mỗi xâu từ L 1* chỉ xuất hiện các ký hiệu khung từ
tập K 1 Chẳng hạn, x L 1* có dạng
x= a0 u1 a1…unan
rõ ràng là ai K1 (0 i n) và uj (1 – K)* (1 j n)
Từ đây dễ dàng suy ra, K là tập khung của ngôn ngữ L 1*
Định lý 5: Với mọi số tự nhiên n ngôn ngữ Dyck D n không có bất cứ tập khung không tầm thường nào.
Chứng minh:
a) n =1
Ta sẽ chứng minh khẳng định trên bằng phản chứng Giả sử đối với D1i tồn tại tập
khung không tầm thường Khi đó có thể xảy ra hai trường hợp sau:
Trường hợp 1: ai K và āi K
Ta thấy rằng xâu aiaiāiāi i
D1 còn xâu aiāiai Pref( i
D1) theo định nghĩa của tập khung thì phải có xâu aiāiaiāiāi D1i , nhưng vì aiāiaiāiāi D1i nên dẫn đến mâu thuẫn Từ đây suy ra K= {ai} không phải là tập khung của D1i
Trường hợp 2: Ngược lại, giả sử K = {āi} và ta xét các xâu aiāiaiāi và aiaiāiāi D1i
Tương tự như trường hợp trên ta thấy K cũng không phải là tập khung của D1i b) n = 2
Trên cơ sở của địng nghĩa 2 và phần a) không làm mất tổng quát ta có thể giả thiết rằng, với i j nào đó, 1 i, j n { ai, āi}= K và aj, āj K Sau đó ta xét hai xâu sau: aiajaiāiājāi D2ij còn aiajājāi Pref(D2ij) nh ưng xâu aiajājaiājāi D2ij T ừ đ ây suy ra rằng tập K không thể là tập khung của ij
c) n 3
Trang 4VỀ TÍNH GIẢI ĐƯỢC CỦA BÀI TỐN SK ĐỐI VỚI NGƠN NGỮ CHÍNH QUI VÀ NGƠN NGỮ DYCK
d) Từ định lý 4 và các phần trước, rõ ràng là ngơn ngữ Dyck Dn với n tùy ý khơng tồn tại bất cứ tập khung khơng tầm thường nào vì các ngơn ngữ con D1i và D2ij
của ngơn ngữ Dn khơng tồn tại bất cứ tập khung khơng tầm thường nào, từ đĩ dễ dàng suy ra khẳng định của định lý
TÀI LI ỆU THAM KHẢO
[1] Freeman D N Error Correction in CORC , The Cornell Computing Language, Proc.
AFIPS Fall Joint Computer Conference, 26, 15-34
[2] Morgan H.L Spelling Correction in System Programs, Comm ACM, 13:2, 56-58 [3] Chytil M.P., Demner J., Calmly on Panic mode Preprint , November 1986.
[4] Chytil M.P., Demner J., Panic mode without Panic Automata, Languages and
Programming 14th International Colloquium Karsruhe, Federal Republic of Germany, July 1987 Procceding
[5] Chytil M.P., Demner J., Platek M , Effectivní metoda zotavení ze syntaktickych chyb.
SOFSEM ’86 Sborník referatu
[6] Nguyen Xuan Dung O rozhodnosti skeletalních mnozin Kandidatská Disertacní
Prace MFF UK Praha 1988
[7] Nguyen Xuan Dung On Decidability of Skeletal Sets Technique Report of Prague
University, No 49, May 1989
[8] Nguyen Xuan Dung Some Unsolvable for Linear Languages Conference Procceding
of HCM city Mathematics Consortium, April 1993
[9] Nguyen Xuan Dung Theoretical Base for Chytil-Demner Error Recovery Method.
Procceding of Hội nghị KH ĐHBK TPHCM 1995
[10] Nguyen Xuan Dung, Phan My Trinh, Pham Ngoc Linh Sửa lỗi tự động trong ngôn ngữ lập trình Bài toán SK Báo cáo Hội nghị KH Phân viện CNTT 2005.
[11] Nguyen Xuan Dung, Phan My Trinh, Pham Ngoc Linh V ề điều kiện cần để giải bài tốn SK đối với lớp ngơn ngữ phi ngữ cảnh đơn định Báo cáo Hội nghị KH Phân
viện CNTT 2005
[12] Aho A.V., Ullman J.D Theory of Parsing, Translation and Compiling Prentice Hall
1972
[13] Harrison M A Introduction to Formal Language Theory Addison-Wesley Publ.
Comp., 1978