Thuật toán xây dựng đồ thịđạt được nguyên

Một phần của tài liệu Một số phương pháp kiểm chứng tính đúng đắn của hệ thời gian thực bằng thuật toán (Trang 74)

4 Kỹ thuật rời rạc hoá và duyệt đồ thị đạt được

4.1 Thuật toán xây dựng đồ thịđạt được nguyên

Hình 4.4 biểu diễn một đồ thịvùng đạt được nguyên của ôtômat được cho trong hình 2.2. Trong hình này, mọi cung đều có cận dưới và cận trên bằng nhau (l =u) nên nhãn của chúng chỉ được gán bởi một số duy nhất (l).

Trong các phần tiếp sau, chúng tôi sẽ trình bày các thuật toán kiểm chứng LDP và LDI dựa trên đồ thịvùng đạt được. Do tính chất rời rạc hoá được của các công thức đã nêu, do vậy từ đây trở đi, chúng ta ngầm định khi nói đến đồ thịvùng sẽ được hiểu là đồ thịvùng nguyên được xây dựng bởi thuật toán nêu trên.

Hình 4.4: Đồ thịvùng đạt được nguyên RG.

4.2 Kiểm chứng công thức LDP

LDP và thuật toán kiểm chứng công thức này lần đầu được đưa ra trong [44] cho lớp mô hình M0(A). Trong phần này chúng tôi mở rộng kết quả trên đến tập mô hình tổng quát M(A). Trước hết chúng tôi chứng minh tính tuơng đuơng giữa 2 lớp mô hình Muv(A) và M(A), và kết hợp với LDP là rời rạc hoá được nên bài toán kiểm chứng M(A) được đưa về kiểm chứng tập

Muv(A)I = Muv(A) ∩ MI(A). Tiếp theo, một đồ thịtrọng số G được xây dựng trên cơ sở đồ thịvùng RG sao cho bài toán kiểm chứng Muv(A)I được đưa về kiểm chứng trên G. Bằng thuật toán Warshall-Floyd chúng tôi có thể giải quyết được bài toán này để kết luận tính thoả của M(A).

4.2.1 Tính tương đương của M(A) Muv(A) đối với LDP

Cho ôtômat thời gian A và công thức LDP D.

Bổ đề 4.6. Nếu tồn tại một mô hình σ ∈ M(A) sao cho σ |=D, thì cũng tồn tại mô hình σ ∈ Muv(A) sao cho σ |= D.

Bổ đề trên phát biểu rằng nếu một mô hình bất kỳ không thoả mãn tính chất LDP thì chúng ta có thể "điều chỉnh" 2 cận quan sát b, e của mô hình một cách thích hợp để nhận được một mô hình mới cũng không thoả LDP sao

67

cho mô hình mới này phản ánh một quan sát xuất phát và kết thúc tại các thời điểm hệ chuyển vịtrí.

Chứng minh. Giả thiết có tồn tại σ = (s, t,[b, e]) ∈ Mbe(A) sao cho σ |= D

trong đó s = s0, s1, . . .; t = t0, t1, . . .tu−1 < b < tu, tv < e < tv+1. Giá trị

của θ(σ) được tính (công thức 4.3, chương 2):

θ(σ) =cu−1(tu−b) + m i=1 ci   v−1 j=u,sj=si (tj+1−tj)  +cv(e−tv)

ở đây cu−1 và cv là các hệ số tương ứng với các vịtrí su−1 và sv trong LDP. Phụ thuộc vào giá trịcủa các hệ số cu−1 và cv âm hoặc dương ta có thể chọn lại các giá trị b, e một cách thích hợp để làm tăng giá trịcủa θ(σ). Cụ thể:

Nếu cu−1 <0, chọn b =tu, ngược lại chọn b =tu−1,

Tương tự, nếu cv <0, chọn e =tv ngược lại chọn e= tv+1.

Khi đó ta nhận được mô hình σ = (s, t,[b, e]) ∈ Muv(A) và dễ thấy

θ(σ) θ(σ). Do đó nếu σ |= D, tức θ(σ) > M thì cũng vậy θ(σ) > M và do đó σ |=D.

Từ bổ đề trên có thể suy ra định lý sau đây.

