Phương pháp nhánh và cận trong tối ưu rời rạc

52 1.9K 1
Phương pháp nhánh và cận trong tối ưu rời rạ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

Phương pháp nhánh và cận trong tối ưu rời rạc

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC CAO TRẦN DŨNG PHƯƠNG PHÁP NHÁNH CẬN TRONG TỐI ƯU RỜI RẠC LUẬN VĂN THẠC SĨ TOÁN HỌC Thái Nguyên - Năm 2012 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC CAO TRẦN DŨNG PHƯƠNG PHÁP NHÁNH CẬN TRONG TỐI ƯU RỜI RẠC Chuyên ngành: TOÁN ỨNG DỤNG Mã số : 60.46.36 LUẬN VĂN THẠC SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC GS.TS. TRẦN VŨ THIỆU Thái Nguyên - Năm 2012 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn i Mục lục Mục lục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i LỜI NÓI ĐẦU 1 1 PHƯƠNG PHÁP NHÁNH CẬN TRONG TỐI ƯU RỜI RẠC 4 1.1 Bài toán quy hoạch nguyên tuyến tính . . . . . . . . . . . . 4 1.2 Sơ đồ tổng quát của phương pháp nhánh cận . . . . . . . . 10 1.3 Thuật toán Land-Doig giải quy hoạch nguyên tuyến tính . . 14 2 BÀI TOÁN CÁI TÚI 23 2.1 Nội dung bài toán . . . . . . . . . . . . . . . . . . . . . . 23 2.2 Thuật toán nhánh cận . . . . . . . . . . . . . . . . . . 26 2.3 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . . . 30 3 BÀI TOÁN NGƯỜI DU LỊCH 33 3.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Thuật toán nhánh cận . . . . . . . . . . . . . . . . . . . 35 3.2.1 Thủ tục tính cận . . . . . . . . . . . . . . . . . . . 36 3.2.2 Thủ tục phân nhánh . . . . . . . . . . . . . . . . . 38 3.3 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . . . 41 Kết luận 48 Tài liệu tham khảo 49 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 1 LỜI NÓI ĐẦU Tối ưu rời rạc (Discrete Optimization), còn gọi là tối ưu tổ hợp (Com- binatorial Optimization), đề cập tới các bài toán tối ưu trong đó một phần hay toàn bộ biến nhận các giá trị nguyên hay rời rạc (không liên tục). Các bài toán tối ưu rời rạc đã đang được quan tâm nghiên cứu cả về lý thuyết lẫn phương pháp giải, vì chúng có những ứng dụng đa dạng, phong phú trong thực tiễn nhiều vấn đề lý thuyết cũng như thực tiễn có thể diễn đạt dưới dạng một bài toán tối ưu rời rạc. Một lớp bài toán tối ưu rời rạc đáng chú ý là bài toán tối ưu với các biến số chỉ nhận hai giá trị 0 hoặc 1, gọi là qui hoạch 0 - 1 hay qui hoạch biến Boole. Nhiều bài toán điển hình của tối ưu rời rạc được phát biểu dưới dạng bài toán qui hoạch 0 - 1, như bài toán phân việc, bài toán cái túi, bài toán người du lich, bài toán phân hoạch tập, phủ tập, sắp xếp tập, bài toán cây Steiner trên đồ thị, . Hơn nữa về nguyên tắc, mọi bài toán với biến số nguyên hay rời rạc bị chặn đều có thể đưa được về bài toán qui hoạch 0 - 1. Có nhiều phương pháp giải bài toán tối ưu rời rạc, trong đó đáng chú ý có hiệu quả hơn cả là các phương pháp nhánh cận, đặc biệt đối với một số bài toán điển hình của tối ưu rời rạc: bài toán qui hoạch 0 - 1, bài toán cái túi, bài toán người du lịch. Cho đến nay phương pháp nhánh cận với nhiều cải tiến khác nhau vẫn là công cụ chủ yếu để giải các bài toán tối ưu rời rạc. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2 Mục tiêu của luận văn này là tìm hiểu trình bày lược đồ tổng quát của phương pháp nhánh cận trong tối ưu rời rạc áp dụng lược đồ đó vào giải một số bài toán tối ưu rời rạc điển hình nói trên. Nội dung đề cập tới trong luận văn được trình bày một cách chặt chẽ về mặt toán học, các thuật toán giải nêu ra đều có kèm theo ví dụ số minh hoạ. Việc tìm hiểu phương pháp nhánh cận trong tối ưu rời rạc sẽ giúp ích cho việc đi sâu tìm hiểu sau này về nội dung phương pháp giải các bài toán của tối ưu rời rạc nói chung những ứng dụng của chúng nói riêng. Nội dung luận văn được chia thành ba chương. Chương 1 với tiêu đề "Phương pháp nhánh cận trong tối ưu rời rạc" giới thiệu về bài toán qui hoạch nguyên tuyến tính bài toán qui hoạch tuyến tính 0 - 1 như trường hợp riêng quan trọng. Tiếp đó trình bày lược đồ tổng quát của phương pháp nhánh cận áp dụng lược đồ đó vào bài toán qui hoạch nguyên tuyến tính. Chương 2 với tiêu đề "Bài toán cái túi" trình bày nội dung ý nghĩa thực tiễn của bài toán cái túi. Đó là bài toán qui hoạch tuyến tính 0 - 1 với một ràng buộc chính duy nhất, dạng đẳng thức hay bất đẳng thức tuyến tính. Bài toán này tuy đơn giản, nhưng lại là bài toán điển hình trong tối ưu rời rạc. Phương pháp nhánh cậnphương pháp thích hợp nhất để giải bài toán nầy. Thuật toán nhánh cận trình bày ở chương này khá độc đáo. Cách tính cận chỉ dựa trên việc giải bài toán qui hoạch tuyến tính đơn giản. Chương 3 với tiêu đề "Bài toán người du lịch" trình bày nội dung ý nghĩa của bài toán người du lịch. Đó là một bài toán rất quen thuộc có tầm quan trọng đặc biệt trong tối ưu rời rạc, vì nó là mô hình toán học cho nhiều vấn đề thực tiễn khác nhau là một trong những bài toán khó, Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 3 hiện vẫn được nhiều người quan tâm nghiên cứu. Thuật toán nhánh cận đầu tiên của Little, Murty, Sweeney Karel được giới thiệu ở chương này có nhiều ý tưởng độc đáo, đặc biệt trong cách phân nhánh cách tính cận. Do thời gian kiến thức còn hạn chế nên luận văn này mới chỉ đề cập tới những nội dung cơ bản của phương pháp nhánh cận trong tối ưu rời rạc, chưa đi sâu vào các chi tiết thực thi thuật toán. Trong quá trình viết luận văn cũng như trong xử lý văn bản chắc chắn không tránh khỏi những sai sót nhất định. Tác giả luận văn rất mong nhận được sự góp ý của các thầy cô các bạn đồng nghiệp để luận văn được hoàn thiện hơn. Nhân dịp này tác giả xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng dấn GS-TS Trần Vũ Thiệu đã tận tình giúp đỡ trong suốt quá trình làm luận văn Tác giả xin trân trọng cảm ơn các thầy, cô giáo Trường Đại học Khoa học- Đại học Thái Nguyên, Viện Toán học-Viện Khoa học Công nghệ Việt Nam, đã giảng dạy tạo mọi điều kiện thuận lợi trong quá trình tác giả học tập nghiên cứu. Tác giả cũng xin chân thành cảm ơn Ban giám hiệu, tổ toán –tin Trường THPT Số 1 TP Lào Cai tập thể bạn bè đồng nghiệp cùng gia đình đã quan tâm giúp đỡ, động viên tác giả hoàn thành tốt luận văn này. Thái Nguyên, tháng 07 năm 2012. Người thực hiện Cao Trần Dũng Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 4 Chương 1 PHƯƠNG PHÁP NHÁNH CẬN TRONG TỐI ƯU RỜI RẠC Chương này giới thiệu về bài toán qui hoạch nguyên tuyến tính lược đồ tổng quát của phương pháp nhánh cận trong tối ưu rời rạc. Cuối chương, áp dụng lược đồ nhánh cận vào bài toán qui hoạch nguyên tuyến tính. Nội dung của chương dựa chủ yếu trên các tài liệu [1], [4] [6]. 1.1 Bài toán quy hoạch nguyên tuyến tính Qui hoạch nguyên tuyến tính (Integer Linear Programming Problem, viết tắt ILP) là bài toán tìm cực tiểu (hay cực đại) của một hàm tuyến tính trên một tập hợp điểm rời rạc, thường là tập điểm nguyên: (ILP) min  f(x) = c T x : Ax = b, x j ≥ 0 nguyên, j = 1, , n  , trong đó A ∈ R m.n , b ∈ R m c ∈ R n cho trước. Khi chỉ có một số, chứ không phải tất cả, các biến là nguyên thì ta gọi đó là bài toán qui hoạch nguyên hỗn hợp (Mixed Integer Programming Problem, viết tắt MIP). Cũng như trong qui hoạch tuyến tính, f được gọi là hàm mục tiêu, tập D =  x ∈ R n : Ax = b, x j ≥ 0 nguyên, j = 1, , n  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 5 gọi là miền ràng buộc hay miền chấp nhận được. Điểm x ∈ D gọi là một nghiệm chấp nhận được hay một phương án của bài toán. Một phương án đạt cực tiểu (hay cực đại) của hàm mục tiêu gọi là một nghiệm tối ưu hay một phương án tối ưu. Nghiên cứu cấu trúc tập ràng buộc D xây dựng các thuật toán tìm nghiệm tối ưu của bài toán ILP là đối tượng của qui hoạch nguyên tuyến tính. Sau đây là hai ví dụ đơn giản về bài toán qui hoạch nguyên tuyến tính. Ví dụ 1.1. Giả sử ta cần đưa qua sông 3 kiện hàng với trọng lượng lần lượt là 3 tạ, 2 tạ 4 tạ trị giá mỗi kiện hàng tương ứng là 1, 2 3 triệu đồng. Nhưng chỉ có một chiếc thuyền nhỏ, mỗi chuyến chở được tối đa 5 tạ. Hỏi nên xếp lên thuyền những kiện hàng nào để số hàng chuyển được có trị giá lớn nhất? Bằng cách đưa vào các biến số: x j =  1 nếu chọn kiện j 0 nếu ngược lại , j = 1, 2, 3, ta có thể diễn đạt vấn đề nêu trên như một qui hoạch nguyên ILP như sau:  x 1 + 2x 2 + 3x 3 → max 3x 1 + 2x 2 + 4x 3 ≤ 5 0 ≤ x j ≤ 1, nguyên, j = 1, 2, 3. Nếu đòi hỏi rằng các kiện hàng 1 2 không được xếp cùng nhau trên thuyền thì phải đặt bài toán như thế nào? Trả lời: thêm vào bài toán trên bất đẳng thức: x 1 + x 2 ≤ 1 (Vì thế, nếu x 1 = 1 thì x 2 = 0, còn nếu x 2 = 1 thì x 1 = 0). Nếu đòi hỏi rằng chỉ một trong 3 kiện hàng được xếp lên thuyền thì mô Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 6 hình bài toán ra sao? Trả lời: thêm vào mô hình ban đầu đẳng thức: x 1 + x 2 + x 3 = 1 (Vì thế, hoặc x 1 = 1 , x 2 = x 3 = 0 hoặc x 2 = 1 , x 1 = x 3 = 0 hoặc x 3 = 1, x 1 = x 2 = 0). Như vậy ta đã thấy qui hoạch nguyên ILP rất tiện dùng để mô hình hoá các ràng buộc lôgic (chẳng hạn, nếu sự kiện A xảy ra thì sự kiện B không xảy ra, ). Ví dụ 1.2. Một hãng hàng không dự định mua một số máy bay Airbus A-3200 Boing 777 để mở rộng hoạt động. Mỗi máy bay Airbus giá 5 triệu đô có thời gian sử dụng 6 năm, mỗi máy bay Boing giá 9 triệu đô có thời gian sử dụng 8 năm (các con số có tính ước lệ). Hãng ước tính chỉ cần mua tối đa 6 máy bay số tiền để mua máy bay không quá 46 triệu đô. Hỏi hãng nên mua bao nhiêu máy bay mỗi loại để tổng thời gian phục vụ của chúng được lâu nhất? Bằng cách đưa vào hai biến: x 1 là số máy bay Airbus cần mua x 2 là số máy bay Boing cần mua, ta có thể diễn đạt vấn đề này như một bài toán nguyên tuyến tính ILP sau (Đáp số: 2 Airbus 4 Boing, f max = 44 năm):                6x 1 + 8x 2 → max x 1 + x 2 ≤ 6 5x 1 + 9x 2 ≤ 46 x 1 , x 2 ≥ 0, nguyên Một lớp qui hoạch nguyên quan trọng là bài toán qui hoạch tuyến tính 0 - 1. Đó là bài toán qui hoạch tuyến tính, trong đó mọi biến chỉ lấy giá trị 0 hay 1. Bài toán này còn được biết với tên gọi bài toán nhị nguyên tuyến tính hay bài toán qui hoạch tuyến tính biến Boole. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 7 . Nhiều bài toán tối ưu rời rạc có thể diễn đạt dưới dạng một qui hoạch tuyến tính 0 - 1. Chẳng hạn: bài toán phân việc, bài toán cái túi, bài toán người du lịch, bài toán phân hoạch tập, phủ tập, sắp xếp tập, bài toán cây Steiner trên đồ thị Một số ứng dụng trong công nghiệp như định vị tiện ích (facility location), bài toán với phụ phí cố định, bài toán xếp lịch, thiết kế mạng được diễn đạt giải bằng kỹ thuật qui hoạch tuyến tính 0 - 1. Qui hoạch tuyến tính 0 - 1 có nhiều ứng dụng trong thực tiễn, đặc biệt trong lập kế hoạch triến khai các dự án với hạn chế về các nguồn lực (vốn, lao động, vật tư, v.v ). Để minh hoạ ta nêu đại diện mô hình bài toán “cái túi” nhiều chiều: (MKP) x 0 = c 1 x 1 + c 2 x 2 + + c n x n → max với các điều kiện:  a i1 x 1 + a i2 x 2 + + a in x n ≤ b i , i = 1, 2, , m x j ∈ {0, 1} , j = 1, 2, , n, trong đó a ij , b i , c j ∈ Z (i = 1, 2, , m; j = 1, 2, . . . , n) là những số cho trước x j (j = 1, 2, , n) là biến nhị nguyên (biến 0 - 1). Trong mô hình trên a ij biểu thị lượng tài nguyên i cần dùng để thực hiện dự án j, b i biểu thị lượng tài nguyên i có thể sử dụng c j biểu thị lợi ích thu được khi thực hiện dự án j. Biến quyết định x j = 1 nếu dự án j được chọn thực hiện x j = 0 nếu trái lại. Qui hoạch tuyến tính 0 - 1 còn được chú ý là vì về nguyên tắc, mọi bài toán với biến nguyên hay rời rạc bị chặn đều có thể đưa được về bài toán Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn [...]... tương ứng với P0 thu được phương án tối ưu x0 Giả sử x0 là không nguyên Đặt cận dưới của P0 là f (x0 ) danh mục các bài toán cần xét là P = {P0 } Nếu biết x là phương án chấp nhận được của bài toán thì đặt f = f (x) ngược lại, ta đặt f = ∞ Bước lặp k = 1,2, 1) Nếu P = φ thuật toán kết thúc Khi đó, nếu f < ∞ thì f là giá trị tối ưu x là phương án tối ưu của bài toán Trong trường hợp ngược... giải của (2.6) là M véc tơ mục tiêu là d Khi đó theo bổ đề (2.1) ta có r r cj + (b − j=1 aj ) j=1 cr+1 = max dT y ≥ max dT y ≥ max cT x y∈M y∈M,yr+1=0 x∈D ar+1 Điều này cho thấy bổ đề (2.2) đã được chứng minh 2.2 Thuật toán nhánh cận Trong mục này sẽ áp dụng phương pháp nhánh cận để giải bài toán cái túi (2.1) Theo phương pháp này, tập hợp tất cả các lời giải ( hay còn gọi là phương án ) của bài... phương án ε -tối ưu của bài toán Nếu ta tìm được x ∈ D sao cho: (1) f (x) = γ(Di0 ) (1.6) thì từ (1.4) suy ra: (1) f (x) = γ(Di0 ) tức là x là phương án tối ưu Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 12 (1) (1) Tập Di0 là có triển vọng chứa phương án tối ưu hơn các tập Di (i = i0 ) của phân hoạch (1.2) Nếu không có thông tin nào khác về phương án tối ưu của bài toán... được 3 phương án tối ưu: x1 = 2 ; x2 = 5 2 với giá trị mục tiêu z = - 4 Đó là cận dưới cho mọi phương án nguyên của bài toán quy hoạch nguyên đang xét Vì biến x1 có giá trị không nguyên nên ta chọn x1 để phân nhánh Ta thu được bài toán quy hoạch tuyến tính mới Thêm vào P1 ràng buộc x1 ≤ 1 ta được bài toán P2 Thêm vào P1 ràng buộc x1 ≥ 2 ta được bài toán P3 Giải bài toán P2 ta được phương án tối ưu x1... 1, 2), để tính cận dưới cho các tập Di , ta có thể gặp một trong các tình huống sau đây: 1) Bài toán không có phương án chấp nhận được 2) Tìm được phương án tối ưu xi nguyên 3) Tìm được phương án tối ưu xi không nguyên Trường hợp 1): Bài toán Pi cũng không có phương án chấp nhận được, tức là Di = φ Khi đó, ta có thể loại bỏ tập Di khỏi quá trình xét tiếp theo Trường hợp 2): xi cũng là phương án của... nhánh cận Xét bài toán tối ưu rời rạc tổng quát : min {f (x) : x ∈ D} (1.1) trong đó f : Rn → R, D ⊂ Rn là một tập gồm hữu hạn phần tử Bởi vì D là tập hữu hạn nên bài toán (1.1) luôn có phương án tối ưu ký hiệu là x∗ Xét hàm số γ : 2D \φ → R thỏa mãn hai điều kiện i) γ(A) ≤ min {f (x) : x ∈ A} ii) γ(A1 ) ≥ γ(A2 ), nếu A1 ⊂ A2 ⊂ D Định nghĩa 1.1 Giá trị γ(A) trên tập A⊂D được gọi là cận dưới của tập A... TÚI Chương này đề cập tới một trong những bài toán điển hình của tối ưu rời rạc, đó là bài toán "cái túi" (Knapsack problem): nêu nội dung mô hình toán học của bài toán Sau đó trình bay cơ sở lý luận nêu thuật toán nhánh cận giải bài toán Cuối chương xây dựng ví dụ số minh hoạ cho thuật toán đã trình bày Nội dung của chương chủ yếu được tham khảo từ các tài liệu [1] [3] 2.1 Nội dung bài toán... ,n Nếu chẳng hạn, cj > 0, aj ≤ 0 thì trong lời giải tối ưu phải có xj = 1 hoặc nếu cj ≤ 0, aj ≥ 0 thì có ít nhất một lời giải tối ưu trong đó xj = 0 Hơn nữa ta có thể đánh số các đồ vật sao cho thỏa mãn hệ thức: c1 c2 cn ≥ ≥ ≥ a1 a2 an (2.3) Bổ đề sau đây cho cách tìm lời giải tối ưu cuả bài toán (2.1) trong trường hợp đơn giản Bổ đề 2.1 Nếu có điều kiện (2.3) nếu tìm được số nguyên r sao cho a1... bài toán quy hoạch tuyến tính tương ứng với Pki (i = 1,2) để tính cận dưới cho bài toán Pki Khi đó, ta có thể gặp một trong các tình huống sau đây: a) Phát hiện bài toán không có phương án chấp nhận được b) Tìm được phương án tối ưu xki là nguyên c) Tìm được phương án tối ưu xki là không nguyên Trường hợp a): Bài toán Pki cũng không có phương án chấp nhận được, vì vậy loại bỏ khỏi việc xem xét tiếp... (2.10) được thỏa mãn với dấu bằng nên cận trên β(S2 ) = 12 là giá trị tối ưu đúng của bài toán lời giải tối ưu tương ứng là y1 = 1; y2 = 0; y3 = 1; y4 = 0 Để tính cận trên cho S3 xét bài toán z(S3 ) = 5y2 + 3y3 + y4 → max, 4y2 + 3y3 + 2y4 ≤ 10 Với bài toán này điều kiện (2.11) được thỏa mãn vì 4+3+2 < 10 ⇒ S3 có cận trên đúng β(S3 ) = 5 + 3 + 1 = 9 Lời giải tối ưu tương ứng là y1 = 0; y2 = y3 = y4 . http://www.lrc-tnu.edu.vn 4 Chương 1 PHƯƠNG PHÁP NHÁNH VÀ CẬN TRONG TỐI ƯU RỜI RẠC Chương này giới thiệu về bài toán qui hoạch nguyên tuyến tính và lược đồ tổng quát của phương pháp nhánh cận trong tối ưu rời rạc. Cuối chương,. hoạ. Việc tìm hiểu phương pháp nhánh cận trong tối ưu rời rạc sẽ giúp ích cho việc đi sâu tìm hiểu sau này về nội dung và phương pháp giải các bài toán của tối ưu rời rạc nói chung và những ứng dụng. i LỜI NÓI ĐẦU 1 1 PHƯƠNG PHÁP NHÁNH VÀ CẬN TRONG TỐI ƯU RỜI RẠC 4 1.1 Bài toán quy hoạch nguyên tuyến tính . . . . . . . . . . . . 4 1.2 Sơ đồ tổng quát của phương pháp nhánh cận . . . . . . .

Ngày đăng: 31/05/2014, 08:49

Từ khóa liên quan

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

Tài liệu liên quan