Luận văn thạc sĩ bài toán quy hoạch phi tuyến có ràng buộc

62 1 0
Luận văn thạc sĩ bài toán quy hoạch phi tuyến có ràng buộc

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA TOÁN - CƠ - TIN HỌC Nguyễn Trường Giang BÀI TỐN QUY HOẠCH PHI TUYẾN CĨ RÀNG BUỘC LUẬN VĂN THẠC SĨ KHOA HỌC Chuyên ngành: Tốn - Giải tích Mã số: 60.46.01.02 Người hướng dẫn: PGS.TS Nguyễn Hữu Điển Hà Nội - 2014 z BẢNG KÝ HIỆU Ký hiệu Ý nghĩa DFP Davidon- Fletcher- Powell QHPT Quy hoạch phi tuyến Rn Không gian thực n chiều ∇ f (x) Gradient f x ∇2 f ( x ) Hessian f x o Vô bé ∆ Số gia 0( x, ε) Lân cận x với bán kính ε k.k Chuẩn vector AT Ma trận chuyển vị ma trận A z LỜI CẢM ƠN Để hoàn thành luận văn nhận giúp đỡ to lớn Thầy, Cơ giáo, gia đình bạn bè xung quanh Tơi xin bày tỏ lịng kính trọng biết ơn sâu sắc tới thầy giáo hướng dẫn PGS.TS Nguyễn Hữu Điển, Khoa Toán- Cơ- Tin học, Trường Đại học khoa học tự nhiên, ĐHQG Hà Nội Trong trình giảng dạy hướng dẫn ân cần động viên, giúp đỡ bảo tận tình cho tơi Tơi gửi lời cảm ơn tới thầy cô Khoa Tốn- Cơ- Tin học, Phịng sau đại học, Trường Đại học khoa học tự nhiên, ĐHQG Hà Nội dạy dỗ giúp đỡ nhiều suốt trình học tập nghiên cứu luận văn Đặc biệt thầy Seminar mơn Tốn giải tích có ý kiến đóng góp q báu giúp cho luận văn hoàn chỉnh Cuối xin gửi lời cảm ơn tới gia đình nơi sinh thành, ni nấng, giúp đỡ, động viên nhiều suốt thời gian qua Dù cố gắng luận văn tránh khỏi thiếu sót hạn chế Mọi ý kiến đóng góp tơi xin đón nhận với lịng biết ơn trân trọng sâu sắc Hà Nội, ngày 29 tháng 10 năm 2014 Học Viên Nguyễn Trường Giang z Mục lục LỜI MỞ ĐẦU Chương Một số kiến thức chuẩn bị 12 1.1 Một số khái niệm sở 12 1.2 Điều kiện tối ưu 16 1.2.1 Điều kiện cấp 18 1.2.2 Điều kiện cấp 23 Chương Phương pháp tuyến tính hóa 29 2.1 Tổng quan quy hoạch phi tuyến 29 2.1.1 Giới thiệu chung QHPT 29 2.1.2 Bài toán QHPT 30 2.1.3 Các vấn đề cần giải giải toán QHPT 31 2.2 Tuyến tính hóa ràng buộc 33 2.2.1 Bài toán hướng giải 33 2.2.2 Thuật toán siêu phẳng cắt Kelley 34 2.2.3 Sự hội tụ thuật toán 39 2.2.4 Ví dụ minh họa 39 2.2.5 Chương trình giải ví dụ thuật toán Kelley 43 2.3 Tuyến tính hóa mục tiêu 48 2.3.1 Bài toán hướng giải 48 2.3.2 Thuật toán Frank- Wolfe 48 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 2.3.3 Sự hội tụ thuật toán 51 2.3.4 Ví dụ minh họa 52 2.3.5 Chương trình giải ví dụ thuật tốn Frank- Wolfe 54 KẾT LUẬN 59 TÀI LIỆU THAM KHẢO 60 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 LỜI MỞ ĐẦU Tối ưu hóa lĩnh vực kinh điển tốn học, có ảnh hưởng đến hầu hết lĩnh vực khoa học- công nghệ kinh tế- xã hội Trong thực tế, việc tìm giải pháp tối ưu cho vấn đề chiếm vai trị quan trọng Phương án tối ưu phương án hợp lý nhất, tốt nhất, tiết kiệm chi phí, thời gian, tài nguyên, nguồn nhân lực mà lại cho tiệu cao Những năm gần nhiều toán thực tế giải phương pháp mơ hình hóa tốn học thành cơng Trong số mơ hình tốn học áp dụng có nhiều mơ hình tối ưu giải thơng qua tốn tối ưu kinh điển Bài toán tối ưu phát biểu sau: Cho D ∈ Rn , D 6= ∅ với Rn không gian vector hàm f : D → R tùy ý Tìm giá trị cực tiểu hàm f ( x ) x ∈ D nghĩa tốn tìm vector w thuộc vào tập D cho với giá trị x thuộc D f ( w ) ≤ f ( x ) Trong • f gọi hàm mục tiêu • D gọi tập ràng buộc • x ∈ D phương án chấp nhận • w ∈ D phương án tối ưu • f (w) giá trị tối ưu Trong trường hợp hàm mục tiêu tất ràng buộc tuyến tính, tốn tối ưu BTQHTT BTQHTT giải số phương pháp tối ưu quen biết phương pháp đơn hình, phương pháp đơn hình cải biên 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 phương pháp điểm BTQHTT sử dụng rộng rãi quy hoạch tài nguyên, quản lý sử dụng đất nhiều lĩnh vực quản lý kinh tế quản trị kinh doanh Trong trường hợp hàm mục tiêu số ràng buộc phi tuyến có BTQHPT Cụ thể, thực tế có nhiều vấn đề kinh tế hoạt động kinh doanh có mối liên hệ với khơng phải tuyến tính mà phi tuyến Sự tồn mối quan hệ không theo tỉ lệ doanh số đạt khơng theo tỷ lệ với giá bán (vì giá bán tăng doanh số giảm) Khi tập ràng buộc D Rn ta có tốn QHPT khơng ràng buộc Ngược lại, ta có tốn QHPT có ràng buộc Luận văn trình bày phần nhỏ lý thuyết tối ưu, tìm hiểu tốn QHPT có ràng buộc sau  f ( x ) → với x ∈ D = x ∈ Rn : gi ( x ) ≤ 0, i = 1, m; h j ( x ) = 0, j = 1, p , (1) f : D → R hàm tùy ý Như biết, có nhiều phương pháp giải lớp toán tối ưu phi tuyến riêng biệt , chưa có phương pháp tỏ hữu hiệu cho toán tối ưu phi tuyến Do vậy, điểm qua số phương pháp giải BTQHPT có ràng buộc để làm rõ ưu nhược điểm phương pháp chọn phương pháp phù hợp cho toán thực tế Đầu tiên, phương pháp hình học coi phương pháp đơn giản để tìm nghiệm tối ưu cho toán cực trị cỡ nhỏ với thuật toán sau Bước Vẽ miền chấp nhận D tốn (1) Nếu miền D rỗng kết luận tốn (1) vơ nghiệm Bước Vẽ mặt mức f ( x1 , , xn ) = α với α ∈ R Bước Giảm dẫn mức α (tăng dẫn mức α) để xác định mặt mức thấp hay xác lập tốn khơng giải hàm mục tiêu f giảm vô hạn trện D 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Bước Nếu toán giải tìm điểm thuộc D mà mặt mức thấp qua Điểm tìm nghiệm tối ưu tốn (1) tính giá trị hàm mục tiều f điểm vừa tìm ta có f Nhóm phương pháp với ý tưởng đưa tốn quy hoạch có ràng buộc tốn quy hoạch khơng ràng buộc, cách thay t hế hàm mục tiêu ban đầu f ( x ) hàm mục tiêu mở rộng F ( x, r ) chứa thơng số r có tính đến ràng buộc Giá trị hàm mục tiêu mở rộng phải trùng với giá trị hàm mục tiêu ban đầu ngồi miền ràng buộc giá trị hàm mục tiêu mở rộng khác với giá trị hàm mục tiêu ban đầu Khi x → w dẫn đến F (w, r ) → f (w) Với tập ràng buộc khác ta có hàm mục tiêu mở rộng F ( x, r ) chọn khác nhau, ta có phương pháp khác Phương pháp nhân tử Lagrange Phương pháp thường dùng để tìm cực trị hàm với ràng buộc đẳng thức hàm mục tiêu mở rộng xây dựng hàm Lagrange sau m L( x, r ) = f ( x ) + ∑ λ j g j ( x ), j =1 với λ j nhân tử Lagrange, j = 1, 2, , m Điều kiện cần để tồn cực trị địa phương L( x, r )  ∂L   = 0; với i = 1, n ∂xi   g ( x ) = 0; với j = 1, m j Như vậy, ta có (n + m) phương trình để xác định (n + m) ẩn Phương pháp có ưu điểm cho phép đưa tốn cực trị có điều kiện tốn cực trị khơng điều kiện, nhờ vận dụng nhiều phương pháp tìm cực trị khác Trường hợp ràng buộc đẳng thức đưa giải hệ phương trình tuyến tính tốn cỡ nhỏ phương pháp dùng có hiệu Tuy nhiên, muốn nhận biết nghiệm dừng max hay ta phải tiếp tục xét đạo hàm cấp hai L, phức tạp 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Phương pháp Carroll Hàm mục tiêu f ( x ) → min(max), ràng buộc gi ( x ) ≥ 0; i = 1, 2, , m Hàm mục tiêu mở rộng xây dựng m F ( x, r ) = f ( x ) ± rk wj ∑ gj (x) , j =1 • dấu ” + ” tìm f ( x ) • dấu ” − ” tìm max f ( x ) • rk nhân tử bước lặp thứ k • w j trọng số Phương pháp Fiacco Cormick hàm mục tiêu f ( x ) → min(max) với ràng buộc • gi ( x ) ≥ với i = 1, n • h j ( x ) = với j = 1, m Hàm mục tiêu mở rộng xây dựng có dạng n F ( x, r ) = f ( x ) ± r ∑ i =1 −1 ±r gi ( x ) m ∑ h j ( x ) j =1 Phương pháp chọn r0 F ( x, r ) → n i = gi ( x ) không gần biên ràng buộc Đặt p( x ) = ∑ Khi x (0) T −∇ f ( x0 ) p( x0 ) r0 = [∇ p( x0 )] Khi x0 gần biên ràng buộc s r0 = ∇ f ( x ) H −1 ∇ f ( x ) , ∇ p ( x ) H −1 ∇ p ( x ) H ma trận Hessian Phương pháp Pietrzykoski Hàm mục tiêu f ( x ) → min(max) với ràng buộc • gi ( x ) ≥ với i = 1.n, 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 • h j ( x ) = với j = 1, m Hàm mục tiêu mở rộng m n j =1 i =1 F ( x, r ) = r f ( x ) − ∑ h j ( x ) − ∑ wi gi ( x ) Trong • wi = gi ( x ) ≥ 0, • wi = gi ( x ) < Tiếp theo phương pháp Sai lệch linh hoạt Ý tưởng phương pháp mở rộng miền ràng buộc cách đưa hàm T ( x ) tổ hợp ràng buộc Như toán (1) đưa dạng • Tìm cực tiểu f ( x ) với x ∈ Rn • Thỏa mãn ràng buộc φ(k) − T ( x ) ≥ • Sai lệnh so với ràng buộc bước lặp thứ k    r +1  m + ( k ) ( k ) ( k ) ( k − )  φ = φ , r +1 ∑ x i − x c , i   φ (0) = ( m + ) , – d kích thước đơn hình ban đầu – xk (k) điểm thứ i đơn hình Rn – r = n − m số bậc tự f ( x ) – xc (k) trọng tâm đơn hình Rõ ràng ta ln có φ(0) ≥ φ(1) ≥ ≥ φ(k) ≥ dần đến điểm cực tiểu kích thước đơn hình dần đến φ(k) → tổ hợp ràng buộc " T (x) = m p i =1 i = m +1 ∑ hi ( x ) + ∑ u i gi ( x ) #1 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Đặt n o D4 = D3 ∩ x ∈ R2 : ∇ g2 ( x6 )( x − x6 ) + g2 ( x6 ) ≤ n o = D2 ∩ x ∈ R2 : x1 + x2 ≥ 4, 4375 Đặt lại giá trị k := k + = chuyển sang bước lặp k = Lời giải tốn ví dụ điểm (2, 1) T f = Thực tế, ta dừng bước lặp thứ thuật tốn tìm giá trị tối ưu 4, phải qua nhiều bước ta có điểm tối ưu xấp xỉ (2, 1) T (ta theo dõi bảng kết sau chạy thuật toán máy để rõ hơn) 2.2.5 Chương trình giải ví dụ thuật tốn Kelley Maple 16 công cụ hỗ trợ tốt q trình chạy kiểm thử thuật tốn dùng tìm hiểu, nghiên cứu khoa học Sau chương trình chạy ví dụ vừa giải Đầu vào: f ( x ) = f ( x1 , x2 ) = x1 + 2x2 với x∈D= n o x ∈ R2 : ( x1 − 3)2 + ( x2 − 2)2 − ≤ 0, − x1 + ( x2 − 2)2 + ≤ Đầu ra: Nghiệm tối ưu xấp xỉ toán giá trị tối ưu > restart; > with(linalg); with(LinearAlgebra); with(student); with(geometry); with(simplex); with(combinat); # Nhập hàm hai biến > f := proc (x, y) options operator, arrow; x+2*y end proc; > Digits := 4; # Điều kiện ràng buộc 43 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 > gi := array(1 2); gr := array(1 2); D := array(0 30); > for i to gr[i] := array(1 2) end do; > gi[1] := proc (x, y) options operator, arrow; (x-3)^2+(y-2)^2-9 end proc; > gi[2] := proc (x, y) options operator, arrow; -x+(y-2)^2+1 end proc; > D[0] := {gi[1](x, y) dhr2x := proc (b) local x, y, g; g := diff(gi[2](x, y), x); x := b; eval(g) end proc; > dhr1y := proc (c) local x, y, g; g := diff(gi[1](x, y), y); y := c; eval(g) end proc; > dhr2y := proc (d) local x, y, g; g := diff(gi[2](x, y), y); y := d; eval(g) end proc; # Buoc dau Chon diem (p:=3) > p := 3; ng := array(1 30); h := array(1 30); dk := array(1 30); Ik := array(1 30); for i to 30 ng[i] := array(1 2); h[i] := array(1 2) end do; > ng[1][1] := 2; ng[1][2] := 0; eval(ng[1]); ng[2][1] := 2; ng[2][2] := 4; eval(ng[2]); ng[3][1] := 6; ng[3][2] := 2; eval(ng[3]); 44 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 # xet diem x[1]=2,0 > v := array(1 2); > for i to v[1] := x-ng[i][1]; v[2] := y-ng[i][2]; gi[1](ng[i][1], ng[i][2]); gr[1][1] := dhr1x(ng[i][1]); gr[1][2] := dhr1y(ng[i][2]); h[i][1] := gr[1][1]*v[1]+gr[1][2]*v[2]+gi[1](ng[i][1], ng[i][2]); gi[2](ng[i][1], ng[i][2]); gr[2][1] := dhr2x(ng[i][1]); gr[2][2] := dhr2y(ng[i][2]); h[i][2] := gr[2][1]*v[1]+gr[2][2]*v[2]+gi[2](ng[i][1], ng[i][2]) end do; > D[1] := {h[1][1] ng[k+p][2] := y; > dk[k] := max(gi[1](ng[k+p][1], ng[k+p][2]), gi[2](ng[k+p][1], ng[k+p][2])); > unassign(’x’); unassign(’y’); # Dieu kien dk[k] khong thuoc D[0] tuong duong voi dk dc viet duoi day > Digits := 4; while dk[k] > 10^(-12) 45 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 minimize(f(x, y), D[k]); tntg := minimize(f(x, y), D[k]); assign(tntg); ng[k+p][1] := x; ng[k+p][2] := y; unassign(’x’); unassign(’y’); f(ng[k+p][1], ng[k+p][2]); dktg := max(gi[1](ng[k+p][1], ng[k+p][2]), gi[2](ng[k+p][1], ng[k+p][2])); if gi[1](ng[k+p][1], ng[k+p][2]) > then Ik[k] := {1}; gr[1][1] := dhr1x(ng[k+p][1]); gr[1][2] := dhr1y(ng[k+p][2]); v[1] := x-ng[k+p][1]; v[2] := y-ng[k+p][2]; htg := gr[1][1]*v[1]+gr[1][2]*v[2] +gi[1](ng[k+p][1], ng[k+p][2]); D[k+1]:={htg then Ik[k] := {2}; gr[2][1] := dhr2x(ng[k+p][1]); gr[2][2] := dhr2y(ng[k+p][2]); v[1] := x-ng[k+p][1]; v[2] := y-ng[k+p][2]; htg := gr[2][1]*v[1]+gr[2][2]*v[2]+ gi[2](ng[k+p][1], ng[k+p][2]); D[k+1]:={htg 0) (dk [k ] > 10(−10) ) 47 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 2.3 Tuyến tính hóa mục tiêu 2.3.1 Bài tốn hướng giải Xét toán qui hoạch lồi với ràng buộc tuyến tính µ = { f ( x ) : Ax ≤ b, x ≥ 0} , f ( x ) = f ( x1 , x2 , , xn ) hàm lồi, A = aij  m×n (2.7) , b ∈ Rm , x ∈ Rn vector biến cần tìm Ký hiệu D = { x ∈ Rn : Ax ≤ b, x ≥ 0} Ta giả thiết: Hàm mục tiêu f ( x ) khả vi liên tục Với a ∈ D hàm tuyến tính h∇ f ( a), x i bị chặn miền D (điều chắn xảy D đa diện lồi) Để giải toán ta dùng tới thuật tốn Frank- Wolfe, hướng giải xây dựng dãy điểm x1 , x2 , , x k , với ∀ x k ∈ D f ( x k ) giảm dần theo k f ( x k ) & µ = { f ( x ) : x ∈ D } 2.3.2 Thuật toán Frank- Wolfe Dựa hướng giải nêu phần ta thấy thuật tốn có hai điều kiện dừng ∇ f ( x k )( x ∗k − x k ) hướng dk Để phân tích bước tiến trình thuật toán, ta dựa sơ đồ khối sau đây: 48 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Sơ đồ khối thuật tốn Tìm x1∈Rn đạt min{l=x1+…+xn}, k=1 Tìm x*k đạt min{ f(xk)x: x∈ D} f(xk)(x*k – xk) Đ Dừng ≥0 S dk= x*k–xk =0 k:=k+1 Đ Dừng S Tìm t’ đạt min{φ(t)=f(xk+tdk)} Tìm tk đạt min{1,t’} xk+1=xk+tkdk Hình 2.2: Sơ đồ khối phương pháp Frank- Wolfe Các bước thuật toán gồm: Bước (Bước chuẩn bị) Tìm điểm chấp nhận ban đầu x1 ∈ D Có hai cách chọn: Cách bất phương trình tuyến tính nên ta tìm x1 giải tốn phụ P( x, x g ) x1 phương án cực biên (PACB) Cách tìm cách mị ngẫu nhiên x1 ∈ D, khơng thiết phải đỉnh D Khi x1 khơng PACB 49 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Bước (Bước tổng quát k = 1, 2, ) Giả sử bước lặp k, ta có điểm x1 ∈ D Tìm hướng giảm dk từ điểm x k Giải qui hoạch tuyến tính n o ∇ f ( x k )( x − x k ) : x ∈ D Bài toán tương đương với n o ∇ f ( x k ) x : x ∈ D , (2.8) theo giả thiết thứ hai tốn thì(2.8) có lời giải Tính độ dài bước tk > Giả sử x ∗k ∈ D lời giải (phương án tối ưu) (2.8) Có hai khả xảy a Trường hợp ∇ f ( x k )( x ∗k − x k ) ≥ Khi đó, ta có ∇ f ( x k )( x k − x k ) ≥ với x ∈ D Do f lồi nên f ( x ) − f ( x k ) ≥ ∇ f ( x k )( x − x k ) với x ∈ D Vì vậy, x k lời giải cần tìm tốn Dừng thuật toán b Trường hợp ∇ f ( x k )( x ∗k − x k ) < Khi ấy, dk = x ∗k − x k hướng giảm hàm f ( x ) x k Tìm số t0 đạt cực tiểu hàm ϕ(t) = f ( x k + tdk ) với t ≥ Cũng tính xấp xỉ t0 nhờ giải phương trình ϕ0 (t) = Sau đó, để làm độ dài bước, ta đặt tk = {1, t0 } Xác định xấp xỉ x k+1 Chọn điểm xấp xỉ x k+1 = x k + tk dk Tiếp tục trình giải nêu Nếu trình giải diễn vơ hạn ta có định lý hội tụ phát biểu sau 50 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 2.3.3 Sự hội tụ thuật toán Định lý 2.2 [10] Giả sử trình thuật tốn Frank- Wolfe diễn vơ hạn Khi ta có a Dãy  f ( x k ) giảm dần tiến tới giá trị cực tiểu µ tốn (2.7) b Với k ≤ f ( x k ) − µ ≤ ∇ f ( x k ) x k − x ∗k Như vậy, dừng bước lặp k nhận phương án xấp xỉ tối ưu x k với sai số (về giá trị hàm mục tiêu) không vượt ∇ f ( x k ) x k − x ∗k  Chứng minh Ta gọi M tập tất đỉnh D có mặt dãy x ∗k Dãy x1 , x2 , , x k , nằm bao lồi cảu x1 M Bao lồi tập hợp compac, nên dãy nói có điểm tụ x˜ f ( x1 ) > f ( x2 ) > > f ( x k ) > nên f ( x k ) → f ( x˜ ) Do tập hợp đỉnh D hữu hạn nên M hữu hạn Vì n o  dãy vô hạn x k phải tìm dãy xqk với xqk → x˜ q → +∞ n o cho tất đỉnh x ∗kq trùng Gọi đỉnh trùng x ∗ , ta có với λ cố định (0 < λ < 1) f ( x kq + λ( x ∗ − x kq )) ≥ f ( x kq +1 ) ≥ f ( x kq+1 ), từ qua giới hạn q → +∞ ta nhận f ( x˜ + λ( x ∗ − x˜ )) ≥ f ( x˜ ) Và điều với ∀λ ∈ (0, 1) nên lim λ ↓0+ f ( x˜ + λ( x ∗ − x˜ )) − f ( x˜ ) = f ( x˜ )( x ∗ − x˜ ) ≥ λ Mặt khác, theo cách xây dựng x ∗kq , ta có với x ∈ D ∇ f ( x kq )( x − x kq ) ≥ ∇ f ( x kq )( x ∗kq − x kq ), 51 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 qua giới hạn ta ∇ f ( x˜ )( x − x˜ ) ≥ ∇ f ( x˜ )( x ∗ − x˜ ) ≥ Kết hợp với tính lồi hàm f ( x ), ta có f ( x ) − f ( x˜ ) ≥ ∇ f ( x˜ )( x − x˜ ) ≥ 0, ∀ x ∈ D Như vậy, x˜ điểm cực tiểu hàm f ( x ) D, nghĩa f ( x˜ ) = µ = { f ( x ) : x ∈ D } ta lại có với x ∈ D f ( x ) − f ( x k ) ≥ ∇ f ( x k )( x − x k ) ≥ ∇ f ( x k )( x ∗k − x k ) Do đó, với x = x˜ f ( x k ) − µ ≤ ∇ f ( x k )( x k − x ∗k ) Định lý chứng minh đầy đủ 2.3.4 Ví dụ minh họa Tìm cực tiều hàm f ( x ) = x12 + 2x22 − 16x1 − 20x2 với điều kiện     −2x1 − x2 ≤ −2,       − x1 + 2x2 ≤ 8,    x1 + x2 ≤ 10,       − x1 + x2 ≤ −4,       x1 ≥ 0, x2 ≥ Lời giải Tính vector gradient hàm mục tiêu     ∂ f (x)   2x1 − 16   ∇ f ( x ) =  ∂x1  =   ∂ f (x) 4x2 − 20 ∂x2 52 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Để làm xấp xỉ ban đầu ta chọn điểm x1 = (1; 0) T (x1 nhận cách giải tốn tuyến tính l ( x ) = x1 + x2 với ràng buộc tuyến tính nêu trên), f ( x1 ) = −15 Bước lặp k=1 Tại điểm x1 vector gradient ∇ f ( x1 ) = (−14; −20) T Tìm d1 Để tìm hướng giảm d1 = d11 ; d12 T ta giải quy hoạch tuyến tính: −14( x1 − 1) − 20( x2 − 0) → hay − 0, 7x1 − x2 → min, với điều kiện cho Giải toán ta nhận x ∗1 = (4; 6) T , d1 = x ∗1 − x1 = (3; 6) T Tính t1 Xét tia x = x1 + td1 với t ≥ hay x1 = + 3t; x2 = 6t với t ≥ Để xác đinh số t0 , ta tìm cực tiểu hàm ϕ(t) = (1 + 3t)2 + 2(6t)2 − 16(1 + 3t) − 20(6t) = 81t2 − 162t − 15 Dễ dàng tính cực tiểu hàm cách giải phương trình ϕ0 (t) = ta nhận t0 = nghiệm, t1 = {1, t0 } = Tính x2 Điểm xấp xỉ tính theo cơng thức x2 = x1 + t1 d1 = (4; 6) T , f ( x2 ) = −56 Bước lặp k = Tính vector gradient x2 ∇ f ( x2 ) = (−8; 4) T Tìm d2 Để tìm hướng giảm d2 == d21 ; d22 T ta giải quy hoạch tuyến tính: −8( x1 − 4) + 4( x2 − 6) → hay − 2x1 + x2 → min, với điều kiện cho Giải toán ta nhận x ∗2 = (7; 3) T , d2 = x ∗2 − x2 = (3; −3) T 53 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 Tính t2 Xét tia x = x2 + td2 với t ≥ hay x2 = + 3t; x2 = − 3t với t ≥ Để xác đinh số t0 , ta tìm cực tiểu hàm ϕ(t) = (4 + 3t)2 + 2(6 − 3t)2 − 16(4 + 3t) − 20(6 − 3t) = 27t2 − 36t − 96 Dễ dàng tính cực tiểu hàm cách giải phương trình 1 ϕ0 (t) = ta nhận t0 = nghiệm, t2 = {1, t0 } = 3 Tính x3 Điểm xấp xỉ tính theo công thức x3 = x2 + t2 d2 = (6; 4) T , f ( x3 ) = −108 Bước lặp k = Tính vector gradient x3 ∇ f ( x3 ) = (−4; 4) T Tìm d3 Để tìm hướng giảm d3 == d31 ; d32 T ta giải quy hoạch tuyến tính: −4( x1 − 6) + 4( x2 − 4) → min( hay − x1 − x2 → min) với điều kiện cho Giải toán ta nhận x ∗3 = (6; 4) T , d3 = x ∗3 − x3 = (0; 0) T Điểm x3 = (6; 4) T nghiệm tối ưu tốn, từ x3 khơng có hướng, dọc theo hàm mục tiêu giảm Vậy f = f (6; 4) = −108 đạt điểm x ∗ = x3 = (6; 4) T 2.3.5 Chương trình giải ví dụ thuật tốn Frank- Wolfe Đầu vào Ví dụ phần Đầu Nghiệm cực tiểu giá trị cực tiểu nghiệm Chương trình viết maple 16 sau 54 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 > restart; > with(linalg); with(LinearAlgebra); with(student); with(geometry); with(simplex); with(combinat); # Nhập hàm hai biến > f := proc (x, y) options operator, arrow; x^2+2*y^2-16*x-20*y end proc; # Điều kiện ràng buộc > dkrb := {x >= 0, y >= 0, -2*x-y minimize(fbd(x, y), dkrb); > tnbd := minimize(fbd(x, y), dkrb); > assign(tnbd); #Tao mang luu tru nghiem > ng := array(1 30); g := array(1 30); ngtg := array(1 2); d := array(1 30); tk := array(1 30); > for i to 30 ng[i] := array(1 2); g[i] := array(1 2); d[i] := array(1 2) 55 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 end do; > k := 1; # Gan gia tri nghiem ban dau vaof nghiem[1] ung voi x^1 > ng[k][1] := x; > ng[k][2] := y; > unassign(’x’); unassign(’y’); # Tinh gradient cua gia tri ban dau > g[k][1] := dhrx(ng[k][1]); > g[k][2] := dhry(ng[k][2]); > eval(g[k]); > unassign(’x’); unassign(’y’); #Ham tich vo huong cua gradient > tvhg := proc (x, y) options operator, arrow; g[k][1]*(x-ng[k][1])+g[k][2]*(y-ng[k][2]) end proc; > eval(tvhg(x, y)); > minimize(tvhg(x, y), dkrb); > tntg := minimize(tvhg(x, y), dkrb); > assign(tntg); > ngtg[1] := x; > ngtg[2] := y; > unassign(’x’); unassign(’y’); # Dieu kien cho vong lap > dk := g[k][1]*(ngtg[1]-ng[k][1])+g[k][2]*(ngtg[2]-ng[k][2]); > Digits := 4; > if dk >= then printl("Bai toan co gia tri nho nhat:"); 56 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66 print(f(ng[k][1], ng[k][2])); printl("Tai diem: "); print(ng[k]) end if; > while dk < g[k][1] := dhrx(ng[k][1]); g[k][2] := dhry(ng[k][2]); tvhg := proc (x, y) options operator, arrow; g[k][1]*(x-ng[k][1])+g[k][2]*(y-ng[k][2]) end proc; minimize(tvhg(x, y), dkrb); tntg := minimize(tvhg(x, y), dkrb); assign(tntg); ngtg[1] := x; ngtg[2] := y; unassign(’x’); unassign(’y’); dk := g[k][1]*(ngtg[1]-ng[k][1])+g[k][2]*(ngtg[2]-ng[k][2]); d[k][1] := ngtg[1]-ng[k][1]; x := ng[k][1]+t*d[k][1]; d[k][2] := ngtg[2]-ng[k][2]; y := ng[k][2]+t*d[k][2]; if ‘and‘(d[k][1] = 0, d[k][2] = 0) then break end if; ‘ϕ‘ := proc (t) options operator, arrow; f(x, y) end proc; tkk := fsolve(diff(‘ϕ‘(t), t) = 0); if tkk >= then tk[k] := else tk[k] := tkk end if; tk[k]; ng[k+1][1] := ng[k][1]+tk[k]*d[k][1]; ng[k+1][2] := ng[k][2]+tk[k]*d[k][2]; f(ng[k+1][1], ng[k+1][2]); k := k+1; 57 37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99 z

Ngày đăng: 05/09/2023, 01:03