Tải bản đầy đủ (.pdf) (71 trang)

luận văn: phân tích, thiết kế và cài đặt kiểm chứng một hệ thời gian thực (đh quốc gia hà nội)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.69 MB, 71 trang )





ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


PHẠM VĂN TUẤN



PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT KIỂM
CHỨNG MỘT HỆ THỜI GIAN THỰC




LUẬN VĂN THẠC SỸ




HÀ NỘI – 2014





ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




PHẠM VĂN TUẤN



PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT KIỂM
CHỨNG MỘT HỆ THỜI GIAN THỰC

Ngành : Công nghệ thông tin
Chuyên ngành: Kỹ thuật Phần mềm
Mã số: 60 48 01 03

LUẬN VĂN THẠC SĨ

CÁN BỘ HƯỚNG DẪN KHOA HỌC: TS. PHẠM HỒNG THÁI



HÀ NỘI - 2014




i
LỜI CẢM ƠN
Trước tiên tôi xin chân thành cảm ơn TS. Phạm Hồng Thái, người đã tận tình
hướng dẫn và giúp đỡ tôi trong suốt quá trình thực hiện luận văn tốt nghiệp.
Tôi xin cảm ơn các Thầy, Cô giáo ở khoa Công nghệ thông tin, Phòng Đào tạo -
Trường Đại học Công nghệ - ĐHQGHN đã giảng dạy và truyền thụ cho tôi những kiến

thức quý báu trong suốt thời gian tôi học tập và nghiên cứu tại trường.
Nhân đây cho phép tôi gửi lời cảm ơn tới bạn bè, đồng nghiệp và nhất là các
thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ, giúp đỡ, chia
sẻ kinh nghiệm, cung cấp các tài liệu hữu ích trong suốt thời gian tôi học tập và nghiên
cứu tại Trường. Tuy đã rất cố gắng nhưng do thời gian và trình độ có hạn nên chắc
chắn luận văn vẫn còn những thiếu sót và hạn chế nhất định. Kính mong nhận được sự
góp ý của Thầy Cô và các bạn để luận văn được hoàn thiện hơn.
Tôi xin chân thành cảm ơn!


Hà Nội, tháng 10 năm 2014
Tác giả luận văn


Phạm Văn Tuấn




ii
LỜI CAM ĐOAN
Tôi xin cam đoan bản luận văn “Phân tích, thiết kế và cài đặt kiểm chứng một
hệ thời gian thực” là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của
TS. Phạm Hồng Thái. Tất cả tài liệu tham khảo đã chỉ rõ trong trích dẫn và danh mục
tài liệu tham khảo.
Toàn bộ chương trình, mã nguồn là do tôi thiết kế và xây dựng trong quá trình
làm luận văn hoặc được kế thừa từ “Luận án Tiến sĩ Toán học” của TS. Phạm Hồng
Thái, không sao chép của người khác, những phần tham khảo đã có trích dẫn rõ ràng.
Tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan của mình, nếu có điều gì sai
tôi xin chịu mọi hình thức kỷ luật theo qui định của nhà trường và pháp luật.



Hà Nội, tháng 10 năm 2014
Tác giả luận văn


Phạm Văn Tuấn





iii

MỤC LỤC
LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC CÁC HÌNH v

DANH MỤC CÁC BẢNG vi

DANH MỤC TỪ VIẾT TẮT vii

MỞ ĐẦU 1

Chương 1. HỆ THỜI GIAN THỰC VÀ BÀI TOÁN KIỂM TRA TÍNH ĐÚNG

ĐẮN CỦA HỆ THỜI GIAN THỰC 3

1.1. Hệ thời gian thực 3

1.1.1. Khái niệm về hệ thời gian thực 3

1.1.2. Phân loại hệ thời gian thực 5

1.1.3. Đặc điểm của hệ thời gian thực 5

1.2. Đặc tả thiết kế và yêu cầu của hệ thống 6

1.3. Kiểm tra tính đúng đắn của hệ thống 6

Chương 2. CÁC CÔNG CỤ ĐẶC TẢ 8

2.1. Ôtômat thời gian 8

2.1.1. Định nghĩa 8

2.1.2. Dáng điệu và đường chạy của ôtômat thời gian 9

2.1.3. Ôtômat hợp song song 10

2.2. Kỹ thuật phân vùng 11

2.2.1. Vùng của ôtômat thời gian 11

2.2.2. Đồ thị vùng 11


2.3. Kỹ thuật phân miền 13

2.3.1. Định nghĩa 13

2.3.2. Các phép toán thực hiện trên miền 13

2.3.3 Đồ thị miền 14

2.4. Công thức bất biến khoảng tuyến tính (LDI) 15

2.5. Bài toán bếp ga 16





iv
Chương 3. PHÂN TÍCH, THIẾT KẾ BỘ CÔNG CỤ KIỂM CHỨNG MÔ HÌNH
17

3.1. Các thuật toán 17

3.1.1. Thuật toán xây dựng ôtômat hợp song song 17

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

3.1.3. Thuật toán xây dựng đồ thị trọng số G phục vụ kiểm chứng LDI 21

3.1.4. Thuật toán kiểm chứng LDI 22


3.2. Các chi tiết kỹ thuật 24

3.3. Đầu vào và đầu ra của bộ kiểm thử 25

3.4. Cấu trúc dữ liệu 26

3.4.1. File dữ liệu đầu vào 26

3.4.2. Ôtômat 28

3.4.3. Công thức LDI 29

3.4.4. Đồ thị vùng đạt được nguyên 29

