8 Các demo khác trong Uppaal
8.3 Kiểm chứng demo 2doors
an toàn,tính bị chặn, tính sống, có rơi vào deadlock được hay không, cũng như 1 số tính chất khác. Việc kiểm tra được tiến hành như sau:
- A[] not deadlock: kiểm tra hệ thống có chạy vào deadlock hay không =>không. - E<> Door1.open: cửa 1 có thể mở hay không => có
8.2. DEMO: BRIDGE CHƯƠNG 8. CÁC DEMO KHÁC TRONG UPPAAL
- Door1.wait –> Door1.open: kiểm tra tính sống của hệ thống, khi 1 nút bấm được nhấn thì cửa tương ứng sẽ được mở (tương tự cho cửa 2) => thỏa mãn.
- A[] (Door1.opening imply User1.w<=31) and (Door2.opening imply User2.w<=31): tính sống và bị chặn trên, tức là cửa có mở trong vòng 31s sau khi bấm nút hay không => thỏa mãn. Tính chất này cho biết thời gian lớn nhất từ khi bấm nút mở cửa đến khi cửa tương ứng được mở ra ứng với khả năng xấu nhất như sau:
i. Người 1 bấm mở cửa 1 khi cửa 1 vừa mới đóng => đợi 5s. ii. Người 2 bấm mở cửa 2, mở cửa 2 mất 6s
iii. Người 2 đi qua cửa 2 => mất tối đa 8s iv. Cửa 2 đóng => mất 6s
v. Mở cửa 1 => mất 6s
Tổng thời gian: t=5+6+8+6+6=31(s)
- A[] not (Door1.open and Door2.open): tính chất mutex, không cho phép 2 cửa được mở cùng 1 lúc => không thỏa mãn.
8.2 Demo: Bridge
Nội dung bài toán
4 chú bộ đội muốn vượt qua 1 cái cầu hỏng giữa đêm khuya. Chỉ có 2 người có thể qua cầu cùng 1 lúc. Để qua cầu thì 1 trong 2 người phải mang đuốc. Thời gian để đi qua cầu của mỗi người lần lượt là 5, 10, 20, 25 phút. Câu hỏi đặt ra là có cách sắp xếp nào để cho cả người qua cầu trong khoảng thời gian nhor hơn 60 phút được hay không?
Nhiệm vụ của chúng ta là mô hình hóa hoạt động của các chú lính và ngọn đuốc thỏa mãn những yêu cầu của đề bài đặt ra, đồng thời trả lời câu hỏi của bài toán.
Mô hình hóa trên UPPAAL
Mô hình bài toán cây cầu có 2 khuôn mẫu (Template) là người lính và ngọn đuốc. - Soldier là template của người lính.
CHƯƠNG 8. CÁC DEMO KHÁC TRONG UPPAAL 8.2. DEMO: BRIDGE
Khai báo các biến toàn cục như sau:
chan take, release; // Nhận và trả ngọn đuốc
int[0,1] L; // Vị trí của ngọn đuốc,0:bờ này, 1:bờ kia. clock time; // Đồng hồ chung của cả hệ thống.