Định lý 4.2. Cho A là một ôtômat thời gian và D là một công thức LDP. Khi đó: M(A) |=D ⇔ Muv(A) |=D.

Chứng minh. DoMuv(A) ⊆ M(A) nên nếu mô hìnhσ ∈ Muv(A)không thoả

D thì cũng tồn tại mô hình (chính là σ) trong M(A) không thoảD. Ngược lại nếu có mô hình σ ∈ M(A) không thoả D thì theo bổ đề 4.6 cũng có mô hình

σ ∈ Muv(A) không thoả D. Từ đó tính thoả của 2 lớp mô hình đối với D là tương đương.

4.2.2 Đồ thị trọng số G phục vụ kiểm chứng LDP

Cho một ôtômat thời gian A, một đồ thịvùng đạt được RG của A và công thức LDP: D = m i=1 ci si M.

Định nghĩa 4.5. Đồ thị trọng số G= (V,E, ω) là đồ thị vùng đạt được nguyên

RG, trên đó hàm trọng số cung ω : E R được xác định như sau: với mỗi cung e = (v,v) E s∈v, ω(e) biểu thị giá trị lớn nhất của biểu thức cs

s

với s v. Từ đó, nếu cs < 0, lấy ω(e) = cs.l(e), ngược lại nếu cs > 0, lấy

ω(e) = cs.u(e).

Trọng số ω(e) còn được gọi là giá (cost) của cung e. Vì cận trên u(e) có thể là nên giá của cung e có thể là . Nếu giá của một cung là âm (dương, hữu hạn, vô hạn) thì ta cũng gọi e là cung âm (dương, hữu hạn, vô hạn).

Lấy P(G) kí hiệu tập các đường đi của G.

Định nghĩa 4.6. Với p: vuvu+1. . .vv là một đường đi trong G. Khi đó:

θ(p) =

v−1

i=u

ω(vi,vi+1) và được gọi là giá của p.

Một đường đi p được gọi là thoả LDP D (p|=D) nếu và chỉnếu

θ(p) ≤M.

Đồ thị G được gọi là thoả LDP D (G |= D) nếu và chỉnếu p |= D,

∀p ∈ P(G).

Một cách tương tự như đối với các cung e ta cũng gọi các đường điplà âm (dương, hữu hạn, vô hạn) nếu giá của chúng là âm (dương, hữu hạn, vô hạn). Hình 4.5 minh hoạ đồ thịvùng trọng số đối với ôtômat cho trong hình 2.2.

Bổ đề 4.7.

1. Đối với mỗi mô hình σ ∈ Muv(A), tồn tại một đường đi p ∈ P(G) sao cho θ(p) ≥θ(σ).

69

Hình 4.5: Đồ thịtrọng số G phục vụ kiểm chứng LDP.

2. Đối với mỗi đường đi p ∈ P(G) tồn tại một mô hình σ ∈ Muv(A) sao cho θ(σ) = θ(p).

Chứng minh.

1. Lấy σ là một mô hình trong Muv(A), như đã biết σ thể hiện dãy các phép chuyển (su, νu) →δu (su+1, νu+1) δu+1

. . . δ→v−1 (sv, νv), trong đó δi là thời khoảng hệ nằm lại tại si trước khi chuyển đến si+1, ∀i = u..v−1. Từ đó: θ(σ) = v−1 i=u ciδi, (4.5)

với ci là hệ số trong công thức LDP gắn với vịtrí si. Theo bổ đề 4.5 trong G có đường đi p =vuvu+1. . .vv, với các vịtrí của visi

θ(p) =

v−1

i=1

ω(vi,vi+1) (4.6)

Chú ý do cách xây dựng G ta có ω(vi,vi+1) là giá trịlớn nhất trong tất cả các giá trị ciδi, ∀i =u..v−1, vì vậy từ 4.5 và 4.6 ta có θ(σ) ≤θ(p). 2. Ngược lại, đối với mỗi đường đi p= vuvu+1. . .vv, theo bổ đề 4.5 tồn tại

dãy phép chuyển (su, νu) →δu (su+1, νu+1) δu+1

. . . δ→v−1 (sv, νv), trong đó

si viδi = d(vi,vi+1), trong đó d(vi,vi+1) = l(vi,vi+1) nếu ci < 0 và

d(vi,vi+1) = u(vi,vi+1) nếu ci > 0. Lấy σ là mô hình thể hiện dãy phép chuyển trên (tức σ ∈ Muv(A)), từ 4.5 và 4.6 suy ra θ(σ) = θ(p).

Định lý 4.3. Muv(A)|= D ⇔ P(G) |=D.

Kết quả của định lý dễ dàng suy được từ bổ đề 4.7, dựa vào đó, thay vì kiểm chứng Muv(A) ta có thể kiểm chứng đồ thịtrọng số G đối với D.

4.2.3 Thuật toán kiểm chứng LDP

Thuật toán gồm các bước chính như sau:

1. Phát hiện cung vô hạn và loại bỏ các khuyên.

Cung với trọng số hiển nhiên bản thân nó là một đường đi với trọng số lớn hơn M, do vậy nếu G chứa cung loại này thì sẽ không thoả LDP. Một khuyên với trọng số dương nếu được lặp nhiều lần sẽ tạo thành đường đi có trọng số lớn hơn M. Trong trường hợp này có thể kết luận Gkhông thoả LDP. Khuyên với trọng số âm có thể được loại khỏi đồ thị mà không ảnh hưởng đến bài toán, vì một đường đi nếu chứa khuyên này sẽ chỉ làm giảm trọng số.

Vì vậy bước đầu tiên của thuật toán hoặc sẽ sớm khẳng định G không thoả LDP, hoặc trả lại đồ thị G không chứa khuyên (và không có cung vô hạn).

2. Tìm đường đi có trọng số lớn nhất.

Bước này thuật toán tiến hành tìm đường đi từ một đỉnh vstart đến mọi đỉnh còn lại của đồ thịtheo nguyên tắc tăng dần trọng số sau đó cho vstart chạy trên tập đỉnh đồ thịta nhận được đường đi với trọng số lớn nhất giữa mọi cặp đỉnh bất kỳ, so sánh trọng số này với M để kết luận bài toán kiểm chứng. Có thể nhắc lại ngắn gọn nguyên tắc tăng dần trọng số như sau: Giả sử d[v] là trọng số lớn nhất (tại thời điểm hiện tại của vòng lặp) của đường đi từ vstart đến v. Tìm đỉnh u sao cho

d[u] +ω(u,v) > d[v], nếu có, thay đường đã tìm được bằng đường đi mới từvstartđến uvà sau đó từ uđến v. Như vậy ta nhận được đường đi mới

71

với trọng số lớn hơn. Kiểm tra các d[v], nếu có d[v] lớn hơn tổng trọng số của các cung dương ta có thể kết luận đồ thịcó chu trình dương và tương tự như khuyên dương đồ thịlà không thoả LDP. Thuật toán bắt đầu với mọi d[v] được khởi tạo bởi ω(vstart,v) tức đường đi trực tiếp từ vstartđến v, trong đó qui ước ω(u,v) = −∞ nếu không có cung nối giữa u, v, ∀u,v V.

Trong thuật toán Checking-LDP được cho trong bảng 4.2, mảng d[v] chứa trọng số lớn nhất của đường đi từ vstart đến đỉnh v, W là tổng trọng số các cung dương. Hàm find(u,v) trả lại giá trịTRUE và cặp đỉnh u,v nếu tìm thấy u,v sao cho d[u] +ω(u,v) > d[v].

Function Checking-LDP:Boolean; { input: G= (V,E, ω),D}

Begin { output: G |=D hoặc G|=D}

{ Loại khuyên và cung vô hạn }

for (u,u) E do if ω(u,u) 0 then E =E\ {(v,v)} else return G|=D;

for (u,v) E do if ω(u,v) = then return G|=D;

{ Tìm đường đi với giá lớn nhất và phát hiện chu trình dương }

W = tổng giá các cung dương;

for vstartV do begin

for v V do d[v] = ω(vstart,v);

while find(u,v)=TRUE do begin

d[v] = d[u] +ω(u,v);

if d[v] > W then return G|=D;

end;

for v V do if d[v] > M then return G|=D;

end;

return G|=D;

End;

Một phần của tài liệu Một số phương pháp kiểm chứng tính đúng đắn của hệ thời gian thực bằng thuật toán (Trang 74)

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

(129 trang)