3.4.5. Đồ thị trọng số phục vụ kiểm chứng LDI 30

3.4.6. Đường đi của đồ thị 31

3.5. Thiết kế chương trình 32

3.5.1. Biểu đồ use case 32

3.5.2. Biểu đồ lớp 33

3.5.3. Biểu đồ tuần tự 34

3.5.4.

Biểu đồ hoạt động 35


Chương 4. KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH 36

4.1. Cách sử dụng bộ kiểm chứng 36

4.2. Kiểm chứng LDI đối với bài toán 1 36

4.3. Kiểm chứng LDI đối với bài toán bếp ga 38

4.4. Đánh giá về bộ công cụ kiểm chứng 39

4.5. Hướng cải tiến chương trình 40

KẾT LUẬN 42

TÀI LIỆU THAM KHẢO 44

PHỤ LỤC 45

Phụ lục A. Một số mô đun chương trình của bộ kiểm chứng 45

Phụ lục B. Một số hình ảnh về giao diện của bộ kiểm chứng 58






v
DANH MỤC CÁC HÌNH
Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian 4


Hình 1.2: Sơ đồ bộ kiểm chứng mô hình 7

Hình 2.1: Đồ thị vùng 12

Hình 2.2: Phép giao 13

Hình 2.3: Thiết lập lại giá trị đồng hồ 14

Hình 2.4: Phép trôi 14

Hình 2.5: Đồ thị miền 15

Hình 2.6: Ôtômat thời gian của bếp ga 16

Hình 3.1: Xây dựng đồ thị G từ đồ thị vùng đạt được nguyên RG 22

Hình 3.2: Cấu trúc thư mục source code 25

Hình 3.3: Ôtômat thời gian 27

Hình 3.4: Biểu đồ use case mức 1 32

Hình 3.5: Biểu đồ use case mức 2 32

Hình 3.6: Biểu đồ lớp 33

Hình 3.7: Biểu đồ tuần tự danh sách bài toán 34

Hình 3.8: Biểu đồ tuần tự hiển thị danh sách mô hình 34


Hình 3.9: Biểu đồ tuần tự kiểm chứng mô hình 35

Hình 3.10: Biểu đồ hoạt động 35

Hình 4.1: Kết quả kiểm chứng của bài toán 1 37

Hình 4.2: Kết quả kiểm chứng của bài toán bếp gas 39






vi
DANH MỤC CÁC BẢNG
Bảng 3.1: Thuật toán xây dựng ôtômat hợp song song từ 2 ôtômat 19

Bảng 3.2: Thuật toán xây dựng ôtômat hợp song song tổng quát 20

Bảng 3.3: Thuật toán xây dựng đồ thị vùng đạt được nguyên 21

Bảng 3.4: Thuật toán kiểm chứng LDI với đỉnh xuất phát cố định 24

Bảng 3.5: Thuật toán kiểm chứng LDI tổng quát 24

Bảng 3.6: Xác định các lớp tham gia use case 34






vii

DANH MỤC TỪ VIẾT TẮT
Viết tắt Tên đầy đủ - mô tả
TA Timed Automaton – Ôtômat thời gian
RTA Real-Time Automaton – Ôtômat thời gian thực
MC Model Checking – Kiểm chứng mô hình
DC Duration Calculus - Lôgic khoảng
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
LTL Linear Temporal Logic - Lôgic thời gian tuyến tính
TCTL Timed Computational Tree Logic – Lôgic cây tính toán thời gian











1
MỞ ĐẦU
Ngày nay, các hệ thống thời gian thực ngày càng phát triển, ứng dụng và phổ
biến rộng rãi, chẳng hạn các hệ thống nhúng thời gian thực trong các thiết bị điện tử
chuyên dụng, từ các đồ điện tử trong gia đình như tivi, máy giặt, lò vi sóng đến những

hệ thống lớn như máy bay, tên lửa, vệ tinh nhân tạo, v.v…
Các hệ thời gian thực hoạt động rất phức tạp và dù chỉ một lỗi nhỏ cũng có thể
phá hủy toàn bộ hệ thống và gây ra những hậu quả nghiêm trọng, đáng tiếc, hao tốn
nhiều thời gian, tiền của và công sức để khắc phục. Chi phí để phát triển hệ thống thời
gian thực cả về phần mềm lẫn phần cứng thường lớn hơn nhiều so với các hệ thống
ứng dụng khác và đòi hỏi tính chính xác cao, không thể chấp nhận những ứng dụng có
thể có lỗi dù là nhỏ nhất, vì vậy, việc tìm hiểu về các mặt của một hệ thời gian thực từ
phân tích, thiết kế mô hình đến kiểm tra tính đúng đắn các hoạt động của hệ thống
trước khi đưa chúng vào sản xuất là điều rất thiết thực và cấp thiết.
Để phân tích, thiết kế mô hình của hệ thống thời gian thực có thể sử dụng nhiều
công cụ như các văn phạm, ôtômat, và các lôgic liên quan đến thời gian thực như lôgic
thời gian tuyến tính, lôgic khoảng, v.v…
Xuất phát từ yêu cầu thực tiễn, và cũng để nâng cao kỹ năng thực hành và củng
cố lý thuyết, đề tài “Phân tích, thiết kế và cài đặt kiểm chứng một hệ thời gian thực”
được chọn làm đề tài luận văn của tôi với mục tiêu:
– Tìm hiểu các phương pháp đặc tả và kiểm tra tính đúng đắn của hệ thống thời
gian thực.
– Tìm hiểu kỹ thuật kiểm tra tính đúng đắn của hệ thống thời gian thực bằng
phương pháp kiểm chứng mô hình.
– Phân tích, thiết kế và cài đặt một công cụ kiểm chứng mô hình cho các đặc tả
sử dụng công cụ ôtômat thời gian và lôgic khoảng.
Luận văn gồm phần mở đầu, kết luận, 4 chương và phụ lục. Phần mở đầu đặt vấn
đề về ý nghĩa, tính cấp thiết và tính thực tế của đề tài. Chương 1 giới thiệu khái quát về
hệ thời gian thực và bài toán kiểm tra tính đúng đắn của hệ. Chương 2 trình bày về các
công cụ đặc tả hệ thống và bài toán bếp ga. Trong chương 3, luận văn mô tả bản thiết
kế và xây dựng một công cụ cho phép kiểm chứng tính đúng đắn của các hệ được đặc
tả dưới dạng công thức tính chất khoảng tuyến tính hoặc công thức bất biến khoảng
tuyến tính của lôgic khoảng. Đây cũng là mục tiêu và là kết quả chính của luận văn.





