Otomat có trọng số đốn nhận chuỗi hình thức

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số vấn đề lý thuyết và ứng dụng của các mô hình otomat nâng cao (Trang 42 - 55)

1.5. Kết luận chƣơng 1

Chƣơng này đã trình bày các kiến thức cơ sở về vị nhóm, nửa vành, ngơn ngữ, khoảng cách soạn thảo, xâu con chung dài nhất, một số loại mã, máy biến đổi và otomat, đồ thị hữu hạn và chuỗi hình thức. Các kiến thức cơ sở này cần thiết cho 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 LCS và khoảng cách DL hạn chế của hai ngơn ngữ đƣợc đốn nhận bởi hai otomat hữu hạn tƣơng ứng, công bố trong 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).

2.1. Xâu con chung dài nhất của hai ngơn ngữ

2.1.1. Bài tốn

Cho hai otomat hữu hạn 1 và 2 khơng có chu trình, khơng chứa cung rỗng, lần lƣợt đốn nhận ngơn ngữ X và Y tƣơng ứng. Khi đó X và Y là các ngơn ngữ hữu hạn. Bài tốn LCS của hai otomat hữu hạn, hay của hai ngôn ngữ X, Y đƣợc đặt ra nhƣ sau:

Bài toán 2.1. Hãy xác định:

i) Tập các LCS của X và Y, ký hiệu là LCS(X, Y) đƣợc định nghĩa nhƣ sau: LCS(X, Y) =  a  X, b  Y : L(a, b) ≥ L(x, y), x  X, y  Y LCS(a, b).

ii) Cặp (a, b)  X×Y thỏa mãn LCS(a, b) LCS(X, Y)và xâu u ∈ LCS(a, b).

Bài toán 2.2. Xác định độ dài LCS của X và Y, ký hiệu là L(X, Y).

2.1.2. Hình thức hóa khái niệm LCS

Mục này trình bày một cách hình thức hóa một số khái niệm về LCS của hai ngôn ngữ, làm cơ sở cho việc giải quyết bài toán ở phần tiếp theo.

Cho bảng chữ cái , xét tập Ω = ( {ε})({ε}  ){(a, a)|a  }. Một

cấu vị nhóm h: Ω* *  *, với h(ω) = (a1...an, b1...bn).

Định nghĩa 2.1. Một dãy sánh LCS của hai xâu x và y trên bảng chữ cái  là phần

tử ω  Ω sao cho h(ω) = (x, y). *

Ví dụ 2.1. Ta có ω = (a, ε)(ε, b)(a, a)(b, b) là dãy sánh LCS của xâu x = a εab và y = εbab, với a, b  .

Các phần tử (ε, a), (a, ε)  Ω , với a   biểu diễn phép toán soạn thảo (phép chèn, phép xố). Một hàm c tính chi phí của mỗi phép tốn soạn thảo là:

c((ε, a)) = c((a, ε)) = 0 a  , c((a, a)) = 1 a  . (2.1)

