Hướng dẫn sử dụng UPPAAL 4.0

57 1.2K 19
Hướng dẫn sử dụng UPPAAL 4.0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu này sẽ bắt đầu bằng vài nét về lịch sử phần mềm Uppaal ở chương 1. Tiếp theo, chương 2 đề cập đến các automat định thời. Giới thiệu về các tính năng của phần mềm Uppaalsẽ có ở chương 3. Để minh họa cách sử dụng Uppaal, ba demo khác nhau được phân tích trongcác chương 4, 5, 6. Chương 7 tập trung giới thiệu những mô hình mẫu hay được sử dụng nhiều khi mô hình hóa bằng Uppaal. Chương 8 giải thích các demo được cung cấp kèm theo trongphần mềm Uppaal. Chương 9 so sánh Automat và Petri Nets, hai phương án thông dụng hiệnnay để mô hình hóa các hệ sự kiện rời rạc. Cuối cùng, chương 10 là tổng kết chung và một sốsuy nghĩ của nhóm về bài tập lớn này.

Đại học Bách Khoa Hà Nội Bài tập lớn môn học Hệ kiện rời rạc Hướng dẫn sử dụng UPPAAL 4.0 Tham khảo: A Tutorial on Uppaal 4.0 Gerd Behrmann, Alexandre David, Kim G Larsen Nhóm sinh viên thực hiện: Phí Trọng Huy Trịnh Hồng Minh Giảng viên hướng dẫn: Th.S Đinh Thị Lan Anh Trần Ngọc Sơn Ngày 23 tháng 11 năm 2012 Mục lục Giới thiệu phần mềm Uppaal Timed-automata Uppaal 2.1 Ngơn ngữ mơ hình hóa 2.2 Ngôn ngữ truy vấn 12 2.3 Automat định thời 14 Tổng quan Uppaal Toolkit 17 3.1 Java Client 17 3.2 Stand-alone Verifier 18 Ví dụ 1: The Train Gate 20 4.1 Nội dung toán 20 4.2 Mơ hình hóa Uppaal 21 4.3 Kiểm chứng (Verification) 24 Ví dụ 2: Fischer’s Protocol 26 5.1 Nội dung toán 26 5.2 Mơ hình hóa Uppaal 26 5.3 Kiểm chứng 26 Ví dụ 3: The Gossiping Girls 6.1 Nội dung toán 6.2 Mơ hình hóa UPPAAL 6.3 Kiểm chứng 28 28 28 30 Các 7.1 7.2 7.3 31 31 33 36 thiết kế mẫu Giảm biến số Truyền giá trị đồng Truyền giá trị đồng bộ(tiếp) 7.4 7.5 7.6 7.7 7.8 7.9 Đa hướng Atomicity Urgent Edges (Cạnh khẩn cấp) Timer Kiểm tra phạm vi sống Trừu tượng hóa mô 36 37 39 40 42 42 Các demo khác Uppaal 46 8.1 Demo: doors 46 8.2 Demo: Bridge 50 So sánh Automata Petri Nets 54 10 Kết luận 57 Danh sách hình vẽ 2.1 Automat đơn giản đèn bàn 2.2 Ngữ nghĩa TA: Các vận hành khác TA từ trạng thái đầu 10 2.3 Khai báo biến, ví dụ đồng kênh hai template 11 2.4 Khai báo biến, ví dụ đồng kênh hai template 12 2.5 Ví dụ với quan sát 14 2.6 Automat khơng cịn quan sát 2.7 Ví dụ sử dụng guard không dùng invariant 15 2.8 Ba automata song song minh họa trạng thái normal, urgent committed Các clocks biến local, tức P0.x khác P1.x 16 3.1 Demo The Train Gate(chương 4) Nút Select chọn Ở chế đọ người dùng di chuyển địa điểm edge hay sửa nhãn Chế độ lại dùng để thêm vào địa điểm, edge, nail (đỉnh edge) Địa điểm mặc định khơng có tên Có chỗ người dùng đặt tên tham số 18 3.2 Các khai báo toàn cục cục demo The Train Gate 19 4.1 Hình 12 View of the verification tab for the train gate example 21 4.2 Ví dụ Train Gate: Train4 qua cầu, Train3 phải dừng lại, Train2 nhận lệnh dừng dừng lại Train1 tiến đến cầu gửi tín hiệu appr! tới controller, sau controller gửi lại lệnh stop! Các khoảng thời gian kiện (10, 10, 5) 22 4.3 Lúc train4 qua cầu gửi tín hiệu leave! Bộ điều khiển lúc cho phép train3 sử dụng cầu với lệnh go! Train2 lúc đợi lệnh để khởi động lại train1 lúc dừng lại 23 4.4 Automat điều khiển ga tàu điện 24 4.5 Automat hàng đợi điều khiển 5.1 Automat chung giao thức Fischer Automat có id biến tồn cục, cịn biến địa phương gồm clock x; số const k 2; 27 15 25 6.1 6.2 Mơ hình hóa cho tốn The Gossiping Girls 29 Thời gian dung lượng nhớ cần thiết để chạy mơ tốn Gossiping Girl 30 7.1 Mơ hình hàng đợi ví dụ cổng tầu dùng lần giảm biến hoạt động Cả hai trường hợp cạnh từ Shiftdown đến Start: Phần tử tự hàng đợi reset đến giá trị khởi tạo biến đếm i 7.2 Có cách truyền biến đồng thời-một chiều-hai chiều-khơng điều kiện-có điều kiện 7.3 Trái với mã hóa hai chiều hình 22, mã hóa đối xứng theo nghĩa hai automat dùng mã hóa hồn tồn giống Tính đối xứng đến với chi phí khơng gian trạng thái lớn chút 7.4 Truyền mảng giá trị 7.5 Gửi đa hướng từ sender tới N receivers (N=3 ví dụ này) 7.6 Khi loại bỏ phần tử đầu từ hàng đợi, tất phần tử khác phải bị dịch xuống Điều làm xong vịng lặp vị trí Shiftdown Để tránh việc chèn khơng cần thiết, vị trí đánh dấu chuyển tiếp (committed) Chú ý cạnh vào Shiftdown đồng kênh rem Điều quan trọng vị trí đích cạnh đồng rem q trình khác khơng đánh dấu chuyển tiếp 7.7 Ví dụ sử dụng cạnh khẩn cấp: Kênh go định nghĩa cạnh khẩn cấp 7.8 Ví dụ timer sử dụng cạnh khẩn cấp khởi động 7.9 Mẫu mơ hình timer Mẫu (a) có int value; chan set tham số mẫu (b) có bool active; chan set; const T0 tham số Cả hai mẫu có khai báo cục clock x 7.10 Ví dụ The Train Gate điều chỉnh phép kiểm tra phạm vi tính sống 7.11 Mơ hình hệ thống pipeline 7.12 Một gợi ý cho việc trừu tượng hóa atomat để kiểm tra gợi ý 41 43 44 45 8.1 8.2 8.3 8.4 8.5 8.6 Automat cánh cửa Automat người mở cửa Kiểm chứng demo 2doors Automat Soldier Automat Touch Kiểm chứng toán Bridge 47 48 49 51 52 53 9.1 Việc lập sơ đồ chuyển tiếp ba (x, e, x ) G đến hai vị trí, chuyển tiếp ghi nhãn hai cung hình Petri Net N 55 32 34 35 36 37 38 39 40 Giới thiệu chung Tài liệu bắt đầu vài nét lịch sử phần mềm Uppaal chương Tiếp theo, chương đề cập đến automat định thời Giới thiệu tính phần mềm Uppaal có chương Để minh họa cách sử dụng Uppaal, ba demo khác phân tích chương 4, 5, Chương tập trung giới thiệu mô hình mẫu hay sử dụng nhiều mơ hình hóa Uppaal Chương giải thích demo cung cấp kèm theo phần mềm Uppaal Chương so sánh Automat Petri Nets, hai phương án thông dụng để mơ hình hóa hệ kiện rời rạc Cuối cùng, chương 10 tổng kết chung số suy nghĩ nhóm tập lớn Do trình độ có hạn phức tạp môn học Hệ kiện rời rạc nói chung phần mềm Uppaal nói riêng, tài liệu chắn có lỗi sai Nhiều thuật ngữ tiếng Anh cịn chưa có thuật ngữ chuẩn tương ứng tiếng Việt nhóm tạm dịch cho ý, giữ ngun tiếng Anh Để có thơng tin cách xác nhất, bạn đọc nên lúc tham khảo tài liệu gốc "A Tutorial on Uppaal 4.0" Gerd Behrmann, Alexandre David, Kim G Larsen Hi vọng tương lai tài liệu hệ kiện rời rạc phần mềm Uppaal sớm xuất Việt Nam Chương Giới thiệu phần mềm Uppaal Uppaal phần mềm để kiểm tra hệ thống thời gian thực, phát triển Đại học Uppsala Đại học Aalborg Phần mềm ứng dụng thành công nghiên cứu nhiều lĩnh vực giao thức truyền thông hay ứng dụng multimedia Công cụ dùng để kiểm định hệ thống mơ hình hóa thành hệ thống automat định thời với biến số nguyên, cấu trúc liệu, hàm người dùng, đồng kênh Phiên Uppaal đời vào 1995 Kể từ phần mềm phát triển khơng ngừng để theo kịp với tiến vè cấu trúc liệu, giảm bậc hệ thống, phân phối UPPAAL, hỗ trợ tính tối thiểu hóa chi phí, hỗ trợ UML Bản 4.0 Đã có nghiên cứu tiến sĩ thực Uppall Nó hỗ trợ Java có phần kiểm chứng viết ngôn ngữ C++ Chương Timed-automata Uppaal Khả kiểm chứng mơ hình Uppaal dựa giả thuyết automat thời gian ngôn ngữ mơ hình hóa hỗ trợ tính biến số ngun có giới hạn Ngơn ngữ truy vấn Uppaal, sử dụng để kiểm tra tính chất hệ tập TTCL (Timed Computation Tree Logic: tính toán logic rẽ nhánh theo thời gian) Ở phần nghiên cứu cách mơ hình hóa ngơn ngữ truy vấn Uppaal giải thích rõ ràng thời gian automat thời gian 2.1 Ngôn ngữ mơ hình hóa Hệ thống automat thời gian: automat thời gian máy có số trạng thái hữ hạn mở rộng với đồng hồ giá trị thực Tất đồng hồ đồng hóa với Trong UPPAAL, hệ thống mơ hình mạng automat thời gian xếp song song Mơ hình mở rộng với biến rời rạc bị chặn trạng thái Những biến sử dụng tỏng ngơn ngữ lập trình: đọc, ghi thực phép tính số học Một trạng thái hệ thống định nghĩa vị trí automat, giá trị đồng hồ biến rời rạc Mỗi automat thay đổi (khơng nên hiểu chuyển tiếp) độc lập hay đồng với automat khác, dẫn đến trạng thái khác Hình 2.1(a) thể automat thời gian mơ hình đèn Đèn có mức: tắt, sáng yếu sáng mạnh Nếu người dùng bấm nút, chẳng hạn đồng với Press? , đèn bật Nếu ấn lần nữa, đèn tắt Bấm lần liên tiếp, đèn chuyển sang sáng mạnh Mơ hình 2.1(b) Người dùng ấn nhiều lần khơng ấn Đồng hồ y để kiểm tra xem người dùng ấn nhanh (y=5) Sau ta đưa định nghĩa automat thời gian cách đơn giản, bỏ qua tính cao cấp có Uppaal Chú ý rằng: C tập đồng hồ, B(C) tập kết hợp dựa điều kiện đơn giản x,y thuộc C CHƯƠNG TIMED-AUTOMATA TRONG UPPAAL 2.1 NGƠN NGỮ MƠ HÌNH HĨA Hình 2.1: Automat đơn giản đèn bàn Định nghĩa Automat định thời (Timed Automata, TA) định nghĩa (L, l0 , C, A, E, I), với L tập trạng thái, l0 ∈ L trạng thái ban đầu, C tập đồng hồ, A tập actions, co-actions and the internal τ -action, E ⊆ LxAxB(C)x2CxL tập cung nối trạng thái, E có action, guard tập đồng hồ reset, I : L → B(C) gán invariants trạng thái Trong ví dụ hình 2.1, y:=0 reset đồng hồ y, nhãn press? press! chuỗi hành động Tiếp theo ta định nghĩa ngữ nghĩa automat thời gian Hàm u : C → R>=0 từ tập đồng hồ đến số thực không âm giá trị đồng hồ RC tập giá trị đồng hồ u0 (x) = với x ∈ C Hình 2.1 thể ngữ nghĩa TA Từ trạng thái định, ta lựa chọn action delay Phụ thuộc vào thời gian delay, có action bị cấm TA thường bao gồm mạng TA dựa tập đồng hồ chuyển tiếp, chứa n automat Ai , ≥ x ≥ n Aptomat định thời(TA) UPPAAL Ngơn ngữ mơ hình hóa UPPAAL mở rộng với tính sau: Templates automat khai báo với tập tham số nhận kiểu giá trị (int, char ) Những tham số thay cho đối số khai báo trình Constants khai báo const name value Hằng thay đổi phải có giá trị số nguyên Bounded integer variables biến nguyên bị chặn, khai báo int[min, max] name, max cận Guard, invariant assignment diễn tả biến 2.1 NGƠN NGỮ MƠ HÌNH HĨA CHƯƠNG TIMED-AUTOMATA TRONG UPPAAL Hình 2.2: Ngữ nghĩa TA: Các vận hành khác TA từ trạng thái đầu Nếu vi phạm cận dẫn tới trạng thái khơng tồn Nếu khơng có cận mặc định từ -32768 dến 32768 Binary synchronisation kênh khai báo chan c Một cạnh dán nhãn c! đồng với nhãn khác c? Cặp đồng chọn ngẫu nhiên có nhiều khả kết hợp xảy Broadcast channel khai báo broadcast chan c Trong broadcast synchronisation người gửi c! đồng với số lượng tùy y người nhận c? Urgent synchronisation kênh khai báo thêm vào khai báo kênh cú pháp urgent Nếu có kênh có nhãn urgent khơng có trễ đồng chuyển tiếp Urgent location tương đương với đồng hồ thêm x mặt ngữ nghĩa, reset cạnh đến có bất biến Do đó, thời gian không thay đổi hệ thống Urgent location Committed location điều kiện chặt chẽ urgent Một trạng thái committed location trạng thái committed Arrays dùng cho đơng hồ, kênh, biến nguyên Ví dụ: chan c[4], clock a[2] Initialisers dùng để khởi tạo biến nguyên mảng Ví dụ: int i=2; hay int i[3]=1,2,3; Record types khai báo với struct C Custom types tương tự typedef C 10 CHƯƠNG CÁC THIẾT KẾ MẪU 7.9 TRỪU TƯỢNG HĨA VÀ MƠ PHỎNG Hình 7.10: Ví dụ The Train Gate điều chỉnh phép kiểm tra phạm vi tính sống Đặc biệt, mơ hình ứng dụng cách thành phần đến hệ thống Các hệ thống đa dạng thay vật trừu tượng thích hợp, nỗ lực kiểm tra tiến hành thành phần hệ thống trừu tượng Hỗ trợ từ Uppaal Mặc dù tiến lớn khả kiểm chứng Uppaal nhiều năm qua- chắn năm tới- bùng nổ không gian trạng thái vấn đề tồn tại, giải tiến thuật toán Tuy nhiên, việc xác minh đặc tính cụ thể hệ thống thường phần cách hoạt động thành phần đa dạng có liên quan Người thiết kế thường có trực giác tốt liên quan thành phần này, trường hợp người thiết kế có khả cung cấp trừu tượng cho thành phần đa dạng, đủ cụ thể để giữ đặc tính cho, đủ trừu tượng (và nhỏ) để nỗ lực xác minh trở nên khả thi Để đưa hai yều cầu phương pháp luận cần thỏa mãn Thứ nhất, khái niệm trừu tượng dùng nên giữ tính chất quan tâm Một đặc tính biễu diễn để giữ trừu tượng, nên đảm bảo giữ cho hệ thống cụ thể Thứ hai, mối quan hệ trừu tượng nên giữ gìn thành phần hệ thống Trong [46,45] đưa khái niệm (ready) đặc tính an tồn giữ thời gian mơ trước làm phù hợp thành phần Hơn nữa, trừu tượng cho tiền định với việc chuyển tiếp nội bộ, mơ thiết lập việc kiểm tra tính đạt đơn giản Cấu trúc 43 7.9 TRỪU TƯỢNG HĨA VÀ MƠ PHỎNG CHƯƠNG CÁC THIẾT KẾ MẪU Cho A automat thời gian đề xuất trừu tượng cho vài hệ thống S (có thể mạng automat thời gian) Chúng ta coi A tiền định khơng có chuyển tiếp nội Để đơn giản hóa, coi tất kênh không khẩn cấp không tồn biến chia sẻ S hệ thống lại Để cho thấy A thực khái niệm trừu tượng S ý nghĩa, A(ready) mô theo thời gian S hỗ trợ kỹ thuật thử nghiệm TA xây dựng theo cách sau: TA có A xương với việc đạo hành động (input/output) đảo ngược Một vị trí phân biệt bad thêm từ tất vị trí l tất hành động a cạnh dán nhãn a từ l đến bad chèn với guard ¬(g1 ∨ ∨ gn) nơi mà g1 gn tập hợp đầy đủ guard cạnh dán nhãn a l xương Bây S (ready) mô theo thời gian A- A khái niện trừu tượng có giá trị S- xác vị trí bad khơng thể đạt hệ thống hỗn hợp S||TA Cơ bản, TA cho thấy tất hoạt động S tương xứng với A Ví dụ mẫu Xem xét mơ hình Uppaal hình7.9 gồm Sender, Receiver q trình đường Hình 7.11: Mơ hình hệ thống pipeline ống Pi Mỗi q trình đường ống Pi có nghĩa vụ phản ứng lại với kích thích từ người tiền nhiệm kênh vượt qua đến người kế thừa kênh ai+1 Một đồng hồ cục dùng để mơ hình mà trình đường ống thêm trễ nhỏ Sau hồn thành việc thơng qua trên, q trình đương ống tham gia vài tính tốn nội (vòng tròn nhỏ S2, S3, S4) Bây coi muốn xác minh Receiver nhận kích thích khơng sớm sau đơn vị thời gian, 2n hệ thống với n trình đường ống Rõ ràng, hệ thống dang xem xét dẫn đến bùng nổ không gian trạng thái lớn tăng số lượng phần tử đường ống Tuy nhiên, việc thiết lập đặc tính cần chút thông tin hệ thống Đối với P1||P2 bản, cần biết 44 CHƯƠNG CÁC THIẾT KẾ MẪU 7.9 TRỪU TƯỢNG HÓA VÀ MƠ PHỎNG Hình 7.12: Một gợi ý cho việc trừu tượng hóa atomat để kiểm tra gợi ý thời gian phản ứng với kích thích khởi tạo từ Sender đển việc truyền kích thích đến P3 Chúng ta không cần lo lắng việc tính tốn nội thời điểm xác kích thích truyền từ P1 đến P2 Đặc biệt, thay P1||P2 với automat đơn giản nhiều P1P2 Để cho thấy điều thay hợp lệ, đơn giản vị tri BAD đạt tới hệ thống P1||P2||TestP1P2, nơi mà TestP1P2 automat thử nghiệm cho P1P2 Một khái niệm trừu tượng tương tự P3P4 thấy đưa cho hệ thống P3||P4 đặc tính mong muốn thiết lập cho hệ thống đơn giản nhiều P1P2||P3P4, với hệ thống ban đầu 45 Chương Các demo khác Uppaal 8.1 Demo: doors Nội dung tốn Một phịng có cánh cửa mở lúc Một cánh cửa mở nút bấm nhấn Cánh cửa mở vịng 6s, sau mở tiếp 4s không 8s Mất 6s để đóng cửa sau đóng khơng thể mở 5s sau Những giả thiết sau áp dụng mơ hình: - Nút bấm mở cửa khơng bấm cửa mở, mở đóng - Có giới hạn địa điểm “close”, ví dụ trễ sau cửa đóng Cơng việc mô hỏng lại hoạt động hệ thống cho thỏa mãn đặc điểm mutex (cả cửa mở lúc) xác đinh xem giớ hạn cửa mở hoàn toàn sau bâm nút mở cửa, chứng minh giới hạn nhỏ Mô hình hóa UPPAAL Mơ hình cửa có khn mẫu (template) cánh cửa người qua cửa - Door template cánh cửa - User template người mở cửa Vì tốn có tính đến độ trễ mở cửa đóng cửa nên đương nhiên mơ hình hóa ta phải sử dụng automat thời gian để mô khoảng thời gian trễ Tương ứng với cửa người sử dụng có đồng hồ riêng 46 CHƯƠNG CÁC DEMO KHÁC TRONG UPPAAL 8.1 DEMO: DOORS Khai báo biến toàn cục sau: bool activated1, activated2; urgent chan pushed1, pushed2; urgent chan closed1, closed2; Door1 Door2 User1 User2 = = = = Door(activated1, Door(activated2, User(activated1, User(activated2, pushed1, closed1, closed2); pushed2, closed2, closed1); pushed1); pushed2); system Door1, Door2, User1, User2; Template cánh cửa: Hình 8.1: Automat cánh cửa Template cửa có biến là: activated, pushed, closed1, closed2 Để đảm bảo trễ xảy chuyển trạng thái pushed, closed1, closed2được chọn kênh dạng urgent - Activated biến dạng boolean cho biết có tín hiệu mở cửa hay khơng, có giá trị true ngược lại 47 8.1 DEMO: DOORS CHƯƠNG CÁC DEMO KHÁC TRONG UPPAAL - Pushed: tín hiệu mở cửa - Closed1: tín hiệu báo cửa đóng - Closed2: tín hiệu báo cửa đóng Template cửa có trạng thái: idle, wait, opening, open, closing, closed - Idle: trạng thái ban đầu automat, có ý nghĩa làcửa chờ, cửa đóng chưa có yêu cầu mở cửa Khi có tín hiệu activated ứng với có u cầu mở cửa chuyển đến trạng thái - Wait: trạng thái đợi cửa bấm nút mở cửa, tồn trạng thái có khả cửa lại mở nên chưa thể mở cửa mà phải đợi cửa đóng lại Khi biết cửa đóng (kiểm tra urgent channel closed2có thỏa mãn hay khơng chuyển đến trạng thái tiếp theo) Trong giai đoạn ta đặt giá trị đầu cho đồng hồ x=0 hình vẽ - Opening: trạng thái cửa mở, automat dừng trạng thái đồng hồ có giá trị x có 49 8.2 DEMO: BRIDGE CHƯƠNG CÁC DEMO KHÁC TRONG UPPAAL - Door1.wait –> Door1.open: kiểm tra tính sống hệ thống, nút bấm nhấn cửa tương ứng mở (tương tự cho cửa 2) => thỏa mãn - A[] (Door1.opening imply User1.w đợi 5s ii Người bấm mở cửa 2, mở cửa 6s iii Người qua cửa => tối đa 8s iv Cửa đóng => 6s v Mở cửa => 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 cửa mở lúc => không thỏa mãn 8.2 Demo: Bridge Nội dung toán đội muốn vượt qua cầu hỏng đêm khuya Chỉ có người qua cầu lúc Để qua cầu người phải mang đuốc Thời gian để qua cầu người 5, 10, 20, 25 phút Câu hỏi đặt có cách xếp người qua cầu khoảng thời gian nhor 60 phút hay không? Nhiệm vụ mơ hình hóa hoạt động lính đuốc thỏa mãn yêu cầu đề đặt ra, đồng thời trả lời câu hỏi tốn Mơ hình hóa UPPAAL Mơ hình tốn cầu có khn mẫu (Template) người lính đuốc - Soldier template người lính - Torch template đuốc 50 CHƯƠNG CÁC DEMO KHÁC TRONG UPPAAL 8.2 DEMO: BRIDGE Khai báo biến toàn cục sau: chan take, release; // Nhận trả đuốc int[0,1] L; // Vị trí đuốc,0:bờ này, 1:bờ clock time; // Đồng hồ chung hệ thống Hình 8.4: Automat Soldier Template người lính có số riêng delay cho biết thời gian cần có để người lính qua cầu Template người lính có trạng thái bao gồm trạng thái chuẩn unsafe safe trạng thái trung gian - Unsafe : trạng thái ban đầu, ứng với người lính đứng bờ sông chưa qua cầu - Safe : ứng với người lính đứng bên bờ sơng - Trung gian :người lính từ bờ sang bờ - Trung gian : người lính từ bờ sang bờ Trong trình từ bờ sang bờ người lính phải nhận đuốc (kích hoạt channel take !) Đồng hồ y reset Khi đến TG1,khi y>=delay người lính sang bờ đến trạng thái safe trả lại đuốc (kích hoạt channel release !) Q trình người lính quay trở lại từ bờ sang bờ hoạt động tương tự Template đuốc có trạng thái :free, one,two trạng thái trung gian - Free: trạng thái ban đầu, đuốc bờ - Trung gian: trạng thái dạng urgent, thể lựa chọn người lính người qua sơng, hay người qua sông Trạng thái urgent thể khơng có thời gian trễ nhận đuốc 51 8.2 DEMO: BRIDGE CHƯƠNG CÁC DEMO KHÁC TRONG UPPAAL Hình 8.5: Automat Touch - One: trạng thái thể có người qua sơng - Two: trạng thái thể có người qua sơng Khi có tín hiệu nhận đuốc gửi từ người lính (take?), trạng thái trung gian chuyển sang lựa chọn người trạng thái one, tiếp tục có thêm tín hiệu nhận đuốc có người sang sông chuyển sang trạng thái two Tương tự, có tín hiệu release? Gửi từ người lính từ trạng thái two chuyến sang trạng thái one Nếu tiếp tục có release? Thì đuốc trở trạng thái free ban đầu Tiếp ta khai báo người lính thời gian qua sơng người với đuốc const int fastest = 5; const int fast = 10; const int slow = 20; const int slowest = 25; Viking1 = Soldier(fastest); Viking2 = Soldier(fast); Viking3 = Soldier(slow); Viking4 = Soldier(slowest); system Viking1, Viking2, Viking3, Viking4, Torch; Mô kiểm chứng Để kiểm tra khả hoạt động automat, ta phải kiểm tra số tính chất tính an tồn, tính sống, có rơi vào deadlock hay khơng, số tính chất khác Việc kiểm tra tiến hành sau: - A[] not deadlock: hệ thống không vào deadlock => thỏa mãn - E Viking1.safe: người lính qua cầu an tồn => thỏa mãn - A[] not (Viking4.safe and time không - E Viking4.safe imply time>=slowest: kiểm tra người lính thứ qua cầu an tồn 52 CHƯƠNG CÁC DEMO KHÁC TRONG UPPAAL 8.2 DEMO: BRIDGE Hình 8.6: Kiểm chứng tốn Bridge thời gian có lớn cho phép khơng => có - E Viking1.safe and Viking2.safe and Viking3.safe and Viking4.safe: kiểm tra xem tất lính qua sơng an tồn hay khơng => có Về việc lập lịch thỏa mãn thời gian nhỏ 60 phút, ta biến đổi thành tính chất đạt tới với time=60 Sử dụng tính Diagnostic Trace:Fastest để tìm lộ trình tối ưu Lộ trình 60 phút 53 Chương So sánh Automata Petri Nets Automat Petri Net sử dụng để mơ hình hóa vận hành hệ kiện rời rạc (DES) Chúng ta thấy hai thể rõ ràng cho cấu trúc chuyển đổi DES Trong Automat, điều làm cách liệt kê rõ ràng tất trạng thái sau kết nối trạng thái với trình chuyển đổi chúng, dẫn đến chức chuyển đổi Automat Điều không đặc biệt dễ chịu Automat dễ dàng kết nối phép toán tích phép ghép song song mơ hình hệ thống phức tạp xây dựng từ mơ hình thành phần riêng lẻ theo cách hệ thống Mặt khác, Petri Net có cấu trúc mơ tả chức chuyển đổi Các trạng thái không liệt kê; thay vào đó, thơng tin trạng thái phân phối tập Place nắm giữ điều kiện quan trọng chi phối hoạt động hệ thống Tất nhiên, vài công việc cần làm thời gian mơ hình để xác định tất điều kiện liên quan phải nắm giữ Place, sau kết nối cách place đến chuyển tiếp Câu hỏi tự nhiên đặt là: Mơ hình tốt cho DES cho trước, Automat hay Petri Net Khơng có câu trả lời rõ ràng cho câu hỏi này, việc mơ hình hóa ln phụ thuộc vào cá nhân xem xét ứng dụng cụ thể Tuy nhiên, tái dựng lại câu hỏi xác bối cảnh tiêu chí cụ thể để so sánh, ta rút vài kết luận Language Expressiveness (Khả biểu đạt ngôn ngữ) Tiêu chí để so sánh Automat Petri Net, xem xét đến lớp ngơn ngữ đại diện hình thức, hạn chế đến mơ hình u cầu nhớ hữu hạn, lý thực tế rõ ràng Chúng ta thấy lớp PNL rộng hoàn toàn so với lớp R, nghĩa Petri Net với tập hữu hạn vị trí chuyển tiếp mơ tả nhiều ngôn ngữ E∗ Automat hữu hạn trạng thái Để chứng minh kết này, thấy Automat hữu hạn chuyển đổi thành Petri Net tạo đánh dấu ngơn ngữ tương tự Sau hoàn thành việc chứng minh cách đưa ngôn ngữ không 54 CHƯƠNG SO SÁNH AUTOMATA VÀ PETRI NETS quy đánh dấu Petri net Giả sử cho Automat hữu hạn trạng thái G = (X, E, fG , Γ, x0 , Xm ), X (và E cần thiết) tập hữu hạn Để xây dựng Petri net N = (P, T, A, w, E, l, x0 , Xm ) L(N ) = L(G) Lm (N ) = Lm (G) Chúng ta tiến hành sau Đầu tiên xem trạng thái X xác định vị trí P , P = X Điều xác định: a Trạng thái khởi tạo x0 N vector hàng [0, , 0, 1, 0, , 0] mục khác khơng vị trí P tương ứng với x0 ∈ X; b Tập trạng thái đánh dấu Xm N tập tất vector cột [0, , 0, 1, 0, , 0] mục khác không cho vị trí tương ứng với trạng thái đánh dấu Xm Tiếp theo, liên kết (x, e, x ) G, nơi mà x = fG (x, e) cho vài e ∈ Γ(x), với chuyển tiếp t(x, e, x ) T N Nói cách khác, T có yếu tố giống tập cung sơ đồ chuyển trạng thái G Sau đó: a Ghi nhãn chuyển đổi t(x, e, x ) T kiện e ∈ E; b Xác định hai cung A cho ba (x, e, x ) G: cung (x, t(x, e, x )) cung (t(x, e, x ), x ) Tất cung có trọng số Việc lập sơ đồ trạng thái cung G đến vị trí, chuyển tiếp, cung N minh họa hình Chúng ta nên kỹ thuật chuyển đổi cho việc xây dựng Petri net Hình 9.1: Việc lập sơ đồ chuyển tiếp ba (x, e, x ) G đến hai vị trí, chuyển tiếp ghi nhãn hai cung hình Petri Net N Automat hữu hạn cho đơn cho mục đính chứng minh cho việc xác minh quan hệ PLN R khơng dẫn đến mơ hình Petri net trực quan Thực vậy, hệ thống vật lý tự gợi ý cách tốt cho việc tìm thấy mơ hình Petri net việc nắm bắt thông tin cấu trúc hệ thống Trong khơng phải tất Petri net chuyển đổi thành Automat hữu hạn tương đương, rõ ràng Petri net N đạt tới tập trạng thái R(N ) hữu hạn chuyển thành Automat hữu hạn trạng thái tương đương Là đủ để tạo trạng thái Automat cho x ∈ R(N ) kết nối trạng thái Automat cung thích hợp để kích hoạt chuyển tiếp x, trạng thái chúng tới nhãn chúng Chúng ta kết luận khả biểu diễn lớn Petri net cho ngôn ngữ so sánh với 55 CHƯƠNG SO SÁNH AUTOMATA VÀ PETRI NETS Automat hữu hạn xảy hành vi đại diện Petri net kết ngôn ngữ cho số không bị chặn thẻ nhiều vị trí, dẫn đến tập vơ hạn trạng thái Petri net đạt Model-Building (Xây dựng mơ hình có tính modul) Mặc dù phức tạp tiềm đồ thị Petri net cần thiết để mơ hình chí DES tương đối đơn giản, Petri net hình thức sở hữu vài lợi vốn có Một lợi khả phân tích hay modul hóa hệ thống phức tạp Giả sử có hai hệ thống có ảnh hưởng lẫn với không gian trạng thái X1 X2 mô hình hóa Automat Nếu kết hợp hai hệ thống vào một, không gian trạng thái X rộng chứa tất trạng thái X1 × X2 Điều làm tăng nhanh độ phức tạp Automat hai hệ thống khơng có kiện chung Mặt khác, hệ thống mơ hình hóa Petri net, hệ thống kết nối thường dễ dàng thu cách để lại mạng lưới ban đầu thêm vài vị trí chuyển tiếp để đại diện cho tác động qua lại hai hệ thống Hơn nữa, cách nhìn vào sơ đồ Petri net này, ta thuận tiện nhìn thấy thành phần riêng biệt, phân biệt mức độ tương tác chúng, cuối phân tích hệ thống thành modul logic riêng biệt Theo đường, Petri net hướng tới việc nắm bắt chất đồng thời trình riêng biệt hình thành DES Sự kết hợp hai q trình khơng đồng mơ hình Automat có xu hướng trở nên phức tạp ẩn vài cấu trúc trực quan liên quan kết hợp Petri net hình thành cấu tự nhiên cho tình này, làm trở nên dễ dàng để hình dung cấu trúc Decidability Một vấn đề việc so sánh Automat Petri net khả định Chúng ta ý hầu hết vấn đề định liên quan đến Automat hữu hạn giải theo thuật toán thời gian hữu hạn, chúng định Khơng may, nhiều vấn đề định cho Automat hữu hạn khơng cịn định với Petri net, phản ánh cân tự nhiên khả định phong phú mơ hình Một ví dụ vấn đề tính tương đương ngơn ngữ hai Petri net Tổng thể, hữu ích để nghĩ Petri net Automat cách tiếp cận mơ hình bổ xung cho ưu Như ra, thường ứng dụng cụ thể, ta cách tiếp cận phù hợp 56 Chương 10 Kết luận Uppaal công cụ mạnh để mô hệ kiện rời rạc Tài liệu cố gắng trình bày thành phần, cách sử dụng số ví dụ sử dụng Uppaal Các bạn sinh viên khóa sau sử dụng tài liệu hướng dẫn sơ lược trước làm việc với Uppaal Trong tương lai, chắn Uppaal có nâng cấp thay đổi để hồn thiện mô hệ kiện rời rạc, việc khơng ngừng tìm hiểu nâng cấp tài liệu cơng việc có ý nghĩa dành cho bạn sinh viên khóa sau Cuối cùng, nhóm sinh viên thực xin gửi lời cảm ơn tới Th.S Đinh Thị Lan Anh Những hướng dẫn, góp ý động viên Lan Anh giúp nhóm nhiều việc biên dịch tài liệu Hà Nội, ngày 23/11/2012 57 ... liệu bắt đầu vài nét lịch sử phần mềm Uppaal chương Tiếp theo, chương đề cập đến automat định thời Giới thiệu tính phần mềm Uppaal có chương Để minh họa cách sử dụng Uppaal, ba demo khác phân... địa điểm Trong UPPAAL, khóa chết biểu diễn nhớ State formulae đặc biệt Formula sử dụng từ kháo deadlock thỏa mãn trạng thái khóa chết Do hạn chế Uppaal, trạng thái kháo cứng sử dụng với State... The Gossiping Girls Ta sử dụng mảng tmp để tạm thời lưu bí mật mà cô gái biết Trong hàm talk(), ta sử dụng phép gán mảng, gán bí mật gái nói vào mảng tmp Hàm listen() sử dụng vịng lặp để xác định

Ngày đăng: 03/08/2014, 09:19

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan