đại học quốc gia hà nội
trường đại học công nghệ
Phạm Hồng Thái
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
luận án tiến sĩ toán học
Hà Nội - 2005
đại học quốc gia hà nội
trường đại học công nghệ
Phạm Hồng Thái
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
Chuyên ngành : Đảm bảo toán học cho máy tính
và các hệ thống tính toán
Mã số : 1.01.10
luận án tiến sĩ toán học
người hướng dẫn khoa học
1 : TS. Đặng Văn Hưng
2 : PGS. TS. Đinh Mạnh Tuờng
Hà Nội - 2005
Mục lục
Lời cam đoan iv
Lời cảm ơn v
Mục lục vi
Danh mục từ viết tắt vii
Danh mục bảng và thuật toán viii
Danh mục hình vẽ ix
Tóm tắt nội dung x
1 Kiểm chứng mô hình và hệ thời gian thực 1
1.1 Đặctảvàkiểmtrahệthống 2
1.2 Kiểm chứng mô hình 5
1.3 Mụcđíchvàkếtquảcủaluậnán 11
2 Đặc tả hệ thống và tính chất 14
2.1 Mô hình thời gian 14
2.1.1 Thể hiện đồng hồ và ràng buộc thời gian 14
vi
2.1.2 Kỹthuậtphânvùngđồnghồ 15
2.2 Ôtômatthờigian 17
2.2.1 Cúphápvàngữnghĩa 17
2.2.2 Đường chạy và dáng điệu của ôtômat thời gian 19
2.2.3 Hợpsongsongcủacácôtômatthờigian 20
2.3 Lôgickhoảng 21
2.3.1 Mô hình trong Lôgic khoảng 22
2.3.2 Công thức khoảng và bài toán kiểm chứng mô hình . . . 25
3 Kiểm chứng mô hình với kỹ thuật qui hoạch tuyến tính 27
3.1 Biểu thức chính quy thời gian và bài toán qui hoạch tuyến tính 29
3.1.1 Biểu thức chính quy thời gian - TRE 29
3.1.2 Biểu thức TRE hữuhạn 34
3.1.3 Xây dựng bài toán qui hoạch tuyến tính 36
3.2 Chuyển TRE về hợp của các TRE hữuhạn 38
3.2.1 Cận thời gian của biểu thức TRE 39
3.2.2 Khử phép toán ∗ trong biểu thức TRE 41
3.2.3 Kiểm chứng tính an toàn của hệ chắn tàu 43
3.2.4 Kiểm tra tính rỗng và khử ∗ xuất hiện dưới ⊗ 45
3.3 Các công trình liên quan và nhận xét về phương pháp 46
3.3.1 Các công trình liên quan 46
3.3.2 Vài nhận xét về phương pháp 47
4 Kỹ thuật rời rạc hoá và duyệt đồ thị đạt được 50
4.1 Tính rời rạc hoá được và đồ thị vùng nguyên 52
4.1.1 Tập mô hình DC của ôtômat thời gian 53
4.1.2 Khái niệm -nguyênhoávàmộtvàitínhchất 56
4.1.3 Tính rời rạc hoá được của các công thức LDP, LDI . . . 60
4.1.4 Đồthịvùngđạtđượcnguyên 61
4.2 Kiểm chứng công thức LDP 66
4.2.1 Tính tương đương của M(A) và M
uv
(A) đối với LDP . 66
4.2.2 Đồ thị trọng số G phục vụ kiểm chứng LDP 68
4.2.3 Thuật toán kiểm chứng LDP 70
4.3 Kiểm chứng công thức LDI 72
4.3.1 Quan hệ giữa lớp mô hình M
uv
(A) và đồ thị đạt được
RG hướngtớiLDI 73
4.3.2 Đồ thị trọng số G phục vụ kiểm chứng LDI 76
4.3.3 Thuật toán kiểm chứng LDI 81
4.3.4 Kiểm chứng tính an toàn của hệ chắn tàu bằng rời rạc hoá 84
Kết luận 85
Danh mục công trình của tác giả 88
Tài liệu tham khảo 89
Phụ lục 95
Phụ lục A. Bộ kiểm chứng mô hình LDP, LDI 95
Phụ lục B. Công thức và kí hiệu 118
Phụ lục C. Thuật ngữ Anh - Việt 119
Danh mục từ viết tắt
BDD : Binary Decision Diagram (Sơ đồ biểu diễn nhị phân)
CTL : Computational Tree Logic (Lôgic cây tính toán)
DC : Duration Calculus (Lôgic khoảng)
FTA : Finitary Timed Automaton (Ôtômat thời gian hữu hạn)
LDI : Linear Duration Invariant (Bất biến khoảng tuyến tính)
LDP : Linear Duration Property (Tính chất khoảng tuyến tính)
MC : Model Checking (Kiểm chứng mô hình)
PLTL : Propositional Linear Temporal Logic
RTA : Real-Time Automaton (Ôtômat thời gian thực)
RTS : Real-time System (Hệ thời gian thực)
SMV : Symbolic Model Verifier (Bộ kiểm chứng mô hình kí hiệu)
TA : Timed Automaton (Ôtômat thời gian)
TCTL : Timed Computational Tree Logic (Lôgic cây tính toán thời gian)
TDP : Temporal Duration Property (Tính chất khoảng thời gian tuần tự)
TL : Temporal Logic (Lôgic thời gian tuần tự)
TRE : Timed Regular Expression (Biểu thức chính quy thời gian)
ix
Danh mục bảng và thuật toán
4.1 Thuật toán xây dựng đồ thị đạt được nguyên. 65
4.2 Thuật toán kiểm chứng tính thoả của G đốivớiLDP 71
4.3 Thuật toán kiểm chứng LDI với đỉnh xuất phát cố định 83
4.4 Thuật toán kiểm chứng LDI tổng quát 83
A.1 ĐồthịvùngđạtđượcnguyêncủaDATA1 104
A.2 Đồ thị trọng số phục vụ kiểm chứng LDP với DATA1 104
A.3 Bảng kết quả kiểm chứng LDP với DATA1 105
A.4 Đồ thị trọng số phục vụ kiểm chứng LDI với DATA1 106
A.5 Bảng kết quả kiểm chứng LDI với DATA1 107
A.6 Đồ thị vùng đạt được nguyên của hệ chắn tàu với a = b = c =1 108
A.7 Đồ thị trọng số phục vụ kiểm chứng hệ chắn tàu với a = b = c =1109
A.8 Bảng kết quả kiểm chứng hệ chắn tàu 110
x
Danh mục hình vẽ
1.1 Sơ đồ bộ kiểm chứng mô hình. 4
2.1 Các vùng với cận đồng hồ c
x
=2, c
y
=1 17
2.2 Ôtômatthờigian 19
2.3 Một mô hình của DC. 23
3.1 Hệchắntàu 30
3.2 Một dáng điệu của hệ chắn tàu. 32
4.1 Mô hình DC của ôtômat thời gian. 54
4.2 Các lớp mô hình của ôtômat thời gian A 55
4.3 Một trường hợp nguyên hoá mô hình σ với b
= b và e
= e . 60
4.4 Đồ thị vùng đạt được nguyên RG 66
4.5 Đồ thị trọng số G phục vụ kiểm chứng LDP. 69
4.6 Đồ thị trọng số G từ đồ thị vùng đạt được RG. 78
4.7 Đường đi trong đồ thị trọng số G 79
4.8 Ôtômatđạtđượccủahệchắntàu. 84
xi
Tóm tắt nội dung
Với những thành công của đặc tả hình thức, kiểm chứng mô hình thời gian
thực đã đóng góp nhiều phương pháp, thuật toán, cấu trúc dữ liệu và trên cơ
sở đó cung cấp nhiều bộ công cụ kiểm chứng mô hình cho phép kiểm tra tự
động tính đúng đắn của hệ thống. Tuy nhiên cho đến hiện nay, các thuật toán
phục vụ kiểm chứng tính chất thời khoảng vẫn còn rời rạc và hạn chế, chủ yếu
chỉ đối với các lớp con của ôtômat thời gian và các công thức khoảng được xét
với ngữ nghĩa thu hẹp.
Từ đó, luận án này đặt vấn đề quan sát và thiết kế các thuật toán kiểm
chứng với hệ thống mở rộng hơn và các tính chất thời khoảng trong ngữ nghĩa
tổng quát của nó. Đó là lớp hệ thống biểu diễn được bởi ôtômat thời gian và
các tính chất khoảng được biểu diễn bởi các công thức trong lôgic khoảng như
công thức khoảng tuyến tính (LDP), bất biến khoảng tuyến tính (LDI).
Sau phần tóm tắt quá trình phát triển và các thành tựu của lĩnh vực kiểm
chứng mô hình, luận án trình bày về phương pháp sử dụng qui hoạch tuyến
tính để phục vụ kiểm chứng, trong đó hệ thống được biểu diễn bởi biểu thức
chính quy theo thời gian (một dạng thể hiện khác của ôtômat thời gian) và
đưa ra thuật toán kiểm chứng dựa trên lớp các biểu thức chính quy mở rộng.
Luận án cũng chỉ ra các ưu điểm và mặt hạn chế của phương pháp qui hoạch
tuyến tính, từ đó đề nghị sử dụng phương pháp duyệt đồ thị vùng đạt được,
bằng cách khôi phục lại khoảng cách thời gian (cực tiểu và cực đại) của các
phép chuyển. Trên cơ sở đồ thị đạt được, và tính rời rạc hoá được của các công
thức, các đồ thị trọng số sẽ được xây dựng và thuật toán duyệt được tiến hành
trên các đồ thị này. Phương pháp này tỏ ra hữu hiệu khi tiến hành kiểm chứng
LDP, và cung cấp câu trả lời về tính quyết định được của tính chất LDI.
xii
Chương 1
Kiểm chứng mô hình và hệ thời
gian thực
Mục đích chính của các phương pháp hình thức là giúp tạo ra khả năng cho
phép xây dựng và phát triển các hệ thống hoạt động được một cách đúng đắn,
đáng tin cậy. Các hệ thống (phần cứng và phần mềm) ngày càng phát triển
rộng rãi, do vậy bài toán kiểm tra tính đúng đắn của chúng cũng ngày càng
phức tạp. Một số trường hợp xảy ra trong thực tế
1
đã chứng tỏ rằng chỉ một
lỗi nhỏ cũng có thể phá huỷ toàn bộ hệ thống và gây ra những hậu quả đáng
tiếc về an toàn, hao tốn nhiều thời gian, tiền của và công sức khắc phục. Tuy
nhiên, cách đây vài thập kỷ, việc kiểm tra tính đúng đắn của một hệ thống
là hết sức khó khăn, đặc biệt là đối với các hệ thống thời gian thực mà việc
kiểm tra chúng (một cách chặt chẽ) chỉ mới được phát triển trong khoảng hơn
10 năm trở lại đây. Phần lớn các khó khăn trong kiểm tra đến từ việc chưa
có một phương pháp nhất quán để mô tả hệ thống, dẫn tới cách hiểu về hệ
thống một cách chung chung, mơ hồ, không tạo được nền tảng để xây dựng
những kỹ thuật kiểm tra thống nhất và từ đó dẫn tới cách thức kiểm tra không
hữu hiệu, thiếu tính thuyết phục. Do vậy gần đây, các phương pháp hình thức
đã ra đời và được phát triển ngày càng mạnh mẽ, đạt được nhiều thành tựu.
Trên nền tảng đó các ngôn ngữ đặc tả hệ thống cũng như các phương pháp,
1
Ví dụ nguyên nhân vụ nổ tên lửa Arian 5 vào ngày 4 tháng 6 năm 1996 đã được xác
định do một lỗi nhỏ của phần mềm tính toán chuyển động của tên lửa ([24]).
1
2
kỹ thuật kiểm tra đã được xây dựng và ngày càng chứng minh tính hiệu quả
của chúng. Đặc biệt, một trong các phương pháp kiểm tra như vậy được gọi
là kiểm chứng mô hình đã sản sinh ra các bộ kiểm chứng cho phép tiến hành
kiểm tra hệ thống một cách hoàn toàn tự động. Từ đó, các bộ kiểm chứng
ngày càng đóng vai trò quan trọng, được sử dụng rộng rãi và phục vụ đắc lực
cho công việc kiểm tra, vốn nhiều khó khăn, đòi hỏi nhiều thời gian trở nên
ngày càng dễ dàng, nhanh, chính xác và hiệu quả hơn.
Trong chương này - thay cho lời nói đầu - chúng tôi tóm tắt một cách ngắn
gọn các kết quả, phương pháp đã có cũng như một số hạn chế còn tồn tại
trong lĩnh vực kiểm chứng mô hình của các hệ thời gian thực, từ đó đưa đến
cái nhìn ban đầu về mục đích và những lý giải về tính cần thiết của đề tài.
Phần cuối cùng của chương chúng tôi trình bày về nội dung chính của luận
án, và các kết quả luận án đã đạt được trong việc giải quyết mục tiêu đề ra.
1.1 Đặc tả và kiểm tra hệ thống
Để kiểm tra tính đúng đắn của hệ thống, trước hết hệ thống phải được đặc tả
một cách rõ ràng và nhất quán. Đặc tả là quá trình mô tả hệ thống và các tính
chất mong muốn của nó bằng một ngôn ngữ cụ thể. Tính chất của hệ thống
có thể bao gồm nhiều loại như: dáng điệu chức năng, dáng điệu thời gian, đặc
trưng hoạt động, hoặc cấu trúc nội tại. Một ngôn ngữ đặc tả cần đủ khả năng
để mô tả được hệ thống và các loại tính chất của nó. Thông thường, đặc tả
hình thức dùng một ngôn ngữ với cú pháp và ngữ nghĩa xác định nên mang
tính ổn định và nhất quán cao. Ví dụ một vài ngôn ngữ đặc tả như Z, VDM,
RAISE sử dụng các cấu trúc toán học như tập hợp, quan hệ, hàm và hiện
nay vẫn đang được sử dụng khá thành công trong nhiều lĩnh vực ([60, 31]).
Các hệ thống cũng có thể được trừu tượng hoá bằng một số công cụ biểu diễn
khác như ôtômat, biểu thức chính quy, lưới Petri, đại số tiến trình hay bằng
các hệ lôgic. Trên nền tảng này nhiều công cụ mạnh, phụ thuộc chặt chẽ vào
ngôn ngữ đặc tả và kỹ thuật kiểm tra đã ra đời như hệ chứng minh định lý
3
(theorem prover) hay các bộ kiểm chứng mô hình (model checker).
Theo truyền thống, kiểm tra là chứng minh về mặt toán học chương trình
hay hệ thống thoả mãn yêu cầu đặt ra, nói cách khác hệ thống phải làm việc
đúng như phân tích và thiết kế trong phần đặc tả. Trong thập kỷ 70 đã có
nhiều công trình trình bày các kỹ thuật chứng minh được đưa ra bởi Dijkstra,
Floyd, Gries, Hoare, Owicki, Manna, Plueni và nhiều tác giả khác ([23]). Đây
thường là một công việc nặng nhọc, đòi hỏi bộ phận kiểm tra phải nắm vững
kiến thức toán học, phải tiến hành các thao tác suy luận, chứng minh - một
công việc đôi khi còn vất vả hơn cả viết chương trình. Do vậy, đến thập kỷ 80
một hướng tiếp cận khác đã được đề nghị đó là kiểm chứng mô hình, nó cho
phép các kỹ sư thiết kế, các nhóm lập trình có thể sử dụng máy tính và các
phần mềm được lập trình sẵn để kiểm tra tự động sản phẩm thiết kế của mình
trước khi sản xuất. Nó không yêu cầu chứng minh tính đúng đắn cho một lớp
bài toán tổng quát mà chỉ cần kiểm chứng trên bài toán cụ thể, xem với mọi
dáng điệu, mọi trường hợp có thể có của hệ thống liệu có thoả mãn với yêu
cầu đã đề ra. Từ đó, một đặc trưng dễ thấy của kiểm chứng mô hình các hệ
thống hữu hạn trạng thái chính là duyệt yêu cầu trên không gian trạng thái
của hệ thống và về mặt nguyên tắc bài toán coi như đã được giải quyết.
Có thể phân biệt 2 hướng tiếp cận nêu trên bằng ví dụ nhỏ là bài toán
SAT, tức kiểm tra tính thoả của một công thức f trong lôgic mệnh đề. Bằng
phương pháp chứng minh định lý từ hệ tiên đề của lôgic mệnh đề và các luật
dẫn ta có thể dẫn được về ¬f hoặc không để kết luận tính thoả của f.Cách
giải quyết thứ hai là dùng kiểm chứng mô hình liệt kê từng bộ giá trị của các
biến mệnh đề sơ cấp có trong f, qua mỗi bộ giá trị được liệt kê này tính đúng,
sai của f sẽ được kiểm chứng để quyết định tính thoả của công thức.
Qua ví dụ nêu trên có thể thấy được ưu điểm của phương pháp kiểm chứng
mô hình so với phương pháp chứng minh định lý. Thứ nhất, một phương pháp
kiểm chứng như vậy có thể được thể hiện thành các bộ kiểm chứng mô hình
với các đầu vào là hệ thống S, tính chất P và đầu ra là câu trả lời "đúng"
4
hoặc "sai" (hình 1.1), từ đó việc kiểm tra được tự động hoá hoàn toàn. Thứ
hai, một bộ kiểm chứng mô hình là có khả năng chỉ ra bộ giá trị thoả mãn
công thức f, điều này ở một mặt khác cũng đồng nghĩa kiểm chứng mô hình
có thể chỉ ra nơi xảy ra lỗi của hệ thống. Vì vậy, ngoài câu trả lời đúng/sai
mà bộ kiểm chứng mô hình cung cấp, chúng ta cũng thường dùng chúng như
công cụ phát hiện, phục vụ cho gỡ lỗi trong quá trình thiết kế.
Hình 1.1: Sơ đồ bộ kiểm chứng mô hình.
Thách thức về mặt kỹ thuật trong kiểm chứng mô hình chính là thuật toán
và cấu trúc dữ liệu để giải quyết bài toán bùng nổ không gian trạng thái, tức
số lượng trạng thái thường tăng theo hàm mũ đối với số thành phần hợp thành
của hệ thống. Để khắc phục, một số kỹ thuật đã ra đời như on-the-fly
2
, cùng
với cấu trúc dữ liệu hợp lý, đã tỏ ra rất hiệu quả đối với các hệ hữu hạn trạng
thái và hiện nay nhiều bộ kiểm chứng đã cho phép chúng ta điều khiển được
các hệ thống với không gian trạng thái rất lớn
Tóm lại, trong khoảng hơn hai thập kỷ trở lại đây các phương pháp hình
thức đã đưa lại nhiều thành tựu trong đặc tả và kiểm tra. Nó làm tăng mạnh
mẽ kiến thức của chúng ta về hệ thống, và quan trọng hơn, làm bộc lộ tính
nhập nhằng, mâu thuẫn, không nhất quán trong các đặc tả dài dòng bằng
ngôn ngữ tự nhiên. Nó cho phép chúng ta đặc tả và kiểm tra các hệ thống
phần cứng và phần mềm phức tạp mà mới chỉ hơn mười năm về trước thông
thường để hiểu và kiểm tra được những hệ thống như vậy thường phải dựa
trên kinh nghiệm cá nhân của các chuyên gia.
2
kỹ thuật cho phép tiết kiệm thời gian và bộ nhớ bằng cách tiến hành kiểm chứng đồng
thời với quá trình sinh trạng thái.
5
1.2 Kiểm chứng mô hình
Vài nét đặc trưng về kiểm chứng mô hình
Năm 1981, E.M. Clarke và E.A. Emerson [22] lần đầu tiên đưa ra thuật ngữ
Kiểm chứng mô hình (Model Checking), và định nghĩa như sau:
"Kiểm chứng mô hình là một kỹ thuật tự động mà cho trước một mô hình
trạng thái hữu hạn và một tính chất logic, kỹ thuật sẽ cho phép kiểm tra một
cách hệ thống một trạng thái (hoặc mô hình) liệu có thoả mãn tính chất đó".
Bài toán kiểm chứng tổng quát có thể được viết dưới dạng:
S |= P ?
trong đó S là mô hình hệ thống, P là một tính chất và |= kí hiệu cho vị từ
"thoả được". Câu hỏi đặt ra là "Liệu hệ thống S có thoả mãn tính chất P ?"
Thông thường hệ thống được thể hiện bởi ôtômat thời gian và tính chất
được biểu diễn bởi các công thức trong lôgic thời gian tuần tự (temporal logic).
3
Có vài hướng tiếp cận để giải bài toán. Hướng tiếp cận thứ nhất được
nghiên cứu bởi Clarke và Emerson ([22]), và cũng bởi Queille và Sifakis ([50])
một cách độc lập. Theo hướng tiếp cận này, một thủ tục tìm kiếm trên không
gian trạng thái của hệ thống sẽ được sử dụng để kiểm tra liệu bất kỳ dãy
chuyển trạng thái nào của hệ cũng thoả mãn tính chất. Theo hướng này nhiều
công trình khác đã được thực hiện trên các lôgic mở rộng của lôgic thời gian
tuần tự như Computational Tree Logic (CTL), Propositional Linear Temporal
Logic (PLTL) ([24]).
Hướng tiếp cận thứ hai là dựa vào bài toán kiểm tra tính rỗng của ngôn
ngữ ([7, 46]). Theo hướng tiếp cận này, tính chất P cũng được thể hiện bởi
một ôtômat. Nếu ngôn ngữ L(S) được sinh bởi S là chứa trong ngôn ngữ L(P)
3
chúng tôi tạm dịch từ "temporal" là "thời gian tuần tự", cũng như "real-time" là "thời
gian thực", vì khái niệm "temporal" chỉ cung cấp ý nghĩa thứ tự (về mặt thời gian) xảy ra
của các trạng thái thay vì thời điểm chính xác xảy ra các trạng thái đó như trong khái niệm
"real-time".
6
được sinh bởi P thì S thoả P. Mặt khác, do L(S) ⊆L(P) ⇔L(S ׬P)=∅
nên có thể chuyển bài toán trên về bài toán kiểm tra tính rỗng của ngôn ngữ
và nó đã được giải quyết trong [42] đối với ôtômat không thời gian.
Một kỹ thuật quan trọng trong kiểm chứng mô hình là kỹ thuật biểu diễn
bằng kí hiệu (symbolic model checking), với đặc trưng chính là biểu diễn mọi
thành phần của bài toán (trạng thái, phép chuyển, tính chất) thông qua các
kí hiệu đại diện. Kỹ thuật này cho phép sử dụng các sơ đồ biểu diễn nhị phân
(Binary Decision Diagram - BDD) với dữ liệu được cài đặt tốn rất ít bộ nhớ
và các phép toán trên nó được thực hiện một cách rất hữu hiệu. Trên cơ sở
này năm 1992 Clarke và McMillan đã xây dựng bộ kiểm chứng mô hình SMV
(Symbolic Model Verifier) cho phép kiểm chứng các hệ thống với số lượng trạng
thái lên đến 10
20
trạng thái ([48]).
Một số bộ kiểm chứng mô hình ra đời trong giai đoạn đầu điển hình như
SMV, SPIN ([48, 34]) với các tính chất được đặc tả bởi lôgic thời gian tuần tự
được chúng tôi tạm gọi là kiểm chứng mô hình cổ điển để phân biệt với hướng
kiểm chứng mô hình thời gian thực sau này.
Kiểm chứng mô hình với hệ thời gian thực
Hệ thời gian thực là các hệ thống mà tính đúng đắn của nó liên quan chặt chẽ
đến các ràng buộc về mặt thời gian như thời gian thực hiện, thời gian hưởng
ứng, chu kỳ tác vụ, thời gian trễ trong tương tác, truyền thông v v Kiểm
chứng mô hình theo truyền thống cổ điển thường không mô tả thời gian một
cách hiển trong hệ thống nên nó không thích hợp để phân tích các hệ thời
gian thực mà tính đúng đắn phụ thuộc vào độ lớn của các thời gian trễ khác
nhau. Từ đó, đầu thập kỷ 90 một số công cụ biểu diễn các hệ thời gian thực
lần lượt ra đời mà nền móng cơ bản nhất là công cụ ôtômat thời gian [7], và
các temporal logic cũng được mở rộng thành các lôgic thời gian thực như lôgic
cây tính toán theo thời gian (Timed Computational Tree Logic - TCTL) [5],
lôgic khoảng (Duration Calculus - DC) [18]
7
Do thời gian được lấy trên tập hợp trù mật R
+
nên bài toán kiểm chứng
mô hình thời gian thực vấp phải tình trạng bùng nổ không gian trạng thái mới
đó là tham số thời gian. Một trạng thái của hệ thời gian thực không chỉ là các
trạng thái "vật lý" của hệ thống mà còn gắn với các giá trị thời gian, tức mỗi
trạng thái vật lý sẽ tạo ra một lực lượng không đếm được các trạng thái khi
gắn liền với thời điểm xảy ra trạng thái vật lý đó. Mặt khác, các tính chất cần
kiểm chứng cũng trở nên phức tạp hơn, ví dụ để kiểm chứng tính chất "trạng
thái q phải luôn luôn xảy ra kề ngay sau trạng thái p"làdễdànghơnkiểm
chứng tính chất thời gian thực như "trạng thái q phải luôn luôn xảy ra sau
trạng thái p trong vòng không quá 5 đơn vị thời gian", hoặc "tổng thời gian
xảy ra của trạng thái p không được lớn hơn tổng thời gian xảy ra của trạng
thái q" Từ đó, việc nghiên cứu về kiểm chứng mô hình các hệ thời gian thực
khó hơn rất nhiều và có độ phức tạp rất cao so với kiểm chứng các hệ hữu hạn
trạng thái. Thậm chí như đã chỉ ra trong [7], bài toán kiểm chứng mô hình
tính chất thời gian thực tổng quát là không quyết định được đối với ôtômat
thời gian. Tuy vậy, hiện nay nhiều bộ kiểm chứng mô hình thời gian thực cũng
đã ra đời mà tiêu biểu là HyTech, KRONOS, UPPAAL ([38, 16, 13]), hoặc áp
dụng các bộ kiểm chứng không thời gian (như SPIN) để phục vụ kiểm chứng
tính chất thời gian thực ([21]) cũng đang được nghiên cứu.
Tư tưởng phổ biến của các bộ kiểm chứng thời gian thực về cơ bản là duyệt
trên đồ thị vùng (region graph) để kiểm tra tính đạt được của các trạng thái
nào đó của ôtômat thời gian ([7, 8]). Vì số lượng các vùng là rất lớn nên một
số biện pháp thu gọn đã được đề nghị. Ví dụ, có thể kết hợp nhiều vùng tạo
thành miền (zones) dựa trên các kỹ thuật mô phỏng (simulation), trừu tượng
hoá (abstract) [55, 61], hoặc phương pháp thứ tự bộ phận (partial orders) [49]
lược bỏ bớt các phép chuyển đan xen thừa trong hợp các thành phần, kết
hợp song song với tối ưu hoá cấu trúc dữ liệu [47]. Các kỹ thuật symbolic và
on-the-fly cũng được áp dụng ([14, 40]), từ đó các bộ kiểm chứng thời gian
thực thường xuyên được cải tiến và ngày càng hữu hiệu hơn.
8
Kiểm chứng mô hình với các tính chất khoảng
Các tính chất thời gian của một hệ thống có thể xuất hiện dưới nhiều dạng
khác nhau, trong đó các tính chất thời điểm là những tính chất chỉ quan tâm
đến sự xuất hiện của các trạng thái còn các tính chất thời khoảng là những
tính chất quan tâm không những đến việc xuất hiện mà còn cả khoảng thời
gian xuất hiện của những trạng thái này. Ví dụ tính đạt được của một trạng
thái p hay các tính chất được biểu diễn trong lôgic TCTL là các tính chất
thời điểm còn các tính chất như "tổng thời gian xảy ra của trạng thái p không
được lớn hơn tổng thời gian xảy ra của trạng thái q" như đã được nhắc đến ở
trên, là một trong những tính chất khoảng như vậy.
Để dễ hình dung, chúng ta nhắc lại một ví dụ kinh điển đã được nghiên
cứu vào đầu thập kỷ trước, đó là hệ bếp ga. Một thiết kế bếp ga được gọi là
an toàn nếu khoảng thời gian rò ga của nó là không quá dài. Mô hình đơn giản
của bếp được xét với 2 trạng thái rò ga và không rò ga và yêu cầu về tính an
toàn của hệ thống được phát biể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".
Trên đây là một phát biểu tuy không hình thức về yêu cầu an toàn của
bếp ga, nhưng cũng đủ để chúng ta nhận thấy khoảng thời gian xuất hiện của
các trạng thái trong hệ thống là quan trọng. Cần có công cụ để đặc tả những
tính chất như "thời gian rò ga", "đoạn thời gian quan sát" và các yêu cầu như
"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". Chắc chắn rằng các phương pháp để kiểm
chứng một hệ thống được thiết kế như vậy và để trả lời câu hỏi về tính thoả
của hệ thống đối với tính chất như vậy là khó khăn hơn so với kiểm chứng hệ
thống và tính chất không liên quan đến thời khoảng.
Một trong những ý tưởng đầu tiên liên quan đến các tính chất thời khoảng
xuất hiện trong [6]. Trong báo cáo này các tác giả đã xét bài toán "đạt được
trong khoảng thời gian bị chặn", câu hỏi đặt ra là liệu một trạng thái này có
thể đạt được từ một trạng thái kia (ví dụ từ trạng thái ban đầu chẳng hạn)
9
trong một khoảng thời gian cho phép. Bài toán này đã được giải quyết bởi
thuật toán được đề nghị bởi các tác giả, tuy nhiên bản thân của tính chất còn
nhiều hạn chế cũng như thuật toán có độ phức tạp rất cao. Các thuật toán
về sau, trên nền tảng của một hệ lôgic mới, đã bắt đầu xét đến các lớp tính
chất phức tạp hơn như trong [19, 45, 28, 56]. Hệ lôgic mới này là một trong
những nội dung nghiên cứu chính của dự án ProCoS (ESPRIT BRA 3104)
4
,
được gọi là hệ Lôgic khoảng (Duration Calculus - DC) và là lôgic đầu tiên có
khả năng đặc tả bài toán bếp ga ở trên. Nhiều báo cáo của dự án và các cơ
sở nghiên cứu khác như Viện Công nghệ phần mềm thuộc Đại học Liên hợp
quốc (UNU/IIST, Macau) khẳng định thêm khả năng đặc tả của lôgic khoảng
([1, 43]) và chứng minh tính quyết định được của một số lớp công thức trong
lôgic khoảng, ví dụ trong [53, 54, 51].
Tương tự tính chất thời điểm, bài toán kiểm chứng mô hình cũng được
đặt ra với các công thức khoảng được viết trong DC. Tuy nhiên, ở đây đã gặp
một khó khăn lớn đó là tính quyết định được của lớp các công thức khoảng là
rất thấp. Như đã chỉ ra trong [35], nhiều lớp công thức đơn giản trong lôgic
là không quyết định được, từ đó thậm chí việc tìm ra các lớp công thức quyết
định được là có ý nghĩa. Ví dụ các tác giả trong [51] đã chỉ ra tính quyết định
được của một lớp công thức mở rộng trong DC với mô hình thời gian rời rạc.
Một yếu tố dẫn đến tính quyết định được thấp của các công thức trong
DC, cũng như tính bùng nổ không gian trạng thái trong kiểm chứng tính chất
khoảng đó là các quan sát hệ thống phải được tiến hành trong những khoảng
thời gian bất kỳ. Nói cách khác, bản chất của các tính chất thời điểm trong
khi có thể được quyết định bởi toàn bộ đường chạy xuất phát từ thời điểm ban
đầu (0) và kết thúc tại một thời điểm chuyển trạng thái nào đó thì tính chất
khoảng lại được quyết định bởi vô hạn khoảng quan sát bất kỳ trên đường
chạy này. Đặc trưng này góp phần làm tăng cao độ phức tạp của hệ thống và
gây nhiều khó khăn trong việc thiết kế thuật toán kiểm chứng chúng.
4
ProCoS: Provably Correct Systems. Dự án thuộc chương trình ESPRIT được tài trợ bởi
Cộng đồng Châu Âu (CEC), nghiên cứu về đặc tả hình thức các hệ thời gian thực.
10
Với những khó khăn nêu trên, cho đến hiện nay kết quả về kiểm chứng
tính chất thời khoảng là vẫn còn hạn chế. Hầu hết các kết quả trong thập kỷ
vừa qua kể từ lần đầu tiên Zhou Chaochen (1991) giới thiệu về DC ([18]) cho
đến nay đều tập trung trên các hạn chế của lớp các ràng buộc tuyến tính.
Đây là lớp tính chất quan trọng hay gặp trong thực tế và được nhiều tác giả
quan tâm. Ví dụ trong [45] các tác giả đã chứng minh bài toán kiểm chứng các
tính chất này là quyết định được đối với ôtômat thời gian hữu hạn (Finitary
Timed Automata - FTA) bằng việc đưa bài toán kiểm chứng về việc giải một
tập các bài toán qui hoạch nguyên. Tuy nhiên, trong bài báo này các tác giả
đã phải hạn chế chỉ xét lớp công thức với các hệ số ràng buộc lấy giá trị trên
tập số nguyên (Z). Trong [19], các tác giả đã xét công thức dưới dạng tổng
quát hơn với các hệ số thực gọi là lớp công thức bất biến khoảng tuyến tính
nhưng lại hạn chế hệ thống được biểu diễn bởi các ôtômat thời gian thực (là
lớp các ôtômat thời gian đơn giản với một đồng hồ và được đặt lại về 0 sau
mỗi phép chuyển). Phương pháp chính của các tác giả trong bài báo này là
thiết lập tập bài toán qui hoạch tuyến tính tương ứng với các biểu thức chính
quy biểu diễn dáng điệu của ôtômat và sau đó đưa về giải tập các bài toán qui
hoạch này. Phát triển phương pháp này các tác giả trong [28, 29, 56] đã đề
nghị các thuật toán kiểm chứng bất biến khoảng tuyến tính đối với một số lớp
con của ôtômat thời gian, ôtômat lai (hybrid automata) và lưới ôtômat thời
gian thực dựa trên biểu diễn hệ thống bởi các biểu thức chính quy theo thời
gian. Phương pháp này có nhược điểm là sinh ra một số rất lớn các bài toán
qui hoạch tuyến tính mà nó phụ thuộc vào độ lớn của cận đồng hồ và cận trên
của độ dài quan sát trong công thức khoảng. Từ đó một phương pháp khác
đã được đề xuất trong [44]. Tư tưởng chính của phương pháp dựa trên tính
rời rạc hoá được, là tính chất đặc thù của một số công thức mà nó cho phép
việc kiểm chứng chúng trên tập thời gian nguyên là cho cùng kết quả như trên
tập thời gian thực. Như vậy có thể kiểm chứng các tính chất rời rạc hoá được
bằng kỹ thuật duyệt đồ thị đạt được nguyên mà nó có kích thước bé hơn rất
nhiều so với đồ thị đạt được tổng quát. Trên cơ sở này, các tác giả trong [44]
11
đã đề nghị thuật toán kiểm chứng tính chất khoảng tuyến tính với độ phức tạp
tương đương với các thuật toán kiểm chứng hiện nay đối với các công thức
thời điểm. Ngoài ra, kết hợp với phương pháp giải bằng qui hoạch tuyến tính
các tác giả trong [63] cũng đã đề nghị thuật toán giải một lớp công thức khác
được gọi là các tính chất khoảng thời gian tuần tự, và tác giả luận án đã mở
rộng các thuật toán trên cho lưới ôtômat thời gian trong [2, 57]. Đặc điểm của
tất cả các kết quả này ngoài một số hạn chế như đã nhắc đến, còn một nhược
điểm chung là chúng chỉ xét với các quan sát bắt đầu từ thời điểm ban đầu (0)
của hệ thống, tức với một ngữ nghĩa khá hạn chế của các tính chất khoảng.
Việc khắc phục nhược điểm này là một trong những kết quả chính của luận
án.
Hầu hết các kết quả được nhắc đến ở trên đều được thực hiện từ dự án
DeTfoRS
5
được hỗ trợ bởi Viện Công nghệ phần mềm quốc tế của trường Đại
học Liên hợp quốc tại Macau (UNU/IIST) và luận án này được hoàn thành
trên cơ sở các phương pháp được nghiên cứu tại UNU/IIST dưới sự hướng dẫn
tận tình của TS. Đặng Văn Hưng - một thành viên của dự án - cũng như sự
giúp đỡ nhiệt tình của các thành viên khác. Ngoài ra luận án còn nhận được
sự hổ trợ của đề tài trọng điểm cấp quốc gia "Các phương pháp đặc tả và kiểm
chứng trong công nghệ phần mềm" dưới sự chủ trì của PGS. TS. Hồ Sĩ Đàm,
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội.
1.3 Mục đích và kết quả của luận án
Mục đích của luận án
Với tình hình kiểm chứng mô hình như đã được trình bày tóm tắt ở trên, một
vấn đề hiện nay vẫn còn đang được tiếp tục giải quyết đó là xây dựng các bộ
kiểm chứng cho các tính chất thời khoảng của các hệ thời gian thực. Như đã
biết hầu hết các công thức khoảng là không quyết định được nên sẽ không
5
DeTfoRS: Design Techniques for Real-Time Systems.
/>12
thể xây dựng được một bộ kiểm chứng mô hình cho toàn bộ mà chỉ có thể
xây dựng các bộ kiểm chứng mô hình bộ phận cho một số lớp công thức đặc
trưng của hệ lôgic. Các lớp công thức như vậy đã được kể đến như các bất biến
khoảng tuyến tính, tính chất khoảng tuyến tính và một vài lớp con khác. Tuy
nhiên, chúng tôi cũng nhận thức được rằng việc xây dựng một bộ kiểm chứng
hoàn chỉnh (hữu hiệu, độ phức tạp thấp) đòi hỏi nhiều thời gian và là công
sức của cả một tập thể nghiên cứu mạnh. Vì vậy luận án cũng chỉ đặt vấn đề
nghiên cứu và đề xuất các thuật toán kiểm chứng cho lớp các công thức này.
Trên cơ sở đó chúng tôi xin tóm tắt vài kết quả chính mà chúng tôi đã đạt
được trong quá trình thực hiện mục đích của luận án.
Một số kết quả chính
• Đề xuất biểu diễn dáng điệu lưới ôtômat thời gian thực bởi biểu thức
chính qui theo thời gian, trên cơ sở đó giải bài toán kiểm chứng các tính
chất khoảng tuyến tính (LDP) và bất biến khoảng tuyến tính (LDI) bằng
qui hoạch tuyến tính.
• Chứng minh tính rời rạc hoá được (với ngữ nghĩa tổng quát) của lớp các
công thức LDP, LDI.
• Xây dựng đồ thị đạt được có trọng số hướng đến LDP, trên cơ sở đó đề
nghị một thuật toán kiểm chứng lớp công thức LDP bằng cách áp dụng
thuật toán tìm đường đi ngắn nhất của Warshall-Floyd.
• Đề xuất đồ thị "rời rạc hoá" của đồ thị đạt được. Chứng minh tính quyết
định được của lớp công thức LDI bằng một thuật toán duyệt đồ thị này.
Các kết quả này đã được báo cáo tại các xemine của bộ môn Khoa học
máy tính, hội nghị khoa học Khoa Công nghệ Đại học Quốc gia Hà Nội, hội
thảo quốc gia về Công nghệ thông tin, xemine của UNU/IIST và các hội nghị
quốc tế (Nhật bản-1998, Việt Nam-2002, Trung Quốc-2004) và đã được công
bố chính trong các công trình [56], [57], [58], [59].
13
Cấu trúc của luận án
Phần chính của luận án gồm 4 chương. Trong chương này chúng tôi đã trình
bày tóm tắt về một số đặc trưng của kiểm chứng mô hình, cũng như những
kết quả và hạn chế trong lĩnh vực kiểm chứng các tính chất thời khoảng cho
đến thời điểm hiện nay. Các kiến thức cơ bản để phục vụ luận án như ôtômat
thời gian và lôgic khoảng được trình bày trong chương 2.
Kết quả chính của luận án được trình bày trong hai chương 3 và 4. Trong
đó, ở chương 3 chúng tôi trình bày về cách biểu diễn lưới ôtômat thời gian thực
bởi biểu thức chính quy thời gian và thiết lập bài toán qui hoạch tuyến tính để
kiểm chứng các lớp công thức LDP, LDI. Đặc trưng của biểu thức chính quy
ở đây là phép toán đồng bộ hoá quá trình chuyển trạng thái, một phép toán
cơ bản để biểu diễn ôtômat thời gian bằng các biểu thức chính quy thời gian
([10]). Trong chương 4 chúng tôi chứng minh tính rời rạc hoá được của LDP,
LDI và xây dựng các đồ thị đạt được có trọng số trên cơ sở các đồ thị vùng từ
đó đưa ra thuật toán hữu hiệu kiểm chứng công thức LDP. Cũng trong chương
này thuật toán duyệt trên đồ thị vùng đã "rời rạc hoá" được xây dựng để kết
luận tính quyết định được của LDI theo ngữ nghĩa tổng quát của nó.
Cuối cùng trong phần kết luận chúng tôi tóm tắt về luận án, nhận xét các
ưu khuyết điểm của các phương pháp đã được sử dụng, chỉ ra triển vọng của
các phương pháp và đề nghị một vài cải tiến để hoàn chỉnh các thuật toán
cũng như đề xuất một vài hướng nghiên cứu tiếp tục.
Để minh hoạ các thuật toán đã trình bày trong chương 4, chúng tôi cũng
cài đặt một bộ chương trình kiểm chứng mô hình ở mức độ đơn giản. Một số
nét đặc trưng và kết quả áp dụng của bộ kiểm chứng mô hình này được mô tả
trong phần phụ lục.
Chúng tôi hy vọng luận án là những kết quả bước đầu đặt nền tảng cho các
nghiên cứu tiếp của chúng tôi về một lĩnh vực đã đạt nhiều thành tựu nhưng
cũng còn nhiều khó khăn như trong lĩnh vực kiểm chứng mô hình này.
Chương 2
Đặc tả hệ thống và tính chất
Để đặc tả hệ thống luận án sẽ sử dụng ôtômat thời gian là mô hình được dùng
rộng rãi hiện nay, còn tính chất thời khoảng sẽ được đặc tả bởi các công thức
trong lôgic khoảng. Việc sử dụng hai công cụ hình thức này được gặp hầu hết
trong các tài liệu tham khảo và được trình bày chi tiết trong [7, 8, 18, 35].
2.1 Mô hình thời gian
2.1.1 Thể hiện đồng hồ và ràng buộc thời gian
Để đánh dấu và đo lượng thời gian chúng ta sử dụng một tập X các biến thời
gian x (mà có thể gọi ngắn gọn và hình ảnh hơn là các đồng hồ). Về mặt tổng
quát giá trị của các đồng hồ có thể thay đổi với các vận tốc khác nhau, tuy
nhiên luận án này chỉ xét hệ thống với giá trị của các đồng hồ tăng đều và theo
cùng một vận tốc giống nhau. Tại một thời điểm cụ thể mỗi đồng hồ trong X
sẽ nhận một giá trị số trong tập hợp TIME nào đấy biểu thị lượng thời gian
đã trôi qua. Thông thường TIME là tập các số tự nhiên N hoặc tập các số
thực R
+
tuỳ theo theo ngữ cảnh thời gian được sử dụng và được mặc định lấy
trên tập số thực R
+
. Mỗi đồng hồ đóng vai trò đếm lượng thời gian trôi của
một hay nhiều tác vụ của hệ thống, có thể được đặt lại giá trị ban đầu (0) sau
mỗi tác vụ. Một bộ ν bất kỳ các giá trị đồng hồ được gọi là thể hiện đồng hồ
14
15
(clock interpretations), tức ν là một ánh xạ từ X tới TIME. Giá trị của một
đồng hồ x trong thể hiện ν được kí hiệu bởi ν(x). Thông thường, một thể hiện
đồng hồ có thể được gọi một cách ngắn gọn là thể hiện.
Cho δ là một số thực không âm và λ ⊆ X là một tập đồng hồ. Khi đó
ν
= ν +δ kí hiệu cho thể hiện mà nó ánh xạ mỗi đồng hồ x tới giá trị ν(x)+δ,
tức ν
(x)=ν(x)+δ, ∀x ∈ X. ν
= ν[λ:=0] là thể hiện nhận được từ ν và gán
0 tới mỗi x ∈ λ,tứcν
(x)=0nếu x ∈ λ và ν
(x)=ν(x) nếu x ∈ λ.
Một hệ thời gian thực khi hoạt động phải tuân theo một qui luật thời gian
nào đó thông qua các ràng buộc thời gian trên tập đồng hồ X. Một ràng buộc
thời gian như vậy là một công thức ϕ được cho theo cú pháp sau đây:
ϕ := x ≤ c | c ≤ x | x − y ≤ c | c ≤ x − y | ϕ ∧ ϕ
ởđâyx, y ∈ X và c ∈ N. Để viết gọn ϕ ta cũng sử dụng các phép toán ¬, ∨
theo nghĩa thông thường trong lôgic mệnh đề. Thực tế c có thể được xét như
các hằng hữu tỷ, tuy nhiên bằng cách nhân tất cả các hằng với bội chung nhỏ
nhất của các mẫu số của c trong tập hữu hạn các ràng buộc của hệ thống,
chúng ta có thể đưa chúng về lại là các hằng nguyên.
Một thể hiện ν được gọi là thoả ràng buộc ϕ nếu thay mọi biến x trong ϕ
bởi ν(x) ta nhận được một công thức đúng, và kí hiệu ν |= ϕ,ngượclạitakí
hiệu ν |= ϕ. Tập các ràng buộc thời gian ϕ trên X được kí hiệu bởi Φ(X).
Từ đây trở đi ta qui ước sử dụng kí hiệu
a |= α
và
a |= α
để chỉ quan
hệ a thoả α và a không thoả α. Ngữ nghĩa của quan hệ "thoả" (và từ đó kéo
theo cũng "không thoả") sẽ được định nghĩa trong từng trường hợp cụ thể.
2.1.2 Kỹ thuật phân vùng đồng hồ
Cho tập đồng hồ X lấy giá trị trên tập số thực không âm R
+
và một tập hữu
hạn các ràng buộc đồng hồ φ ⊆ Φ(X). Việc duyệt tất cả các thể hiện thoả hay
không thoả các công thức trong φ là không thể vì số lượng các thể hiện ν là
vô hạn. Do vậy trong [7], Alur và Dill đề xuất một kỹ thuật phân hoạch tập
16
các thể hiện đồng hồ thành các vùng đồng hồ (clock regions) bởi một quan hệ
tương đương chỉ số hữu hạn hướng đến tập ràng buộc đồng hồ φ như sau.
Xét đồng hồ x, gọi c
x
là số nguyên lớn nhất xuất hiện trong các ràng buộc
đồng hồ của x trong tập các công thức φ. Với số thực t ta kí hiệu t và fr(t)
lần lượt là phần nguyên và phần lẻ của t. Hai thể hiện ν và ν
được gọi là
tương đương (hướng đến tập các ràng buộc φ) và được kí hiệu ν
∼
=
ν
nếu:
1. ∀x ∈ X, hoặc ν(x) = ν
(x) hoặc cả hai cùng lớn hơn c
x
.
2. ∀x, y ∈ X và ν(x) ≤ c
x
,ν(y) ≤ c
y
thì fr(ν(x)) ≤ fr(ν(y)) khi và chỉ khi
fr(ν
(x)) ≤ fr(ν
(y))
3. ∀x ∈ X và ν(x) ≤ c
x
thì fr(ν(x)) = 0 khi và chỉ khi fr(ν
(x)) = 0
Gọi k là số đồng hồ trong X. Quan hệ
∼
=
có các tính chất sau.
Tính chất 1.
∼
=
là một quan hệ tương đương trên tập các thể hiện đồng hồ.
Kí hiệu [ν] là lớp tương đương của ν xác định bởi quan hệ
∼
=
và được gọi
là vùng đồng hồ (chứa ν). Rõ ràng mọi thể hiện trong cùng một vùng sẽ cùng
thoả hoặc không thoả một ràng buộc đồng hồ trong φ.Từđótacótínhchất:
Tính chất 2. Mỗi vùng đồng hồ được đặc trưng bởi một ràng buộc đồng hồ.
Tính chất 3. Số vùng đồng hồ là hữu hạn và bị chặn bởi k!2
k
x∈X
(2c
x
+2).
Chứng minh chi tiết của các tính chất trên được gặp nhiều trong các tài
liệu tham khảo (ví dụ [7, 64]), vì vậy ở đây chúng tôi không trình bày lại các
chứng minh đó.
Ví dụ 2.1. Xét φ là lớp các ràng buộc trên tập đồng hồ {x, y} trong đó c
x
=2
và c
y
=1. Khi đó tập gồm 28 vùng đồng hồ hướng tới φ được cho trong hình
2.1. Trong đó lớp các vùng thoả ràng buộc x ≤ 2 ∧ y ≤ 1 là tất cả trừ 4
vùng không bị chặn, tức trừ các vùng có chứa ít nhất một ràng buộc x>2
hoặc y>1. Tương tự thoả ràng buộc x ≥ 2 ∧ y ≥ 1 có hai vùng [(2, 1)] và
[x>2 ∧ y>1]