2
Chương 4 mô tả các kết quả chạy chương trình trên các ví dụ và hệ bếp ga. Phần kết
luận, luận văn tóm tắt lại nội dung của đề tài, những kết quả đạt được, các điểm hạn
chế và hướng nghiên cứu tiếp tục trong tương lai. Về mã nguồn của chương trình được
chúng tôi trình bày trong phần phụ lục.




3
Chương 1. HỆ THỜI GIAN THỰC VÀ BÀI TOÁN KIỂM TRA
TÍNH ĐÚNG ĐẮN CỦA HỆ THỜI GIAN THỰC
Mục tiêu của chương này là giới thiệu để người đọc hiểu được một cách tổng
quan về hệ thời gian thực và về bài toán kiểm tra tính đúng đắn của hệ tức kiểm tra sự
thỏa mãn của thiết kế so với yêu cầu của hệ thống.
1.1. Hệ thời gian thực
1.1.1. Khái niệm về hệ thời gian thực
Trong đời sống hàng ngày chúng ta đã sử dụng và tiếp xúc với rất nhiều hệ thống
được gọi là hệ thời gian thực, ví dụ từ máy tính cá nhân đơn giản, các hệ thống điều
khiển tay máy, điều khiển động cơ, hệ thống tín hiệu đèn giao thông cho đến các hệ
thống tinh vi, phức tạp được vận hành trong các nhà máy và trong vũ trụ. Đặc trưng
của hệ là tính tương tác với môi trường: khi nhận được các sự kiện phát sinh từ môi
trường xung quanh, chúng thực hiện các xử lý để sản sinh ra các tín hiệu điều khiển
gửi đến các thiết bị tác động để tạo ra các hoạt động nhằm đáp ứng yêu cầu, đòi hỏi
của môi trường. Dạng hệ thời gian thực thứ hai rất phổ biến là các hệ thời gian thực
nhúng (Embedded Real Time System), là hệ dùng để điều khiển các phần cứng chuyên
dụng mà trong nó có cài đặt hệ thống tính toán. Ví dụ, hệ vi xử lý dùng để điều khiển
hỗn hợp nhiên liệu/khí trong các bộ chế hoà khí của ô tô là một hệ nhúng.

Như vậy, một hệ thời gian thực là một hệ thống mà sự hoạt động tin cậy và hiệu
quả không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời
điểm đưa ra kết quả. Hệ thống sẽ là thất bại mỗi khi các yêu cầu về thời gian không
được thoả mãn. Tóm lại, tính thời gian thực ở đây có thể hiểu là khả năng đáp ứng kịp
thời và chính xác [1]. Hình 1.1 mô tả mức độ đáp ứng thời gian theo bốn yêu cầu khác
nhau.




4
Thời gian
Sự kiện Phản ứng
T
t
s

t
p

c) Chậm nhất là t ≤ t
p

Thời gian
Sự kiện
Phản ứng
T
t
s


t
p

d) Sớm nhất là t ≥ t
p

Thời gian
Sự kiện Phản ứng
T
t
s
t
p

a) Chính xác tại t = t
p


Thời gian
Sự kiện Phản ứng
T
t
s
t
p-1
t
p-2


b) Trong khoảng t

p-1
≤ t ≤ t
p-2


Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian
Trên hình 1.1 (a) sự kiện xảy ra tại thời điểm t
s
, hệ thống mất khoảng thời gian T
để nhận biết có sự kiện kích ứng và xử lý tức thời ngay sau đó tại thời điểm t
p
. Trên
hình 1.1 (b) sự kiện xảy ra tại thời điểm t
s
hệ thống mất khoảng thời gian T để nhận
biết có sự kiện kích ứng và mất một khoảng thời gian [t
p-1
, t
p-2
] để xử lý. Trên hình 1.1
(c) sự kiện xảy ra tại thời điểm t
s
hệ thống mất khoảng thời gian T để nhận biết có sự
kiện kích ứng và yêu cầu phải xử lý xong trước thời điểm t
p
. Trên hình 1.1 (d) sự kiện
xảy ra tại thời điểm t
s
hệ thống mất khoảng thời gian T để nhận biết có sự kiện kích
ứng và yêu cầu phải được xử lý từ thời điểm t

