4 Kỹ thuật rời rạc hoá và duyệt đồ thị đạt được
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 vi là si và
θ(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 và δ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 vstart∈V 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;
Bảng 4.2: Thuật toán kiểm chứng tính thoả của G đối với LDP
Kết hợp định lý 4.2 và 4.3, thủ tục trên cho phép giải bài toán kiểm chứng LDP đối với ôtômat thời gian. Độ phức tạp của thuật toán phụ thuộc chủ yếu
vào vòng lặp while là một dạng của thuật toán Ford-Bellman (tìm đường đi dài nhất từ một đỉnh vstart đến tất cả các đỉnh còn lại) với độ phức tạp đã được biết tốt là O(n3). Mặt khác vòng lặp while được thực hiện n lần (trong câu lệnh for vstart ∈ V) nên cuối cùng độ phức tạp của thuật toán là O(n4) với n là số đỉnh của đồ thị.
4.3 Kiểm chứng công thức LDI
Trong phần này chúng tôi mở rộng phương pháp kiểm chứng dựa trên ôtômat vùng cho lớp công thức LDP thành lớp công thức LDI. Tuy nhiên, bài toán đã trở nên khó khăn hơn rất nhiều. Một đồ thịvùng có trọng số như dùng để kiểm chứng LDP là không thích hợp với LDI. Điểm khó khăn chủ yếu là ở chỗ bổ đề 4.7 đối với LDP chỉ đúng một phần đối với bài toán LDI. Cụ thể một mô hình σ ∈ Muv(A) là tương ứng với một đường đi p trong Gvới độ dài thời gian của σ bé hơn độ dài của đường đi p(tức l(σ) ≤ l(p)) và θ(σ) ≤θ(p). Trong bài toán LDP do chúng ta không quan tâm đến độ dài của khoảng thời gian quan sát (l(σ)) nên một đồ thịnhư vậy là thích hợp, còn đối với LDI, độ dài thời gian được thể hiện trong phần điều kiện của công thức đã hạn chế khả năng (tính tương ứng với ôtômat) của đồ thịvùng. Nói cách khác đối với LDP, tương ứng với mô hìnhσ |= D, có đường đi p|=D tức θ(p) ≥θ(σ)> M. Điều này chỉ đủ cho phần kết luận của công thức LDI D chứ không thoả mãn phần điều kiện, vì ràng buộcA ≤l(σ) ≤ B không đảm bảo được một bất đẳng thức tương ứng đối với l(p) do l(σ) ≤ l(p), từ đó ta chưa thể kết luận được gì về tính thoả của p đối với LDI. Tương tự, một chu trình dương cũng chưa đủ để kết luận sẽ không thoả LDI vì nếu số vòng lặp của chu trình càng nhiều thì độ dài thời gian càng vượt ra khỏi điều kiện của LDI (A ≤ ≤B).
Để khắc phục tình trạng trên, chúng ta cần có một đồ thịtrọng số khác tương ứng với ôtômat thời gian và hướng đến LDI. Tính rời rạc hoá được của công thức LDI một lần nữa sẽ đóng vai trò quan trọng trong việc xây dựng G ngoài vai trò giảm độ phức tạp như đối với trường hợp LDP.
73
Trong phần tiếp theo dưới đây chúng tôi sẽ xây dựng một đồ thịtrọng số G hướng tới LDI dựa trên đồ thịvùng đạt được RG và đưa ra thuật toán duyệt trên G để kiểm chứng tính thoả của LDI đối với ôtômat A.
4.3.1 Quan hệ giữa lớp mô hình Muv(A) và đồ thị đạt
được RG hướng tới LDI
Cho ôtômat thời gian A với đồ thịđạt được RG và một công thức LDID như đã định nghĩa trong các phần trước.
Định nghĩa 4.7. Cho p = v1v2. . .vm là một đường đi trong RG và dãy các số nguyên d=d1, d2, . . . , dm−1, ở đây di ∈[l(vi,vi+1),u(vi,vi+1)], ∀i = 1..m−1, khi đó ta gọi ℘ = v1d1v2d2. . .vm−1dm−1vm hoặc ℘ = (p, d) là một thể hiện trọng số của p.
Một thể hiện trọng số của RG là một đường đi mà mỗi cung của nó được gán một trọng số là một số nguyên nằm trong khoảng cận (nhãn) của cung.
Định nghĩa 4.8.
• Cho ℘ = (p, d) là một thể hiện trọng số của p. Ta gọi l(℘) = m−1
i=1 di
và θ(℘) = m−1
i=0 cvidi là độ dài và giá của ℘, ở đây cvi là hệ số csi trong công thức D với si là vị trí đặc trưng của vi.
• Một thể hiện trọng số ℘ được gọi là thoả D nếu và chỉnếu
A ≤l(℘)≤ B ⇒θ(℘) ≤M
và được kí hiệu ℘ |=D.
• Đồ thị RG được gọi là thoả D nếu và chỉnếu ℘ |= D với mọi thể hiện trọng số ℘ của RG. Kí hiệu RG |=D cũng được sử dụng cho trường hợp
RG thoả D.
Từ định nghĩa của Muv(A) và các thể hiện trọng số của RG ta có bổ đề quan trọng sau đây.
Bổ đề 4.8. Với bất kỳ mô hình σ ∈ Muv(A), tồn tại một thể hiện trọng số
℘ của RG sao cho l(σ) =l(℘), θ(σ) =θ(℘) và ngược lại.
Chứng minh.
• Lấy σ = (s, t,[tu, tv])∈ Muv(A). Khi đó, s =s0. . . su. . . sv. . . , t =t0. . . tu. . . tv. . . , l(σ) = tv−tu = v−1 i=u (ti+1−ti), θ(σ) = m i=1 csi v−1 j=u sj=si (tj+1−tj).
Như đã biết, một mô hình σ ∈ Muv(A) là tương ứng với dãy phép chuyển (su, νu) δu,au
→ (su+1, νu+1) δu+1→,au+1 . . . δv−1→,av−1 (sv, νv), trong đó
δi =ti+1−ti, với mọi i=u..v−1. Do bổ đề 4.5 chúng ta có: su,[νu]δu,au
→ su+1,[νu+1] δu+1→,au+1 . . . δv−1→,av−1 sv,[νv], tức là, chúng ta có một thể hiện trọng số ℘ = (p, d), ở đâyp= su,[νu] su+1,[νu+1] . . .sv,[νv] và
d=δ1, δ2, . . . , δv. Và từ đó l(℘) =l(σ), θ(℘) = θ(σ).
• Ngược lại, giả thiết rằng ℘ = (p, d) là một thể hiện trọng số của RG, ở đâyp=vuvu+1. . .vv, d là dãy các số nguyên du, du+1. . . , dv, vi =s, πi,
i =u..v. DoRG là đồ thịđạt được củaAnên tồn tại dãy các phép chuyển
ei (i = u..v −1) sao cho su, πu δu,au
→ su+1, πu+1 δu+1→,au+1 . . . δv−1→,av−1 sv, πv. Bởi bổ đề 4.5 chúng ta có thể tìm được mô hình σ ∈ Muv(A), tức là dãy thể hiện đồng hồ νi ∈ πi sao cho (su, νu) δu,au
→ (su+1, νu+1)
δu+1→,au+1 . . . δv−1→,av−1 (sv, νv). Từ đó, l(σ) = l(℘) và θ(σ) = θ(℘).
Từ bổ đề trên, việc kiểm chứngMuv(A) |=D có thể được thay thế bởi bài toán kiểm chứng RG |=D. Cũng tương tự như kiểm chứng LDP, để xây dựng đồ thịtrọng số Gtrước hết chúng ta sẽ loại bỏ các yếu tố vô hạn xảy ra trong đồ thịvùng đạt được RG.
75
Loại trường hợp đồ thị chứa cung vô hạn
Các bổ đề 4.9, 4.10 sau đây chỉ ra rằng các cung vô hạn trong RG (tức là cung với nhãn [l,∞)) hoặc làm cho RG không thoả D hoặc nhãn [l,∞) của nó có thể được thay bằng một nhãn hữu hạn [l,u] (u<∞) mà kết quả của bài toán kiểm chứng RG |=D là không thay đổi.
Bổ đề 4.9. Giả thiết e = (v,v,[l,∞)) là một cung vô hạn của đồ thị vùng RG
và D là một công thức LDI. Khi đó nếu B =∞ và cv >0 thì RG |= D.
Chứng minh. Lấy thể hiện trọng số ℘ = (p, d), với p là đường đi của RG chỉ chứa cung duy nhất e = (v,v,[l,∞)) và d = max{A,(M + 1)/cv}. Từ đó, ta có l(℘) = d và θ(℘) = cvd. Do định nghĩa của d, ta có A ≤ l(℘) < ∞ và
θ(℘) ≥M + 1> M, tức là ℘|=D, do đó RG |=D.
Bổ đề 4.10. Giả thiết e = (v,v,[l,∞)) là một cung vô hạn của RG. Khi đó nếu nhãn [l,∞) được thay như sau:
• nếu B =∞ và cv <0, thay [l,∞) bởi [l,u] với u=max{l, A}.
• nếu B < ∞, thay [l,∞) bởi [l,u] với u=max{l, B}.
thì kết quả của bài toán kiểm chứng RG |=D là không thay đổi.
Chứng minh. Để chứng minh bổ đề, chúng ta chỉ cần chứng minh rằng nếu tồn tại một thể hiện trọng số ℘ của RG sao cho ℘ chứa cung (v,v,[l,∞)) với trọng số d ∈[l,∞) và ℘ |=D, thì chúng ta cũng có thể xây dựng một thể hiện trọng số ℘ sao cho nó chứa cung (v,v,[l,u])với trọng số d ∈[l,u] và ℘ |=D.
Thực vậy, do giả thiết ℘ |=D nên ta có A ≤l(℘) ≤B và θ(℘) > M.
• nếu B <∞, do A ≤l(℘)≤ B nên d≤B, tức l ≤ d≤u (u=B), vì vậy lấy ℘ =℘.
• nếuB =∞ và cv <0thì u=max{l, A} ≥ A. Nếud≤ ulấy℘ =℘. Nếu
Ngoài ra vì θ(℘) =θ(℘)−cv(d−d) với cv <0 và d > d nên
θ(℘) > θ(℘)> M. Từ đó, ℘ |=D. Do vậy bổ đề được chứng minh.
Tóm lại, để kiểm chứngMuv(A) |=Dchúng ta có thể kiểm chứng RG |=D, ở đây hoặc chúng ta phát hiện sớm Muv(A)|= D hoặc do qui ước, từ đây trở đi chúng ta chỉ xét RG là đồ thịkhông chứa cung vô hạn.
4.3.2 Đồ thị trọng số G phục vụ kiểm chứng LDI
Tư tưởng cơ bản trong xây dựng đồ thịtrọng số G là "rời rạc hoá" đồ thịđạt được nguyên RG bằng cách ứng với mỗi cung (vi,vj,[l,u]) sẽ được thay bằng một họ các đường đi nối vi, vj sao cho độ dài (trọng số) của các đường đi lần lượt là các số nguyên l,l+ 1, . . . ,u. Tức cung (vi,vj,[l,u])được cụ thể hoá thành u−l−1 đường đi nốivi,vj thể hiện tính rời rạc hoá được của LDI. Điều này được thực hiện trên giả thiết RG không chứa cung vô hạn. Quá trình xây dựng này luôn đảm bảo tính tương thích giữa ôtômat thời gian Avà các đồ thị
RG, G hướng đến bài toán kiểm chứng LDI. Từ đó chúng ta chứng minh bất kỳ mô hình nguyên nào của A là cũng tương đương với một đường đi trong G với đặc trưng cùng thoả hoặc không thoả LDI. Tức bài toán M(A) |= D với
D là công thức LDI được đưa về bài toán MI(A)|=D và tương đương với bài toán G |= D. Trên cơ sở này một thuật toán duyệt các đường đi của G được đưa ra để trả lời câu hỏi A |=D ?.
Đồ thịtrọng sốG= (V,E, ω) được xây dựng từ RG =(V1,E1) (không chứa cung vô hạn) thông qua các bước sau:
Bước 1. V=V1, E =E1.
Bước 2. Đối với mỗi cung e = (vi,vj,[lij,uij]) tập đỉnhV, cung Evà hàm trọng số ω: V∪E → R của G được mở rộng thành: 1. V= V∪v1 ij,v2 ij, . . . ,vuij−1 ij và ω(vk ij) = cvi, ∀k = 0..uij −1 (qui ước kí
77 hiệu v0 ij cho vi và vuij ij cho vj), 2. E=E\ {e}, 3. E=E∪(vk ij,vk+1 ij ) | k = 0..uij −1, và ω(vk ij,vk+1 ij ) = 1,∀k = 0..uij−1, 4. E=E∪(vk ij,vj) | k =lij..uij −1, và ω(vk ij,vj) = 0,∀k =lij..uij −1. Chú ý trường hợp lij < uij đồ thịsẽ có 2 cung từ vuij−1 ij đến vj, một cung có trọng số 1 và cung còn lại có trọng số 0 (xem hình 4.6). Để đảm bảo G là đồ thịđơn ta sẽ "chia đôi" cung trọng số 0 thành 2 cung bằng cách thêm đỉnh vuij
ij và cung này được thay bởi 2 cung (vuij−1
ij ,vuij
ij ) và (vuij
ij ,vj). Để đơn giản trong trình bày chúng tôi sẽ không nhắc lại đỉnh này trong các ví dụ và hình vẽ, tuy nhiên nó sẽ được cụ thể hoá trong cài đặt (phụ lục A).
Tóm lại về mặt trực giác, có thể thấy đồ thị G được tạo thành bằng cách chia mỗi cung e = (v,v,[l,u])củaRG thànhu cung nhỏ có độ dài (trọng số) 1, bởi u−1 đỉnh con. Cùng với v, tất cả đỉnh con này được gán cùng một trọng số là hệ số cs trong công thức LDI, với s là vịtrí đại diện của đỉnh v (s ∈ v). Mặt khác, từ đỉnh con thứ l trở đi sẽ có cung nối mỗi đỉnh con này tới đỉnh cuối v của e với độ dài bằng 0. Cấu trúc này cho thấy từ đỉnh đầu v có thể đi đến đỉnh cuối v của e bằng các đường đi trong G với độ dài lần lượt là các số nguyên nằm giữa l và u. Từ đó, mỗi cung e với nhãn [l,u] trong RG được "rời rạc hoá" thành một họ các đường đi có độ dài nguyên lần lượt từ l đến u trong G. Để thuận tiện trong trình bày ta qui ước gọi các đỉnh mút v, v của
cung e = (v,v) trong RG là các đỉnh "mẹ" và các đỉnh chia cung e được gọi là đỉnh "con". Ngoài ra mọi đường đi chỉ đi qua các đỉnh con của cung e cũng được gọi là đường đi con thuộc cung e.
Hình 4.6 là một minh hoạ cho việc xây dựngG từ một đồ thị RG đơn giản