Mohri đã giải quyết bài toán xác định khoảng cách soạn thảo Levenshtein gồm ba phép toán soạn thảo là phép xóa, chèn, thay thế một ký tự của hai otomat hữu hạn [48].. Mohri để giải quyết
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
-
Đặng Quyết Thắng
MỘT SỐ VẤN ĐỀ LÝ THUYẾT VÀ ỨNG DỤNG CỦA CÁC MÔ HÌNH OTOMAT NÂNG CAO
LUẬN ÁN TIẾN SĨ TOÁN HỌC
Hà Nội – 2013
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
-
Đặng Quyết Thắng
MỘT SỐ VẤN ĐỀ LÝ THUYẾT VÀ ỨNG DỤNG CỦA CÁC MÔ HÌNH OTOMAT NÂNG CAO
Chuyên ngành: Bảo đảm toán học cho máy tính và hệ thống tính toán
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu khoa học của riêng tôi và chưa từng được ai công bố trong bất kỳ công trình nào khác Các kết quả viết chung với các tác giả khác đều được sự đồng ý của đồng tác giả trước khi đưa vào luận án
Đặng Quyết Thắng
Trang 4LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS TS Phan Trung Huy và GS TS Đặng Huy Ruận - những người thầy đã tận tình hướng dẫn, chỉ ra cho tôi hướng nghiên cứu lý thú và động viên khích lệ tôi hoàn thành luận án này
Tôi xin chân thành cảm ơn Ban Giám đốc, Khoa Sau đại học, Ban đào tạo, Đại học Quốc gia Hà Nội; Ban Giám hiệu, Phòng Sau đại học, Khoa Toán - Cơ - Tin học, Bộ môn Tin học, Trường Đại học Khoa học Tự nhiên đã tạo mọi điều kiện thuận lợi cho tôi trong quá trình học tập và nghiên cứu
Tôi xin cảm ơn các nhà khoa học, các đồng nghiệp trong các xêmina tại Bộ môn Tin học thuộc Khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên;
Bộ môn Tin học thuộc Viện Toán ứng dụng và Tin học, Trường Đại học Bách khoa
Hà Nội; phòng Cơ sở Toán học của Tin học thuộc Viện Toán học, Viện Hàn lâm Khoa học và Công nghệ Việt Nam đã tạo điều kiện cho tôi trình bày một phần nội dung cơ bản của luận án và góp ý giúp tôi hoàn thiện luận án này
Tôi cũng xin chân thành cảm ơn Ban giám hiệu - Trường Đại học Sư phạm
Kỹ thuật Nam Định đã tạo điều kiện thuận lợi cho tôi trong công tác, học tập và nghiên cứu
Những lời biết ơn sâu nặng xin được dành cho những người thân, đặc biệt là
mẹ và vợ con, cùng các bạn đồng nghiệp đã thông cảm, khích lệ và sẻ chia khó khăn trong thời gian tôi thực hiện luận án này
Tác giả
Đặng Quyết Thắng
Trang 5MỤC LỤC
LỜI CAM ĐOAN 3
LỜI CẢM ƠN 4
MỤC LỤC 5
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 8
DANH MỤC CÁC BẢNG VÀ HÌNH VẼ 9
MỞ ĐẦU 10
Chương 1 CÁC KIẾN THỨC CƠ SỞ 19
1.1 Một số khái niệm 19
1.1.1 Cấu trúc đại số cơ bản và ngôn ngữ 19
1.1.1.1 Vị nhóm 19
1.1.1.2 Nửa vành 20
1.1.1.3 Ngôn ngữ 20
1.1.1.4 Khoảng cách soạn thảo 22
1.1.1.5 Xâu con chung dài nhất 25
1.1.2 Một số loại mã 25
1.1.2.1 Mã 25
1.1.2.2 ω - mã 26
1.1.2.3 Z - mã 27
1.1.2.4 Độ trễ giải mã 29
1.2 Máy biến đổi và otomat 29
1.2.1 Khái niệm 29
1.2.2 Hợp thành của hai máy biến đổi 32
Trang 61.3 Đồ thị hữu hạn 35
1.3.1 Khái niệm cơ bản 35
1.3.2 Biểu diễn đồ thị trong máy tính 36
1.3.2.1 Phương pháp ma trận kề 36
1.3.2.2 Phương pháp danh sách kề 36
1.3.3 Tìm kiếm theo chiều sâu 37
1.3.4 Tìm đường đi ngắn nhất nguồn đơn 38
1.4 Chuỗi hình thức 39
1.4.1 Khái niệm 39
1.4.2 Định lý Schützenberger 40
1.5 Kết luận chương 1 42
Chương 2 KHOẢNG CÁCH SOẠN THẢO CỦA HAI NGÔN NGỮ 43
2.1 Xâu con chung dài nhất của hai ngôn ngữ 43
2.1.1 Bài toán 43
2.1.2 Hình thức hóa khái niệm LCS 43
2.1.3 Thuật toán tìm đường đi dài nhất nguồn đơn 45
2.1.4 Xác định LCS của hai ngôn ngữ theo otomat 47
2.1.4.1 Chi phí của một dãy sánh LCS 47
2.1.4.2 Thuật toán 48
2.2 Khoảng cách DL hạn chế của hai ngôn ngữ 50
2.2.1 Hình thức hóa khái niệm khoảng cách DL hạn chế 51
2.2.2 Mở rộng kiểu 1 của otomat 54
2.2.3 Xác định khoảng cách DL hạn chế của hai ngôn ngữ theo otomat 55
2.2.3.1 Chi phí của một dãy sánh DL hạn chế 55
2.2.3.2 Thuật toán 56
2.3 Kết luận chương 2 58
Trang 7Chương 3 KIỂM ĐỊNH -MÃ VÀ Z-MÃ 59
3.1 Phép toán trên otomat 59
3.1.1 Lưỡng cực hóa, mở rộng kiểu 2 và kiểu 3 của otomat 59
3.1.2 Tích otomat 60
3.1.3 Tích hợp otomat 62
3.2 Sự tồn tại đường đi kiểu 1 và kiểu 2 64
3.3 Kiểm định ω-mã theo otomat 68
3.4 Kiểm định Z-mã theo otomat 71
3.5 Kết luận chương 3 77
Chương 4 XÁC ĐỊNH ĐỘ KHÔNG NHẬP NHẰNG VÀ ĐỘ TRỄ GIẢI MÃ
78
4.1 Độ không nhập nhằng của ngôn ngữ 78
4.2 Mở rộng kiểu 4 và kiểu 5 của otomat 79
4.3 Giá của đường đi kiểu 2 và sự tồn tại đường đi kiểu 3 80
4.4 Xác định độ không nhập nhằng của ngôn ngữ theo otomat 86
4.5 Xác định độ trễ giải mã theo otomat 91
4.6 Kết luận chương 4 98
KẾT LUẬN 99
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN 101
TÀI LIỆU THAM KHẢO 103
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Các ký hiệu
ε Từ (xâu) rỗng
|A| Lực lƣợng của tập A
w(i) Khúc đầu có độ dài i của xâu w
w[i] Ký tự thứ i trong xâu w
wg[e] Trọng số của cung e trên otomat hoặc máy biến đổi
Trang 9DANH MỤC CÁC BẢNG VÀ HÌNH VẼ
Bảng 1.1 Độ dài LCS của khúc đầu của x và y……… 24
Hình 1.1 Hợp thành của otomat hữu hạn với máy biến đổi trên nửa vành Tropical……… 33
Hình 1.2 Đồ thị có hướng……… 35
Hình 1.3 Mảng danh sách kề của đồ thị G……… 36
Hình 1.4 Otomat có trọng số đoán nhận chuỗi hình thức ……… 41
Hình 2.1 Máy biến đổi thực hiện Ψ trên bảng chữ cái Ω ……… * 47
Hình 2.2 Mở rộng kiểu 1 của otomat hữu hạn……… 54
Hình 2.3 Máy biến đổi thực hiện Ψ trên bảng chữ cái Γ ……… * 56
Hình 3.1 Tích hai otomat……… 60
Hình 3.2 Nhãn của đường đi giữa hai trạng thái kế tiếp cùng dạng……… 61
Hình 3.3 Tích hợp hai otomat……… 62
Hình 3.4 Hai kiểu hai ω-phân tích phải khác nhau của từ w……… 69
Hình 3.5 Bốn kiểu hai Z-phân tích khác nhau của từ w……… 71
Hình 4.1 Tính độ trễ giải mã của L……… 91
Trang 10MỞ ĐẦU
Lý thuyết otomat nghiên cứu về lớp các thuật toán đối tượng quan trọng trong toán học và khoa học máy tính Năm 1936, A.M Turing đã đề xuất vấn đề thuật toán có thể giải quyết bởi phương tiện máy mà sau này gọi là máy Turing [66] Năm 1943, W.S McCulloch và W.H Pitts đã đề xuất mô hình toán học của tế bào thần kinh [47] Sau đó, S.C Kleene đã phát triển báo cáo RAND của ông năm
1951, trong đó mô hình của W S McCulloch và W.H Pitts đã được đưa ra dạng toán học chi tiết [36] Các đề xuất này được xem là nền tảng của lý thuyết otomat
Otomat và ngôn ngữ được ứng dụng trong nhiều lĩnh vực như thiết kế mạch [54], thiết kế chương trình dịch [12], biểu diễn biểu thức chính quy [27], tìm kiếm mẫu [21], xử lý ngôn ngữ tự nhiên [57], mã hóa thông tin [42], tạo chuỗi các con số [29], mô tả thuật toán trong lý thuyết nhóm [63], phát triển lý thuyết đại số của các ngôn ngữ đoán nhận trong phạm vi lý thuyết nửa nhóm hữu hạn [55], D.B.A Epstein cho thấy otomat là một công cụ quan trọng trong lý thuyết nhóm tổ hợp và hình học [26]…
Ngôn ngữ có thể được biểu diễn bởi một tập các xâu, biểu thức chính quy, văn phạm, cây, otomat hay đồng cấu vị nhóm… Nhưng ngôn ngữ biểu diễn bởi otomat được sử dụng khá rộng rãi vì tính đơn giản trong cài đặt Ứng dụng khả năng biểu diễn ngôn ngữ của otomat, sử dụng các kỹ thuật trên otomat để thiết kế các thuật toán hiệu quả có độ phức tạp thời gian đa thức bậc thấp, nhằm giải quyết các bài toán trọng tâm trong xử lý thông tin như: bài toán so mẫu xấp xỉ, bài toán kiểm định mã, nghiên cứu các đặc tính của mã, hay ngôn ngữ hình thức trong mối quan hệ với mã Tăng tốc độ tính toán cho các thuật toán giải quyết các bài toán này, trong môi trường bùng nổ thông tin là một vấn đề nghiên cứu mở, có tính thời
sự và luôn thu hút sự quan tâm của cộng đồng nghiên cứu
Trang 11Trong lĩnh vực khoa học máy tính, so mẫu xấp xỉ là một bài toán quan trọng được ứng dụng rộng rãi trong tìm kiếm, tính toán, trích rút thông tin, xử lý tín hiệu
và nhận dạng So mẫu xấp xỉ là bài toán tìm sự xuất hiện của một mẫu trong văn bản, trong đó sự “khớp” giữa mẫu và xuất hiện của nó có thể chấp nhận một số
“lỗi” Mô hình lỗi được dùng phổ biến nhất là khoảng cách soạn thảo (edit distance) [52], các phép toán soạn thảo gồm phép xóa, chèn, thay thế một ký tự và đổi chỗ hai
ký tự khác nhau liền kề Do vai trò quan trọng của bài toán xấp xỉ, đã có nhiều công trình [11, 23, 30, 31, 32, 34, 35, 40, 51, 52, 71] nghiên cứu khoảng cách soạn thảo giữa hai xâu Năm 2003, M Mohri đã giải quyết bài toán xác định khoảng cách soạn thảo Levenshtein (gồm ba phép toán soạn thảo là phép xóa, chèn, thay thế một
ký tự) của hai otomat hữu hạn [48] Không thể áp dụng một cách hiệu quả các phương pháp cổ điển, hay áp dụng trực tiếp phương pháp của M Mohri để giải quyết bài toán xác định khoảng cách soạn thảo của hai ngôn ngữ, trong trường hợp hai phép toán soạn thảo (phép xóa, chèn) hoặc bốn phép toán soạn thảo (phép xóa,
chèn, thay thế một ký tự, đổi chỗ hai ký tự khác nhau liền kề) Từ đó, bài toán thứ nhất đặt ra là: cho hai otomat hữu hạn đoán nhận hai ngôn ngữ L1 và L2 (hữu hạn hoặc vô hạn) tương ứng Sử dụng kỹ thuật otomat, có thể xây dựng phương pháp xác định xâu con chung dài nhất (phép toán soạn thảo gồm phép xóa, chèn), hay tập các xâu con chung dài nhất của hai ngôn ngữ L1 và L2, cũng như xác định khoảng cách soạn thảo Damerau–Levenshtein (phép toán soạn thảo gồm bốn phép nói trên) của hai ngôn ngữ L1 và L2, với các thuật toán có độ phức tạp thời gian là
đa thức bậc thấp hay không?
Lý thuyết mã bắt nguồn từ lý thuyết thông tin do C Shannon đề xuất năm
1949 [62] Những năm sau đó, lý thuyết mã phát triển theo nhiều hướng khác nhau xuất phát từ nhu cầu của thực tiễn Một hướng nghiên cứu liên quan đến mã độ dài
cố định, ứng dụng để phát hiện và sửa lỗi xuất hiện trên các kênh truyền tin Đến năm 1955, M.P Schüzenberger đề xuất hướng nghiên cứu về mã có độ dài biến đổi
Từ đó, nhiều công trình đã nảy sinh, phát triển và nhận được những kết quả phong
Trang 12phú trong cả lý thuyết và ứng dụng Lý thuyết mã có vai trò thiết yếu trong nhiều lĩnh vực như xử lý thông tin, nén dữ liệu, truyền thông và mật mã… có liên hệ chặt chẽ với lý thuyết tổ hợp trên từ, lý thuyết otomat, ngôn ngữ hình thức và lý thuyết nửa nhóm Bài toán kiểm định mã và bài toán nghiên cứu các đặc tính của mã, hay ngôn ngữ hình thức trong mối quan hệ với mã, là những bài toán được nhiều nhà khoa học quan tâm nghiên cứu, vì vai trò sâu sắc và rất cơ bản của chúng trong lý thuyết và ứng dụng
Xét một chuỗi thông báo được mã hóa nào đó, chúng ta có thể biết điểm khởi đầu và không biết điểm kết thúc hoặc không biết cả điểm khởi đầu và kết thúc của bản mã Do đó, nội dung của bản mã có thể không được giải mã Sử dụng ω-mã
hay Z-mã, ta có thể mã hóa và giải mã những bản mã là chuỗi vô hạn các từ một phía hoặc cả hai phía Đã có nhiều nghiên cứu về kiểm định và các đặc trưng của
ω-mã [3, 15, 19, 20, 24, 33, 45, 53] cũng như Z-mã [3, 24, 25, 33, 38, 43, 53, 56,
64, 67, 68, 70] Các nghiên cứu này chủ yếu tập trung vào khía cạnh toán học, nếu
có thuật toán thì mô tả ở mức thô, không có những đánh giá về độ phức tạp thời gian của thuật toán, hoặc có độ phức tạp thời gian là hàm mũ Nghiên cứu trong [3]
đề xuất thuật toán kiểm định ω-mã cũng như Z-mã với đầu vào là đồng cấu vị
nhóm biểu diễn ngôn ngữ, có độ phức tạp thời gian là đa thức theo kích thước của
vị nhóm Tuy nhiên, với đầu vào là otomat hữu hạn, nếu muốn áp dụng thuật toán trong [3] thì ta phải chuyển đổi từ otomat hữu hạn sang vị nhóm hữu hạn tương ứng, với thuật toán có độ phức tạp thời gian là hàm mũ Hiện nay, với đầu vào là otomat đơn định, thuật toán kiểm định ω-mã tốt nhất được biết đến có độ phức tạp thời
gian trong trường hợp xấu nhất là (n3), ở đó n là số trạng thái của otomat đầu vào
[15] (để đơn giản trong trình bày luận án, khi đề cập đến độ phức tạp thời gian của thuật toán thì luôn được hiểu là độ phức tạp thời gian trong trường hợp xấu nhất)
Từ đó, bài toán thứ hai được đặt ra là: cho otomat hữu hạn đoán nhận ngôn ngữ L
Sử dụng kỹ thuật otomat, có thể xây dựng phương pháp kiểm định ω -mã cũng như Z-mã đối với L, cùng các thuật toán có độ phức tạp thời gian là đa thức bậc thấp
Trang 13hay không?
Trong các nghiên cứu về ngôn ngữ hình thức có quan hệ với mã, hai bài toán
về tính không nhập nhằng và độ trễ giải mã được nhiều tác giả nghiên cứu khá sôi động bởi các công trình [3, 4, 5, 10, 13, 14, 17, 24, 25, 28, 37, 39, 44, 60, 64, 65, 69] Đến nay, phương pháp giải hai bài toán này chủ yếu dựa trên cách tiếp cận tổ hợp và ý tưởng từ thủ tục Sardinas-Patterson kiểm tra tính chất mã của một ngôn ngữ, hay xác định một máy biến đổi có là hàm hay không Cũng theo các phương pháp này, trong [3] đề xuất thuật toán xác định độ không nhập nhằng và độ trễ giải
mã, nhưng đầu vào là đồng cấu vị nhóm biểu diễn ngôn ngữ Ta cũng không thể áp dụng thuật toán trong [3] cho các bài toán này với đầu vào là otomat hữu hạn Khái niệm tích không nhập nhằng trên ngôn ngữ có liên quan chặt chẽ với mã Đối với ngôn ngữ là mã, một từ là tích ghép của các từ thuộc ngôn ngữ đều có một phân tích duy nhất trên ngôn ngữ Đối với ngôn ngữ không là mã, một từ là tích ghép của một
số từ (nhỏ hơn hoặc bằng k nào đó) thì có một phân tích duy nhất trên ngôn ngữ, một từ là tích ghép của một số từ (lớn hơn k) thì có nhiều hơn một phân tích trên ngôn ngữ Từ đó, khái niệm độ không nhập nhằng của ngôn ngữ được đề xuất [7]
(xem Danh mục các công trình khoa học của tác giả liên quan đến luận án) Về mặt ứng dụng, ta có thể sử dụng những ngôn ngữ có độ không nhập nhằng đủ lớn, không nhất thiết là mã để mã hóa thông tin mật Đối phương tấn công vào các hệ
mã không là mã sẽ phức tạp hơn, chi phí cao hơn tấn công vào các hệ mã là mã Vậy có một phương pháp hiệu quả, với đầu vào là otomat hữu hạn đoán nhận ngôn
ngữ L, cho phép xác định độ không nhập nhằng của ngôn ngữ L hay không? Mặt khác, nghiên cứu về độ trễ giải mã ta xem xét ví dụ sau: cho ngôn ngữ L = {b, ba, aa} là mã Xét thông điệp baaaa…, khi giải mã, một tham số mà cho ta quyết định được khởi đầu là b hay ba đã được E.N Gilbert và E.F Moore đề xuất [28] Đó là
khái niệm độ trễ giải mã, nó phản ánh độ khó của quá trình giải mã Thuật toán tốt nhất được biết, có độ phức tạp thời gian là (h4logh), ở đó h là số đỉnh và cung
(kích cỡ) của otomat hữu hạn đầu vào [65] Từ các vấn đề đặt ra về độ không nhập
Trang 14nhằng và độ trễ giải mã, bài toán thứ ba được đặt ra là: cho otomat hữu hạn đoán
nhận ngôn ngữ L Sử dụng kỹ thuật otomat, có thể xây dựng phương pháp xác định
độ không nhập nhằng của ngôn ngữ L, cũng như xác định độ trễ giải mã của L, với các thuật toán có độ phức tạp thời gian là đa thức bậc thấp hay không?
Từ các bài toán đặt ra ở trên, mục tiêu chính của luận án là sử dụng các kỹ thuật trên otomat và máy biến đổi, đề xuất các phương pháp mới, giải quyết các bài toán được nhiều người quan tâm về so mẫu xấp xỉ, kiểm định mã, các đặc trưng của
mã và ngôn ngữ hình thức có quan hệ với mã Các phương pháp này cho phép thiết
kế các thuật toán hiệu quả - độ phức tạp thời gian là đa thức bậc thấp, với đầu vào là otomat hữu hạn đoán nhận ngôn ngữ Kết quả đạt được sẽ đóng góp về lý thuyết cũng như ứng dụng trong ngôn ngữ hình thức và mã
Phương pháp nghiên cứu được sử dụng trong luận án là các phương pháp và công cụ đại số, tổ hợp trên từ, ngôn ngữ hình thức và otomat, đồ thị hữu hạn, chuỗi hình thức và độ phức tạp thời gian của thuật toán
Các đóng góp chính của luận án:
Đóng góp thứ nhất của luận án là đề xuất phương pháp xác định xâu con chung dài nhất và khoảng cách soạn thảo DL hạn chế của hai ngôn ngữ được đoán nhận bởi hai otomat hữu hạn tương ứng, công bố tại các công trình [2, 3] (xem
Danh mục các công trình khoa học của tác giả liên quan đến luận án) Các phương pháp này, được cải tiến từ phương pháp của M Mohri [48] bằng cách: hình thức hóa các khái niệm theo dãy sánh LCS, theo dãy sánh DL hạn chế; chi phí của mỗi phép toán soạn thảo là một số tùy ý; ứng dụng thuật toán tìm đường đi dài nhất (ngắn nhất) nguồn đơn; kỹ thuật mở rộng kiểu 1 của otomat cho một otomat có các cung với nhãn ghép, cho phép phản ánh phép đổi chỗ hai ký tự khác nhau liền kề
Từ đó, nhận được hai thuật toán đó là:
- Thuật toán xác định xâu con chung dài nhất của hai ngôn ngữ, với độ phức tạp thời gian (hl), ở đó h, l lần lượt là kích cỡ của hai otomat hữu hạnđầu vào Từ
Trang 15thuật toán này, còn cho phép xác định tập các LCS của hai ngôn ngữ
- Thuật toán xác định khoảng cách soạn thảo DL hạn chế của hai ngôn ngữ,
một trạng thái kết thúc; kỹ thuật mở rộng kiểu 2 của otomat, cho phép otomat đoán nhận ngôn ngữ L ω; kỹ thuật mở rộng kiểu 3 của otomat, cho phép otomat đoán nhận ngôn ngữ L ; đường đi kiểu 1 (là đường đi mà đỉnh đầu là đỉnh khởi đầu, đỉnh cuối ω
trùng với đỉnh trên đường đi tạo nên chu trình, chu trình này lần lượt đi qua ít nhất 2
đỉnh thuộc 2 tập đỉnh khóa tương ứng) và đường đi kiểu 2 (là đường đi mà đỉnh đầu
là đỉnh khởi đầu, đỉnh cuối là đỉnh kết thúc và đi qua ít nhất một đỉnh thuộc 1 tập
đỉnh khóa) trên đồ thị có gán nhãn và tô màu đỉnh, cùng với kỹ thuật tìm kiếm xác định sự tồn tại của chúng; thiết lập một số tính chất trên đồ thị được tạo nên từ tích
và tích hợp các otomat, có mối liên hệ với đường đi kiểu 1 và kiểu 2 Các đề xuất này cho phép thiết kế các thuật toán kiểm định ω-mã và Z-mã, có độ phức tạp thời
gian là (n3) với đầu vào là otomat đơn định, là (n5) với đầu vào là otomat đa
định, ở đó n là số trạng thái của otomat đầu vào Phương pháp đề cập trên, cho phép
không phải chuyển đổi từ otomat đa định sang otomat đơn định, với giá phải trả là
Trang 16mở rộng kiểu 5 của otomat, cho phép otomat đoán nhận ngôn ngữ L+*; xác định giá của đường đi kiểu 2 và sự tồn tại của đường đi kiểu 3 (là đường đi mà đỉnh đầu
là đỉnh khởi đầu, đỉnh cuối trùng với đỉnh trên đường đi tạo nên chu trình, chu trình này đi qua ít nhất 1 đỉnh thuộc 1 tập đỉnh khóa) trên đồ thị có gán nhãn và tô màu
đỉnh; một số tính chất trên đồ thị được tạo nên từ tích các otomat, có mối liên hệ với giá của đường đi kiểu 2 và sự tồn tại đường đi kiểu 3 Từ đó, ta nhận được hai thuật toán đó là:
- Thuật toán xác định độ không nhập nhằng của ngôn ngữ, có độ phức tạp thời gian là (n4) với đầu vào là otomat đa định, là (n2logn) với đầu vào là otomat
- Xêmina của Phòng Cơ sở Toán học của Tin học, Viện Toán học, Viện
Hàn lâm Khoa học và Công nghệ Việt Nam
- Xêmina của Bộ môn Toán tin, Viện Toán ứng dụng và Tin học, Trường
Đại học Bách khoa Hà Nội
- Xêmina của Bộ môn Tin học, Khoa Toán – Cơ – Tin học, Trường Đại học
Khoa học Tự nhiên, Đại học Quốc gia Hà Nội
- Hội thảo quốc tế 2010 IEEE-RIVF International Conference on Computing and Communication Technologies, Hanoi, Vietnam,
November 1-4, 2010
- Hội thảo quốc tế New Challenges for Intelligent Information and Database Systems - Studies in Computational Intelligence, Daegu, Korea,
April 20-22, 2011
Trang 17- Hội thảo quốc tế Future Information Technology, Application, and Service - Lecture Notes in Electrical Engineering, Vancouver, Canada,
June 26-28, 2012
- Hội thảo quốc tế the 9th IFIP International Conference on Network and Parallel Computing (NPC 2012)- Lecture Notes in Computer Science,
Gwangju, Korea, Septemper 6-8, 2012
- Tạp chí Tin học và Điều khiển học
Luận án gồm phần mở đầu và 4 chương, 3 chương cuối trình bày các đóng góp mới của luận án, sau đó là phần kết luận, danh mục các công trình khoa học của tác giả liên quan đến luận án và tài liệu tham khảo, trong đó:
Chương 1– Các kiến thức cơ sở Chương này nhắc lại khái niệm cơ sở về
đại số, ngôn ngữ và mã, máy biến đổi, otomat, đồ thị hữu hạn và chuỗi hình thức Các kiến thức cơ sở này được sử dụng trong các chương tiếp theo của luận án
Chương 2 – Khoảng cách soạn thảo của hai ngôn ngữ Chương này trình
bày các kết quả đóng góp mới của luận án về phương pháp xác định xâu con chung dài nhất của hai ngôn ngữ và phương pháp xác định khoảng cách soạn thảo DL hạn chế của hai ngôn ngữ Các phương pháp này dựa trên những đề xuất về hình thức hóa khái niệm; kỹ thuật mở rộng kiểu 1 của otomat; ứng dụng kỹ thuật hợp thành
của hai máy biến đổi, thuật toán tìm đường đi dài nhất (ngắn nhất) nguồn đơn
Chương 3 – Kiểm định ω-mã và Z-mã Chương này trình bày các kết quả
đóng góp mới của luận án về phương pháp kiểm định ω–mã cũng như Z–mã Các
phương pháp này dựa trên các đề xuất về đường đi kiểu 1, kiểu 2 trên đồ thị có gán nhãn và tô màu đỉnh, kỹ thuật xác định sự tồn tại của chúng; ứng dụng lưỡng cực hóa otomat; kỹ thuật mở rộng kiểu 2, kiểu 3 của otomat; kỹ thuật tích và tích hợp
otomat
Chương 4 – Xác định độ không nhập nhằng và độ trễ giải mã Chương
này trình bày các kết quả đóng góp mới của luận án về phương pháp xác định độ
Trang 18không nhập nhằng của ngôn ngữ và phương pháp xác định độ trễ giải mã Các phương pháp này dựa trên các đề xuất về xác định giá của đường đi kiểu 2, sự tồn tại của đường đi kiểu 3 trên đồ thị có gán nhãn và tô màu đỉnh; kỹ thuật mở rộng
kiểu 4, kiểu 5 của otomat; kỹ thuật tích otomat
Trang 19Chương 1 CÁC KIẾN THỨC CƠ SỞ
Chương thứ nhất trình bày các kiến thức cơ sở cần thiết, được sử dụng trong các chương tiếp theo của luận án Ở đó, ta nhắc lại một số khái niệm trong đại số, lý thuyết mã, lý thuyết ngôn ngữ hình thức và đồ thị hữu hạn Về kiến thức cơ sở liên quan, được tham khảo tại các tài liệu [2, 6, 7, 8, 9, 17, 18, 22, 23, 24, 37, 40, 41, 48,
49, 50, 52, 68, 71]
1.1 Một số khái niệm
1.1.1 Cấu trúc đại số cơ bản và ngôn ngữ
1.1.1.1 Vị nhóm
Vị nhóm M là tập hợp, được trang bị phép toán hai ngôi có tính chất kết hợp
và phần tử trung hòa Phép toán hai ngôi thường gọi là phép nhân Phần tử trung hòa là duy nhất, thường gọi là phần tử đơn vị và ký hiệu là 1 Vị nhóm M gọi là vị
nhóm giao hoán nếu phép nhân có tính chất giao hoán
Với vị nhóm M bất kỳ, tập (M) – tập các tập con của M cũng có cấu trúc vị
nhóm với phép toán hai ngôi được định nghĩa như sau:
XY = {xy | x X, y Y}, X, Y M và phần tử đơn vị là tập {1}
Tập con N M gọi là vị nhóm con của vị nhóm M nếu tập N là đóng với phép toán trên M và chứa phần tử đơn vị của M (NN N và 1 N)
Đồng cấu từ vị nhóm M vào vị nhóm N là hàm φ thỏa:
x, y M sao cho φ (xy)= φ(x)φ(y) và φ(1) = 1
Nếu φ là đơn ánh, toàn ánh, song ánh thì ta lần lượt gọi φ là đơn cấu, toàn cấu và đẳng cấu tương ứng
Trang 201.1.1.2 Nửa vành
Định nghĩa 1.1 Một hệ thống (,, , 0 , 1 ) là nửa vành nếu:
i) (, , 0 ) là vị nhóm giao hoán cùng với phần tử đơn vị 0
ii) (, , 1 ) là vị nhóm cùng với phần tử đơn vị 1
iii) Phép phân phối đối với phép
iv) 0 là phần tử triệt tiêu đối với phép : a , a 0 = 0 a = 0
Ví dụ 1.1 Hệ thống ({0, 1}, , , 0, 1) là nửa vành Boolean, (+, +, , 0, 1) là nửa
vành Probability, ( {-, +}, log, +, +, 0) là nửa vành Log, ( {-, +},
min, +, +, 0) là nửa vành Tropical Phép toán log đƣợc định nghĩa nhƣ sau: a, b
{}, a logb = -log(exp(-a)+exp(-b)), trong đó: exp(-) = 0, -log(0) =
1.1.1.3 Ngôn ngữ
Tập hữu hạn khác rỗng gọi là bảng chữ cái, phần tử a gọi là ký tự hay
chữ cái Trên bảng chữ cái , mỗi từ hay xâu w độ dài n > 0 là một dãy gồm n chữ cái w = a1a2 a n , a i , i = 1, , n Quy ƣớc từ rỗng là từ có độ dài bằng 0 và ký hiệu ε Độ dài của w ký hiệu là |w| Ký hiệu w[i] là ký tự thứ i trong w (w[i] = a i),
w(i) là khúc đầu có độ dài i của w (w(i) =a1 a i ) Từ đảo ngược của w ký hiệu là w
và đƣợc xác định nhƣ sau: w = a n a2a1
Tập hợp tất cả các từ (bao gồm từ rỗng) trên bảng chữ cái ký hiệu là *
Với mọi v, w *
, phép đặt cạnh nhau vw gọi là phép ghép v với w Từ rỗng là
phần tử đơn vị của phép ghép, ε w= w ε= w với mọi w * Phép ghép có tính chất kết hợp, nên *
trở thành vị nhóm tự do sinh bởi , với phần tử đơn vị là từ rỗng Tập tất cả các từ trên bảng chữ cái không kể từ rỗng, đƣợc ký hiệu là +, ta
Trang 21Cho các ngôn ngữ L1, L2, L * Khi đó ta định nghĩa các phép toán trên ngôn ngữ nhƣ sau:
Tích ghép của hai ngôn ngữ L1, L2 là một ngôn ngữ trên bảng chữ cái ký
hiệu L1L2 và đƣợc xác định nhƣ sau:
L1L2 = {uv *u L1 và v L2} (1.1)
Đối với tích ghép LL L (n lần) ta ký hiệu L n Quy ƣớc L1 = L, L0 ={ε}
Hợp của hai ngôn ngữ L1, L2 là một ngôn ngữ trên bảng chữ cái ký hiệu L1
L Hiển nhiên L+ = L* \ {ε}
Trang 221.1.1.4 Khoảng cách soạn thảo
Phép thực hiện biến đổi ký tự này thành ký tự khác hoặc đổi chỗ hai ký tự
khác nhau liền kề gọi là phép toán soạn thảo Ký hiệu (ε, b), (a, ε), (a, b), (ab, ba) với a, b và a b lần lượt là phép chèn, phép xóa, phép thay thế một ký tự và phép đổi chỗ hai ký tự khác nhau liền kề, ở đó ε, a, a, ab lần lượt gọi là đầu vào và
b, ε, b, ba lần lượt gọi là đầu ra của phép toán soạn thảo tương ứng Hai phép toán soạn thảo gọi là chồng nhau nếu có đầu ra hoặc ký tự thuộc đầu ra của phép toán
soạn thảo này lại là đầu vào hoặc ký tự thuộc đầu vào của phép toán soạn thảo kia, ở
đó ta có quan tâm đến vị trí của ký tự
Khoảng cách soạn thảo Levenshtein giữa hai xâu được xác định bởi số ít
nhất các phép toán soạn thảo cần thiết biến đổi xâu này thành xâu kia, ở đó phép toán soạn thảo là phép chèn, phép xoá, phép thay thế một ký tự [40, 41]
Ví dụ 1.2 Nếu chi phí của mỗi phép toán soạn thảo là 1 thì khoảng cách soạn thảo Levenshtein giữa xâu "kittenabb" và "sittinbag" là 5, vì 5 phép toán dưới đây biến
đổi xâu này thành xâu kia, mà không có cách nào thực hiện ít hơn 5 phép toán đó
kittenabb → sittenabb (phép thay thế một ký tự (k, s)),
sittenabb → sittinabb (phép thay thế một ký tự (e, i)),
sittinabb → sittinbbb (phép thay thế một ký tự (a, b)),
sittinbbb → sittinbab (phép thay thế một ký tự (b, a)),
sittinbab → sittinbag (phép thay thế một ký tự (b, g))
Khoảng cách soạn thảo Damerau–Levenshtein (DL) giữa hai xâu được xác
định bởi số ít nhất các phép toán soạn thảo cần thiết biến đổi xâu này thành xâu kia,
ở đó phép toán soạn thảo là phép chèn, phép xoá, phép thay thế một ký tự và phép đổi chỗ hai ký tự khác nhau liền kề [23] Còn gọi tắt là khoảng cách DL
Ví dụ 1.3 Giả sử chi phí của mỗi phép toán soạn thảo là 1 Khoảng cách DL giữa
Trang 23"kittenabb" và "sittinbag" là 4, vì 4 phép toán dưới đây biến đổi xâu này thành xâu
kia, mà không có cách nào thực hiện ít hơn 4 phép toán đó
kittenabb → sittenabb (phép thay thế một ký tự (k, s)),
sittenabb → sittinabb (phép thay thế một ký tự (e, i)),
sittinabb → sittinbab (phép đổi chỗ hai ký tự khác nhau liền kề (ab, ba)),
sittinbab → sittinbag (phép thay thế một ký tự (b, g))
Khoảng cách soạn thảo Damerau–Levenshtein hạn chế giữa hai xâu được
xác định bởi số ít nhất các phép toán soạn thảo cần thiết biến đổi xâu này thành xâu kia, mà không có hai phép toán soạn thảo nào chồng nhau Ở đó, phép toán soạn thảo là phép chèn, phép xoá, phép thay thế một ký tự và phép đổi chỗ hai ký tự khác nhau liền kề [23] Còn gọi tắt là khoảng cách DL hạn chế
Cho xâu x , y, |x|=m, |y|=n, chỉ số của xâu bắt đầu là 1 Ký hiệu d(i, j) là khoảng cách DL hạn chế của x(i) và y(j) Vậy d(m, n) là khoảng cách DL hạn chế của x và y Khi đó d(m, n) được xác định đệ quy như sau (xem [23]):
][][][][nÕu
nÕu
nÕu
)cos)1,1(,1)1,(,1),1(min(
11
11
)cos)2,2(,cos)1,1(
,1)1,(,1),1(min(
00
)
,
(
t n
m d n
m d n m d
n y m
, x n y m , x , n m
t n
m d t n
m d
n m d n m d
m n
n m
ot → to (phép đổi chỗ hai ký tự khác nhau liền kề (ot, to))
nhưng khoảng cách DL hạn chế giữa hai xâu "ost" và "to" là 3
Trang 24ost → tst (phép thay thế một ký tự (o, t)),
tst → tot (phép thay thế một ký tự (s, o)),
tot → to (phép xóa (t, ε))
Khoảng cách DL có chi phí biến đổi xâu này thành xâu kia ít hơn hoặc bằng khoảng cách DL hạn chế, khoảng cách DL hạn chế có chi phí biến đổi xâu này thành xâu kia ít hơn hoặc bằng khoảng cách soạn thảo Levenshtein Tuy gần nhau
về định nghĩa, các thuật toán cho tới nay chủ yếu tính khoảng cách soạn thảo Levenshtein và khoảng cách DL hạn chế Thực chất lỗi soạn thảo xảy ra thường là dạng khoảng cách DL hạn chế, mặt khác do khó khăn để tìm được một thuật toán hiệu quả tính khoảng cách DL [23]
Thuật toán 1.1 xác định khoảng cách DL hạn chế của hai xâu x, y [23]:
Thuật toán 1.1 RDL(x, y)
Input: Xâu x, y
Ouput: Khoảng cách DL hạn chế giữa hai xâu x và y
1 for i ← 0 to m do d(i, 0) ← i; // i phép xóa
for j ← 1 to n do d(0, j) ← j; // j phép chèn
2 for i ← 1 to m do
for j ← 1 to n do
2.1 if x[i] = y[j] then cost ← 0 else cost ← 1;
2.2 d(i, j)← min(d(i-1, j) + 1, d(i, j-1) + 1, d(i-1, j-1)+cost );
// phép xóa, phép chèn, phép thay thế một ký tự
2.3 if (i > 1 and j >1 and x[i] =y[j-1] and x[i-1] = y[j]) then
d(i, j) ← min(d(i, j), d(i-2, j-2) + cost );
//1 phép đổi chỗ hai ký tự khác nhau liền kề
3 Return d(m, n);
Thuật toán 1.1 xét chi phí của mỗi phép toán soạn thảo là 1 Nhưng điều này
là tùy ý cho trường hợp tổng quát được xét ở phần sau
Trang 251.1.1.5 Xâu con chung dài nhất
Dãy con của xâu x là một xâu thu đƣợc bằng cách giữ nguyên x hoặc xóa đi một số ký tự trong x Xâu z gọi là xâu con chung của hai xâu x và y nếu z vừa là dãy con của x và vừa là dãy con của y Xâu con chung của hai xâu x, y có độ dài lớn nhất gọi là xâu con chung dài nhất (LCS) của x và y Ký hiệu LCS(x, y), L(x, y) lần lƣợt là tập các LCS và độ dài LCS của hai xâu x và y
Cho xâu x, y trên bảng chữ cái , |x| = m, |y| = n Khi đó, độ dài LCS của hai xâu x, y đƣợc xác định một cách đệ quy nhƣ sau (xem [71]):
nÕu
hoÆc nÕu
)))1(),(()),(),1((max(
][][1
))1(),1((
00
0))(
),
(
(
n y m x L n y m
x L
n y m x n
y m
x L
n m
Ví dụ 1.5 x = “xmjyauz”, y = “mzjawxu” Vậy L(x, y)=4, LCS(x, y) = {mjau} Giá
trị ô hàng i, cột j trong Bảng 1.1 là độ dài LCS của x(i) và y(j) theo (1.8)
Bảng 1.1 Độ dài LCS của khúc đầu của x và y
Trang 26Nói cách khác, L là mã nếu mọi từ trong L+ chỉ có một phân tích duy nhất
thành các từ trong L Do ε =.ε ε nên mọi tập mã đều không chứa từ rỗng
Ví dụ 1.6 Với bất kỳ bảng chữ cái , tập L = luôn là mã
Ví dụ 1.7 Tập L = {aa, baa, ba} trên bảng chữ cái = {a, b} là mã Thực vậy, giả
sử ngƣợc lại L không là mã, suy ra tồn tại từ w L+, có độ dài nhỏ nhất và có hai phân tích khác nhau:
w = x1x2 x n = y1y2 y m , với m, n 1, x i , y j L,
vì w có độ dài nhỏ nhất nên x1 y1 Không mất tính tổng quát, giả sử x1 là khúc đầu
thực sự của y1 Vì x1, y1 L, suy ra x1 = ba, y1 = baa, kéo theo x2 = aa, y2 = aa, ta
có y1 = x1a, y1y2 = x1x2a Nếu có y1y2 y p = x1x2 x p a thì y1y2 y p+1 = x1x2 x p+1 a Vậy, không có từ w có hai phân tích khác nhau, trái với giả thiết
Ví dụ 1.8 Tập L = {a, ab, ba} không là mã vì từ w = aba có hai phân tích khác
nhau: w = (ab)a = a(ba)
1.1.2.2 ω - mã
Cho bảng chữ cái Từ vô hạn phía phải (còn gọi là ω-từ) là tích ghép vô
hạn phía phải các ký tự của (u = u1u2 u n , với u i, i 0) Ký hiệu là tập tất
cả các từ vô hạn phía phải trên Tập con của gọi là ω-ngôn ngữ
Cho L * Ta ký hiệu L = {w | w = w1w2 , với w i L, i 0} Một
ω-phân tích phải của một từ w trên L là một dãy vô hạn w1, w2, ,w n,
các từ của L sao cho w = w1w2 w n
Định nghĩa 1.3 [24] Một ngôn ngữ L *
là ω-mã nếu mỗi từ w bất kỳ thuộc
có nhiều nhất một ω-phân tích phải trong L (hay mỗi từ w bất kỳ thuộc L có duy nhất một ω-phân tích phải trong L)
Ví dụ 1.9 Tập L = {aa, baa, ba} trên bảng chữ cái = {a, b} là mã nhƣ đã biết trong Ví dụ 1.7 Nhƣng L không là ω- mã, vì từ w = baaaa L có hai ω-phân
Trang 27tích phải khác nhau trong L:
không mất tính tổng quát ta luôn giả sử được x1 y1, suy ra x1 là khúc đầu thực sự
của y1 hoặc ngược lại Điều này là mâu thuẫn, vì không thể tìm được x1, y1 L sao cho x1 là khúc đầu thực sự của y1 hoặc ngược lại
1.1.2.3 Z - mã
Cho bảng chữ cái Từ vô hạn phía trái là tích ghép vô hạn phía trái các ký
tự của (u = …u -n u -2 u -1 , với u i, i) Từ vô hạn hai phía là tích ghép vô hạn
phía trái và phía phải các ký tự của (u = …u -n u -2 u -1 u0u1…u m …, với u i , i)
[25, 68] Ký hiệu , lần lượt là tập các từ vô hạn phía trái, vô hạn hai phía
tương ứng Cho L *
, ta ký hiệu L, L là tập các tích ghép vô hạn phía trái và
vô hạn hai phía những từ khác rỗng của L tương ứng
Một ω-phân tích trái của một từ w trên L là một dãy vô hạn …,
w -n ,…,w-2, w-1 các từ của L, sao cho w = …w -n …w -2 w-1 Một ω-phân tích trái hay ω-phân tích phải trên L của từ vô hạn phía trái hay vô hạn phía phải tương ứng,
được hiểu theo nghĩa thông thường (xem mục 1.1.2.2 hoặc [68]), nhưng đối với từ
vô hạn hai phía được hiểu như dưới đây:
Cho w có dạng w = a-2a-1a0a1a2 , với a i Một Z-phân tích trên L của từ vô hạn hai phía w là một hàm tăng nghiêm ngặt μ : Z → Z thỏa mãn x i =
a(i)+1 a(i+1) L, i Z [68] Hai Z-phân tích μ và λ gọi là bằng nhau ký hiệu là
μ = λ nếu có t Z sao cho λ(i+ t) = μ (i), i Z Ngược lại, μ và λ gọi là khác
nhau (ký hiệu là μ λ ) nếu λ (Z) μ (Z); hay nói cách khác là tồn tại từ u +,
Trang 28hai dãy vô hạn hai phía những từ của L: x-2, x-1,x0, x1, x2 và y-2, y-1,y0, y1, y2 sao cho:
của có nhiều nhất một ω-phân tích trái trên L thì L đƣợc gọi là N –mã Hiển
nhiên ta có: L là N-mã khi và chỉ khi L = { x | x L} là N –mã
Định nghĩa 1.4 [68] Ngôn ngữ L +
là Z–mã nếu tất cả các Z-phân tích trên L
của mỗi từ vô hạn hai phía bất kỳ là bằng nhau
Ví dụ 1.11 Tập L = {aa, ab, bb} trên bảng chữ cái = {a, b} là ω -mã (nhƣ trong
Ví dụ 1.10), nhƣng L không là Z-mã Thật vậy, ta xét hai dãy vô hạn gồm các từ của L:
với b bb hoặc b ab
Ví dụ 1.12 Tập L={a, ab, bb} không là ω -mã vì (a)(bb)(bb)…= (ab)(bb)(bb)… và cũng không là Z-mã Thực vậy, ta xét hai dãy vô hạn gồm các từ của L:
…(a)(a)(a)(bb)(bb)…= …(a)(a)(ab)(bb)b…
rõ ràng, tồn tại b + sao cho:
…(a)(a)(a)b = …(a)(a)(ab) |b| |bb|
(bb)(bb)… = b(bb)b… |b| |ab|
Trang 29với b bb hoặc b ab
Ví dụ 1.13 Tập L = {aab, bba} trên bảng chữ cái = {a, b} là Z – mã Thực vậy, giả sử L không là Z–mã, ta xét các khả năng chọn u + và hai dãy vô hạn hai phía
Ví dụ 1.14 Cho L = {aa, ba, b} là mã L có độ trễ giải mã vô hạn, vì d 0, từ
b(aa) d L 1+d là tiền tố của y(aa) d với y = ba ≠ b
Ví dụ 1.15 Cho L = {ab, abb, baab} là mã Dễ dàng ta có thể kiểm tra theo định nghĩa, L có độ trễ gải mã 1
1.2 Máy biến đổi và otomat
1.2.1 Khái niệm
Trang 30Định nghĩa 1.6 [48] Máy biến đổi trạng thái hữu hạn có trọng số (gọi tắt là máy biến đổi) trên nửa vành là một bộ 8 = (Q, , , E, I, F, λ, ρ) ở đó: Q là tập hữu
hạn các trạng thái, là bảng chữ cái vào hữu hạn, là bảng chữ cái ra hữu hạn, E
Q ( {ε}) ( {ε}) Q là tập hữu hạn các phép biến đổi, I Q là tập các trạng thái ban đầu, F Q là tập các trạng thái kết thúc, λ: I → là hàm trọng
số đầu, ρ: F → là hàm trọng số kết thúc
Cho phép biến đổi (cung) e = (q1, a, b, wg, q2) E Ta nói rằng e rời q1 và
đến q2, trạng thái q1 gọi là trạng thái đầu của e ký hiệu là p[e], q2 gọi là trạng thái cuối của e ký hiệu là n[e], a là nhãn vào của e ký hiệu là i[e], wg là trọng số của e
ký hiệu là wg[e], b là nhãn ra của e ký hiệu là o[e] Cho trạng thái q Q, ta ký hiệu E[q] là tập các phép biến đổi rời q
Cho π = e1 e k E * , ở đó n[e i-1 ] = p[e i ], i = 2, , k và p[e1] = q, n[e k ] = q’ được gọi là đường đi từ q đến q’ Ta mở rộng hàm trạng thái đầu p, hàm trạng thái cuối n, hàm nhãn vào i, hàm nhãn ra o và hàm trọng số wg cho đường đi π như sau: n[π] = n[e k ] và p[π] = p[e1]; nhãn vào, ra của đường đi π là tích ghép nhãn vào, ra tương ứng của các phép biến đổi thành phần; trọng số của đường đi π là -tích
trọng số của các phép biến đổi thành phần (hay i[π] = i[e1] i[e k ], o[π] = o[e1] o[e k ]
và wg[π] = wg[e1] wg[e k ])
Đường đi thành công trên máy biến đổi là một đường đi từ trạng thái ban
đầu đến trạng thái kết thúc Đường đi π gọi là chu trình nếu n[π] = p[π]
Ký hiệu P(q, q’) là tập các đường đi từ q đến q’, P(q, x, q’) là tập các đường
đi từ q đến q’ với nhãn vào x *
, P(q, x, y, q’) là tập các đường đi từ q đến q’ với nhãn vào x * và nhãn ra y * Ký hiệu này có thể mở rộng với tập R, R’ Q như sau: P(R, x, R’)= q R, q’ R’ P(q, x, q’), P(R, x, y, R’)= q R, q’ R’ P(q, x, y, q’)
Máy biến đổi là chính quy nếu với mọi x * , y *:
(x, y) =
) , , , (I y F P
π λ(p[π]) wg[π] ρ(n[π]) (1.13)
Trang 31là xác định trong Ta có (x, y) = 0 khi P(I, x, y, F) = Giả sử rằng, tất cả các
máy biến đổi xem xét trong luận án đều là chính quy
Ngoài máy biến đổi đã xem xét, dưới dây ta xem xét một số dạng otomat sẽ được sử dụng trong luận án
Otomat có trọng số trên nửa vành là bộ 7 = (Q, , E, I, F, λ, ρ), ở đó Q ,
, I, F, λ, ρ xác định như trong Định nghĩa 1.6 và E được xác định như sau: E Q
π λ(p[π]) wg[π] ρ(n[π]) (1.14)
là xác định trong Ta có (x) = 0 khi P(I, x, F) =
Otomat hữu hạn là một bộ 5 = (Q, , E, I, F), ở đó Q, , I, F xác định như trong Định nghĩa 1.6, E là tập các cung rời trạng thái thuộc Q và đến trạng thái thuộc Q được gán nhãn là ký tự thuộc {ε} Otomat hữu hạn gọi là Otomat đa định nếu E Q ( {ε}) Q Otomat hữu hạn gọi là Otomat đơn định nếu
có duy nhất một trạng thái ban đầu và với mỗi q Q, với mỗi a có nhiều
nhất một cung rời q với nhãn a
Cho cung e = (p, ε, q) E Nếu p ≠ q thì gọi e là cung rỗng, nếu p = q thì gọi
e là khuyên rỗng
Cho đường đi π = e1 e k E * , với e1 = (p0, a1, p1), e2 = (p1, a2, p2), …, e k =
(p k-1 , a k , p k ) Từ w = a1a2 a k gọi là nhãn của đường đi π, tập hợp tất cả các nhãn của
các đường đi thành công trong otomat hữu hạn gọi là ngôn ngữ được đoán nhận
Trang 32thái của là đạt đƣợc và cũng là đối đạt đƣợc Thuật toán kinh điển xây dựng otomat hữu hạn thu gọn đƣợc thực hiện bởi hàm ký hiệu là TRIM(), có độ phức tạp thời gian là(|Q|+|E|) và () = (TRIM())
Otomat Büchi là một bộ 5 = (Q, , E, I, F), ở đó: Q là tập hữu hạn các
trạng thái, là bảng chữ cái, E Q ( {ε}) Q là tập hữu hạn các cung, I Q
là tập các trạng thái ban đầu, F Q là tập các trạng thái kết thúc Một mạch π của otomat Büchi là một dãy các trạng thái: q0, q1, q2, …, sao cho: q0 I, (q i , u i , q i+1)
E, i 0 Từ vô hạn phía phải w = u0u1 u n , với u i, i 0 gọi là từ của mạch
π Cho tập infi(π) = {q Q| q xuất hiện vô hạn lần trên π} Mạch π gọi là đƣợc đoán nhận bởi otomat Büchi nếu infi(π) F ≠ Tập tất cả các từ của các mạch đƣợc đoán nhận bởi otomat Büchi gọi là ngôn ngữ đoán nhận bởi otomat Büchi
1.2.2 Hợp thành của hai máy biến đổi
Phép hợp thành là phép toán cơ bản trên máy biến đổi đƣợc sử dụng trong
nhiều ứng dụng Cho 1, 2 là hai máy biến đổi trên nửa vành giao hoán , có bảng
chữ cái vào của 2 trùng khớp bảng chữ cái ra của 1 Khi đó, hợp thành của 1 và
2 là máy biến đổi ký hiệu là 12 xác định với tất cả x, y nhƣ sau [49, 50]:
Thuật toán 1.2 COMPO(1, 2)
Input: 1, 2 là hai máy biến đổi
Ouput: Máy biến đổi 12
Trang 33//ENQUEUE, DEQUEUE là phép bổ sung và loại bỏ phần tử trên hàng đợi S
6 for each (e1, e2) in E[q1] × E[q2] such that o[e1] = i[e2] do
if (n[e1], n[e2]) Q then
Q←Q {(n[e1], n[e2])}; ENQUEUE(S, (n[e1], n[e2]));
E ←E {((q1, q2), i[e1], o[e2], wg[e1] wg[e2], (n[e1], n[e2]))};
7 Return 12;
Độ phức tạp thời gian của thuật toán ((|Q1|+|E1|)(|Q2|+|E2|)) [49, 50]
Ta có thể áp dụng Thuật toán 1.2 trên otomat có trọng số, otomat hữu hạn hay otomat Büchi Khi đó, ta coi nhãn vào và nhãn ra của mỗi cung là trùng nhau, trọng số của các phép biến đổi bằng 0 với trường hợp otomat hữu hạn hay otomat Büchi
Ví dụ 1.16 Cho otomat hữu hạn = (, Q1, I1, F1, E1) (Hình 1.1.a), ở đó:
= {a, b, c},
Q1 = {0, 1, 2, 3},
I1 = {0}, F1 = {3},
E1= {(0, b, 1), (0, a, 2), (1, a, 1), (1, c, 3), (2, b, 3)}
Trang 34Hình 1.1 Hợp thành của otomat hữu hạn với máy biến đổi trên nửa vành Tropical
Cho máy biến đổi = (, , Q2, I2, F2, E2, λ, ρ) (Hình 1.1.b), ở đó:
Trang 351.3 Đồ thị hữu hạn
1.3.1 Khái niệm cơ bản
Định nghĩa 1.7 [2, 6] Cho V là tập hữu hạn khác rỗng các phần tử và E VV Một cặp G = (V, E) được gọi là đồ thị hữu hạn
Mỗi phần tử u V gọi là đỉnh và mỗi phần tử e = (u, v) E gọi là cạnh của
đồ thị hữu hạn G, vì thế người ta còn gọi V là tập các đỉnh và E là tập các cạnh của
G Nếu e = (u, u) E thì cạnh e gọi là khuyên
Nếu với mọi cạnh e = (u, v) E ta không phân biệt thứ tự của các đỉnh u và
v (tức là từ u đến v không kể hướng) thì ta nói đồ thị hữu hạn G là đồ thị hữu hạn vô hướng, hay còn gọi tắt là đồ thị vô hướng Trong trường hợp ngược lại, nếu với mọi cạnh e = (u, v) E là một cặp đỉnh có thứ tự (hay có hướng từ u đến v) thì ta nói rằng G là đồ thị hữu hạn có hướng, hay còn gọi tắt là đồ thị có hướng Mỗi cạnh của
Định nghĩa 1.8 [2, 6] Đường đi từ đỉnh u đến đỉnh v trên đồ thị hữu hạn (vô hướng
hoặc có hướng) G = (V, E) là dãy đỉnh: u0, u1, , u n-1 , u n , trong đó u = u0, v = u n , (u i,
Trang 361.3.2 Biểu diễn đồ thị trong máy tính
Ở đây, ta đề cập đến phương pháp ma trận kề và danh sách kề [2, 6]
1.3.2.1 Phương pháp ma trận kề
Cho đồ thị G = (V, E), với V = {u1, u2, , u n } Ta xây dựng ma trận vuông A cấp n biểu diễn G như sau: A[i, j] = d nếu cặp đỉnh u i , u j có d cạnh (cung) nối với nhau Khi cặp đỉnh u i , u j không có cạnh (cung) nào nối với nhau thì A[i, j] = 0, i, j = 1, , n Bằng cách đó ta nhận được ma trận kề biểu diễn đồ thị đã cho Ma trận kề
của đồ thị vô hướng là đối xứng, đối với đồ thị có hướng nói chung là không đối xứng
1.3.2.2 Phương pháp danh sách kề
Với mỗi đỉnh của đồ thị, ta xây dựng một danh sách liên kết (danh sách kề)
chứa các đỉnh kề với nó Một đồ thị biểu diễn bằng một mảng các danh sách kề
Trang 37123456
1.3.3 Tìm kiếm theo chiều sâu
Thuật toán tìm kiếm theo chiều sâu (Depth First Search) cho phép duyệt tất
cả các đỉnh trên đồ thị, mỗi đỉnh một lần [6, 22] Tư tưởng của thuật toán như sau:
- Ban đầu, các đỉnh được tô màu WHITE, cho biết các đỉnh này chưa được xét Các đỉnh đang xét tô màu GREY Đỉnh đã hoàn tất việc xét tô màu BLACK
- Bắt đầu tìm kiếm từ một đỉnh v0 nào đó trên đồ thị, chọn u là đỉnh tùy ý kề với v0 và lặp lại quá trình này đối với u Ở bước tổng quát, giả sử đang xét đỉnh v (tô màu GREY) Nếu trong các đỉnh kề với v tìm được đỉnh chưa xét (tô màu WHITE)
thì ta sẽ xét đỉnh này, từ nó ta tiếp tục quá trình tìm kiếm Nếu không còn đỉnh kề
với v chưa được xét thì đỉnh này đã duyệt xong (tô màu BLACK) và quay trở lại tiếp tục tìm kiếm từ đỉnh trước đó đến được đỉnh v (nếu v = v0 thì kết thúc tìm kiếm)
Tìm kiếm theo chiều sâu được thực hiện bởi Thuật toán 1.3 dưới đây:
Thuật toán 1.3 DFS(G)
Output: Thăm các đỉnh trên G, mỗi đỉnh một lần
1 for each u in V do color[u] ← WHITE;
Trang 382 for each u in V do
if color[u] = WHITE then VISIT(u);
Thuật toán 1.4 VISIT(u)
1 color[u] ← GREY; //đỉnh u vừa được thăm
2 for each v in Next(u) do //khảo sát cạnh (u, v)
if color[v] = WHITE then VISIT(v);
3 color[u] ← BLACK; // tô đen đỉnh u khi đã hoàn tất
Thuật toán 1.3 – DFS (Depth First Search) có độ phức tạp thời gian là
(|V|+|E|) [6, 22]
1.3.4 Tìm đường đi ngắn nhất nguồn đơn
Xét đồ thị có hướng G = (V, E), mỗi cung (u, v) E được gán trọng số wg[(u, v)] là một số thực (nếu (u, v) E thì wg[(u, v)]= ) Nếu dãy các đỉnh u0,
u1,…, u p là đường đi trên G, thì độ dài của nó được định nghĩa là tổng sau:
p
u u
Bài toán tìm đường đi ngắn nhất trên G phát biểu như sau [6, 22]: tìm đường
đi có độ dài nhỏ nhất từ đỉnh xuất phát s V đến đỉnh đích t V Đường đi như vậy gọi là đường đi ngắn nhất từ s đến t, độ dài của nó ký hiệu là d(s, t) (có thể là số âm) Nếu không có đường đi từ s đến t thì đặt d(s, t) = Nếu như mọi chu trình
trên G đều có độ dài không âm thì đường đi ngắn nhất sẽ không có đỉnh nào lặp lại (gọi là đường đi cơ bản) Nếu G có chu trình với độ dài âm thì độ dài đường đi ngắn
nhất giữa một số cặp đỉnh nào đó có thể không xác định, bằng cách đi vòng theo chu trình này một số lần đủ lớn, ta có thể chỉ ra đường đi giữa các đỉnh này có độ dài nhỏ hơn bất kỳ số thực nào cho trước Khi đó, ta chỉ đặt vấn đề tìm đường đi cơ bản có độ dài ngắn nhất
Thuật toán DIJKSTRA là hữu hiệu trong trường hợp này, được xây dựng trên cơ sở gán cho các đỉnh nhãn tạm thời Các nhãn này được biến đổi theo bước
Trang 39lặp, mỗi bước lặp có một đỉnh nhãn tạm thời trở thành cố định Từ đó, cho ta độ dài
của đường đi ngắn nhất từ s đến v V Thuật toán như sau:
Thuật toán 1.5 DIJKSTRA(G)
Input: Đồ thị có hướng G=(V, E) trọng số không âm, s V là đỉnh xuất phát
Output: d[v] là độ dài của đường đi ngắn nhất từ đỉnh s đến đỉnh v V Ta có pr[v] ghi nhận đỉnh trước v trong đường đi ngắn nhất từ s đến v
if d[v] > d[u] + wg[(u, v)] then
d[v] ← d[u] + wg[(u, v)];
pr[v] ← u;
4 Return;
Ở bước lặp sử dụng hàng đợi ưu tiên kết hợp với đống Fibonacci [22] Khi
đó Thuật toán 1.5 có độ phức tạp thời gian (|V|log|V|+|E|)
Định lý 1.1 [6, 22] Thuật toán DIJKSTRA tìm được đường đi ngắn nhất trên đồ thị
và có độ phức tạp thời gian là (|V|log|V|+|E|)
1.4 Chuỗi hình thức
1.4.1 Khái niệm
Cho bảng chữ cái và nửa vành Một chuỗi hình thức (hay chuỗi lũy thừa
Trang 40hình thức) S là một hàm * → , ảnh của từ w * ký hiệu là (S, w) và đƣợc gọi là
hệ số của w trong S Chuỗi hình thức đƣợc ký hiệu nhƣ một tổng hình thức:
w
w w S
y T x S w