Cho ω=ω0ω1…ωn Ω , ω* i Ω , i=0,..,n. Chi phí của dãy sánh LCS ω là:    n i i ω c ω c 0 ) ( ) ( . (2.2)

Mệnh đề 2.1. Cho xâu x và y trên bảng chữ cái , u Ω thỏa mãn h(u)=(x, y). Ta *

có L(x, y) = c(u) nếu và chỉ nếu c(u) = maxω  Ω*{c(ω) | h(ω)=(x, y)}.

Chứng minh. Đầu tiên, ta chứng minh tính chất cơ sở: cho bất kỳ hai xâu x, y  *.

Khi đó tồn tại ω0Ω * sao cho h(ω0) = (x, y), L(x, y) = c(ω0) và c(ω0) = max ω 

Ω*{c(ω) | h(ω) = (x, y)}.

Dựa trên tính đúng đắn của tính chất cơ sở này, việc chứng minh Mệnh đề 2.1 đƣợc suy ra nhƣ hệ quả trực tiếp.

Thực vậy, chúng ta chứng minh tính chất cơ sở này bằng phƣơng pháp quy nạp đồng thời theo độ dài m của xâu x và độ dài n của xâu y.

Trƣờng hợp với khúc đầu x(i) và y(j) mà: (i = 0 và j = 1,…, n) hoặc (i = 1,...,

m và j = 0) hoặc (i = j = 1) là hiển nhiên đúng.

Giả sử tính chất cơ sở đúng với khúc đầu x(i) và y(j), ở đó (i, j) là một cặp bất kỳ mà: (i ≤ m, j <n) hoặc (i < m, j ≤ n).

* Nếu x[m] = y[n] thì theo giả thiết quy nạp, tồn tại ω2  Ω thỏa mãn: *

h(ω2)=(x(m-1), y(n-1)), L(x(m-1), y(n-1)) = c(ω2) và c(ω2)= max ω  Ω*{c(ω) |

h(ω)=(x(m-1), y(n-1))}.

Đặt ω0 = ω2u với u = (x[m], y[n])  Ω  h(ω 0) = (x(m), y(n)), c(ω 0) =

c(ω2)+1= L(x(m), y(n)) và c(ω0) = max ω  Ω*{c(ω) |h(ω) = (x(m), y(n))}.

* Nếu x[m]  y[n] thì theo giả thiết quy nạp, tồn tại ω1, ω3  Ω sao cho: *

h(ω1) = (x(m-1), y(n)), L(x(m-1), y(n)) = c(ω1) = max ω  Ω*{c(ω) | h(ω) =

(x(m-1), y(n))}.

h(ω3) = (x(m), y(n-1)), L(x(m), y(n-1)) = c(ω3) = maxω  Ω*{c(ω) | h(ω) =

(x(m), y(n-1))}.

Đặt u1 =(x[m],ε)  Ω , 1 = ω1u1, u3 = (ε, y[n])  Ω , 3 = ω3u3. Suy ra

h(1)=h(3)=(x(m), y(n)). Chọn ω0  {1, 3} sao cho c(ω0)=max{c(1), c(3)} thì

c(ω0)=L(x(m), y(n)) và c(ω0)=maxωΩ*{c(ω)|h(ω) = (x(m), y(n))}. 

Hệ quả 2.1. Độ dài xâu con chung dài nhất L(x, y) của hai xâu x và y trên bảng chữ

cái  đƣợc xác định nhƣ sau:

L(x, y) = maxω  Ω*{c(ω) | h(ω) = (x, y)}. (2.3)

Mệnh đề 2.1 và Hệ quả 2.1 đóng vai trị cơ sở, cho phép chúng ta hình thức hóa định nghĩa dƣới đây.

Định nghĩa 2.2. Độ dài LCS của hai ngôn ngữ X, Y  *

xác định nhƣ sau:

L(X, Y) = max{L(x, y) | x  X, y  Y}. (2.4)

Định nghĩa 2.3. Độ dài LCS của hai otomat hữu hạn 1, 2 ký hiệu L(1, 2) và đƣợc xác định bởi:

L(1, 2) = L(X , Y), với X = (1), Y = (2). (2.5)

Mục này, chúng ta nhắc lại thuật tốn tìm đƣờng đi dài nhất nguồn đơn trong lý thuyết đồ thị [6, 22].

Mệnh đề 2.2. [6] Cho G là một đồ thị có hƣớng và khơng có chu trình. Khi đó các

đỉnh của G có thể đánh số sao cho mỗi cung của đồ thị đi từ đỉnh có chỉ số nhỏ hơn đến đỉnh có chỉ số lớn hơn.

Để tìm đƣờng đi dài nhất nguồn đơn trên máy biến đổi khơng có chu trình . Ta coi  là một đồ thị có hƣớng, mỗi trạng thái (cung) trong  xác định một đỉnh (cung) của đồ thị. Tiếp theo ta đánh số các trạng thái trên  thỏa Mệnh đề 2.2 nhƣ sau:

- Tìm trên  các trạng thái khơng có cung đi đến (vì  khơng có chu trình nên ở bƣớc đầu có tập trạng thái ban đầu I khơng có cung đi đến), rồi đánh số chúng theo một thứ tự tùy ý bắt đầu từ 1. Tiếp theo, loại khỏi  những trạng thái đã đƣợc đánh số và các cung rời chúng. Thu đƣợc  khơng có chu trình;

- Lặp lại bƣớc trên cho đến khi tất cả các trạng thái trên  đƣợc đánh số. Thuật toán 2.1 dƣới đây thực hiện đánh số trạng thái trên máy biến đổi.

Thuật toán 2.1. NUMBERING()

Input:  = (, , Q, I, F, E, λ, ρ) khơng có chu trình.

OutPut:  có các trạng thái đƣợc đánh số thỏa mãn Mệnh đề 2.2.

1. For each q in Q do inp[q] ← 0; //inp[q] chứa số cung đi đến q 2. For each q in Q do

For each e in E[q] do inp[n[e]] ← inp[n[e]]+1;

3. S ← ; num ← 0; //S là hàng đợi, num biến đếm

4. For each q in Q do if inp[q] = 0 then ENQUEUE(S, q);

5. While S <>  do //Nr[q] đánh chỉ số của trạng thái q

q ← DEQUEUE(S); num ← num +1; Nr[q] ← num;

For each e in E[q] do

if inp[n[e]] =0 then ENQUEUE(S, n[e]); 6. Return ;

Thuật tốn 2.1 có độ phức tạp thời gian là (|Q|+|E|). Từ Mệnh đề 2.2 ta xây dựng Thuật tốn 2.2 dƣới đây thực hiện tìm đƣờng đi dài nhất nguồn đơn trên máy biến đổi khơng có chu trình.

Thuật tốn 2.2. LONGESTPATH()

Input:  = (, , Q, I, F, E, λ, ρ) khơng có chu trình và thỏa Mệnh đề 2.2.

OutPut: Khoảng cách dài nhất từ trạng thái q1  I đến các trạng thái còn lại của

máy biến đổi đƣợc ghi trong mảng d[qi], i = 2,…, |Q|. 1. d[q1] ← 0;

2. For i ← 2 to |Q| do d[qi] ← wg[e]; //e= (q1, a, b, wg, qi), nếu khơng có // cung rời q1 và đến qi thì d[qi] = - 3. For i ← 2 to |Q| do

For each e in E[qi] do d[n[e]] ← max(d[n[e]], d[qi]+wg[e]); 4. Từ max(d[qi]), i = 1,…, |Q| ta xác định đƣờng đi dài nhất π;

5. Return π;

Thuật tốn LONGESTPATH có độ phức tạp thời gian là (|Q|+|E|). Chú ý, để áp dụng đơn giản thuật toán trên, ta đƣa  về máy biến đổi chỉ có một trạng thái ban đầu và một trạng thái kết thúc.

2.1.4. Xác định LCS của hai ngôn ngữ theo otomat

Cho hai otomat hữu hạn 1 và 2 khơng có chu trình, khơng chứa cung rỗng, lần lƣợt đốn nhận ngơn ngữ X và Y tƣơng ứng. Bài toán 2.1.(ii) và Bài toán 2.2 đƣợc giải quyết nhờ phép hợp thành của hai máy biến đổi, thuật tốn tìm đƣờng đi dài nhất nguồn đơn trên máy biến đổi khơng có chu trình.

2.1.4.1. Chi phí của một dãy sánh LCS

hình thức trên bảng chữ cái Ω và nửa vành Tropical xác định bởi: (Ψ, (a, b)) = c((a,b)), (a,b)  Ω (hay 

  Ω ) , ( ) , )).( , (( Ψ b a b a b a c ). (2.6)

Bổ đề 2.1 dƣới đây đƣợc cải tiến từ Bổ đề 7 trong [48], phép toán soạn thảo là phép chèn, phép xoá.

Bổ đề 2.1. Cho ω = (a0, b0)...(an, bn)  Ω là một dãy sánh LCS, thì (Ψ* *, ω) là chi phí của dãy sánh LCS ω.

Chứng minh. Theo định nghĩa tích của chuỗi luỹ thừa trên nửa vành Tropical ta có:

) ( )) , (( )) , ( , Ψ ( ... )) , ( , Ψ ( ) , Ψ ( ... ) , Ψ ( min ) , Ψ ( 0 0 0 0 ... * 0 ω c b a c b a b a u u ω n i i i n n k ω u u k            . (2.7) Bổ đề đã đƣợc chứng minh. 

Ψ* là chuỗi luỹ thừa hữu tỉ. Theo định lý Schützenberger [18, 59], tồn tại một otomat có trọng số  định nghĩa trên bảng chữ cái Ω và nửa vành Tropical thực

hiện Ψ*. Otomat có trọng số  có thể đƣợc xem nhƣ máy biến đổi  có cùng bảng chữ cái vào và ra . Hình 2.1 cho thấy, máy biến đổi đơn giản thực hiện Ψ*

trong trƣờng hợp hàm chi phí c và  = {a, b}.

a:e b:e e:a/0 e:b/0 a:a/1 b:b/1

0/0

Hình 2.1. Máy biến đổi  thực hiện Ψ* trên bảng chữ cái Ω

2.1.4.2. Thuật toán

Định lý 2.1. Cho máy biến đổi U = 12 trên nửa vành Tropical, khi đó:

ii) Nếu π là đƣờng đi thành công dài nhất trên U thì LCS của hai xâu i[π],

o[π] là LCS của 1, 2 và L(1, 2) = wg[π].

Chứng minh. i) Ta chứng minh a) U khơng có khun:

