Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
1,02 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI TÔ THỊ HƯƠNG LAN THUẬT TOÁN GOMORY GIẢI BÀI TOÁN QUY HOẠCH NGUYÊN TUYẾN TÍNH VÀ ỨNG DỤNG TRONG PHÁO BINH LUẬN VĂN THẠC SĨ TOÁN HỌC HÀ NỘI - 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI TÔ THỊ HƯƠNG LAN THUẬT TOÁN GOMORY GIẢI BÀI TOÁN QUY HOẠCH NGUYÊN TUYẾN TÍNH VÀ ỨNG DỤNG TRONG PHÁO BINH Chuyên ngành: Toán ứng dụng Mã số: 60 46 01 12 Người hướng dẫn khoa học PGS TS NGUYỄN NĂNG TÂM HÀ NỘI - 2017 LỜI CẢM ƠN Lời luận văn xin bày tỏ lòng biết ơn chân thành sâu sắc tới PGS.TS Nguyễn Năng Tâm, thầy định hướng chọn đề tài tận tình hướng dẫn, giúp đỡ suốt trình làm hoàn thiện luận văn Tôi xin bày tỏ lòng biết ơn chân thành tới Phòng sau đại học, thầy cô giáo khoa Toán Trường Đại học sư phạm Hà Nội 2, thầy giáo giảng dạy chuyên ngành Toán ứng dụng giúp đỡ suốt trình học tập trường Nhân dịp xin gửi lời cảm ơn đến đồng nghiệp Bộ môn Toán Tin Khoa Khoa học Trường sĩ quan Pháo binh, nơi công tác; gia đình bạn bè tạo điều kiện giúp đỡ động viên suốt trình học tập hoàn thành luận văn Hà Nội, tháng năm 2017 Tác giả Tô Thị Hương Lan LỜI CAM ĐOAN Tôi xin cam đoan, bảo hướng dẫn PGS.TS Nguyễn Năng Tâm, luận văn chuyên ngành Toán ứng dụng với đề tài: “Thuật toán Gomory giải toán qui hoạch nguyên tuyến tính ứng dụng Pháo binh” hoàn thành nhận thức tìm hiểu thân tác giả Trong trình nghiên cứu thực luận văn, tác giả kế thừa kết nhà khoa học với trân trọng biết ơn! Hà Nội, tháng năm 2017 Tác giả Tô Thị Hương Lan Mục lục LỜI CẢM ƠN LỜI CAM ĐOAN MỞ ĐẦU DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Chương MỘT SỐ KIẾN THỨC CHUẨN BỊ 1.1 1.2 Một số vấn đề toán tối ưu tuyến tính 1.1.1 Bài toán tối ưu [3] 1.1.2 Bài toán qui hoạch nguyên tuyến tính 1.1.3 Điều kiện tối ưu tổng quát 11 Phương pháp đơn hình [5] 12 1.2.1 Thuật toán đơn hình dạng bảng 12 1.2.2 Thuật toán đơn hình dạng tọa độ 14 1.2.3 Phương pháp đơn hình đối ngẫu 17 Chương THUẬT TOÁN GOMORY GIẢI BÀI TOÁN QUY HOẠCH NGUYÊN TUYẾN TÍNH 23 2.1 Cơ sở lí thuyết thuật toán lát cắt 23 2.1.1 Cơ sở lý thuyết 23 2.1.2 Khái niệm lát cắt 27 2.1.3 Tư tưởng phương pháp cắt 30 2.2 2.3 Thuật toán Gomory 31 2.2.1 Thuật toán Gomory thứ 31 2.2.2 Thuật toán Gomory thứ hai 35 2.2.3 Thuật toán Gomory thứ ba 40 Định lí tồn nghiệm toán 47 2.3.1 Điều kiện để sử dụng thuật toán Gomory 47 2.3.2 Tính hữu hạn thuật toán Gomory 48 2.3.3 Cơ sở xây dựng lát cắt nguyên 51 Chương ỨNG DỤNG TRONG PHÁO BINH 3.1 3.2 3.3 52 Khái niệm tiêu hiệu bắn (CTHQB) 52 3.1.1 Khái niệm 52 3.1.2 Khái niệm mục tiêu (M) 53 Bài toán 56 3.2.1 Bài toán thực tế: 56 3.2.2 Thiết lập mô hình toán 57 Phương pháp giải toán đặt 57 3.3.1 Sử dụng thuật toán 57 3.3.2 Văn chương trình [7] 63 KẾT LUẬN 70 TÀI LIỆU THAM KHẢO 71 MỞ ĐẦU Lí chọn đề tài Bài toán tối ưu tuyến tính toán quan trọng lý thuyết tối ưu Đây mô hình toán học nhiều toán phổ biến thực tế, có hình thức toán học đơn giản dễ giải Mặt khác, lý thuyết, ta xấp xỉ với độ xác cao toán tối ưu phi tuyến dãy toán tối ưu tuyến tính Trong lí thuyết tối ưu ta gặp lớp toán mà đối tượng chia cắt nhỏ tùy ý, lớp toán tất (hoặc phận) biến nhận giá trị nguyên, toán qui hoạch nguyên Bài toán quy hoạch nguyên có nhiều ứng dụng thực tế quân sự, chẳng hạn toán dự tính số đạn trúng mục tiêu; số vọng gác để đảm bảo an ninh khu vực; toán tìm số chiến sĩ để phân công công việc, hay toán ba lô, Vì vậy, vấn đề đặt cần nghiên cứu lớp toán quy hoạch nguyên với phương pháp giải phù hợp để giải toán thực tế toán chuyên ngành Đối với toán qui hoạch nguyên tuyến tính, thuật toán giải toán qui hoạch tuyến tính tổng quát hầu hết sử dụng yêu cầu tính nguyên biến số Năm 1958, Gomory (nhà toán học người Mĩ) công bố thuật toán cắt tiếng để giải toán qui hoạch nguyên tuyến tính, mở đầu cho đời phát triển lí thuyết toán qui hoạch nguyên Lí thuyết tối ưu ứng dụng nhiều trong chuyên ngành huy Pháo binh, có nhiều toán tối ưu đưa toán qui hoạch nguyên tuyến tính, chẳng hạn: toán dự tính số đạn trúng mục tiêu; toán vận tải quân sự; toán đuổi bắt mục tiêu; thuật toán Gomory tỏ công cụ hữu hiệu việc xử lí toán Vì vậy, chọn đề tài nghiên cứu: “Thuật toán Gomory giải toán qui hoạch nguyên tuyến tính ứng dụng Pháo binh” Mục đích nghiên cứu Sử dụng thuật toán Gomory giải toán qui hoạch nguyên để tìm phương án tối ưu cho toán Nghiên cứu lớp toán tối ưu diệt mục tiêu pháo binh có yếu tố ngẫu nhiên Nhiệm vụ nghiên cứu Trình bày số kiến thức toán quy hoạch tuyến tính, toán quy hoạch nguyên; Lí thuyết tối ưu; phương pháp cắt; Cơ sở lý thuyết thuật toán Gomory để giải toán quy hoạch nguyên Nêu toán ứng dụng, từ mô hình hoá dạng toán học Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu: thuật toán Gomory để giải toán quy hoạch nguyên ứng dụng pháo binh Phạm vi nghiên cứu: Cơ sở lý thuyết thuật toán lát cắt Gomory để giải toán quy hoạch nguyên Phương pháp nghiên cứu Tìm hiểu tài liệu liên quan đến toán qui hoạch nguyên, toán tối ưu tuyến tính, thuật toán Gomory Phương pháp nghiên cứu lí thuyết, chủ yếu phương pháp suy luận toán học Tổng hợp kiến thức trình bày cách hệ thống Đóng góp đề tài Xem xét toán qui hoạch nguyên tuyến tính Pháo binh khía cạnh thực tế toán học Hình thành hướng tiếp cận giải toán đặt DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 57 Lập kế hoạch bắn để số đạn trung bình cần tiêu thụ 3.2.2 Thiết lập mô hình toán Gọi xij số viên đạn đội Ki bắn trúng mục tiêu Mj (i = 1, m, j = 1, n) Trong thực tế giá trị xij thường biến động ngẫu nhiên, xij số không âm nguyên Như vậy, từ mô hình toán tối ưu diệt mục tiêu nêu, có mô hình toán học toán quy hoạch tuyến tính nguyên m n aij xij → M in i=1 j=1 3.3 3.3.1 n j=1 aij xij m i=1 aij xij ≤ bi ; i = 1, 2, · · · , m = bi ; j = 1, 2, · · · , n xij ≥ 0, xij nguyên Phương pháp giải toán đặt Sử dụng thuật toán Ví dụ 3.2 Một trung đội pháo gồm đội K1 K2 lệnh bắn vào mục tiêu M1 , M2 , M3 Số đạn trung bình để đội Ki , (i = 1, 2) bắn trúng viên đạn vào mục tiêu Mj , (j = 1, 2, 3) lượng đạn dự trữ đội cho bảng: 58 Lập kế hoạch bắn để số đạn trung bình cần tiêu thụ Lời giải Gọi xk số viên đạn đội K1 , K2 bắn trúng mục tiêu M1 , M2 , M3 Trong thực tế giá trị xk thường biến động ngẫu nhiên Như vậy, từ mô hình toán tối ưu diệt mục tiêu nêu, có mô hình toán học toán quy hoạch tuyến tính nguyên Dạng toán học toán: Số đạn trung bình cần tiêu thụ: f (x) = 4x1 + 5x2 + 2x3 + 2x4 + 4x5 + 3x6 → Điều kiện 4x1 + 5x2 + 2x3 ≤ 30 2x4 + 4x5 + 3x6 ≤ 20 x1 + x4 = x2 + x5 = x3 + x6 = xk ≥ 0, xk ∈ Z, k = 1, 2, 3, 4, 5, Sử dụng phương pháp đơn hình [6] Thêm biến phụ toán trở thành: f (x) = 4x1 + 5x2 + 2x3 + 2x4 + 4x5 + 3x6 + M x9 + M x10 + M x11 → 59 Điều kiện 4x1 + 5x2 + 2x3 + x7 = 30 2x4 + 4x5 + 3x6 + x8 = 20 Với x9 , x10 , x11 biến giả Bảng Bảng x1 + x4 = x2 + x5 = x3 + x6 = xj ≥ 0, j = 1, 2, · · · , 60 Bảng Bảng Bảng 61 Phương án tối ưu toán là: (0, 1, 4, 4, 3, 0), Giá trị hàm mục tiêu fmin = 33 viên đạn Ví dụ 3.3 Một đơn vị có hai loại pháo K1 K2 bố trí bắn (M) cụm Hiệu lực đạn loại pháo Ki (i = 1; 2) CTHQB cho theo bảng: Hãy dự tính kế hoạch bố trí pháo loại để thu CTHQB cao nhất? Lời giải Dạng toán học toán: Gọi xj (j = 1, 2) pháo loại j bố trí Ta có hệ số CTHQB: f (x) = x1 + 2x2 → max 2x1 + 11x2 ≤ 38 Điều kiện x1 + x2 ≤ xj ≥ 0, xj ∈ Z, j = 1, Đưa toán dạng tắc giải toán bỏ qua điều kiện X nguyên ming(x) = −x1 − 2x2 2x1 + 11x2 + x3 = 38 Điều kiện x1 + x2 + x4 = xj ≥ 0, xj ∈ Z, j = 1, 62 Ta có bảng đơn hình: Trong phương án tối ưu biến sở không nguyên Ứng dụng thuật toán Gomory để tìm nghiệm nguyên toán Chọn biến sở x2 xây dựng lát cắt: Đưa vào biến x5 ≥ 0: x5 = − −2 − (−x3 ) − (−x4 ), viết ràng buộc vào cuối bảng: 63 Phương án tối ưu toán X = (5; 2) trị hàm mục tiêu fmax = Vậy nên sử dụng pháo loại K1 pháo loại K2 CTHQB lớn (M) 3.3.2 Văn chương trình [7] Để giải toán quy hoạch nguyên phần mềm GLPK (GNU Linear Programming Kit), trước hết phải xây dựng toán dựa cú pháp đơn giản: Tên file Vidu.mod - Điều kiện biến, nguyên ta biểu diễn sau: var x1>=0,integer; (biến x1 thực nguyên); x1>=a,=0,integer;var x2>=0,integer;var x3>=0,integer;var x4>=0,integer; minimize obj:4*x1+5*x2+2*x3+4*x4; s.t.c1:4*x1+5*x2= -inf (1; 0) + 3: >>>>> 3.300000000e+01 >= 3.300000000e+01 0.0% (1; 0) 65 + 3: mip = 3.300000000e+01 >= tree is empty 0.0% (0; 1) INTEGER OPTIMAL SOLUTION FOUND Time used: 0.0 secs Memory used: 0.1 Mb (106686 bytes) Display statement at line 10 x1.val = x2.val = x3.val = x4.val = x5.val = x6.val = Display statement at line 11 33 Model has been successfully processed >Exit code: Time: 0.246 Vậy phương án tối ưu X(0, 1, 4, 4, 3, 0); trị hàm mục tiêu fmin = 33 Văn chương trình Ví dụ 3.3 # sort example; var x1>=0,integer; var x2>=0,integer; maximize obj:x1+2*x2; s.t.c1:2*x1+11*x2>>> 9.000000000e+00 =0,integer; var x2>=0,integer;var x3>=0,integer; minimize obj:-3*x1+x2+2*x3; s.t.c1:2*x1+4*x2-x3=4; s.t.c3:x1-x2+x3=2; solve; display: x1,x2,x3; display: (-3*x1+x2+2*x3); end; >C:\Users\User\AppData\Local\Temp\Rar$EX56.800\gusek\ glpsol.exe cover clique gomory mir -m "VD3.4.mod" GLPSOL: GLPK LP/MIP Solver, v4.60 Parameter(s) specified in the command line: cover clique gomory mir -m VD3.4.mod Reading model section from VD3.4.mod VD3.4.mod:10: warning: final NL missing before end of file 10 lines were read Generating obj Generating c1 Generating c2 68 Generating c3 Model has been successfully generated GLPK Integer Optimizer, v4.60 rows, columns, 12 non-zeros integer variables, none of which are binary Preprocessing rows, columns, non-zeros integer variables, none of which are binary Scaling A: min|aij| = 1.000e+00 max|aij| = 4.000e+00 ratio = 4.000e+00 Problem data seem to be well scaled Constructing initial basis Size of triangular part is Solving LP relaxation GLPK Simplex Optimizer, v4.60 rows, columns, non-zeros * 0: obj = 4.000000000e+00 inf = 2.000e+00 (1) 1: obj = -1.000000000e+00 inf = 0.000e+00 (0) 3: obj = -8.000000000e+00 inf = 0.000e+00 (0) OPTIMAL LP SOLUTION FOUND Integer optimization begins Gomory’s cuts enabled MIR cuts enabled Cover cuts enabled Clique cuts enabled Constructing conflict graph No conflicts found + 3: mip = not found yet >= + 3: >>>>> -8.000000000e+00 >= -8.000000000e+00 0.0% (1; 0) + 3: mip = -8.000000000e+00 >= tree is empty 0.0% (0; 1) INTEGER OPTIMAL SOLUTION FOUND Time used: 0.0 secs Memory used: 0.1 Mb (104955 bytes) Display statement at line x1.val = x2.val = x3.val = Display statement at line -inf (1; 0) 69 -8 Model has been successfully processed >Exit code: Time: 0.246 70 KẾT LUẬN Quy hoạch nguyên lĩnh vực Tối ưu hóa, có nhiều ứng dụng thực tiễn quân Trong đề tài giải số vấn đề sau: Tìm hiểu toán quy hoạch nguyên tuyến tính, ứng dụng mô hình toán quy hoạch nguyên quân Trình bày phương pháp lát cắt, thuật toán Gomory giải toán quy hoạch nguyên tuyến tính Trong thực tế có nhiều hướng tiếp cận giải toán quy hoạch nguyên tuyến tính Hướng nghiên cứu tiếp tục tìm toán tối ưu xây dựng thuật toán, phần mềm giải toán tối ưu, đưa vào ứng dụng chuyên môn, nhằm nâng cao hiệu hoạt động thực tiễn hoạt động nghiên cứu khoa học 71 Tài liệu tham khảo [A] Tiếng Việt [1] Triệu Khuê (1985), Lí thuyết xác suất số ứng dụng pháo binh, Bộ tư lệnh Pháo binh [2] Bùi Thế Tâm (2008), Qui hoạch rời rạc, Nxb Đại học Sư phạm Hà Nội [3] Nguyễn Năng Tâm (2011), Bài giảng lí thuyết tối ưu, Hà Nội [4] Nguyễn Ngọc Thắng, Nguyễn Đình Hóa (2008), Qui hoạch tuyến tính, Nxb Đại học Quốc gia Hà Nội [5] Nguyễn Văn Thuyên (2014), Giáo trình Toán ứng dụng, Bộ tư lệnh Pháo binh [6] Phần mềm Bài toán qui hoạch tuyến tính (phương pháp đơn hình) QHTT.exe [7] Phần mềm GLPK (GNU Linear Programming Kit): gusek.exe [B] Tiếng Anh [8] Gomory R.E (1963), An algorithm for integer solutions to linear programs, McGraw-Hill Book Co [9] Gomory R.E(1960), An algorithm for the mixed integer problem, Rand Corp [10] GNU Linear Programming Kit (2010), Reference Manual ... Gomory giải toán qui hoạch nguyên tuyến tính ứng dụng Pháo binh Mục đích nghiên cứu Sử dụng thuật toán Gomory giải toán qui hoạch nguyên để tìm phương án tối ưu cho toán Nghiên cứu lớp toán tối...BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI TÔ THỊ HƯƠNG LAN THUẬT TOÁN GOMORY GIẢI BÀI TOÁN QUY HOẠCH NGUYÊN TUYẾN TÍNH VÀ ỨNG DỤNG TRONG PHÁO BINH Chuyên ngành: Toán ứng dụng Mã số:... toán giải toán qui hoạch tuyến tính tổng quát hầu hết sử dụng yêu cầu tính nguyên biến số Năm 1958, Gomory (nhà toán học người Mĩ) công bố thuật toán cắt tiếng để giải toán qui hoạch nguyên tuyến