Cuối cùng mô hình Sapi là mô hình có giá trị thực tiễn của hệ thống tính cước của G-Mobile Cấu trúc luận văn: Luận văn gồm các phần: 4 chương, kết luận và tài liệu tham khảo.Các phần cò
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN TÀI TUẤN
KIỂM CHỨNG CÁC TÍNH CHẤT THỜI GIAN THỰC CHO HỆ THỐNG ĐỒNG THỜI BẰNG RT - SPIN
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Hà Nội, 2013
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN TÀI TUẤN
KIỂM CHỨNG CÁC TÍNH CHẤT THỜI GIAN THỰC CHO HỆ THỐNG ĐỒNG THỜI BẰNG RT - SPIN
Ngành: Công nghệ Thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Trường Thắng
Hà Nội, 2013
Trang 3MỤC LỤC
Nội dung
Lời cảm ơn i
Lời cam đoan ii
MỤC LỤC iii
Danh mục hình vẽ v
Danh mục ký hiệu, từ viết tắt vi
Chương 1: Mở đầu 1
Chương 2 Cơ sở kiểm chứng mô hình 3
2.1 Kiểm chứng dựa trên mô hình 3
2.1.1 Khái niệm 3
2.1.2 Các bước thực hiện 5
2.2 Ngôn ngữ Promela và Spin 5
2.2.1 Ngôn Ngữ Promela 5
2.2.2 Spin 7
2.3 Giới thiệu về hệ thống thời gian thực 11
2.3.1 Khái niệm 11
2.3.2 Đặc điểm của hệ thống thời gian thực 12
2.3.3 Cấu tạo hệ thời gian thực 13
2.3.4 Vì sao chọn hệ thời gian thực 13
2.4 Kết luận 13
Chương 3 - Otomat thời gian 15
3.1 Giới thiệu 15
3.2 Otomat ω 16
3.3 Otomat thời gian 18
3.3.1 Ngôn ngữ thời gian 19
3.3.2 Bảng chuyển trạng thái với các ràng buộc thời gian 20
3.3.3 Các ràng buộc đồng hồ và đồng hồ biên dịch 22
3.3.4 Các bảng chuyển trạng thái thời gian 22
3.3.5 Ngôn ngữ hình thức thời gian 23
Trang 43.3.6 Các tính chất của ngôn ngữ hình thức thời gian 25
3.3.7 Otomat Muller thời gian 27
3.4 Kiểm tra tính rỗng 28
3.4.1 Giới hạn đến các hằng nguyên 28
3.4.2 Các miền Đồng hồ 28
3.3.3 Otomat miền 30
3.3.4 Cấu trúc không thời gian 33
3.5 Otomat thời gian xác định 34
3.5.1 Định nghĩa 34
3.5.2 Các tính chất đóng 36
3.5.3 Sự biểu cảm 37
3.6 Ví dụ về kiểm chứng 38
3.7 Kết luận 41
Chương 4 Tích hợp thời gian với Spin 42
4.1 Giới thiệu 42
4.2 Mở rộng Spin và Promela với thời gian thực 43
4.2.1 Ngôn ngữ thời gian và Otomat Buchi thời gian 43
4.2.2 Ngữ nghĩa trong Promela không có thời gian và có thời gian 44
4.2.3 Mở rộng Spin với thời gian thực 45
4.2.4 Định nghĩa TBA dựa trên chương trình Promela thời gian thực 46
4.3 Mở rộng Spin và Promela với thời gian rời rạc 47
4.3.1 Mô hình thời gian rời rạc 47
4.3.2 Cú pháp Spin với mô hình thời gian rời rạc 48
Chương 5 Thực nghiệm Spin với hệ thống thời gian thực 51
5.1 Thực nghiệm kiểm chứng giao thức truyền và nhận thông báo song song 51
5.2 Thực nghiệm kiểm chứng giao thức hệ thống Sapi 57
5.1 Thực nghiệm kiểm chứng Train-Gate-Controller 61
5.4 Kết luận 64
KẾT LUẬN 66
TÀI LIỆU THAM KHẢO 67
Trang 5Hình 3.1 : Otomat Buchi chấp nhận (a+b)*aω
Hình 3.2 : Otomat Muller xác định chấp nhận (a+b)*aω
Hình 3.3 : Ví dụ bảng chuyển trạng thái thời gian
Hình 3.4 : Bảng chuyển trạng thái thời gian với 2 đồng hồ (đồng hồ) Hình 3.5 : Otomat Buchi thời gian chấp nhận Lcrt
Hình 3.6 : Otomat thời gian mô hình hóa hành vi lặp định kỳ
Hình 3.7 : Otomat thời gian chấp nhận ngôn ngữ Lconverge
Hình 3.8 : Otomat Muller thời gian
Trang 6Danh mục ký hiệu, từ viết tắt
SPIN Simple Promela Interpreter Biên dịch ngôn ngữ Promela đơn
LTL Linear time logic Logic thời gian tuyến tính
TS Transition system Hệ thống chuyển trạng thái
RTS Real Time System Hệ thống thời gian thực
TBA Timed Buchi Automata Otomat Buchi thời gian
MTA Muller Timed Automata Otomat Muller thời gian
DTMA Deterministic Timed Muller
Automata
Otomat Muller thời gian xác định
DTBA Deterministic Timed Buchi
Automata
Otomat Buchi thời gian xác định
TTS Timed transition system Hệ thống chuyển trạng thái theo
thời gian
Trang 7Chương 1: Mở đầu
Kiểm chứng mô hình là một kỹ thuật kiểm chứng tự động các hệ thống hữu hạn trạng thái Kiểm chứng mô hình xác minh tính đúng đắn của một mô hình bằng việc xác định xem các thuộc tính người dùng mong muốn có được thỏa mãn bởi mô hình
đó hay không [8] Về nguyên tắc hoạt động, hệ thống cần kiểm chứng sẽ được mô hình hóa Công cụ kiểm chứng sẽ kiểm tra mô hình có thỏa mãn các thuộc tính được cho hay không Nhờ khả năng duyệt qua tất cả các trạng thái trong mô hình mà tính đúng đắn của kết quả kiểm chứng mô hình luôn được đảm bảo Tuy nhiên cho đến nay, kiểm chứng mô hình chủ yếu tập trung bào các hệ phi thời gian hoặc các tính chất thời điểm của hệ thời gian thực, tính chất khoản vẫn còn ít và hầu như các thuật toán này chỉ giải quyết bài toán theo ngữ nghĩa đã thu hẹp của tính chất cần kiểm chứng Promela là ngôn ngữ mô hình mức cao nhằm đặc tả hệ thống Thứ tự thởi gian của các hành động trong chương trình promela dựa trên trình tự của các lệnh trong tiến trình Tuy nhiên ngôn ngữ không cho phép đo lường chính xác khoảng thời gian giữa hai sự kiện [10] Thực tế rất nhiều hệ thống bao gồm các giao thức giao tiếp, các mạch không đồng bộ, các bộ điều khiển đèn hay giao thông và các hệ thống thực hiện thời gian thực cần được mô tả như các hệ thống thời gian thực
Do đó thúc đẩy cần mở rộng Promela cho thời gian thực trong đó thời gian liên tục và số các sự kiện có thể xảy ra giữa hai khoảng thời gian không bị chặn Hiện tại
có hai công cụ tích hợp thời gian với Spin DtSpin và RtSpin [5][13] Cả hai công cụ đều dựa trên lý thuyết Otomat thời gian (timed Otomat) RtSpin có thể mô hình Otomat thời gian với các đồng hồ thời gian thực nhưng khá cồng kềnh Hạn chế của RtSpin không tương thích với thuật toán giảm số lượng không gian trạng thái của hệ thống DtSpin dựa trên Otomat thời gian lý tưởng, thời gian được chia thành các khoảng thời gian bằng nhau và thời gian được biểu thị là các số tự nhiên DtSpin tương thích với thuật toán giảm số lượng không gian trạng thái của hệ thống Tuy nhiên DtSpin chỉ mở rộng với thời gian rời rạc
Nội dung nghiên cứu: Tìm hiểu Spin, hệ thống thời gian thực, lý thuyết Otomat thời gian và tích hợp thời gian với công cụ Spin
Phần đầu của luận văn ta nghiên cứu về Spin, hệ thống thời gian thực và lý thuyết mô hình kiểm chứng Ta cũng đưa ra những khái niệm cơ bản về kiểm chứng mô hình và
hệ thống thời gian thực là cơ sở nên tảng để thực hiện tích hợp và các công cụ tích hợp thời gian thực với Spin nhằm định lượng khoảng thời gian giữa các sự kiện và các ràng buộc về thời gian Hai công cụ này dựa trên lý thuyết Otomat thời gian Trong đó RtSpin dựa trên mô hình thời gian liên tục, DtSpin dựa trên mô hình thời gian rời rạc Cuối cùng ta đưa ra một số thực nghiệm với công cụ RtSpin và DtSpin bao gồm: mô
Trang 8hình train-gate-controller được đặc tả trong phần lý thuyết Otomat thời gian, bài toán này là bài toán kinh điển và là tiền đề để kiểm chứng các hệ thổng điều khiển giao thông Tiếp đến ta cũng kiểm chứng giáo thức truyền nhận song song dựa trên các kênh truyền và gửi thông thông báo có thể mất mát thông tin Cuối cùng mô hình Sapi
là mô hình có giá trị thực tiễn của hệ thống tính cước của G-Mobile
Cấu trúc luận văn: Luận văn gồm các phần: 4 chương, kết luận và tài liệu tham
khảo.Các phần còn lại của luận văn có cấu trúc như sau:
Chương 2: Đầu tiên ta tìm hiểu Cơ sở lý thuyết cho kiểm chứng mô hình, một công nghệ tự động trong đó mô hình với tập trạng thái hữu hạn của hệ thống và một tính chất logical, hệ thống sẽ kiểm tra xem tính chất đó Spin một công cụ kiểm chứng
mô hình Spin là công cụ nhằm phân tích tính logic của hệ thống đồng thời, các giao thức giao tiếp dữ liệu Hệ thống được mô hình hóa bởi ngôn ngữ Promela Tiếp đến ta cũng trình bày các hệ thống thời gian thực
Chương 3: Atomat thời gian mô hình hóa các hành vi hệ thống thời gian thực Cung cấp các định nghĩa, đồ thị chuyển trạng thái với ràng buộc thời gian sử dùng nhiều đồng hồ giá trị thực Otomat thời gian chấp nhận chấp nhận từ ký tự và thời gan – trình tự vô hạn với giá trị thời gian liên kết với ký tự vào Chúng ta cung xem xét các tính chất đóng với Otomat xác định và không xác đinh Cuối cùng xem xét ứng dụng của lý thuyết nhằm kiểm thử các yêu cầu của hệ thống với các trạng thái hữu hạn
Chương 4: Vì Promela truyền thống không chứa thời gian Trong chương này giới thiệu mở rộng thời gian thực với công cụ spin và Promela, có hai thành công bao gồm RtSpin (Real-time Spin) và DtSpin (Discrete time Spin) nhằm mở rộng Spin với thời gian Trong đó RtSpin dựa trên mô hình thời gian liên tục, DtSpin dựa trên mô hình thời gian rời rạc
Chương 5: Dựa trên cơ sở của chương 4 Trong chương này ta đưa ra một số thực nghiệm với công cụ RtSpin và DtSpin bao gồm: mô hình train-gate-controller được đặc tả trong phần lý thuyết Otomat thời gian, bài toán này là bài toán kinh điển
và là tiền đề để kiểm chứng các hệ thổng điều khiển giao thông Tiếp đến ta cũng kiểm chứng giáo thức truyền nhận song song dựa trên các kênh truyền và gửi thông thông báo có thể mất mát thông tin Cuối cùng mô hình Sapi là mô hình có giá trị thực tiễn của hệ thống tính cước của G-Mobile
Trang 9Chương 2 Cơ sở kiểm chứng mô hình
Quá trình thiết kế mô hình của hệ thống bằng ngôn ngữ mô hình Promela làm việc dựa trên các khái niệm về kiểm chứng mô hình Chương này sẽ lần lượt trình bày những khái niệm cơ bản về kiểm chứng mô hình và hệ thống thời gian thực
2.1 Kiểm chứng dựa trên mô hình
2.1.1 Khái niệm
Nhằm kiểm tra xem hệ thống phần mềm có đáp ứng được các yêu cầu đề ra, một nhiệm vụ thách thức là hệ thống phải đảm bảo tính đồng thời (concurrency) Tính đồng thời của hệ thống nhằm đảm bảo các tiến trình chạy song song và xen kẽ lẫn nhau sử dụng tài nguyên chung Các công nghệ kiểm chứng bao gồm Dijkstra, Floyd, Gries, Hoare, Owicki, Manna and Plueni Kiểm chứng là một mô hình lý thuyết và được thực hiện dựa trên khả năng tính toán của máy tính [4]
Trong quá trình phát triển phần mềm, càng phát hiện ra lỗi sớm thì việc phát triển sẽ dễ dàng hơn Tuy nhiên, việc phát hiện lỗi nhờ kiểm chứng thường rất muộn Một giải pháp nhằm cải thiện, chúng ta nên thực hiện kiểm chứng để có thể phát hiện lỗi sớm hơn
Hình 2.1: Vấn đề với kiểm chứng
Requirement Analyis
System Design
Operation And Mantenance
Acceptance Testing
System Testing
Program Design Unit and Integration
Testing
Coding
Trang 10Kiểm chứng dựa trên mô hình là một kỹ thuật kiểm chứng mà các hoạt động của hệ thống được chạy thử trong một thời gian sẽ được dự đoán trước, nó được thực hiện bởi một đặc tả hình thức hoặc một mô hình của hệ thống
Các mẫu thiết kế hay mô hình là mô tả đơn giản của hệ thống dựa trên yêu cầu
hệ thống và chức năng xác định, giúp chúng ta có thể hiểu và dự đoán được hành vi của hệ thống
Năm 1981 Clarke and Emerson đã đưa ra định nghĩa: Kiểm chứng mô hình là một kỹ nghệ tự động trong đó mô hình với tập trạng thái hữu hạn của hệ thống và một tính chất logical, hệ thống sẽ kiểm tra xem tính chất đó (với trạng thái đã cho) trong
mô hình Được phát minh cách đây 20 năm bởi các nhóm nghiên cứu, được sử dụng trong đơn vị công nghiệp chuyên biệt [10]
Hình 2.2: Kiểm chứng mô hình Thông thường có hai cách tiếp cận với ứng dụng của kiểm chứng mô hình Cách tiếp cận verification: luôn luôn bảo đảm sự đúng đắn của mô hình chi tiết M của
hệ thống dưới dạng tính đúng đắn Cách tiếp cận Debugging: luôn luôn đi tìm lỗi trong mô hình M
Kiểm chứng mô hình là phương pháp hiệu quả nhất trong việc tiếp cận gỡ lỗi thiết kế Mô hình không chỉ tốt trong gỡ lỗi mà còn tìm lỗi bugs rất sớm trong việc thiết kế một hệ thống mới
Các bước thực hiện xây dưng Kiểm chứng mô hình Đầu tiên ta mô hình hóa hệ thống (xây dựng mô hình M cho hệ thống) Tiếp đến ta xây dựng yêu cầu dưới dạng
Mô hình M Byte n Property anp() do
od
Property Φ [] (n <5)
Model Checker
YES Tính chất thỏa mãn
No + Vêt lỗi
Trang 11biểu thức Ф Cuối cùng ta quyết định (deciding) và các thuật toán kiểm tra (được thực hiện trong các công cụ kiểm chứng mô hình)
2.1.2 Các bước thực hiện
Quá trình kiểm chứng dựa trên mô hình được bắt đầu bằng việc xác định yêu cầu của hệ thống từ đó xây dựng mô hình dựa vào các yêu cầu và chức năng của hệ thống Việc xây dựng mô hình còn phải dựa trên các yếu tố dữ liệu đầu vào và đầu ra
Mô hình này được sử dụng để sinh ra các ca kiểm thử Chúng ta có thể biết kết quả đầu ra mong đợi từ mô hình hoặc từ quy định chuẩn (oracle) Khi chạy kịch bản và kết quả thu được sẽ được so sánh với kết quả mong đợi Từ đó quyết định hành động tiếp theo như sửa đổi mô hình hoặc dừng kiểm thử,…
Các bước để thực hiện kiểm thử dựa trên mô hình Xây dựng mô hình dựa trên các yêu cầu và chức năng của hệ thống Tiếp đến tạo đầu ra dự kiến từ mô tả bài toán Sau đó ta chạy kịch bản kiểm chứng và so sánh kết quả đầu ra thực tế với kết quả đầu
ra dự kiến Cuối cùng ta 1uyết định hành động tiếp theo (Sửa đổi mô hình, tạo thêm ca kiểm chứng, dừng kiểm chứng, đánh giá chất lượng của phần mềm)
2.2 Ngôn ngữ Promela và Spin
Spin (Simple Promela Interpreter) là công cụ nhằm phân tích tính logic của hệ thống đồng thời, các giao thức giao tiếp dữ liệu Hệ thống được mô hình hóa bởi ngôn ngữ Promela
Ngôn ngữ Promela cho phép tạo các tiến trình giao tiếp với nhau trên các kênh đồng bộ hoặc không đồng bộ Ngôn ngữ Promela nhúng ngôn ngữ lập trình C và là ngôn ngữ đặc tả để mô hình hóa hệ thống trạng thái hữu hạn
2.2.1 Ngôn Ngữ Promela
Với Spin, ngôn ngữ Promela đựợc sử dụng để xây dựng mô hình của hệ thống và các tính chất của nó Promela là ngôn ngữ không tất định, là một trong các ngôn ngữ
có cú pháp và ngữ nghĩa tương tự ngôn ngữ C
Một chương trình Promela bao gồm khai báo định nghĩa kiểu, biến, kênh, một hay nhiều tiến trình, mỗi tiến trình chứa một chuỗi các câu lệnh Các tiến trình có thể
có tham số hoặc không.Các tiến trình được khai báo với từ khóa kích hoạt sẽ được khởi tạo và gán một giá trị pid (process id) duy nhất
Một tiến trình thực hiện đồng thời với các tiến trình khác và giao tiếp với các tiến trình khác bằng cách sử dụng biến chung phần hay giao tiếp qua các kênh Trạng thái của tiến trình được đặc trưng bởi vị trị lệnh tiến trình đang thực hiện và nội dung
Trang 12của các biến Tiến trình được khởi tạo bởi hàm run() hoặc khai báo kích hoạt khi định nghĩa tiến trình Tiến trình không xác định thời gian thực hiện các lệnh, các tiến trình được giao nhau tuy nhiên các lệnh khác nhau của các tiến trình không xảy ra cùng lúc ngoại trừ kênh giao tiếp đồng thời Mỗi tiến trình ở mỗi điểm có thể thực hiện lựa các hành đồng khác nhau
Một tiến trình bao gồm trình tự các câu lệnh Mỗi câu lệnh có thể thực hiện được ngay lập tức hoặc không thực hiện được Tất cả các câu lệnh là nguyên tử và khi thực hiện không giao với các tiến trình khác Để kiểm chứng các tính chất chắc chắn đúng trong chương trình thường dùng lệnh assert (expr) trong mô hình Promela Lệnh này luôn thực hiện được và nếu biểu thức trả vê 0 thì Spin thông báo một lỗi “has been violated” [12]
mtype = {MSG, ACK}
chan toS = … chang toR = … bool flag;
proctype Sender() {
… } Init {
… }
Hình 2.3: Mô hình promela
Phần thân tiến trình
Khởi tạo các tiến trình
Trang 13Cú pháp của promela tổng kết như Bảng sau:
expression Thực hiện được nếu biểu thức tra về khác 0
assignment Luôn luôn thực hiện được
if Thực hiện được nếu it nhất một bảo đảm
do Thực hiện được nếu it nhất một bảo đảm
Break Luôn thực hiện được (thoát câu lệnh do)
Send (ch!) Thực hiện được nếu kênh không đầy
Receive (ch?) Thực hiện được nếu kênh không rỗng
Bảng 2.1: Khả năng thực hiện của các câu lệnh trong Promela
2.2.2 Spin
Trong chế độ giả lập, Spin biên dịch và chạy một chương trình promela, sau đó
in ra các trạng thái của chương trình [17]
Một trạng thái của chương trình là một bộ các giá trị gồm của các biến, các giá trị của biến đếm vị trí của các tiến trình Một tính toán của chương trình là chuỗi các trạng thái bắt đầu bởi trạng thái khởi tạo và tiếp tục với những trạng thái xuất hiện khi mỗi câu lệnh được thực hiện
Trong ví dụ 2.1 biến n được khởi tạo với giá trị 0, chương trình bao gồm 2 tiến trình: P và Q tương ứng gán biến n giá trị 1 hoặc 2 và in ra giá trị của n cùng tên tiến trình
Ví dụ 2.1.Chương trình với 2 tiến trình
Spin là công cụ kiểm tra mô hình kiểm thử tính chất trong dó M là mô hình của
hệ thống với số trạng thái hữu han và Φ là tính chất cần kiểm thử được quy định dưới dạng một số ký hiệu hình thức
Trang 14Với Spin có thể kiểm tra những loại tính chất: khóa chết (Deadlocks) là trạng thái có một tiến trình chiếm hữu tài nguyên lâu dài làm cho các tiến trình có nhu cầu
sử dụng tài nguyên này luôn ở trạng thái đợi mãi mãi hay còn gọi trạng thái kết thúc không hợp lệ, tính khẳng định (assertions) là cách đơn giản để kiểm tra chương trình Một assertion là một mệnh đề được đặt trong 1 chương trình mà ta cho rằng mệnh đề
sẽ luôn đúng tại vị trí đó Spin sẽ tính toán các assertion trong quá trình tìm kiếm phản
ví dụ trong không gian trạng thái của chương trình, code không đạt được (unreachable code) là cách kiểm tra có những đoạn mã lệnh trong tiến trình nhưng không bao giờ được thực hiện, công thức LTL, tính chất sống động (liveness properties) Tính chất sống động bao gồm: không có vòng lặp tiến trình (non-progress cycles) và vòng lặp chấp nhận được (acceptance cycles) Khi kiểm tra tính chất không có vòng lặp tiến trình, bộ kiểm chứng sẽ cảnh báo nếu có một thực hiện không đi qua vô hạn lần trạng thái tiến trình Trong đó trạng thái tiến trình là trạng thái hệ thống mà một số tiến trình đang thực hiện lệnh được gán nhãn với tiền tố "progress" Khi kiểm tra tính chất có vòng lặp chấp nhận được, bộ kiểm chứng sẽ cảnh báo nếu có một thực hiện đi qua vô hạn lần trạng thái chấp nhận được Trong đó trạng thái chấp nhận được là trạng thái hệ thống mà một số tiến trình đang thực hiện lệnh được gán nhãn với tiền tố
"acceptance"
Spin sẽ tính toán assertion tại một vị trí nhất định trong chương trình mà ở đó assertion được thêm vào, do vậy assertion có hạn chế trong việc biểu diễn tính chất của mô hình
Ta cần dùng đến logic thời gian tuyến tính (LTL), LTL mạnh mẽ hơn trong việc biểu diễn tính chất của mô hình (hệ thống) Với LTL ta có thể diễn tả những tính chất chung cần được thỏa mãn mà không liên quan đến một vị trí nào trong chương trình LTL đặc biệt phù hợp với các hệ thống tương tác khi tính đúng đắn của hệ thống không chỉ thể hiện ở kết quả tính toán mà ta phải kiểm tra sự giao tiếp và thực thi các tiến trình trong hệ thống
[ ] A: hệ thống luôn luôn mang tính chất A
<> A: nếu hệ thống có tính chất A tại một thời điểm nào đó trong tương lai thì ta nói hiện tại hệ thống có tính chất <> A
A U B: tại thời điểm hiện tại hệ thống có tính chất A U B có nghĩa là: nếu trong một thời điểm nào đó trong tương lai hệ thống có tính chất B thì hệ thống có tính chất
A tại tất cả các thời điểm từ hiện tại cho tới khi nó mang tính chất B
Trong nhiều trường hợp, hệ thống xây dựng phải thỏa mãn một tính chất bất biến nào đó Với LTL ta biểu diễn tính chất đó bởi toán tử []
Trang 15Chẳng hạn có thể biểu diễn một số tính chất bằng LTL
Safety (tính an toàn): Tính an toàn của một chương trình đảm bảo rằng sẽ không bao giờ xảy ra tình huống xấu trong chương trình (“something bad never happen”)
Tính an toàn có thể được biểu diễn bằng temporal logic như sau:
G ϕ trong LTL
Trong đó ϕ là một biểu thức logic
Ví dụ của tính an toàn:
- Nhiệt độ của phản ứng không bao giờ quá 100 độ C
- Bất kì lúc nào chìa khóa xe chưa vặn tới vị trí khởi động, xe sẽ không nổ máy
Liveness (tính sống động): Tính liveness của một chương trình đảm bảo rằng
nó có thể thực thi được một chức năng “tốt” nào đó đã đặt ra (“something good will happen eventually”)
Thuộc tính liveness có thể được biểu diễn bằng các phép kết hợp AF hoặc F trong temporal logic:
- Khi chìa khóa xe vặn tới vị trí khởi động, xe sẽ nổ máy
- Bóng đèn sẽ chuyển sang màu xanh
Fairness (tính công bằng) Tính công bằng đảm bảo rằng nếu một sự kiện nào
đó ở trạng thái sẵn sàng được thực thi thì đến một lúc nào đó nó sẽ được thực thi
Thuộc tính công bằng có thể được biểu diễn bằng các toán tử AF và phép suy ra:
AG (san_sang=0 → AF thuc_thi=0)
AG (san_sang=1→ AF thuc_thi =1)
Trang 16Một ví dụ cho tính công bằng trong một hệ thống truyền-nhận tin là khi một gói tin được gửi đi thì đến một lúc nào đó nó sẽ đến được đích
Trong Spin ta chỉ cần biểu diễn tính chất của hệ thống dưới dạng một biểu thức LTL sau đó đưa vào Spin với lênh spin và tham số -f, Spin sẽ tự động chuyển biểu thức LTL sang cấu trúc never claim của Promela dùng vào việc kiểm chứng
Có những tính chất mà ta mong muốn nó không bao giờ được xuất hiện trong hệ
thống Trong Promela nó được biểu diễn bởi never claim Khi thuật toán của chúng ta
là đúng và chương trình không chứa lỗi, Spin sẽ kết thúc sau khi sinh ra tất cả các trạng thái và thông báo không có trạng thái nào vi phạm được tìm thấy
Trang 17Nhãn To_init đảm bảo trong khi chương trình được chạy (và sinh ra các trạng thái), cho đến khi nào A còn đúng, lệnh goto thứ hai luôn luôn được chọn và Spin sẽ liên tục
Nhưng nếu chương trình tính toán đến một trạng thái mà ở đó A sai, Spin nhảy tới nhãn accept_all và kết thúc chương trình
SPIN sử dụng thuật toán tìm kiếm theo độ sâu (depth first search algorithm DFS)
để tạo và thực hiên không gian trạng thái đầy đủ [11]
đó với mỗi kênh trong hệ thống chứa Các biến cục bộ và Bộ đếm tiến trình
2.3 Giới thiệu về hệ thống thời gian thực
2.3.1 Khái niệm
Trong các tài liệu cũng như trong thực tế, khái niệm thời gian thực và hệ thống thời gian thực không phải lúc nào cũng được hiểu một cách thống nhất Nhiều người cho rằng hệ thống thời gian thực là một hệ thống phải làm việc với yêu cầu thời gian rất nhanh Ví dụ các hệ thống điều khiển tay máy, điều khiển động cơ,… Lại có người cho rằng thời gian thực là thời gian tuyệt đối, hệ thống thời gian thực là một hệ thống
có khả năng làm việc với thời gian tuyệt đối theo giờ phút giây ngày tháng Vậy chúng
ta nên hiểu thế nào là hệ thống thời gian thực?
Hệ thống thời gian thực (RTS – Real Time System) là một hệ thống mà tính đúng đắn của nó không chỉ phụ thuộc vào các kết quả logic nó tạo ra mà còn phụ thuộc vào các thời điểm các kết quả được tạo ra
Các trạng thái được lưu trong bảng băm
Yêu cầu trạng thái hợp lệ
Chỉ làm việc với các
tính chất trạng thái
Các trạng thái cũ được lưu trong ngăn xếp tương ứng với một đường thực hiện đầy đủ
Trang 18Như vây, hệ thống thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó 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 có lỗi khi yêu cầu về thời gian không được thỏa mãn
Hệ thống thời gian thực được thiết kế nhằm trả lời lại các yếu tố kích thích phát sinh từ các thiết bị phần cứng
Trong thực tế, các yếu tố kích thích xảy ra trong thời gian rất ngắn vào khoảng vài mili giây, thời gian mà hệ thống trả lời lại yếu tố kích thích đó tốt nhất vào khoảng dưới một giây, khoảng thời gian để xử lý một sự kiện như vậy được gọi là dealtime, dealtime được xác định bởi thời gian bắt đầu và thời gian hoàn tất công việc
Trong RTS cũng cần quan tâm xem những công việc thời gian thực có tuần hoàn hay không Đối với real-time được hiểu công việc tuần hoàn dealtime ấn định theo từng chu kì xác định, đối với công việc không tuần hoàn dealtime xác định vàolúc bắt đầu công việc Các biến cố kích hoạt công việc không tuần hoàn thường dựa trên kỹ thuật xử lý ngắt của hệ thống phần cứng
Một hệ thống realtime được hiểu là một hệ thống làm việc với các sự kiện tức thời (realtime) Tuy nhiên không phải mọi hệ thống đều có thể thực hiện được những qui định tức thời hay đáp trả lại sự kiện một cách tức thời như chúng ta mong muốn Khi bắt tay xây dựng các ứng dụng phần mềm chúng ta luôn mong muốn thời gian trễ
để đưa ra một lệnh hay một quyết định là nhỏ nhất, hay khi xây dựng các ứng dụng phần cứng chúng ta lại muốn thời gian đưa ra một tín hiệu đáp trả một sự kiện là phải gần như tức thời, nhưng sự thực không được như vậy vì các hệ thống đáp ứng sự kiện bao giờ cũng có một thời gian trễ nhất định Khái niệm “hệ thống thời gian thực”,ở đây hiểu ngầm như một hệ thống đáp ứng sự kiện với một thời gian trễ chấp nhận được hay nói cách khác, hệ thời gian thực là hệ thống có các ràng buộc về thời gian đối với các hành động của hệ thống
2.3.2 Đặc điểm của hệ thống thời gian thực
Tính bị động: hệ thống phải phản ứng 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 Ví dụ: Sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển 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 Tuy tính nhanh nhạy là một đặc điểm tiêu biểu nhưng một hệ thống có tính năng thời gian thực không nhất thiết phải có đá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 bên ngoài
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 Có thể cùng một lúc bộ điều khiển được yêu cầu thực hiện nhiều vòng
Trang 19điều chỉnh, giám sát ngưỡng giá trị nhiều đầu vào, cảnh giới trạng thái làm việc của một số động cơ
Tính tiền định: Dự đoán đượ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 Nếu một bộ điều khiển phải xử lý đồng thời nhiều nhiệm vụ ta phải tham gia quyết định được về trình tự thực hiện các công việc và đánh giá được thời gian xử lý mỗi công việc Như vậy người sử dụng mới có cơ sở để đánh giá về khả năng đáp ứng tính thời gian thực của hệ thống
2.3.3 Cấu tạo hệ thời gian thực
RTS có cấu tạo từ các thành tố chính sau: Đồng hồ thời gian thực nhằm cung cấp thông tin thời gian thực Bộ điều khiển ngắt nhằm quản lý các biến cố không theo chu
kỳ Bộ định biểu nhằm quản lý các quy trình thực hiện Bộ quản lý tài nguyên nhằm cung cấp các tài nguyên máy tính Bộ điều khiển thực hiện nhằm khởi động các tiến trình
Các thành tố trên có thể được phân định là thành tố cứng hay mềm tùy thuộc vào
hệ thống và ý nghĩa sử dụng Thông thường, các RTS được kết hợp vào phần cứng có khả năng tốt hơn so với hệ thống phần mềm có khả năng tương ứng và tránh được chi phí quá đắt cho việc tối ưu hóa phần mềm
Hệ thống thời gian thực là hệ thống có ràng buộc về thời gian, tuy nhiên nếu thời gian ràng buộc này bị vi phạm (thời gian trả lời vượt quá giới hạn cho phép) hệ thống vẫn tiếp tục hoạt động bình thường, tác hại không đáng kể
2.3.4 Vì sao chọn hệ thời gian thực
Có thể nói tất cả các hệ thống điều khiển là hệ thời gian thực Ngược lại một số lớn các hệ thống thời gian thực là các hệ thống điều khiển, không hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu về thời gian
Hệ thống thời gian thực được ứng dụng phổ biến trong rất nhiều lĩnh vực như thương mại, quân đội, y tế, giá o dục, cơ sở hạ tầng… và ngày nay đang phát triển mạnh mẽ mà một số lĩnh vực tiêu biểu: Các hệ thống phương tiện như : ô tô, xe điện ngầm, máy bay, tàu hỏa… Các hệ thống điều khiển giao thông: điều khiển không lưu, điều khiển tàu biển…
2.4 Kết luận
Trong chương này chúng tôi trình bày về mô hình kiểm thử với ngôn ngữ Promela và công cụ Spin Kiểm chứng mô hình khảo sát tất cả các trạng thái có thể của hệ thống là kiểm tra rằng chúng chứa sự đúng đắn đã được đặc tả Việc sinh ra các
Trang 20trạng thái và kiểm tra có thể được thực hiện một cách tự động bằng phần mềm và Spin
là một trong những bộ kiểm chứng (model checker) được sử dụng rộng rãi Các bộ kiểm chứng không kiểm tra trực tiếp chương trình mà kiểm tra một mô hình là thể hiện mức cao của hệ thống Mô hình này mô tả hành vi của hệ thống Để áp dụng được các công cụ kiểm chứng mô hình, việc đầu tiên là phải xây dựng mô hình của hệ thống Các mô hình này cùng với đặc tả của thuộc tính cần kiểm tra là đầu vào của các
bộ kiểm chứng
Chương này ta cũng giới thiệu về hệ thống thời gian thực Ở phần sau chúng ta
sẽ tìm hiểu sâu về otomat thời gian để mô hình hóa và kiểm chứng hệ thống thời gian thực
Trang 21Chương 3 - Otomat thời gian
3.1 Giới thiệu
Chúng ta giới thiệu otomat thời gian để mô hình hóa hành vi của hệ thống thời gian thực theo thời gian Các định nghĩa được cung cấp một cách đơn giản nhưng mạnh mẽ, chú giải đồ thị chuyển trạng thái với các ràng buộc thời gian sử dụng các đồng hồ giá trị thực Otomat thời gian chấp nhận các từ ký tự theo thời gian – thời gian với giá trị thực được liên kết với mỗi kí tự [1]
Trong mô hình thời gian tuyến tính với giả thiết một thực hiện hoàn toàn có thể được mô hình hóa bởi trình tự các trạng thái của các sự kiện của hệ thống hay còn gọi
là excution trace (hoặc trace) Hành vi của hệ thống là tập trình tự thực hiên Hơn nữa tập các trình tự là ngôn ngữ hình thức nên dẫn đến sử dụng otomat trong việc đặc tả và kiểm chứng hệ thống Nếu hệ thống là hữu hạn trạng thái sẽ tương ứng với otomat hữu hạn Đặc biệt sự đa dạng với nhiều loại otomat Bu chi, otomat không xác định, otomat Muller xác định và không xác định, biểu thức hình thức ω có cùng chức năng nhằm định nghĩa lớp các ngôn ngữ hình thức ω Từ đó có rất nhiều lý thuyết kiểm chứng dựa trên lý thuyết ngôn ngữ hình thức ω [2]
Để đơn giản chỉ mô hình các thực hiện là trình tự vô hạn các sự kiện Mỗi sự kiện gắn liền với thời gian, thành phần thứ i của trình tự thời gian tương ứng với thời gian xảy ra của sự kiện thứ i
Mô hình thời gian đơn giản nhất là mô hình thời gian rời rạc (discrete-time) trong
đó trình tự thời gian tăng tuyến tính với trình tự các số nguyên Mô hình này tương ứng với mạch kỹ thuật số đồng bộ, các tín hiệu thay đổi chính xác khi có tín hiệu đồng
hồ (signal clock) Các hành vi thời gian rời rạc có thể được thực hiện sử dụng otomat hữu hạn Tuy nhiên các sự kiện tiến trình không luôn luôn xảy ra với thời gian giá trị nguyên trong các hệ thống vật lý
Mô hình đồng hồ lý tưởng (fictitious-clock) tương tự với mô hình thời gian rời rạc ngoại trừ mô hình này chỉ yêu cầu trình tự thời gian số nguyên và không giảm Sự biên dịch của vết thực hiện thời gian trong mô hình là các sự kiện xảy ra theo thứ tự được quy đinh với thời gian giá trị thực, tuy nhiên thời gian thực sự được đọc bởi đồng hồ số Mô hình này dễ dàng chuyển đổi đến ngôn ngữ hình thức Trong mô hình này có thêm khái niệm tick Chẳng hạn ti+1 – ti số tick giữa sự kiện i và sự kiện i+1 Tuy nhiên mô hình này khá đơn giản và chỉ thực hiện với nhưng hành vi sử dụng otomat hữu hạn
Mô hình thời gian dày đặc (dense-time) trong đó thời gian là tập dày đặc vì vậy thích hợp mô hình các tiến trình vật lý theo thời gian liên tục Trong mô hình này, thời
Trang 22gian của các sự kiên là các số thực, tăng đơn điệu và không có cận biên Với thời gian dày đặc (dense-time) otomat hữu hạn không thích hợp Thay thế ta phát triển lý thuyết ngôn ngữ hình thức thời gian và otomat thời gian nhằm ứng dụng cho hệ thống như vậy
Otomat thời gian chấp nhận các từ thời gian (timed words) – trình tự vô hạn các
sự kiện, mỗi sự kiện tương ứng với một ký tự và thời gian giá trị thực Otomat thời gian là otomat với tập hữu hạn các đồng hồ giá trị thực (real-valued đồng hồs) Đồng
hồ có thể được thiết lập lại 0 với các bước chuyển trạng thái của otomat hay theo dõi thời gian trôi kể từ lần cuối được thiết lập Các bước chuyển của otomat bao gồm ràng buộc giá trị đồng hồ (clock values): một thực hiện có thể đạt được nếu giá trị hiện tại của đồng hồ thỏa mãn các ràng buộc liên kết Vì vậy ta có thể mô hình tính chất thời gian chẳng hạn “kênh chuyển tiếp thông báo trong 3 đên 5 đơn vị thời gian kể từ khi nhận” Otomat thời gian mô hình hóa hệ thống thời gian thực và duy trì các tính chất thời gian thực: đặc điểm tính chất như tính sống động, tính công bằng và không xác định; đặc điểm số lượng như : tính tuần hoàn, biên và độ trễ thời gian
Ta xem xét tính xác định và không xác định với otomat Buchi và otomat Muller
Ta cũng chỉ ra otomat thời gian không xác định đóng với phép hợp và giao nhưng không đóng với phép bù Tính chất đóng cho lớp otomat thời gian xác định tương tự với otomat không chứa thời gian: otomat Muller thời gian xác định đóng với tất các phép boolean trong khi đó otomat Buchi thời gian xác định đóng chỉ với các phép Boolean tích cực Vì vậy otomat Muller thời gian xác định khả năng diễn đạt ngôn ngữ kém hơn so với otomat không xác định
Cuối cúng ta áp dụng lý thuyết otomat thời gian để chứng minh tính đúng đắn của các hệ thống thời gian thực với trạng thái hữu hạn
cơ bản giống như Otomat trạng thái hữu hạn đa định và điều kiện chấp nhận xử lý các
ký tự vào Có nhiều loại Otomat nhưng trong luận văn này chúng xem xét đến Bu chi Otomat và Muller Otomat
Một bảng chuyển A là một bộ (∑,S,S0, E) với ∑ là các ký tự vào, S là tập hữu hạn các trạng thái của Otomat, S0⊆ S là tập các trạng thái bắt đầu, E ⊆ S X S X ∑ là
Trang 23tập các cung Otomat bắt đầu bằng trạng thái khởi tạo và nếu (s, s’, a) Є E thì Otomat
có thể đổi thạng thái từ s đến s’ khi đọc dữ liệu đàu vào a
Cho một từ σ = σ1 σ2… bao gồm các ký tự ∑ ta nói rằng:
r: s0 s1 σ1 s2 σ2 σ3 …
là một thực hiện của Otomat A trên từ σ, với s0 Є S0, và (si-1, si , σi) Є E với i
≥ 1 Với một thực hiện tập inf(r) bao gồm các trạng thái s Є S để s = si cho vô hạn lần
i ≥ 1
Các loại Otomat ω khác nhau được định nghĩa bằng cách thêm điều kiện chấp nhận được đến định nghĩa của các bảng chuyển trạng thái (transition tables) Otomat Buchi A là một bảng chuyển (∑,S,S0, E) với tập thêm vào F ⊆ S là các trạng thái chấp nhận được Một thực hiện r của Otomat A trên từ σ Є ∑ω là thực hiện chấp nhận được nếu như inf(r) Λ F ≠ Ø Mặt khác một thực hiện r đang chấp nhận nếu một số trạng thái từ tập F xuất hiện vô hạn lần trên thực hiện r Ngôn ngữ L(A) của Otomat A bao gồm các từ σ Є ∑ω để A có một thực hiện chấp nhận được trên từ σ
Ví dụ 3.1: Xem xét Otomat bao gồm 2 trạng thái của Hình 3.1 qua ký tự {a,b} Trạng thái s0 là trạng thái khởi tạo, s1 là trạng thái chấp nhận Tất cả các thực hiện của Otomat có dạng
r: s0 s1 σ1 s2 σ2 σ3 … σn s0 s1a s1… a
với σi Є {a,b} cho i ≤ 1 ≤ 𝑛 với n ≥ 1 Otomat chấp nhận tất cả các từ chỉ với
số hữu hạn của ký tự b ngôn ngữ L0 = (a+b)* aω
Hình 3.1: Otomat Buchi chấp nhận (a+b)*aω Ngôn ngữ ω được gọi là ngôn ngữ hình thức ω nếu được chấp nhận bởi ít nhất một Otomat Buchi Vì vậy ngôn ngữ L0 của ví dụ 1 là ngôn ngữ hình thức ω
Lớp các ngôn ngữ hình thức ω là đóng dưới dạng phép toán Boolean Ngôn ngữ được thực hiện bởi xây dựng Otomat Buchi
Buchi Otomat được sử dụng để mô hình các tiến trình đồng thời hữu hạn trạng thái Vấn đề kiểm thử suy dẫn đến vấn đề ngôn ngữ Để kiểm tra liệu ngôn ngữ của Otomat được chứa trong Otomat kia, chúng ta kiểm tra có phải là tập rỗng giao của
a
a a,b
Trang 24hai Otomat gồm Otomat gốc và Otomat bù Kiểm tra tính rỗng là đơn giản, ta chỉ cần tìm kiếm một chu kỳ đạt được từ trạng thái khởi tạo và bao gồm ít nhất một trạng thái chấp nhận được Tuy nhiên bổ sung cho Otomat Buchi là vấn đề bùng nổ tăng đột biến số trạng thái Liệu ngôn ngữ của Otomat được chứa trong ngôn ngữ của Otomat
đa định có thể được thực hiện trên thời gian đa thức
Một bảng chuyển A = bộ (∑,S,S0, E) là đơn định nếu (i) có trạng thái khởi tạo duy nhất |S0| = 1 và (ii) số các cung được gán nhãn a bắt đầu tại s nhiều nhất là 1 cho tất cả các trạng thái s Є S và cho tất cả các ký tự a Є ∑ , Vì vậy bảng chuyển xác định, trạng thái hiện tại và ký tự đầu vào kế tiếp xác định duy nhất trạng thái kế tiếp Kết quả Otomat đơn định có nhiều nhất một thực hiện cho một từ Không giống như Otomat với từ hữu hạn, lớp các ngôn ngữ được được chấp nhận bởi Otomat Buchi xác định sẽ ít hơn lớp các ngôn ngữ hình thức ω Trong ví dụ 2.1 không có Otomat Buchi chấp nhận ngôn ngữ L0 Otomat Muller tránh được nhược điểm này với điều kiện chấp nhận được hiệu quả hơn
Otomat Muller A là một bảng chuyển (∑,S,S0, E) với lớp chấp nhận được F ⊆
2s.Một thực hiện r trên Otomat A qua từ σ Є ∑ω là một thực hiện chấp nhận nếu inf(r)
Є F Nghĩa là một thực hiện r là chấp nhận được nếu tập các trạng thái bằng tập trạng thái Є F Ngôn ngữ được chấp nhận bởi A được định nghĩa như trong trường hợp của Otomat Buchi
Ví dụ 3.2: Lớp các ngôn ngữ được chấp nhận bửi Otomat Muller của hình 2 chấp nhận ngôn ngữ L0 cả các từ qua {a,b} với chỉ một số hữu hạn ký tự b Lớp chấp nhận Muller là {{s1}} Vì vậy các thực hiện chấp nhận có thể viếng thăm trạng thái s0 chỉ với hữu hạn lần Vì vậy Otomat Muller xác định đủ mạnh để trình diễn ngôn ngữ hình thức ω
Hình 3.2: Otomat Muller xác định chấp nhận (a+b)*aω
3.3 Otomat thời gian
Trong phần này ta định nghĩa các từ thời gian (timed word) bằng cách nhóm giá trị thời gian thực với mỗi ký tự trong từ Khi đó ta định nghĩa Otomat ω để chấp nhận
Trang 25từ thời gian và sử dụng chúng để phát triển lý thuyết ngôn ngữ hình thức thời gian đến
lý thuyết của ngôn ngữ hình thức ω
3.3.1 Ngôn ngữ thời gian
Ta định nghĩa từ thời gian cho một hành vi của hệ thống thời gian thực tương ứng với từ thời gian trên các ký tự của sự kiện Như trong trường hợp mô hình của thời gian liên tục, tập các số thực dương, R, được chọn là miền thời gian Một từ σ được nhóm với trình tự thời gian 𝜏 được định nghĩa như sau [6]
Định nghĩa 3.1: Trình tự thời gian 𝜏 = 𝜏1𝜏2 … là một trình tự vô hạn các giá trị thời gian 𝜏𝑖 Є 𝑅 với 𝜏𝑖 >0 và thỏa mãn các ràng buộc sau:
1 Tính đơn điệu: 𝜏 tăng đơn điệu nghĩa là 𝜏i < 𝜏i+1
2 Tiến trình: cho mọi t Є R thì tồn tại i ≥ 1 để 𝜏i > t
Một từ thời gian với các ký tự (σ, τ) được xem như đầu vào của Otomat biểu diễn σi tại thời điểm τi Nếu mỗi ký tự σi được biểu thị một sự kiện xảy ra thì thành phần tương ứng τi biểu diễn thời gian xẩy ra sự kiện σi Để mở rộng thích hợp cho phép tại một thời điểm với một giá trị thời gian có thể nhiều sự kiện liên tiếp, vì vậy ta
có thể định nghĩa khác một chút về từ thời gian bằng cách yêu cầu trình tự thời gian tăng đơn điệu ( chẳng hạn τi ≤ τi+1 với i ≥ 1)
Ta xem xét ví dụ về ngôn ngữ thời gian
Vị dụ 3.3: cho ký tự {a,b} Định nghĩa ngôn ngữ thời gian L1 bao gồm tất cả các
ký tự thời gian để không có trường hợp ký tự b theo sau thời gian 5.6 Vì vậy ngôn ngũa L1 được cho như sau:
L1 = {(σ, τ) | ∀𝑖 ((τi > 5.6) → (σi=a)) (3.1)
Ví dụ khác của ngôn ngữ L2 bao gồm các từ thời gian trong đó a và b là chuyển đổi liên tục và các cặp a và b, thời gian khác biệt giữa a và b luôn tăng Ngôn ngữ L được cho như sau
L2 ={((ab)ω, τ) | ∀𝑖 ((τ2i - τ2i-1) < (τ2i+2 - τ2i+1)) (3.2) Các toán tử lý thuyết ngôn ngữ chẳng hạn phép giao, hợp, bù được định nghĩa cho ngôn ngữ thời gian áp dụng như ngôn ngữ không có thời gian Thêm vào đó ta định nghĩa toán tử Untime Phép toán này lược bỏ thời gian được liên kết với các ký
tự, hay phép chiếu của vết thời gian (σ, τ) trên thành phần σ
Định nghĩa 3.2 Cho một ngôn ngữ thời gian L trên ∑, Untime(L) là ngôn ngữ ω bao gồm σ Є ∑ω sai cho (σ, τ) Є L theo trình tự thời gian τ
Trang 26Với ví dụ 3.2 Untime(L1) là ngôn ngữ ω (a+b)*aω và Untime(L2) là bao gồm các
từ đơn (ab)ω
3.3.2 Bảng chuyển trạng thái với các ràng buộc thời gian
Ta cần mở rộng các bảng chuyển trạng thái đến bảng chuyển trạng thái thời gian
để có thể đọc các từ thời gian Khi một Otomat thực hiện một bước chuyển trạng thái, lựa chọn của trạng thái phụ thuộc vào đầu vào được đọc Trong trường hợp bảng chuyển trạng thái thời gian, để lựa chọn trạng thái kế tiếp phụ thuộc vào yếu tố thời gian của ký tự đầu vào liên quan đến thời gian của ký tự được đọc trước Để đáp ứng yếu tố này, một tập hữu hạn các đồng hồ (đồng hồ) ( với giá trị thực) được liên kết với bảng chuyển trạng thái Một đồng hồ (đồng hồ) có thể được thiết lập về 0 đồng thời với bước chuyển trạng thái Với mỗi bước chuyển trạng sẽ liên kết ràng buộc về đồng
hồ (đồng hồ) và yêu cầu phép chuyển thực hiện được nếu giá trị hiện tại đồng hồ thỏa mãn ràng buộc Trước khi định nghĩa bảng chuyển trạng thái thời gian, ta xem xét ví
dụ sau
Ví dụ 3.4: Xem xét bảng chuyển trạng thái thời gian của hình 3.3 Trạng thái khởi tạo s0 Có một đồng hồ (đồng hồ) x Một chú thích dạng x:=0 trên cung tương tứng bước chuyển với việc thiết thập lại đồng hồ (đồng hồ) x khi cung được thực hiện Tương tự chú thích (x<2) trên cung là một ràng buộc về đồng hồ liên kết với cung
Hình 3.3: Ví dụ bảng chuyển trạng thái thời gian Trạng thái s0 di chuyển đến trạng thái s1 khi đọc ký tự đầu vào a Đồng hồ x thiết lập về 0 với bước chuyển trạng thái Trong khi đó trạng thái s1, giá trị của đồng hồ x chỉ thời gian được thiết lập với sự kiện đọc ký tự cuối a Việc chuyển trạng thái từ s1
về s0 được thực hiện nếu giá trị của đồng hồ nhỏ hơn 2 Toàn bộ chu kỳ được lặp lại thì Otomat chuyển ngược về trạng thái s0 Vì vậy ràng buộc thời gian được trình bày bởi bảng chuyển trạng thái cộng thêm với độ trễ giữa a và theo sau là b luôn luôn nhỏ hơn 2, ngôn ngữ hình thưc như sau:
Trang 27các đồng hồ có thể được thiết lập không đồng bộ với nhau nghĩa là các đồng hồ khác nhau có thể được khởi động tại các thời điẻm khác nhau và không có cận dưới cho việc khởi tạo giữa các lần đọc ký tự Nhiều đồng hồ cho phép nhiều độ trễ đồng thời trong ví dụ sau
Ví dụ 3.5 Bảng chuyển trạng thái thời gian của hình 3.4 sử dụng hai đồng hồ x và
y, chấp nhận ngôn ngữ
L ={((abcd)ω, τ) | ∀𝑗 ((τ4j+3 < τ4j+1+1) Λ ((τ4j+4 > τ4j+2+2)) (3.4)
Hình 3.4: Bảng chuyển trạng thái thời gian với 2 đồng hồ (đồng hồ)
Các chu kỳ Otomat giữa các trạng thái s0, s1, s2 và s3 Đồng hồ x nhận hàm thiết lập về 0 mỗi lần di chuyển từ trạng thái s0 đến s1 khi đọc ký tự a Việc kiểm tra đồng
hồ (x <1) được liên kết với bước chuyển trạng thái từ s2 đến s3 đảm bảo ký tự được đọc trong thời gian 1 đơn vị trước khi đọc ký tự a Cơ chế tương tự để thiết lập về 0 cho đồng hồ khác y trong khi đọc ký tự b và kiểm tra giá trị của nó khi đọc ký tự d, đảm bảo độ trễ giữa b và d là luôn lớn hơn 2
Để ý trong ví dụ trên để ràng buộc giữa độ trễ a và c và giữa b và d Otomat không đưa vào cận biên rõ ràng nào trên a tiếp theo b hay c tiếp theo d Điểm thuận lợi của nhiều đồng hồ ta có thể được thiết lập độc lập lẫn nhau Ngôn ngữ L3 là giao của hai ngôn ngữ L31 và L32 được định nghĩa như sau:
L31 ={((abcd)ω, τ) | ∀𝑗 ((τ4j+3 < τ4j+1+1)} (3.5)
L32 ={((abcd)ω, τ) | ∀𝑗 (τ4j+4 > τ4j+2+2)} (3.6) Mỗi ngôn ngữ ngữ L31 và L32 có thể được trình diễn bởi một Otomat sử dụng chỉ một đồng hồ, tuy nhiên để diễn tả sự giao nhau ta cần 2 đồng hồ
Cần ghi nhớ các đồng hồ của Otomat không tương ứng với đồng hồ cục bộ của các thành phần khác trong hệ thống phân tán Các đồng hồ tăng giá trị thời gian dưới
tỉ lệ thống nhất, đếm thời gian với khung thời gian cố định toàn cục Ta đề cập đến đồng hồ hư cấu (fictitous clock) để trình diễn các tính chất thời gian của hệ thống Thay thế chúng ta có thể xem xét Otomat được trạng bị với số hữu hạn các stop-watch
Trang 28để có thể đƣợc bắt đầu và đƣợc kiểm tra độc lập với các stop-watch khác, nhƣng tất cả stop-watch đề cập đến cùng đồng hồ
3.3.3 Các ràng buộc đồng hồ và đồng hồ biên dịch
Để định nghĩa Otomat thời gian, ta cần liệt kê các loại ràng buộc đồng hồ đƣợc phép trên các cung chuyển trạng thái Dạng đơn giản nhất của ràng buộc là so sánh giá trị đồng hồ với một hằng thời gian Ta cho phép chỉ các phép kết nối Boolean của các ràng buộc đơn giản nhƣ vây [7]
Định nghĩa 3.3: Cho tập X là các biến đồng hồ, tập Φ(X) của các ràng buộc đồng
hồ δ đƣợc định nghĩa quy nạp nhƣ sau:
δ := x ≤ c | c ≤ x | ¬ δ | δ1 Λ δ2 Trong đó x là đồng hồ trong X và c là hằng trong Q Quan sát các ràng buộc chẳng hạn true (x =c), x Є [2,5) là định nghĩa tắt
Một đồng hồ biên dịch (interpretation clock) v cho một tập X các đồng hồ gán một giá trị thực đến mỗi đồng hồ, nghĩa là ánh xạ từ X đến R Ta nói rằng 1 đồng hồ biên dịch (đồng hồ interpretation) v cho X thỏa mãn 1 ràng buộc đồng hồ δ trên X nếu
δ có giá trị đúng dựa trên các giá trị đƣợc ánh xạ bởi đồng hồ biên dịch v
Cho t Є R, v + t nghĩa là ánh xạ các đồng hồ x đến giá trị v(x) +t và đồng hồ biên dịch t.v gán mỗi đồng hồ x đến giá trị t.v(x) Cho Y ⊆ X , [Y → t] v có nghĩa đồng hồ biên dịch cho X gán t đến x Є Y và thỏa mãn v với các đồng hồ còn lại
3.3.4 Các bảng chuyển trạng thái thời gian
Định nghĩa 3.4 một bảng chuyển trạng thái thời gian là một bộ (∑,S,S0,C,E) với
Trang 29tiếp tục đếm thời gian Hành vi được giữ bởi định nghĩa “run” của các bảng chuyển trạng thái thời gian Một thực hiện “run” ghi lại trạng thái với giá trị của các đồng hồ tại các điểm chuyển trạng thái Cho trình tự thởi gian τ = τ1 τ2 τ3… với định nghĩa τ0
Khởi tạo: s0 Є S0 và v0(x) = 0 cho tất cả x Є C
Cho tất cả i ≥ 1 có một cung trong E với dạng (si-1, si, σi ,λi , δi) sao cho (vi-1 + τi – τi-1 ) thỏa mãn δi và vi bằng [λi → 0] (vi-1 + τi – τi-1 )
Để thiết lập inf(r) bao gồm các trạng thái s Є S để s = si cho vô hạn lần i ≥ 0
Ví dụ 3.6: Xem xét bảng chuyển trạng thái thời gian của ví dụ 3.5
và τi+1 được cho bởi biên dịch (vi + t – τi) Khi đó bước chuyển trạng thái từ si đến si+1 xảy ra Ta sử dụng giá trị (vi + τi+1 – τi) để kiểm các ràng buộc đồng hồ, tuy nhiên tại thời điểm τi+1 giá trị của đồng hồ nhận được và thiết lập lại về 0
Để ý bảng chuyển trạng thái (∑, S, S0 , E) có thể được xem như một bảng chuyển trạng thái thời gian A’ Ta chọn tập các đồng hộ được thiết lập rỗng và thay thế các cung (s,s’,a) bởi (s,s’,a ,Ø,true) Thực hiện A’ rõ ràng tương ứng với các thực hiện của
A
3.3.5 Ngôn ngữ hình thức thời gian
Ta có thể nhóm mục chấp nhận với các bảng chuyển trạng thái thời gian và sử dụng bảng chuyển trạng thái thời gian để định nghĩa ngôn ngữ thời gian
Định nghĩa 3.6: Otomat Buchi thời gian (viết tắt TBA) là một bộ (∑, S, S0 ,C, E,F) với bộ (∑, S, S0 ,C ,E) là bảng chuyển trạng thái thời gian và F ⊆ S là tập các trạng thái chấp nhận
Trang 30Một thực hiện r = (𝑠 , 𝑣 ) của TBA trên từ thời gian (σ, τ) được gọi là thực hiện chấp nhận được nếu inf(r) Λ F ≠ Ø
Cho một TBA A , ngôn ngữ L(A) là các từ thời gian mà TBA chấp nhận được định nghĩa bằng cách thiết lập {(σ, τ) | A có một thực hiện chấp nhận trên (σ, τ) } Tương tự với lớp các ngôn ngữ được chấp nhận bởi Otomat Buchi, ta gọi lớp ngôn ngữ thời gian được chấp nhận bởi ngôn ngữ hình thức TBA
Hình 3.5: Otomat Buchi thời gian chấp nhận Lcrt Định nghĩa 3.7 Ngôn ngữ thời gian L là ngôn ngữ hình thức thời gian nếu L = L(A) cho các TBA A
Ví dụ 3.7: Ngôn ngữ L3 của ví dụ 3.5 là ngôn ngữ hình thức thời gian Bảng chuyển trạng thái thời gian của hình 3.4 được nhóm với tập chấp nhận bao gồm tất cả các trạng thái
Cho tất cả các ngôn ngữ hình thức ω trên ∑ , ngôn ngữ thời gian {(σ, τ) | σ Є L}
là hình thức Ví dụ điển hình của ngôn ngữ thời gian không hình thức là ngôn ngữ L2
của ví dụ 3.3 yêu cầu sự khác biệt thời gian giữa các cặp liên tiêp a và b với trình tự tăng
Một ngôn ngữ không hình thức là {(aω, τ) | ∀i (τi = 2i) (3.7) Otomat của ví dụ 3.7 kết hợp điều kiện chấp nhận Buchi với ràng buộc thời gian
để đặc tả tính chất:
Ví dụ 3.8: Otomat hình 3.5 chấp nhận ngôn ngữ thời gian Lcrt với các ký tự {a,b}
Lcrt = {((ab)ω, τ) | ∃ i ∀ j ≥ i (τ2j < τ2j-1 +2)} (3.8) Trạng thái khởi tạo là s0, trạng thái chấp nhận là s2 và có một đồng hồ x Otomat bắt đầu trạng thái s0 và chu kỳ giữa trạng thái s0 và s1 Sau đó di chuyển đến trạng thái
s2 thiết lập đồng hồ x đến 0 Chu kỳ giữa trạng thái s2 và s3, Otomat thiết lập đồng hồ trong khi đọc ký tự a và đảm bảo ký tự b kế tiếp trong 2 đơn vị thời gian Otomat mô hình hệ thống với thời gian đáp ứng hội tụ, thời gian đáp ứng cuối cùng luôn bé hơn 2 đơn vị thời gian
Trang 31Ví dụ kế tiếp chỉ Otomat thời gian có thể chỉ định hành vi xác định
Ví dụ 3.9 Otomat của hình 6 chấp nhận ngôn ngữ sau với các ký tự {a,b}
{(σ, τ) | ∀i ∃j (τj= 3i Λ σj = a)} (3.9) Otomat có một trạng thái s0 và một đồng hồ x Đồng hồ thiết lập với với chu kỳ 3 đơn vị thời gian Otomat yêu cầu khi đồng hồ bằng 3 thì có ký tự đầu vào a Vì vậy
mô hình mô tả tính chất a xảy tại các thời điểm giá trị thời gian là bội số của 3
Hình 3.6: Otomat thời gian mô hình hóa hành vi lặp định kỳ
3.3.6 Các tính chất của ngôn ngữ hình thức thời gian
Các lớp ngôn ngữ hình thức thời gian được đóng dưới (hữu hạn) phép hợp và giao
Xem xét TBA (∑, Si, Si0 ,Ci, Ei,Fi), i = 1,2,…n Giả thiết không làm mất tính tổng quát tập các đồng hồ là riêng rẽ Ta xây dựng TBA chấp nhận các phép hợp và giao của L(Ai)
Vì TBA là không xác định, trường hợp của phép hợp là rõ ràng TBA được yêu cầu đơn giản là phép hợp riêng rẽ của tất cả các Otomat
Phép giao có thể được thực hiện bằng cách xây dựng Buchi Otomat Tập các đồng hồ cho Otomat A là ∪iCi Các trạng thái của A có dạng (s1, , sn,k) với mối si Є Si
và 1 ≤ k ≤ n Thành phần thứ i phản ánh trạng thái của Ai, thành phần cuối cùng là bộ đếm với tất cả otomat cho trạng thái thỏa mãn điều kiện chấp nhận được của từng Otomat riêng rẽ Khởi tạo bộ đếm là 1 và bộ đếm tăng từ k đến (k + 1) nếu trạng thái của Otomat thứ k là trạng thái chấp nhận
Các trạng thái khởi tạo của A có dạng (s1, , sn,1) với mỗi si là trạng thái khởi tạo của Ai. Một bước chuyển của A đạt được bởi nhóm các bước chuyển của các Otomat
có cùng nhãn Cho {(si,si’,a,𝜆i, δi} Є Ei | i = 1,…,n} là tập các bước chuyển trạng thái, mỗi một Otomat với cùng nhãn a Tương ứng với cung chuyển trạng thái của A từ
S0
a,b, (x<3) ?
a, (x = 3) ? , x:=0
Trang 32trạng thái dạng (s1, , sn,k) được gán nhãn a Trạng thái mới (s1’, , sn’,j) với j = (k+1) mod n nếu sk Є Fk và j = k ngược lại Tập các đồng hồ được thiết lập với bước chuyển
là ∪iCi và ràng buộc đồng hồ là Λiδi
Giá trị bộ đếm theo chu kỳ với phạm vi từ 1…n vô hạn lần nếu các điều kiện chấp nhận của tất cả các Otomat được đáp ứng Kết qủa ta định nghĩa tập chấp nhận của A bao gồm các trạng thái (s1, , sn,n) với sn Є Fn
Hình 3.7: Otomat thời gian chấp nhận ngôn ngữ LconvergeQuan sát sự kiện cho các ngôn ngữ hình thức thời gian nhiều sự kiện tùy ý có thể xảy ra trong một khoảng chu kỳ thời gian hữu hạn Hơn nữa các ký tự có thể được tự ý gần ký thự khác Xem xét ví dụ sau
Ví dụ 3.10 Ngôn ngữ được chấp nhận bởi Otomat của hình 10 là:
Lconverge = {((ab)ω, τ) | ∀i (τ2i-1 = i Λ (τ2i - τ2i-1 > τ2i+2 - τ2i+1))} (3.10) Tất các các từ được chấp nhận bởi Otomat có tính chất trình tự thời gian giữa a
và theo sau b là giảm dần Từ mẫu được chấp nhận bởi Otomat
(a,1) → (b,1.5) → (a,2) → (b, 2.25) → (a,3) → (b, 3.125) → …
Ví dụ này mô tả mô hình số thực và khác với mô hình thời gian rời rạc Ta yêu cầu các giá trị thời gian τi là bội số của hằng 𝜀 , ngôn ngữ chấp nhận được của Otomat hình 10 là rỗng
Mặt khác Otomat thời gian không phân biệt giữa tập các số thực và tập các quan
hệ Q Đặt biệt nếu ta yêu cầu các giá trị thời gian theo thứ tự thời gian là các số tỉ lệ, ngôn ngữ không thời gian Untime[L(A)] là Otomat thời gian A không thay đổi
Cho L là ngôn ngữ hình thức thời gian Với các từ σ, σ Є Untime (L ) nếu tồn tại trình tự thời gian τ để τ i Є Q với i ≥ 1 và (σ, τ) Є L
Xem xét một Otomat thời gian A và từ σ Nếu tồn tại trình tự thời gian τ với tất các giá trị thời gian tỉ lệ để (σ, τ) Є L(A) thì rõ ràng σ Є Untime[L(A)]
b, (y<1)? ,x:=0
a, (x=1)? , x := 0
y := 0
b (x=1) ?
a, x:= 0
Trang 33Cho một trình tự thời gian tùy ý τ , (σ, τ) Є L(A) Cho 𝜀 Є Q để các hằng xuất hiện trong các ràng buộc đồng hồ của A là bội số thiếu của 𝜀 Cho τ’
0 = 0 và τ0 = 0 Nếu τi = τi +n 𝜀 Mặt khác chọn τ’
i Є Q để cho với mọi 0 ≤ j < i cho tất cả n Є N (τ’
τ’i-1) kết qua A cấp nhận (σ, τ’)
3.3.7 Otomat Muller thời gian
Ta có thể định nghĩa Otomat với các điều kiện chấp nhận Muller
Định nghĩa 3.8 Otomat Muller thời gian (TMA) là một bộ (∑,S,S0,C,E,F) với (∑,S,S0,C,E) là bảng chuyển trạng thái thời gian và F ⊆ 2S đặc tả lớp chấp nhận (acceptance family)
Một thực hiện r = (𝑠 , 𝑣 ) của A với (σ, τ) là một thực hiện chấp nhận nếu inf(r) Є
F
Cho TMA A , ngôn ngữ L(A) của các từ thời gian mà TMA chấp nhận đƣợc định nghĩa là tập {(σ, τ) | A có một thực hiện chấp nhận trên (σ, τ)}
Hình 3.8: Otomat Muller thời gian
Ví dụ 3.11: Xem xét Otomat hình 11 trên các ký tự {a,b,c} Trạng thái khởi tạo
là s0 Lớp các trạng thái chấp nhận Muller bao gồm tập đơn (s0, s2) Vì vậy bất cứ thực hiện chấp nhận đƣợc sẽ thực hiện vòng lặp giữa s0 và s1 hữu hạn lần và thực hiện chuyển trạng thái giữa s0 và s2 vô hạn lần Cac từ (𝜎, 𝜏) đƣợc chấp nhận bởi Otomat thỏa mãn : (1) σ Є (a(b+c)*(ac)ω) và (2) với i ≥ 1 sự khác biệt giữa (τ2i-1 - τ2i-2) nhở hơn 2 nếu ký tự thứ 2i là c, mặt khác nhỏ hơn 5
Ngôn ngữ thời gian được chấp nhận bởi một số Otomat Buchi thời gian nếu nó được chấp nhận bởi một số Otomat Muller thời gian
Trang 343.4.1 Giới hạn đến các hằng nguyên
Xem lại định nghĩa của Otomat thời gian cho phép các ràng buộc bao gồm so sánh với các hằng Bổ đề sau cho việc kiểm tra tính rỗng, ta có thể giới hạn đến Otomat thời gian với các ràng buộc đồng hồ bao gồm chỉ các hằng nguyên Cho một trình tự thời gian τ và t Є Q khi đó t.τ đề cập đến trình tự thời gian đạt được bởi bội số của τi bởi t
Bổ đề: Xét một bảng chuyển trạng thái thời gian A, một từ thời gian (σ,τ), và t Є
Q (s , v ) là một thực hiện của A trên (σ,τ) nếu (s ,t v ) là một thực hiện của At qua (σ,t.τ) với At là bảng chuyển trạng thái đạt được bằng cách thay thế mỗi hằng d trong mỗi ràng buộc đồng hồ gán nhãn của A bởi t.d
Có một đẳng cấu giữa thực hiện của A và At Nếu ta chọn t là bội số chung nhỏ nhất của tất cả các hằng xuất hiện trong các ràng buộc đồng hồ của A, thì các ràng buộc của At sử dụng chỉ các hằng số nguyên Trong bước chuyển nay các hằng số là bội số của các hằng gốc Ta giả thiết mã hóa nhị phân cho các hằng số
Hơn nữa L(A) là rỗng nếu L[At] là rỗng Vì vậy để xác định tính rỗng của ngôn ngữ L(A) ta xem xét At Tương tự Untime[L(A)] bởi Untime[L(At)] Trong phần còn lại của phần này ta giả thiết các ràng buộc của đồng hồ chỉ sử dụng các hằng số nguyên
Trang 35tương tự nhau Phần nguyên của các giá trị đồng hồ cần được xác định có hay không ràng buộc đồng hồ được đáp ứng, cũng như trật tự của các phần lẻ sẽ quyết định đồng
hồ nào sẽ thay đổi phần nguyên trước Cho ví dụ, nếu 2 đồng hồ x và y có giá trị giữa
0 và 1 trong một trạng thái mở rộng, thì một bước chuyển trạng thái với ràng buộc đồng hồ (x =1) có thể được theo sau bởi một bước chuyển với ràng buộc đồng hồ (y= 1) phụ thuộc có hay không giá trị các đồng hồ thỏa mãn (x < y)
Các phần nguyên của các giá trị đồng hồ có thể lớn tùy ý Nhưng nếu đồng hồ x không bao giờ được so sánh với một hằng lớn hơn c, thì giá trị thực sự của nó khi vượt quá c, không ảnh hưởng trong việc quyết định đường được phép
Ta có thể hình thức hóa luận điểm trên Với bất cứ t Є R, fract(t) biểu thị lẻ của t,
và 𝑡 biểu thị phần nguyên của t nghĩa là t = 𝑡 + fract(t) Ta giả thiết các đồng hồ trong C xuất hiện trong một số ràng buộc đồng hồ
Định nghĩa 3.10: cho A = (∑,S,S0,C,E) là một bảng chuyển trạng thái thời gian Với mỗi x Є C, cho cx là số nguyên lớn nhất để (x ≤c) hay (c≤x) là một biểu thức con cho một số ràng buộc đồng hồ xuất hiện trong E
Quan hệ tương đương ~ được định nghĩa trên tập các đồng hồ biên dịch cho C v
~v' nếu các điều kiện sau thỏa mãn
1 Tất cả x Є C, hoặc 𝑣(𝑥) và 𝑣(𝑥′) là giống nhau, hay v(x) và v(x’) lớn hơn cx
2 Với x, y Є C với v(x) ≤cx và v(y) ≤cy , fract(v(x)) ≤ fract(v(y)) nếu fract(v’(x)) ≤ fract(v’ (y))
3 Với x Є C và v(x) ≤cx , fract(v(x)) = 0 nếu fract(v’(x)) = 0
Miền đồng hồ của A là một lớp các đồng hồ biên dịch tương đương được biểu thị bởi ~
Hình 3.9: Miền đồng hồ
Ta sử dụng [v] để biểu thị miền đồng hồ của v Mỗi miền có thể được đặc trưng duy nhất bởi tập hữu hạn các ràng buộc đồng hồ được thỏa mãn Ví dụ xem xét đồng
hồ biên dịch trong [v] thỏa mãn ràng buộc (0 < x < y < 1) ta sẽ trình diễn bởi [0 < x <
y < 1] Bản chất của các lớp tương đương có thể được hiểu qua ví dụ
6 điểm góc: chẳng hạn [(0,1)]
14 đoạn kẻ mở: chẳng hạn [ 0< x=y < 1]
8 miền mở: chẳng hạn [0 < x < y < 1]
Trang 36Ví dụ 3.10 Xem xét một bảng chuyển trạng thái thời gian với hai đồng hồ x và y với cx = 2 và cy = 1 Các miền đồng hồ được chỉ trong hình 12
Để ý chỉ có hữu hạn một số các miền Với một ràng buộc δ trong A nếu v ~ v’ thì v thỏa mãn δ nếu v’ thỏa mãn δ Ta nói rằng miền đồng hồ α thỏa mãn ràng buộc δ nếu mọi v Є α thỏa mãn δ Mỗi miền có thể được trinh diễn bằng cách chuyên biệt
(1) Cho các đồng hồ x, một ràng buộc đồng hồ từ tập:
{x = c | c = 0 , 1, cx} U {c-1 < x < c | c = 1,… cx} U {x > cx}
(2) Mỗi cập đồng hồ x và y sao cho c -1 , x < c và d -1 < y < d ở trong (1) với
c và d xác định, khi đó fract(x) nhỏ hơn, bằng hay lớn hơn fract(y) xác định miền đồng hồ
3.3.3 Otomat miền
Bước đầu tiên trong thủ tục quyết định để kiểm tra tính rỗng xây dựng một bảng chuyển trạng thái với các đường của bảng chuyển trạng thái bắt chước các thực hiên của A theo cách nhất định Ta biểu diễn bảng chuyển trạng thái mong muốn bởi R(A) Otomat miền của A Mỗi trạng thái của các bản ghi R(A) bao gồm trạng thái của bảng chuyển trạng thái A, và lớp tương đương của các giá trị hiện tại của đồng hồ dưới dạng (s,α) với s Є S và α thuộc miền đồng hồ Biên dịch dự định là bất cứ khi nào trạng thái mở rộng A là (s,v) thì trạng thái của R(A) là (s,[v]) Otomat miền bắt đầu từ trạng thái (s0,[v0]) với s0 là trạng thái khởi tạo của A, và đồng hồ biên dịch v0 gán giá trị 0 đến các đồng hồ Quan hệ chuyển của R(A) được định nghĩa bước giả lập cần tuân thủ Có một cung từ (s,α) đến (s,α’) được gán nhãn a nếu A trong trạng thái S với các giá trị đồng hồ v Є α có thể thực hiện một bước chuyển trên a đến trạng thái mở rộng (s’, v’) sao cho v’ Є α’
Để thuận tiện quan hệ cung được định nghĩa như là quan hệ time-succesor trên các miền đồng hồ Time-succesors của một miền đồng hồ α là tất cả các miền đồng hồ được thăm bởi đồng hồ biên dịch v Є α trong các tiến trình thời gian
Định nghĩa 3.11: Một miền đồng hồ α’ là time-successor của miền đồng hồ α nếu cho mỗi v Є α thì tồn tại số dương t Є R sao cho v + t Є α’
Ví dụ 3.11: Xem xét các miền đồng hồ được chỉ trong hình 12 Time-successor của miền α là các miền có thể đạt được bằng cách vẽ đường thẳng di chuyển thời gian
từ một số điểm trong miền α theo hướng chéo lên trên Ví dụ miền [(1 <x < 2), (0 < y
< x – 1)] các miền liền kề là time-successor : [(x=2), (0 < y < x – 1)], [(x>2), (y=1)]
và [(x>2), (y>1)]
Kế tiếp xem xét để xây dựng tất cả các time-successor của miền đồng hồ Từ định nghĩa miền đồng hồ α được đặc tả trong phần (1) cho các đồng hồ x, một ràng