Chương 2 Kiến thức nền tảng
3.4. Thể thức tương tác tương tranh ràng buộc thời gian
3.4.3. Thuật tốn kiểm chứng tính cắm được
Môi trường muốn sử dụng các dịch vụ từ các thành phần phần mềm thì mơi trường phải tn thủ các thể thức của thành phần phần mềm. Trong phần này luận án trình bày bài tốn quan trọng trong lý thuyết giao diện thành phần đó là bài tốn kiểm chứng các u cầu của mơi trường, được mơ hình hóa bằng ơtơmát thời gian, có thỏa thể thức của thành phần phần mềm hay không? Tức là, luận án sẽ chứng minh rằng liệu tất cả các hành vi chấp thuận được của ôtômát thời gian A có tuân thủ thể thức tương tác tương tranh thời gian thực
π. Sau đó luận án phát triển một thuật tốn nhằm kiểm tra liệu A |=π? Thuật
toán nhằm trả lời câu hỏi liệu thành phần phần mềm C có phù hợp với thiết kế đã cho hay không? Để đơn giản, luận án giới hạn trong trường hợp giá trị của ánh xạ δ trong π là những số nguyên.
Trong phần này, luận án nhắc lại một số khái niệm liên quan đến ôtômát thời gian để áp dụng cho thể thức tương tranh thời gian thực, và để đơn giản luận án chỉ xem xét trường hợp ôtômát thời gian đơn định, tức là ơtơmát thời gian khơng có nhiều hơn một cạnh được gán nhãn atừ vị trí `với bất kỳ a ∈Σ. Cho một ôtômát thời gianM =hL,Σ, `0,{, T,2{,Γinhư trong Định nghĩa
2.3. Đối với mỗi phép biểu diễn đồng hồ ν và đối với τ ∈ R≥0, ν +τ biểu thị
phép biểu diễn đồng hồ là ánh xạ từ mỗi đồng hồ x ∈ { và giá trị ν(x) +τ. Đối với mỗi ~⊆{, [~7→ 0]ν là phép biểu diễn đồng hồ gán 0 cho từng đồng hồ
Một trạng thái của ôtômát thời gian M là một cặp h`, νi, trong đó `∈ L
vàν là một phép gán giá trị đồng hồ của {, tức là M trong trạng thái h`, νi tại thời điểm M ở vị trí ` với tất cả các giá trị đồng hồ ν tại trường hợp đó.
Hành vi của ơtơmát thời gian có thể được biểu diễn bằng từ thời gian (hoặc dãy dịch chuyển gán nhãn thời gian). Một hành vi ω là một từ thời gian
ω = (e1, τ1)(e2, τ2). . .(em, τm), trong đó m ≥ 1 và ei ∈ T, −−→e
i−1 = ←e−
i đối với
i = 1, m (với quy ước −→e
0 = `0), và ở đây 0 = τ0 ≤ τ1 ≤ τ2 ≤ · · · ≤ τm, sao cho (νi−1+τi−τi−1) thỏa φei với mọii = 1, m, trong đóνi = [~ei 7→ 0](νi−1+τi−τi−1) đối với i = 1, m.
Do đó, một dãy hành vi ω biểu diễn rằng ôtômát M bắt đầu từ vị trí khởi tạo `0, dịch chuyển tới −→e
1 bằng cách nhận e1 tại thời điểm τ1, thì dịch chuyển tới −→e
2 bằng cách nhận e2 tại thời điểm τ2, và cứ như vậy dịch chuyển tời vị trí cuối cùng −e→
m tại thời điểm τm. Chú ý rằng (νi−1 +τi −τi−1) là giá trị của các biến đồng hồ chỉ xảy ra trước ei, và νi là giá trị của các biến đồng hồ chỉ xảy ra sau ei. Hành vi ω cũng chỉ ra rằng hệ thống M ở vị trí ←−e
i một khoảng thời gianτi−τi−1đơn vị thời gian, và sau đó dịch chuyển tới ←−e
i+1, i= 1, m. Nếu
ω = (e1, τ1)(e2, τ2). . .(em, τm) là một hành vi của ơtơmát thời gianM, chúng ta gọi −e→
m là vị trí đến được của M và h−e→m, νmi là một trạng thái đến được của M. Do đó, một hành vi của ơtơmát thời gian M là chấp thuận được khi và chỉ khi
−→
em ∈ Γ. Đặt `i =−→e
i, với i = 1, m, thì một dãy thực thi tương ứng với ω là một chuỗi được minh họa dưới đây.
ω =h`0, ν0i −→e1
τ1 h`1, ν1i −→e2
τ2 . . . −→em
τm h`m, νmi
Ngôn ngữ hữu hạn của M là tập tất cả các hành vi chấp nhận được của
M. Để giải quyết bài tốn tính rỗng đối với ơtơmát thời gian, Alur và Dill đã giới thiệu quan hệ tương đương được đánh chỉ mục hữu hạn trên không gian trạng thái của ôtômát [5].
Ý tưởng của phương pháp là chia tập các đồng hồ thành tập các vùng cho đến mức hai đồng hồ trong cùng một vùng sẽ thỏa cùng tập ràng buộc đồng hồ. Với mỗi x ∈ {, đặt Kx là tập hằng số nguyên lớn nhất xảy ra trong một ràng buộc đồng hồ đối với mỗi biến đồng hồxcủa ôtômát thời gianM, chúng ta tính
giá trị của Kx theo biểu thức sau.
Kx = max{a | hoặc x ≤a hoặc
x≥ a xảy ra trong một ràng buộc đồng hồ của φ của dịch chuyển e}.
Chúng ta đặc số nguyên lớn nhất là KX, chúng ta có KX = maxx∈XKx.
Quan hệ tương đương trên tập các đồng hồ được định nghĩa như sau: Cho hai phép gán giá trị các đồng hồ ν and ν0, ν ν0 khi và chỉ khi ba điều kiện sau thỏa được:
(i) Với mọi x∈ { hoặc ν(x) > Kx∧ν0(x) > Kx hoặc bν(x)c= bν0(x)c. (ii) Với mọi x, y ∈ { sao cho ν(x) ≤ Kx và ν(y) ≤ Ky, fract(ν(x)) ≤
fract(ν(y)) khi và chỉ khi fract(ν0(x)) ≤fract(ν0(y)).
(iii) Với mọi x ∈ { sao cho ν(x) ≤ Kx, fract(ν(x)) = 0 khi và chỉ khi fract(ν0(x)) = 0.
Khiν ν0, khơng khó để thấy rằng đối với bất kỳ ràng buộc đồng hồ φ nào xảy ra trong dịch chuyển e=h`, a, φ,~, `0i ∈ T, ν thỏa φ khi và chỉ khi ν0 thỏa φ.
Một vùng đồng hồ của M là một lớp tương đương các giá trị của các đồng hồ được sinh bởi . Tập những đồng hồ ν cùng một lớp được ký hiệu bởi Z
gọi là vùng đồng hồ. Từ định nghĩa của , một vùng được đặc trưng bởi phần nguyên của giá trị của mỗi đồng hồ x khi nó khơng lớn Kx và thứ tự giữa phần thập phân của các đồng hồ khi khác 0. Do đó, số các vùng đồng hồ khơng q
|{|!·2|{|·Q
x∈{(2Kx+ 2) vùng, trong đó |{| là số đồng hồ.
Một cấu hình được định nghĩa là một cặp h`, Zi trong đó ` ∈ L và Z là một vùng đồng hồ. Dựa trên các vùng đồng hồ, ôtômát vùng của M mà các trạng thái của nó là cấu hình củaM, và các dịch chuyển của chúng là sự kết hợp một dịch chuyển thời gian và một hành động dịch chuyển từ M. Tồn tại một dịch chuyển thời gian từ h`, Zitới h`, Z0ikhi và chỉ khi Z0 =Z+τ đối với τ nào đó. Đặt P(M) = hL0, `00,Σ, T0,Γ0i là ôtômát vùng của M. Chú ý rằng P(M) là một ôtômát phi thời gian, và luận án ký hiệu ngôn ngữ phi thời gian của P(M) là L(P(M)).
Luận án làm đơn giản ôtômát M và P(M) sao cho tất cả các trạng thái (các vị trí) là trạng thái (ví trí) đến được và tất cả các trạng thái đều dẫn đến một trạng thái chấp nhận nào đó. Luận án cũng nhắc lại một số kết quả trong ôtômát thời gian sẽ được sử dụng trong thuật toán kiểm tra tính tuân thủ của các chuỗi hành vi của môi trường với thể thức tương tác của thành phần phần mềm thời gian thực. Đặt L(M) biểu thị ngôn ngữ của các từ thời gian vô hạn (ω-timed language) được sinh bởi M (bằng cách thêm các dịch chuyển
(-transitions) từ trạng thái kết thúc tới chính nó, chúng ta có thể mở rộng ngôn ngữ hữu hạn của M vào ngôn ngữ thời gian ω (ω-timed language).
Định lý 3.1 (Tính quyết định được đối với bài tốn kiểm tra tính rỗng [5]).
(i) Đối với ôtômát thời gian M, untimed(L(M)) =L(P(M)). Do đó, bài tốn
kiểm tra tính rỗng đối với ơtơmát M là quyết định được. (ii) Nếu h`0, ν0i −→e1
τ1 h`1, ν1i −→e2
τ2 . . . −→em
τm h`m, νmi là một dãy thực thi từ trạng thái ban đầu của M thì h`0, Z0i −→e1 h`1, Z1i −→e2 . . . −→em
h`m, Zmi là dãy thực thi của P(M), và trái lại, nếu h`0, Z0i −→e1
h`1, Z1i −→e2 . . . −→em h`m, Zmi là một dãy thực thi trong P(M) thì tồn tại τ1, . . . , τm sao cho h`0, ν0i −→e1
τ1 h`1, ν1i −→e2
τ2 . . . −→em
τm h`m, νmi là một dãy thực thi từ trạng thái ban đầu của M.
Đối với ơtơmát M, kích thước của M (số các dịch chuyển và vị trí) được ký hiệu bởi |M|. Bây giờ chúng ta quay trở lại bài toán quyết định được, nếu
untimed(L(A))|Σi ⊆ L(Ei) đối với ôtômát thời gian A đã cho. Điều này chỉ ra rằng bài toán quyết định được là giải quyết được, và chỉ là một hệ quả của Định lý 3.1.
Định lý 3.2. Cho biểu thức chính quy Ei và ơtơmát thời gian A, bài tốn
untimed(L(A))|Σi ⊆ L(Ei) là quyết định được trong thời gianO(|P(A)|.|L(Ei)|).
Chứng minh. Đặt B là một ơtơmát đốn nhận tất cả các xâu trên bảng chữ cái Σi mà không thuộc L(Ei), tức là một ơtơmát đốn nhận ngôn ngữ phần bù ¯L(Ei) của L(Ei). Ơtơmát tích đồng bộ B ×Σi P(A) đốn nhận ngơn ngữ
¯
L(Ei)||L(P(A)) ({ω | ω|Σi ∈ L(¯ Ei) ∧ω|Σ0 ∈ L(P(A))}). Theo Định lý 3.1 mà ¯
L(Ei)||L(P(A)) = ¯L(Ei)||untimed(L(A)). Bài toán kiểm tra tính rỗng của ngơn ngữ sinh bởi B × P(A) là quyết định được trong thời gian O(|L(Ei)× P(A)|).
Nhưng ¯L(Ei)||untimed(L(A)) rỗng khi và chỉ khi untimed(L(A))|Σi ⊆ L(Ei).
Vậy, định lý được chứng minh.
Bây giờ chúng ta xét bài toán quyết định được nếu tất cả các xâu sinh bởi A thỏa mãn mục 2 của định nghĩa sự tuân thủ thể thức, tức là Định nghĩa
3.2. Đặt A = hL, `0,Σ,{, T,Γi. Đặt Σi ⊆ Σ. Đặt ci là một biến đồng hồ mới,
ci < X. Cho A0 là một ôtômát tương tự như ôtômát Aloại trừ các dịch chuyển được gán nhãn bằng các ký tự trong Σi cũng như thiết lập lại đồng hồ ci, tức là A0 = hL, `0,Σ,{∪ {ci}, T0,Γi, và T0 = {e0 = (`, a, φ,~∪ {ci}, `0) | e = (`, a, φ,~, `0) ∈T∧a∈ Σi} ∪ {e0 = (`, a, φ,~, `0) | e= (`, a, φ,~, `0) ∈T ∧a < Σi}.
Sự khác nhau của các dịch chuyển trongAvàA0 được minh họa trong Hình 3.4.
S1 S2 S3 S4 a c b X>=2 y=1 X<=5 X:=0 Y:=0 Y:=0 S1 S2 S3 S4 a c b X>=2 y=1 X<=5 X:=0 Y:=0 Y:=0 Ci:=0 Ci:=0 Hình 3.4: Sự dịch chuyển trongAvà A0: a, b∈Σi, c<Σi.
Do biến ci không xuất hiện trong bất kỳ bộ bảo vệ φ nào của ôtômát A,
ôtômátA0 cũng sinh cùng ngôn ngữ thời gian nhưA. Bổ sung biến đồng hồcichỉ nhằm mục đích đếm thời gian giữa hai dịch chuyển liên tiếp trong Σi. Một phép gán bộ giá trị của ôtômát A0 bây giờ có dạng ν ∪ {ci 7→ν} đối với ν ∈R≥0 nào đó. Bây giờ chúng ta xây dựng đồ thị vùngP(A0) cho A0, và phân tích đồ thị này để xem liệu điều kiện thứ hai của Định nghĩa 3.2 có bị vi phạm bởi từ thời gian của L(A). Nếu δ(a) = 0 với mọi a∈ Σi, thì điều kiện thứ 2 thỏa với mọi i một cách dễ dàng. Trái lại, Định lý 3.1 cho biết rằng điều kiện này bị vi phạm khi và chỉ khi tồn tại một dãy thực thi h`0, Z0i −→e1 h`1, Z1i −→e2 . . . −→em h`m, Zmi
trong P(A0) mà tồn tại hai dịch chuyển el và el+h tương ứng với đồng hồ thiết lập lại ci trong A0: el = (h`l, Zli, a,h`l+1, Zl+1i ở đây a ∈ Σi, νl+1(ci) = 0, và
el+h = (h`l+h, Zl+hi, b,h`l+h+1, Zl+h+1i, trong đó b ∈ Σi, νl+h+1(ci) = 0, và các dịch chuyển tương ứng với el+1, . . . , el+h−1 không gán nhãn bằng các ký tự trong Σi (không tương ứng với các dịch chuyển trong A0 có thiết lập lại đồng hồ ci) mà làm cho điều kiện sau thỏa được: Đặt một dãy thực thi trong ôtômát A0
theo Định lý 3.1 tương ứng với đường đi như sau:
h`l, νli −→el
τl . . .−→el+h−1
τl+h−1 h`l+h, νl+hi −→el+h
τl+h h`l+h+1, νl+h+1i
Thì νl+h(ci) +τl+h < δ(a). Như vậy, sau khi loại bỏ tất cả các trạng thái
không đến được từP(A0), và bổ sung các dịch chuyển thời gian (được gán nhãn “time”) vào P(A0), cũng có một đường đi trong P(A0) được mô tả bằng dãy sau:
h`l, Zli −→el . . . −→el+h−1 h`l+h, Zl+hi −→time
h`l+h, Zl+h+τl+hi −→el+h h`l+h+1, Zl+h+1i
trong đó νl+h(ci) +τl+h < δ(a), ở đây a là nhãn của el, và el+h có nhãn trong Σi. Một đường đi (path) trong P(A0) thỏa điều kiện này được gọi là “vi phạm” đường đi. Bây giờ kiểm tra A đối với sự vi phạm của điều kiện thứ hai của Định nghĩa 3.2 bằng cách thực hiện tìm kiếm trong đồ thị của P(A0) đối với đường đi đơn (khơng chứa vịng lặp) từ el to el+h với thuộc tính vi phạm như đã đề cập ở trên (gọi đó là đường đi vi phạm). Nếu khơng có đường đi như vậy được tìm thấy, thì ngơn ngữ thời gianL(A) thỏa điều kiện. Điều này có thể
được thực hiện trong O(|P(A0)|2) thời gian. Do đó, chúng ta có Định lý 3.3.
Định lý 3.3 (Sự tuân thủ thể thức). Bài tốn “liệu một ơtơmát thời gian A
đã cho tuân thủ thể thức tương tác tương tranh thời gian thực π” là quyết định được trong thời gian O(|P(A0)|2).
Chứng minh. Chứng minh này xét ba trường hợp. Thứ nhất, kiểm tra ơtơmát thời gian A có tn thủ trình tự lời gọi các dịch vụ của thành phần phần mềm trong thể thức tương tác π bằng cách áp dụng bài toán kiểm tra tính rỗng đối với ngơn ngữ, thứ hai xét đến trường hợp khơng có ràng buộc thời gian và cuối cùng xét đến trường hợp có ràng buộc thời gian. Cho một ôtômát thời gian
A=hL,Σ, `0,{, T,Γi và một thể thức tương tác π =h(Σ1,E1), . . . ,(Σk,Ek), δi,
k ∈N. Đặt P(A) là ôtômát vùng của A.
Trường hợp 1: Kiểm tra tính rỗng Đặt L(Ei) là ngơn ngữ của biểu thức chính quy Ei. Đặt Bi là ơtơmát đốn nhận ngơn ngữ ¯L(Ei), ở đây ¯L(Ei) là ngôn ngữ phần bù của Ei, i = 1, k. Với mỗi B , xây dựng tích đồng bộ
P(A) ×Σi Bi. Kiểm tra lần lượt ngơn ngữ của các tích đồng bộ này xem có rỗng hay khơng, tức là kiểm tra L(P(A)×Σi Bi) =∅? Nếu một trường
hợp L(P(A)×Σi Bi) nào đó khác rỗng. Suy ra ơtơmát A không thỏa thể thức tương tác π đã cho. Ngược lại, chuyển sang Trường hợp 2. Độ phức tạp thời gian trong trường hợp này là O(|P(A)|.|L(Ei)|).
Trường hợp 2: Kiểm tra ràng buộc thời gian trong thể thức tương tác π.
Nếu khơng có ràng buộc thời gian trong π. Suy ra ôtômát Athỏa thể thức tương tác π. Ngược lại, chuyển sang Trường hợp 3.
Trường hợp 3: Duyệt lần lượt từng cặp (Σi,Ei) trongπ, i = 1, k. Xét ánh xạ
δ không phải là 0−ánh xạ, ở đây 0−ánh xạ là ánh xạ trả về thời gian ràng buộc bằng 0. Tương ứng với mỗi cặp (Σi,Ei), xây dựng ôtômát thời gianA0
bằng cách bổ sung đồng hồci vào ôtômátA. A0 =hL,Σ, `0,{∪{ci}, T0,Γi, trong đó T0 = {e0 = (`, a, φ,~∪ {ci}, `0) | e = (`, a, φ,~, `0) ∈ T ∧ a ∈
Σi} ∪ {e0 = (`, a, φ,~, `0) | e = (`, a, φ,~, `0) ∈ T ∧ a < Σi}. Xây dựng
đồ thị vùng P(A0), và bổ sung tất cả các dịch chuyển “thời gian” vào
P(A0) và làm đơn giản nó bằng cách loại bỏ các trạng thái khơng đến được. Tìm trong đồ thị vùng P(A0) những đường đi vi phạm. Nếu tồn tại một đường đi vi phạm suy ra ôtômát Akhông thỏa thể thức tương tác π.
Khi duyệt hết các trường hợp từ 1 đến k, khơng tồn tại một đường đi vi
phạm nào thì khẳng định ôtômát thời gian A thỏa thể thức tương tác π,
ký hiệu A |= π. Độ phức tạp thời gian của thuật toán trong trường hợp
này là O(|P(A0)|2).
Như vậy, độ phức tạp thời gian cho toàn bộ các trường hợp là O(|P(A0)|2).
Luận án xây dựng thuật toán kiểm tra sự tuân thủ thể thức của một ôtômát thời gian với một thể thức tương tác của một thành phần phần mềm dựa trên Định lý 3.3. Giả sử cho một ôtômát thời gian A và một thành phần phần mềm thời gian thực C với thể thức tương tác thời gian π. Đầu tiên, luận
án xây dựng thuật tốn kiểm tra liệu ơtơmát thời gian Acó thỏa thể thứcπ hay khơng trong trường hợp khơng có ràng buộc thời gian. Thuật tốn này nhằm mục đích kiểm tra tính tn thủ theo trình tự lời gọi của A đối với thể thức tương tác π trong thành phần phần mềm C.
Thuật toán 3.1 nhằm mục đích kiểm tra sự tuân thủ của chuỗi hành vi của môi trường với thể thức tương tác trong một thành phần phần mềm trong trường hợp chưa xét đến ràng buộc thời gian. Thuật tốn dựa trên bài tốn kiểm tra tính rỗng đối với giao của ngôn ngữ phần bù của ngơn ngữ cần kiểm tra.
Đầu vào của thuật tốn gồm thể thức π là tập biểu thức chính quy với ánh xạδ biểu diễn thể thức tương tác trong một thành phần phần mềm, và một ôtômát thời gian A biểu diễn chuỗi hành vi của mơi trường. Đầu ra của thuật tốn khẳng định tích đồng bộ rỗng hay khơng.
Thuật tốn 3.1: EmptinessCheck: Kiểm tra tính tính rỗng của Avới π