1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giải một lớp bài toán xác định vị trí thực thể sử dụng quy hoạch nguyên

69 12 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 1,02 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH NGUYỄN ĐÌNH KHƢƠNG GIẢI MỘT LỚP BÀI TỐN XÁC ĐỊNH VỊ TRÍ THỰC THỂ SỬ DỤNG QUY HOẠCH NGUYÊN LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGHỆ AN, NĂM 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH NGUYỄN ĐÌNH KHƢƠNG GIẢI MỘT LỚP BÀI TỐN XÁC ĐỊNH VỊ TRÍ THỰC THỂ SỬ DỤNG QUY HOẠCH NGUYÊN Chuyên ngành: Công nghệ Thông tin Mã số: 60480201 LUẬN VĂN THẠC SĨ NGHÀNH CÔNG NGHỆ THÔNG TIN Ngƣời hƣớng dẫn khoa học: TS Lê Hồng Trang NGHỆ AN, NĂM 2017 Luận văn tốt nghiệp LỜI CẢM ƠN Lời xin gửi lời cảm ơn đến Khoa Công nghệ Thông tin nhƣ quý thầy cô giáo khoa tạo điều kiện, hỗ trợ, giảng dạy giúp đỡ tơi q trình học tập cho đƣợc thực luận văn Tôi xin chân thành cảm ơn công lao to lớn TS Lê Hồng Trang – Giảng viên hƣớng dẫn tôi, ngƣời giới thiệu đến với đề tài giúp đạt đƣợc kết tốt Thầy hỗ trợ thành công thất bại Thầy ngƣời gần gũi, đông viên tập trung cao độ làm việc nghiêm túc không đƣợc nản chí trƣớc hồn cảnh Nếu khơng có giúp đỡ thầy tơi nghĩ luận văn khơng thể hồn thành Q trình viết luận văn Thạc sỹ vất vả, nhiều thời gian Tuy nhiên bên cạnh tơi ln có q thầy Giáo sƣ, Tiến sỹ, đồng nghiệp bạn bè, ln nhận đƣợc giúp đỡ, khuyến khích Với tất động viên giúp đỡ tơi xin trân trọng cảm ơn Điều quan trọng nhất, đến đƣợc với luận văn khơng có hy sinh, nhẫn nại hỗ trợ, giúp đỡ gia đình quan đơn vị nơi tơi cơng tác tơi hồn thành khóa học luận văn Vì qua tơi xin đƣợc gửi biết ơn họ Với tâm tình tri ân biết ơn sâu sắc đến q thầy cơ, gia đình, bạn bè đồng nghiệp Tơi xin gửi đến q thầy cơ, gia đình, bạn bè đồng nghiệp lời chúc sức khỏe, hạnh phúc thành công sống Nghệ An, ngày 10 tháng 03 năm 2017 Học viên Nguyễn Đình Khƣơng Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng đƣợc hƣớng dẫn khoa học TS Lê Hồng Trang Các nội dung nghiên cứu, kết đề tài trung thực chƣa đƣợc cơng bố dƣới hình thức trƣớc Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá đƣợc tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, luận văn sử dụng số nhận xét, đánh giá nhƣ số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung luận văn Trƣờng Đại học Vinh không liên quan đến vi phạm tác quyền, quyền gây trình thực (nếu có) Nghệ An, tháng 03 năm 2017 Học viên thực Nguyễn Đình Khƣơng Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC MỞ ĐẦU CHƢƠNG TỔNG QUAN VỀ BÀI TOÁN QUY HOẠCH NGUN TUYẾN TÍNH VÀ BÀI TỐN XÁC ĐỊNH VỊ TRÍ THỰC THỂ 1.1 Các kiến thức tảng quy hoạch nguyên tuyến tính 1.2 Bài tốn quy hoạch tuyến tính có biến nguyên 10 1.3 Bài tốn xác định vị trí thực thể (Facility Location) 14 CHƢƠNG MỘT SỐ PHƢƠNG PHÁP GIẢI BÀI TỐN QUY HOẠCH TUN TÍNH CĨ BIẾN NGUN 20 2.1 Giới thiệu 20 2.2 Phƣơng pháp nhánh cận (thuật toán Land – Doig) 20 2.3 Phƣơng pháp cắt lát (thuật toán Gomory) 29 2.4 Phƣơng pháp quy hoạch động 35 CHƢƠNG GIẢI LỚP BÀI TỐN XÁC ĐỊNH VỊ TRÍ THỰC THỂ SỬ DỤNG QUY HOẠCH NGUYÊN 48 3.1 Phát biểu toán 48 3.2 Mơ hình tốn 49 3.3 Mơ hình tốn học 51 3.4 Giải tốn ngơn ngữ lập trình Matlab 57 3.5 Thực nghiệm 58 KẾT LUẬN 65 TÀI LIỆU THAM KHẢO 67 Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu Quy hoạch nguyên (hay quy hoạch rời rạc, Integer programming-IP) hƣớng quan trọng quy hoạch tốn học Nó nghiên cứu lớp tốn quy hoạch thêm điều kiện biến nhận giá trị tập số nguyên Lớp tốn phố biến thực tế Nó thu hút quan tâm nhà khoa học nghiên cứu lĩnh vực: kinh tế, điều khiển, thiết kế, sinh học… Chính lĩnh vực phƣơng pháp liên tục tỏ hiệu nghiên cứu đối tƣợng chia nhỏ tùy ý, quy hoạch ngun cơng cụ chủ yếu nghiên cứu hiệu lĩnh vực Có thể nói quy hoạch nguyên bắt đầu khai sinh lịch sử từ năm 1958, cơng bố thuật tốn nối tiếng Gomory phƣơng pháp cắt Sau thời gian dài, phƣơng pháp cắt công cụ để giải toán quy hoạch nguyên Tƣơng ứng tên cụ thể cho trƣờng hợp quy hoạch nguyên quy hoạch nguyên hoàn toàn (pure integer programming) quy hoạch tuyến tính có biến ngun phận (mixed integer linear programming MILP) Lớp toán phố biến thực tế Chúng giải vấn đề việc xác định vị trí thực thể, ví dụ nhƣ nơi để xây dựng nhà kho để cung cấp số lƣợng lớn hàng cho siêu thị Bài toán Quy hoạch tuyến tính có biến ngun phần kiến thức phố biến Với mong muốn đƣợc khai thác sâu kiến thức mơn tối ƣu hóa nói chung quy hoạch tuyến tính nói riếng; mở rộng tầm hiểu biết thân tri thức toán học, việc nghiên cứu lý thuyết tốn quy hoạch tuyến tính có biến ngun là cần thiết Vì lý tơi chọn đề tài “giải lớp tốn xác định vị trí thực thể sử dụng quy hoạch nguyên” Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp Với lý muốn tìm hiểu, nghiên cứu lớp tốn quy hoạch tuyến tính có biến nguyên (Integer programming-IP) ứng dụng vào tốn xác định vị trí thực thể, đồng thời tìm hiểu phƣơng pháp dùng để giải toán quy hoạch tuyến tính có biến ngun mà cụ thể tốn xác định vị trí nhà kho để cung cấp hàng cho siêu thị, đƣợc đồng ý TS Lê Hồng Trang nên chọn thực luận văn giải lớp toán xác định vị trí thực thể sử dụng quy hoạch nguyên Mục tiêu nghiên cứu 2.1 Mục tiêu tổng quát Nghiên cứu cách có hệ thống tốn quy hoạch tuyến tính có biến ngun; áp dụng để giải lớp tốn xác định vị trí thực thể 2.2 Mục tiêu cụ thể Đề tài tập trung vào mục tiêu sau: (i) Nghiên cứu tổng quan tốn quy hoạch tuyến tính có biến nguyên (ii) Nghiên cứu lý thuyết xây dựng thuật tốn giải tốn quy hoạch tuyến tính có biến nguyên (iii) Nghiên cứu việc làm để cơng thức hóa giải tốn quy hoạch tuyến tính có biến ngun (iv) Nghiên cứu việc mơ hình hóa giải lớp tốn xác định vị trí thực thể; minh họa cụ thể cho tốn thiết vị trí nhà kho hệ thống siêu thị Đối tƣợng phạm vi nghiên cứu 3.1 Đối tƣợng nghiên cứu Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp (a) Nghiên cứu lý thuyết Nghiên cứu tài liệu quy hoạch nguyên toán quy hoạch nguyên thực tế; toán xác định vị trí thực thể (b) Nghiên cứu thực nghiệm Nghiên cứu ngơn ngữ lập trình Matlab cài đặt thuật tốn cho ví dụ ứng dụng thực tế toán quy hoạch nguyên 3.2 Phạm vi nghiên cứu Trong phạm vi luận văn này, tập trung nghiên cứu lý thuyết quy hoạch tuyến tính có biến ngun, cơng thức hóa thuật tốn giải toán, áp dụng cho toán xác định vị trí thực thể Nội dung nghiên cứu - Nghiên cứu lý thuyết quy hoạch tuyến tính có biến nguyên - Nghiên cứu thuật toán cho tốn đƣợc đề xuất - Áp dụng mơ hình quy hoạch tuyến tính có biến ngun cho tốn xác định vị trí thực thể; minh họa cho tốn thiết lập vị trí nhà kho cho hệ thống siêu thị - Sử dụng Matlab tiến hành cài đặt thuật tốn - Lập trình thuật tốn máy tính đánh giá kết Kết cấu luận văn Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp CHƢƠNG TỔNG QUAN VỀ BÀI TOÁN QUY HOẠCH NGUYÊN VÀ BÀI TỐN XÁC ĐỊNH VỊ TRÍ THỰC THỂ Trong chƣơng trình bày giới thiệu tổng quan khái niệm kiến thức quy hoạch tuyến tính có biến ngun; giới thiệu tốn quy hoạch tuyến tính có biến ngun; giới thiệu tốn xác định vị trí thực thể (Facility Location) 1.1 Các kiến thức tảng quy hoạch tuyến tính có biến ngun 1.1.1 Bài tốn quy hoạch tuyến tính tổng qt Bài tốn quy hoạch tuyến tính tổng quát: Tìm véc tơ x=(x1,x2,…,xn) n cho hàm f ( x)   c j x j  j 1  n a x  b , i  I i  j 1 ij j   n a x  b , i  I i  j 1 ij j n Với điều kiện:    aij x j  bi , i  I  j 1  x  0, j  J  j  x j  , j  J   x j  0, j  J 1.1 1.2  1.3 1.4  1.5 1.6  Với I1  I; I2  I; I3  I; I={1,…,m}; I  I2  I3 = I; Ii  Ik =; i ≠ k; i,k = 1,2,3 Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp J1  J; J2  J; J3  J; J={1,…,n}; J  J2  J3 = J; Ji  Jk =; i ≠ k; i,k = 1,2,3 bi ,cj ,aij số cho trƣớc Trong toán trên: - f đƣợc gọi hàm mục tiêu - Mỗi hệ thức (1.1), (1.2), (1.3), (1.4), (1.5), (1.6) gọi ràng buộc - Mỗi ràng buộc (1.1), (1.2), (1.3) gọi ràng buộc cƣỡng (hay bản) - Mỗi ràng buộc (1.4), (1.5), (1.6) gọi ràng buộc tự (hay ràng buộc dấu) + Mỗi véc tơ x=(x1,x2,…,xn) Rn thỏa mãn ràng buộc toán gọi phƣơng án Tập hợp tất phƣơng án (ký hiệu D) gọi miền ràng buộc hay miền chấp nhận đƣợc Phƣơng án làm cho hàm mục tiêu đạt cực tiểu cực đại đƣợc gọi phƣơng án tối ƣu hay lời giải cho toán cho + Giải tốn quy hoạch tuyến tính tìm phƣơng án tối ƣu tốn (có thể phƣơng án tối ƣu vô số phƣơng án tối ƣu) chứng tỏ tốn vơ nghiệm 1.1.2 Một số ký hiệu quy ƣớc a) Nếu A ma trận cỡ (m,n) Ai =(ai1, ai2,…, ain) vector dịng (ma trận dòng) thứ i (i=1, 2, …, m) A; Aj=(a1j, a2j,…, amj) vector cột (ma trận cột) thứ j (j=1,2,…,n) A b) At ma trận chuyển vị A c) Nếu A=(aij) B= (bij) hai ma trận kiểu bất đẳng thức ma trận A ≥ B đƣợc hiểu aij ≥ bij với i,j Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang Luận văn tốt nghiệp K  ((u  u ) i 1 i  (v  vi )2 )1/2 b) Giới hạn vị trí Bây liệt kê số ràng buộc thú vị mà đƣợc bổ sung vào vấn đề vị trí bản, bảo quản lồi Chúng tơi yêu cầu số vị trí xi nằm quy định tập lồi, ví dụ: đƣờng thẳng, khoảng cách, hình vng, hình elip Chúng ta hạn chế vị trí tƣơng đối điểm nhiều điểm khác, ví dụ cách giới hạn khoảng cách cặp điểm Chúng ta áp đặt ràng buộc vị trí tƣơng đối, ví dụ điểm phải nằm bên trái điểm khác Hộp giới hạn nhóm điểm hình chữ nhật nhỏ chứa điểm Chúng ta áp đặt giới hạn điểm x1, , xp (nói) nằm hộp bao quanh với chu vi không vƣợt Pmax, cách thêm ràng buộc: u  xi  v, i  1, , p, 21T (v  u)  Pmax u, v biến bổ sung c) Các vấn đề vị trí phi tuyến tính Nhìn chung, kết hợp chi phí với cung tăng phi tuyến tính chức chiều dài, nghĩa là, minimize  w h( x  x i j ij i j ) Trong h hàm tăng dần (trên R+) lồi, wij ≥ Chúng gọi vị trí phi tuyến vấn đề vị trí khơng tuyến tính Một ví dụ phổ biến sử dụng tiêu chuẩn Euclide, hàm h(z) = z2, nghĩa cực tiểu hóa Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang 53 Luận văn tốt nghiệp w i j ij xi  x j 2 Đây đƣợc gọi vị trí bậc hai, vấn đề vị trí bậc hai giải phân tích ràng buộc cân tuyến tính, đƣợc giải nhƣ QP (bài tốn vị trí bậc hai) ràng buộc cân tuyến tính bất bình đẳng Ví dụ: Một điểm tự Hãy xem xét trƣờng hợp có điểm x tự do, chúng tơi cực tiểu hóa tổng bình phƣơng khoảng cách Euclide đến điểm cố định x1, , xk, x  x1  x  x2   x  xk 2 Lấy dẫn xuất, thấy x tối ƣu đƣợc đƣa ( x1  x2   xk ) k nghĩa là, trung bình điểm cố định Một số khả thú vị khác 'deadzone' hàm h với deadzone 2γ chiều rộng, đƣợc xác định nhƣ  0 h( z )     z  z  z , 'bậc hai tuyến tính' hàm h, đƣợc xác định nhƣ  z  z h( z )    2 z - z   , 3.3.2 Mơ hình tốn học tốn xác định vị trí thực thể dạng có ràng buộc biến nguyên Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang 54 Luận văn tốt nghiệp Bây xây dựng mơ hình tốn học cho vấn đề Hãy xem i tập siêu thị (hoặc khách hàng) địa điểm Hãy xem j tập kho ứng cử viên (hoặc sở địa điểm) Mục đích để chọn vị trí j nên đƣợc sử dụng để xây dựng sở Do đó, vị trí định nghĩa biến nhị phân: 1, xj   0, j J j J (Nếu xác định vị trí sở j thuộc J làm ứng cử viên xj=1, khơng xj=0) Có chi phí liên quan đến xây dựng kho Chúng tơi biểu thị phí cố định fj Chúng xác định biến liên tục yij phần cung cấp nhận siêu thị i từ kho j Những số lƣợng tích cực, chúng tơi có ràng buộc: yij  0, i  I , j  J Chúng biểu thị cij chi phí vận chuyển từ kho ứng cử viên j vị trí siêu thị i Chi phí thƣờng tỉ lệ với dij khoảng cách sở khách hàng: cij   dij Các α không đổi chi phí cho dặm lái xe, điều chỉnh để kết hợp số trung bình chuyến xe tải giao hàng đƣợc dự kiến thực khoảng thời gian năm Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang 55 Luận văn tốt nghiệp Chúng mong muốn cực tiểu hóa tổng chi phí để mở vận hành sở Đây tổng chi phí sở khai mạc chi phí liên quan đến vận chuyển sở khách hàng: Tổng chi phí   f j x j   jJ jJ c y ij iI ij Tổng chi phí đo lƣờng cân chi phí xây dựng nhà kho tổng chi phí giao hàng khoảng thời gian năm Cuối cùng, cần thêm hai ràng buộc Thứ nhất, nhu cầu siêu thị phải đƣợc ứng nghiệm Đó là, tổng phần nhận đƣợc từ sở cho khách hàng phải 1: y jJ ij  1, i  I Thứ hai, chuyển hàng từ sở j sở có thực đƣợc xây dựng Vì vậy, chúng tơi có ràng buộc sau đây: yij  xij , i  I , j  J Nhƣ vậy, vấn đề vị trí sở đƣợc xác định mơ hình sau biến xj yij: n  f j x j    cij yij  jJ jJ iI  yij  1, i  I ,  jJ  y  x , i  I , j  J , Với điều kiện  ij ij  yij  0, i  I , j  J ,   xi  0,1 , j  J Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang 56 Luận văn tốt nghiệp 3.4 Giải toán ngơn ngữ lập trình Matlab Bài tốn đƣợc thực phần mềm cvx môi trƣờng Matlab, chạy máy tính tính laptop Del Intel Core i3 - 4030U, toán với giải pháp tối ƣu 3.4.1 Bài tốn xác định vị trí thực thể dạng đơn giản Xét tốn vấn đề vị trí với N điểm tự (nhà kho), M điểm cố định (siêu thị) A liên kết (tuyển đƣờng vận chuyển hàng) - Vấn đề vị trí với tọa độ điểm tự cực tiểu hóa tổng Euclide nghĩa độ dài liên kết: minimize  h( x  x i j i ) , j h(z) = z cvx_begin variable x(N+M,2) minimize ( sum(norms( A*x,2,2 ))) x(N+[1:M],:) == fixed; cvx_end - Vấn đề vị trí với tọa độ điểm tự cực tiểu hóa tổng bình phƣơng độ dài Euclide liên kết, nghĩa là: minimize  h( x  x i j i j ) , h(z) = z2 cvx_begin variable x(N+M,2) minimize ( sum(square_pos(norms( A*x,2,2 )))) x(N+[1:M],:) == fixed; cvx_end - Vấn đề vị trí với tọa độ điểm tự cực tiểu hóa tổng bình phƣơng độ dài Euclide liên kết, nghĩa là: Nguyễn Đình Khương – Lớp CNTTK23 – Khoa CNTT Trang 57 Luận văn tốt nghiệp minimize  h( x  x i j i j ) , h(z) = z4 cvx_begin variable x(N+M,2) minimize(sum(square_pos(square_pos(norms( A*x,2,2 ))))) x(N+[1:M],:) == fixed; cvx_end 3.4.2 Giải toán xác định vị trí thực thể dạng có ràng buộc biến ngun Nhƣ trình bày, tốn cho trƣớc tập địa điểm ứng viên để xây dựng nhà kho Mơ hình sử dụng tập biến nhị phân (0,1) để xác định vị trí có đƣợc chọn để xây dựng hay khơng Trong trƣờng hợp vị trí đƣợc chọn, ta dùng tập biến nhị phân khác để xác định nhà kho phục vụ cho siêu thị Mơ hình đƣợc lập trình sử dụng CVX nhƣ sau cvx_begin variable x(n) binary variable y(m,n) binary minimize (buildingCost*x + sum(sum(servingCost.*y))) subject to for i = 1:m sum(y(i,:)) == 1; for j = 1:n y(i,j)

Ngày đăng: 10/02/2021, 21:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w