Thật vậy, giả sử ngƣợc lại, U có khuyên tại một trạng thái ((p, 0), q) nào đó. Trong đó p là một trạng thái trong 1, 0 là trạng thái duy nhất của máy biến đổi , q là một trạng thái trong 2. Nhãn của khuyên này chỉ có thể là một trong ba dạng sau: a:a, a:ε, ε:a, với a  . Ta xét trƣờng hợp nhãn của khuyên là a:a, theo định nghĩa phép hợp thành của hai máy biến đổi, tại trạng thái q trong 2 phải có khuyên với nhãn a, điều này là mâu thuẫn với 2 khơng có chu trình. Ta xét trƣờng hợp nhãn của khuyên là a:ε, ε:a cũng có mâu thuẫn tƣơng tự. Do vậy U khơng có

khun.

b) U khơng có chu trình:

Giả sử ngƣợc lại, U có chu trình π = e1...ek, suy ra p[e1] = n[ek], vì trong U

khơng có khun nên k > 1 và ei-1  ei, với i = 2,…,k. Tƣơng ứng với chu trình π, trong U có dãy các trạng thái: ((p0, 0), q0), ((p1, 0), q1),..., ((pk, 0), qk) mà n[ei] = ((pi, 0), qi), p[ei] = ((pi-1, 0), qi-1), i = 1,...,k. Theo định nghĩa phép hợp thành của hai máy biến đổi thì trong 2 có một chu trình π’ = e1’...ek’ tƣơng ứng với dãy các trạng thái