p
không giới hạn thời điểm hoàn thành.
Do các tính chất của hệ thời gian thực khác với các phần mềm khác là khả năng
đáp ứng của nó đối với các sự kiện môi trường trong một khoảng thời gian nhất định
(thường là khoảng thời gian ngắn) nên nó được định nghĩa như sau: Một hệ thời gian
thực là một hệ thống mà trong đó tính đúng đắn của nó không chỉ phụ thuộc vào các
kết quả lôgic được tạo ra mà còn phụ thuộc vào thời điểm mà tại đó các kết quả được
đưa ra [6].
Nhiều thay đổi của các sự kiện trong thế giới thực thường xảy ra rất nhanh, mỗi
hệ thống thời gian thực phải thực hiện việc xử lý và đưa ra kết quả trong một khoảng
thời gian xác định hay thời điểm kết thúc (deadline). Khoảng thời gian này được xác
định từ thời điểm bắt đầu và thời điểm hoàn tất công việc. Trong thực tế, nhiều yếu tố
kích thích xảy ra trong khoảng thời gian rất ngắn, ví dụ vào khoảng vài mili giây, và
khi đó thời gian mà hệ thống cần đáp ứng lại các yếu tố kích thích thường vào khoảng
dưới 1 giây mới đảm bảo được yêu cầu mong muốn. Khoảng thời gian này bao gồm:
thời gian tiếp nhận kích thích, thời gian xử lý thông tin và thời gian đáp ứng kích thích.




5
1.1.2. Phân loại hệ thời gian thực
Hệ thời gian thực thường được chia thành hai loại, hệ thời gian thực cứng (Hard
real time system) và hệ thời gian thực mềm (Soft real time system).
Hệ thời gian thực cứng: Trong một số hệ thống, sự đáp ứng vi phạm giới hạn về
thời gian cho phép có thể gây ra những ảnh hưởng trầm trọng, như đến sinh mạng con
người. Trong trường hợp này, yêu cầu đáp ứng về mặt thời gian của hệ thống là rất
khắt khe. Chính vì vậy, người ta đưa ra định nghĩa về hệ thời gian thực cứng như sau:
Một hệ thời gian thực cứng là một hệ thống mà hoạt động không đúng đắn của nó sẽ
để lại hậu quả nghiêm trọng. Do đó hệ thời gian thực cứng buộc phải đưa ra các kết

quả chính xác trong khoảng thời gian đã xác định trước.
Hệ thời gian thực mềm: Ngược lại với hệ thời gian thực cứng là hệ thời gian thực
mềm. Kết quả đưa ra của một hệ thống chấp nhận một sai số nhất định cả về giá trị và
thời gian so với yêu cầu dự kiến. Tuy nhiên, nếu sự sai lệch này không được đảm bảo
nó cũng không gây ra điều gì nghiêm trọng. Trong trường hợp này, người ta nói rằng
hệ thống có ràng buộc định thời gian mềm. Hệ thời gian thực mềm có định nghĩa như
sau: Một hệ thời gian thực mềm là một hệ thống mà trong đó các hoạt động của nó
được phép hoàn thành trong một sai số cho phép mà không gây hậu quả nghiêm trọng,
tức là sự đáp ứng của hệ thống có thể vượt ra ngoài một giới hạn cho phép mà vẫn có
thể chấp nhận được. Ví dụ về hệ thống này bao gồm những hệ thống thực hiện tương
tác trực tuyến, những bộ chuyển mạch điện thoại, hay các trò chơi điện tử.
Sự phân biệt giữa khoảng thời gian bắt buộc cứng hay mềm của hệ thời gian thực
thường tùy thuộc vào trạng thái định lượng những giới hạn mang lại kết quả hữu dụng.
Tuy nhiên, trong thực tế, sự phân chia này nhiều khi không cần thiết, mang tính tương
đối.
1.1.3. Đặc điểm của hệ thời gian thực
Một hệ thống thời gian thực có các đặc trưng tiêu biểu [1] sau:
– Tính bị động: Hệ thống thường phải phản ứng lại với các sự kiện xuất hiện
vào các thời điểm thường không biết trước.
– Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có
thể đưa ra kết quả phản ứng một cách kịp thời. Đây là một đặc điểm tiêu biểu.
Tuy nhiên, đối với một hệ thống có tính năng thời gian thực không nhất thiết
phải đáp ứng thật nhanh mà quan trọng hơn là phải có phản ứng kịp thời đối
với các yêu cầu, tác động từ bên ngoài.




6
– Tính đồng thời: Hệ thống phải có khả năng phản ứng và xử lý đồng thời nhiều

sự kiện diễn ra.
– Tính tiền định: Dự đoán trước được thời gian phản ứng tiêu biểu, thời gian
phản ứng chậm nhất cũng như trình tự đưa ra các phản ứng. Phải lập lịch cho
các sự kiện.
1.2. Đặc tả thiết kế và yêu cầu của hệ thống
Để hiểu hệ thống thường nó phải có một bản đặc tả rõ ràng. Các đặc tả thường
gồm 2 phần: phần thiết kế hệ thống và phần yêu cầu. Hiển nhiên, yêu cầu là khách
quan, hệ thống cần được thiết kế (chủ quan) để đạt được yêu cầu này. Việc đặc tả rõ
ràng bằng một công cụ nào đó giúp cho hệ thống được hiểu dưới một ý nghĩa duy nhất
và cũng giúp cho việc kiểm tra tính chính xác, đúng đắn của hệ thống (tức kiểm tra đặc
tả của hệ thống có thỏa mãn tính chất yêu cầu) được dễ dàng.
Để phân tích thiết kế và đặc tả hệ thống có nhiều cách, nhiều công cụ và phương
pháp khác nhau, như ngôn ngữ đặc tả RAISE, UML, Z, v.v… Đối với hệ thời gian
thực có thể sử dụng các công cụ như lôgic thời gian, lôgic khoảng, ôtômat thời gian.
Trong luận văn sử dụng công cụ ôtômat thời gian để phân tích và đặc tả hệ thống.
1.3. Kiểm tra tính đúng đắn của hệ thống
Để kiểm tra tính đúng đắn của một hệ thống ta có nhiều phương pháp, chẳng hạn:
 Chứng minh bằng toán học: Sử dụng các tiên đề, luật dẫn trong các hệ toán
