Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
1,94 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG HỒNG XN 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 Số hóa 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 HỒNG XN 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 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỤC LỤC Trang LỜI CẢM ƠN LỜI CAM ĐOAN DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC BẢNG DANH MỤC HÌNH MỞ ĐẦU Chƣơng 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 lớp toán P NP 11 1.1.2 Các ví dụ 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 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ụ tố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 toán SCP 29 Số hóa 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 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 toán SCP 36 2.3.3 Tính hiệu thuật tốn Heuristic 45 2.4 THUẬT TỐN CHÍNH XÁC .50 2.4.1 Ví dụ thuật tốn nhánh cận .50 2.4.2 Thuật toán xác giải tốn SCP 54 2.5 TỔNG KẾT CHƢƠNG 57 Chƣơng 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 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 Số hóa 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 truyền thông Thái Nguyên tận tình giúp đỡ, tạo điều kiện thuận lợi cho em trình học tập, nghiên cứu thực 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 tận tình hướng dẫn khoa học cho em suốt q trình hình thành hồ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 tri thức quý báu, thiết thực suốt khóa học Cuối xin bày tỏ lịng biết ơn 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 việc hoàn thành luận văn Thái Nguyên, ngày tháng năm 2014 Tác giả Hồng Xn Thái Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn trực tiếp GS.TS Đặng Quang Á Mọi trích dẫn sử dụng báo cáo ghi rõ nguồn tài liệu tham khảo theo qui định Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Thái Ngun, ngày tháng năm 2014 Tác giả Hồng Xn Thái Số hóa 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 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 tố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 tốn quy hoạch tồn phƣơng Số hóa 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 bác sĩ dịch vụ mà bác sĩ thực trƣờng hợp tổng quát 58 Bảng 3.2 Thời gian trung bình (miligiây) 70 Số hóa 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 tố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 tốn Meta-RaPS tìm giải pháp 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 tốn Meta-RaPS giải tốn SCP 40 Hình 2.5 Ví dụ tốn SCP 42 Hình 2.6 Kết sau thực thuật tốn tham lam 43 Hình ví dụ thuật tốn tham lam 44 Hình 2.7 Kết phân nhánh 52 Hình 2.8 Ma trận chi phí tốn ngƣời du lịch 54 Hình 2.9 Cây phân nhánh giải tốn ngƣời du lịch 54 Hình 3.1 Giao diện chƣơng trình 67 Hình 3.2 Giao diện nạp liệu 68 Hình 3.3 Giao diện phân lịch thuật tốn tham lam 68 Hình 3.4 Giao diện phân lịch thuật toán tham lam 69 Hình 3.5 Giao diện lƣu kết phân lịch 69 Hình 3.6 Đồ thị biểu diễn thời gian thực trung bình 70 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỞ ĐẦU Lý chọn đề tài Bài toán tối ƣu tổ hợp dạng toán có độ phức tạp tính tốn cao thuộc lớp NP khó Đã có nhiều giải thuật đƣợc đƣa để giải toá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) giải thuật Meta-Heuristic Những giải thuật giải toán với hiệu cao cho kết lời giải gần tối ƣu Với độ phức tạp tính tốn cao toán tối ƣu tổ hợp nhƣ đòi hỏi mặt thời gian, việc giải tốn với tính chất giải thuật gặp phải vấn đề thời gian thực chƣơng trình, tốc độ xử lý, khả lƣu trữ nhớ, xử lý liệu với quy mơ lớn, … Kích thƣớc tốn tăng lên khơng gian tìm kiếm lớn u cầu cần phải có giải thuật để tăng tốc độ hiệu giải thuật Bài toán phủ tập hợp (set covering problem) toán tối ƣu tổ hợp Dạng tốn có nhiều 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 phƣơng pháp hiệu để giải toán bao gồm giải thuật heuristic, thuật toán sử dụng ý tƣởng tham lam (Greedy Method) thuật toán sử dụng phƣơng pháp quy hoạch ngun Vì vậy, việc tìm hiểu tốn dạng phủ tập hợp, thuật toán giải tốn để từ ứng dụng vào thực tế việc làm có ý nghĩa khoa học thực tiễn Đây mục đích luận văn Đối tƣợng nghiên cứu Đối tƣợng nghiên cứu luận văn toán phủ tập hợp vấn đề liên quan, thuật toán để giải pài tốn phủ tập hợp Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 61 biết, giá trị hàm mục tiêu toán ứng với phƣơng án tốt biết gọi giá trị kỷ lục Tập có cận dƣới lớn hay giá trị kỷ lục bị loại (không cần xem xét tiếp nữa), chắn tập khơng chứa phƣơng án tốt phƣơng án tốt biết Q trình giải kết thúc khơng cịn tập cần xem xét tiếp Khi đó, phƣơng án tốt biết phƣơng án tối ƣu tốn Tính hữu hạn thuật tốn đƣợc suy từ tính hữu hạn tập S0 Giả sử ta cần phân nhánh tập S p S0 Cách hay dùng phân chia tập thành hai tập rời S p' , S p'' với S p' x | x S p , xr , S p'' x | x S p , xr Trong đó, xr biến chƣa cố định giá trị hay tập S p Giá trị r dùng để phân nhánh đƣợc chọn cho tập S p'' có nhiều khả chứa phƣơng án tối ƣu, cịn tập S p' khơng Nói cách khác, r đƣợc chọn cho hiệu số cận dƣới S p'' S p' lớn đƣợc Để giải vấn đề này, ta cần xét tập phƣơng án ban đầu S đƣợc chia thành hai tập rời S1 S với S1 x | x S1 , xr , S2 x | x S , xr Trong tập S cấu trúc tốn khơng thay đổi, trừ cột r bị loại Các cột cịn lại chứa phần tử khơng âm, ứng với S cận dƣới giá trị hàm mục tiêu tăng thêm ( S ) cr Trong tập S1 cố định xr nên từ điều kiện toán suy phải có x j 1( j r ) Vì ( S1 ) c j cận dƣới giá trị mục tiêu tăng j r Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 62 thêm Ta chọn biến xr cho hiệu cận dƣới lớn nhất, nghĩa đạt max r Nếu cr ( S1 ) ( S1 ) ( S2 ) (do cột r C chứa số 0), ( S2 ) cr 0, từ ( S1 ) ( S ) Vì để có hiệu cận dƣới lớn ta cần xét r với cr Trong trƣờng hợp ( S ) ( S1 ) Điều có nghĩa ta chọn biến xr để phân nhánh theo qui tắc (r ) max cp ( p) c p p Lập luận đủng tập phƣơng án Si sau đƣợc chia thành tập S r , S r nhƣng thay cho mức tăng cận dƣới ( S1 ) ( S ) ta xét mức tăng cận dƣới ( Sr ) ( S r ) tƣơng ứng Nếu tập đƣợc xét S0 mà Sp x | x S0 , xi1 , xi2 , , xik k , Thì qui tắc chọn biến để phân nhánh nhƣ trƣớc, nhiên cần tiến hành số thay đổi Trƣớc hết, việc thực lựa chọn bắt buộc Chẳng hạn, xj 0, j 1, , v 1, v 1, , n tất nhiên phải có xv Cũng làm cột Một số loại lựa chọn bắt buộc khác: Khi cố định xr phải có xr cách đặt cr Hơn nữa, S p chứa r gồm nhiều n-2 bác sĩ xi1 xiu xr xiu xiv 1iv (1 v n 3) bƣớc lặp, trƣớc tính cận dƣới cho tập mới, cần thực lựa chọn bắt buộc nêu Có nhƣ thu đƣợc cận dƣới Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 63 xác tránh đƣợc phân nhánh vơ ích Input: Cho tập m danh sách dịch vụ cấp cứu U e1 , e2 , , em , Tập danh sách dịch vụ mà n bác sĩ thực hiện: S1 , S2 , , Sn danh sách chi phí phải trả c j , j 1, , n Output: Vectơ x 0,1 k Thuật toán: Bƣớc 1: Xuất phát từ x1, xây dựng phƣơng án mẫu f* Bƣớc i: - Đã xây dựng đƣợc nghiệm thành phần x1 , x2 , , xi - Đánh giá cận: tìm g xác định xi: g (c1 x1 , , ci xi ) - min{ f (a ) : a (a1 , , an ) thuộc X, cixi=ai, i=1,…,n} Giả sử x* lời giải tốt thời điểm đó, f* giá trị tốt f* f ( x* ) o Nếu f * g bỏ khơng cần phát triển lời giải phận x1 , x2 , , xi o Ngƣợc lại: tiến hành bƣớc i+1 để xác định xi+1 Thuật toán nhánh cận giải toán phân lịch bác sĩ cho kết tối ƣu đƣợc xác định mảng x Trong với bác sĩ đƣợc chọn x[i] nhận giá trị ngƣợc lại Trong trƣờng hợp có n bác sĩ trƣờng hợp xấu độ phức tạp tính tốn 2n Tuy nhiên trình tìm kiếm bƣớc chọn x[i+1], x[i+2], loại bỏ sớm phƣơng án chắn khơng phải tối ƣu Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 64 3.2 XÂY DỰNG CHƢƠNG TRÌNH PHÂN LỊCH TRỰC BÁC SĨ 3.2.1 Cơng cụ lựa chọn Để hồn thành ứng dụng chƣơng trình demo đƣợc viết ngơn ngữ lập trình C# Visual Studio 2010 kết hợp với sở liệu đƣợc lƣu trữ hệ quản trị sở liệu SQL Server 2005, chƣơng trình có chạy hệ điều hành Windows XP, Vista, Windows 3.2.2 Modul chƣơng trình 3.2.2.1 Modul tìm chi phí tối ưu phương pháp tham lam Với đầu vào danh sách chi phí đƣợc cho mảng c, bƣớc thủ tục tìm mức chi phí nhỏ chƣa đƣợc xét giả sử ci, mức chi phí tƣơng ứng với việc chọn bác sĩ i ngƣời đƣợc xem xét để xếp lịch public int FindMinimumCost(int[] c, int n) { int vt = -1; int = MAXCOST; for (int i = 0; i < n; i++) { if (consider[i]) continue; if (min > c[i]) { = c[i]; vt = i; } } return vt; } 3.2.2.2 Modul phân lịch trực phương pháp tham lam Đầu vào thủ tục danh sách bác sĩ dịch vụ mà bác sĩ phục vụ đƣợc cho mảng ds, danh sách chi phí C Mỗi tìm đƣợc bác sĩ có chi phí phục vụ nhỏ cập nhật lại mảng price Kết thủ tục trả mảng kiểu số nguyên x phần tử thứ i mảng x nhận giá trị tƣơng ứng với bác sĩ i đƣợc xếp lịch phục vụ trƣờng hợp ngƣợc lại private int[] ScheduleDoctor(ArrayList[] ds, int[] C,float [] price) { Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 65 int[] x = new int[ds.Count()]; for (int i = 0; i < x.Length; i++) x[i] = 0; ArrayList dsC = new ArrayList(); int m = price.Length, n = ds.Count(); while (dsC.Count < m) { int sdoctor = FindMinimumCost(C, n, dsC); x[sdoctor] = 1; ArrayList temp = SubElement(ds[sdoctor], dsC); float cost = (float)C[sdoctor] / temp.Count; consider[sdoctor] = true; foreach (int z in temp) { price[z] = cost; dsC.Add(z); } } return x; } 3.2.2.3 Modul tìm chi phí tối ưu phương pháp nhánh cận Đầu vào thủ tục bao gồm mảng x phần tử thứ i mảng nhận giá trị tƣơng ứng với việc bác sĩ i đƣợc xem xét phục vụ không Phần tử đƣợc lựa chọn để xem xét selected mảng x, mức chi phí tƣơng ứng với nhánh countselected, mảng chi phí phải trả cho bác sĩ C, danh sách dịch vụ U, danh sách bác sĩ dịch vụ mà bác sĩ phục vụ listSets Sau thủ tục kết thúc, giải pháp tối ƣu đƣợc lƣu trữ mảng result Dựa vào mảng result ta biết đƣợc bác sĩ i có đƣợc sử dụng (result[i]=1) khơng đƣợc sử dụng (result[i]=0) Từ biết đƣợc tổng chi phí mà bệnh viện chi trả ứng với giải pháp tối ƣu public static void branchAndBound(ref int[] x, int selected, int countselected,int[] C, ArrayList U, List listSets) { // Nếu bác sĩ xét chọn tính lại chi phí if (x[selected] == 1) countselected += C[selected]; ArrayList univers = new ArrayList(); univers.AddRange(U); ArrayList selectedSet = new ArrayList(); selectedSet.AddRange(listSets.ElementAt(selected)); Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 66 if(x[selected] == 1) foreach (Object o in selectedSet) univers.Remove(o); if (univers.Count == 0) { // Nếu giải pháp tìm tốt giải pháp thời cập nhật lại if (countselected < bestSoFar) { bestSoFar = countselected; for (int i = 0; i < x.Length; i++) { result[i] = x[i]; } } } if (selected == x.Length - 1) return; x[selected + 1] = 1; // Phân nhánh if (countselected + C[selected+1] < bestSoFar) { branchAndBound(ref x, selected + 1, countselected, C, univers, listSets); } x[selected + 1] = 0; branchAndBound(ref x, selected + 1, countselected, C, univers, listSets); } 3.2.3 Giao diện chƣơng trình Chƣơng trình mơ chạy tốt với liệu đầu vào có 1000 bác sĩ thực đƣợc chức sau: - Tạo danh sách bác sĩ: o Tạo mảng chứa danh sách bác sĩ o Mở tệp chứa danh sách thông tin bác sĩ chi phí thực bác sĩ o Mở tệp chứa thông tin dịch vụ mà bác sĩ thực o Lƣu thơng tin bác sĩ - Tạo danh sách dịch vụ o Mở tệp chứa thơng tin dịch vụ Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 67 o Lƣu trữ thông tin dịch vụ - Phân lịch trực bác sĩ theo phƣơng pháp tham lam - Phân lịch trực bác sĩ theo phƣơng pháp nhánh cận Một số hình ảnh giao diện chƣơng trình: - Khi bắt đầu chạy cửa sổ chƣơng trình nhƣ sau: Hình 3.1 Giao diện chƣơng trình - Ngƣời dùng thực nạp thông tin bác sĩ thông tin dịch vụ mà bệnh viện cung cấp từ tệp nguồn: Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 68 Hình 3.2 Giao diện nạp liệu - Sau ngƣời dùng thực phân lịch phƣơng pháp tham lam: Hình 3.3 Giao diện phân lịch thuật tốn tham lam Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 69 - Hoặc dùng phƣơng pháp nhánh cận: Hình 3.4 Giao diện phân lịch thuật tốn tham lam - Sau có kết ngƣời dùng lƣu lại bảng phân lịch: Hình 3.5 Giao diện lƣu kết phân lịch Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 70 3.3 THỬ NGHIỆM VÀ ĐÁNH GIÁ Chƣơng trình đƣợc thực nghiệm máy tính cá nhân có cấu hình chíp Intel Core Dual 2.0 GHz, Ram GB, HĐH Windows Thực nghiệm cho kết nhƣ sau: - Thực nghiệm trường hợp bác sĩ nhận mức tiền lương hoàn thành dịch vụ cấp cứu Ta có bảng số liệu số lƣợng bác sĩ, số lƣợng dịch vụ thời gian thực trung bình thuật tốn: Bảng 3.2 Thời gian trung bình (miligiây) Số lƣợng bác sĩ số dịch vụ 100/200 200/200 500/200 1000/200 Thuật toán tham lam Thuật toán nhánh cận 0.1 0.2 0.15 1.0 0.3 3.0 1.0 18.0 Hình 3.6 Đồ thị biểu diễn thời gian thực trung bình 3.4 TỔNG KẾT CHƢƠNG Ứng dụng thành cơng phƣơng pháp giải tốn SCP để xây dựng ứng dụng “Phân lịch trực bác sĩ” kết q trình nghiên cứu mơ hình tốn học toán SCP, thuật toán giải tốn SCP Trong chƣơng chúng tơi trình bày đƣợc mơ hình tốn SCP việc phân cơng lịch trực bác sĩ phục Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 71 vụ dịch vu cấp cứu, đƣa hƣớng giải toán dựa ý tƣởng thuật toán tham lam thuật tốn nhánh cận, từ xây dựng modul để cài đặt thành công ứng dụng “Phân lịch trực bác sĩ” Việc ứng dụng thuật toán tham lam để xây dựng ứng dụng cho kết gần tối ƣu với độ phức tạp nhỏ, cịn thuật tốn nhánh cận cho kết tối ƣu nhƣng thời gian tính tốn hàm mũ Đây bƣớc đầu để tiếp tục nghiên cứu triển khai thêm nhiều ứng dụng toán SCP thực tế Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 72 KẾT LUẬN VÀ KIẾN NGHỊ Với mục đích nghiên cứu mơ hình tốn học tốn phủ tập hợp phƣơng pháp giải toán phủ tập hợp để từ xây dựng ứng dụng giải toán phủ tập hợp thực tế Dựa phƣơng pháp giải tốn SCP chúng tơi nhận thấy phƣơng pháp có ƣu nhƣợc điểm khác nhiên để đƣa giải pháp gần tối ƣu với thời gian tính tốn chấp nhận đƣợc chúng tơi lựa chọn hai phƣơng pháp thuật tốn tham lam thuật toán nhánh cận Xuất phát từ giải pháp sở Heuristic sử dụng phƣơng pháp tham lam để tìm lời giải tối ƣu cho tốn SCP nhiên phƣơng pháp có nhƣợc điểm khơng phải lúc cho lời giải tối ƣu Một phƣơng pháp khác để giải toán SCP phƣơng pháp nhánh cận, phƣơng pháp cho kết tối ƣu với thời gian tính tốn chấp nhận, đƣợc nghiên cứu cài đặt luận văn Những nội dung mà luận văn tập trung nghiên cứu giải quyết: Kiến thức lý thuyết toán NP-Hard, lý thuyết quy hoạch tốn học, tìm hiểu mơ hình toán học toán phủ tập hợp, thuật toán giải toán phủ tập hợp Dựa sở lý thuyết chúng tơi vận dụng mơ hình tốn học tốn phủ tập hợp chúng tơi ứng dụng thuật tốn tham lam, thuật tốn nhánh cận để xây dựng chƣơng trình “Phân lịch trực bác sĩ” Trong trình nghiên cứu xây dựng ứng dụng nhận thấy số vấn đề phát triển thêm: Xây dựng thuật tốn kết hợp ƣu điểm thuật toán giải toán phủ tập hợp cho thời gian thực nhanh chóng kết gần tối ƣu Xây dựng giải thuật cho toán phủ tập hợp ứng với nhiều ràng buộc nhiều chi phí cần tối ƣu Cải tiến thuật toán tham lam để kết cuối nhận đƣợc lời giải tối ƣu Với phƣơng pháp mà sử dụng luận văn này, bƣớc đầu tổng hợp đƣợc phƣơng pháp hiệu để giải toán phủ tập hợp vận dụng chúng để xây dựng thành công ứng dụng phân lịch trực bác sĩ cho phép đƣa Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 73 vào danh sách bác sĩ, danh sách dịch vụ mà bác sĩ thực đƣợc, đƣa đƣợc danh sách phân công lịch trực cho bác sĩ với chi phí phục vụ thấp Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 74 DANH MỤC TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Bùi Minh Trí (1999), “Quy hoạch toán học”, Nxb Khoa học Kỹ thuật, Hà Nội, Tr 13-409 [2] Nguyễn Hải Thanh (2006), “Tối ƣu hóa”, Nxb Bách khoa, Hà Nội, Tr 7-111 Tài liệu tiếng Anh [3] E Balas and M.C Carrera, “A Dynamic Subgradient-Based Branch-and-Bound Procedure for Set Covering”, Operatons Research 44 (1996) 875-890 [4] J.E Beasley, “An Algorithm for Set Covering Problems”, European Journal of Operational Research 31 (1987) 85-93 [5] J.E Beasley, “A Lagrangian Heuristic for Set Covering Problems”, Naval Research Logistics 37 (1990) 151-164 [6] J.E Beasley and P.C Chu, “A Genetic Algorithm for the Set Covering Problem”, European Journal of Operational Research 94 (1996) 392-404 [7] J.E Beasley and K Jornsten, “Enhancing an Algorithm for Set Covering Problems”, European Journal of Operational Research 58 (1992) 293-300 [8] M.J Brusco, L.W Jacobs and G.M Thompson, “A Morphing Procedure to Supplement a Simulated Annealing Heuristic for Cost – and Coverage-Correlated Weighted Set-Covering Problems”, Working Paper, Operations Management and Information Systems Department, Northern Illinois University, 1996 [9] A Caprara, M Fischetti and P Toth, “A Heuristic Method for the Set Covering Problem”, Technical Report Or-95-8, DEIS, University of Bologna, 1995, to appear in Operations Research [10] S Ceria, P Nobili and A Sassano, “A Lagrangian-Based heuristic for LargeScale Set Covering Problems”, Technical Report R.406, IASI-CNR, Rome, 1995, to appear in Mathematical Programming Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 75 [11] M.L Fisher, “An Applications Oriented Guide to Lagrangian Optimization”, Interface 15 (1985) 10-21 [12] S Haddadi, “Simple Lagrangian Heuristic for the Set Covering Problem”, European Journal of Operational Research 97 (1997) 200-204 [13] L.W Jacobs and M.J Brusco, “A Local Search Heuristis for Large SetCovering Problems”, Nauval Research Logistics 52 (1995) 1129-1140 [14] L.A.N Lorena and F.B Lopes, “A surrogate Heuristic for Set Covering Problems”, European Journal of Operational Research 79 (1994) 138-150 [15] S Martello and P Toth, Knapsack Problems: Algorthms and Computer Implementations, J Wiley and Sons (1990) [16] P Nobili and A Sassano, “A Separation Routine for the Set Covering Polytope”, in E Balas, G Cornuejols, and R Kannan (eds.), Integer Programming and Combinatorial Optimization, Proceedings of the 2nd IPCO Conference, Carnegie-Mellon University Press (1992) [17] D Wedelin, “An Algorithm for Large Scale 0-1 Integer Programming with Application to Airline Crew Scheduling”, Annals of Operational Research 57 (1995) 283-301 [18] H.D Chu, E.L Johnson, “Solving Large Scale Crew Scheduling Prob-lems”, European Journal of Operational Research 97 (1997) 260-268 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ... .25 Chƣơng 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ụ 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Ả... sâu toán phủ tập hợp với tốn liên quan để từ nghiên cứu thuật toán giải toán phủ tập hợp Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 26 Chƣơng BÀI TỐN PHỦ TẬP HỢP Bài tốn phủ tập hợp. .. THIỆU BÀI TỐN PHỦ TẬP HỢP 2.1.1 Một số ví dụ toán phủ tập hợp Bài toán phủ tập hợp (Set Covering Problem – SCP) mơ hình nhiều ứng dụng quan trọng Để hiểu rõ mơ hình tốn học tốn phủ tập hợp tổng