PHƯƠNG PHÁP ELLIPSOID CẢI TIẾN VÀ ỨNG DỤNG GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH

5 5 0
PHƯƠNG PHÁP ELLIPSOID CẢI TIẾN VÀ ỨNG DỤNG GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH

Đang tải... (xem toàn văn)

Thông tin tài liệu

ISSN 1859 1531 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 9(94) 2015 99 PHƯƠNG PHÁP ELLIPSOID CẢI TIẾN VÀ ỨNG DỤNG GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH MODIFIED ELLIPSOID METHOD AND ITS APPLICATI[.]

ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 9(94).2015 99 PHƯƠNG PHÁP ELLIPSOID CẢI TIẾN VÀ ỨNG DỤNG GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH MODIFIED ELLIPSOID METHOD AND ITS APPLICATION TO LINEAR PROGRAMMING PROBLEMS Phạm Quý Mười1, Phan Thị Như Quỳnh2 Trường Đại học Sư phạm, Đại học Đà Nẵng; pqmuoi@ud.edu.vn Cao đẳng Cơng nghiệp Tuy Hịa, Phú n; phanthinhuquynh@tic.edu.vn Tóm tắt - Trong báo này, chúng tơi nghiên cứu phương pháp Ellipsoid phương pháp Ellipsoid cải tiến để tìm điểm thỏa mãn hệ bất phương trình tuyến tính, ứng dụng phương pháp vào tốn quy hoạch tuyến tính Đầu tiên, chúng tơi trình bày giải thuật Ellipsoid chứng minh hội tụ Sau phân tích hạn chế giải thuật này, đưa giải thuật Ellipsoid cải tiến chứng minh hội tụ giải thuật Sau đó, chúng tơi trình bày cách ứng dụng phương pháp vào giải toán tìm phương án chấp nhận phương án tối ưu chấp nhận toán quy hoạch tuyến tính Cuối cùng, số ví dụ cụ thể xem xét nhằm minh họa phương pháp Ellipsoid Các chương trình viết phần mềm Matlab trình bày chi tiết Abstract - In this paper, we study Ellipsoid method and modified Ellipsoid method in order to find a point which satisfies a system of linear inequalities and apply it to linear programming problems We first present Ellipsoid algorithm and prove its convergence After analyzing the shortcomings of the algorithm, we propose the new algorithm called the modified Ellipsoid algorithm and prove its convergence Then, we present how the methods can be applied to find feasible solutions and optimal feasible solutions of linear programming problems Finally, some particular examples are given to illustrate the modified Ellipsoid method The Matlab codes of modified Elliptisoid method as well as the Matlab codes for two numerical examples are also presented in detail Từ khóa - tốn quy hoạch tuyến tính; phương pháp Ellipsoid; phương pháp Ellipsoid cải tiến; phương án chấp nhận được; phương án tối ưu chấp nhận Key words - linear programming problem; Ellipsoid method; Modified Ellipsoid method; feasible solution; optimal feasible solution Đặt vấn đề Trong quy hoạch tuyến tính, người ta muốn tìm nghiệm x  n toán tối ưu tuyến tính: (1) Axb (c, x) n nhận được, phương trình (2) nhận từ định lý đối ngẫu, xem [1] Vì thế, trước hết trình bày phương pháp Ellipsoid để tìm điểm P chứng minh hội tụ Chú ý rằng, phương pháp Ellipsoid trình bày [1] hội tụ chứng minh P tập bị chặn đủ số chiều (xem định nghĩa phần sau).Trong báo giả sử tập P bị chặn khác rỗng Chúng ta nghiên cứu giải thuật Ellipsoid cải tiến điều kiện Kết báo đưa giải thuật Ellipsoid cải tiến (Giải thuật 2) chứng minh hội tụ giải thuật này, xem Định lí Các kết khác trình bày ứng dụng giải thuật vào tốn quy hoạch tuyến tính chương trình viết mơi trường Matlab Các ví dụ số cụ thể minh họa cho thực thi hiệu giải thuật Ellipsoid cải tiến đó, A  mn , c  n b  m ma trận vector cho trước Trong toán này, vector x  n thỏa mãn bất đẳng thức Ax  b gọi phương án chấp nhận nghiệm toán gọi phương án tối ưu chấp nhận Các tốn tìm phương án chấp nhận phương án tối ưu chấp nhận hai toán quan trọng nghiên cứu tốn quy hoạch tuyến tính nghiên cứu nhiều tác giả khác Đối với tốn kích thước bé (n  10), tốn tìm phương án chấp nhận giải thủ cơng (bằng tay) tốn tìm phương án tối ưu chấp nhận thường giải phương pháp đơn hình Những phương pháp tham khảo sách toán quy hoạch tuyến tính, ví dụ [1,2] Trong báo này, nghiên cứu phương pháp Ellipsoid áp dụng vào tìm phương án chấp nhận phương án tối ưu chấp nhận tốn (1) n m có giá trị lớn Ý tưởng báo sau: Bài tốn tìm phương án chấp nhận phương án tối ưu chấp nhận (1) quy việc tìm nghiệm tập P định nghĩa (2) P = {u  k : Bu  d} đó, B  l k d  l ma trận vector cho trước tương ứng Cho tốn tìm phương án tối ưu chấp Kết nghiên cứu Phần trình bày phương pháp Ellipsoid cho tốn (2) chứng minh hội tụ nó.Trước hết, ý Ellipsoid không gian k tập:  E ( z, D ) := x  k  : ( x − z ) D −1 ( x − z )  , T D ma trận đối xứng, xác định dương cấp k  k z  k gọi tâm ellipsoid Chúng ta cần khái niệm sau: Định nghĩa: Tập P  k gọi đủ số chiều tồn r  cho P chứa cầu S ( y* , r ) với tâm y* bán kính r 2.1 Ý tưởng phương pháp Ellipsoid Phạm Quý Mười, Phan Thị Như Quỳnh 100 Ý tưởng phương pháp Ellipsoid xây dựng dãy ellipsoid tích giảm dần chứa tập P cho dãy điểm tâm ellipsoid hội tụ điểm P Cụ thể sau: Thuật toán Ellipsoid xây dựng bước lặp thứ t, ellipsoid Et có tâm xt chứa tập lồi đa diện P Nếu xt  P thuật tốn kết thúc Nếu xt  P xt khơng thỏa mãn ràng buộc, tức có hàng b i B thành phần d i d cho biT xt  di Mọi x  P thỏa ràng buộc Bx  d nên biT x  biT xt Do P chứa nửa không gian K := x  Rk : biT x  biT xt  Vậy, xt  P P chứa Et  K Ta gọi Et  K nửa ellipsoid (chú ý siêu phẳng xác định nửa ellipsoid qua tâm xt Et) Tính chất hình học ellipsoid cho phép ta tìm ellipsoid Et +1 chứa nửa ellipsoid Et tích nhỏ hẳn Et Lặp lại trình ta thu dãy điểm {xt } (hữu hạn vô hạn) cho xt  P cho giá trị t đó, xt → x  P 2.2 Giải thuật Ellipsoid hội tụ Cách xây dựng dãy Ellipsoid Et mơ tả phần trình bày chi tiết Giải thuật đây: Đầu vào: Vòng lặp: Giải thuật Ma trận B vectơ d ; Điểm x0 r  cho hình cầuE0 = E ( x0 , r I ) thỏa mãn P  E0 t =0 ; WHILE xt  P Tìm hàng i cho: biT xt  di (bi hàng thứ i ma trận B ) Dt bi xt +1 = xt + , + k biT Dt bi k2  Dt bi biT Dt   Dt − , k + biT Dt bi  k −1  t = t + 1, Dt +1 = END WHILE Đầu xt Nhận xét 1: Chú ý phương pháp đơn hình cho tốn quy hoạch tuyến tính phải phương án cực biên Một phương án thường khó tìm, đặc biệt cho tốn kích thước lớn Ngược lại, phương pháp Ellipsoid cho phép tùy ý lựa chọn điểm khởi tạo Chỉ cần chọn r  đủ lớn, Giải thuật luôn cho kết Đây ưu phương pháp Ellipsoid sử P  Et với t Vì xt  P nên có ràng buộc bị vi phạm: biT(t ) xt  bi (t ) , với xt tâm Et Với x  P, ta có biT(t ) xt  bi (t )  biT(t ) x  Vậy P  Et  K t Gọi Et +1 ellipsoid E ( xt +1 , Dt +1 ) từ [1, Định lí 1] (trang 117) ta có Et  K t  Et +1 Do đó, P  Et +1 Vậy theo phương pháp quy nạp, ta có : P  Et với t Vì P tập đủ số chiều P  Et với t nên tồn y* r *  cho S ( y* , r * )  P  Et với t Theo [1, Định lí 1] ta có Vol ( Et ) −t 2( k +1) Vol ( Et +1 ) Vol ( Et ) −1  e 2( k +1) e (Vol ( A) “độ đo” tập A  n, tức Vol ( E0 ) độ dài, diện tích, thể tích,… với n = 1, 2,3, tương ứng) Do đó:  Vol ( S ( y* , r * ) )  Vol ( Et ) → 0, t tiến vô Điều dẫn đến mâu thuẫn Vì Giải thuật dừng lai sau hữu hạn bước Như hội tụ Giải thuật nhận P tập đủ số chiều Điều khơng xảy cho tốn tìm phương án tối ưu chấp nhận quy hoạch tuyến tính nhiều trường hợp, tập phương án tối ưu chấp nhận toán quy hoạch tuyến tính hữu hạn Trong phần nghiên cứu giải thuật Ellipsoid cải tiến để nhận nghiệm xấp xỉ P trường hợp P bị chặn khác rỗng 2.3 Giải thuật Ellipsoid cải tiến hội tụ Giải thuật Ellipsoid cải tiến trình bày ngơn ngữ giả lập trình Giải thuật sau đây: Đầu vào: Vòng lặp: Giải thuật Ma trận B vectơ d ; Điểm x0 r  cho hình cầuE0 = E ( x0 , r I ) thỏa mãn P  E0 t =0 ;   P = {x  k : Bx  d − } WHILE xt  P2 Tìm hàng i cho: biT xt  di − 2 (bi hàng thứ i ma trận B ) Dt bi xt +1 = xt + , + k biT Dt bi k2  Dt bi biT Dt  Dt − k + biT Dt bi k −1  t = t + 1, Dt +1 = Định lý Giả sử P tập bị chặn đủ số chiều Khi đó, Giải thuật dừng sau hữu hạn bước Chứng minh: Chứng minh định lí tương tự chứng minh [1, Định lí 1] (trang 117) Nếu giải thuật dừng lại sau hữu hạn bước định lí chứng minh Ta giả sử Giải thuật lặp vô hạn chứng minh điều đẫn đến mâu thuẫn Trước hết ta chứng minh phương pháp quy nạp P  Et với t Từ Giải thuật 1, ta có P  E0 Giả  Do :P  Kt := x  R k : biT(t ) x  biT(t ) xt Đầu  ,  END WHILE xt Kết báo đưa định lý sau: Định lý Giả sử P tập bị chặn khác rỗng ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 9(94).2015 2 x1 + x2  − x + x  −1  − x1  −3  − x2  −4  x − x  −2   x1    x2  Khi đó, Giải thuật dừng sau hữu hạn bước Hơn nữa, Giải thuật dừng bước thứ t = N ( ), → 0, d ( xN ( ) P) → d ( x, P) = inf‖ x − y‖ khoảng cách từ x đến P yP Chứng minh: Ta định nghĩa P = {x  k : Bx  d − } Vì P khác rỗng nên tồn x  P Chọn  đủ bé cho | By − Bx | với y  S ( x, ) Khi đó, ta có By  Bx − d − /  d − với y  S ( x, ) Do đó, S ( x, )  P2 Tức P2 tập đủ số chiều Dễ thấy rằng, Giải thuật Giải thuật với P thay P2 Vì P tập bị chặn khác rỗng, nên P2 tập bị chặn đủ số chiều Áp dụng Định lí 1, ta có Giải thuật dừng bước thứ t = N ( ) hữu hạn xN ( )  P2 Mặt khác, ta có: d ( xN ( ) , P)  d ( P2 , P) → chứng minh →  g ( y ) = bT y → max  T ( P) A y  c y   A  mn, c, x  n b, y  m  f ( x ) = cT x →  và( D ) Ax  b x   Bài tốn tìm phương án chấp nhận ( P )là tìm điểm x  n cho  A  Ax  b b  hay ( P1 )   x     x  0 In  Từ định lý đối ngẫu mạnh ( P ) có nghiệm tối ưu xkhi ( D ) có nghiệm tối ưu y điều xảy ( x, y ) thỏa mãn hệ bất đẳng thức sau :  −cT bT  0      A   x  b  0 − AT      −c     y    In  0 0    Im   Do đó, tốn tìm phương án chấp nhận ( P1 ) tốn tìm phương án tối ưu chấp nhận ( P2 ) dẫn đến tốn tìm nghiệm bất phương trình (2) Trong phần tiếp theo, trình bày kết số áp dụng Giải thuật cho ví dụ cụ thể Chúng ta chon = 10−10 Giải thuật viết ngơn ngữ lập trình Matlab Các mã chương trình Matlab cho Giải thuật ví dụ sau trình bày phần tiếp theo: Ví dụ : Xét tốn : Tìm ( x , x ) 2 x1 + 3x2 với điều kiện  c T x − bT y   Ax  b hay ( P2 )  T A y  c  x  0, y   ( x1 , x2 ) thỏa mãn : Bài tốn có nghiệm tối ưu (2,1) Giải thuật cho tốn tìm phương án chấp nhận phương án tối ưu ví dụ liệt kê Bảng 1&2 Chú ý rằng, giá trị làm tròn đến bốn chữ số thập phân sau dấu phảy Bảng Giải thuật với x0 = (0, 0) r = 10 cho Ví dụ tốn tìm phương án chấp nhận Vậy định lí Ứng dụng vào tốn quy hoạch tuyến tính Xét tốn quy hoạch tuyến tính( P ) tốn đối ngẫu ( D ): 101 t xt min( Axt − b) (0,0) (2.9814, 1.4907) (0.9155, 4.6835) (0.7056, 1.8449) (3.2403, 2.5560) (1.2704, 3.1902) -5 -0.4907 -1.7680 -1.7439 -0.2403 0.0802 Bảng cho thấy rằng, với vòng lặp, nhận phương án chấp nhận Trong trường hợp này, tập P1 = {x : Ax  b, x  0} đủ số chiều bị chặn Đo đó, kết số trường hợp phù hợp với kết lý thuyết Định lí Đối với tốn tìm phương án tối ưu, kết số trình bày Bảng Giải thuật dừng lại sau 3639 vòng lặp Chú ý rằng, trường hợp tập nghiệm tối ưu có điểm, tức giả thiết đủ số chiều không thỏa mãn Tuy vậy, giải thuật cho nghiệm xấp xỉ với độ xác cao sau hữu hạn bước Bảng Giải thuật với x0 = (0, 0) r = 10 cho Ví dụ tốn tìm phương án tối ưu chấp nhận t xt = ( x, y ) min( Bxt − d ) … 3637 3638 3639 x (0,0) (0.8944,0.447) (0.7161,0.1104) (1.5234,0.4967) … (2,1) (2,1) (2,1) -5 -3.1305 -3.4573 -1.4565 … -1.2079e-10 -1.3057e-10 -9.6286e-11 Ví dụ : n Xét tốn : Tìm x n −  xi với điều kiện i =1  xi  với i = 1,, n Phương án tối ưu chấp nhận toán x = (1, ,1) Áp dụng Giải thuật để tìm phương án tối ưu chấp nhận ví dụ liệt kê Bảng Ở Phạm Quý Mười, Phan Thị Như Quỳnh 102 chọn n = 15 Bảng Giải thuật với x0 = (−1, , −1) r = cho Ví dụ tốn tìm phương án chấp nhận xt t min( Axt − b) … 90 91 92 (-1,…,-1) -1 (-0.8125,…,-1) -1 … … (0.0905,…,-0.3590) -0.3590 (0.0905,…, -0.1715) -0.1715 (0.0905,…, 0.0043) 0.0043 Bảng cho thấy sau 92 vòng lặp, nhận phương án chấp nhận Trong trường hợp P1 = {x : Ax  b, x  0} đủ số chiều bị chặn Như Ví dụ 1, nghiệm số phương án chấp nhận Đối với tốn tìm phương án tối ưu, kết số trình bày Bảng Giải thuật dừng lại sau 81921 vòng lặp Giống Ví dụ 1, trường hợp tập nghiệm tối ưu có điểm, tức giả thiết đủ số chiều không thỏa mãn nghiệm số nghiệm xấp xỉ phương án tối ưu chấp nhận với độ xác gần tuyệt đối Bảng Giải thuật với x0 = (0, , 0) r = 10 cho Ví dụ tốn tìm phương án tối ưu chấp nhận t … 81919 81920 81921 xt = ( x, y ) x (0,…,0) (0,…,0) (0.0397,…,0.0397) (0.0399,…,0.0399) … (1,…,1) (1,…,1) (1,…,1) min( Bxt − d ) -1 -1 -1.0397 -1.0399 … -1.9933e-10 -1.0707e-10 -9.8824e-11 Chương trình Matlab Các kết nghiệm số phần nhận Giải thuật mã hóa phần mềm Matlab Phần đưa chương trình Matlab Giải thuật hai ví dụ trình bày phần trước Giải thuật hàm “ellipsoid_method” 4.1 Chương trình Matlab cho Giải thuật function [x0 i Ax0 Amin]… =ellipsoid_method(A,b,x0,R,Nmax) %Giải thuật [m n]=size(A); D0=R^2*eye(n,n); m_min=min(A*x0-b); Ax0=[x0]; Amin=[m_min]; for i=0:Nmax check=find(A*x0-b

Ngày đăng: 16/11/2022, 20:39

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

  • Đang cập nhật ...

Tài liệu liên quan