Một số bài toán cơ bản trong nghiên cứu lý thuyết mã, tính chất mã và ứng dụng là: bài toán kiểm định mã, nghiên cứu các đặc tính của mã, … được nhiều nhà khoa học quan tâm nghiên cứu vì
Trang 1LỜI CẢM ƠN
Với tình cảm chân thành và lòng biết ơn sâu sắc, tôi xin trân trọng gửi lời cảm ơn tới TS Hồ Ngọc Vinh, người thầy trực tiếp hướng dẫn khoa học đã nhiệt tình chỉ bảo và giúp đỡ tôi trong suốt quá trình nghiên cứu để hoàn thành bản luận văn này
Xin chân thành cảm ơn Ban Giám Hiệu, các thầy cô giáo khoa sau đại học, các thầy cô giáo viện Công nghệ thông tin và Truyền thông – trường Đại học Bách Khoa Hà Nội đã đào tạo và giúp đỡ để em hoàn thành khoá học
Tôi xin chân thành cảm ơn Ban Giám Hiệu, phòng Tổ chức-Cán bộ, phòng Đào tạo-NCKH, Trung tâm Ngoại ngữ-Tin học và HTHT – Trường Cao đẳng Sư phạm tỉnh Điện Biên cùng bạn bè và đồng nghiệp đã tạo điều kiện thuận lợi cho tôi trong quá trình học tập và thực hiện đề tài
Nhân dịp này, tôi xin bày tỏ lòng biết ơn sâu sắc nhất tới gia đình, những người thân đã quan tâm giúp đỡ và tạo mọi điều kiện thuận lợi nhất để tôi hoàn thành tốt luận văn này
Trang 2LỜI CAM ĐOAN
Luận văn thạc sĩ này là do tôi nghiên cứu và thực hiện dưới sự hướng dẫn của thầy giáo TS Hồ Ngọc Vinh Để hoàn thành bản luận văn này, ngoài các tài liệu tham khảo đã liệt kê, tôi cam đoan không sao chép toàn văn các công trình của người khác
Hà Nội, ngày 18 tháng 8 năm 2016
Phan Đình Lập
Trang 3MỤC LỤC
Trang
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5
DANH MỤC CÁC BẢNG BIỂU 6
DANH MỤC CÁC HÌNH VẼ 7
MỞ ĐẦU 8
CHƯƠNG 1 GIỚI THIỆU VỀ OTOMAT VÀ ỨNG DỤNG 10
1.1 Một số khái niệm 10
1.1.1 Bảng chữ cái 10
1.1.2 Từ (Xâu) 10
1.1.3 Xâu con chung dài nhất 11
1.1.4 Các phép toán trên từ (xâu) 12
1.1.5 Ngôn ngữ 13
1.1.6 Các phép toán trên ngôn ngữ 13
1.1.7 Vị nhóm 14
1.1.8 Nửa vành 14
1.2 Otomat hữu hạn 15
1.2.1 Otomat hữu hạn đa định 15
1.2.2 Otomat hữu hạn đơn định 17
1.2.3 Một số cách biểu diễn otomat hữu hạn 18
1.2.4 Một số thuật toán trên otomat hữu hạn 20
1.3 Đồ thị hữu hạn 24
1.3.1 Khái niệm cơ bản 24
Trang 41.3.2 Biểu diễn đồ thị trong máy tính 25
CHƯƠNG 2 MỘT SỐ LỚP MÃ VÀ OTOMAT 27
2.1 Mã và các tính chất của mã 27
2.1.1 Mã 27
2.1.2 -mã 30
2.1.3 -mã 33
2.1.4 Z–mã 35
2.1.5 Độ trễ giải mã 36
2.2 Máy biến đổi và otomat 37
2.2.1 Khái niệm 37
2.2.2 Hợp thành của hai máy biến đổi 40
2.2.3 Lưỡng cực hoá, mở rộng kiểu 2 và kiểu 3 của otomat 43
2.2.4 Tích otomat 44
2.2.5 Tích hợp otomat 47
2.2.6 Sự tồn tại đường đi kiểu 1 và kiểu 2 48
CHƯƠNG3 KIỂM ĐỊNH -MÃ, ω-MÃ VÀ Z-MÃ 53
3.1 Tính toán độ trễ giải mã cho -mã theo otomat 53
3.2 Kiểm định ω-mã theo otomat 63
3.3 Kiểm định Z-mã theo otomat 67
KẾT LUẬN VÀ KIẾN NGHỊ 73
TÀI LIỆU THAM KHẢO 74
Trang 5DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
-mã Mã của các từ định biên
-mã Mã của các từ vô hạn
Z-mã Mã zigzag
LCS Xâu con chung dài nhất
(Longest Common Subsequence)
DFA Otomat hữu hạn đơn định
(Deterministic Finite Automata) DFS Tìm kiếm theo chiều sâu
(Depth First Search)
Trang 6DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Độ dài LCS của khúc đầu của x và y 12
Bảng 1.2 Bảng chuyển trạng thái của otomat 18
Bảng 1.3 Bảng chuyển của otomat 19
Bảng 1.4 Bảng chuyển của otomat trong Ví dụ 1.12 23
Bảng 1.5 Bảng chuyển của otomat đơn định M trong Ví dụ 1.12 24
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Đồ thị chuyển trạng thái của otomat1 19
Hình 1.2 Quá trình đoán nhận xâu w = ababbab trên1 20
Hình 1.3 Đồ thị chuyển trạng thái của otomat 21
Hình 1.4 Đồ thị có hướng 26
Hình 1.5 Mảng danh sách kề của đồ thị G 26
Hình 2.1 Độ trễ giải mã hữu hạn d 36
Hình 2.2 Hợp thành của otomat với máy biến đổi trên nữa vànhTropical 42
Hình 2.3 Tích hai otomat 45
Hình 2.4 Nhãn của đường đi giữa hai trạng thái kế tiếp cùng dạng 46
Hình 2.5 Tích hợp hai otomat 47
Hình 3.1 Phân tích zV d1X hoặc z (Y +)1(V d1X) 57
Hình 3.2 Phân tích zX-1V d hoặc zU d1Y+ 58
Hình 3.3 Hai kiểu hai ω-phân tích phải khác nhau của từ w 65
Hình 3.4 Bốn kiểu hai Z -phân tích khác nhau của từ w 68
Trang 8MỞ ĐẦU
1 Tính cấp thiết của đề tài
Sự phát triển của khoa học máy tính, nhu cầu sử dụng mã trong biểu diễn, bảo mật thông tin ngày càng quan trọng và cần thiế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ã Một số bài toán cơ bản trong nghiên cứu lý thuyết mã, tính chất mã và ứng dụng là: bài toán kiểm định mã, nghiên cứu các đặc tính của mã, … đượ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 sự phát triển của ngôn ngữ hình thức và lý thuyết biểu diễn thông tin nói chung, mã trong mối quan hệ với đại số, tổ hợp trên từ, lý thuyết ngôn ngữ hình thức và otomat hữu hạn Để đáp ứng được các yêu cầu đòi hỏi khắt khe của các hệ thống đối với mỗi bài toán, mỗi ứng dụng đặt ra vấn đề về chất lượng, độ chính xác, độ
ổn định, thời gian đáp ứng của hệ thống thì việc nghiên cứu, tìm hiểu các công
cụ kỹ thuật, công cụ lập trình, thuật toán mô phỏng là rất cần thiết Đề tài của
luận văn “Thuật toán kiểm tra tính chất mã bằng otomat hữu hạn” có ý nghĩa
thực tiễn và thời sự cao, có khả năng phát triển cả về mặt lý thuyết và ứng dụng trong thực tế
2 Mục tiêu nghiên cứu của luận văn
Dựa trên các thành tựu của đại số, lý thuyết otomat và lý thuyết đồ thị, thiết
lập các thuật toán kiểm định mới cho mã và các lớp mã khác như ω-mã, -mã
và Z-mã với chất lượng tốt hơn
3 Phương pháp nghiên cứu
Sử dụng phương pháp và công cụ của đại số, otomat hữu hạn, lý thuyết về otomat để làm công cụ và phương tiện sử dụng nghiên cứu
4 Đóng góp mới của luận văn
Luận văn trình bày việc ứng dụng lưỡng cực hoá otomat hữu hạn đầu vào
Trang 9cho bài toán kiểm định tính chất mã của ω-mã và Z-mã, có độ phức tạp thời gian
cỡ (n3) với đầu vào là otomat hữu hạn đơn định và n là số trạng thái của
otomat Với tiếp cận phương pháp sử dụng otomat vào bài toán kiểm định tính chất mã, đề xuất thuật toán tính toán độ trễ cho -mã, với đầu vào là otomat
hữu hạn, trình bày phương pháp kiểm định ω-mã và Z-mã, với đầu vào là otomat hữu hạn, đề xuất kết quả mở rộng phương pháp tính toán độ trễ giải mã của H.N.Vinh-N.Đ.Hân-P.T.Huy (2010) đối với một ngôn ngữ từ định biên
5 Kết cấu của luận văn
Luận văn gồm 75 trang, ngoài phần mở đầu, kết luận, danh mục tài liệu tham khảo và mục lục, nội dung của luận văn được trình bày trong ba chương với cấu trúc như sau
Chương 1: Giới thiệu về otomat và ứng dụng
Chương thứ nhất trình bày các kiến thức cơ sở cần thiết và được sử dụng trong các chương tiếp theo của luận văn Ở đó ta nhắc lại một số khái niệm trong otomat hữu hạn, otomat đa định, đơn định hữu hạn; các cách biểu diễn otomat đồng thời nêu một số thuật toán cơ bản trên otomat hữu hạn, các khái niệm trong đại số, lý thuyết mã, lý thuyết ngôn ngữ hình thức, đồ thị hữu hạn, ngôn ngữ, từ các phép toán trên từ và ngôn ngữ
Chương 2: Một số lớp mã và otomat
Trình bày các định nghĩa về các lớp mã như mã (thông thường), -mã,
-mã, Z-mã cùng với tính chất đặc trưng của chúng, nêu các khái niệm trong máy biến đổi và otomat hữu hạn, đồng thời nêu một số thuật toán đối với máy biến đổi
Chương 3: Kiểm định -mã, ω-mã và Z -mã
Chương này trình bày các kết quả về tính toán độ trễ giải mã cho -mã,
phương pháp kiểm định ω-mã và Z-mã, với đầu vào là otomat hữu hạn Từ các
đề xuất: ứng dụng lưỡng cực hoá otomat hữu hạn đầu vào; thực hiện mở rộng kiểu 2 hoặc kiểu 3 của otomat; xây dựng các otomat là tích hoặc tích hợp các
Trang 10CHƯƠNG 1 GIỚI THIỆU VỀ OTOMAT VÀ ỨNG DỤNG
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 văn Ở đó ta nhắc lại một số khái niệm trong otomat hữu hạn, otomat đa định, đơn định hữu hạn; các cách biểu diễn otomat đồng thời nêu một số thuật toán cơ bản trên otomat hữu hạn, các khái niệm trong đại số, lý thuyết mã, lý thuyết ngôn ngữ hình thức, đồ thị hữu hạn, ngôn ngữ, từ các phép toán trên từ và ngôn ngữ Về kiến thức cơ sở liên quan, được tham khảo tại các tài liệu [1], [2], [4], [8], [10], [12], [14], [19]
Trang 11Nếu w là một từ trên bảng chữ cái A, và AB thì w là từ trên bảng chữ cái B Tập tất cả các từ trên bảng chữ cái A đƣợc ký hiệu là A*, còn tập tất cả các từ
khác rỗng trên bảng chữ cái A đƣợc ký hiệu là A+ Nhƣ vậy:
A+ = A* \ {} và A* = A+ {}
Về cấu trúc đại số thì A* là một vị nhóm tự do sinh bởi A với đơn vị là từ
rỗng , còn A+ là một nửa nhóm tự do sinh bởi A
1.1.3 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áo đ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 A, |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 [20]):
Ví dụ 1.3 x = “xmjyauz”, y = “mzyawxu” 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.1)
1))1(),1((
0))
n y m x L n
Trang 12Bảng 1.1 Độ dài LCS của khúc đầu của x và y
1.1.4 Các phép toán trên từ (xâu)
+ Tích ghép (hay nhân ghép): Cho hai từ = a1a2…a m và = b1b2…b n trên
bảng chữ cái A, tích ghép của hai từ và ký hiệu . (hay w = ) là từ w trên bảng chữ cái A đƣợc xác định
w = . = a1a2…a m b1b2…b n + Nghịch đảo (hay Phép lấy từ ngược):
Giả sử có từ w = a1a2…a m-1 a m khác rỗng Từ ngƣợc của từ ký hiệu là w R nhận đƣợc bằng cách viết ngƣợc lại các ký hiệu của từ w Nhƣ vậy:
w R = a m a m-1 … a2a1Lưu ý: khi w = ta quy ƣớc R
=
+ Tiền tố (Prefix) và hậu tố (Suffix): Nếu w = uv thì u đƣợc gọi là tiền tố của
w và v là hậu tố của w
Trang 131.1.5 Ngôn ngữ
Cho bảng chữ cái A, mỗi tập con X A * đƣợc gọi là một ngôn ngữ hình thức (hay ngôn ngữ) trên bảng chữ cái A
Tập rỗng, ký hiệu , là một ngôn ngữ không gồm một từ nào và đƣợc gọi
là ngôn ngữ rỗng Vậy ngôn ngữ rỗng là ngôn ngữ trên mọi bảng chữ cái
Chú ý rằng ngôn ngữ rỗng: X = là khác với ngôn ngữ chỉ gồm một từ
1.1.6 Các phép toán trên ngôn ngữ
Ngôn ngữ là một tập hợp, do đó tất cả các phép toán trên tập hợp đều có thể áp dụng cho ngôn ngữ Ngoài ra ngôn ngữ còn có một số phép toán quan trọng khác
Giả sử X và Y là các ngôn ngữ trên bảng chữ cái A:
Trang 14+ Phép luỹ thừa: X n
= XX X … X(n lần) = X.X n-1 , với X0 = {}
+ Phép bao đóng: X*
=X0X1X2…….X n + Phép nghịch đảo tương đương: X +
= X1X2……X n
Lưu ý: X *
=X + {} và X + = X.X * = X * X
1.1.7 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 hoà Phép toán hai ngôi thường gọi là phép nhân Phần tử trung hoà 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 | xX, yY }, với X, YM và phần tử đơn vị là tập {1} Tập con NM 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 (NNN và 1 N )
Đồng cấu từ vị nhóm M vào vị nhóm N là hàm thoả:
x, yM 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 tứng
1.1.8 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 giao hoán cùng với phần tử đơn vị 1
iii) Phép phân phối đối với phép
Trang 15iv) 0 là phần tử triệt tiêu đối với phép : a, a0 0 a 0
Ví dụ1.6 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ℝ {}, alog b = -log(exp(-a)+exp(-b)), trong đó: exp(-) = 0, - log(0) =
1.2 Otomat hữu hạn
Otomat hữu hạn là một mô hình toán học của hệ thống với sự mô tả bởi các input và output Tại mỗi thời điểm, hệ thống có thể được xác định ở một trong số hữu hạn các cấu hình nội bộ gọi là các trạng thái (states) Mỗi trạng thái của hệ thống thể hiện sự tóm tắt các thông tin liên quan đến những input đã chuyển qua
và xác định các phép chuyển kế tiếp trên dãy input tiếp theo
Một cách không hình thức, một otomat hữu hạn gồm một tập hợp các trạng thái và các điều khiển dịch chuyển từ trạng thái này sang trạng thái khác khi nhận dữ liệu vào
Lý thuyết về otomat hữu hạn thường được dùng đến nhiều cho việc thiết kế các công cụ xử lý chuỗi hiệu quả Lý do quan trọng nhất cho việc nghiên cứu các
hệ thống trạng thái hữu hạn là tính tự nhiên của khái niệm và khả năng ứng dụng
đa dạng trong nhiều lĩnh vực thực tế Otomat hữu hạn được chia thành 2 loại: Otomat đơn định và otomat không đơn định hay còn gọi là otomat đa định Cả hai loại otomat hữu hạn đều có khả năng nhận dạng chính xác tập chính quy Otomat hữu hạn đơn định có khả năng nhận dạng ngôn ngữ dễ dàng hơn otomat hữu hạn đa định, nhưng thay vào đó thông thường kích thước của nó lại lớn hơn
so với otomat hữu hạn đa định tương ứng
1.2.1 Otomat hữu hạn đa định
Cho A là bảng chữ cái hữu hạn Một otomat đa định hữu hạn trên A là một
bộ 5 thành phần = (A, Q, E, I, T ) trong đó:
Trang 16+ Q là một tập hữu hạn khác rỗng, được gọi là tập các trạng thái, trong đó q0
Q được gọi là trạng thái khởi đầu;
+ I Q là tập các trạng thái khởi đầu
trong đó n gọi là độ dài của đường đi P, từ w = a1a2…a n tạo thành bởi các nhãn
a i được gọi là nhãn của đường đi P q0 là trạng thái bắt đầu của P, q n là trạng thái
Quy ước rằng qQ đường đi từ q đến q có độ dài 0 Nhãn của nó là từ
rỗng Một đường đi P:q0 q n được gọi là đường đi thành công nếu q0I,
q nT Tập tất cả các đường đi thành công của otomat được ký hiệu là L() và
được gọi là ngôn ngữ đoán nhận bởi Một trạng thái q i Q được gọi là trạng thái đạt được nếu có một đường đi P:q0 q n với q0I
Hàm chuyển trạng thái (hàm chuyển) : Q × A → Q được xác định bởi q
a a
q q
q q
Trang 17Ví dụ1.7 Cho otomat hữu hạn đa định = (A, Q, E, I, T ), với A = {a, b}, Q= {q0, q1, q2, q3, q4}, I = {q0}, T = {q2, q4} và
E= {(q0, a, q0), (q0, a, q3), (q0, b, q4)}
Một cách khác, ta cũng có thể cho otomat hữu hạn dưới dạng = (A, Q, ,
I, T ), trong đó là hàm chuyển trạng thái của otomat
Với otomat đã cho trong Ví dụ 1.7 ta có thể trình bày lại như sau: Cho
otomat hữu hạn đa định = (A, Q, , I, T ), với A = {a, b}, Q = {q0, q1, q2, q3,
q4}, I = {q0},T = {q2, q4} và hàm chuyển trạng thái với
1.2.2 Otomat hữu hạn đơn định
Một otomat hữu hạn = (A, Q, E, I, T ), được gọi là otomat đơn định hữu hạn nếu I chỉ có một phần tử và nếu có (p,a,q), (p,a,p) E thì suy ra q=q Do
đó ta có thể xem các otomat đơn định hữu hạn như là các trường hợp đặc biệt của otomat đa định hữu hạn, với các hạn chế (p, ) = và (p,a) = 1
Ví dụ 1.8 Cho otomat hữu hạn đơn định = (A, Q, E, I, T ), với A = {a, b}, Q = {q0, q1, q2, q3}, I = {q0}, T= {q3} và E = {(q0, a, q1), (q0, b, q2), (q1, a, q1), (q1, b,
q2), (q2, a, q3), (q2, a, q2), (q3, a, q3), (q3, a, q3)}
Ta có thể trình bày lại như sau: Cho otomat hữu hạn = (A, Q,, I, T ), với
A = {a,b}, Q = {q0, q1, q2, q3}, I = {q0}, T = {q3} và hàm chuyển trạng thái với:
(q0, a) = q1, (q0, b) = q2,
Trang 18(q2, a) = q3, (q2, b) = q2,
(q3, a) = q3, (q3, b) = q3
1.2.3 Một số cách biểu diễn otomat hữu hạn
Hàm chuyển trạng thái là một bộ phận quan trọng của một otomat hữu hạn Cho một otomat thực chất là cho hàm chuyển trạng thái của nó, ta có thể biểu diễn otomat hữu hạn dưới dạng bảng chuyển hoặc cho dưới dạng đồ thị chuyển
a) Biểu diễn otomat bằng bảng chuyển
Cho otomat = (A, Q, , I, T) với Q = {q0, q1, q2,…, q m} là tập trạng thái,
q0I là trạng thái khởi đầu và bảng chữ cái A = {a1, a2,…, a n}, khi đó hàm
chuyển trạng thái có thể cho bởi một bảng 2 chiều trong đó dòng i cột j của bảng
là ô trống nếu (q i , a j) Q × A, tức là (q i , a j) không xác định (xem Bảng 1.2)
Nếu cho bảng chuyển trạng thái, và chỉ rõ tập trạng thái kết thúc T, ta sẽ
Bảng 1.2 Bảng chuyển trạng thái của otomat
Ví dụ 1.9 Cho otomat hữu hạn đa định = (A, Q, , I, T ), với A = {a, b, c}, Q = {q0, a1, q2}, I = {q0}, T = {q1, q2} và hàm chuyển trạng thái với (q0, a) = q1,
(q0, b) = {q1, q2}, (q0, c) = q2, (q1, a) = q2, (q1, c) = {q0, q2}, (q2, a) = q1,
(q2, b) = q1, (q2, c) = q2 Khi đó bảng chuyển otomat được biểu diễn trong bảng sau (xem Bảng 1.3):
Trang 19Bảng 1.3 Bảng chuyển của otomat
b) Biểu diễn otomat bằng đồ thị chuyển
Cho otomat = (A, Q, , I, T ) Hàm chuyển có thể cho bằng một đa đồ thị
có hướng, có khuyên G sau đây, đƣợc gọi là đồ thị chuyển của otomat Tập đỉnh của G đƣợc gán nhãn bởi các phần tử thuộc Q, còn các cung đƣợc gán nhãn bởi các phần tử thuộc A, tức là nếu aA và từ trạng thái q chuyển sang trạng thái p
theo công thức (q, a)= p thì sẽ có một cung từ đỉnh q tới đỉnh p đƣợc gán nhãn a Các đỉnh vào của đồ thị chuyển là các đỉnh ứng với trạng thái ban đầu q iI
Các đỉnh sẽ đƣợc khoanh bởi các vòng tròn, tại các đỉnh vào có mũi tên đi vào, riêng đỉnh với trạng thái kết thúc đƣợc phân biệt bởi vòng tròn đậm, hoặc nét đôi Nói chung, với việc cho đồ thị chuyển là hoàn toàn xác định đƣợc otomat
Ví dụ 1.10 Cho otomat hữu hạn đơn định: 1 = (A, Q, , I, T ), với A = {a, b, c},
Q = {q0, q1, q2}, I = {q0}, T ={q1, q2} và hàm chuyển trạng thái với (q0, a) =
q0, (q0, b) = q1, (q1, a) = q0, (q1, b) = q2, (q2, a) = q2, (q2, b) = q2 Ta có đồ thị chuyển trạng thái của otomat 1 nhƣ sau (xem Hình 1.1)
Hình 1.1 Đồ thị chuyển trạng thái của otomat 1
Trang 20Dãy trạng thái của otomat 1 trong quá trình đoán nhận xâu vào w = ababbab được biểu diễn trong Hình 1.2 như sau:
Hình 1.2 Quá trình đoán nhận xâu w = ababbab trên1
1.2.4 Một số thuật toán trên otomat hữu hạn
a) Thuật toán mô tả quá trình đoán nhận xâu vào của otomat hữu hạn đơn định đầy đủ = (A, Q, , I, T )
Thuật toán 1.1 Đoán nhận xâu;
Input: = (Q, A, E, I, F ) là otomat hữu hạn đơn định đầy đủ,
xâu w = a0 a1 a2 … a n
Output: TRUE nếu đoán nhận xâu w, FALSE ngược lại
Các bước thực hiện
1 S0 = q0; C = a0
2 Lặp:// Biết trạng thái khởi đầu, lần lượt xác định các trạng thái kế tiếp
dựa vào các kí hiệu trong xâu
Si = (S i-1 ,C ); // Xác định trạng thái tiếp theo
C = ký hiệu tiếp theo;
Dừng: Khi đã duyệt hết xâu w
3 if S T thì Return (TRUE)
Else Return (FALSE)
q0 q0 q1 q0 q1 q2 q2 q2T
Trang 21Ví dụ 1.11 Cho một otomat = (A, Q, , I, T ) có bảng chữ cái A = {a, b}, tập trạng thái Q = {q0, q1, q2, q3, q4, q5}, I = {q0}, T = {q4} đồ thị chuyển trạng thái được biểu diễn trong hình 1.3 như sau:
Hình 1.3 Đồ thị chuyển trạng thái của otomat
Dễ thấy otomat đoán nhận được xâu w = abaabb Thật vậy thực hiện các
bước của thuật toán trên ta có:
Trang 22b) Thuật toán đơn định hoá các otomat
Trước hết ta cần nhắc lại rằng hai otomat hữu hạn và (đơn định hay
đa định) được gọi là tương đương nếu chúng cùng đoán nhận một ngôn ngữ, tức
Thuật toán 1.2 Đơn định hoá Otomat;
Input: = (Q, A, E, I, F ) là otomat hữu hạn đa định với q0 I
Output: M = (A, Q,, I, T) là otomat hữu hạn đơn định
a q P
),(
2 Xác định tập trạng thái mới Q = {s0, s1, …, s kk ≤ 2Q -1}:
2.1 Đặt s0 = {q0}, s1 = {q1},…s i = {q i} {q0}, {q1}, …, {q i} Q 2.2 Đặt s i +1 = B1, s i+2 = B2,… B1, B2,… Q mà (q j , a) = B j
2.3 Nếu otomat là không đầy đủ, đặt s k = và thêm vào hàm chuyển
các giá trị (s k , a) = s kaA để otomat M là otomat đầy đủ
2.4 Trạng thái khởi đầu của otomat M là s0
2.5 Tập trạng thái kết thúc của otomat M là T = {sQ sT}
3 Xác định hàm chuyển : Q× AQ của otomat M: sQ, aA thì
(s, a) = P(s,a)
Ta dễ dàng chứng minh được L() = L(M )
Trang 23Ví dụ 1.12 Cho otomat hữu hạn đa định = (A, Q, , I, T ), với A = {a, b, c}, Q
= {q0, q1, q2}, I = {q0}, T = {q1, q2} và hàm chuyển trạng thái cho bởi bảng sau (xem Bảng 1.4):
Bảng 1.4 Bảng chuyển của otomat trong Ví dụ 1.12
Hãy xây dựng otomat M = (A, Q, , I, T) với A = {a, b, c}, I = {s0} đơn định và đầy đủ, tương đương với otomat
Trang 24Bảng 1.5 Bảng chuyển của otomat đơn định M trong Ví dụ 1.12
Rõ ràng otomat M = {A, Q, , I, T) với A = {a, b, c}, Q = {s0, s1, s2, s3,
s4, s5}, I = {s0},T= {s1, s2, s3, s4} với hàm chuyển cho bởi bảng trên là otomat hữu hạn đơn định và đầy đủ Có thể thấy rằng otomat M là tương đương với otomat
1.3 Đồ thị hữu hạn
1.3.1 Khái niệm cơ bản
Định nghĩa 1.2 Cho V là tập hữu hạn khác rỗng các phần tử và E V × V Một cặp G = (V, E) được gọi là đồ thị hữu hạn
Mỗi phần tử uV 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 đồ thị có hướng còn gọi là một cung
Trang 25Cho đồ thị hữu hạn G=(V, E) (có hướng hoặc vô hướng) và e=(u, v) E là một cạnh nối đỉnh u với đỉnh v Khi đó u, v gọi là hai đỉnh kề nhau Ký hiệu Next(u) = {vV(u, v) E} Cho cạnh e 1 = (u, v) E và e 2 = (z, t) E, nếu đỉnh
v trùng với đỉnh z thì hai cạnh e1 và e2 gọi là hai cạnh kề nhau
Định nghĩa 1.3 Đườ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,
1.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]
a) 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 ui, uj có d cạnh (cung) nối với nhau Khi cặp đỉnh ui, uj 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
b) 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 27CHƯƠNG 2 MỘT SỐ LỚP MÃ VÀ OTOMAT
Chương này trình bày các định nghĩa về các lớp mã như mã (thông thường), -mã, -mã, Z-mã cùng với tính chất đặc trưng của chúng Trong chương trình còn nhắc lại một số khái niệm trong máy biến đổi và otomat hữu hạn, đồng thời nêu một số thuật toán đối với máy biến đổi Về kiến thức cơ sở liên quan, được tham khảo tại các tài liệu [1], [4], [5], [6], [8], [10], [11], [14], [15], [16], [17]
2.1 Mã và các tính chất của mã
2.1.1 Mã
Định nghĩa 2.1 Cho bảng chữ cái A, tập X A* được gọi là mã nếu với mọi m,
n 1 và với mọi x1,…, x n , y1,…, y m X, nếu có:
x1 x2…x n = y1 y2…y m m = n và x i = y i (với i =1, …, n)
Nói cách khác, một tập X là mã nếu mọi từ trong A* có không quá một cách
phân tích thành các từ trong X Dễ thấy rằng, mỗi tập con của một mã là mã, đặc
biệt tập rỗng cũng là mã và mọi từ mã đều không chứa từ rỗng (do . = )
Một đơn cấu : B* A* được gọi là đồng cấu mã hay một phép mã hóa
Điều kiện cần và đủ về phép mã hoá, biểu diễn qua đơn cấu vị nhóm được thể hiện qua mệnh đề sau
Mệnh đề 2.1 (xem [8, tr 38]) Nếu tập con X của A* là mã thì mọi đồng cấu :
B* A*, cảm sinh một song ánh từ bảng chữ cái B nào đó lên X, sẽ là đơn cấu Ngược lại, nếu tồn tại một đơn cấu : B* A* sao cho (B) = X thì X là mã
Với khái niệm trên, quá trình mã hoá có thể coi là việc thay thế mỗi từ b1b2 b n thuộc B* bằng từ mã (b1)(b2) (b n) được xác định bởi đồng cấu mã
Trang 28Sự kiện là đơn ánh đảm bảo rằng từ mã có thể đƣợc giải mã duy nhất để thu đƣợc bản rõ ban đầu
Ví dụ 2.1 (a) Mã Morse X M là mã trên bảng chữ { , , } dùng để mã hóa các
chữ a, b, …, z
(b) Mã ASCII X A là một mã trên {0, 1} Ta thấy các từ của X M có độ dài khác
nhau, còn mọi từ của X A có độ dài là 8
Từ Mệnh đề 2.1, ta có hệ quả sau:
Hệ quả 2.1 (xem [8, tr 39]) Cho : A*C* là một đơn cấu Nếu X là mã trên
A thì (X) là mã trên C Nếu Y là mã trên C thì –1
(Y) là mã trên A
Hệ quả 2.2 (xem [8, tr 40]) Nếu X A+ là mã thì X n là mã, với mọi số nguyên
n > 0
Ví dụ 2.2 Với bất kỳ bảng chữ cái A, tập X = A luôn là mã
Ví dụ 2.3 Tập X = {aa, baa, ba} trên bảng chữ cái A = {a, b} là mã Thực vậy, giả sử ngƣợc lại X không là mã, suy ra tồn tại từ w X +, 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 jX, 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, y1X, 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
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ụ 2.4 Tập X = {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)
Hệ quả 2.3 (xem [8, tr 43]) Cho X và Y là mã trên A Nếu X* = Y* thì X = Y Cho X A*
và đặt U0 = X, U i = { w A+ | U i –1 w X hoặc X wU i –1
}, với mọi i 1 Mệnh đề sau là cơ sở để xây dựng thủ tục kiểm tra một tập X
có là mã hay không (A A Sardinas và C W Patterson [17])
Trang 29Mệnh đề 2.2 (xem [14, tr 109]) Cho X A+ Khi đó, X là mã khi và chỉ khi
XU i =, với mọi i 1
Chú ý rằng, nếu X là hữu hạn thì độ dài của các từ trong U i , i = 0,1, là giới nội bởi độ dài lớn nhất của các từ trong X Vì vậy, tồn tại một số hữu hạn các U i khác nhau
Ví dụ 2.5 Cho A = {a, b } và X = {a, aaab, aba } Ta có
U0 = X, U1 = {aab, ba }, U2 = {ab }, U3 = {a, b };
Vì XU3 , suy ra X không là mã
Ví dụ 2.6 Cho A = {a, b } và X = {a, aab, bab, bb } Ta có
U0 = X, U1 = {ab }, U2 = {b }, U3 = {ab, b } = U4 = … ;
Từ XU i = , với i 1, suy ra X là mã
* Thủ tục Sardinas-Patterson kiểm tra tính chất mã
Cho tập các từ X trên bảng chữ A, bài toán kiểm tra tính chất mã của X là
một bài toán cơ bản khi nghiên cứu mã Trong mục này ta đề cập đến thủ tục Sardinas – Patterson ([17]) Thủ tục này không cần sử dụng các tính chất nâng cao của mã mà dựa trên cách tổ chức thực hiện tính toán để kiểm tra một ngôn
ngữ cho trước có thỏa định nghĩa mã hay không Trong trường hợp X hữu hạn
(tổng quát hơn là đoán nhận được) thì số bước tính toán là hữu hạn
Thủ tục tính toán các tập thương U i , i = 1, 2, để tìm hai phân tích khác nhau trên X của một từ w A* bất kỳ (đoạn sai khác giữa hai cách phân tích) Thủ tục dừng khi xuất hiện phần dư là từ rỗng, tương ứng với việc tìm được từ
có hai phân tích khác nhau Các tập thương U i , i = 1, 2, sẽ được xác định một
cách đệ quy qua các bước như sau:
Trang 30Ví dụ 2.7 Cho A = {a, b } và X = {b, abb, abbba, bbba, baabb }, ta có
U1 = {ba, bba, aabb }, X–1U1 = {a, ba }, U1–1X = {abb },
U2 = {a, ba, abb }, X–1U2 = {, a }, U2–1X ={, bb, bba, ba, abb },
U3 = {, a, bb, bba, ba, abb } Vì U3 nên X không là mã
Ví dụ 2.8 Cho A = {a, b } và X = {aa, ba, bb, baa, bba }, ta có
U1 = {a }, U2 = U1 Vì vậy U n = {a } với n 1, suy ra X là mã
Nhận xét 2.1 Cho X là ngôn ngữ chính quy và đặt Y = {} Theo [5] thì (X, Y)
có cỡ 2|P | , với P là vị nhóm thỏa đồng thời cả X và Y Theo thủ tục
SardinasPatterson, các tập U i sẽ nhận được sau mỗi bước tính toán nhờ áp dụng hữu hạn các phép , , phép thương trái Do đó, thỏa tất cả các tập U i , i = 1,2, , nghĩa là số các tập U i là hữu hạn và không vượt quá số tập con của P
(bằng 2|P | ) Trong trường hợp xấu nhất, các tập U i (X, Y) là rời nhau Vì vậy, thủ tục kiểm tra tính chất mã theo SardinasPatterson có độ phức tạp cỡ (2|P |)
Trang 31A*= { (0, w, 1) wA*} {, e }
A*= { (1, w, 0) wA*} {, e }
A*= { (0, w, 0)wA*} {, e }
A*={ (1, w, 1)wA*} {, e } Mỗi bộ (i,w, j), wA* được gọi là một -từ (từ định biên với biên i,j), là mở rộng của từ w Hai -từ mới e, A* là hai phần tử đóng vai trò như là phần tử
đơn vị và phần tử zero của A*
khi ta trang bị một phép toán (gọi là tích biên),
được định nghĩa như sau: x1 = (i1, w1, j1), x2 = ( i2, w2, j2) A*,
và xA*, x. = .x = , x.e = e.x = x
Dễ thấy A* lập thành một vị nhóm với phép toán tích biên, có phần tử zero
là và phần tử đơn vị là e Ta gọi A* là -vị nhóm (trên bảng chữ A) Và ta có
thể quy ước rằng, các ký hiệu , , , , như là các toán tử mở rộng của A*thành A*, A*, A*, A*, A* tương ứng
Cho M là vị nhóm tùy ý với đơn vị là 1 M Đặt M= { (i, m, j ) |mM, i,jB}{e,}, dễ thấy Mlà -vị nhóm (theo tích biên) được mở rộng từ vị
nhóm M Đặc biệt, với M = A* thì M = A*
Tổng quát, nếu một vị nhóm M đẳng cấu với một -vị nhóm M thì ta cũng
gọi M là một -vị nhóm Cho M là một vị nhóm tùy ý, có phần tử đơn vị là 1 M
Xét nửa nhóm B = {(0,0), (0,1), (1,0), (1,1), 0}, với phép toán được xác định như
sau: (i, j), (i, j) B, (i, j).(i, j) = (i, j) nếu j = i, ngược lại (i, j).(i, j) = 0
Một tập X A*
được gọi là một -ngôn ngữ trên A Một -từ xA*được
gọi là có một phân tích trên X nếu x có thể biểu diễn dưới dạng x = x1 x2 x n ,
với n1, x iX, i = 1, , n
x1 x2 =
(i1, w1w2, j2) nếu j1 = i2
nếu j1 ≠ i2
Trang 32Định nghĩa 2.2 Một -ngôn ngữ X A+
đƣợc gọi là -mã nếu n, m1, x1,
x2, , x n , x1, x2, , x mX,
x1x2 x n = x1x2 x m m = n, x i = x i, (với i = 1, ,n)
Nói cách khác, một -ngôn ngữ X là -mã nếu với mọi x thuộc A+, x
có không quá một phân tích trong X Dễ thấy rằng, X là -mã thì X không chứa
e, và (i, , i), iB
Ví dụ 2.9 Cho X = {(0, a, 1), (0, b, 1), (1, abb, 0)} Khi đó, theo định nghĩa dễ thấy rằng, X là -mã
Ví dụ 2.10 Cho X= {(0, a, 1), (1, b, 0), (0, ab, 0), (0, ba, 1)} Dễ thấy, X không
là -mã, vì -từ x = (0, ab, 0) có hai phân tích khác nhau trong X:
(0, ab, 0) = (0, a, 1).(1, b, 0)
Cho M là một vị nhóm bất kỳ với phần tử đơn vị là 1 và có chứa phần tử
zero là 0 và : A*M là một ánh xạ Khi đó, đƣợc gọi là -đồng cấu vị nhóm nếu thỏa mãn các điều kiện sau:
(1) x, y A*và x y thì (x y) =(x).(y)
(2) (e) = 1
(3) () = 0 Một -đồng cấu vị nhóm đƣợc gọi là một -đơn cấu (t.ứng, -toàn cấu,-đẳng cấu) nếu là-đồng cấu vị nhómvà là đơn ánh (t.ứng, toàn ánh, song ánh)
Cho X A*
và vị nhóm M Ta nói rằng, vị nhóm M thỏa X nếu tồn tại một
-đồng cấu vị nhóm : A* M sao cho X = –1
(N), với N M nào đó
Định lý 2.2.(xem [5]) ChoXA*
Khi đó, các điều kiện sau đây là tương đương:
Trang 33(i) X thỏa bởi một vị nhóm hữu hạn
(ii) X là -đoán nhận được bởi một -otomat đơn định hữu hạn (iii) X là -ngôn ngữ chính quy
2.1.3 -mã
Cho bảng chữ cái A 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 A (u = u1u2 … u n …, với u i A, i > 0) Ký hiệu A là
tập tất cả các từ vô hạn phía phải trên A Tập con của A gọi là -ngôn ngữ
Cho X A* Ta ký hiệu X = {wAw = w1w2…, với w i X, I > 0} Một
-phân tích phải của một từ wA trên X là một dãy vô hạn w1,w2,…, w n,… các
từ của X sao cho w = w1w2…w n…
Định nghĩa 2.3 Một ngôn ngữ X A* là -mã nếu mỗi từ w bất kỳ thuộc A có nhiều nhất một -phân tích phải trong X (hay mỗi từ w bất kỳ thuộc X có duy nhất một -phân tích phải trong X)
Ví dụ 2.11 Tập X = {aa, baa, ba} trên bảng chữ cái A = {a, b} Khi đó, X không
là -mã, vì từ w = baaaa… X có hai -phân tích phải khác nhau trong X:
(baa) (aa) (aa) (aa)… = (ba) (aa) (aa) (aa) a…
Ví dụ 2.12 Tập X = {aa, ab, bb} trên bảng chữ cái A = {a, b} là -mã Thực vậy, giả sử ngƣợc lại X không là -mã, suy ra tồn tại từ wX, có hai -phân
tích phải khác nhau:
w = x1x2…x n = y1y2…y m …, với x i , y j X,i, j
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,
y1X sao cho x1 là khúc đầu thực sự của y1 hoặc ngƣợc lại
Trang 34Cho bảng chữ cái A 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 A (u = …u -n …u -2 u -1 , với u iA, 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 A (u = u -n …u -2 u -1 u0u1…u m …, với u iA, i)
Ký hiệu A, A 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 X A*, ta ký hiệu X, Xlà 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 X tương ứng
Một -phân tích trái của một từ wA trên X là một dãy vô hạn…,w -n ,…,w
-2,w -1 các từ của X, 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 X của từ vô hạn phía trái hay vô hạn phía phải tương ứng
Cho w A có dạng w =…a -2 a -1 a0a1a2…, với a iA Một phân tích trên X của từ vô hạn hai phía w là một hàm tăng nghiêm ngặt : Z Z thoả mãn x i =
a(i)+1 …a(i+1) X, iZ Hai phân tích và gọi là bằng nhau ký hiệu là =
nếu có tZ sao cho (i+t) = (i), iZ 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 A+, hai dãy vô
hạn hai phía những từ của X:…x -2 , x -1 , x0, x1, x2…và…y -2 , y -1 , y0, y1, y2… sao cho:
… x -2 x -1 u = …y -1 y0,u ≤ x0 (2.1)
x0x1x2… = uy1y2…,u ≤ y0, với u x0 hoặc u y0 (2.2)
Định nghĩa 2.4 Giả sử A là một bảng chữ Tập X ⊆ A+ là ω-mã bên trái
một X-phân tích
Ví dụ 2.13 Cho A = {a, b} Ngôn ngữ Y = {a, b} là ω-mã bên phải và đồng thời
là ω-mã bên trái Tuy nhiên, ngôn ngữ X = {aa, baa, ba} là ω-mã bên trái nhưng không là ω-mã bên phải vì từ vô hạn w = baaa ··· có hai X-phân tích khác nhau
Từ nay về sau, nếu không sợ nhầm lẫn, ta sẽ dùng thuật ngữ ω-từ ngôn ngữ, ω-mã) thay cho thuật ngữ ω-từ bên phải (t.ư ω-ngôn ngữ của các ω-
(t.ư.ω-từ bên phải, ω-mã bên phải)
Trang 352.1.4 Z–mã
Định nghĩa 2.5 Ngôn ngữ XA+ là Z -mã nếu tất cả các Z -phân tích trên X của
mỗi từ vô hạn hai phía bất kỳ là bằng nhau
Ví dụ 2.14 Tập X = {aa, ab, bb} trên bảng chữ cái A = {a, b} là ω -mã, nhưng X
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 X:
…a(aa)(bb)b… = …(aa)(ab)(bb)…
Rõ ràng, tồn tại bA+ sao cho:
…a(aa)b= …(aa)(ab) b≤bb
(bb)b… = b(bb)… b≤ab , với b bb hoặc b ab
Ví dụ 2.15 Tập X={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 X:
…(a)(a)(a)(bb)(bb)… = … (a)(a)(ab)(bb)b…
Rõ ràng, tồn tại bA+ sao cho:
…(a)(a)(a)b= …(a)(a)(ab) b≤bb
(bb)(bb)… = b(bb)b… b≤ab , với bbb hoặc b ab
Ví dụ 2.16 Tập X = {aab, bba} trên bảng chữ cái A = {a, b} là Z-mã Thực vậy,
giả sử X không là Z -mã, ta xét các khả năng chọn uA+ và hai dãy vô hạn hai
Với các trường hợp còn lại ta xét tương tự
Không có cách chọn uA+ để X không là Z -mã Vậy X là Z-mã
Trang 36Trong [6], tác giả H.N.Vinh, N.Đ.Hân, P.T.Huy đã đưa ra khái niệm độ trễ giải mã của -mã, mối quan hệ giữa -ngôn ngữ có độ trễ giải mã hữu hạn với
-mã và đề xuất thủ tục cho phép xác định chính xác độ trễ giải mã cho -mã
và cho mã luân phiên
Định nghĩa 2.6 Cho X A+ là -ngôn ngữ không chứa Khi đó X có độ trễ giải mã hữu hạn d (với d là một số nguyên dương) nếu x0, x1, , x d , x X, z
A *,
x0.x1 x d z x.X* x0 = x (2.3)
Dễ thấy rằng nếu hệ thức (2.3) thoả mãn với d nào đó thì nó cũng đúng với mọi d d Nếu X có độ trễ giải mã hữu hạn thì số nguyên nhỏ nhất thoả hệ thức (2.3) được gọi là độ trễ giải mã của X
Tương tự như trong mã thông thường, kết quả sau cho ta mối liên hệ giữa
-ngôn ngữ có độ trễ giải mã hữu hạn với tính chất -mã
Mệnh đề 2.4.(xem [38, tr 50]) Nếu X A + có độ trễ giải mã hữu hạn thì X cũng là -mã Ngược lại không đúng
Trang 37Chứng minh Giả sử X có độ trễ giải mã hữu hạn là d và X không là -mã Khi
đó, X theo Định nghĩa 4, sẽ tồn tại một -từ x thuộc X* có hai phân tích khác nhau:
Tính chất 2.1 Nếu X A+\ là -mã có độ trễ giải mã hữu hạn d thì mọi tập
con khác rỗng của X sẽ có độ trễ giải mã hữu hạn bé hơn hoặc bằng d
Tính chất 2.2 Nếu X A+\ là -mã và các -từ x,x0, x1, , x d X sao cho x0
x và x0.x1 x d < p x z, với z X * thì X có độ trễ giải mã bé nhất là d+1
2.2 Máy biến đổi và otomat
2.2.1 Khái niệm
Định nghĩa 2.7 Máy biến đổi trạng thái hữu hạn có trọng số T (gọi tắt là máy
biến đổi) trên nửa vành là một bộ 8 T= (Q, A, , e, I, f, , ) ở đó: Q là tập hữu hạn các trạng thái, A 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 × (A {} × ( {} × ×Q là tập hữu hạn các phép biến đổi, IQ