Tải bản đầy đủ (.docx) (126 trang)

Một số vấn đề lý thuyết và ứng dụng của các mô hình otomat nâng cao

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

ĐẠ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


ĐẠ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
Mã số: 62 46 35 01

LUẬN ÁN TIẾN SĨ TOÁN HỌC

NGƢỜI HƢỚNG DẪN KHOA HỌC:

1. PGS. TS. Phan Trung Huy


2. GS. TS. Đặng Huy Ruận

Hà Nội – 2013


LỜ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.

Tác giả

Đặng Quyết Thắng


LỜ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


MỤ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


1.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


Chƣơ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



DANH 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

wg[π]

Trọng số của đƣờng đi π

wg[(u, v)]


Trọng số của cạnh (u, v) trên đồ thị



Bảng chữ cái



*

Ngôn ngữ trên bảng chữ cái 

L
L

+

L
L

Tập hợp tất cả các từ trên bảng chữ cái 

ω

Lặp cắt của ngôn ngữ L
Tập các từ đảo ngƣợc của các từ thuộc ngôn ngữ L
ω

- ngôn ngữ


Các chữ viết tắt
DL

Damerau–Levenshtein

LCS

Xâu con chung dài nhất (Longest Common Subsequence)


DANH 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………………………………
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…………………………………………………………………………
Hình 1.2. Đồ thị có hƣớng……………………………………………………..
Hình 1.3. Mảng danh sách kề của đồ thị G…………………………………..
Hình 1.4. Otomat có trọng số đoán nhận chuỗi hình thức...………………..
Hình 2.1. Máy biến đổi  thực hiện Ψ* trên bảng chữ cái Ω ………………..
Hình 2.2. Mở rộng kiểu 1 của otomat hữu hạn………………………………
Hình 2.3. Máy biến đổi  thực hiện Ψ* trên bảng chữ cái Γ ………………..
Hình 3.1. Tích hai otomat……………………………………………………..
Hình 3.2. Nhãn của đƣờng đi giữa hai trạng thái kế tiếp cùng dạng……….
Hình 3.3. Tích hợp hai otomat………………………………………………..
Hình 3.4. Hai kiểu hai ω -phân tích phải khác nhau của từ w………………
Hình 3.5. Bốn kiểu hai Z-phân tích khác nhau của từ w…………………….
Hình 4.1. Tính độ trễ giải mã của L…………………………………………..



MỞ ĐẦ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.


Trong 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ữ L 1 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


phú 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
3

nhất là (n ), ở đó 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


hay 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

4

đƣợc biết, có độ phức tạp thời gian là (h logh), ở đó 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


nhằ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ừ


thuậ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ữ,
có độ phức tạp thời gian là (hl).
Đóng góp thứ hai của luận án là đề xuất phương pháp kiểm định ω -mã và
Z-mã đối với ngôn ngữ được đoán nhận bởi otomat hữu hạn, công bố tại các công
trình [5, 6, 8, 10, 12] (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 thực hiện nhờ những đề xuất: ứng dụng
lƣỡng cực hóa otomat, cho phép đƣa otomat về dạng có một trạng thái ban đầu và
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ó độ
3


5

phức tạp thời gian là (n ) với đầu vào là otomat đơn định, là (n ) 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à độ phức tạp thời gian hàm mũ.
Đóng góp thứ ba của luận án là đề xuất phương pháp xác định độ không
nhập nhằng và độ trễ giải mã của ngôn ngữ được đoán nhận bởi otomat hữu hạn,
công bố tại các công trình [1, 4, 7, 9, 11] (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 dựa trên các đề xuất: kỹ
+

thuật mở rộng kiểu 4 của otomat, cho phép otomat đoán nhận ngôn ngữ L ; kỹ thuật


+ *

mở 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
4

2


thời gian là (n ) với đầu vào là otomat đa định, là (n logn) với đầu vào là otomat
đơn định.
-

3

Thuật toán xác định độ trễ giải mã, với độ phức tạp thời gian (h ), với đầu

vào là otomat đa định.
Các kết quả chính của luận án đƣợc công bố tại các công trình [1-12] (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à đã đƣợc
trình bày tại:
-

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.


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 độ


khô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.


Chƣơ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.


1.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...an, ai , 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] = ai),
w(i) là khúc đầu có độ dài i của w (w(i) =a1...ai). Từ đảo ngược của w ký hiệu là w
và đƣợc xác định nhƣ sau: w = an...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
+


*

có  =  –{ε}.


*

Tập L  gọi là ngôn ngữ trên bảng chữ cái . Một phân tích của một từ w 
*

 trên L là một dãy w1, w2,…, wn, với wi  L, i = 1,…, n sao cho w = w1w2…wn.


*

Cho 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:
*

= {uv  u  L

LL
1

n

2


1

0

Đối với tích ghép LL...L (n lần) ta ký hiệu L . Quy ƣớc L = L, L ={ε}.
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


L2 và đƣợc xác định nhƣ sau:
*

L  L = {u  u  L hoặc u  L }.
Giao của hai ngôn ngữ L1, L2 là một ngôn ngữ trên bảng chữ cái  ký hiệu
*

L  L = {u   u  L và
Hiệu 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\ L2 (hoặc L1 - L2) và đƣợc xác định nhƣ sau:
*

L \ L = {u   u  L và u  L }.
1

Phần bù của ngôn ngữ L là ngôn ngữ trên bảng chữ cái  ký hiệu C(L) và
đƣợc xác định nhƣ sau:
*

*


C(L) = {u  u  L } =  \ L.
Lặp hay bao đóng của ngôn ngữ L là ngôn ngữ trên bảng chữ cái  ký hiệu
*

L và đƣợc xác định nhƣ sau:
*

0

1

L =L 

L 

i 0

+

Lặp cắt của ngôn ngữ L là ngôn ngữ trên bảng chữ cái  ký hiệu L và đƣợc
+

1

2



xác định nhƣ sau: L = L  L  ... = Li . Hiển nhiên L+ = L* \ {ε}.
i


1


1.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


"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]):
m

nÕun  0



nÕum  0

n

min( d(m 1,n )  1,d(m ,n 1)  1,
d(m ,n ) 






d(m

min( d(m

1,n 1)  cost,d(m  2,n  2)  cost )

(1.7)

nÕum  1, n  1, x [m ]  y[n 1], x [m 1]  y[n ]
1,n )  1,d(m ,n 1)  1,d(m 1,n 1)  cost ) ng-îc l¹i

với cost = 0 khi x[m] = y[n], cost =1 khi x[m]  y[n].
Ví dụ 1.4. 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
hai xâu "ost" và "to" là 2.
ost → ot (phép xóa (s, ε)),
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.


×