Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
1,23 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN QUỲNH TRANG HƢỚNG TIẾPCẬNQUYHOẠCHRÀNGBUỘCTRONGVIỆCGIẢICÁCBÀITOÁNTỐI ƢU TỔ HỢP: LÝ THUYẾT VÀ CÁC CÔNG CỤ LUẬN VĂN THẠC SĨ KỸ THUẬT … Chuyên ngành: Kỹ thuật máy tính Truyền thông Hà Nội – Năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN QUỲNH TRANG HƢỚNG TIẾPCẬNQUYHOẠCHRÀNGBUỘCTRONGVIỆCGIẢICÁCBÀITOÁNTỐI ƢU TỔ HỢP: LÝ THUYẾT VÀ CÁC CÔNG CỤ Chuyên ngành : Kỹ thuật máy tính Truyền thông LUẬN VĂN THẠC SĨ KỸ THUẬT … Kỹ thuật máy tính truyền thông NGƯỜI HƯỚNG DẪN KHOA HỌC : TS PHẠM QUANG DŨNG Hà Nội – Năm 2015 LỜI CẢM ƠN Trước hết, em xin chân thành cảm ơn đến quý thầy cô trường Đại học Bách Khoa tận tình dạy bảo em suốt thời gian học tập trường Em xin gửi lời biết ơn sâu sắc đến Tiến sĩ Phạm Quang Dũng dành nhiều thời gian tâm huyết hướng dẫn nghiên cứu, giúp em hoàn thành luận văn Em xin chân thành cảm ơn Ban Giám hiệu trường Đại học Bách Khoa quý thầy cô Khoa Công nghệ thông tin tạo điều kiện để em học tập hoàn thành tốt khóa học Trong khóa luận tránh khỏi thiếu sót, em mong nhận đóng góp quý báu thầy cô bạn để luận văn hoàn thiện Hà Nội, Ngày 18 tháng năm 2015 Học viên Nguyễn Quỳnh Trang MỤC LỤC LỜI CẢM ƠN BẢNG CÁC KÝ HIỆU VIẾT TẮT BẢNG CÁC THUẬT NGỮ CHUYÊN NGÀNH DANH SÁCH HÌNH VẼ ĐƢỢC SỬ DỤNG MỞ ĐẦU CHƢƠNG I: QUYHOẠCHRÀNGBUỘC 11 1.1 Bàitoán thỏa mãn ràngbuộc (CSP) 11 1.1.1 Định nghĩa: 11 1.1.2 Ví dụ CSP: 11 1.2 Constrains programming: 12 1.2.1 Tổng quan 12 1.2.2 Dùng ràngbuộc để tỉa không gian tìm kiếm 14 1.2.2.1 Một số khái niệm ký hiệu: 14 1.2.2.2 Các kỹ thuật toàn vẹn (Consistency Techniques) 15 1.2.3 Tìm kiếm quay lui 18 1.2.3.1 Định nghĩa: 18 1.2.3.2 Ví dụ: 19 1.2.3.3 Chiến lƣợc tìm kiếm: 21 CHƢƠNG 2: THƢ VIỆN CHOCO 22 2.1 Giới thiệu thƣ viện Choco: 22 2.1.1 Khái niệm: 22 2.1.2 Sơ lƣợc chƣơng trình Choco: 22 2.2 Hoạt động Choco: 23 2.2.1 Variable 23 2.2.1.1 Các biến đơn giản (Simple Variables) 23 2.2.1.2 Biến (Constants): 23 2.2.1.3 Biến biểu thức (ExpressionVariable) : 23 2.2.1.4 Biến mục tiêu (Objective Variable): 24 2.2.2 Ràngbuộc (Constraint): 24 2.2.2.1 Ràngbuộc nhị phân (Binary Constraint): 25 2.2.2.2 Ràngbuộc cho biến (Ternary Constraint): 25 2.2.2.3 Ràngbuộc kênh (Channeling Constraints): 25 2.2.2.4 Ràngbuộc cụ thể hóa (Reified Constrants): 25 2.2.2.5 Ràngbuộc chung (Global constraint): 26 2.2.3 Lời giải (Solver): 26 2.2.3.1 Phần biến đọc: 26 2.2.3.2 Ràngbuộc đọc: 28 2.2.3.3 Chiến lƣợc tìm kiếm: 28 2.3 Các yếu tố Choco: 29 2.3.1 Biến (Variable) 29 2.3.1.1 IntegerVariable: 29 2.3.1.2 Real Variable: 30 2.3.1.3 Set Variable: 30 2.3.2 Biểu thức (Operators): 31 2.3.2.2 cos (operator): 31 2.3.2.3 div (operator): 31 2.3.2.4 ifThenElse (operator) 32 2.3.2.5 max (operator): 32 2.3.2.6 (operator): 33 2.3.2.7 minus (operator): 33 2.3.2.8 mod (operator): 34 2.3.2.9 mult (operator): 34 2.3.2.10 neq (operator): 35 2.3.2.11 Plus (operator): 35 2.3.2.12 power (operator): 36 2.3.2.13 scalar (operator): 37 2.3.2.14 sin (operator): 37 2.3.2.15 sum (operator): 37 2.3.3 Constraint 38 2.3.3.1 Abs: 38 2.3.3.2 allDifferent: 39 2.3.3.3 among: 39 2.3.3.4 and 40 2.3.3.5 atMostNValue 41 2.3.3.6 boolChanneling 41 2.3.3.7 distanceEQ: 42 2.3.3.8 eq 42 2.3.3.9 equation 43 2.3.3.10 Geq 44 2.3.3.11 gt 44 2.3.3.12 leq 45 2.4 Ví dụ toán đƣợc giải Choco: 46 2.4.1 Ví dụ 1: Bàitoán hậu N-Queens 46 2.4.2 Ví dụ 2: Bàitoán Magic square 48 CHƢƠNG 3: ÁP DỤNG THƢ VIỆN CHOCO VÀO BÀITOÁN ỨNG DỤNG: “XẾP LỊCH HỌC CHO CÁC LỚP CAO HỌC BÁCH KHOA” 52 3.1 Phát biểu toán: 52 3.2 Mô hình hóa với CHOCO 53 3.2.1 Mô hình (stateModel 1) 53 3.2.2 Mô hình (StateModel 2) Error! Bookmark not defined 3.3 Thử nghiệm 55 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 61 BẢNG CÁC KÝ HIỆU VIẾT TẮT Ký hiệu Từ viết tắt CSP Constraint satisfaction problem CP Constraint programming AC Arcs consistency API Application Programming Interface BẢNG CÁC THUẬT NGỮ CHUYÊN NGÀNH Các thuật ngữ Ý nghĩa Constraint satisfaction problem Bàitoán thỏa mãn ràngbuộc Constraint programming Quyhoạchràngbuộc Backtracking Quay lui Search tree Cây tìm kiếm Constraint propagation Lan truyền ràngbuộc Branching Phân nhánh Application Programming Interface Giao diện lập trình ứng dụng DANH SÁCH HÌNH VẼ ĐƢỢC SỬ DỤNG Hình 2-1: Ví dụ toán thỏa mãn ràngbuộc Hình 2-2: Thuật toán AC3 Hình 2-3: Cây tìm kiếm Hình 2-4: Các kiểu phân nhánh Hình 2-5: Phương pháp first-fail lập trình Comet Hình 3-1: Các cách khai báo biến IntegerVariable thư viện Choco Hình 3-2: Bàitoán khai báo biến RealVariable Hình 3-3: Bàitoán khai báo biến SetVariable Hình 4-1: Dữ liệu đầu vào toán MỞ ĐẦU Ngày với phát triển mạnh mẽ Công Nghệ thông tin góp phần mang lại thành tựu rực rỡ cho lĩnh vực, hoạt động đời sống xã hội Cùng với phát triển CNTT, hệ ngôn ngữ lập trình đời nhằm đáp ứng yêu cầu công nghệ Đóng góp quan trọng vào phát triển ứng dụng CNTT, ngôn ngữ lập trình ràngbuộc thư viện Choco thật mang lại tiện ích lớn việcgiảitoántốiưu tổ hợp lập lịch, lập kế hoạch I Lý chọn đề tài Trong lĩnh vực nghiên cứu khoa học máy tính, toántốiưu tổ hợp đánh giá toán khó NP[1, 6], đặc trưng liệu lớn, ràngbuộc phức tạp Để giải vấn đề hiệu đòi hỏi phải có kinh nghiệm kỹ Trên giới có nhiều công trình nghiên cứu, thuật toán ứng dụng phát triển để giải vấn đề này: thuật toán quay lui, vét cạn, thuật toánquyhoạch động Tuy nhiên, lập trình truyền thống chưa có giải thuật hiệu nhất, đáp ứng thời gian xử lý đa thức Do đó, toán khó chưa có lời giảitốiưuTrong năm gần đây, Quyhoạchràngbuộc (Constraint Programming - CP) lên công nghệ quan trọng, giải hiệu toántốiưu tổ hợp, ứng dụng thành công nhiều lĩnh vực: hàng không, khoa học máy tính, công nghệ sản xuất … CP thực giải pháp tối ưu, giới chuyên môn đánh giá cao khả giải vấn đề phức tạp sống thực tế II Mục đích nghiên cứu luận văn, đối tƣợng, phạm vi nghiên cứu Mục đích: Tìm hiểu sở lý thuyết công cụ hướngtiếpcậnquyhoạchràngbuộc để giảitoántốiưu tổ hợp // Ràngbuộc hàng: Tổng hàng phải tổng số kỳ ảo for (int i=0;i