q0, q1,..., qk (n[ei’] =qi, p[ei’]= qi-1, i = 1,…, k). Mâu thuẫn với 2 khơng có chu trình. Vậy U khơng có chu trình.

ii) Ta có máy biến đổi thực hiện chuỗi Ψ* trên bảng chữ cái Ω, theo định

nghĩa phép hợp thành của hai máy biến đổi và Bổ đề 2.1 thì trên U, cứ một đƣờng đi thành công, tƣơng ứng với một dãy sánh LCS ω của xâu x  (1) và y  (2) (hay h(ω) = (x, y)), và trọng số của đƣờng đi này là c(ω). Mặt khác, x  (1), y  (2), tất cả các đƣờng đi thành công trên U ứng với tất cả các dãy sánh LCS của

x, y. Gọi  là dãy sánh LCS của hai xâu i[π] và o[π] tƣơng ứng với đƣờng đi thành

(2)}. Hay L(1, 2)=c() = wg[π]. 

Định lý 2.1 làm cơ sở cho Thuật toán 2.3 dƣới đây:

Thuật toán 2.3. LENLCS(1, 2) //giải Bài toán 2.1.(ii) và Bài toán 2.2. Input: 1, 2 otomat hữu hạn khơng có chu trình, khơng chứa cung rỗng.

