VIỆN KHOA HỌC VÀ CƠNG NGHỆ VIỆT NAM VIỆN TỐN HỌC PGS.TS BÙI THẾ TÂM QUY HOẠCH RỜI RẠC BÀI GIẢNG CAO HỌC HÀ NỘI 10-2008 Bùi Thế Tâm i Quy hoạch rời rạc LỜI NÓI ĐẦU Tài liệu Bài giảng môn Quy hoạch rời rạc thuộc Trung tâm đào tạo sau đại học, Viện Toán học, Viện Khoa học Công nghệ Việt nam năm 2006, 2007 2008 Đây tài liệu viết tiếng Việt trình bày cách hệ thống Quy hoạch rời rạc với sở lý thuyết chặt chẽ, chứng minh tính hữu hạn thuật tốn Gomory, cịn đưa chương trình nguồn viết C cho thuật tốn Kiến thức chuẩn bị để tiếp thu giáo trình lý thuyết quy hoạch tuyến tính phương pháp đơn hình [9], lập trình ngơn ngữ C++ [11], bảng tính điện tử Microsoft Excel [12] Tài liệu gồm bảy chương Chương trình bày toán phát sinh thực tiễn dẫn đến toán quy hoạch rời rạc, phát biểu toán quy hoạch rời rạc tổng quát Các tập cuối chương dùng lệnh Solver Microsoft Excel để giải, hướng dẫn lệnh cho tài liệu [12] hoặc[13] Trong Chương nêu khái niệm quy hoạch tuyến tính, phương pháp đơn hình bình thường, phương pháp đơn hình đối ngẫu từ vựng chương trình máy tính viết C++, khái niệm tốn quy hoạch tuyến tính ngun Chương trình bày tư tưởng phương pháp cắt, thuật toán Gomory thứ chứng minh hội tụ (tài liệu gốc [1], [2]), chương trình máy tính thuật tốn Gomory thứ Chương xét hai thuật toán: thuật toán Gomory thứ hai dùng để giải tốn quy hoạch tuyến tính ngun phận [3], thuật toán Dalton - Llewellyn dùng để giải tốn quy hoạch tuyến tính với biến nhận giá trị rời rạc [4], chương trình máy tính hai thuật tốn Chương trình bày thuật tốn Gomory thứ ba nhằm xây dựng lát cắt đảm bảo tất Bảng đơn hình bước có tất phần tử nguyên [5], [6], chương trình máy tính thuật tốn Gomory thứ ba Chương trình bày tư tưởng phương pháp nhánh cận, phương pháp Land A.H Doig A.G giải toán qui hoạch nguyên [7], phương pháp Little J.D, Murty K.G, Sweeney D.W Karen C giải toán người du lịch [8] Các tài liệu gốc [1]-[8] A.A Korbut, Iu Iu Phinkenstein trình bày lại sách [10] Năm chương trình ngơn ngữ C tài liệu Phương pháp đơn ngẫu từ vựng, ba thuật tốn Gomory, thuật tốn Dalton tác giả lập Bạn đọc quan tâm tới lập trình Pascal cho toán tối ưu Quy hoạch tuyến tính, Quy hoạch phi tuyến Quy hoạch rời rạc tham khảo tài liệu [14] Các trường Đại học, sở đào tạo có nhu cầu giảng dạy môn này, hướng dẫn giảng viên để giảng dạy mơn này, bạn đọc muốn góp ý giáo trình xin vui lịng liên hệ với tác giả theo địa chỉ: Bùi Thế Tâm, Viện Tốn học, Viện Khoa học Cơng nghệ Việt Nam, 18 Hoàng Quốc Việt, Cầu giấy, Hà nội ; địa email: bttam@math.ac.vn Hà Nội, ngày tháng10 năm 2008 Bùi Thế Tâm ii Quy hoạch rời rạc TÀI LIỆU THAM KHẢO Gomory R.E An algorithm for integer solutions to linear programs Recent Advances Math Program New York - San Francisco - Toronto - London, McGraw-Hill Book Co., Inc., 1963, 269-302 Gomory R.E Outline of an algorithm for integer solution to linear programs Bull Amer Math Soc., 1958, 64, N5, 275-278 Gomory R.E An algorithm for the mixed integer problem Rand Corp., P1885, Santa Monica, California, February 22, 1960 Dalton R.E, Llewellyn R.W An extension of the Gomory mixed-integer algorithm to mixed-discrete variable Manag Sci., 1966, 12, N7, 562-575 Gomory R.E An all-integer integer programming algorithm IBM Research Center, 1960, January, Research Report RC-189 Gomory R.E An all-integer integer programming algorithm In "Industrial scheduling", Englewood Cliffs, New Jersey, Prentice Hall, 1963, ch 13 Land A.H, Doig A.G An automatic method of solving discrete programming problems Econometrica, 1960, 28, N3, 497-520 Little J.D.C,Murty K.G, Sweeney D.W, Karel C An algorithm for the traveling salesman problem Operat Res., 1963, 11, N6, 972-989 Bùi Thế Tâm, Trần Vũ Thiệu Các phương pháp tối ưu hóa NXB GTVT, 1998, 408 trang 10 A.A Korbut, Iu Iu Phinkenstein Quy hoạch rời rạc (tiếng Nga) NXB Khoa học, Mascva, 1969, 368 trang 11 Bùi Thế Tâm Ngôn ngữ C lập trình hướng đối tượng NXB GTVT, 2006, 240 trang 12 Bùi Thế Tâm Giáo trình Windows 2000, Word 2000, Excel 2000, Powerpoint 2000 NXB GTVT, 2002 13 Bùi Thế Tâm Giải toán tối ưu thống kê Microsoft Exel Công bố http://ebook.edu.net.vn, phần Công nghệ thông tin, 2007 14 Bùi Thế Tâm Turbo Pascal: lý thuyết bản, tập, chương trình mẫu khoa học kỹ thuật kinh tế NXB GTVT, 1993, 460 trang VÀI NÉT VỀ TÁC GIẢ B.T Tâm sinh năm 1948 Hiệp Hoà, Bắc Giang; làm việc Phòng Tối ưu Điều khiển thuộc Viện Tốn học, Viện Khoa học Cơng nghệ Việt nam; bảo vệ Tiến sỹ tháng 5/1978 Viện Hàn lâm Khoa học Liên xơ; nhận học hàm Phó giáo sư tháng 7/1996 Bùi Thế Tâm iii Quy hoạch rời rạc MỤC LỤC Chương Bài toán quy hoạch rời rạc I.1 Định nghĩa toán I.1 Các toán thực tế dẫn đến toán quy hoạch rời rạc I.2 Chương Những khái niệm mở đầu II.1 Những khái niệm quy hoạch tuyến tính II.1 So sánh theo nghĩa từ vựng II.3 Bảng đơn hình, phương án giả phương án II.4 Phương pháp đơn hình II.5 Phương pháp đơn hình đối ngẫu từ vựng II.6 Bài tốn quy hoạch tuyến tính ngun II.16 Chương Thuật toán Gomory thứ III.1 Tư tưởng phương pháp cắt III.1 Thuật toán Gomory thứ III.5 Tính hữu hạn thuật tốn Gomory thứ III.9 Giải ví dụ số III.11 Chương trình máy tính III.15 Bài tập III.23 Chương Thuật toán Gomory thứ hai IV.1 Lược đồ logic thuật toán IV.1 Thuật toán Gomory thứ hai IV.2 Thuật tốn Dalton Llewellyn IV.20 Bìa tập IV.33 Chương Thuật toán Gomory thứ ba V.1 Ảnh hưởng sai số làm tròn tư tưởng thuật toán Gomory thứ ba V.1 Xây dựng lát cắt nguyên, thuật toán Gomory thứ ba V.3 Chương trình máy tính V.13 Bài tập V.22 Chương Thuật toán nhánh cận VI.1 Tư tưởng phương pháp nhánh cận VI.1 Phương pháp Land Doig giải toán quy hoạch nguyên VI.3 Phương pháp nhánh cận giải toán người du lịch VI.6 Bài tập VI.19 Bùi Thế Tâm I.1 Quy hoạch rời rạc Chương BÀI TOÁN QUY HOẠCH RỜI RẠC ĐỊNH NGHĨA BÀI TOÁN QUY HOẠCH RỜI RẠC Trong tốn quy hoạch tuyến tính, biến số nhận giá trị thực không âm Tuy nhiên, thực tiễn thường gặp toán mà biến số nhận số hữu hạn hay đếm giá trị, thường giá trị nguyên Chẳng hạn vô nghĩa đưa câu trả lời: cần sản xuất nửa bàn hay cần thuê 2,7 ô tô để vận chuyển hàng hoá…Trong số toán, chẳng hạn toán vận tải với lượng hàng cung cầu số ngun, song nhiều tốn khác khơng phải Vì chương đề cập đến nội dung phương pháp giải toán tối ưu lưới điểm nguyên hay tập rời rạc, gọi tắt toán quy hoạch rời rạc hay toán quy hoạch nguyên Bài toán quy hoạch rời rạc có dạng sau: Tìm cực đại hàm f ( x, y ) phụ thuộc hai nhóm biến x y với ràng buộc có dạng: gi ( x, y ) ≤ 0, i = 1, 2, m, x ∈ D đó, x = ( x1 , x2 , , x p ), y = ( y1 , y2 , , yq ), p > 0, q ≥ , D tập hữu hạn véc tơ p - chiều, f , gi hàm cho trước n biến số ( n = p + q ) Nếu f , gi hàm tuyến tính D lưới điểm ngun, ta có tốn quy hoạch ngun tuyến tính, cịn D tập véc tơ p thành phần hay ta có toán quy hoạch nguyên − Nếu q = , nghĩa có biến rời rạc x1 , x2 , , x p toán gọi toán quy hoạch nguyên hồn tồn Cịn q > tốn gọi toán nguyên phận Chú ý Sở dĩ tốn quy hoạch rời rạc cịn gọi tốn quy hoạch ngun toán với biến số nhận số hữu hạn giá trị cho trước, quy tốn biến nhận giá trị nguyên Ví dụ, giả sử biến x biểu thị quy mô công suất nhà máy điện cần xây dựng lấy giá trị cho trước a1 , a2 , , ak (các quy mơ cơng suất tiêu chuẩn) Khi cách đặt: x = a1u1 + a2u2 + + ak uk , với u1 + u2 + + uk = 1, u j ∈ {0;1} , j = 1, , k biến rời rạc x thay số biến u j nhận giá trị hay , gọi tắt biến − hay biến Boolean I.2 Bùi Thế Tâm Quy hoạch rời rạc Tương tự, x ∈ {0,1, 2, , k } ta viết x = u1 + u2 + + uk , u j ∈ {0;1} , j = 1, , k nghĩa toán với biến nguyên bị chặn tuỳ ý, quy toán với biến − Điều cho thấy toán quy hoạch nguyên − giữ vai trò quan trọng quy hoạch rời rạc CÁC BÀI TOÁN THỰC TẾ DẪN TỚI QUY HOẠCH RỜI RẠC 2.1 Bài tốn vận tải Có m kho hàng (điểm phát) chứa loại hàng hoá, lượng hàng kho i n nơi tiêu thụ (điểm thu), nhu cầu nơi thu b j , cij chi phí vận chuyển đơn vị hàng từ điểm phát i đến điểm thu j Xác định lượng hàng vận chuyển xij từ điểm phát i tới điểm thu j cho tổng chi phí nhỏ nhu cầu điểm thu thoả mãn Dạng toán học toán là: ∑c x ij ij → ij n ∑x j =1 ij m ∑x i =1 ij = , i = 1, 2, , m = b j , j = 1, 2, , n xij ≥ m n ∑a = ∑b i =1 i j =1 j Nếu b j nguyên đa diện lồi xác định ràng buộc tốn có đỉnh nguyên Do ta dùng phương pháp đơn hình để giải tốn quy hoạch tuyến tính này, lời giải cuối nhận phương án ngun Ví dụ Xét tốn vận tải có điểm phát điểm thu với ma trận chi phí sau: 3 cij = , = (10, 25, 15), b j = (5, 15, 20, 10) 1 Đáp số: trị tối ưu hàm mục tiêu 115, phương án vận chuyển tối ưu là: x[1,3]=10, x[2,2]=15, x[2,3]=10, x[3,1]=5, x[3,4]=10 2.2 Bài toán phân việc I.3 Bùi Thế Tâm Quy hoạch rời rạc Có n đơn vị sản xuất cần sản xuất n loại sản phẩm, cij chi phí cho đơn vị i sản xuất sản phẩm j Hãy phân công đơn vị sản xuất sản phẩm để tổng chi phí nhỏ Dạng toán học toán là: n n ∑∑ c x n ∑x j =1 ij m ∑x i =1 ij → ij ij i =1 j=1 = 1, i = 1, 2, , n = 1, j = 1, 2, , n xij ∈ {0;1} Ví dụ có đơn vị sản xuất loại sản phẩm với ma trận chi phí sau: 100000 4000000 800000 550000 200000 3500000 750000 500000 400000 2000000 700000 400000 300000 5000000 600000 450000 Đáp số: trị tối ưu hàm mục tiêu 3200000 đồng, phương án tối ưu là: x[1,1]=x[2,4]=x[3,2]=x[4,3]=1 2.3 Bài tốn túi Có túi chứa nhiều trọng lượng b , có n đồ vật cần mang, đồ vật j nặng a j , giá trị c j Bài toán đặt cho đồ vật vào túi để tổng giá trị lớn Ký hiệu x j số đồ vật j đưa vào túi Dạng toán học toán là: n ∑c x → m ax j j j=1 n ∑a x j =1 j j ≤b x j ≥ 0, x j ∈ Z Ví dụ Có túi chứa nhiều 62 kg, có 10 đồ vật cần mang 30 x1 + 19 x2 + 13 x3 + 38 x4 + 20 x5 + x6 + x7 + 19 x8 + 10 x9 + 11x10 → max 15x1 + 12 x2 + x3 + 27 x4 + 15 x5 + x6 + x7 + 20 x8 + 12 x9 + 15 x10 ≤ 62 x j ∈ {0,1} , j = 1, 2, ,10 Đáp số: trị tối ưu hàm mục tiêu 95, phương án tối ưu (1,1,0,1,0,0,1,0,0,0) 2.4 Bài toán xếp hàng lên tầu Bùi Thế Tâm I.4 Quy hoạch rời rạc Một tầu chở hàng có trọng tải T thể tích K , tầu chở n loại hàng, hàng loại j có số lượng s j , có trọng lượng a j , thể tích b j giá trị sử dụng c j Bài toán đặt cần xác định số lượng hàng loại j cần xếp lên tàu x j để tổng giá trị hàng hoá tầu lớn Dạng toán học toán là: n ∑c x → m ax j j j=1 n ∑a x j =1 j j ≤T j ≤K n ∑b x j =1 j x j ∈ {0,1, 2, , s j } , j = 1, 2, , n Ở đây, khơng giảm tính tổng qt tốn ta giả sử hệ số T , K , a j , b j , c j (với j ) số dương 2.5 Bài tốn xếp hàng vào cơng ten nơ rỗng loại Có n loại hàng hố cần xếp lên công ten nơ rỗng với tải trọng công ten nơ T dung lượng K Hàng hố loại j có trọng lượng a j , khối lượng b j số lượng cần vận chuyển s j ( j = 1, 2, , n ) Hãy tìm cách xếp tất số hàng hố lên cơng ten nơ cho dùng cơng ten nơ nhất? Giả sử ta biết m số công ten nơ tối đa cần thiết để chở hết số hàng hoá Chẳng hạn, số m tìm theo cách: xếp dần đồ vật lên công ten nơ theo thứ tự tuỳ ý, tiếp kia, trọng lượng hay dung tích cơng ten nơ dùng hết Tiếp sử dụng cơng ten nơ tiếp theo… Gọi xij số đồ vật j chở công ten nơ i , yi biến nhận giá trị hay tuỳ theo có dùng cơng ten nơ i hay khơng Dạng tốn học toán là: m ∑y i i =1 → n ∑a x j ij j =1 n ∑b x j ij j =1 m ∑x i =1 ij ≤ Tyi , i = 1, 2, , m ≤ Kyi , i = 1, 2, , m = sj, xij ∈ {0,1, 2, j = 1, 2, , n , s j } , i = 1, 2, , m, j = 1, 2, , n yi ∈ {0,1} i = 1, 2, , m Bùi Thế Tâm I.5 Quy hoạch rời rạc Hai nhóm ràng buộc đầu biểu thị yêu cầu không chuyên chở tải trọng dung lượng công ten nơ sử dụng ( yi = ), cịn cơng ten nơ khơng sử dụng ( yi = ) cần phải rỗng Nhóm ràng buộc thứ ba biểu thị đồ vật cần xếp vào cơng ten nơ 2.6 Bài tốn người du lịch Cho đồ thị G = (V , E ), V tập n đỉnh, E tập n cạnh Gọi cij độ dài cung nối từ đỉnh i đến đỉnh j, cij ≠ c ji cii = ∞ với i Một chu trình Hamilton chu trình sơ cấp mà tương đương với việc xuất phát từ đỉnh cho trước, qua đỉnh khác lần trở lại đỉnh xuất phát Tổng khoảng cách cạnh hành trình độ dài hành trình Mục tiêu tốn người du lịch tìm chu trình Hamilton có độ dài ngắn Đặt xij = cung (i, j ) chọn trái lại Dạng toán học toán là: n n ∑∑ c x i =1 j=1 n ∑x j =1 ij m ∑x i =1 ij ij ij → = 1, i = 1, 2, , n = 1, j = 1, 2, , n xij ∈ {0;1} , i, j = 1, 2, , n ui − u j + nxij ≤ n − 1, ≤ i ≠ j ≤ n ui nhận giá trị nguyên hay thực Hai tập ràng buộc đầu biểu thị thành phố thăm lần Ràng buộc cuối đưa vào để hành trình tốn chứa chu trình Bài tốn người du lịch toán quen thuộc tiếng tối ưu rời rạc Tuy số phương án toán hữu hạn (bằng n ! tốn có n thành phố) với n cỡ hàng ngàn trở lên số phương án lớn, cách duyệt tồn khơng thể thực được, có trợ giúp máy tính cực mạnh Little J.D, Murty K.G, Sweeney D.W Karel C 1963 người sử dụng thành công phương pháp nhánh cận để giải toán người du lịch phương pháp với nhiều cải tiến khác công cụ chủ yếu để giải tốn đề 2.7 Bài tốn với chi phí cố định Xét tốn tối ưu có dạng sau: n f(x)= ∑ f j ( x j ) : x = ( x1 , x2 , , xn ) ∈ D j=1 D ⊂ R+n tập lồi đóng và: Bùi Thế Tâm Quy hoạch rời rạc I.6 d j + c j x j f j (x j ) = 0 x j > x j = ( j = 1, 2, , n) Giả thiết d j > với j = 1, 2, , n Các số d j thường hiểu chi phí cố định cần thiết để đưa phương thức sản xuất j vào hoạt động, khơng phụ thuộc vào cường độ sử dụng phương thức ( x j ) Giả sử biết p j cận biến ( x j ) , tức là: p j ≥ max {x j : x ∈ D} , j = 1, 2, , n Khi ta đưa tốn tốn tương đương với dạng: n ∑ (c x j j =1 j + d j y j ) → x ∈ D, ≤ x j ≤ p j y j , y j ∈ {0,1} , j = 1, 2, , n 2.8 Bài toán với ràng buộc dạng lựa chọn Cho hai hàm số g ( x) h( x) bị chặn trên tập hợp D Nếu ta đòi hỏi phải có g ( x) ≤ h( x) ≤ với x ∈ D , điều diễn đạt cách đưa thêm vào biến số nhận giá trị 0-1 Ký hiệu u g uh cận hàm g ( x) h( x) tập D ( g ( x) ≤ u g , h( x) ≤ uh , ∀x ∈ D ) Khi điều kiện thoả mãn khi: g ( x) ≤ u gδ h( x) ≤ u h (1 − δ ) δ ∈ 0,1 { } Ví dụ Điều kiện bù quy hoạch toàn phương n ∑x y j =1 j j = (với x j ≥ 0, y j ≥ 0, j = 1, 2, , n ) thay n cặp ràng buộc dạng lựa chọn: x j ≤ hay y j ≤ 0, j = 1, 2, , n (với x j ≥ 0, y j ≥ 0, j = 1, 2, , n ) Giả sử biết cận p j biến x j cận q j biến y j Khi cách đưa vào biến z j nhận giá trị 0-1, ta đưa n cặp ràng buộc dạng lựa chọn nói dạng: x j ≤ p j z j , y j ≤ q j (1 − z j ), z j ∈ {0,1} (với x j ≥ 0, y j ≥ 0, j = 1, 2, , n ) Ví dụ Khi định phương thức sản xuất sản phẩm ta thường gặp tình sau: không sản xuất sản phẩm j ( x j =0), chấp nhận sản xuất phải sản xuất với số lượng khơng d j ( x j ≥ d j ), với d j số lượng sản phẩm loại j tối thiểu cần sản xuất để bù lại chi phí cần bỏ đưa phương ... toán quy hoạch nguyên VI.3 Phương pháp nhánh cận giải toán người du lịch VI.6 Bài tập VI.19 Bùi Thế Tâm I.1 Quy hoạch rời rạc Chương BÀI TOÁN QUY HOẠCH RỜI RẠC ĐỊNH NGHĨA BÀI TOÁN QUY HOẠCH RỜI RẠC... iii Quy hoạch rời rạc MỤC LỤC Chương Bài toán quy hoạch rời rạc I.1 Định nghĩa toán I.1 Các toán thực tế dẫn đến toán quy hoạch rời rạc I.2 Chương Những khái niệm mở đầu II.1 Những khái niệm quy. .. phương pháp giải toán tối ưu lưới điểm nguyên hay tập rời rạc, gọi tắt toán quy hoạch rời rạc hay toán quy hoạch ngun Bài tốn quy hoạch rời rạc có dạng sau: Tìm cực đại hàm f ( x, y ) phụ thuộc