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,21 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 HOÀNG XUÂN THÁI MỘTSỐTHUẬTTOÁNGIẢIBÀITOÁNPHỦTẬPHỢPVÀỨNGDỤNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - Năm 2014 ĐẠ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ỘTSỐTHUẬTTOÁNGIẢIBÀITOÁNPHỦTẬPHỢPVÀỨNGDỤ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 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ÀITOÁ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ÀITOÁNPHỦTẬPHỢP 26 2.1 GIỚI THIỆU BÀITOÁNPHỦTẬPHỢP 26 2.1.1 Mộtsố ví dụ toánphủtậphợp 26 2.1.2 Bàitoánphủtậphợp 28 2.2 MỘTSỐ KẾT QUẢ LÝ THUYẾT VỀ BÀITOÁNPHỦTẬPHỢP 29 2.2.1 Hướng tiếp cận giảitoán SCP 29 2.2.2 Mộtsố phương pháp tìm giải pháp gần tối ưu cho toán SCP 31 2.3 THUẬTTOÁN HEURISTIC GIẢIBÀITOÁNPHỦTẬPHỢP 35 2.3.1 Thuậttoán Heuristic 35 2.3.2 Ứngdụngthuậttoán Heuristics giảitoán SCP 36 2.3.3 Tính hiệu thuậttoán Heuristic 45 2.4 THUẬTTOÁN CHÍNH XÁC 50 2.4.1 Ví dụ thuậttoán nhánh cận 50 2.4.2 Thuậttoán xác giảitoán SCP 54 2.5 TỔNG KẾT CHƯƠNG 57 Chương CÀI ĐẶT CHƯƠNG TRÌNH VÀỨNGDỤNG 58 3.1 BÀITOÁ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ậttoán tham lam 59 3.1.3 Cài đặt thuậttoá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 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 trình hình thành 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 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ả Hoàng Xuân Thái 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á, 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 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ảithuật di truyền LP Linear Programming Quy hoạch tuyến tính NP Nondeterministic Polynomial Time Thuậttoán bất định thời gian đa thức SA Simulated Annealing Giảithuật luyện thép SCP Set Covering Problem Bàitoánphủtậphợp Tiếng Việt BTQHTT Bàitoán quy hoạch tuyến tính BTQHPT Bàitoán quy hoạch phi tuyến BTQHL Bàitoán quy hoạch lồi BTQHTP Bàitoán quy hoạch toàn phương 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 DANH MỤC HÌNH Trang Hình 1.1 Mô hình phân lớp 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ậttoá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ậttoán Meta-RaPS giảitoán SCP 40 Hình 2.5 Ví dụ toán SCP 42 Hình 2.6 Kết sau thực thuậttoán tham lam 43 Hình ví dụ thuậttoán tham lam 44 Hình 2.7 Kết phân nhánh 52 Hình 2.8 Ma trận chi phí toán người du lịch 54 Hình 2.9 Cây phân nhánh giảitoá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ậttoán tham lam 68 Hình 3.4 Giao diện phân lịch thuậttoá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 MỞ ĐẦU Lý chọn đề tài Bàitoán tối ưu tổ hợp dạng toán có độ phức tạp tính toán cao thuộc lớp NP khó Đã có nhiều giảithuật đưa để giảitoán họ giảithuật kiến (Ant Algorithm), giảithuật luyện thép SA (Simulated Annealing), giảithuật di truyền GA (Genetic Algorithm) giảithuật Meta-Heuristic Những giảithuậtgiảitoá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 toán cao toán tối ưu tổ hợp đòi hỏi mặt thời gian, việc giảitoán với tính chất giảithuậ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 toán tăng lên không gian tìm kiếm lớn yêu cầu cần phải có giảithuật để tăng tốc độ hiệu giảithuậtBàitoánphủtậphợp (set covering problem) toán tối ưu tổ hợp Dạng toá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ảitoán bao gồm giảithuật heuristic, thuậttoán sử dụng ý tưởng tham lam (Greedy Method) thuậttoán sử dụng phương pháp quy hoạch nguyên Vì vậy, việc tìm hiểu toán dạng phủtập hợp, thuậttoángiảitoán để từ ứngdụ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ánphủtậphợp vấn đề liên quan, thuậttoán để giải pài toánphủtậphợp 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 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 Quá trình giải kết thúc không tập cần xem xét tiếp Khi đó, phương án tốt biết phương án tối ưu toán Tính hữu hạn thuậttoán 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 0 , S p'' x | x S p , xr 1 Trong đó, xr biến chưa cố định giá trị hay tập S p Giá trị r dùng để phân nhánh chọn cho tập S ''p có nhiều khả chứa phương án tối ưu, tập S 'p không Nói cách khác, r chọn cho hiệu số cận S ''p S p' lớn Để giải vấn đề này, ta cần xét tập phương án ban đầu S0 chia thành hai tập rời S1 S2 với S1 x | x S1 , xr 0 , S2 x | x S2 , xr 1 Trong tập S2 cấu trúc toán không thay đổi, trừ cột r bị loại Các cột lại chứa phần tử không âm, ứng với S2 cận giá trị hàm mục tiêu tăng thêm ( S2 ) 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 giá trị mục tiêu tăng j r 62 thêm Ta chọn biến xr cho hiệu cận lớn nhất, nghĩa đạt max ( S1 ) ( S2 ) r Nếu cr ( S1 ) (do cột r C chứa số 0), ( S2 ) cr , từ ( S1 ) ( S2 ) Vì để có hiệu cận lớn ta cần xét r với cr Trong trường hợp ( S2 ) ( S1 ) Điều có nghĩa ta chọn biến xr để phân nhánh theo qui tắc (r ) max ( p) c p c p 0 p Lập luận đủngtập phương án Si sau chia thành tập Sr , Sr 1 thay cho mức tăng cận ( S1 ) ( S2 ) ta xét mức tăng cận ( Sr ) ( Sr 1 ) tương ứng Nếu tập xét S0 mà S p x | x S0 , xi1 1 , xi2 , , xik k , Thì qui tắc chọn biến để phân 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, x j 0, j 1, , v 1, v 1, , n tất nhiên phải có xv Cũng làm cột Mộtsố 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 xiu1 xiv1iv ( v n ) bước lặp, trước tính cận cho tập mới, cần thực lựa chọn bắt buộc nêu Có thu cận 63 xác tránh 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 nghiệm thành phần x1 , x2 , , xi 1 - Đá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ậttoán nhánh cận giảitoán phân lịch bác sĩ cho kết tối ưu xác định mảng x Trong với bác sĩ 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 toá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 tối ưu 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 Để hoàn thành ứngdụng chương trình demo viết ngôn ngữ lập trình C# Visual Studio 2010 kết hợp với sở liệu 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í cho mảng c, bước thủ tục tìm mức chi phí nhỏ chưa xét giả sử ci, mức chi phí tương ứng với việc chọn bác sĩ i người 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ụ cho mảng ds, danh sách chi phí C Mỗi tìm 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 xếp lịch phục vụ trường hợp ngược lại private int[] ScheduleDoctor(ArrayList[] ds, int[] C,float [] price) { 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 xem xét phục vụ không Phần tử 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 lưu trữ mảng result Dựa vào mảng result ta biết bác sĩ i có sử dụng (result[i]=1) không sử dụng (result[i]=0) Từ biết 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)); 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 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ụ 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ộtsố hình ảnh giao diện chương trình: - Khi bắt đầu chạy cửa sổ chương trì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: 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ậttoán tham lam 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ậttoá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 70 3.3 THỬ NGHIỆM VÀ ĐÁNH GIÁ Chương trình 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 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 toá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ậttoán tham lam Thuậttoá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 Ứngdụng thành công phương pháp giảitoán SCP để xây dựngứngdụng “Phân lịch trực bác sĩ” kết trình nghiên cứu mô hình toán học toán SCP, thuậttoángiảitoán SCP Trong chương trình bày mô hình toán SCP việc phân công lịch trực bác sĩ phục 71 vụ dịch vu cấp cứu, đưa hướng giảitoán dựa ý tưởng thuậttoán tham lam thuậttoán nhánh cận, từ xây dựng modul để cài đặt thành công ứngdụng “Phân lịch trực bác sĩ” Việc ứngdụngthuậttoán tham lam để xây dựngứngdụng cho kết gần tối ưu với độ phức tạp nhỏ, thuậttoán nhánh cận cho kết tối ưu thời gian tính toán hàm mũ Đây bước đầu để tiếp tục nghiên cứu triển khai thêm nhiều ứngdụngtoán SCP thực tế 72 KẾT LUẬN VÀ KIẾN NGHỊ Với mục đích nghiên cứu mô hình toán học toánphủtậphợp phương pháp giảitoánphủtậphợp để từ xây dựngứngdụnggiảitoánphủtậphợp thực tế Dựa phương pháp giảitoán SCP 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 toán chấp nhận lựa chọn hai phương pháp thuậttoán tham lam thuậttoá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 toán SCP nhiên phương pháp có nhược điểm lúc cho lời giải tối ưu Một phương pháp khác để giảitoá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 toán chấp nhận, 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 toán học, tìm hiểu mô hình toán học toánphủtập hợp, thuậttoángiảitoánphủtậphợp Dựa sở lý thuyết vận dụng mô hình toán học toánphủtậphợpứngdụngthuậttoán tham lam, thuậttoá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ứngdụng nhận thấy số vấn đề phát triển thêm: Xây dựngthuậttoán kết hợp ưu điểm thuậttoángiảitoánphủtậphợp cho thời gian thực nhanh chóng kết gần tối ưu Xây dựnggiảithuật cho toánphủtậphợpứng với nhiều ràng buộc nhiều chi phí cần tối ưu Cải tiến thuậttoán tham lam để kết cuối nhận 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 phương pháp hiệu để giảitoánphủtậphợp vận dụng chúng để xây dựng thành công ứngdụng phân lịch trực bác sĩ cho phép đưa 73 vào danh sách bác sĩ, danh sách dịch vụ mà bác sĩ thực được, đưa danh sách phân công lịch trực cho bác sĩ với chi phí phục vụ thấp 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 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 ... 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Ả... THIỆU BÀI TOÁ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 toán học toán phủ tập hợp tổng... 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 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