Output: Một xâu thuộc LCS(1, 2) và L(1, 2).

1. U ← 12;

2. U ← NUMBERING(U); π ← LONGESTPATH(U);

3. Từ π xác định xâu u  LCS(1, 2) và cặp (a, b) thỏa Bài toán 2.1.(ii); 4. Từ π ta xác định L(1, 2);

Nhận xét 2.1.

i) Để giải Bài toán 2.1.(i), trên U ta đi tìm tất cả các đƣờng đi thành cơng π’

mà wg[π’] = L(1, 2). Một trong các phƣơng pháp thực hiện là áp dụng thuật toán BFS(Breadth First Search) trên U và sử dụng kỹ thuật lƣu vết cùng với tích lũy dần trọng số trong quá trình duyệt đƣờng đi trên U, từ đó Bài tốn 2.1.(i) đƣợc giải

quyết.

ii) Độ phức tạp thời gian của Thuật toán 2.3:

- Nhƣ đánh giá trong các mục 1.2.2 và 2.1.3, bƣớc 1 ta dựng U có độ phức

tạp thời gian là ((|Q1|+|E1|)(|Q2|+|E2|)), với Q1, E1 và Q2, E2 lần lƣợt là tập trạng thái, tập cung của 1, 2 tƣơng ứng. Bƣớc 2, 3, 4 có độ phức tạp thời gian là (|Q1||Q2|+|E1||E2|).

- Vậy tổng hợp lại, độ phức tạp thời gian của Thuật tốn 2.3 xác định LCS của hai ngơn ngữ là ((|Q1|+|E1|)(|Q2|+|E2|)).

2.2. Khoảng cách DL hạn chế của hai ngôn ngữ

Cho hai otomat hữu hạn 1 và 2 khơng chứa cung rỗng, lần lƣợt đốn nhận ngôn ngữ X và Y tƣơng ứng. Phƣơng pháp trình bày dƣới đây cho phép xác định khoảng cách DL hạn chế của hai ngôn ngữ X và Y. Cách tiếp cận của phƣơng pháp

này tƣơng tự nhƣ phƣơng pháp xác định LCS của hai ngôn ngữ. Tuy nhiên, ta không thể áp dụng trực tiếp mà ta phải đƣa vào bảng chữ cái mở rộng, cải tiến từ 2 phép toán soạn thảo thành 4 phép tốn soạn thảo (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ề) và kỹ thuật mở rộng kiểu 1 của otomat.

2.2.1. Hình thức hóa khái niệm khoảng cách DL hạn chế

Cho  là bảng chữ cái, 0 = {xab | a, b  , a  b}, ở đó ta ký hiệu xab là ký tự mới tƣơng ứng với mỗi cặp ký tự khác nhau a, b  . Khi đó ta có bảng chữ cái mở rộng E =   0, xét tập:

 = {(({ε})  ( {ε})) -{(ε, ε)}}  {(xab, xba) | xab, xba  0}. Ta định nghĩa tồn cấu f : E*  *

, ở đó f(xab) = ab, f(a) = a, với a  b, a, b  . Phần tử ω của vị nhóm tự do * đƣợc xem nhƣ phần tử của *  * qua đồng cấu vị nhóm g : * E*  E*  *  *, với g(ω) = (f(a1...an), f(b1...bn)), ở đó ω

=(a1, b1)...(an, bn)  *.

Định nghĩa 2.4. Một dãy sánh DL hạn chế ω của hai xâu x và y trên bảng chữ cái 

là phần tử của * sao cho g(ω) = (x, y).

