ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THẾ HUY CHỨNG MINH TÍNH ĐÚNG ĐẮN CHO BÀI TOÁN XUNG ĐỘT TÀI NGUYÊN CHO CÁC HỆ ĐA TÁC TỬ LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2014 z ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THẾ HUY CHỨNG MINH TÍNH ĐÚNG ĐẮN CHO BÀI TOÁN XUNG ĐỘT TÀI NGUYÊN CHO CÁC HỆ ĐA TÁC TỬ Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. PHẠM NGỌC HÙNG Hà Nội – 2014 z i LỜI CAM ĐOAN Tôi xin cam đoan rằng, luận văn thạc sĩ công nghệ thông tin “Chứng minh tính đúng đắn cho bài toán xung đột tài nguyên cho các hệ đa tác tử” là sản phẩm nghiên cứu của riêng cá nhân tôi dưới sự giúp đỡ rất lớn của Giảng viên hướng dẫn là TS. Phạm Ngọc Hùng, tôi không sao chép lại của người khác. Những điều đã được trình bày trong toàn bộ nội dung của luận văn này hoặc là của chính cá nhân tôi, hoặc là được tổng hợp từ nhiều nguồn tài liệu.
Tất cả các tài liệu tham khảo đều có nguồn gốc rõ ràng và được trích dẫn hợp pháp. Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình. Hà nội, ngày 26 tháng 06 năm 2014 Người cam đoan Nguyễn Thế Huy z ii LỜI CẢM ƠN Trước tiên, tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc đến thầy giáo, TS. Phạm Ngọc Hùng - người đã dành nhiều tâm huyết, tận tình chỉ bảo và giúp đỡ tôi trong suốt quá trình kể từ khi tôi bắt đầu học môn học do thầy giảng dạy, rồi tôi xin thầy hướng dẫn đề tài, cho đến khi tôi hoàn thành luận văn này.
Tôi xin gửi lời cảm ơn chân thành tới các thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội - nơi tôi đã theo học trong thời gian qua. Các thầy cô đã cung cấp cho tôi những kiến thức quý báu, tạo điều kiện tốt nhất cho tôi trong suốt quá trình học tập và nghiên cứu tại trường. Cuối cùng, tôi xin chân thành cảm ơn những người thân trong gia đình, đặc biệt là bố mẹ tôi đã luôn động viên và ủng hộ tôi. Xin cảm ơn bạn bè cùng khóa đã giúp đỡ tôi trong quá trình học tập.
Luận văn này được thực hiện với sự hỗ trợ của đề tài mã số QG.50 do Đại học Quốc Gia Hà Nội tài trợ. z iii MỤC LỤC LỜI CAM ĐOAN. ii MỤC LỤC. iii BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT.
ivv DANH MỤC HÌNH VẼ. TỔNG QUAN VỀ CafeOBJ. Đặc tả và kiểm chứng trong CafeOBJ. Ví dụ minh họa.
ĐẶC TẢ HỆ THỐNG ĐA TÁC TỬ SỬ DỤNG CHUNG ĐA TÀI NGUYÊN. Giới thiệu bài toán. Phương pháp đặc tả. Đặc tả các tác tử.
Không gian trạng thái. Đặc tả các thuộc tính bất biến. Kiểm chứng hệ thống đa tác tử sử dụng chung đa tài nguyên. ĐẶC TẢ VÀ CHỨNG MINH TÍNH ĐÚNG ĐẮN CHO HỆ THỐNG ĐẠI LÝ VÉ MÁY BAY.
Mô tả bài toán trong hệ chuyển trạng thái quan sát được - OTS (Observational Transition System). Đặc tả hệ thống với CafeOBJ. Chứng minh tính đúng đắn của hệ thống. 41 TÀI LIỆU THAM KHẢO.
54 z iv BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Ký hiệu Diễn giải Tiếng Việt 1 AID Agent Identification Định danh tác tử 2 ATA Airline Ticket Agent Đại lý vé máy bay 3 FID Flight Identification Định danh chuyến bay 4 init Initial state Trạng thái khởi tạo 5 INV Invariant Bất biến 6 ISTEP Inductive Step Bước quy nạp 7 NAT Natural Number Số tự nhiên Hệ chuyển trạng thái quan 8 OTS Observational Transition System sát được 9 RID Resource Identification Định danh tài nguyên Bộ công cụ kiểm chứng mô 10 SMV Symbolic Model Verifier hình được phát triển bởi Ken McMillan 11 TRIVM Trivial Module Mô-đun tầm thường z v DANH MỤC HÌNH VẼ Hình 2.1: Định nghĩa mô-đun trong CafeOBJ.2: Đặc tả mô-đun SIMPLE-NAT trong CafeOBJ.3: Đặc tả mô-đun NAT+ trong CafeOBJ.4: Hội thoại giữa CafeOBJ với người dùng.5: Tổ chức các thành phần của một mô-đun.6: Các công đoạn chứng minh tính chất (*).1: Lưu đồ mô tả quá trình hoạt động của hệ thống cũng như tính chất độc quyền truy xuất của các tác tử đối với mỗi tài nguyên.2: Thao tác của hệ thống đối với mỗi hàng đợi tương ứng với mỗi tài nguyên.3a: Một số kịch bản của hệ thống.3b: Một số kịch bản của hệ thống.4: Định nghĩa tập hữu hạn các hành động của các tác tử .5: Định nghĩa đệ quy không gian trạng thái của hệ thống đa tác tử sử dụng chung đa tài nguyên.6: Định nghĩa thuộc tính bất biến của hệ đa tác tử sử dụng chung đa tài nguyên.7: Chứng minh thuộc tính bất biến luôn thỏa mãn.8: Quy trình chứng minh các thuộc tính bất biến của hệ đa tác tử sử dụng chung đa tài nguyên.1: Mô hình hệ thống đại lý vé máy bay được mô tả trong hệ chuyển trạng thái quan sát được – OTS.2a: Phần đặc tả đầu tiên của mô-đun ATA.2b: Đặc tả phương thức pc tại trạng thái khởi tạo của hệ thống (init).2c: Đặc tả chi tiết cho phương thức queue tại trạng thái khởi tạo (init) của hệ thống.2d: Khai báo các biến S, AI, AJ, QI, FI trước khi sử dụng.2e: Đặc tả chi tiết phương thức c-want.2f: Đặc tả chi tiết phương thức want.2g: Đặc tả chi tiết phương thức queue.2h: Đặc tả chi tiết phương thức c-try.2i: Đặc tả chi tiết phương thức try.2j: Đặc tả chi tiết phương thức exit và c-exit.3: Đặc tả mô-đun TRIVM.4: Đặc tả mô-đun QUEUE.5: Đặc tả mô-đun LABEL.6: Đặc tả mô-đun AID định danh các tác tử.7: Đặc tả mô-đun FID định danh cho chuyến bay.8: Đặc tả mô-đun INV.9: Đặc tả mô-đun ISTEP.10: Chứng minh tính đúng đắn của thuộc tính bất biến inv tại trạng thái khởi tạo init của hệ thống.11: Chứng minh tính đúng đắn của thuộc tính bất biến inv trong trường hợp tổng quát với phương thức chuyển trạng thái want.12: Bảng phân tách các trường hợp cần chứng minh cho thuộc tính bất biến inv với phương thức chuyển trạng thái want.13: Kiểm chứng trường hợp c-want(s,Fi,Ak), Ai = Ak, Aj = Ak.14: Kiểm chứng trường hợp c-want(s,Fi,Ak), Ai = Ak, not (Aj = Ak).15: Kiểm chứng trường hợp c-want(s,Fi,Ak), not (Ai = Ak), Aj = Ak.16: Trường hợp c-want(s,Fi,Ak), not (Ai = Ak), not (Aj = Ak).17: Kết quả trường hợp c-want(s,Fi,Ak), not (Ai = Ak), not (Aj = Ak).18: Kiểm chứng trường hợp c-want(s,Fi,Ak), not (Ai = Ak), not (Aj = Ak) sử dụng INST, TRANS, HIDE.19: Kiểm chứng trường hợp not c-want(s,Fi,Ak) .20: Kiểm chứng trường hợp 1 của phương thức try.21: Kiểm chứng try với trường hợp 2.22: Kết quả trả về của đoạn lệnh kiểm chứng try với trường hợp 2.23: Phần đặc tả của bổ đề lemma1.24: Bổ đề đúng đắn được rút ra từ lemma1.25: Kiểm chứng try với trường hợp 2 sau khi áp dụng bổ đề đúng đắn được rút ra từ lemma1.26: Kiểm chứng try với trường hợp 3.27: Kết quả trả về của đoạn lệnh kiểm chứng try với trường hợp 3.28: Bổ đề đúng đắn được rút ra từ bổ đề lemma1.29: Kết quả kiểm chứng try với trường hợp 4.30: Kiểm chứng try với trường hợp 5.31: Các trường hợp xem xét với want.32: Các trường hợp xem xét với try.33: Các trường hợp xem xét với exit. GIỚI THIỆU Kiểm chứng mô hình (model checking) [5, 6, 9] và các kỹ thuật kiểm thử (testing) đang được xem là các giải pháp chủ yếu nhằm đảm bảo chất lượng cho các sản phẩm phần mềm nói chung và các hệ thống đa tác tử nói riêng. Các kỹ thuật kiểm thử chỉ có khả năng phát hiện ra lỗi hoặc khiếm khuyết của hệ thống chứ không thể chỉ ra được hệ thống không còn lỗi. Do đó, nếu chỉ áp dụng các kỹ thuật kiểm thử không thôi thì chưa đủ để đảm bảo chất lượng của hệ thống, đặc biệt là đối với những hệ thống yêu cầu độ tin cậy cao.
Để giải quyết vấn đề này, một trong những phương pháp đang được áp dụng phổ biến là phương pháp kiểm chứng mô hình. Hiện nay có nhiều phương pháp hỗ trợ việc đặc tả và kiểm chứng phần mềm theo hướng tiếp cận mô hình như SMV [7], NuSMV [8], v. Tuy nhiên, phương pháp kiểm chứng mô hình chỉ áp dụng được với các hệ thống có số lượng tác tử là hữu hạn và phải xây dựng được máy hữu hạn trạng thái đặc tả chính xác hành vi của hệ thống. Đây là một trong những điểm yếu của phương pháp này, bởi vì trên thực tế, đối với các hệ đa tác tử, số lượng các tác tử là thường xuyên thay đổi trong các giai đoạn phát triển hệ thống, thậm chí là trong quá trình thực thi hệ thống.
Mặt khác, vấn đề bùng nổ không gian trạng thái là hoàn toàn có thể xảy ra khi áp dụng phương pháp kiểm chứng mô hình cho hệ thống lớn mà ở đó số lượng các tác tử chưa biết trước. Trong trường hợp này, phương pháp chứng minh định lý (theorem proving) là rất phù hợp để chứng minh tính đúng đắn của các hệ đa tác tử. Vấn đề cần giải quyết trong luận văn này là chứng minh tính đúng đắn cho bài toán xung đột tài nguyên cho các hệ đa tác tử sử dụng chung đa tài nguyên. Tài liệu [2] đã chứng minh được tính đúng đắn của một số thuộc tính bất biến của hệ thống đa tác tử với chỉ một tài nguyên dùng chung.
Do đó, khi áp dụng vào hệ thống với đa tài nguyên dùng chung thì về tư tưởng chứng minh là tương tự nhưng về mặt phương pháp đặc tả thì không còn đúng nữa. Luận văn này tập trung nghiên cứu một phương pháp đặc tả và kiểm chứng các hệ đa tác tử sử dụng chung đa tài nguyên và sau đó để cụ thể hóa, luận văn này đã áp dụng vào việc đặc tả và chứng minh tính đúng đắn cho hệ thống đại lý vé máy bay bằng việc sử dụng bộ chứng minh định lý CafeOBJ [3, 4]. Phần còn lại của luận văn này được cấu trúc như sau. Chương 2 trình bày tổng quan về ngôn ngữ CafeOBJ, đây là công cụ để hỗ trợ việc đặc tả và kiểm chứng phần mềm theo tư tưởng của chứng minh định lý (theorem proving).
Chương 3 trình bày việc đặc tả và kiểm chứng các hệ đa tác tử sử dụng chung đa z 2 tài nguyên. Chương này giới thiệu về hệ thống đa tác tử sử dụng chung đa tài nguyên, phương pháp đặc tả và kiểm chứng các hệ đa tác tử sử dụng chung đa tài nguyên.