học để từ giả thiết của bài toán bằng phương pháp suy luận dần đi đến kết quả
cần chứng minh tức các tính chất yêu cầu của hệ được thỏa mãn. Trong
những năm của thập kỷ 70 đã có nhiều công trình trình bày các kỹ thuật
chứng minh toán học như Dijkstra, Floy, Gries, v.v… Đặc trưng và cũng là
điểm yếu của phương pháp này là đòi hỏi người sử dụng phải là những người
am hiểu kiến thức toán học.
 Kiểm chứng mô hình: Đến thập kỷ 80 một hướng tiếp cận khác dễ dàng hơn
được đề nghị đó là kiểm chứng mô hình. E.M. Clarke và E.A. Emerson lần
đầu tiên đưa ra thuật ngữ Kiểm chứng mô hình (Model Checking) vào năm
1981 và định nghĩa như sau [2]: 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 lôgic, 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ó

thỏa mãn tính chất đó. Phương pháp này thực hiện duyệt tất cả các trạng thái
và kiểm tra từng trạng thái trong không gian trạng thái của hệ thống xem




7
chúng có thực sự hoạt động đúng đắn như các yêu cầu đã được đặc tả hay
không. Việc sinh ra các trạng thái và kiểm tra được tiến hành một cách hoàn
toàn tự động.
Như vậy so với phương pháp chứng minh toán học truyền thống thì phương pháp
kiểm chứng mô hình có ưu điểm là tự động, chỉ kiểm chứng trên các bài toán cụ thể
(nó không yêu cầu chứng minh tính đúng đắn cho một lớp các bài toán tổng quát), có
khả năng chỉ ra các bộ giá trị không thỏa mãn yêu cầu (tức là có khả năng chỉ ra nơi
xảy ra lỗi của hệ thống) điều này thực sự rất hữu ích để phát hiện các lỗi và gỡ lỗi
trong quá trình thiết kế đó là các công cụ phát hiện và gỡ lỗi trong thiết kế.
Hình dưới đây thể hiện sơ đồ hoạt động của bộ kiểm chứng mô hình với đầu vào
là hệ thống S, tính chất P và đầu ra là câu trả lời “đúng” hoặc “sai” [2].



Hình 1.2: Sơ đồ bộ kiểm chứng mô hình
Tuy nhiên, phương pháp kiểm chứng mô hình cũng như các phương pháp khác
cũng có nhược điểm. Nhược điểm của phương pháp kiểm chứng mô hình đó chính là
sự bùng nổ không gian trạng thái, tức là số lượng trạng thái của nó 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. Do vậy đối với các hệ thống
lớn phương pháp kiểm chứng mô hình khó được áp dụng.
Do thời gian của các hệ thời gian thực được lấy trên tập R
+
nên bài toán kiểm

chứng mô hình hệ thời gian thực gặ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. Tuy vậy, cho đến nay nhiều bộ kiểm chứng mô hình thời
gian thực hiệu quả đã ra đời, tiêu biểu là HyTech, KRONOS, UPPAAL, v.v…
Tư tưởng chủ đạo của các bộ kiểm chứng thời gian thực 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 của ôtômat thời gian. Các
phần tiếp theo của chương sẽ trình bày 2 công cụ được sử dụng trong luận văn dùng để
đặc tả hệ thống và các tính chất mong muốn của hệ thời gian thực đó là ôtômat thời
gian (Timed Automaton) và công thức bất biến khoảng tuyến tính LDI (Linear
Duration Invariant).
Bộ kiểm chứng
mô hình
Hệ thống S
Tính chất P
Trả lời “ĐÚNG” nếu S thỏa
P hoặc “SAI” và phản ví dụ
nếu S không thỏa P.




8
Chương 2. CÁC CÔNG CỤ ĐẶC TẢ
2.1. Ôtômat thời gian
2.1.1. Định nghĩa
Thể hiện đồng hồ: Để đánh dấu và đo lường thời gian chúng ta sử dụng một tập
hữu hạn X các biến thời gian x, gọi là các “đồng hồ” và một hàm để gán mỗi đồng hồ
x  X với một số thực không âm R
+
. Cho v là một hàm như thế, v được gọi là một thể
hiện đồng hồ (clock interpretations) hay còn gọi ngắn gọn là thể hiện. Một giá trị x

trong v được kí hiệu là v(x). Cho d  R
+
, λ ⊆ X là tập con các đồng hồ X. Khi đó v + d
là kí hiệu thể hiện gán mỗi đồng hồ x  X với một giá trị v(x) + d, và v[λ:=0] là một
thể hiện nhận được từ v bằng cách gán 0 tới mỗi x  λ. Tức là, v[λ:=0](x) bằng 0 nếu
x  λ và ngược lại bằng v(x).
Ràng buộc thời gian: Kí hiệu φ(X) là tập các ràng buộc của tập đồng hồ X. Một
ràng buộc thời gian   φ(X) được cho theo cú pháp:
 := x  c | x  c | x  c | x  c | x – y  c | x – y  c |   , ở đây x, y  X và c  N.
