Chương 6 Kết luận
2.4 Minh họa máy bán hàng bằng ôtômát hữu hạn
Trong ơtơmát ở Hình 2.4, S0 là trạng thái sẵn sàng của máy bán hàng và cũng là trạng thái kết thúc của một giao dịch. Khi khách hàng nạp tiền, máy sẽ kiểm tra mệnh giá và cho phép khách hàng chọn loại đồ uống. Nếu một loại đồ uống được chọn máy sẽ chuyển sang trạng thái sẵn sàng trả hàng tương ứng với một trong ba trạng tháiS1, S2, S3. Khi trả hàng xong máy lại quay về trạng thái chờ cho một giao dịch tiếp theo. Do đó, các hành động của máy được lặp đi lặp lại cho đến khi máy bị dừng. Vậy, một dãy các hành động của máy được biểu diễn bằng một từ, ký hiệu bằng σ. Ví dụ một chuỗi hành động của máy
bán hàng
σ =(Coin Coca Coca Orange Orange Coin Coca Coca).
Trường hợp thứ 2: Khi xét đến chất lượng các dịch vụ, yếu tố thời gian là một trong những tiêu chí hàng đầu để đánh giá. Một câu hỏi đặt ra là mất bao nhiêu thời gian thì một giao dịch được hồn thành? Nếu khách hàng phải đợi một khoảng thời gian thì liệu khách hàng có biết được lý do máy trả hàng chậm hay máy đã bị treo? Từ những lý do này, việc cần thiết phải đặc tả ràng buộc thời gian cho các hành động của các hệ thống. Để đơn giản, chúng ta coi mỗi hành động của máy tiêu thụ thời gian 5 giây. Giả sử, khách hàng tùy ý trong việc nạp tiền và lựa chọn đồ uống. Chúng ta có thể minh họa một chuỗi hành động được gắn nhãn thời gian bằng từ ω sau:
ω = (Coin, 0)(Coca, 7)(Coca, 12)(Orange, 18)(Orange, 24) (Coffee, 35)(Coffee, 45).
Như vậy, một chuỗi hành động của máy có thể được biểu diễn bằng một từ thời gian ω, trong đó mỗi hành động của hệ thống được gán nhãn thời gian
là thời điểm hành động đó xảy ra. Đặt τ biểu diễn thời gian xảy ra hành động. Các hành động của máy bán hàng bị ràng buộc về thứ tự thời gian thực hiện trước sau, nghĩa là hành động xảy ra tại thời điểm τi thì phụ thuộc vào hành động tại thời điểm thời điểm τi−1, tức là τi−τi−1 ≥ δi−1, ở đây δi−1 là khoảng thời gian tối thiểu dành cho hành động thứ i−1. Như vậy, khi một hệ thống hoạt động, các hành động của hệ thống phụ thuộc vào các ràng buộc thời gian xảy ra sự kiện, ràng buộc về thời gian thực hiện, ràng buộc về thứ tự các hành động và thời gian để hoàn thành một hành động. Trên thực tế, hoạt động của một hệ thống thời gian thực rất phức tạp và vô hạn.
Để phân tích và mơ hình hóa các hành vi của hệ thống thời gian thực, lý thuyết ơtơmát thời gian do nhóm tác giả Rajeev Alur và David L. Dill đề xuất với đối tượng nghiên cứu là lớp ngôn ngữ ω− ngơn ngữ (ω− language) được
đốn nhận bằng ω− ơtơmát (ω−automata) [5]. Các tác giả này đã xây dựng
lý thuyết ôtômát thời gian bằng cách bổ sung một số thực không âm, ký hiệu
R≥0, được gọi là miền thời gian, tương ứng với từng ký tự trong từ thời gian trên bảng các hành động. Một chuỗi thời gian τ được định nghĩa như sau:
Định nghĩa 2.1 (Chuỗi thời gian [5]). Một chuỗi thời gian τ =τ1τ2. . . là một chuỗi vô hạn các giá trị thời gian τi ∈ R≥0 với τi > 0, thỏa mãn các ràng buộc
sau:
(i) Đơn điệu tăng: τ tăng một cách đơn điệu, tức là τi < τi+1 với mọi i ≥1, và
(ii) Sự tiến triển: Với mỗi t∈R≥0, tồn tại một i ≥1 nào đó sao cho τi > t.
Theo Định nghĩa 2.1, chuỗi thời gian là một dãy số thực tăng vô hạn. Khi
kết hợp chuỗi thời gian với một từσ nào đó chúng ta có một từ thời gianω. Đặt L là tập các vị trí và Σ là tập các hành động. Ta có định nghĩa về từ thời gian như sau:
Định nghĩa 2.2 (Từ thời gian [5]). Một từ thời gian ω= (ai, ti) trên bảng chữ cái Σ, ký hiệu bằng một cặp (σ, τ), trong đó σ =a1a2. . ., i ≥1, là một từ vô hạn
trên bảng chữ cáiΣ và τ =τ1τ2. . . là một chuỗi thời gian, tức là ω ∈(Σ×R≥0)∗. Một ngơn ngữ thời gian trên bảng chữ cái Σ là tập các từ thời gian trên Σ.
Để phân tích và đánh giá chất lượng của hệ thống thời gian thực, các hoạt động của hệ thống cần được mơ hình hóa bằng ơtơmát thời gian. Đặt{ là tập hữu hạn các đồng hồ, ~ là tập các đồng hồ có giá trị được thiết lập bằng 0 khi một hành động nào đó được kích hoạt, ~⊆{. Đặt x là một đồng hồ,x∈ {. Đặt Φ({) là tập các ràng buộc trên tập đồng hồ được biểu diễn bằng tập các quan hệ giữa các đồng hồ với giá trị số tự nhiên N.
Đặt φ là mối quan hệ giữa các đồng hồ với các bộ giá trị của chúng,
φ∈ Φ({), n ∈N, và có ngữ nghĩa như sau:
φ =b x ≤n | x≥n | ¬φ | φ∧φ (2.2.1)
Đặt ν là phép gán giá trị lên các đồng hồ, với mỗi hành động của ơtơmát được kích hoạt thìν sẽ gán lần lượt các đồng hồ trong{một giá trị tại thời điểm kích hoạt. Ký hiệuν0 biểu diễn việc thiết lập giá trị khởi tạo cho tất cả các đồng hồ trong {, [~7→ 0]ν sẽ gán giá trị tất cả các đồng hồ thuộc ~ với giá trị bằng 0, và các đồng hồ còn lại bằng giá trị được gán bởiν tại thời điểm hành động được kích hoạt. Sau đây là định nghĩa về ơtơmát thời gian theo các tác giả Alur và Dill [5].
Định nghĩa 2.3 (Ơtơmát thời gian [5]). Ơtơmát thời gian là một bộ M =b hL,Σ, `0,{, T,Γi, trong các thành phần được mô tả lần lượt sau đây.
(i) L là tập vị trí, (ii) Σ là bảng chữ cái, (iii) `0 là vị trí khởi tạo,
(iv) { là tập các đồng hồ,
(v) T ⊆ L×Σ×Φ({)×2{×L là tập hữu hạn các dịch chuyển. Cạnh e =
h`, a, φ,~, `0i ∈ T biểu diễn một dịch chuyển từ vị trí ` sang vị trí `0, được gán nhãn a; ` và `0 được gọi là vị trí nguồn và vị trí đích của e, và được biểu thị một cách tương ứng là ←−e và −→e; φ là một ràng buộc đồng hồ trên
{ phải thỏa được khi dịch chuyển e được kích hoạt và ~ ⊆ { là tập các đồng hồ được thiết lập lại bởi dịch chuyển e khi nó xảy ra. Tiếp theo, ký hiệu e được làm chỉ số dưới của φ và ~ để chỉ rằng có mối tương quan giữa φ và ~ với e, và
Ngữ nghĩa của ôtômát thời gian tương tự như ω-ôtômát ngoại trừ trường
hợp bổ sung thêm chuỗi thời gian. Hệ thống khởi tạo tại vị trí`0 ∈ Lvà sự dịch chuyển của ơtơmát thời gian có hai hình thức.
(i) Thời gian trôi: h`, νi−→ h`, νd +di với mọi d ∈R≥0.
(ii) Dịch chuyển rời rạc: h`, νi −→ h`e 0, ν0i nếu tồn tại một dịch chuyển e =
h`, a, φ,~, `0i ∈ T sao cho ν |=φ, φ ∈Φ({), và ν0 = [~7→ 0]ν.
Do ơtơmát thời gian đốn nhận từ vô hạn và bị ràng buộc trên tập các đồng hồ với giá trị là các số thực dương, nên trong lý thuyết ôtômát thời gian, các tác giả đã đưa ra khái niệm vùng đồng hồ vàôtômát vùng để biểu diễn hữu hạn ôtômát thời gian. Giả sử τ là một thời điểm xảy ra hành động nào đó,
τ ∈R≥0. Giá trị củaτ là một số thực, gồm hai phần phần nguyên và phần thập phân. Phần thập phân củaτ ký hiệu bởif ract(τ), phần nguyên ký hiệu bởibτc.
Như vậyτ =bτc+f ract(τ), vùng đồng hồ được khái quát bằng Định nghĩa 2.4.
Định nghĩa 2.4 (Vùng đồng hồ [5]). Cho ôtômát thời gian M =
hL,Σ, `0,{, T,Γi, đặt c là số nguyên lớn nhất sao cho x ≤ c hoặc c ≤ x là một công thức con của ràng buộc đồng hồ nào đó trong {. Quan hệ tương đương
được định nghĩa trên tập tất các các phép gán đồng hồ của {, ν ν0 khi và chỉ khi các điều kiện sau đúng:
(i) Với mọi x ∈ {, hoặc bν(x)c và bν0(x)c bằng nhau, hoặc cả bν(x)c và
bν0(x)c cùng lớn hơn cx.
(ii) Với mọi x, y ∈ {, bν(x)c ≤ cx và bν(y)c ≤ cy, f ract(ν(x))≤ f ract(ν(y))
khi và chỉ khi f ract(ν0(x))≤ f ract(ν0(y)).
(iii) Với mọi x ∈ { sao cho ν(x) ≥ cx, f ract(ν(x)) = 0 khi và chỉ khi f ract(ν0(x)) = 0.
Một vùng đồng hồ của M là một lớp tương đương của các phép gán đồng hồ được suy ra từ quan hệ .
Khi các đồng hồ trong ôtômát M được chia thành vùng, tức là biểu diễn các đồng hồ thành các lớp, với số lớp hữu hạn. Đặt Z là một vùng, như vậy sẽ xây dựng được ôtômát với số vùng hữu hạn và được gọi là ôtômát vùng. Lưu ý, ôtômát vùng không phải là ôtômát thời gian.
Định nghĩa 2.5 (Ơtơmát vùng [5]). Cho ôtômát thời gian M =
hL,Σ, `0,{, T,Γi, Một ôtômát vùng của M, ký hiệu bởi P(M) trên bảng chữ cái Σ gồm các thành phần sau.
(i) Các trạng thái của P(M) có dạng h`, Zi, trong đó ` ∈L và Z là một vùng đồng hồ.
(ii) Các trạng thái khởi động có dạng h`0,[ν0]i, trong đó `0 ∈ L và ν0(x) = 0
với mọi x ∈{.
(iii) P(M) có cạnh hh`, Zi,h`0, Z0i, ai khi và chỉ khi tồn tại một cạnh
h`, a, φ,~, `0i ∈ T và một vùng Z00 sao cho (i) Z00 là một phần tử thời gian kế tiếp của Z, (ii) Z00 thỏa φ và (iii) Z0 = [~7→ 0]Z00.
Ơtơmát vùng được sử dụng trong việc biểu diễn hữu hạn ôtômát thời gian. Do đó, chúng ta có thể sử dụng ơtơmát vùng trong bài tốn kiểm chứng các tính chất của hệ thống thời gian thực.
2.2.2 Ơtơmát trọng số
Trong phần này, luận án trình bày các khái niệm và kiến thức cơ bản của ôtômát trọng số [32,33]. Các đại lượng gồm tập các đồng hồ {, phép gán giá trị cho tập đồng hồ ν, v.v. tương tự như được định nghĩa trong Mục 2.2.1. Đặt
R{≥0 là tập tất cả các phép gán bộ giá trị cho tập đồng hồ{, ν ∈ R{≥0. Theo quy ước, ν0 luôn gán giá trị 0 cho tập các đồng hồ trong {. Trong quá trình hoạt động không phải đồng thời tất cả các đồng hồ trong { được thiết lập giá trị 0. Giả sử, ~ ⊆ { là tập con các đồng hồ trong { được thiết lập giá trị về 0, ký hiệu bởi [~ ← 0]ν, các đồng hồ còn lại nhận giá trị do ν gán cho. Mối quan hệ giữa các đồng hồ với các bộ giá trị của chúng gọi là φ và được định nghĩa trong Biểu thức 2.2.1.
Định nghĩa 2.6 (Ơtơmát trọng số [32,33]). Một ôtômát trọng số trên tập hữu hạn đồng hồ { là một bộ M = (L, `0,Σ, T, H, λ,Γ), trong đó
(i) L là tập các vị trí, (ii) `0 là vị trí khởi tạo, (iii) Σ là bảng chữ cái,
(iv) T ⊆L×Σ×Φ({)×2{×L là tập các dịch chuyển,
(v) H : L→ Φ({) là ánh xạ gán các thành phần bất biến lên các vị trí, (vi) λ : L∪T → N gán mỗi vị trí và cạnh một bộ giá trị của chi phí, và (vii) Γ là tập vị trí chấp nhận được.
Ngữ nghĩa của ôtômát này tương đương với ôtômát thời gian khi khơng có hàm gán nhãn λ và H. Một dịch chuyển e = h`, a, φ,~, `0i ∈ T biểu diễn sự dịch chuyển từ vị trí ` sang `0 với nhãn là hành động a, φ là tập ràng buộc đồng hồ trên { và phải được thỏa khi dịch chuyển e được kích hoạt. Thành phần ~ ⊆ { là tập đồng hồ sẽ được thiết lập lại khi e xảy ra. Khi một thành phần phần mềm thực hiện một dịch vụ thì ơtơmát M dịch chuyển từ vị trí `i
thơng qua bước chuyển thứ ei tới vị trí thứ `i+1, hàm gán nhãn λ sẽ gán giá trị trên cả cạnh e và vị trí ` của ơtơmát M. Đặt z là chi phí của một dịch chuyển từ trạng thái h`, νi sang trạng thái h`0, ν0i, ký hiệu bằng h`, νi −→a z h`0, ν0i, bất
cứ khi nào e = h`, a, φ,~, `0i ∈ T được xác định. Giả sử cho một dãy thực thi
% = h`0, ν0i −a1→z1 h`2, ν2i −a2→z2 h`3, ν3i. . . −→an zn h`n, νni của M, n ∈ N. Chi phí cho dãy%được tính bằngcost(%),cost(%) = Σi=1,nzi. Cho một trạng tháih`k, νki,
chi phí nhỏ nhất của h`k, νki, ký hiệu bằngmincost(h`k, νki), là chi phí nhỏ nhất
của dãy thực thi bắt đầu từ h`0, ν0ivà kết thúc h`k, νki, k ≤ n.
Giống như dịch chuyển trong ôtômát thời gian, ôtômát trọng số cũng có hai hình thức dịch chuyển là thời gian trơi trên cùng một vị trí và dịch chuyển rời rạc [32,33]. Như vậy, dịch chuyển trong ôtômát trọng số được khái qt theo hai hình thức sau:
(i) Thời gian trơi: h`, νi−→ h`, νd +di với mọi d ∈R≥0, z =λ(h`, νi).
(ii) Dịch chuyển rời rạc: h`, νi −→ h`e 0, ν0i nếu tồn tại một dịch chuyển e =
h`, a, φ,~, `0i ∈ T sao cho ν |= φ và ν0 = [~ 7→ 0]ν, và λ(h`0, ν0i) =
λ(h`, νi→ h`−e 0, ν0i)
2.2.3 Ơtơmát khoảng
Tính tốn khoảng và ơtơmát khoảng được đề xuất lần đầu bởi Z. Chaochen năm 1994 [34]. Tác giả sử dụng ôtômát khoảng để biểu diễn các ràng buộc thời gian của hệ thống thời gian thực. Ơtơmát khoảng khơng có các biến đồng hồ như ơtơmát thời gian mà thay vào đó là sử dụng hai biến cận trên và cận dưới cho mỗi dịch chuyển [34]. Phần này, luận án trình bày những khái niệm cơ bản của tính tốn khoảng và ơtơmát khoảng để phân tích và đánh giá chi phí thời gian lớn nhất và nhỏ nhất trong các dịch chuyển của giao diện thời gian thực (real-time interface). Việc sử dụng ôtômát khoảng làm cơ sở cho việc đặc tả thành phần phần mềm thời gian thực và làm phong phú thêm cách giải quyết bài toán đặc tả và kiểm chứng hệ thống thời gian thực dựa trên thành phần.
Đặt R≥0 là tập số thực không âm. Đặt τ là thời điểm một dịch vụ nào đó trong giao diện được gọi, τ ∈ R≥0. Đặt T ime là tập tất cả các khoảng trong
R≥0, Time =b {[b, e] | b ∈ R≥0, e ∈R≥0∪ {∞} ∧b ≤ e}. Trong đó, b là thời gian một giao diện thành phần phần mềm chuẩn bị cung cấp dịch vụ và e là thời gian giao diện đó cung cấp dịch vụ ra mơi trường. Nếu môi trường gọi dịch vụ quá sớm hoặc quá muộn, tức là, môi trường gọi dịch vụ tại thời điểm 0 < τ < b
hoặc τ > e thì giao diện đó khơng đáp ứng được u cầu của mơi trường. Đặt
I là một khoảng, ký hiệu bởi I=[b, e]. Vậy, mơi trường chỉ có thể gọi các dịchb vụ của giao diện khi τ xảy ra trong khoảng [b, e], ký hiệu bởi τ ∈ [b, e]. Trong q trình tính tốn, luận án sử dụng các phép toán trên khoảng để biểu diễn sự kết hợp các khoảng thời gian, do đó luận án tóm tắt những phép tốn điển hình được sử dụng trong nghiên cứu và được trình bày sau đây.
• Giao hai khoảng: Cho hai khoảng I1 = [b1, e1] và I2 = [b2, e2], I1,I2 ∈
T ime. Nếu I1 giao với I2 khác rỗng, ký hiệu bởi I1 ∩ I2 , ∅, khi và
chỉ khi tồn tại một τ sao cho τ ∈ I1 và τ ∈ I2. Đặt I = I1 ∩ I2 thì
I = [max(b1, b2),min(e1, e2)] được gọi khoảng giao nhau giữa I1 và I2,
τ ∈ I.
• Khoảng con: Cho I1 = [b1, e1] và I2 = [b2, e2]. Nếu I1 ⊆ I2 ⇔ [b1, e1] ⊆
[b2, e2] tương đương vớib2 ≤b1 ≤ e1 ≤e2. Ta có I1 là khoảng con của I2.
• Tổng hai khoảng liên tiếp: Cho I1 = [b1, e1] và I2 = [b2, e2]. Đặt I là tổng khoảng nối tiếp của I1vớiI2, ký hiệu bởiI = I1.θI2, tức là [b1, e1].θ[b2, e2], thì I = [(b1 +b2),(b1 +e2)], nghĩa là chúng ta dịch I2 đi b1 đơn vị thời gian.
Các phép toán trên khoảng được minh họa trong Hình 2.5. Chúng ta sử
dụng khoảng để đặc tả khoảng thời gian tĩnh ràng buộc trên từng phép gán trên tập biến đầu vào/đầu ra của giao diện thời gian thực. Khi hai giao diện thời gian thực được ghép song song với nhau thì một phép gán bất kỳ trên tập biến đầu vào/đầu ra của giao diện phải thỏa điều kiện ràng buộc đồng thời trên hai khoảng được đặc tả trong hai giao diện. Gọi τ là thời điểm phép gán được thực hiện, để thỏa mãn cả hai ràng buộc thời gian I1 và I2 thì τ ∈ I. Phần (a) của