Ví dụ 2.2. Ta có ω =(a, ε)(ε, b)(a, b)(xab, xba) là dãy sánh DL hạn chế của hai xâu x =

aεaab và y = εbbba.

Cho s: + là hàm chi phí khơng âm. Các phần tử (ε, a), (a, ε), (b, a), (xab, xba)  , với a, b  , a ≠ b biểu diễn phép toán soạn thảo DL (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ề). Ta có

s((ε, a)), s((b, ε)), s((b, a)), s((xab, xba)) lần lƣợt là chi phí của phép chèn, xố, thay

thế một ký tự và đổi chỗ hai ký tự khác nhau liền kề tƣơng ứng, còn s(a, a) = 0, a  . Chi phí của dãy sánh DL hạn chế ω = ω0ω1... ωn  * là tổng chi phí của các thành phần ωi   với i = 0,..., n, ta có:

   n i i ω s ω s 0 ) ( ) ( . (2.8)

Khoảng cách DL hạn chế của hai xâu x và y đƣợc định nghĩa tƣơng tự nhƣ trong mục 1.1.1.4, chỉ có sự khác biệt là chi phí của một phép soạn thảo là một số thực khơng âm tùy ý. Khi đó, ta có khoảng cách DL hạn chế của x, y đƣợc xem xét cùng với hàm chi phí khơng âm s, ký hiệu là d(x, y).

Mệnh đề 2.3. Cho xâu x và y trên bảng chữ cái , u * thỏa mãn g(u)= (x, y). Ta có d(x, y) = s(u) nếu và chỉ nếu s(u)= min ω * {s(ω)| g(ω) = (x, y)}.

Chứng minh. Trƣớc tiên, chúng ta chứng minh cơ sở: cho hai xâu x và y trên bảng

chữ cái . Khi đó tồn tại ω0  * sao cho g(ω0) = (x, y), d(x, y) = s(ω0) và s(ω0) =

minω  *{s(ω) | g(ω) = (x, y)}. Dựa trên cơ sở này, chứng minh Mệnh đề 2.3 đƣợc suy ra trực tiếp.

Thực vậy, chúng ta chứng minh cơ sở bằng quy nạp theo độ dài m của xâu x và độ dài n của xâu y.

Trƣờng hợp với khúc đầu x(i) và y(j) mà: (i = 0 & j = 1,..., n) hoặc (i = 1,…, m & j = 0) hoặc (i = j = 1) là hiển nhiên đúng.

Giả sử cơ sở đúng với khúc đầu x(i) và y(j), ở đó (i, j) là một cặp bất kỳ mà: (i ≤ m, j < n) hoặc (i < m, j ≤ n).

Ta chứng minh cơ sở đúng với x = x(i) và y = y(j), ở đó i = m, j = n:

* Trƣờng hợp m>1, n >1 và x[m-1]=y[n], x[m]=y[n-1], x[m] ≠ y[n] : theo giả thiết quy nạp, tồn tại ω1, ω2, ω3, ω4  * sao cho: g(ω1) = (x(m-1), y(n)), g(ω2) = (x(m-1), y(n-1)), g(ω3) = (x(m), y(n-1)), g(ω4) = (x(m-2), y(n-2)) và

d(x(m-1), y(n)) = s(ω1) = min ω  *{s(ω) | g(ω) = (x(m-1), y(n))},

d(x(m-1), y(n-1)) = s(ω2) = min ω  *{s(ω) | g(ω) = (x(m-1), y(n-1))},

d(x(m-2), y(n-2)) = s(ω4) = min ω  *{s(ω) | g(ω) = (x(m-2), y(n-2))}.

Với u1 = (x[m],ε), u2 = (x[m], y[n]), u3 = (ε, y[n]), u4 = (xx[m-1]x[m], xy[n-1]y[n]) là các phần tử của , ta đặt: 1 1u1, 2 = ω2u2, 3 = ω3u3, 4 = ω4u4. Khi đó ta có

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số vấn đề lý thuyết và ứng dụng của các mô hình otomat nâng cao (Trang 42 - 55)

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

(107 trang)