Một thể hiện v được gọi là thỏa ràng buộc  nếu thay mọi biến x trong  bởi v(x)
ta nhận được một công thức đúng, và kí hiệu là v |= , ngược lại ta nói v không thỏa ,
và kí hiệu là v |≠ .
Ví dụ: Cho thể hiện v, ràng buộc g = x  k | x  k | g
1
 g
2
. Khi đó ta nói: v |= g
nếu và chỉ nếu:
– v |= x  k tức v(x)  k.
– v |= x  k tức v(x)  k.
– v |= g
1
 g
2
tức v |= g
1
và v |= g
2
.
Định nghĩa 1: Ôtômat thời gian (Timed Automaton - TA) là một bộ gồm sáu

thành phần A= (L, l
0
, , X, I, E), trong đó:
– L là một tập hữu hạn các vị trí,
– l
0
 L là vị trí ban đầu,
–  là tập hữu hạn các nhãn của hành động,




9
– X là tập hữu hạn các đồng hồ,
– I: S → φ(X) là một ánh xạ gán mỗi vị trí l

 L với một ràng buộc đồng hồ I(l)
được gọi là bất biến của vị trí l. Tính bất biến của l nghĩa là chỉ cho phép ở vị
trí l trong một khoảng thời gian nào đó, không cho phép ở quá lâu,
– E  L × φ(X) ×  × 2
X
× L là tập hữu hạn các phép chuyển vị trí, và e = <l, ,
a, λ, l’>  E, với l, l’ L,   φ(X), a  Σ, λ  X, cho phép ôtômat chuyển từ
vị trí l tới l’ với nhãn a nếu điều kiện  được thỏa mãn,  gọi là ràng buộc của
e, λ là tập các đồng hồ được khởi tạo lại bởi e, và a là hành động của e. Ta
cũng có thể viết l
 

,,a
l’.

Định nghĩa 2: Một hệ chuyển thời gian (Timed Transition System - TTS) là một
bộ gồm 4 thành phần S = (S, s
0
,
→,
), trong đó:
– S là một tập trạng thái hữu hạn hoặc vô hạn,
– s
0
S là trạng thái ban đầu,
– →  S x (  R) x S là tập các phép dịch chuyển thỏa mãn 3 điều kiện sau:
1) Nếu s

0
s’ thì s = s’.
2) Nếu s

d
s’ và s’

'd
s’’ với d, d’ R thì s
 
 ''dd
s’’.
3) Nếu s

d
s’ với d R
+

thì sẽ tồn tại d’ R
+
, s’’  S sao cho: s

'd

s’’ và s’’

 'dd
s’.
Định nghĩa 3: Cho ôtômat thời gian A = (L, l
0
, , X, I, E). Ngữ nghĩa của A
được định nghĩa bởi một hệ chuyển thời gian S
A
= (S, s
0
, →, Σ) trong đó:
 S = L x R
X
là tập các trạng thái,
 S
0
= (l
0
, v
0
)  S, với v
0
(x) = 0, x  X, là trạng thái ban đầu

 → là phép dịch chuyển gồm 2 thành phần:
1) Hành động chuyển: (l, v)

a
(l’, v’) nếu tồn tại phép chuyển:
e = <l, , a, λ, l’>  E sao cho v |=  và v’ = v[λ:=0] |= I(l’).
2) Thời gian trễ: (l,v)

d
(l, v+d) với d  R nếu và chỉ nếu v + d |= I(l).
2.1.2. Dáng điệu và đường chạy của ôtômat thời gian
Một hành động thời gian là một cặp (t, a) trong đó a   là một hành động của
ôtômat A được thực hiện sau khi ôtômat A đã hoạt động được t  R
+
đơn vị thời gian.




10

Một dáng điệu (timed trace) hay một từ (timed word) ξ của ôtômat thời gian A là một
dãy vô hạn hoặc hữu hạn các hành động ξ = (t
0
, a
0
) (t
1
, a
1

) (t
i
, a
i
) trong đó t
i
< t
i+1
,
i  0.
Một dẫn xuất r của ôtômat thời gian A = (L, s
0
, , X, I, E) với trạng thái ban đầu
(s
0
, v
0
) ứng với dáng điệu ξ = (t
0
, a
0
) (t
1
, a
1
) (t
i
, a
i
) là một dãy hữu hạn hoặc vô hạn

các phép chuyển r: (s
0
,v
0
)
 
11
,ad
( s
1
,v
1
)
 
22
,ad
( s
2
,v
2
) …
 
mm
ad ,
( s
m
,v
m
) …
thỏa mãn điều kiện t

i
= t
i-1
+ d
i
, i > 0.
Như vậy, với dáng điệu ξ và đường chạy r tương ứng, ta có: t
i
 t
i-1
và t
i
là thời
điểm hệ chuyển từ vị trí s
i-1
tới s
i
với mọi i > 0. Tức là hệ thống nằm tại vị trí s
i-1
trong
d
i
= t
i
- t
i-1
đơn vị thời gian và chuyển đến vị trí s
i
bởi một phép chuyển e = <s
i-1

, , a, λ,
s
i
> nào đó.
2.1.3. Ôtômat hợp song song
Xét n ôtômat thời gian A
i
= (L
i
, l
0
i
, 
i
, X
i
, I
i
, E
i
) và một hàm đồng bộ f:



