4 Kỹ thuật rời rạc hoá và duyệt đồ thị đạt được
2.3 Một mô hình của DC
Một hệ thời gian thựcS có thể được xem như một tập bất kỳ các mô hình DC nào đó và được kí hiệu bởi M(S). Một tính chất f của hệ thống cũng xác định một tập các mô hình DC (là các mô hình mà trên nó tính chất f đúng), kí hiệu bởi M(f). Khi đó ta gọi hệ thống là thoả tính chất f nếu và chỉ nếu
M(S) ⊆ M(f), và được kí hiệu bởi M(S) |= f hoặc S |=f.
Từ đây trở đi ta qui ước khi nói đến hệ thời gian thựcS cũng có nghĩa nói đến tập mô hình DC nào đó thể hiện S và được kí hiệu bởi M(S).
Ví dụ minh hoạ
Để minh hoạ việc sử dụng lôgic khoảng, ta nhắc lại yêu cầu an toàn của hệ bếp ga: "Hệ thống được gọi là an toàn nếu tỉ lệ thời gian rò ga không quá một phần hai mươi của đoạn thời gian quan sát bất kỳ không ngắn hơn 1 phút". Giả sử để bảo đảm yêu cầu này, hệ thống được thiết kế với 2 quyết định sau:
• Quyết định 1: việc rò ga được phát hiện và dừng trong vòng 1 giây.
• Quyết định 2: khoảng cách thời gian giữa 2 lần rò ga liên tiếp không được bé hơn 30 giây.
Một chương trình máy tính có thể được thiết kế phù hợp với các quyết định trên và cài vào trong bếp ga. Nó tương tác với bộ cảm biến ngọn lửa để phát hiện khi nào lửa tắt và điều khiển việc đóng, mở van ga đúng theo các quyết định thiết kế này. Vấn đề được đặt ra là cần kiểm chứng "nếu hệ thống được thiết kế theo 2 quyết định trên thì yêu cầu về an toàn được đảm bảo". Để giải quyết bài toán này như đã nhắc đến trong chương 1, có 2 cách:
1. Đặc tả tất cả các quyết định thiết kế và yêu cầu cần kiểm tra bằng các công thức của DC, ví dụ bởi các công thức Des1, Des2 và Req. Sau đó sử dụng hệ thống chứng minh (các tiên đề và luật dẫn) của DC để chứng minh Des1 ∧ Des2 ⇒ Req.
2. Mô tả hệ thống và các quyết định thiết kế bởi một ôtômat thời gian
A, xác định tập các mô hình M(A) biểu diễn ôtômat thời gian này. Yêu cầu cần kiểm tra được đặc tả bởi một công thức Req của DC. Sau đó thiết kế thuật toán để kiểm tra tự động σ |= Req với mọi mô hình
σ = (I,[b, e])∈ M(A) của hệ thống.
Giả thiết bếp ga là một hệ đơn giản chỉ gồm 2 trạng thái Leak (rò ga) và
Nonleak (không rò ga). Trong DC, các quyết định thiết kế và yêu cầu được đặc tả bởi các công thức sau. Với một mô hình (I,[b, e]) bất kỳ ta có:
• Quyết định 1 - Des1: ∀b, e :b ≤b ≤ e ≤ e,
(∀t∈ [b, e]. Leak(t) = 1)⇒(e−b) ≤ 1.
• Quyết định 2 - Des2: ∀b, e :b ≤b ≤ e ≤ e,
Leak(b)∧(∀t. b < t < e∧NonLeak(t))∧Leak(e) ⇒ (e−b)>30. Và yêu cầu an toàn của bếp ga được đặc tả bởi công thức:
Leak ≤ 201
1 = 201 = 201 (e−b) yêu cầu này cần được thoả mãn khi 60≤ từ đó ta có:
• Yêu cầu - Req: 60≤ e−b ⇒ Leak ≤ 1
25
Một chứng minh hình thức đã được đưa ra trong [18, 35] bằng cách sử dụng các tiên đề và luật dẫn của lôgic khoảng, tức kiểm tra tính an toàn theo hướng thứ nhất. Và tương tự, theo hướng thứ hai (tức kiểm chứng mô hình) trong [19] các tác giả đã đưa ra thuật toán kiểm chứng lớp công thức bất biến khoảng tuyến tính (một dạng tổng quát của Req) đối với ôtômat thời gian thực (có thể dùng để biểu diễn hệ thống bếp ga).
2.3.2 Công thức khoảng và bài toán kiểm chứng mô hình
Một công thức viết trong DC được gọi là công thức khoảng, nó đặc tả các tính chất liên quan đến khoảng thời gian xuất hiện của các trạng thái trong một hệ thống. Cho đến hiện nay số lượng các lớp công thức quyết định được đã biết trong DC là còn rất hạn chế ([18, 35, 51]). Dưới đây là hai lớp công thức khoảng cơ bản được quan tâm trong luận án, trong đó tính quyết định được của bất biến khoảng tuyến tính (LDI) cho đến hiện nay là vẫn chưa được biết. Cho A= S, s0,Σ, X, E, I là một ôtômat thời gian. Một tính chất khoảng tuyến tính (linear duration properties - LDP) là một công thức DC có dạng:
D1 : m i=1 ci si ≤ M. ở đây si ∈ S, ci = 0, M là các hằng số thực,
si kí hiệu cho khoảng thời gian xuất hiện của vịtrí si.
Một bất biến khoảng tuyến tính (linear duration invariant - LDI) trên S là một công thức mở rộng của LDP, trong đó độ dài của đoạn quan sát bịhạn chế bởi các cận A, B cho trước. Cụ thể một công thức LDI được định nghĩa:
D2 :A ≤ ≤B ⇒ m i=1 ci si ≤M.
ở đây si, ci, M,
si được xác định như trong công thức LDP. là độ dài của khoảng thời gian quan sát và A, B là các hằng số thực A ≤B (B có thể ∞). Các công thức trên mô tả các lớp tính chất thời khoảng hay gặp trong thực tế. Ví dụ tính an toàn của hệ thống dưới dạng phát biểu "một trạng thái không
an toàn s nào đó sẽ không bao giờ xảy ra trong hệ thống" có thể được biểu diễn bởi một công thức LDI dạng ≥ 0 ⇒ s≤0. Hoặc tính cân bằng tương đối (relative fairness) của 2 tiến trình p1 và p2 cũng được mô tả bởi 2 công
thức LDI: ≥ 0 ⇒ p1− p2 ≤1 và ≥0 ⇒ p2− p1 ≤1. Quay lại hệ bếp ga, chú ý độ dài khoảng thời gian quan sát =e−b =Leak +NonLeak, yêu cầu an toàn của bếp ga cũng được biểu diễn bởi công thức LDI như sau:
Req: 60≤e−b <∞ ⇒ 19
Leak −
NonLeak ≤0.
Lấy σ = (I,[b, e]) là một mô hình DC bất kỳ. Kí hiệu l(σ) = e −b và
θ(σ) = m i=1ci
si, trong đó các
si được tính từ I trên đoạn [b, e].
Định nghĩa 2.4. Cho S là hệ thời gian thực được xác định bởi tập mô hình
M(S) và cho D là một công thức LDP (LDI).
• Mô hình σ= (I,[b, e])∈ M(S) được gọi là thoả công thức D nếu và chỉ nếu θ(σ) ≤M với D là công thức LDP hoặc A≤ l(σ)≤ B ⇒θ(σ)≤ M
với D là công thức LDI. Mô hình σ thoả D được kí hiệu bởi σ |=D,
• Hệ thời gian thực S được gọi là thoả công thức D và được kí hiệu bởi
S |= D nếu và chỉnếu σ|=D, với mọi σ ∈ M(S).
Bài toán kiểm chứng mô hình trong luận án được phát biểu như sau: Cho một ôtômat thời gian A = S, s0,Σ, X, E, I được xác định bởi tập mô hình
M(A), cho công thức LDP (LDI)D trên tập vịtrí S. Hãy tìm một thủ tục để quyết định liệu A |= D, tức là liệu σ |=D với mọi σ ∈ M(A).
Để giải quyết bài toán này, trong chương 3 chúng tôi trình bày một thuật toán kiểm chứng dựa trên kỹ thuật sử dụng qui hoạch tuyến tính, trong đó hệ thống được hạn chế đối với lớp các ôtômat thời gian thực chạy song song. Và trong chương 4, các thuật toán kiểm chứng LDP, LDI được đề xuất với hệ thống là ôtômat thời gian tổng quát dựa trên kỹ thuật tìm đường đi dài nhất và duyệt đồ thịtrọng số được xây dựng từ đồ thịđạt được nguyên.
Chương 3
Kiểm chứng mô hình với kỹ thuật qui hoạch tuyến tính
Nội dung chính của chương này là trình bày về phương pháp đưa bài toán kiểm chứng về một họ các bài toán qui hoạch tuyến tính mà việc giải tìm nghiệm của họ bài toán này cho phép chúng ta kết luận về tính thoả của hệ thống đối với các yêu cầu.
Để dễ hình dung về phương pháp, chúng ta quay lại với định nghĩa 2.2 của ôtômat thời gian, trong đó mỗi dáng điệu ρ xét trên đoạn thời gian [0, T] xác định một dãy các cặp vị trí -thời gian (s0, t0)(s1, t1). . .(sk, tk), với s0 là vịtrí
ban đầu của hệ thống, t0 = 0, tk = T và di = ti+1 −ti biểu thịcho độ dài khoảng thời gian mà hệ thống nằm tại si trước khi chuyển đến si+1, với mọi
i = 0..k−1. Việc kiểm tra một dáng điệu cụ thể như trên của hệ thống có thoả công thức LDI: A ≤l(σ) ≤B ⇒ θ(σ) ≤M hay không là đơn giản vì chúng ta dễ dàng tính được l(σ) = k
i=1di và θ(σ) = m i=1ci
si.
Từ đó có thể xét bài toán kiểm chứng dưới dạng tổng quát hơn, gọi (s1,[a1, b1])(s2,[a2, b2]). . .(sk,[ak, bk])là một dáng điệu tượng trưng mà nó biểu diễn tập các dáng điệu cụ thể (s1, d1)(s2, d2). . .(sk, dk), trong đó ai ≤di ≤bi. Một dáng điệu tượng trưng được gọi là thoả công thức LDI nếu mọi dáng điệu cụ thể của nó thoả công thức. Để kiểm tra tính thoả của một dáng điệu tượng trưng như vậy đối với LDI ta có thể giải bài toán qui hoạch tuyến tính
sau: "Tìm giá trịlớn nhất của hàm mục tiêu m
i=1ci
si với các ràng buộc
A ≤ ≤ B, ai ≤ xi ≤ bi, i = 1..k và so sánh kết quả với M để đạt được câu trả lời cho bài toán kiểm chứng".
Với một hệ thống thời gian thực, nói chung số các biểu diễn dáng điệu tượng trưng của chúng là vô hạn, nói cách khác số bài toán qui hoạch tuyến tính cần giải (nếu thiết lập được) là vô hạn. Do vậy tư tưởng chính của phương pháp là tìm cách chỉ kiểm chứng một số hữu hạn dáng điệu tượng trưng là đủ thay vì phải kiểm tra hết tất cả các dáng điệu của hệ thống. Để tiến hành công việc kiểm chứng đó, tương tự như định lý Kleene biểu diễn ôtômat, ở đây chúng ta cũng sẽ biểu diễn hệ thời gian thực bởi biểu thức chính quy thời gian, từ đó sẽ thiết lập một họ hữu hạn các bài toán qui hoạch tuyến tính và giải chúng.
Tóm lại, có thể tóm tắt nội dung của phương pháp giải bởi các nét chính sau.
1. Biểu diễn hệ thống bằng biểu thức chính quy thời gian,
2. Đưa biểu thức chính quy thời gian bất kỳ về hợp của một số biểu thức chính quy thời gian hữu hạn,
3. Đưa biểu thức chính quy thời gian hữu hạn về hợp của một sốbiểu thức chính quy thời gian đơn giản,
4. Thiết lập tương ứng mỗi biểu thức chính quy thời gian đơn giản với một
bài toán qui hoạch tuyến tính.
5. Dựa trên nghiệm của hệ các bài toán qui hoạch tuyến tính đưa ra câu trả lời cho kết quả của bài toán kiểm chứng.
Trong các đặc trưng trên, điểm 2 là khó khăn nhất khi đưa một biểu diễn bất kỳ về hợp của các biểu thức hữu hạn. Trong chương này của luận án chúng tôi sẽ trình bày cách giải bài toán với một hệ thời gian thực được biểu diễn bởi một biểu thức chính quy là hình ảnh của một hệ gồm nhiều ôtômat thời
29
gian thực chạy song song. Các kết quả của chương này đã được công bố trong [56] và một phần trong [57].
3.1 Biểu thức chính quy thời gian và bài toán
qui hoạch tuyến tính
3.1.1 Biểu thức chính quy thời gian - TRE
Tương tự biểu thức chính quy dùng để biểu diễn các hệ thống phi thời gian, đối với hệ thời gian thực chúng ta cũng sử dụng các biểu thức được gọi là biểu thức chính quy thời gian (Timed Regular Expression - TRE). Mỗi biểu thức chính quy thời gian R và tập trạng thái state(R) của nó được định nghĩa đệ qui như sau.
Định nghĩa 3.1 (TRE).
1. là một TRE và state() = ∅,
2. đối với s ∈ S, với các số thực a, b bất kỳ, 0 ≤ a ≤ b (b có thể ∞),
(s,[a, b]) là một TRE và state((s,[a, b])) ={s},
3. nếuR1, R2 là cácTRE, thì R∗1,R1R2,R1⊕R2 là cácTRE, vàstate(R∗1) =
state(R1); state(R1R2) =state(R1⊕R2) =state(R1)∪state(R2),
4. nếuR1, R2 là các TRE, và state(R1)∩state(R2) = ∅, thì R1⊗R2 là một
TRE và state(R1⊗R2) = state(R1)∪state(R2).
Một TRE có dạng (s,[a, b]) được gọi là một nguyên thuỷ, ý nghĩa trực giác của một nguyên thuỷ (s,[a, b])là độ dài khoảng thời gian xuất hiện của trạng thái s sẽ lớn hơn hoặc bằng a và không vượt quá b. Để đơn giản, một nguyên thuỷ dạng (s,[0,∞)) sẽ được viết là s.
Như thông thường, toán tửthể hiện phép nối (hay hợp), khi đó biểu thức (s1,[a1, b1])(s2,[a2, b2]) biểu thịhệ thống nằm tại s1 một khoảng thời gian bị
thì a1 ≤ d1 ≤b1), sau đó hệ chuyển vịtrí đến s2, tại đây hệ thống có thể nằm
lại một khoảng thời gian bịchặn bởi [a2, b2]. Toán tử ⊕ thể hiện phép hoặc, tức biểu thức (s1,[a1, b1])((s2,[a2, b2]⊕(s3,[a3, b3])) biểu thịhệ thống có thể chuyển từ s1 đến s2 hoặc s3. Toán tử ∗ thể hiện phép lặp, có nghĩa biểu thức (s1,[a1, b1])∗ cho phép hệ thống chuyển vịtrí về lại s1 một số lần bất kỳ. Đặc
biệt đối với hệ hoạt động song song toán tử ⊗ thể hiện phép hợp song song (hay còn gọi là phép nhân), tức biểu thức (s1,[a1, b1])⊗(s2,[a2, b2]) biểu thị thành phần thứ nhất của hệ thống chuyển vịtrí đến s1 đồng thời (cùng một
thời điểm) với thành phần thứ hai chuyển vịtrí đến s2.