Tính toán độ trễ giải mã cho -mã theo otomat

Một phần của tài liệu Thuật toán kiểm tra tính chất mã bằng otomat hữu hạn (Trang 53 - 63)

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 = (X1 (X+)  {e}  {(i, , i)iB}) + U01

X+ Ui = Vi1X+ (X+)1(Vi1X) , i> 0

Vi+1 = X1Vi + Ui1 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 zU0 tùy ý, ta có z ((Y+)-1X {e}  { (i, , i) iB}) (vì V0 =

Y+ = X+). Khi đó, tồn tại -từ y = y0.y1 ...ymX+, 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 zV1 tùy ý, khi đó có hai khả năng xẩy ra: z (X1V0{e} 

{ (i, , i)iB}) hoặc zU0-1Y+.

+ Nếu z (X1V0{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 zU0-1Y+, khi đó sẽ tồn tại -từ zU0, sao cho

z.z = y0.y1...yp X+, với Y = X. (3.3) Do zU0, 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(Vd1X)

- 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(Vd1X). Khi đó sẽ tồn tại -từ y=y0.y1... yp X+, sao cho

z= y0.y1... yp.z  Vd1X. (3.5) Do zVd1X, 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ừ zVd+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 zVd+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)

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 zUd-1Y+, khi đó sẽ tồn tại -từ zUd, sao cho

z.z= y0.y1... yp X+. (3.9)

Do zUd, 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,..., ymX, 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  Vd1 X hoặc z  (Y+)1(Vd1X) xd ym xd-1 z (b) Vd zym-1 ... yi+1 zym z (b’) xd xd-1 y z’’ Vd xd ym xd-2 z (a) Ud zxd-1 Hình 3.1. Phân tích z Vd1X hoặc z  (Y+)1(Vd1X)

+ 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 zVdx0.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  Ud1Y+.

- 58 - x0 ... xd-1 xd z y0 ... ym z’ (a) (b) Vd+1 ym z xd ... Ud ... yi zyi+1 Hình 3.2. Phân tích z X-1Vd hoặc z Ud1Y+.

+ Đặt z = xd.z (xem Hình 3.2.a), suy ra zVd 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 zVd+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 = (X1 (X+) {e}  {(i, , i)iB}) + U01 X+. if V1 =  then n = 0 goto 4. Elsen = 1. 2. Lặp: Biết Vn xác định Vn+1 nhƣ sau Un = Vn1X + (X+)1(Vn1X), Vn+1 = X1Vn + Un1X+ 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), bB, (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 =V1X  (X+)1(V1X), 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 =X1V U1X+, 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) , 0ik.

Đị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)}

Một phần của tài liệu Thuật toán kiểm tra tính chất mã bằng otomat hữu hạn (Trang 53 - 63)

Tải bản đầy đủ (PDF)

(75 trang)