một số thuật toán giải bài toán phủ tập hợp và ứng dụng

76 719 1
một số thuật toán giải bài toán phủ tập hợp và ứng dụng

Đ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

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG HOÀNG XUÂN THÁI MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN PHỦ TẬP HỢP VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - Năm 2014 1 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HOẠC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG HOÀNG XUÂN THÁI MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN PHỦ TẬP HỢP VÀ ỨNG DỤNG Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số : 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƢỜI HƢỚNG DẪN KHOA HỌC GS. TS. ĐẶNG QUANG Á Thái Nguyên - Năm 2014 2 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỤC LỤC Trang LỜI CẢM ƠN 4 LỜI CAM ĐOAN 5 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 6 DANH MỤC BẢNG 7 DANH MỤC HÌNH 8 MỞ ĐẦU 9 Chƣơng 1. TỔNG QUAN 11 1.1. KIẾN THỨC CƠ SỞ VỀ LÝ THUYẾT BÀI TOÁN NP-HARD 11 1.1.1. Định nghĩa về lớp bài toán P và NP 11 1.1.2. Các ví dụ về bài toán NP 14 1.2. LÝ THUYẾT QUY HOẠCH TOÁN HỌC 15 1.2.1. Khái niệm chung 16 1.2.2. Quy hoạch tuyến tính 19 1.2.3. Quy hoạch rời rạc 22 1.3. TỔNG KẾT CHƢƠNG 25 Chƣơng 2. BÀI TOÁN PHỦ TẬP HỢP 26 2.1. GIỚI THIỆU BÀI TOÁN PHỦ TẬP HỢP 26 2.1.1. Một số ví dụ về bài toán phủ tập hợp 26 2.1.2. Bài toán phủ tập hợp 28 2.2. MỘT SỐ KẾT QUẢ LÝ THUYẾT VỀ BÀI TOÁN PHỦ TẬP HỢP 29 2.2.1. Hƣớng tiếp cận giải bài toán SCP 29 3 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 2.2.2. Một số phƣơng pháp tìm giải pháp gần tối ƣu cho bài toán SCP 31 2.3. THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN PHỦ TẬP HỢP 35 2.3.1. Thuật toán Heuristic 35 2.3.2. Ứng dụng thuật toán Heuristics giải bài toán SCP 36 2.3.3. Tính hiệu quả của thuật toán Heuristic 45 2.4. THUẬT TOÁN CHÍNH XÁC 50 2.4.1. Ví dụ về thuật toán nhánh cận 50 2.4.2. Thuật toán chính xác giải bài toán SCP 54 2.5. TỔNG KẾT CHƢƠNG 57 Chƣơng 3. CÀI ĐẶT CHƢƠNG TRÌNH VÀ ỨNG DỤNG 58 3.1. BÀI TOÁN PHÂN LỊCH TRỰC BÁC SĨ 58 3.1.1. Phát biểu bài toán 58 3.1.2. Cài đặt thuật toán tham lam 59 3.1.3. Cài đặt thuật toán Nhánh cận 60 3.2. XÂY DỰNG CHƢƠNG TRÌNH PHÂN LỊCH TRỰC BÁC SĨ 64 3.2.1. Công cụ lựa chọn 64 3.2.2. Modul chƣơng trình 64 3.2.3. Giao diện chƣơng trình 66 3.3. THỬ NGHIỆM VÀ ĐÁNH GIÁ 70 3.4. TỔNG KẾT CHƢƠNG 70 KẾT LUẬN VÀ KIẾN NGHỊ 72 DANH MỤC TÀI LIỆU THAM KHẢO 74 4 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Em xin chân thành cảm ơn Ban Giám hiệu, Phòng Đào tạo Sau Đại học, Khoa Công nghệ Thông tin Trường Đại học công nghệ thông tin và truyền thông Thái Nguyên đã tận tình giúp đỡ, tạo mọi điều kiện thuận lợi cho em trong quá trình học tập, nghiên cứu và thực hiện luận văn. Đặc biệt, em xin gửi lời tri ân sâu sắc đến GS. TS Đặng Quang Á – người đã dành nhiều thời gian, công sức và tận tình hướng dẫn khoa học cho em trong suốt quá trình hình thành và hoàn chỉnh luận văn. Xin chân thành cảm ơn Quý Thầy, Cô đã giảng dạy, truyền đạt cho em những tri thức quý báu, thiết thực trong suốt khóa học. Cuối cùng xin bày tỏ lòng biết ơn đối với gia đình, người thân, bạn bè, đồng nghiệp đã giúp đỡ, động viên, đóng góp ý kiến quý báu cho em trong việc hoàn thành luận văn này. Thái Nguyên, ngày tháng năm 2014 Tác giả Hoàng Xuân Thái 5 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn trực tiếp của GS.TS. Đặng Quang Á. Mọi trích dẫn sử dụng trong báo cáo này đều được ghi rõ nguồn tài liệu tham khảo theo đúng qui định. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm. Thái Nguyên, ngày tháng năm 2014 Tác giả Hoàng Xuân Thái 6 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Tiếng Anh Từ viết tắt Tên đầy đủ Diễn giải GA Genetic Algorithm Giải thuật di truyền LP Linear Programming Quy hoạch tuyến tính NP Nondeterministic Polynomial Time Thuật toán bất định trong thời gian đa thức SA Simulated Annealing Giải thuật luyện thép SCP Set Covering Problem Bài toán phủ tập hợp Tiếng Việt BTQHTT Bài toán quy hoạch tuyến tính BTQHPT Bài toán quy hoạch phi tuyến BTQHL Bài toán quy hoạch lồi BTQHTP Bài toán quy hoạch toàn phƣơng 7 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC BẢNG Trang Bảng 3.1. Danh sách các bác sĩ và các dịch vụ mà bác sĩ đó có thể thực hiện trong trƣờng hợp tổng quát 58 Bảng 3.2. Thời gian trung bình (miligiây) 70 8 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC HÌNH Trang Hình 1.1 Mô hình phân lớp các bài toán P, NP, CO-NP, NP-Complete, NP-hard 15 Hình 1.2. Đồ thị hàm f(x) 17 Hình 2.1. Thuật toán Meta-RaPS tìm giải pháp cơ sở 38 Hình 2.2. Thủ tục cập nhật 38 Hình 2.3. Thủ tục tìm giải pháp láng giềng 39 Hình 2.4. Thuật toán Meta-RaPS giải bài toán SCP 40 Hình 2.5. Ví dụ bài toán SCP 42 Hình 2.6. Kết quả sau khi thực hiện thuật toán tham lam 43 Hình ví dụ thuật toán tham lam 44 Hình 2.7. Kết quả cây phân nhánh 52 Hình 2.8. Ma trận chi phí của bài toán ngƣời du lịch 54 Hình 2.9. Cây phân nhánh giải bài toán ngƣời du lịch 54 Hình 3.1. Giao diện chính của chƣơng trình 67 Hình 3.2. Giao diện nạp dữ liệu 68 Hình 3.3. Giao diện phân lịch bằng thuật toán tham lam 68 Hình 3.4. Giao diện phân lịch bằng thuật toán tham lam 69 Hình 3.5. Giao diện lƣu kết quả phân lịch 69 Hình 3.6. Đồ thị biểu diễn thời gian thực hiện trung bình 70 9 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỞ ĐẦU 1. Lý do chọn đề tài Bài toán tối ƣu tổ hợp là dạng bài toán có độ phức tạp tính toán cao thuộc lớp NP khó. Đã có nhiều giải thuật đƣợc đƣa ra để giải quyết bài toán trên nhƣ họ giải thuật kiến (Ant Algorithm), giải thuật luyện thép SA (Simulated Annealing), giải thuật di truyền GA (Genetic Algorithm) và giải thuật Meta-Heuristic. Những giải thuật này đã giải quyết các bài toán với hiệu quả cao và cho kết quả lời giải gần tối ƣu. Với độ phức tạp tính toán cao của các bài toán tối ƣu tổ hợp cũng nhƣ đòi hỏi về mặt thời gian, việc giải các bài toán này với tính chất tuần tự của các giải thuật sẽ gặp phải những vấn đề về thời gian thực hiện chƣơng trình, tốc độ xử lý, khả năng lƣu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn, … Kích thƣớc bài toán tăng lên và không gian tìm kiếm càng lớn yêu cầu cần phải có các giải thuật để tăng tốc độ và hiệu quả của giải thuật. Bài toán phủ tập hợp (set covering problem) là một bài toán tối ƣu tổ hợp cơ bản. Dạng bài toán này có rất nhiều trong thực tế nhƣ: lập lịch biểu, lập kế hoạch sản xuất, định tuyến, phân bổ đầu tƣ, …Đã có nhiều nghiên cứu về phƣơng pháp hiệu quả để giải quyết bài toán này bao gồm các giải thuật heuristic, thuật toán sử dụng ý tƣởng tham lam (Greedy Method) và các thuật toán sử dụng các phƣơng pháp của quy hoạch nguyên. Vì vậy, việc tìm hiểu bài toán dạng phủ tập hợp, các thuật toán giải quyết bài toán để từ đó ứng dụng vào trong thực tế là một việc làm có ý nghĩa khoa học và thực tiễn. Đây chính là mục đích của luận văn này. 2. Đối tƣợng nghiên cứu Đối tƣợng nghiên cứu của luận văn này là bài toán phủ tập hợp và các vấn đề liên quan, các thuật toán để giải quyết pài toán phủ tập hợp. [...]... khác nhau và có thể phân loại thành các lớp nhƣ lớp thuật toán dựa trên lý thuyết quy hoạch tuyến tính, lớp các thuật toán heuristics và lớp các thuật toán nhánh-cận 2.1 GIỚI THIỆU BÀI TOÁN PHỦ TẬP HỢP 2.1.1 Một số ví dụ về bài toán phủ tập hợp Bài toán phủ tập hợp (Set Covering Problem – SCP) là mô hình của nhiều ứng dụng quan trọng Để hiểu rõ hơn về mô hình toán học của bài toán phủ tập hợp tổng quát... toán phủ tập hợp, trình bày thuật toán Heuristic và thuật toán chính xác giải bài toán phủ tập hợp Chƣơng 3, ứng dụng những kiến thức về bài toán phủ tập hợp và những thuật toán đã trình bày, trong chƣơng này chúng tôi trình bày phần cài đặt chƣơng trình ứng dụng Với những kết quả đạt đƣợc, phần cuối của luận văn nêu ra những phép đo tính hiệu quả của nghiên cứu, đánh giá thuật toán và nêu vài đề xuất... tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý thuyết nhƣ: Lý thuyết các bài toán NP-hard, quy hoạch tuyến tính, quy hoạch nguyên, các phƣơng pháp giải chúng và áp dụng vào bài toán phủ tập hợp 4 Nhiệm vụ nghiên cứu - Tìm hiểu và hệ thống các kiến thức cơ sở về lý thuyết các bài toán NP-hard - Tìm hiểu về quy hoạch toán học, bài toán phủ tập hợp và ứng dụng - Tìm hiểu một vài thuật toán. .. với các bài toán liên quan để từ đó nghiên cứu các thuật toán giải quyết bài toán phủ tập hợp Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 26 Chƣơng 2 BÀI TOÁN PHỦ TẬP HỢP Bài toán phủ tập hợp (Set Covering Problem – SCP) là một mô hình toán học cho nhiều ứng dụng quan trọng nhƣ lập lịch biểu, quy hoạch dịch vụ, phân tích dữ liệu logic, đơn giản hóa biểu thức Boolean SCP là bài toán NP... xác giải bài toán phủ tập hợp - Cài đặt và thử nghiệm một vài thuật toán 5 Những nội dung nghiên cứu chính Bố cục của luận văn gồm phần mở đầu trình bày lý do chọn đề tài, đối tƣợng và nhiệm vụ nghiên cứu của đề tài Chƣơng một, tập trung trình bày những kiến thức tổng quan về lý thuyết NP-hard và quy hoạch toán học Chƣơng hai, giới thiệu bài toán phủ tập hợp, một số kết quả lý thuyết về bài toán phủ tập. .. Bổ đề Giả sử bài toán A là NP-đầy đủ, bài toán B thuộc NP, và bài toán A quy dẫn đƣợc về bài toán B Khi đó bài toán B cũng là NP-đầy đủ Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 14 1.1.1.8 Lớp bài toán NP-khó (NP-Hard) Một cách ngắn gọn có thể hiểu bài toán NP-Hard là bài toán mà không có thuật toán thời gian tính đa thức để giải nó trừ khi P=NP, mà chỉ có các thuật toán giải trong thời... cơ sở một cách ngẫu nhiên, sau đó áp dụng một cải tiến heuristic để cải thiện các giải pháp khả thi Giải pháp tốt nhất đƣợc trả về sau một số các bƣớc lặp Heuristic cơ sở tạo ra một giải pháp khả thi bằng cách thêm vào những phần tử cơ bản theo từng bƣớc Những phần tử cơ bản trong một giải pháp cho bài toán tổ hợp, bài toán du lịch, bài toán phủ tập hợp SCP, đƣợc mô tả là một tập BE={1,2,…,n}, và những... ít nhất một đầu mút trong S Bài toán đặt ra là: Cho đồ thị vô hƣớng G = (V, E) và số nguyên k Hỏi G có phủ đỉnh với kích thƣớc k hay không? Một cách không hình thức, có thể nói rằng nếu ta có thể giải đƣợc một cách hiệu quả một bài toán NP-khó cụ thể, thì ta cũng có thể giải hiệu quả bất kỳ bài toán NP bằng cách sử dụng thuật toán giải bài toán NP-khó nhƣ một chƣơng trình con Từ định nghĩa bài toán NP-khó... liên quan đến bài toán lõi cho toàn bộ vấn đề, xác định lại bài toán lõi nếu giải pháp Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 35 không phải là tối ƣu Cái mới của phƣơng pháp này là việc sử dụng hàm Lagrangian nới lỏng để khởi tạo các biến của bài toán lõi và bài toán đối ngẫu 2.3 THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN PHỦ TẬP HỢP 2.3.1 Thuật toán Heuristic Meta – RaPS là một meta-heuristic... VỀ BÀI TOÁN PHỦ TẬP HỢP 2.2.1 Hƣớng tiếp cận giải bài toán SCP Nhƣ chúng ta đã biết các phƣơng pháp giải bài toán SCP trong thực tế dựa trên nhiều cách tiếp cận khác nhau, trong số đó phƣơng pháp hiệu quả nhất là dùng giải thuật heuristic và giải thuật chính xác dựa trên phƣơng pháp giải quyết bài toán quy hoạch tuyến tính (LP) nới lỏng của bài toán SCP đƣợc định nghĩa giống nhƣ ở công thức (14) và . 2. BÀI TOÁN PHỦ TẬP HỢP 26 2.1. GIỚI THIỆU BÀI TOÁN PHỦ TẬP HỢP 26 2.1.1. Một số ví dụ về bài toán phủ tập hợp 26 2.1.2. Bài toán phủ tập hợp 28 2.2. MỘT SỐ KẾT QUẢ LÝ THUYẾT VỀ BÀI TOÁN PHỦ. thuyết về bài toán phủ tập hợp, trình bày thuật toán Heuristic và thuật toán chính xác giải bài toán phủ tập hợp. Chƣơng 3, ứng dụng những kiến thức về bài toán phủ tập hợp và những thuật toán đã. 31 2.3. THUẬT TOÁN HEURISTIC GIẢI BÀI TOÁN PHỦ TẬP HỢP 35 2.3.1. Thuật toán Heuristic 35 2.3.2. Ứng dụng thuật toán Heuristics giải bài toán SCP 36 2.3.3. Tính hiệu quả của thuật toán Heuristic

Ngày đăng: 18/12/2014, 00:21

Từ khóa liên quan

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

Tài liệu liên quan