(LUẬN văn THẠC sĩ) phân tích, thiết kế và cài đặt kiểm chứng một hệ thời gian thực

71 2 0
(LUẬN văn THẠC sĩ) phân tích, thiết kế và cài đặt kiểm chứng một hệ thời gian thực

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM VĂN TUẤN PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT KIỂM CHỨNG MỘT HỆ THỜI GIAN THỰC LUẬN VĂN THẠC SỸ HÀ NỘI – 2014 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ PHẠM VĂN TUẤN PHÂN TÍCH, THIẾT KẾ VÀ CÀI ĐẶT KIỂM CHỨNG MỘT HỆ THỜI GIAN THỰC Ngành : Công nghệ thông tin Chuyên ngành: Kỹ thuật Phần mềm Mã số: 60 48 01 03 LUẬN VĂN THẠC SĨ CÁN BỘ HƯỚNG DẪN KHOA HỌC: TS PHẠM HỒNG THÁI HÀ NỘI - 2014 TIEU LUAN MOI download : skknchat@gmail.com i LỜI CẢM ƠN Trước tiên xin chân thành cảm ơn TS Phạm Hồng Thái, người tận tình hướng dẫn giúp đỡ tơi suốt q trình thực luận văn tốt nghiệp Tơi xin cảm ơn Thầy, Cô giáo khoa Công nghệ thơng tin, Phịng Đào tạo Trường Đại học Cơng nghệ - ĐHQGHN giảng dạy truyền thụ cho kiến thức quý báu suốt thời gian học tập nghiên cứu trường Nhân cho phép gửi lời cảm ơn tới bạn bè, đồng nghiệp thành viên gia đình tạo điều kiện tốt nhất, động viên, cổ vũ, giúp đỡ, chia sẻ kinh nghiệm, cung cấp tài liệu hữu ích suốt thời gian tơi học tập nghiên cứu Trường Tuy cố gắng thời gian trình độ có hạn nên chắn luận văn cịn thiếu sót hạn chế định Kính mong nhận góp ý Thầy Cơ bạn để luận văn hồn thiện Tơi xin chân thành cảm ơn! Hà Nội, tháng 10 năm 2014 Tác giả luận văn Phạm Văn Tuấn TIEU LUAN MOI download : skknchat@gmail.com ii LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Phân tích, thiết kế cài đặt kiểm chứng hệ thời gian thực” cơng trình nghiên cứu hướng dẫn khoa học TS Phạm Hồng Thái Tất tài liệu tham khảo rõ trích dẫn danh mục tài liệu tham khảo Tồn chương trình, mã nguồn tơi thiết kế xây dựng q trình làm luận văn kế thừa từ “Luận án Tiến sĩ Tốn học” TS Phạm Hồng Thái, khơng chép người khác, phần tham khảo có trích dẫn rõ ràng Tơi xin hồn tồn chịu trách nhiệm lời cam đoan mình, có điều sai tơi xin chịu hình thức kỷ luật theo qui định nhà trường pháp luật Hà Nội, tháng 10 năm 2014 Tác giả luận văn Phạm Văn Tuấn TIEU LUAN MOI download : skknchat@gmail.com iii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN .ii MỤC LỤC iii DANH MỤC CÁC HÌNH v DANH MỤC CÁC BẢNG vi DANH MỤC TỪ VIẾT TẮT vii MỞ ĐẦU Chương HỆ THỜI GIAN THỰC VÀ BÀI TỐN KIỂM TRA TÍNH ĐÚNG ĐẮN CỦA HỆ THỜI GIAN THỰC 1.1 Hệ thời gian thực 1.1.1 Khái niệm hệ thời gian thực 1.1.2 Phân loại hệ thời gian thực 1.1.3 Đặc điểm hệ thời gian thực 1.2 Đặc tả thiết kế yêu cầu hệ thống 1.3 Kiểm tra tính đắn hệ thống Chương CÁC CÔNG CỤ ĐẶC TẢ 2.1 Ơtơmat thời gian 2.1.1 Định nghĩa 2.1.2 Dáng điệu đường chạy ôtômat thời gian 2.1.3 Ơtơmat hợp song song 10 2.2 Kỹ thuật phân vùng 11 2.2.1 Vùng ôtômat thời gian 11 2.2.2 Đồ thị vùng 11 2.3 Kỹ thuật phân miền 13 2.3.1 Định nghĩa 13 2.3.2 Các phép toán thực miền 13 2.3.3 Đồ thị miền 14 2.4 Công thức bất biến khoảng tuyến tính (LDI) 15 2.5 Bài toán bếp ga 16 TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc iv Chương PHÂN TÍCH, THIẾT KẾ BỘ CƠNG CỤ KIỂM CHỨNG MƠ HÌNH 17 3.1 Các thuật toán 17 3.1.1 Thuật toán xây dựng ôtômat hợp song song 17 3.1.2 Thuật toán xây dựng đồ thị vùng đạt nguyên 20 3.1.3 Thuật toán xây dựng đồ thị trọng số G phục vụ kiểm chứng LDI 21 3.1.4 Thuật toán kiểm chứng LDI 22 3.2 Các chi tiết kỹ thuật 24 3.3 Đầu vào đầu kiểm thử 25 3.4 Cấu trúc liệu 26 3.4.1 File liệu đầu vào 26 3.4.2 Ơtơmat 28 3.4.3 Công thức LDI 29 3.4.4 Đồ thị vùng đạt nguyên 29 3.4.5 Đồ thị trọng số phục vụ kiểm chứng LDI 30 3.4.6 Đường đồ thị 31 3.5 Thiết kế chương trình 32 3.5.1 Biểu đồ use case 32 3.5.2 Biểu đồ lớp 33 3.5.3 Biểu đồ 34 3.5.4 Biểu đồ hoạt động 35 Chương KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH 36 4.1 Cách sử dụng kiểm chứng 36 4.2 Kiểm chứng LDI toán 36 4.3 Kiểm chứng LDI toán bếp ga 38 4.4 Đánh giá công cụ kiểm chứng 39 4.5 Hướng cải tiến chương trình 40 KẾT LUẬN 42 TÀI LIỆU THAM KHẢO 44 PHỤ LỤC 45 Phụ lục A Một số mơ đun chương trình kiểm chứng 45 Phụ lục B Một số hình ảnh giao diện kiểm chứng 58 TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc v DANH MỤC CÁC HÌNH Hình 1.1: Các mức đáp ứng kiện mặt thời gian Hình 1.2: Sơ đồ kiểm chứng mơ hình Hình 2.1: Đồ thị vùng 12 Hình 2.2: Phép giao 13 Hình 2.3: Thiết lập lại giá trị đồng hồ 14 Hình 2.4: Phép trơi 14 Hình 2.5: Đồ thị miền 15 Hình 2.6: Ơtơmat thời gian bếp ga 16 Hình 3.1: Xây dựng đồ thị G từ đồ thị vùng đạt nguyên RG 22 Hình 3.2: Cấu trúc thư mục source code 25 Hình 3.3: Ơtơmat thời gian 27 Hình 3.4: Biểu đồ use case mức 32 Hình 3.5: Biểu đồ use case mức 32 Hình 3.6: Biểu đồ lớp 33 Hình 3.7: Biểu đồ danh sách toán 34 Hình 3.8: Biểu đồ hiển thị danh sách mơ hình 34 Hình 3.9: Biểu đồ kiểm chứng mơ hình 35 Hình 3.10: Biểu đồ hoạt động 35 Hình 4.1: Kết kiểm chứng toán 37 Hình 4.2: Kết kiểm chứng toán bếp gas 39 TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc vi DANH MỤC CÁC BẢNG Bảng 3.1: Thuật tốn xây dựng ơtơmat hợp song song từ ôtômat 19 Bảng 3.2: Thuật tốn xây dựng ơtơmat hợp song song tổng quát 20 Bảng 3.3: Thuật toán xây dựng đồ thị vùng đạt nguyên 21 Bảng 3.4: Thuật toán kiểm chứng LDI với đỉnh xuất phát cố định 24 Bảng 3.5: Thuật toán kiểm chứng LDI tổng quát 24 Bảng 3.6: Xác định lớp tham gia use case 34 TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc vii DANH MỤC TỪ VIẾT TẮT Viết tắt Tên đầy đủ - mơ tả TA Timed Automaton – Ơtơmat thời gian RTA Real-Time Automaton – Ơtơmat thời gian thực MC Model Checking – Kiểm chứng mơ hình DC Duration Calculus - Lơgic khoảng LDI Linear Duration Invariant - Bất biến khoảng tuyến tính LDP Linear Duration Property –Tính chất khoảng tuyến tính LTL Linear Temporal Logic - Lơgic thời gian tuyến tính TCTL Timed Computational Tree Logic – Lơgic tính tốn thời gian TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc MỞ ĐẦU Ngày nay, hệ thống thời gian thực ngày phát triển, ứng dụng phổ biến rộng rãi, chẳng hạn hệ thống nhúng thời gian thực thiết bị điện tử chuyên dụng, từ đồ điện tử gia đình tivi, máy giặt, lị vi sóng đến hệ thống lớn máy bay, tên lửa, vệ tinh nhân tạo, v.v… Các hệ thời gian thực hoạt động phức tạp dù lỗi nhỏ phá hủy tồn hệ thống gây hậu nghiêm trọng, đáng tiếc, hao tốn nhiều thời gian, tiền cơng sức để khắc phục Chi phí để phát triển hệ thống thời gian thực phần mềm lẫn phần cứng thường lớn nhiều so với hệ thống ứng dụng khác địi hỏi tính xác cao, khơng thể chấp nhận ứng dụng có lỗi dù nhỏ nhất, vậy, việc tìm hiểu mặt hệ thời gian thực từ phân tích, thiết kế mơ hình đến kiểm tra tính đắn hoạt động hệ thống trước đưa chúng vào sản xuất điều thiết thực cấp thiết Để phân tích, thiết kế mơ hình hệ thống thời gian thực sử dụng nhiều công cụ văn phạm, ôtômat, lôgic liên quan đến thời gian thực lôgic thời gian tuyến tính, lơgic khoảng, v.v… Xuất phát từ yêu cầu thực tiễn, để nâng cao kỹ thực hành củng cố lý thuyết, đề tài “Phân tích, thiết kế cài đặt kiểm chứng hệ thời gian thực” chọn làm đề tài luận văn tơi với mục tiêu: – Tìm hiểu phương pháp đặc tả kiểm tra tính đắn hệ thống thời gian thực – Tìm hiểu kỹ thuật kiểm tra tính đắn hệ thống thời gian thực phương pháp kiểm chứng mơ hình – Phân tích, thiết kế cài đặt cơng cụ kiểm chứng mơ hình cho đặc tả sử dụng công cụ ôtômat thời gian lôgic khoảng Luận văn gồm phần mở đầu, kết luận, chương phụ lục Phần mở đầu đặt vấn đề ý nghĩa, tính cấp thiết tính thực tế đề tài Chương giới thiệu khái quát hệ thời gian thực tốn kiểm tra tính đắn hệ Chương trình bày cơng cụ đặc tả hệ thống toán bếp ga Trong chương 3, luận văn mô tả thiết kế xây dựng cơng cụ cho phép kiểm chứng tính đắn hệ đặc tả dạng công thức tính chất khoảng tuyến tính cơng thức bất biến khoảng tuyến tính lơgic khoảng Đây mục tiêu kết luận văn TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc 48 } elseif (strcmp($loc2, $loc2_to) == && strcmp($loc1_to, $transition1['loc_name_to']) == 0) { $aryReset = $transition1['reset']; $guard1 = $transition1['guard']; break 2; } elseif (strcmp($loc2_to, $transition2['loc_name_to']) == && strcmp($loc1_to, $transition1['loc_name_to']) == 0) { $guard1 = $transition1['guard']; $guard2 = $transition2['guard']; $aryReset = $transition1['reset']; if (is_array($transition2['reset']) && count($transition2['reset']) > 0) { foreach ($transition2['reset'] as $k => $v) { $aryReset[$k] = $v; } } break 2; } } } $aryGuard = array(); $res = $this->createGuardOfOtomatParallet($aryGuard, $guard1, $guard2); if ($res) { $aryTransition[] = array( 'loc_name_from' => $locNameFrom, 'loc_name_to' => $locNameTo, 'label' => $label, 'reset' => $aryReset, 'guard' => $aryGuard, ); } if (!isset($aryCheck[$locNameTo])) { $aryStackPath[] = $this->getLocationOtomatParallel($loc1_to, $loc2_to, $aryAdj1[$loc1_to], $aryAdj2[$loc2_to]); $aryCheck[$locNameTo] = 1; TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc 49 } } //Khoi tao Otomat Parallel $aryOtomatParallel = array( 'init' => $aryOtomat1['init'] ',' $aryOtomat2['init'], 'numLocation' => count($aryLocation), 'numTransition' => count($aryTransition), 'clocks' => $aryClock, 'aryLocation' => $aryLocation, 'aryTransition' => $aryTransition, ); $this->logger->log(" aryOtomatParallel = " print_r($aryOtomatParallel, true)); return $aryOtomatParallel; } Tạo đồ thị vùng đạt nguyên public function createRegionGraph($aryOtomat, $aryConstantMaxK) { $this->logger->log( " Begin method: " METHOD "()"); $maxK = max($aryConstantMaxK); $locationStart = $aryOtomat['init']; $aryLocation = $aryOtomat['aryLocation']; $aryTransition = $aryOtomat['aryTransition']; $aryClock = $aryOtomat['clocks']; //Khoi tao so dinh hien tai $this->graphRegion['num_vertex'] = 1; //Khoi tao so canh hien tai $this->graphRegion['num_edge'] = 0; //Nhap dinh $region0 = join(',', array_fill(0, count($aryClock), 0)); $regionK = join(',', array_fill(0, count($aryClock), 'U')); //Id region $regionId = 1; $vertex0 = $this->createVertexRegion($locationStart, $region0); $this->graphRegion['aryVertex'][$regionId] = array( 'id' => $regionId, TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc 50 'vertex' => $vertex0, 'loc_name' => $locationStart, 'region' => $region0, 'ldi_c' => $aryLocation[$locationStart]['c'], 'visited' => 0, ); //Khoi tao tap canh rong $this->graphRegion['aryEdge'] = array(); while (true) { //lay dinh chua tham V $vertex = $this->getVertexNotVisited(); //neu tat ca cac dinh da tham thi ket thuc if ($vertex === false) { break ; } //Dinh s Otomat $loc_name_from = $vertex['loc_name']; $region = $vertex['region']; $vertex_from = $vertex['vertex']; $id_from = $vertex['id']; //Loop Transition cua Otomat foreach ($aryTransition as $transition) { //Neu ton tai phep chuyen e = checkGuard($regionTo, $aryLocation[$loc_name_to]['invar'])) { continue; } //Dat lai gia tri mien theo qui uoc $regionTo = $this->reformatRegion($regionTo, $aryConstantMaxK); //Kiem tra dinh da co chua $vertex_to = $this->createVertexRegion($loc_name_to, $regionTo); $vertexId = $this->getVertex($vertex_to); //Neu chua co thi bo sung if ($vertexId == 0) { $regionId++; $this->addVertexRegion($loc_name_to, $regionTo, $aryLocation[$loc_name_to]['c'], $regionId); $id_to = $regionId; } else { $id_to = $vertexId; } //Kiem tra va bo sung cung neu chua co if (!$this->isExistEdge($id_from, $id_to)) { $durationLow = $durationUp = 0; if (strcmp($regionK, $regionSucc) != 0) { $durationLow = $durationUp = $d; } else { $durationLow = $d; TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc (LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc(LUAN.van.THAC.si).phan.tich thiet.ke.va.cai.dat.kiem.chung.mot.he.thoi.gian.thuc 52 $durationUp = _PHP_INT_MAX; } $this->addEdgeRegion($durationLow, $durationUp, $id_from, $id_to); } } //End loop $maxK } //End Neu ton tai phep chuyen e =

Ngày đăng: 17/12/2023, 01:56

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

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

Tài liệu liên quan