n
i
i
eE
1
}){(

→ {0,1}, trong đó e là cạnh rỗng, ta kí hiệu: A = A
1
|| A
2
||…|| A
n
= (L,
l
0
, , X, I, E) là một ôtômat (được gọi là ôtômat hợp song song của các ôtômat thành
phần A
i
), trong đó:
 A = A
1
x A
2
x…x A
n
và l
0
= l
0
1
x l
0
2
x x l
0
n

,
 X = X
1
 X
2
 …

 X
n
, (X
i
 X
j
= , với j ≠ i),
 E là tập các phép chuyển, mỗi phép chuyển a ứng với một bộ f(e
1
, e
2
,…, , e
n
)
= 1, với e
i
= <l
i
,
i
, a
i
, λ

i
, l’
i
> và e
i
≠ e,
 I(l) =

n
i
i
lI
1
)(

, và  (l) =


n
i
i
l
1
)(
.
Cho một phép chuyển a  E, phép chuyển a được gọi là phép chuyển đồng bộ
khi và chỉ khi a xảy ra đồng thời trên hơn một ôtômat, ngược lại thì ta gọi là phép
chuyển cục bộ.








11

2.2. Kỹ thuật phân vùng
2.2.1. Vùng của ôtômat thời gian
Hai trạng thái s và s’ là tương đương khi một hành động chuyển a bất kỳ (với
thời gian trễ d bất kỳ) được phép thực hiện từ s thì hành động a cũng có thể thực hiện
được từ s’ (với thời gian trễ d’ bất kỳ). Như vậy kết quả của 2 trạng thái là tương
đương. Chú ý rằng tính chính xác của thời gian trễ ở đây không được quan tâm. Ta nói
hai trạng thái (l,v) và (l’,v’) là tương đương nếu l = l’ và v  v’. Quan hệ v  v’ sẽ trình
bày dưới đây.
Cho φ(X) là tập các ràng buộc đồng hồ trên X. Cho   φ(X), gọi c
x
là số nguyên
lớn nhất xuất hiện trong các ràng buộc của đồng hồ x trong . Alur và Dill đề xuất một
quan hệ tương đương  như sau [3].
Cho t R
+
, ta kí hiệu t và fr(t) lần lượt là phần nguyên và phần thập phân của
số thực t, tức là t = t + fr(t). Hai thể hiện v và v’ được gọi là tương đương và được kí
hiệu là v  v’ nếu với mọi đồng hồ x, y  X thỏa mãn 3 điều kiện sau:
1. v(x)  c
x
 v’(x)  c
x
.

2. Nếu v(x)  c
x
thì v(x) = v’(x) và (fr(v(x)) = 0  fr(v’(x)) = 0).
3. Nếu v(x)  c
x
và v(y)  c
y
thì fr(v(x))  fr(v(y))  fr(v’(x))  fr(v’(y)).
Như vậy, có thể thấy điều kiện (1) và (2) nói rằng hai thể hiện đồng hồ tương
đương cùng thỏa mãn hoặc cùng không thỏa mãn một ràng buộc đồng hồ trong ôtômat
thời gian. Điều kiện 3 đảm bảo rằng hai thể hiện đồng hồ tương đương có thời gian trôi
(delay time) là như nhau cả về giá trị cũng như về thứ tự thời gian.
Tóm lại: Quan hệ tương đương  phân hoạch tập các thể hiện của đồng hồ thành
các lớp tương đương gọi là vùng đồng hồ tương đương (region) với tính chất: Hai thể
hiện thuộc cùng một region sẽ cùng thỏa mãn hoặc cùng không thỏa mãn một ràng
buộc đồng hồ bất kỳ trong tập các ràng buộc của tập đồng hồ X. Kí hiệu [u] là tập các
thể hiện đồng hồ tương đương với u hay vùng đồng hồ chứa u. Số vùng của không
gian trạng thái của ôtômat thời gian là hữu hạn.
2.2.2. Đồ thị vùng
Cho một ôtômat A và quan hệ tương đương. Chúng ta sẽ xây dựng một ôtômat
hữu hạn R
A
như sau:
 Trạng thái của ôtômat là 1 cặp (l, R) trong đó l là vị trí của ôtômat A và R là




12


một vùng đồng hồ của ôtômat A,
 Trạng thái bắt đầu (l
0
, R
0
), với l
0
là trạng thái bắt đầu của A, R
0
là vùng mà
với mỗi v
0
[x:=0]  R
0
,
 Phép dịch chuyển (l,R)

a
(l’,R’) nếu tồn tại 1 phép dịch chuyển
l
 
rag ,,
l’ trong A, với mỗi v  R, và t  0 sao cho:
v + t |= I(l), v + t |= g, (v + t)[r:=0] |= I(l’), và (v + t)[r:=0]  R’.
Ôtômat hữu hạn này được gọi là ôtômat vùng R
A
hay đồ thị vùng R
A
của ôtômat
A.

Một ôtômat và đồ thị vùng của nó được cho trong hình 2.1.

Hình 2.1: Đồ thị vùng




13

Về mặt lý thuyết thì đồ thị vùng là rất đẹp nhưng không hiệu quả và khó thực
hiện, vì nó có nhược điểm là khả năng bùng nổ số vùng. Một thể hiện không gian trạng
thái của ôtômat thời gian hiệu quả hơn dựa trên miền (zone) và đồ thị miền (zone-
graphs), được trình bày trong phần tiếp theo dưới đây.
2.3. Kỹ thuật phân miền
2.3.1. Định nghĩa
Định nghĩa 1: Một miền (zone) là một ràng buộc đồng hồ, là một tập lớn nhất
các thể hiện đồng hồ thỏa mãn ràng buộc. Nó còn được biết như là một tập thể hiện
hiệu quả và được lưu trữ trong bộ nhớ như là DBMs (Difference Bound Matrices).
Định nghĩa 2: Miền là một tập đa diện lồi được giới hạn bởi các bất đẳng thức
tuyến tính trên các đồng hồ, và có dạng

nji
jiji
cxx


0
,
)~(
, trong đó:

 Đồng hồ đặc biệt x
0
= 0,
 n là số đồng hồ,
 Quan hệ   {, },
 c
i,j
là các hằng số bao gồm cả  và -.
Các miền đồng hồ nhỏ nhất có thể là các vùng (regions) đồng hồ.
Cho ràng buộc đồng hồ , kí hiệu [] là tập lớn nhất các thể hiện đồng hồ thỏa
mãn . Để thuận tiện ta sử dụng  thay cho [] mà không sợ bị nhầm lẫn. Kí hiệu B(X)
là tập các miền.
2.3.2. Các phép toán thực hiện trên miền
1) Phép giao của  và ψ:    = {v | v   và v  }

Hình 2.2: Phép giao




14

2) Phép thiết lập lại tập đồng hồ r về giá trị 0 ([r:=0]): [r:=0] = {v[r:=0] | v}

