Chương 6 Kết luận
3.3 Minh họa chuỗi hành động ω trên trục thời gian
Để thuận tiện cho việc phân tích các chuỗi hành động, ví dụ này coi đơn vị thời gian tính theo giây. Tại hành động S1, thời điểm khởi tạo τS1 = 0,
Như vậy hệ thống đã khởi tạo xong và sẵn sàng cho hành động A1 hoạt động. Đến giây thứ 11 bắt đầu gọi hành động Đ1, τĐ1 − τA1 = 6 ≥ δ(A1) = 5, với
cách tương tự chúng ta có thể tính cho các dịch vụ cịn lại. Vậy, chuỗi ω = (S1,0)(S2,0)(A1,5)(A21,6)(A22,11)(Đ1,11)(N1,16)(Đ21,17)(Đ22,18)(F1,22) (N21,22)(N22,25)(F2,30) tuân thủ thể thức của KĐKCB1 và KĐKCB2. Nếu hành động Đ1 xảy ra tại thời điểm τĐ1 = 9, ta có τĐ1−τA1 = 4≤ δ(A1) = 5, thì
chuỗi ω đã cho vi phạm thể thức πs1 vì KĐKCB1 khơng đáp ứng kịp u cầu.
Thể thức π là một tập các cặp (Σ,E). Do đó, theo lý thuyết ngơn ngữ hình thức, biểu thức chính quy và ngơn ngữ chính quy đóng với phép hợp, phép giao và phép lấy phần bù. Trong phần này, luận án kế thừa tồn bộ những lý thuyết đó để phục vụ cho việc biểu diễn các hành vi của thành phần phần mềm trong các trường hợp riêng lẻ cũng như khi kết hợp chúng với nhau, riêng trường hợp mơ hình hóa các hoạt động song song, tương tranh của các thành phần với nhau, các phép toán sẽ được định nghĩa riêng rẽ.
Trong trường hợp ghép song song các giao diện thành phần, giả sử cho hai thành phần phần mềm C1 và C2 với hai chuỗi hành vi tương ứng là ω1 và ω2. Thành phần phần mềm C1 hoạt động song song với thành phần phần mềm C2, thì thể thức của thành phần phần mềm ghép được ký hiệu là π1||π2, và chuỗi thực thi ω1||ω2 biểu diễn tiến trình hoạt động song song của hai thành phần phần mềm này và phải thỏa thể thức π1||π2, ký hiệu bởi ω1||ω2 |= π1||π2. Luận án định nghĩa phép toán ghép song song của hai thể thức theo Định nghĩa 3.3.
Định nghĩa 3.3 (Ghép song song hai thể thức). Cho hai thể thức π =
h(Σ1,E1), . . . ,(Σk,Ek), δi và π0 = h(Σ10,E01), . . . ,(Σ0h,E0h), δ0i. Phép ghép song
song của π với π0 là một thể thức π||, ký hiệu π|| = π||π0, π|| = h(Σi∪Σ0j,Ei∪
E0j), δ||i, i = 1, k, j = 1, h, trong đó δ|| : S
i=1,k,j=1,h(Σi ∪Σ0j) 7→ R≥0, tức là với mọi từ thời gian ω|| =ω||ω0, ω |=π và ω0 |=π0 thì ω|| |=π||.
Trong Ví dụ 3.3, KĐKCB1 và KĐKCB2 thực thi song với nhau. Trong
KĐKCB2 cũng có hai tiến trình thực thi song song.
Trong trường hợp ghép nối tiếp, thành phần phần mềm C2 ghép nối tiếp với thành phần phần mềm C1 thì chuỗi thực thi này, ký hiệu là ω1◦ω2, phải lần lượt tuân thủ thể thức π1 và π2 một cách tương ứng, ký hiệu ω1◦ω2 |=π1◦π2. Phép ghép nối tiếp của hai thể thức được định nghĩa một cách hình thức trong Định nghĩa 3.4 sau đây:
Định nghĩa 3.4 (Ghép nối tiếp hai thể thức). Cho hai thể thức π =
h(Σ1,E1), . . . ,(Σk,Ek), δi và π0 = h(Σ10,E01), . . . ,(Σ0h,E0h), δ0i. Phép ghép nối tiếp
của π0 với π là một thể thức π◦, ký hiệu π◦ =π◦π0, π◦ =h(Σi∪Σ0j,Ei.E0j), δ◦i,
i = 1, k, j = 1, h, trong đóδ◦ : S
i=1,k,j=1,h(Σi∪Σ0j) 7→ R≥0, tức là với mọi từ thời gian ω◦ =ω◦ω0, ω |=π và ω0 |=π0 thì ω◦ |=π◦.
Định nghĩa này cho biết, khi hai thành phần phần mềm ghép nối tiếp với nhau thì thể thức tương tác của chúng cũng được ghép nối tiếp. Các dãy thực thi của thành phần phần mềm ghép phải thỏa thể thức tương tác này. Tức là, chuỗi hành động ω◦ω0 có ω thỏa thể thức π và ω0 thỏa π0, ánh xạ δ◦ cho biết ràng buộc thời gian tĩnh cho mỗi hành động trong bảng chữ cái Σi∪Σ0j.
Ví dụ 3.4. Ví dụ này minh họa phép ghép nối tiếp KĐKCB1 với KĐKT T. KĐKT T gửi một chuỗi yêu cầu lấy thơng tin từ KĐKCB1 sau đó gửi tiếp chuỗi u cầu cho KĐKT B1. Giả sử KĐKT T gửi chuỗi yêu cầu ω1 = (S1,0)(A1,5)(Đ1,11)(N1,16)(F1,22) cho KĐKCB1 sau đó gửi chuỗi yêu cầu ω2 = (SB1,25)(N h1,32)(Gi1,37)(Đâ1,42)(FB1,50)
cho KĐKT B1. Theo Định nghĩa 3.4, π◦ = πs1 ◦ πB1 gồm các thành phần sau Σ◦ = Σs1 ◦ ΣB1 = {S1, A1,Đ1, N1, F1, SB1, N h1, Gi1,Đˆa1, FB1},
E◦ = Es1 ◦ EB1 = ((S1(A1Đ1N1)∗F1)∗).((SB1(N h1Gi1Đˆa1)∗FB1)∗)
và δ◦ : (Σs1 ∪ ΣB1) 7→ R≥0. Chuỗi ω◦ = ω1 ◦ ω2 = (S1,0)(A1,5)(Đ1,11)(N1,16)(F1,22)(SB1,25)(N h1,32)(Gi1,37)(Đâ1,42)(FB1,50).
Khi kiểm tra, chúng ta thấy ω◦ tuẩn thủ thể thức tương tác π◦.
3.4.2 Phép chiếu
Trong q trình tính tốn và biểu diễn các hành vi của thành phần phần mềm, luận án áp dụng một số phép chiếu trên các thành phần trong q trình tính tốn các đối tượng, tập phương thức hoặc trên thể thức. Giả sử cho một chuỗi ζ = abcdeabd và một tập hợp các phần tử Σ = {a, b, c, d}, ζ|Σ
là một xâu nhận được từ xâu ζ bằng cách loại đi những phần tử không thuộc Σ. Ta có ζ|Σ =abcdabd. Tương tự như vậy luận án mở rộng phép chiếu cho các
đối tượng khác như giao diện thành phần, tập các biến, tập các phương thức, và thể thức trong hợp đồng.
Phép chiếu trên thể thức sẽ được hiểu như sau: Giả sử cho thể thức π =
h(Σ1,E1), . . . ,(Σk,Ek), δi, đặt L(Ei) là ngơn ngữ sinh bởi biểu thức chính quy
trên M d ký hiệu là π|M d là một thể thức trong đó với mọi i = 1, k và với mọi
ζij ∈ L(Ei), j = 1, mi thì ζij|M d ∈ L(Ei). Để biểu diễn ngắn gọn và cũng không gây nhập nhằng, luận án có thể viết π|M d = h(Σ1,E1|M d), . . . ,(Σk,Ek|M d), δi. Trong trường hợp tập các thuộc tính của các thành phần phần mềm, luận án cũng dùng cách thức này để biểu diễn cho phép chiếu trên tập thuộc tính như sau: Giả sử có tập hành động M d và tập thuộc tính Fd, khi viếtM d|Fd sẽ được hiểu là tập hành động M d chỉ tác động lên những thuộc tính trong Fd. Từ nay
về sau, luận án sử dụng ký hiệu phép chiếu trong một số trường hợp để biểu diễn các thành phần cho ngắn gọn và tường minh.
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