1. Trang chủ
  2. » Tất cả

Luận văn thạc sĩ toán học một số thuật toán giải số bài toán tối ưu phi tuyến

20 6 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

Nội dung

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC  NGUYỄN HỮU ĐẠT MỘT SỐ THUẬT TOÁN GIẢI SỐ BÀI TOÁN TỐI ƯU PHI TUYẾN LUẬN VĂN THẠC SĨ TOÁN HỌC THÁI NGUYÊN 2019 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌ[.]

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC  - NGUYỄN HỮU ĐẠT MỘT SỐ THUẬT TOÁN GIẢI SỐ BÀI TOÁN TỐI ƯU PHI TUYẾN LUẬN VĂN THẠC SĨ TOÁN HỌC THÁI NGUYÊN - 2019 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC  - NGUYỄN HỮU ĐẠT MỘT SỐ THUẬT TOÁN GIẢI SỐ BÀI TOÁN TỐI ƯU PHI TUYẾN Chuyên ngành: Toán ứng dụng Mã số : 46 01 12 LUẬN VĂN THẠC SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC TS Vũ Vinh Quang THÁI NGUYÊN - 2019 i Lời cảm ơn Trước hết, em xin bày tỏ lịng kính trọng lịng biết ơn sâu sắc tới TS Vũ Vinh Quang, người thầy tận tình hướng dẫn, bảo cung cấp tài liệu hữu ích để em hồn thành luận văn Xin cảm ơn lãnh đạo Trường Đại học Khoa học - Đại học Thái Nguyên tạo điều kiện giúp đỡ tơi mặt suốt q trình học tập thực luận văn Em xin bày tỏ lịng biết ơn tới thầy, giáo giảng dạy lớp K11C truyền đạt kiến thức phương pháp nghiên cứu khoa học suốt năm học vừa qua Xin chân thành cảm ơn anh chị em học viên cao học K11C bạn bè đồng nghiệp động viên khích lệ tơi q trình học tập, nghiên cứu làm luận văn Tôi xin bày tỏ lịng biết ơn sâu sắc đến gia đình, người thân, người ln động viên, khuyến khích giúp đỡ mặt để tơi hồn thành công việc nghiên cứu Thái Nguyên, tháng năm 2019 Tác giả luận văn Nguyễn Hữu Đạt ii Lời cam đoan Tôi xin cam đoan: Những nội dung luận văn thực hướng dẫn trực tiếp thầy giáo hướng dẫn TS Vũ Vinh Quang Mọi tham khảo dùng luận văn trích dẫn rõ ràng tác giả, tên cơng trình, thời gian, địa điểm cơng bố Tơi xin chịu trách nhiệm với lời cam đoan Thái Nguyên, tháng năm 2019 Tác giả luận văn Nguyễn Hữu Đạt iii Mục lục Lời cảm ơn i Lời cam đoan ii Bảng ký hiệu v Mở đầu 1 Một số kiến thức 1.1 Mơ hình tổng qt tốn tối ưu hóa 1.2 Phân loại toán tối ưu 1.3 Một số phương pháp giải tốn tuyến tính 1.3.1 Thuật tốn hình học 1.4 Mơ hình tốn quy hoạch lồi tổng quát 1.4.1 Khái niệm tập lồi, hàm lồi 1.4.2 Khái niệm Gradient đạo hàm hướng 1.4.3 Bài toán quy hoạch lồi tổng quát, điều kiện tối ưu 1.4.4 Cực tiểu hàm lồi biến 10 1.5 Phương pháp giải tốn quy hoạch tuyến tính tổng qt phần mềm MATLAB 15 Một số thuật toán giải số tốn tối ưu phi tuyến khơng ràng buộc 16 iv 2.1 Một số kiến thức 16 2.1.1 Định nghĩa 16 2.1.2 Điều kiện tối ưu 17 2.2 Các thuật toán sử dụng đạo hàm 18 2.2.1 Thuật toán Gradient 18 2.2.2 Thuật toán đường dốc 20 2.2.3 Thuật toán Newton 23 2.3 Các thuật tốn khơng sử dụng đạo hàm 26 2.3.1 Phương pháp tìm trực tiếp (Direct search) 26 2.3.2 Phương pháp Powell 27 2.3.3 Phương pháp Nelder Mead 28 Một số thuật toán giải số tốn tối ưu phi tuyến có ràng buộc 32 3.1 Một số kiến thức 32 3.1.1 Hàm Lagrange 32 3.1.2 Thiết lập điều kiện tối ưu Kuhn - Tucker 33 3.2 Một số thuật toán 35 3.2.1 Thuật toán Gradient 35 3.2.2 Phương pháp hàm phạt (Penalty function method) 38 Kết luận 52 Tài liệu tham khảo 53 v Bảng ký hiệu QHTT Quy hoạch tuyến tính; xi tọa độ thứ i x; xT vectơ hàng (chuyển vị x ); ||x|| = chuẩn Euclide x; ∂f (x) vi phân f x; ∇f (x) đạo hàm f x; f (x) đạo hàm f x Mở đầu Mơ hình tốn quy hoạch phi tuyến nói chung mơ hình quan trọng lớp tốn tối ưu hóa Mơ hình có nhiều ứng dụng tốn học vật lý, kinh tế thương mại Về mặt lý thuyết, có nhiều tài liệu trình bày thuật tốn lý thuyết giải mơ hình tốn mơ hình tổng qt Tuy nhiên việc nghiên cứu cài đặt chi tiết thuật tốn ứng dụng vào số mơ hình số tốn cụ thể học vật lý chưa nhiều người đề cập đến Nội dung luận văn nghiên cứu sở toán học thuật toán giải tốn quy hoạch phi tuyến tính khơng ràng buộc có ràng buộc, tìm hiểu chi tiết bước mơ tả thuật tốn, xây dựng sơ đồ khối cài đặt thuật tốn ngơn ngữ lập trình cụ thể Nội dung luận văn gồm ba chương, phần phụ lục cấu trúc sau: Chương Một số kiến thức Trình bày mơ hình tổng qt tốn tối ưu hóa, phân loại toán tối ưu, phương pháp biến đổi bản, số thuật toán giải toán tối ưu hàm lồi biến, giải toán quy hoạch tuyến tính MATLAB Các kết kiến thức quan trọng ứng dụng chương sau luận văn Chương Mơ hình tốn tối ưu hóa phi tuyến Trong chương này, trình bày số thuật toán giải số toán tối ưu phi tuyến không ràng buộc Cụ thể chương nêu mơ hình tổng qt, điều kiện tối ưu, thuật toán sử dụng đạo hàm thuật toán Gradient, thuật toán đường dốc nhất, thuật toán Newton, thuật toán Gradient liên hợp, thuật tốn khơng sử dụng đạo hàm thuật tốn tìm trực tiếp, thuật tốn Powell, thuật toán Nelder Mead Chương Một số thuật toán giải số tốn tối ưu phi tuyến có ràng buộc Nội dung chương tìm hiểu số thuật toán giải số toán tối ưu phi tuyến có ràng buộc khái niệm hàm Lagrange, phương pháp hàm phạt, thuật tốn tìm nghiệm xấp xỉ Các thuật tốn cài đặt mơi trường MATLAB version 7.0 3 Chương Một số kiến thức Nội dung chương trình bày mơ hình tổng qt tốn tối ưu hóa, phân loại toán tối ưu, phương pháp biến đổi bản, số thuật toán giải toán tối ưu hàm lồi biến, giải toán quy hoạch tuyến tính MATLAB Các kết kiến thức quan trọng ứng dụng chương sau luận văn Các kiến thức tham khảo tài liệu [1], [2], [4] 1.1 Mơ hình tổng qt tốn tối ưu hóa Tối ưu hóa lĩnh vực quan trọng tốn có ảnh hưởng đến hầu hết lĩnh vực khoa học, công nghệ, kinh tế xã hội Việc tìm giải pháp tối ưu cho tốn thực tế chiếm vai trị quan trọng việc tiến hành lập kế hoạch sản xuất hay thiết kế hệ thống điều khiển trình Nếu sử dụng kiến thức tảng toán học để giải toán cực trị, người ta đạt hiệu kinh tế cao Điều phù hợp với mục đích toán đặt thực tế Mơ hình tốn tối ưu tổng qt phát biểu sau: Cực đại hóa (cực tiểu hóa) hàm: f (X) → max/min Với điều kiện: gi (X) = bi , i ∈ J1 (1.1) gj (X) ≤ bj , j ∈ J2 (1.2) gk (X) ≥ bk , k ∈ J3 (1.3) x1 , x2 , , xn ≥ (1.4) Trong f (X) gọi hàm mục tiêu, điều kiện (1.1) gọi ràng buộc đẳng thức Các điều kiện (1.2), (1.3) gọi ràng buộc bất đẳng thức Các điều kiện (1.4) gọi ràng buộc dấu X = (x1 , x2 , , xn )T vectơ thuộc không gian Rn Tập vectơ X thỏa mãn hệ ràng buộc lập nên miền D gọi miền phương án (hay miền chấp nhận được), điểm X ∈ D gọi phương án Một phương án X ∗ ∈ D làm cho hàm mục tiêu f (X) đạt cực đại cực tiểu gọi phương án tối ưu 1.2 Phân loại tốn tối ưu Dựa mơ hình tổng quát, người ta thường phân loại lớp toán tối ưu sau: - Quy hoạch tuyến tính: Là toán mà hàm mục tiêu f (X) tất hàm ràng buộc gi (X), gj (X), gk (X) tuyến tính - Quy hoạch phi tuyến: Là toán hàm mục tiêu f (X) hàm ràng buộc gi (X), gj (X), gk (X) phi tuyến - Quy hoạch lồi: Là toán quy hoạch mà hàm mục tiêu f (X) lồi tập ràng buộc D lồi 5 - Quy hoạch lõm: Là toán quy hoạch mà hàm mục tiêu f (X) lõm tập ràng buộc D lõm - Quy hoạch rời rạc: Bài toán tối ưu gọi quy hoạch rời rạc miền ràng buộc D tập hợp rời rạc Trong trường hợp riêng biến nhận giá trị ngun ta có quy hoạch nguyên - Quy hoạch đa mục tiêu: Nếu miền ràng buộc ta xét đồng thời hàm mục tiêu khác Trong lĩnh vực kinh tế kỹ thuật quy hoạch phi tuyến, quy hoạch tuyến tính tốn thường gặp 1.3 1.3.1 Một số phương pháp giải toán tuyến tính Thuật tốn hình học Xét tốn: f (x1 , x2 ) = c1 x1 + c2 x2 → M ax; a11 x1 + a12 x2 ≤ b1 ; a21 x1 + a22 x2 ≤ b2 ; an1 x1 + an2 x2 ≤ bn ; x1 ≥ 0; x2 ≥ Nhận xét Vì ràng buộc tốn ln ln nửa mặt phẳng, miền phương án ln ln đa giác lồi (là giao nửa mặt phẳng) Xét đường thẳng f = m gọi đường mức Hiển nhiên đường mức chuyển động song song miền phương án điểm chạm cuối đường mức với miền luôn đỉnh đa giác (hoặc cạnh đa giác) Đấy phương án tối ưu cần tìm Xuất phát từ nhận xét trên, có thuật tốn hình học gồm bước sau: Thuật tốn: Bước 1: Vẽ miền phương án D đa giác lồi cách xác định miền giao nửa mặt phẳng hệ ràng buộc Bước : Xác định tọa độ đỉnh đa giác: Giả sử điểm A1 , A2 , , Ak Bước 3: Xác định phương án tối ưu fmax = max(f (A1 ), f (A2 ), , f (Ak )) Chú ý Trong trường hợp miền phương án miền kín tùy thuộc vào hướng di chuyển đường mức, xác định phương án tối ưu tốn 1.4 1.4.1 Mơ hình tốn quy hoạch lồi tổng qt Khái niệm tập lồi, hàm lồi a Tập lồi Định nghĩa: Tập C ⊂ Rn gọi tập lồi x, y ∈ C ⇒ λx + (1 − λ)y ∈ C, ∀λ ∈ [0; 1] Nghĩa x, y ∈ C đoạn thẳng [x, y] ∈ C b Hàm lồi Định nghĩa: Hàm số f (x) lồi (convex function) tập C với cặp điểm (x1 , x2 ) thuộc C số λ ∈ [0, 1], ta có: f [λx1 + (1 − λ)x2 ] ≤ λf (x1 ) + (1 − λ)f (x2 ) có nghĩa điểm x = λx1 + (1 − λ)x2 [x1 , x2 ] điểm đồ thị nằm M1 M2 Điểm A: x = λx1 + (1 − λ)x2 Điểm B: f (x) = λf (x1 ) + (1 − λ)f (x2 ) Điểm C: f (x) = f (λx1 + (1 − λ)x2 ) Một số điều kiện - Hàm f (x) lồi, hai điểm x1 , x2 thỏa mãn điều kiện f (x2 ) ≥ f (x1 ) + 5f (x1 ).(x2 − x1 ) - Hàm f (x) hàm lồi, ma trận Hesian H(x) = [∂ f (x)/∂x2 ∂x2 ] bán xác định dương Khi H(x) xác định dương hàm f (x) gọi hàm lồi chặt Cực trị hàm lồi Bất cực tiểu địa phương hàm lồi tập lồi cực tiểu hàm tập Ta chứng minh tính chất phản chứng: Giả thiết hàm f (x) có hai điểm cực tiểu x1 x2 Vì f (x) lồi nên: f (x2 ) − f (x1 ) ≥ 5f (x2 )(x2 − x1 ) Hay 5f (xs ).s ≤ Trong s = (x2 − x1 ) vectơ nối điểm x1 x2 Theo (*), hàm f (x) giảm di chuyển theo hướng s xuất phát từ điểm x1 Điều trái với giả thiết x1 cực tiểu Do f (x) có cực tiểu Như quy hoạch lồi giá trị tối ưu địa phương giá trị tối ưu toàn cục 1.4.2 Khái niệm Gradient đạo hàm hướng + Gradient f (x) vectơ có thành phần đạo hàm riêng ∂f (x)/∂x1  ∂f ∂f ∂f , , , 5f (x) = ∂x1 ∂x2 ∂xn T + Vectơ 5f (x0 ) vng góc với đường mức f (x) x0 , tốc độ hàm f (x) tăng nhanh theo hướng 5f (x0 ) Nếu theo hướng − f (x0 ) f (x) giảm nhanh + Đạo hàm theo hướng z hàm f (x) điểm x0 : fz (x0 ) = h5f (x0 ), zi = | f (x0 )|.|z|.cos(5f (x0 ), z) Đó hình chiếu vectơ 5f (x0 ) lên hướng z + Ma trận Hessian H(x) ma trận có thành phần Gradient cấp hai f (x)  ∂2f  ∂x12∂x1  ∂f  ∂x2 ∂x1 H(x) = ∇2 f (x) =    ∂ f ∂xn ∂x1 1.4.3 ∂2f ∂x1 ∂x2 ∂2f ∂x2 ∂x2 ∂ f ∂xn ∂x2 ∂2f ∂x1 ∂xn ∂2f ∂x2 ∂xn ∂2f ∂xn ∂xn        Bài toán quy hoạch lồi tổng quát, điều kiện tối ưu a Phát biểu tốn Tìm x cho hàm mục tiêu f (x) → Các ràng buộc: x ∈ C : gi (x) ≤ 0; i = 1, 2, , m 9 C tập lồi, f , gi hàm lồi C b Điều kiện tối ưu + Miền nghiệm chấp nhận được: D = {x ∈ C : gi (x) ≤ 0} : i = 1, 2, , m + Khái niệm điểm yên ngựa (saddle point) m P Ký hiệu hàm Lagrange L(x, λ) = f (x) + λi gi (x) = f (x) + λT g(x) i=1 Khi điểm yên ngựa hàm L(x, λ) điểm (x∗ , λ∗ ) với x∗ ∈ D; λ∗ ≥ cho: L(x, λ∗ ) ≤ L(x∗ , λ∗ ) ≤ L(x∗ , λ) Các thành phần λi vectơ λ = [λ1 , , λm ]T gọi nhân tử Lagrange Khi λ = λ∗ điểm (x∗ , λ∗ ) điểm cao L(x, λ) Khi x = x∗ điểm (x∗ , λ∗ ) điểm thấp L(x, λ) Phương pháp xác định điểm yên ngựa: Điểm (x∗ , λ∗ ) điểm yên ngựa hàm L(x∗ , λ∗ ) khi: +OL(x, λ) = +gi (x) ≤ 0; i = 1, 2, , m +λi gi (x) ≤ 0; i = 1, 2, , m + Điều kiện cần đủ tối ưu Định lí 1.1 Điểm x∗ tối ưu fz (x∗ ) = h5f (x∗ ), zi ≥ 0; ∀z ∈ D(x∗ ) Tức xuất phát từ x∗ theo hướng z mà f (x) tăng f (x) đạt giá trị x∗ Định lí 1.2 (Định lý Kuhn - Tucker, phát biểu năm 1951) Giả sử toán quy hoạch lồi thỏa mãn điều kiện Slater: ∃x0 ∈ C : gi (x0 ) ≤ 0; i = 1, 2, , m 10 Khi điều cần đủ để x∗ trở thành nghiệm tối ưu tồn vectơ m chiều, không âm λ∗ = [λ∗1 , λ∗2 , , λ∗m ]T cho cặp (x∗ , λ∗ ) điểm yên ngựa hàm Lagrange L(x, λ) Chú ý Điều kiện Slater không thỏa mãn khơng tồn điểm yên ngựa hàm L(x, λ) loại (x∗ , λ∗ ) Ví dụ Tìm f (x) = −x với ràng buộc g = x2 < Ta có x∗ = Hàm Lagrange L(x, λ) = −x + λ.x2 Xác định điểm dừng: ∂L = −1 + 2λ.x = ∂x Điều kiện Slater không thỏa mãn x = 0, khơng tồn λ hàm L(x, λ) khơng có điểm n ngựa loại (0, λ) 1.4.4 Cực tiểu hàm lồi biến Thuật tốn chia đơi Cho hàm số f (x) xác định đoạn [a, b] với điều kiện f (x) lồi [a, b] Cần xác định điểm xopt để hàm f (x) đạt Tư tưởng: Thu hẹp dần miền tìm kiếm để xác định xopt Bước 1: Chọn hai điểm x1 , x2 ∈ (a, b) Bước 2: Nếu f (x1 ) < f (x2 ) xopt ∈ [a, x2 ] Nếu f (x1 ) > f (x2 ) xopt ∈ [x1 , b] Nếu f (x1 ) = f (x2 ) xopt ∈ [x1 , x2 ] Thuật tốn chia đơi: Bước 1: Đặt L = (b − a) Bước 2: While L > ε 11 x1 = a + L4 , x2 = b − L f (x1 ) < f (x2 ) b := x2 f (x1 ) > f (x2 ) a := x1 f (x1 ) = f (x2 ) a := x1 , b := x2 L = b − a; Lặp lại L < ε Nhận xét + Thuật toán chắn hội tụ sau hữu hạn bước lặp, tốc độ hội tụ phụ thuộc vào việc chọn vị trí hai điểm x1 , x2 sau bước lặp + Phương pháp chia đơi dễ lập trình khơng tối ưu tính tốn việc chọn x1 , x2 tùy ý Thuật tốn mơ ngơn ngữ lập trình MATLAB function cd=chia_doi(a, b, epxilon) L=b-a; count = 0; while L > epxilon count=count + x1=a + L/4; x2=b - L/4; if f(x1) < f(x2) b = x2; elseif f(x1) > f(x2) a = x1; elseif f(x1) == f(x2) a = x1; b = x2; end; L= b - a; end; 12 cd = x1; Sau kết chạy thuật toán giải toán 54 f (x) = x2 + , x ∈ [−10, 10] x Hiển nhiên hàm f (x) hàm lồi đoạn [1, 10], cực tiểu đạt x=3 Kết chạy thuật tốn chia đơi cho bảng 2.1 Bảng 2.1: Nghiệm xấp xỉ tối ưu sau bước lặp Số bước lặp Nghiệm tối ưu Số bước lặp Nghiệm tối ưu 3.6738 35 2.9938 10 3.3165 40 2.9999 15 3.1148 45 2.9982 20 3.0113 50 3.0001 25 3.0275 55 3.0004 30 3.0003 60 3.0000 Nhận xét Thuật toán hội tụ tốt sau 60 bước lặp đạt đến nghiệm tối ưu Thuật toán mặt cắt vàng Phương pháp sử dụng tính chất dãy Fibonacci {Fn }  F1 = F2 = (n=3, 4, ) F = F +F n n−1 n−2 Dãy số Fibonacci có tính chất đặc biệt đáng ý là: Tỷ số hai số dãy tiến tới tỷ số vàng: Fn−1 lim = n→∞ Fn √ 5−1 + Tư tưởng phương pháp Đặt bk − ak = chia [ak , bk ] theo tỷ lệ: − p − 2(1 − p) = ⇔ p2 + p − = p 1−p 13 Phương trình p2 + p − = có nghiệm dương: p = √ −1+ ≈ 0, 61803 Hai số p (1-p)=0,38197 gọi số Fibonacci + Trong đoạn [ak , bk ] lấy hai điểm αk , βk theo tỷ lệ: βk − ak b k − αk = =p bk − ak bk − ak (*) Nếu chia [ak , bk ] thành hai đoạn thỏa mãn (*) phép lặp cần tính giá trị f(x) Do việc tìm giá trị tối ưu x∗ nhanh so với việc chia [ak , bk ] thành đoạn Các mặt cắt [αk , βk ] thỏa mãn (*) gọi mặt cắt vàng p số vàng Thuật toán lát cắt vàng + Chọn αk , βk theo tỷ lệ vàng (*) + Tính giá trị hàm f αk βk rút ngắn đoạn [ak , bk ] Nếu f (αk ) < f (βk ) lấy giá trị [ak+1 , bk+1 ] = [ak , bk ] Nếu f (αk ) > f (βk ) lấy giá trị [ak+1 , bk+1 ] = [ak , bk ] Nếu f (αk ) = f (βk ) lấy giá trị [ak+1 , bk+1 ] = [ak , bk ] Giá trị tối ưu x∗ đạt độ dài đoạn lại nhỏ sai số cho trước Nhận xét a/ Trong hai trường hợp ta có: bk+1 − ak+1 := p(bk − ak ); b/ Một hai điểm chia bước sau trùng với điểm chia bước trước Do thuật tốn cho phép giảm số phép tính Thuật tốn mặt cắt vàng mơ ngơn ngữ MATLAB function mc=mat_cat_vang_1(a, b, epxilon) L=b-a; p=(-1 + sqrt(5))/2; count=0; while L > epxilon ...ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC  - NGUYỄN HỮU ĐẠT MỘT SỐ THUẬT TOÁN GIẢI SỐ BÀI TOÁN TỐI ƯU PHI TUYẾN Chuyên ngành: Toán ứng dụng Mã số : 46 01 12 LUẬN VĂN THẠC SĨ TOÁN... tiếp, thuật tốn Powell, thuật toán Nelder Mead Chương Một số thuật toán giải số tốn tối ưu phi tuyến có ràng buộc Nội dung chương tìm hiểu số thuật toán giải số toán tối ưu phi tuyến có ràng buộc... luận văn Chương Mơ hình tốn tối ưu hóa phi tuyến Trong chương này, trình bày số thuật toán giải số toán tối ưu phi tuyến không ràng buộc Cụ thể chương nêu mơ hình tổng qt, điều kiện tối ưu, thuật

Ngày đăng: 24/02/2023, 22:22

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

TÀI LIỆU LIÊN QUAN

w