Hình 2.3: Thiết lập lại giá trị đồng hồ
3) Thời gian trôi (

): 

= {u + d | u  , d  R

+
}

Hình 2.4: Phép trôi
2.3.3 Đồ thị miền
Cho ôtômat thời gian A, tập các miền (zones) B(X), đồ thị miền Z
A
của ôtômat A
được định nghĩa như sau:
– Các đỉnh là các trạng thái (l, ),
– Đỉnh xuất phát (l
0
, [X:=0]),
– Quan hệ dịch chuyển trong Z
A
được định nghĩa như sau:
1) Hành động dịch chuyển trong Z
A
: (l,)

a
(l’,(  g)[r:=0]  I(l’)) nếu
tồn tại cạnh l
 
rag ,,
l’ trong ôtômat A.
2) Thời gian trôi trong Z
A
: (l,)  (l, 


 I(l)) với mỗi vị trí l của A.
Ví dụ: đồ thị miền của ôtômat cho trong hình 2.5.




15


Hình 2.5: Đồ thị miền
Nhận xét: Với cùng một ôtômat thì đồ thị miền có số đỉnh ít hơn rất nhiều so với
đồ thị vùng tương ứng, tức là độ phức tạp của bài toán đồ thị miền theo đó cũng giảm
theo.
2.4. Công thức bất biến khoảng tuyến tính (LDI)
Cho A=<L, l
0
, , X, I, E> là một ôtômat thời gian. Một bất biến khoảng tuyến
tính (Linear Duration Invariant – LDI) trên hệ thời gian thực S là một tính chất được
biểu diễn bởi công thức D trong DC (Lôgic khoảng – Duration Calculus) có dạng
D: A  l  B 



m
i
ii
sc
1
 M
Trong đó s

i
 S; A, B, c
i
≠ 0, M là các hằng số thực (B có thể là ), s
i
kí hiệu
cho độ dài khoảng thời gian xuất hiện của vị trí s
i
, l là độ dài của khoảng thời gian
quan sát.
Trường hợp A = 0, B = , khi đó phần điều kiện của công thức trên có thể được
lược bỏ và ta thu được công thức mới D:



m
i
ii
sc
1
 M.
Công thức này biểu diễn cho một tính chất được gọi là tính chất khoảng tuyến
tính (Linear Duration Properties – LDP). Hai công thức LDI và LDP mô tả lớp các
tính chất thời khoảng hay gặp trong thực tế.




16




2.5. Bài toán bếp ga
Ví dụ bếp ga (Gas Burner) [5]: Bếp ga là một thiết bị tạo ra lửa để đun nóng các
sản phẩm bằng việc sử dụng nhiên liệu thể khí. Gas gọi là bị rò (leak) nếu van gas mở
và lửa không cháy. Một cảm biến sử dụng để phát hiện ra gas bị rò và sẽ tự động đóng
van gas lại trong vòng 1 giây. Do vậy, van gas không nên mở trong khoảng thời gian
30 giây để tránh việc tích tụ gas rò, tức là khoảng cách giữa 2 lần rò gas liên tiếp
không nhỏ hơn 30 giây. Gas có thể rò mà không cháy tại một thời điểm bất kỳ sau khi
mở van. Mô hình ôtômat thời gian thực của bếp ga được cho trong hình dưới đây:

Hình 2.6: Ôtômat thời gian của bếp ga
Yêu cầu an toàn của bếp gas: tỉ lệ của tổng thời gian rò gas không vượt quá một
phần hai mươi của một đoạn thời gian quan sát bất kỳ không ngắn hơn một phút.
Yêu cầu an toàn của bếp gas được đặc tả bằng công thức LDI như sau:
1) Gọi l là độ dài đoạn thời gian quan sát, ta có l  60 và l =  Leak +  NLeak.
2) Theo yêu cầu an toàn thì  Leak  (1/20) x l.
Từ (1) và (2) ta có công thức LDI đặc tả yêu cầu an toàn của bếp gas:
l  60  19 x  Leak -  NLeak  0.


×