Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
722,45 KB
Nội dung
ĐẠ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 Lê Hồng Nguyên BÀI TOÁN QUY HOẠCH PHI TUYẾN KHÔNG RÀNG BUỘC LUẬN VĂN THẠC SĨ KHOA HỌC Chuyên ngành: Toá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 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 gửi lời cảm ơn tới thầy cô Khoa Toá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 cô Seminar môn Toán giải tích có ý kiến đóng góp quý báu giúp cho luận văn hoàn chỉnh Ngoài gửi lời cám ơn chân thành tới bạn bè, đồng nghiệp giúp đỡ nhiều, tạo điều kiện tốt cho có thời gian để hoàn thành luận văn Cuối xin gửi lời cảm ơn tới gia đình nơi sinh thành, nuôi 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 xin đón nhận với lòng biết ơn trân trọng sâu sắc Hà Nội, ngày 14 tháng 10 năm 2014 Học Viên Lê Hồng Nguyên 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 ε AT Chuẩn vector Ma trận chuyển vị ma trận A Mục lục Lời mở đầu Chương Một số kiến thức chuẩn bị 1.1 Một số khái niệm giải tích lồi 1.2 Một số khái niệm từ giải tích 11 1.3 Tốc độ hội tụ 14 1.4 Điều kiện tối ưu 19 Chương Phương pháp Davidon- Fletcher- Powell 23 2.1 Giới thiệu phương pháp 23 2.2 Nội dung phương pháp 26 2.3 Sự hội tụ phương pháp DFP 28 2.4 Ví dụ 36 2.5 Chương trình giải ví dụ thuật toán DFP 39 Chương Phương pháp Hooke- Jewes 44 3.1 Thuật toán 44 3.2 Sự hội tụ thuật toán Hooke- Jewes 47 3.3 Ví dụ 48 3.4 Chương trình giải ví dụ thuật toán Hooke- Jeeves 51 Kết luận 57 LỜI MỞ ĐẦU Như L.Euler viết: "Vì giới thiết lập cách hoàn hảo nhất, sản phẩm đấng sáng tạo tinh thông nhất, nên tìm thấy mà không mang theo tính chất cực đại hay cực tiểu đó" Vấn đề đặt là, trạng thái vật thể tự nhiên hoạt động tuân theo quy luật Như biết, thực tế toán quy hoạch xuất từ người biết lao động, biết suy nghĩ để tìm cách làm nhanh hiệu Tuy nhiên hành động thay đổi liên tục buộc người ta phải tìm cách thích ứng Và ngày nay, mô hình tối ưu hóa sử dụng nhiều lĩnh vực như: Quản lý kinh tế tài chính, nghiên cứu khoa học lĩnh vực kỹ thuật thừa hưởng từ thành với nguồn tài nguyên vô vô tận sở kỹ thuật đại Để giải vấn đề ta nghiên cứu toán quy hoạch phi tuyến không ràng buộc có dạng { f ( x ) : x ∈ Rn } , Rn không gian vector , f : Rn → R hàm phi tuyến cho trước gọi hàm mục tiêu Tập nguồn Rn ứng với toán tối ưu không ràng buộc Mục đích khóa luận nhằm tìm hiểu số phương pháp đặc trưng để giải toán quy hoạch phi tuyến không ràng buộc Như biết tìm kiếm theo tia (line search) hay gọi tìm kiếm chiều (one dimensional search) mấu chốt nhiều thuật toán để giải toán quy hoạch phi tuyến Nội dung chiến lược tìm theo tia sau : Xuất phát từ điểm x0 hướng d ∈ Rn cho trước, tìm khoảng ban đầu mà chứa điểm cực tiểu, sau dùng kỹ thuật chia nhỏ hay nội suy để thu hẹp dần khoảng chứa nghiệm độ dài khoảng nhỏ mức dung sai định trước Phương đơn giản để tìm khoảng ban đầu phương pháp tiến lùi (forwardbackward method) Ý tưởng phương pháp là: Cho trước điểm ban đầu độ dài bước ban đầu, ta thử tìm ba điểm ứng với ba giá trị mục tiêu dạng "cao-thấp-cao" Nếu theo chiều tiến (nghĩa điểm sau bên phải điểm trước) không đạt kết lùi lại (tức điểm sau bên trái điểm trước) Tiếp tục trình thế, ta nhận khoảng ban đầu mà chứa điểm cực tiểu cần tìm Thứ hai phương pháp khử liên tiếp với hai phương pháp quen thuộc để tìm cực tiểu hàm đơn mốt: Phương pháp Fibonaci phương pháp lát cắt vàng (golden section method) Ở phương pháp cho phép ta thu hẹp dần khoảng chứa điểm cực tiểu cách tính giá trị hàm điểm chọn khoảng này, nhiên phương pháp lát cắt vàng có ưu điểm hai điểm chia đoạn trùng với điểm chia cũ, bước lặp cần tính thêm giá trị hàm ứng với điểm chia mới, nhờ tiết kiệm thời gian tính toán Tiếp theo phương pháp nội suy, phương pháp dùng giá trị hàm cần tìm cực tiểu điểm định để xấp xỉ hàm đa thức: Tam thức bậc hai (phương pháp Powell) đa thức bậc ba (phương pháp Davidon), sau điểm cực tiểu hàm ban đầu thay điểm cực tiểu đa thức xấp xỉ mà tìm đơn giản Trên số phương pháp tìm cực tiểu hàm biến Chúng ta dùng phương pháp tìm cực tiểu biến để tìm cực tiểu dọc theo trục tọa độ hàm hai biến hàm nhiều biến Tuy nhiên phương pháp giới thiệu có hiệu trường hợp cực tiểu hàm Song thực tế tỏ hiệu Vì thế, người ta đề nhiều phương pháp khác cho phép khai thác nhiều thông tin dựa giá trị hàm nhận được, chúng chia thành hai nhóm là: Phương pháp tìm trực tiếp (chỉ dùng giá trị hàm) phương pháp gradient (sử dụng đạo hàm hàm) Một hai phương pháp tìm kiếm trực tiếp phương pháp Hooke- Jeeves Hooke- Jeeves đề năm 1961 Với nội dung : Xuất phát từ điểm sở tùy ý, việc tìm kiếm bao gồm dãy bước tìm theo tọa độ quanh điểm sở nhằm đạt tới điểm có giá trị hàm nhỏ (điểm tốt hơn) Nếu thành công chuyển sở tới điểm tốt vừa tìm tiếp tục di chuyển theo hướng đến điểm gọi điểm mẫu Tiến hành tìm theo tọa độ quanh điểm mẫu Nếu tìm điểm tốt tiếp tục dò tìm quanh điểm mẫu mới, không thành công quay trở lại điểm sở trước giảm độ dài bước dò tìm Thứ hai phương pháp Neldel- Mead (1965) gọi phương pháp tìm kiếm theo đơn hình biến thiên Neldel- Mead đề nghị cải tiến từ phương pháp đơn hình SpendleyHext- Himsworth để sử dụng cho đơn hình không Từ ý tưởng phương pháp Spendley- Hext- Himsworth so sánh giá trị hàm tất đỉnh đơn hình dịch chuyển đơn hình hướng điểm tối ưu nhờ thủ tục lặp Và phương pháp Neldel- Mead cụ thể đơn hình dịch chuyển nhờ ba thao tác bản: Phép phản xạ, phép dãn phép co Đây phương pháp tìm trực tiếp đáng tin cậy phương pháp tìm cực tiểu tự hiệu không gian có số chiều nhỏ Hai phương pháp đặc biệt thích hợp để tìm cực tiểu hàm có cấu trúc phức tạp, thường không khả vi khó tính đạo hàm Tuy nhiên phương pháp nói chung chậm hội tụ so với phương pháp dùng đạo hàm Cuối phương pháp sử dụng đạo hàm hàm Các phương pháp đòi hỏi sử dụng tới đạo hàm riêng bậc bậc hai hàm Khoảng năm 70 kỷ XX, phương pháp gradient nghiên cứu mạnh thu thành tựu đáng kể Nhiều công trình nghiên cứu công bố Có phương pháp thông dụng để tìm cực tiểu, đơn giản áp dụng cho nhiều lớp hàm rộng, phương pháp hướng dốc (Steepest Descent Method) với nội dung sau: Ta xây dựng dãy điểm x k hội tụ tới điểm z k → ∞ với đặc điểm giá trị hàm chúng giảm dần ∇ f (z) = Giả sử ta có điểm x k nằm lân cận điểm z, để giảm hàm mục tiêu ta dịch chuyển từ x k theo hướng dk tạo với vector gradient ∇ f (z) góc tù, với độ dài bước αk xác định Việc lựa chọn hướng dịch chuyển độ dài bước khác cho ta phương pháp gradient khác Và phương pháp ta chọn hướng dk = −∇ f ( x k ) với k Phương pháp gradient sử dụng xấp xỉ thô hàm cần tìm cực tiểu (nghĩa có số hạng tuyến tính khai triển f ( x ) thành chuỗi Taylor dùng để chọn hướng dịch chuyển) Trong đó, không giống phương pháp gradient thông thường, phương pháp Newton có hướng tìm riêng, gọi hướng Newton, dùng đến đạo hàm riêng cấp hai hàm f ( x ) đòi hỏi hàm f ( x ) hai lần khả vi liên tục hướng xác định sau dk = −[∇ f ( x k )]−1 ∇ f ( x k ) Công việc tính ma trận nghịch đảo [∇ f ( x k )]−1 bước công việc khó khăn Vì thế, phương pháp Newton sử dụng thực tiễn n > 1, phương pháp có tốc độ hội tụ bậc hai Bằng cách sử dụng công thức lặp thay đổi độ dài bước phương pháp tìm kiếm chiều theo hướng cải tiến phép lặp phương pháp Newton thành phương pháp Newton suy rộng Phương pháp có tốc độ hội tụ điểm hội tụ hàm nhanh so với phương pháp gradient, cụ thể xét kỹ phương pháp Davidon- Fletcher- Powell chương sau Và đặc biệt độ dài bước αk = ta có phương pháp Newton Cuối phương pháp gradient liên hợp Fletcher- Reeves tìm cực tiểu tự hàm toàn phương ( hàm lồi bậc hai )bằng phương pháp lặp Như vậy, phương pháp sử dụng đạo hàm có ưu điểm hội tụ nhanh, số biến lớn gặp khó khăn việc tính đạo hàm, mặt khác việc chuẩn bị toán để giải tốn nhiều thời gian Tóm lại phương pháp chung có hiệu để giải toán quy hoạch nói chung quy hoạch phi tuyến nói riêng Mỗi phương pháp có ưu, nhược điểm riêng Nên luận văn tìm hiểu sâu thuật toán, hội tụ ví dụ để làm rõ hai phương pháp: Phương pháp sử dụng giá trị hàm Hooke- Jeeves phương pháp sử dụng đạo hàm hàm DavidonFletcher-Powell thuộc lớp chung phương pháp Newton, việc giải toán tối ưu không ràng buộc Nội dung luận văn bao gồm vấn đề sau đây: • Tổng quan phương pháp tìm cực tiểu tự • Tóm tắt kiến thức liên quan • Trình bày cụ thể hai phương pháp Ví dụ minh họa chạy kiểm tra kết Maple Do thời gian thực khóa luận không nhiều, kiến thức hạn chế nên làm khóa luận không tránh khỏi hạn chế sai sót Tác giả mong nhận góp ý ý kiến phản biện quý thầy cô bạn đọc Xin chân thành cảm ơn! Hà Nội, ngày tháng năm 2014 Học viên Lê Hồng Nguyên Chương Một số kiến thức chuẩn bị 1.1 Một số khái niệm giải tích lồi Định nghĩa 1.1 [Đoạn thẳng][8] Tập tất điểm x = (1 − λ) a + λb với ≤ λ ≤ 1, a, b ∈ Rn gọi đoạn thẳng nối hai điểm a b Ký kiệu [ a, b] Định nghĩa 1.2 [Tập lồi][8] Tập D ⊂ Rn gọi tập lồi chứa trọn đoạn thẳng nối hai điểm thuộc Hay nói cách khác D tập lồi (1 − λ) a + λb ∈ D với a, b ∈ D, ≤ λ ≤ Ví dụ 1.1 Hình 1.1: Tập lồi :a, b, tập không lồi :c Các tính chất tập lồi • Tổng đại số hữu hạn tập lồi tập lồi • Giao họ tập lồi tập lồi Sơ đồ thuật toán dò tìm quanh điểm sở Khởi đầu Tọa độ thứ Thêm độ dài bước vào tọa độ xét Kiểm tra giá trị hàm giảm ? Đ S Bớt độ dài bước vào tọa độ xét Kiểm tra giá trị hàm giảm ? Giữ nguyên giá trị tọa độ S Xét tọa độ Đ Ghi giá trị tọa độ, giá trị hàm Kiểm tra tọa độ xét ? Đ Kết thúc Hình 3.1: Thuật toán dò tìm quanh điểm sở cách thêm vào x1 lượng độ dài bước h1 Tính giá trị f v + h1 e1 , e1 vector đơn vị theo hướng trục x1 Nếu f v + h1 e1 < f b v thay v + h1 e1 đặt f b = f (v) Ngược lại, tính giá trị hàm f v − h1 e1 f v − h1 e1 < f b v thay v − h1 e1 đặt f b = f (v) Nếu hai bước không làm giảm giá trị hàm điểm v, fb không thay đổi Tiếp theo, ta xét biến thiên hàm theo hướng trục x2 , cụ thể ta tính f v + h2 e2 , e2 vector đơn vị theo hướng trục x2 Khi tất n biến xét, đặt b2 = v Khi có hai khả xảy ra: 45 Khả thứ Nếu b2 = b1 , nghĩa việc dò tìm quanh điểm sở b1 không làm giảm giá trị hàm, ta tiếp tục dò tìm quanh điểm b1 với độ dài bước ngắn trước Thông thường, độ dài bước thường chọn giảm 2, hay 10 lần so với độ dài bước trước Khả thứ hai Nếu b2 = b1 , nghĩa giảm giá trị hàm, f b = f b2 , dời sở tới điểm b2 tiến hành dò tìm theo mẫu từ b2 theo thao tác dò tìm theo mẫu Sơ đồ thuật toán dò tìm quanh mẫu Khởi đầu Tọa độ thứ Thêm độ dài bước vào tọa độ xét Kiểm tra giá trị hàm giảm ? Đ S Bớt độ dài bước vào tọa độ xét Kiểm tra giá trị hàm giảm ? Đ Giữ nguyên giá trị tọa độ S Xét tọa độ Ghi giá trị tọa độ, giá trị hàm Kiểm tra tọa độ xét ? Đ Kết thúc Hình 3.2: Thuật toán dò tìm quanh mẫu Giai đoạn thứ hai: Dò tìm theo mẫu từ điểm b2 Dịch chuyển từ điểm sở b2 46 theo hướng b2 − b1 (hướng mẫu), theo hướng làm giảm giá trị hàm Vì thế, ta tính giá trị hàm điểm v = 2b2 − b1 , gọi điểm mẫu Sau đó, tiến hành dò tìm quanh điểm mẫu v theo cách mô tả giai đoạn thứ Nếu giá trị nhỏ thu trình dò tìm quanh điểm mẫu v nhỏ giá trị f b2 ta nhận điểm sở b3 với giá trị kỷ lục nhỏ f b = f b3 tiếp tục dò tìm theo mẫu với b2 thay cho b1 , b3 thay cho b2 Còn không tìm điểm cho giá trị hàm nhỏ f b2 dừng việc dò tìm theo mẫu từ điểm b2 tiến hành dò tìm quanh điểm sở cũ b2 , tức lấy b2 thay cho b1 theo cách mô tả giai đoạn thứ Cuối cùng, trình tìm kiếm dừng độ dài bước h = max {h1 , h2 , , hn } nhỏ mộ giá trị đủ nhỏ ε chọn trước 3.2 Sự hội tụ thuật toán Hooke- Jewes Định nghĩa 3.1 [7] z∗ gọi cực tiểu địa phương L(z∗ , ε) = {z ∈ Rn : f (z) < f (z∗ ) z − z∗ < ε} với độ đo Lebergue đầy đủ với ∀ε đủ nhỏ Nếu f liên tục z∗ z∗ cực tiểu địa phương f theo định nghĩa truyền thống Tuy nhiên ta dễ dàng thấy {zm } hội tụ cực tiểu địa phương Xét phản ví dụ đơn giản hàm x 2, ∀x ∈ Q f = −1, ∀ x ∈ /Q Rõ ràng z = điểm cực tiểu địa phương f , { gm } chứa n điểm hợp lý ngộ nhận z = cực tiểu địa phương Do đó, định nghĩa cực tiểu địa phương chỉnh sửa theo định nghĩa (3.2) 47 Định nghĩa 3.2 [7] Cực tiểu địa phương z∗ tập mở điểm mà L(z∗ , ε) không chứa tập mở không gian topo với ∀ε đủ nhỏ Mệnh đề 3.1 [7] Nếu {zm }m∈ M giới hạn dãy vô hạn {zm } lim inf(hm ) = lim sup( Nm ) = ∞, m∈ M m∈ M Nm số bước lặp tìm kiếm thuật toán Hooke- Jeeves 3.3 Ví dụ Tính cực tiểu hàm f ( x1 , x2 ) = 3x1 + 4x1 x2 + 5x2 Áp dụng theo thuật toán Hooke- Jeeves, trình tự giải toán sau Bước Chọn điểm sở ban đầu b1 = (4, 3) T , độ dài bước khởi điểm h = 1, số ε = 10−3 sở e1 = (1, 0) e2 = (0, 1) Thay tọa độ điểm sở vào hàm f ( x1 , x2 ) ta tính giá trị kỷ lục f b = f (b1 ) = 141 1.1 Dò tìm quanh điểm sở Đặt v = b1 Ta xét tọa độ x1 x2 tương ứng với sở e1 e2 • Xét tọa độ x1 Lần lượt tính v + he1 = (5, 3) T v − he1 = (3, 3)T sau thay vào hàm f ( x1 , x2 ) ta tính giá trị tương ứng f (v + he1 ) = 180 f (v − he1 ) = 108 lấy giá trị nhỏ giá trị (min f (v + he1 ), f (v − he1 ) = 108) Sau so sánh với giá trị kỷ lục f b, nhỏ lấy giá trị làm giá trị kỷ lục ngược lại xét tọa độ x2 (vì 108 < 141 nên đặt v := v − he1 giá trị kỷ lục f b = f b(v) = 108.) 48 • Xét tọa đọ x2 Tương tự như với xét tọa độ x1 Tính v + he2 = (3, 4)T v − he2 = (3, 2)T thay vào f (v + he2 ) = 155, f (v − he2 ) = 71 = 71 < f b = 108 nên đặt b2 = v − he2 = (3, 2) T Thấy b1 = b2 suy giá trị kỷ lục gán lại f b = f (b2 ) = 71 1.2.1 Dò tìm quanh mẫu xuất phát từ b2 = (3, 2) T Tính điểm mẫu theo công thức v = 2b2 − b1 = (2, 1) T f (v) = 25 Vì f (v) < f b nên đặt lại giá trị kỷ lục f b := f (v) = 25 Ta lại xét tọa độ x1 , x2 ứng với hai sở e1 , e2 • Xét tọa độ x1 Tính v + he1 = (3, 1) T , f (v + he1 ) = 44 v − he1 = (1, 1)T , f (v − he1 ) = 12 Thấy {44, 12} = 12 < f b = 25 nên đặt v := v − he1 = (1, 1) T giá trị kỷ lục f b := f (v) = 12 • Xét tạo độ x2 Tính v + he2 = (1, 2) T , f (v + he2 ) = 31 v − he2 = (1, 0)T , f (v − he2 ) = Vì {31, 3} = < f b = 12 nên đặt b3 = v − he2 = (1, 0) T b3 = b2 suy giá trị kỷ lục f b := f (b3 ) = Tiếp tục dò tìm quanh mẫu lần 1.2.2 Dò tìm theo mẫu với giá trị gán lại b1 := b2 = (3, 2) T , b2 := b3 = (1, 0) T có f b = Tính mẫu v = 2b2 − b1 = (−1, −2) T thay vào có f (v) = 31 > f b = nên giá trị f b giữ nguyên • Xét tọa độ x1 Ta tính v + he1 = (0, −2) T , f (v + he1 ) = 20 v − he1 = (−2, −2) T , f (v − he1 ) = 48 Ta thấy {20, 48} = 20 > f b = nên giá trị kỷ lục giữ nguyên • Xét tọa độ x2 Ta tính v + he2 = (−1, −1) T , f (v + he2 ) = 12 v − he2 = (−1, −3) T , f (v − he2 ) = 60 Ta thấy {12, 60} = 12 > f b = nên giá trị kỷ lục giữ nguyên • Dừng tìm kiếm theo mẫu từ b2 = (1, 0) T Đặt lại giá trị b1 := b2 = (1, 0)T thực lại (1.1) 49 1.3 Dò tìm quanh điểm sở b1 = (1, 0) T với giá trị f b = Đặt v = b1 Tương tự ta xét • Tọa độ x1 Tính v + he1 = (2, 0) T , f (v + he1 ) = 12 v − he1 = (0, 0)T , f (v − he1 ) = Vì {12, 0} = < f b = nên đặt v := v − he1 = (0, 0) T giá trị kỷ lục f b = f (v) = • Tọa độ x2 Tính v + he2 = (0, 1) T , f (v + he1 ) = v − he1 = (0, −1)T , f (v − he1 ) = Vì {5, 5} = > f b = nên v f b giữ nguyên • Đặt b2 := v = (0, 0) T = b1 giá trị kỷ lục f b = f (b2 ) = Dò tìm theo mẫu với b2 = (0, 0) T , b1 = (0, 0) T f b = Tính v = 2b2 − b1 = (−1, 0)T , f (v) = Do f (v) > f b nên giá trị kỷ lục giữ nguyên • Xét tạo độ x1 Tính v + he1 = (0, 0) T , f (v + he1 ) = v − he1 = (−2, 0)T , f (v − he1 ) = 12 Ta thấy {0, 12} = = f b nên giữ nguyên giá trị v f b • Xét tạo độ x2 Tính v + he2 = (−1, 1) T , f (v + he2 ) = v − he2 = (−1, −1)T , f (v − he2 ) = 12 Ta thấy {4, 12} = > f b = nên giữ nguyên giá trị v f b • Dừng tìm kiếm theo mẫu từ b2 = (0, 0) T quay lại bước dò tìm quanh điểm sở cũ b2 , ta đặt lại b1 := b2 = (0, 0) T (tao tác 1.1) Do không tìm điểm tốt nên tiếp tục dò tìm quanh điểm b1 = (0, 0)T với độ dài bước h giảm 10 lần so với (Bước 1) Bước Lặp lại dò tìm quanh điểm b1 độ dài bước h = ε dừng lại kết luận (0, 0) T điểm cực tiểu với f = f (0) = Chú ý để nhân kết thúc ta chọn h sau bước giảm 10 lần so với trước 50 3.4 Chương trình giải ví dụ thuật toán Hooke- Jeeves • Đầu vào: f ( x1 , x2 ) = 3x1 + 4x1 x2 + 5x2 • Đầu ra: h (độ dài bước), b1 (điểm sở), b2 , b3 , v (mẫu ), f b (giá trị kỷ lục) Chương trình ví dụ > restart; with(linalg); with(LinearAlgebra); with(student); with(geometry); with(simplex); with(combinat) f := proc (x, y) options operator, arrow; 3*x^2+4*x*y+5*y^2 end proc; # B1: Khoi tao gia tri ban dau b[1]:=(4 3), h=1 va so epxilon=10^-3 > b := array(1 20); v := array(1 20); gttk := array(1 2); vtk := array(1 2); vtk[1] := array(1 2); vtk[2] := array(1 2); > for i to 20 b[i] := array(1 2); v[i] := array(1 2) end do; > b[1][1] := 4; b[1][2] := 3; eval(b[1]); # vecto co so > e := array(1 2); e[1] := array(1 2); e[2] := array(1 2); e[1][1] := 1; e[1][2] := 0; eval(e[1]); e[2][1] := 0; e[2][2] := 1; eval(e[2]); # Gan gia tri cho buoc ban dau va gia tri dung thuat toan > h := 1; 51 epsilon := 10^(-3); # Tinh gia tri ky luc ban dau > fb := f(b[1][1], b[1][2]); # B2 Tim kiem quanh diem co so > v := b[1]; eval(v); # Thu tuc tinh gia tri tim cho gia tri nho nhat va vec to v moi > tk := proc (i) local vc, vt, gtc, gtt, vtg; global gttk, vtk; vc := array(1 2); vc := evalm(evalm(h*e[i])+v); gtc := f(vc[1], vc[2]); vt := array(1 2); vt := evalm(evalm(-h*e[i])+v); gtt := f(vt[1], vt[2]); if gtc while h >= epsilon printf("h="); lprint(h); tk(1); j := 1; 52 while gttk[1] < fb printf("Do tim quanh diem lan:"); v := eval(vtk[1]); fb := gttk[1]; tk(2); if gttk[2] < fb then b[2] := eval(vtk[2]); fb := gttk[2] else b[2] := v end if; printf("Gia tri diem co so: "); lprint(b[1][1], b[1][2]); printf("Gia tri ki luc fb= "); lprint(fb); printf("Do tim theo mau tu b2= "); lprint(b[2][1], b[2][2]); v := evalm(2*b[2]-b[1]); while f(v[1], v[2]) < fb printf("Diem mau "); lprint(v[1], v[2]); fb := f(v[1], v[2]); printf("Gia tri ky luc ung voi diem mau:= "); lprint(fb);tk(1); if gttk[1] < fb then v := eval(vtk[1]); fb := gttk[1]; b[3] := v; tk(2); if gttk[2] < fb then 53 v := eval(vtk[2]); fb := gttk[2]; b[3] := v end if; b[1] := b[2]; b[2] := b[3] end if; printf("Gia tri b[3]="); lprint(b[3][1], b[3][2]); printf("Gia tri ky luc moi ung voi b[3] la fb="); lprint(fb); v := evalm(2*b[2]-b[1]) end do; b[1] := b[2]; v := eval(b[1]); tk(1); j := j+1 end do; printf("Gia tri diem co so sau dung tim kiem: "); lprint(b[1][1], b[1][2]); printf("Gia tri ki luc sau dung tim kiem fb= lprint(fb); h := (1/10)*h end do; k b1 b2 f b ( b2 ) v f b(v) b3 f b ( b3 ) (2; 1) 25 (1; 0) (4; 3) (3; 2) 71 (0; 0) (0; 0) Bảng 3.1: Bảng kết với điểm ban đầu (4; 3) h = 54 "); Với giá trị sau h giảm xuống 0, 1, 0, 01 0, 001 giá trị cực tiểu hàm nghiệm tối ưu không thay đổi Ta thử chọn lại điểm ban đầu (10, 3), h = 0, Ta thấy có thay đổi bước lặp trở nên nhiều bảng kết k b1 b2 f b ( b2 ) v f b(v) b3 f b ( b3 ) (10; 3) (9, 5; 2, 5) 397 (9; 2) 335 (8, 5; 1, 5) 279 (8; 1, 5) (8; 1) 229 (7, 5; 0) 118, 75 (7; 0) (7; −0, 5) 134, 25 (7; −1) 124 (6, 5; −1, 5) 99 (6; −1, 5) (6; −2) 80 (6; −2, 5) 79, 25 (5, 5; −2) 66, 75 (5; −2) (5; −2) 55 (4, 5; −2) (4; −1, 5) 35, 25 (3, 5; −1, 5) (3, 5; −1, 5) (8; −0, 5) 209, 25 27 (3; −1, 5) (3; −1) 20 (2, 5; −1) (2, 5; −1) 13, 75 10 (2; −1) (2; −1) 11 (1, 5; −1) (1, 5; −0, 5) 12 (1; −0, 5) (1; −0, 5) 2, 25 13 (0, 5; −0, 5) (0, 5; 0) 0, 75 14 (0; 0) (0; 0) Bảng 3.2: Bảng kết với giá trị ban đầu (10; 3) h = 0, Bắt đầu từ dò tìm quanh điểm lần thứ giá trị v thỏa mãn mẫu để f (v) < f (b2 ) Do mà lại bước dò tìm quanh điểm sở Ta 55 thấy độ lặp thuật toán dò tìm phụ thuộc vào điểm ban đầu độ dài h mà ta biết cách chọn h điểm ban đầu lúc chọn tốt Vì vậy, ta giải toán dựa máy tính có số lượng lặp lớn 56 KẾT LUẬN Luận văn tìm hiểu nghiên cứu bao quát phương pháp giải toán tối ưu phi tuyến không ràng buộc với ưu nhược điểm nêu phần mở đầu Tiếp theo số kiến thức chuẩn bị giúp ích cho việc chứng minh giải thích số vấn đề liên quan đến hai thuật toán Davidon- Fletcher- Powell Hooke- Jeeves nêu chương Cuối phần nội dung, luận văn trình bày sơ đồ thuật toán, giải thích điều kiện dừng thuật toán ứng dụng công cụ lập trình Maple để giải số ví dụ cách nhanh chóng Tuy nhiên, luận văn dừng lại việc giải ví dụ f ( x ) hàm hai biến Do hướng phát triển luận văn giải toán nhiều biến tổng quát dùng công cụ lập trình mạnh Mặc dù cố gắng để hoàn thành luận văn tránh có thiếu sót, mong nhận góp ý chân thành quý thầy cô bạn đọc 57 Tài liệu tham khảo [1] Nguyễn Hữu Điển (2006), Một số vấn đề thuật toán, NXB Giáo dục [2] Nguyễn Nhật Lệ (2001), Tối ưu hóa ứng dụng, NXB Khoa học kỹ thuật [3] Nguyễn Đức Nghĩa - Vũ Văn Thiệu - Trịnh Anh Phúc (2012), Các phương pháp cực tiểu hóa ràng buộc, Bộ môn KHMT, Viện CNTT trường ĐHBK Hà Nội [4] Bùi Thế Tâm - Trần Vũ Thiệu, Các phương pháp tối ưu hóa, NXB Giao thông vận tải, (1998) [5] Trần Vũ Thiệu - Nguyễn Thị Thu Thủy (2011), Giáo Trinh tối ưu phi tuyến, NXB Đại học Quốc gia Hà Nội [6] Nguyễn Hải Thịnh (2006), Tối ưu hóa, NXB Bách khoa Hà Nội [7] C.J.Price, B.L.Robertson and M.Reale (2009), AMO-advanced Modeling and Optimization, Department of Mathermatics and Statistics, University of Canterbury, Private Bag 4800, Chrischurch, Newzeland [8] Danzig G.B and Thapa M.N, Linear programming - Theory and Extensions,Springer Verlag, New York Berlin, Heideiberg,(2003) [9] David G.Luenberger - Yingu Ye (2008), Linear and Nonlinear programming, Dept of Mgmt, Sience and Engineering Stanford University, Stanford, CA, USA 58 [10] Enrique Dell Castillo - Douglas C.montgomery - Daniel R Mc Carville (1996), Modified Desirability Function for multiple response optimization, University of Texes, Arizana state University Tenpe, AZ 85287 − 5906 [11] Mokhatar S.bazara - Hanif d.Sherali - C.M Shetty (2006), Nonlinear programming Theory and Algorithins, John Wiley and Suns, Inc [12] Wenya sun - Ya-xiang Yuan (2006),Optimization theory and methods , Springer Science Pusiness Media, LLC,23 street NewYork NY 10013, USA 59 [...]... – Nếu f (ct ) = 0 thì ta có nghiệm x = c1 – Nếu f ( at ) f (ct ) < 0 thì gắn: [ at+1 ; bt+1 ] Ngược lại ta gắn [ at+1 ; zz+1 ] = [ct ; bt ] → bước t + 1 1.4 Điều kiện tối ưu Với bài toán quy hoạch phi tuyến không ràng buộc đã được giới thiệu, ta có một số phát biểu về điều kiện tối ưu sau Định lý 1.6 [12] Vector z ∈ Rn được gọi là một điểm cực tiểu địa phương của một hàm f ( x ) khả vi trên Rn khi... pháp tựa Newton.Trong đó hướng tìm kiếm có dạng d j = − D j ∇ f (y) thay cho H −1 (y) ∇ f (y) trong phương pháp Newton Để cụ thể, ta xét bài toán QHPT không ràng buộc f ( x ) → min, x ∈ Rn , trong đó f(x) là hàm khả vi liên tục Hướng thường dùng để giải quy t bài toán vừa đặt ra là sử dụng các phương pháp lặp, từ giá trị ban đầu x0 rồi dịch chuyển dần về hướng giá trị tối ưu z bởi công thức lặp x j+1... là t tỉ lệ với e−α 15 C thì tốc độ hội tụ chậm hơn tuyến tính t ε ( t + 1) < q thì thuật toán có tốc độ hội tụ tuyến tính Điều kiện đủ 1.1 Nếu lim t→∞ ε (t ) • Nếu ε(t) = ε ( t + 1) < q nên ∃ N sao cho ∀t ≤ N: t→∞ ε (t ) Chứng minh Do lim ε ( t + 1) < q ⇒ ε (t ) ≥ ε ( N )qt− N ε(t) Định nghĩa 1.11 [11] Thuật toán tối ưu có tốc độ hội tụ nhanh hơn tuyến tính (super linearly convergent) Nếu ∀0 < q 0 tồn tại N : t→∞ ε(t) Ví dụ 1.6 Do lim ∀t ≤... trong các bước lặp của thuật toán tối ưu luôn duy trì một tập Xt sao cho: Xt X ∗ = ∅ Nếu X ∗ = ∅ thì Xt gọi là tập ứng viên (lozalizes) tại bước t Nhận xét 1.4 Ta có nhận xét sau: 1 Rõ ràng mục tiêu của các thuật toán tối ưu là sau một số bước lặp, lý tưởng nhất là ta có Xt ∈ X ∗ (lưu ý: theo định nghĩa thì tập ứng viên luôn khác ∅ nếu X ∗ = ∅) 2 Nếu không được như vậy thì thuật toán tối ưu phải đảm bảo:... 1.1 Nếu Cqt ≤ δ hay t ≥ ln lặp tỉ lệ thuân (tuyến tính) với số bít để mô tả độ chính xác của nghiệm (lưu ý: số 1 bít để mô tả độ chính xác của nghiệm là ln ) δ Nếu không tồn tại q, C như vậy, ta nói thuật toán tối ưu có tốc độ hội tụ chậm hơn tuyến tính Nhận xét 1.2 Ta có các nhận xét sau • Nói một cách đơn giản thì tốc độ hội tụ chỉ ra một số bước mà thuật toán tối ưu phải thực hiện để giảm được hàm... chuyển thành 0 • Nếu thuật toán có tốc độ hội tụ tuyến tính thì số bước để chuyển chữ số thứ n + 1 sau dấu phẩy của ε(t) thành 0 bằng số bước để chuyển chữ số thứ n sau dấu phẩy của ε(t) thành 0 • Nếu thuật toán có tốc độ hội tụ nhanh hơn tuyến tính thì số bước để chuyển chữ số thứ n + 1 sau dấu phẩy của ε(t) thành 0 ít hơn số bước chuyển chữ số thứ n của ε(t) thành 0 • Nếu thuật toán có tốc độ hội tụ bậc... Định nghĩa 1.10 [11] Thuật toán tối ưu có tốc độ hội tụ tuyến tính (linearly convergent) nếu ∃0 ≤ C < ∞, 0 < q < 1, ε(t) ≤ Cqt , 14 (1.1) nghĩa là sai số ε(t) giảm tương đương với một chuỗi cơ số nguyên nào đó và q được gọi là tỉ lệ hội tụ Từ định nghĩa ta có nhận xét C−1 C−1 thì ε(t) ≤ δ Tức là sau t = ln δ ln q δ ln q bước lặp ta có sai số ε(t) ≤ δ Như vậy nếu tốc độ hội tụ là tuyến tính thì số bước... khác rỗng, không có điểm chung có thể tách được bởi một siêu phẳng, nghĩa là tồn tại vector t ∈ Rn với t = 0 và một số α ∈ R sao cho ( a) thỏa mãn Chứng minh Ta có tập C − D là tập lồi và thỏa mãn không chứa 0 vì thế tồn tại t ∈ Rn \ {0} sao cho t( x − y) ≥ 0 với mọi x ∈ C và y ∈ D Khi đó, ( a) đúng với α = inf tx x ∈C Định lý 1.2 [Định lý tách 2][8] Hai tập lồi đóng C và D trong Rn khác rỗng, không cắt... lý 1.3 [Hàm lồi khả vi][10] a Một hàm thực một biến ϕ(t) khả vi trong một khoảng mở là lồi khi và chỉ khi đạo hàm của nó ϕ (t) là một hàm không giảm b Một hàm thực một biến ϕ(t) hai lần khả vi trong một khoảng mở là lồi khi và chỉ khi đạo hàm cấp hai của nó ϕ (t) không âm trên toàn bộ khoảng mở này Định lý 1.4 [10] Cho một tập lồi C ⊂ Rn và một hàm f : Rn → R khả vi trên C a Hàm f lồi trên C khi và ... cứu toán quy hoạch phi tuyến không ràng buộc có dạng { f ( x ) : x ∈ Rn } , Rn không gian vector , f : Rn → R hàm phi tuyến cho trước gọi hàm mục tiêu Tập nguồn Rn ứng với toán tối ưu không ràng. .. Tập nguồn Rn ứng với toán tối ưu không ràng buộc Mục đích khóa luận nhằm tìm hiểu số phương pháp đặc trưng để giải toán quy hoạch phi tuyến không ràng buộc Như biết tìm kiếm theo tia (line search)... việc tính đạo hàm, mặt khác việc chuẩn bị toán để giải tốn nhiều thời gian Tóm lại phương pháp chung có hiệu để giải toán quy hoạch nói chung quy hoạch phi tuyến nói riêng Mỗi phương pháp có ưu,