Trong Chƣơng 2, tác giả đã đƣa ra khái niệm độ trễ giải mã cho -mã, mối quan hệ giữa -ngôn ngữ có độ trễ giải mã hữu hạn.
Các bƣớc tính độ trễ giải mã cho -mã của một -ngôn ngữ chính quy
XA*
cho trƣớc đƣợc mô tả dƣới dạng công thức đệ quy nhƣ sau:
U0 = (X+)1X{e} {(i, , i) iB}
V1 = (X1 (X+) {e} {(i, , i)iB}) + U01
X+ Ui = Vi1X+ (X+)1(Vi1X) , i> 0
Vi+1 = X1Vi + Ui1 X+ , i> 0
Tính đúng đắn của thủ tục này đƣợc dựa trên các bổ đề và mệnh đề sau:
Bổ đề 3.1. Cho X A*và Ud, Vd+1 được xác đinh như trên. Với d 0, ta có (a) Nếu Ud thì với mọi -từ z Ud, tồn tại m 0 sao cho:
x0.x1 ... xd = y0.y1... ym.z, với x0 y0, xi, yj X. (3.1) (b) Nếu Vd+1 thì với mọi -từ z Vd+1, tồn tại m 0 sao cho:
x0.x1 ... xd.z = y0.y1 ... ym, với x0 y0, xi, yj X. (3.2)
Chứng minh. () Ta chứng minh quy nạp theo d nhƣ sau:
Giả sử, với d = 0, ta chứng minh zU0 thỏa biểu thức (1) và zV1 thỏa biểu thức (1).
(a) Nếu U0 . Ta phải chứng minh, với mọi -từ zU0, tồn tại m 0, x0,
- 54 -
Thật vậy, lấy zU0 tùy ý, ta có z ((Y+)-1X {e} { (i, , i) iB}) (vì V0 =
Y+ = X+). Khi đó, tồn tại -từ y = y0.y1 ...ymX+, sao cho: x0 = y0.y1...ym.z X.
Vì z ({e} + { (i, , i) iB}), suy ra y0.y1 ...ym < px0, hay x0 y0. Vậy, z
U0 thỏa biểu thức (1).
(b) Nếu V1 . Ta phải chứng minh, với mọi -từ z V1, tồn tại m 0, x0,
y0,y1,...,ym X sao cho x0.z = y0.y1...ym, với x0 y0
Thật vậy, lấy zV1 tùy ý, khi đó có hai khả năng xẩy ra: z (X1V0{e}
{ (i, , i)iB}) hoặc zU0-1Y+.
+ Nếu z (X1V0{e} { (i, , i)) i B}), khi đó sẽ tồn tại -từ x0 X, sao cho x0.z = y0.y1...ym X+. Vì z ({e} + {(i, , i) i B}), do đó y0.y1 ...ym <
px0, hay x0 y0. Vậy, z V1 thỏa biểu thức (3.2).
+ Nếu zU0-1Y+, khi đó sẽ tồn tại -từ zU0, sao cho
z.z = y0.y1...yp X+, với Y = X. (3.3) Do zU0, quy về trƣờng hợp vừa xét ở trên, suy ra tồn tại sự phân tích: x0 =
y0.y1 ...yn.z, với x0 y0, x0, yj X.
Nhân y0.y1... yn vào hai vế về phía bên trái của biểu thức (3.3), suy ra
x0.z= y0.y1... yn.z.z = y0.y1... yn.y0.y1... yp, với x0 y0, x0, yj, yl X. Vậy, z V1 thỏa biểu thức (3.2).
- Giả sử, Uk , Vk+1 đúng với mọi k < d. Ta chứng minh Uk và Vk+1 cũng đúng với k = d. Nghĩa là, zUd thỏa biểu thức (3.1) và zVd+1 thỏa biểu thức (3.2).
(a) Giả sử Ud . Ta phải chứng minh, với mọi -từ z Ud, tồn tại m 0,
x0, x1,..., xd, y0, y1,..., ym X sao cho x0.x1... xd = y0.y1... ym.z , với x0 y0 Thật vậy, lấy z Ud tùy ý, khi đó có hai khả năng xẩy ra: z Vd-1 X hoặc z
(Y+)-1(Vd1X)
- 55 -
Vì z Vd, theo giả thiết quy nạp thì z thỏa biểu thức (3.2). Khi đó, tồn tại m
0, x0, x1,...,xd-1, y0,y1,...,ym X sao cho
x0.x1... xd-1.z = y0.y1...ym, với x0 y0. (3.4) Nhân z vào hai vế về phía bên phải của biểu thức (3.4), suy ra x0.x1 ...xd-1.x = x0.x1... xd-1.z.z = y0.y1... ym.z, với x0 y0, x, xi, yj X.
Vậy, z Ud thỏa biểu thức (3.1).
+ Nếu z (Y+)-1(Vd1X). Khi đó sẽ tồn tại -từ y=y0.y1... yp X+, sao cho
z= y0.y1... yp.z Vd1X. (3.5) Do zVd1X, quy về trƣờng hợp vừa xét ở trên, suy ra tồn tại sự phân tích: x0.x1... xd = y0.y1... yn.z , với x0 y0, xi, yj X. (3.6) Thay z từ (3.5) vào (3.6), suy ra: x0.x1... xd = y0.y1... yn.y0.y1... yp.z , với x0
y0, xi, yj, yj X.
Vậy, z Ud thỏa biểu thức (3.1).
(b) Giả sử Vd+1 . Ta phải chứng minh, với mọi -từ zVd+1, tồn tại m 0,
x0, x1, ..., xd, y0, y1, ...,ym X sao cho x0.x1 ... xd.z = y0.y1 ... ym, với x0 y0. Thật vậy, lấy zVd+1, khi đó có hai khả năng xẩy ra: z X-1Vd hoặc z Ud-1Y+. + Nếu z X-1Vd, khi đó sẽ tồn tại -từ x X, sao cho:
z = x.z Vd (3.7)
Vì z Vd, theo giả thiết quy nạp thì z thỏa biểu thức (3.2). Khi đó, tồn tại
m 0, x0, x1,..., xd-1, y0, y1,..., ym X sao cho
x0.x1... xd-1.z = y0.y1... ym , với x0 y0. (3.8) Thay z từ (3.7) và (3.8), suy ra: x0.x1 ... xd-1.x.z = y0.y1 ... ym, với x0 y0, x,
xi, yj X.
- 56 -
+ Nếu zUd-1Y+, khi đó sẽ tồn tại -từ zUd, sao cho
z.z= y0.y1... yp X+. (3.9)
Do zUd, quy về trƣờng hợp vừa xét ở trên, suy ra tồn tại sự phân tích:
x0.x1 ... xd = y0.y1 ... yn.z, với x0 y0, xi, yj X.
Nhân y0.y1 ...yn vào hai vế về bên trái của biểu thức (3.9), suy ra x0.x1 ...
xd.z= y0.y1 ... yn.z.z= y0.y1 ... yn.y0.y1... yp, với x0 y0, xi, yj, yl X. Vậy, z Vd+ 1 thỏa biểu thức (3.2).
Bổ đề đƣợc chứng minh.
Bổ đề 3.2. Cho X A* và Ud,Vd+1 được xác định như trên. Với d 0, ta có (a) Với mọi -từ z A*, m 0, x0, x1,..., xd, y0,y1,..., ym X.
Nếu x0.x1 ... xd = y0.y1 ... ym.z và x0 y0 thì Ud (3.10) (b) Với mọi -từ z A*, m 0, x0, x1,..., xd, y0,y1,..., ym X.
Nếu x0.x1 ... xd.z = y0.y1 ... ym và x0 y0 thì Vd+1 (3.11)
Chứng minh. () Ta chứng minh quy nạp lùi theo d nhƣ sau: Giả sử, với d = 0, ta phải chứng minh U0 và V1 .
(a) Nếu x0 = y0.y1 ... ym.z và x0 y0, với m 0, x0, y0, y1,..., ym X. Ta phải chứng minh, z U0.
Thật vậy, với x0 = y0.y1 ... ym.z X, suy ra z (Y+)-1X.
Chọn m = 0, khi đó ta có x0 = y0.z. Theo giả thiết x0 y0, suy ra z e và z (i, , i), với i B. Do đó z ( V0-1X {e} {(i, , i) iB}) = U0, với V0 = Y+
(b) Nếu x0.z = y0.y1 ... ym và x0 y0, với m 0, x0, y0, y1,..., ym X. Ta phải chứng minh, z V1.
- 57 -
Chọn m = 0, khi đó ta có x0.z = y0. Theo giải thiết x0 y0, suy ra z e và z
(i, , i), với i B. Do đó z ( X-1V0 {e} {(i, , i) i B}) V1, với V0 = Y+ - Giả sử, Uk, Vk+1 đúng với k = d. Ta chứng minh Uk và Vk+1 cũng đúng với
k < d. Nghĩa là, z Uk thỏa biểu thức (3.10) và z Vk+1 thỏa biểu thức (3.11). (a) Giả sử, với mọi -từ z A*, m 0, x0, x1,..., xd-1, y0, y1,..., ym X, x0.x1 ... xd-1 = y0.y1... ym.z và x0 y0. Ta phải chứng minh z Ud -1.
Theo giả thiết quy nạp, x0.x1... xd = y0.y1... ym.z, với x0 y0 và z Ud. Khi đó, suy ra z Vd1 X hoặc z (Y+)1(Vd1X) xd ym xd-1 z (b) Vd z’ ym-1 ... yi+1 z’ ym z (b’) xd xd-1 y z’’ Vd xd ym xd-2 z (a) Ud z’ xd-1 Hình 3.1. Phân tích z Vd1X hoặc z (Y+)1(Vd1X)
+ Nếu z = z.xd (xem Hình 3.1.a), suy ra z Ud-1 và x0.x1... xd-1 = y0.y1...
ym.z, với x0 y0 thỏa biểu thức (3.10).
+ Nếu xd = z.z (xem Hình 3.1.b), suy ra zVd và x0.x1... xd-1.z = y0.y1...
ym, với x0 y0 thỏa biểu thức (3.11).
(b) Giả sử, với mọi -từ z A*, m 0, x0, x1, ..., xd-1, y0, y1, ..., ym X,
x0.x1... xd-1.z = y0.y1... ym, với x0 y0. Ta phải chứng minh z Vd.
Theo giả thiết quy nạp, x0.x1... xd.z = y0.y1... ym, với x0 y0 và z Vd+1. Khi đó, suy ra z X-1Vd hoặc z Ud1Y+.
- 58 - x0 ... xd-1 xd z y0 ... ym z’ (a) (b) Vd+1 ym z xd ... Ud ... yi z’ yi+1 Hình 3.2. Phân tích z X-1Vd hoặc z Ud1Y+.
+ Đặt z = xd.z (xem Hình 3.2.a), suy ra zVd và x0.x1... xd-1.z = y0.y1 ...
ym, với x0 y0 thỏa biểu thức (3.11).
+ Nếu z = z.yi+1.yi+2...ym (xem Hình 3.2.b), suy ra z Vd, và x0.x1... xd- 1.xd.z = y0.y1...yi.yi+1.yi+2...ym = y0.y1...yi.z.z, vớix0 y0 và x0.x1...xd-1.xd.z =
y0.y1... yi, với x0 y0 thỏa biểu thức (3.11).
Mệnh đề 3.1. Cho X A*. Khi đó X có độ trễ giải mã hữu hạn d khi và chỉ khi
Vd+1= , với Ui và Vi+1 xác định như trên.
Chứng minh. () Ta chứng minh nếu X có độ trễ giải mã hữu hạn d thì Vd+1 = .
Phản chứng, giả sử X có độ trễ giải mã hữu hạn d nhƣng Vd+1 . Theo Bổ đề 3.1, nếu Vd+1 thì với -từ z Vd+1 tùy ý, tồn tại m 0, x0, x1,..., xd, y0,
y1,..., ym X sao cho: x0.x1... xd.z = y0.y1... ym, với x0 y0.
Từ x0.x1...xd.z = y0.y1...ym y0 Y*. Vì Y = X, suy ra x0.x1... xd.z y0. X*. Theo giả thiết, X có độ trễ giải mã hữu hạn d, suy ra x0 = y0, mâu thuẫn. Vây Vd+1 = . () Chứng minh nếu Vd+1 = thì X có độ trễ giải mã hữu hạn d.
Phản chứng, giả sử Vd+1 = nhƣng X không có độ trễ giải mã hữu hạn d.
- 59 -
Theo giả thiết, X không có độ trễ giải mã hữu hạn d. Khi đó, m 0, x0,
x1,..., xd, y0, y1,..., ym X, z A*, ta có biểu thức: x0.x1...xd.z = y0.y1...ym,
với x0 y0.
Theo cách xác đinh Ud và Vd+1 ở trên, suy ra zVd+1, mâu thuẫn. Vậy X có độ trễ giải mã hữu hạn.
Mệnh đề 3.1 là cơ sở cho Thuật toán 3.1 tính toán độ trễ giải mã dƣới đây:
Thuật toán 3.1. COMDDELAY(X) Input: ChoX A+ là -mã.
Output: Độ trễ giải mã của X.
1. U0 = (X+)1X{e} {(i, , i) iB}. V1 = (X1 (X+) {e} {(i, , i)iB}) + U01 X+. if V1 = then n = 0 goto 4. Elsen = 1. 2. Lặp: Biết Vn xác định Vn+1 nhƣ sau Un = Vn1X + (X+)1(Vn1X), Vn+1 = X1Vn + Un1X+ 3. if Vn+1 = Then goto 4.
Else if (Vk = Vn+1) (some k n) then goto 5.
Else n = n +1, goto 2.
4. Return (X là -mã có độ trễ giải mã hữu hạn d=n), Exit. 5. Return (X là -mã có độ trễ giải mã vô hạn), Exit.
Từ thủ tục xác định độ trễ giải mã của một -ngôn ngữ ở trên, chúng ta có nhận xét: Các tập Vi+1, Ui sẽ nhận đƣợc sau mỗi bƣớc tính toán nhờ áp dụng hữu
- 60 -
thì theo kết quả kinh điển, số các tập Vi+1, Ui thỏa bởi toàn cấu vị nhóm :
A*P, với P là một vị nhóm hữu hạn, nghĩa là số các tập Vi+1, Ui không vƣợt quá số tập con của P (bằng 2|P|). Sau đây chúng ta nhắc lại một số kết quả trong lý thuyết mã là cơ sở xây dựng otomat hữu hạn xác định độ trễ giải mã của một -ngôn ngữ chính quy.
Bổ đề 3. Cho hai -ngôn ngữ chính quy X, Y A* và hai đồng cấu vị nhóm :
A*M, : A*thỏa X, Y tương ứng. Khi đó, ta luôn xây dựng được một đồng cấu (toàn cấu) vị nhóm : A* P (với P là một vị nhóm hữu hạn) thỏa đồng thời cả X và Y.
Chứng minh. Xét = × : A* M × N = P
u ((u), (u))
(1M, 1N) = e , e là đơn vị của P
Theo giả thiết, tồn tại B M, C N mà X = -1
(B), Y = -1
(C). Đặt
B = B × N= { (b, n) | b B, n N},
C = M × C= { (m, c) | m M, c C} Sau đây ta sẽ chứng minh: -1
(B) = X, -1
(C) = Y. Thật vậy, với X =-1 (B),
xX, ta có b=(x), bB, (x) = ((x), (x))= (b, (x)) B nhƣ vậy (X) B
Ngƣợc lại, với y (B) A*, (y) B, (y) = ((y), (y)) = (b, n) B. Từ đó ta có thể viết: (B) = X = -1 (B P), B = B P P (C) = Y = -1 (C P), C = C P P X = -1 (B), Y = -1 (C)
Suy ra X và Y đồng thời thỏa bởi . Từ (A*) = P P và : A* P là toàn cấu, suy ra (u) = (u). Do đó : A* P thỏa đồng thời cả X và Y.
- 61 -
Bổ đề 4. Cho X, Y A* là các -ngôn ngữ chính quy. Nếu X,Y cùng thỏa bởi
toàn cấu vị nhóm : A* P, với P là một vị nhóm hữu hạn, thì cũng thỏa mọi L (X,Y), với (X,Y) là lớp -ngôn ngữ sinh bởi X, Y nhờ sử dụng hữu hạn
các phép , , , các phép thương trái, thương phải.
Chứng minh. Theo giả thiết X = -1
(B), Y = -1 (C), B, C P, suy ra X Y = -1 (B) -1 (C) = -1 (B C).
Do đó thỏa X Y. Lập luận tƣơng tự với phép và phép . Theo định nghĩa: B-1
C={mP | bB, bmC} P, suy ra X-1Y =-1
(B-1C).
Do đó thỏa X-1Y. Lập luận tƣơng tự với XY-1.
Nhƣ vậy, với X A*là -ngôn ngữ chính quy, số các tập U, V thỏa bởi
toàn cấu : A* P, với P là một vị nhóm hữu hạn, nghĩa là số các tập U, V
không vƣợt quá số tập con của P là 2|P| .
Ta xây dựng một otomat = (Q, A, , q0, T) từ X gồm:
+ Bảng chữ cái hữu hạn A.
+ Tập trạng thái Q = {q | q = (i, V, U, is_u), với V, U A+, i = 1,..., Trong đó: i là chỉ số của tập V, biến logic is_u nhận các giá trị False, True trong mỗi bƣớc tính toán. Vì vậy, số trạng thái của Q bị chặn bởi |Q| 2|P|. 2|P|. 2 = 22|P|+1. + Các giá trị cờ tích lũy is_u đƣợc sử dụng để quyết định một bƣớc chuyển trạng
thái hợp lý, trong đó ta quy ƣớc giá trị của is_u nhƣ sau:
- Trƣờng hợp 1: Ui đƣợc tính theo Vi : is_u = False, chỉ số i tăng
- Trƣờng hợp 2: Vi+1 đƣợc tính theo Ui , Vi: is_u = True, chỉ số i không tăng + Trạng thái ban đầu q0 = (1, V, U, True), với:
U = U0 = (X+)1X {e} {(i, , i) i B}
- 62 -
+ Hàm chuyển trạng thái đƣợc xây dựng nhƣ sau: Tại một thời điểm bất kỳ, otomat ở trạng thái q = (i, V, U, is_u), tùy thuộc vào giá trị cờ tích lũy is_u mà otomat chuyển sang trạng thái mới q = (i, V, U, is_u) theo hai trƣờng hợp:
Trường hợp 1: nếu is_u = True thì: q = (i, V, U, is_u), trong đó:
i = i, V = V, U =V1X (X+)1(V1X), is_u = False
Trường hợp 2: nếu is_u = False thì: q = (i, V, U, is_u), trong đó:
i= i + 1, V =X1V U1X+, U =U, is_u = True. + Trạng thái q = (i, V, U, is_u) T nếu e V hoặc e U hoặc V = .
+ Một đƣờng đi trong là một dãy P = (1, 2, ..., k) cạnh liên tiếp
i = (qi, ui, qi+1) , 0ik.
Định nghĩa 3.1. Cho otomat =(Q, A, , q0, T) được xác định bởi X. Một đường
đi dạng P:q0 = (1,V,U,is_u) q = (k+1,V,U,is_u), k 0, được gọi là thành công trong . Khi đó, giá của con đường P, ký hiệu là Val(P), với Val(P) = k.
Mệnh đề sau đây khẳng định tính đúng đắn của otomat.
Mệnh đề 3.2. Cho otomat = (Q, A, , q0, T) được xác định bởi X như trên. P
là tập tất cả các đường đi thành công trong . Khi đó X có độ trễ giải mã hữu hạn d, được xác định bởi:
d = Min{ k | k = Val(P), P P}
Chứng minh. Xét PP, d = Val(P) khi đó Vd+1 = (theo giả thiết), suy ra d là
độ trễ của X (theo Mệnh đề 3.1). Sau đây ta sẽ chứng minh d là độ trễ giải mã của X thì d phải là giá của đƣờng đi thành công ngắn nhất trong . Thật vậy, giả sử nếu có d < d thì độ trễ giải mã của X phải là d, mâu thuẫn với giả thiết d là
độ trễ giải mã của X.
Ví dụ 1. Giả sử X = {(1,b, 0), (0,abb, 0), (0,abbba, 1), (1,bbba, 0), (1,baabb, 0)}.
- 63 -
q0 = (1, V, U, True), với
U = { (0,bba, 0), (0,aabb, 0), (0,ba, 1) } V = { (0,bba, 0), (0,aabb, 0), (0,ba, 1) } q1 = (1, V, U, False), với
U1 =
V2 =
Với V2 = , suy ra q1 T. Do đó, X là -mã có độ trễ giải mã hữu hạn d = 1.
Ví dụ 2. Giả sử X = {(0,ca, 1), (0,c, 0), (0,ab, 0), (1,baa, 1), (0,aabb, 0)}. Ta có: q0 = (1, V, U, True), với U0 = {(0, a, 1)} V1 = {(0, a, 1), (1, b, 0), (1, abb, 0)} q1 =(1, V, U, False), với U1 = {(1, b, 0), (1, abb, 0), (0, aa, 1)} V2 = {(0, aa, 1), (1, bb, 0)}