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

Thuật toán metaheuristic giải bài toán tối ưu và phần mềm ứng dụng

78 4 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 697,19 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO T O ĐẠI HỌC ĐÀ NẴNG NGUYỄN QUANG THỊNH THUẬT TOÁN METAHEURISTIC GIẢI BÀI TOÁN TỐI ƯU VÀ PHẦN MỀM ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC Đà Nẵng – Năm 2015 BỘ GIÁO DỤC VÀ ĐÀO T O ĐẠI HỌC ĐÀ NẴNG NGUYỄN QUANG THỊNH THUẬT TOÁN METAHEURISTIC GIẢI BÀI TOÁN TỐI ƯU VÀ PHẦN MỀM ỨNG DỤNG Chun ngành: Phương pháp tốn sơ cấp Mã số: 60.46.40 LUẬN VĂN THẠC SĨ KHOA HỌC Người hướng dẫn khoa học: TS HOÀNG QUANG TUYẾN Đà Nẵng – Năm 2015 L I CAM ĐOAN Tôi cam đ an cơng trình nghiên cứu riêng tơi Các số liệu, kết nêu tr g luận văn trung thực chưa công bố t b t kỳ cơng trình khác Tác giả luận văn Nguy n Quang Thịnh ii MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục đích nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu 2 Ý nghĩa khoa học thực tiễn Cấu trúc luận văn CHƯƠNG BẢN 1.1 1.3 BÀI TOÁN TỐI ƯU 1.1.1 1.1.2 1.2 BÀI TOÁN TỐI ƯU VÀ CÁC KHÁI NIỆM CƠ Một số khái niệm Điều kiện tồn nghiệm 10 CÁC THUẬT TOÁN TÌM NGHIỆM SƠ CẤP 1.2.1 Phương pháp lặp đơn 13 13 1.2.2 1.2.3 Phương pháp chia đôi Phương pháp Newton 14 16 1.2.4 Phương pháp Newton dùng cho giải hệ phi tuyến CÁC CHƯƠNG TRÌNH MATLAB 18 20 CHƯƠNG THUẬT TOÁN HEURISTIC TÌM NGHIỆM BÀI TỐN TỐI ƯU 26 2.1 BÀI TỐN TỐI ƯU PHI TUYẾN KHÔNG RÀNG BUỘC 2.1.1 Bài toán hàm đơn biến 26 27 iii 2.2 2.1.2 Bài toán hàm nhiều biến 27 2.1.3 2.1.4 Phương pháp Newton Phương pháp giảm nhanh 28 29 2.1.5 Phương pháp tìm kiếm trực tiếp (Hooke-Jeeves-Wood) 32 BÀI TỐN TỐI ƯU PHI TUYẾN CÓ RÀNG BUỘC 36 2.2.1 2.3 Phương pháp hàm phạt 2.2.1.1 Phương pháp hàm phạt điểm 36 37 2.2.2 2.2.1.2 Phương pháp hàm phạt điểm Phương pháp nhân tử Lagrange 38 40 2.2.3 Điều kiện Kuhn - Tucker 42 MỘT SỐ CHƯƠNG TRÌNH LẬP TRÌNH MATLAB 44 CHƯƠNG HAI THUẬT TOÁN METAHEURISTIC TÌM NGHIỆM TỐI ƯU VÀ PHẦN MỀM ỨNG DỤNG 49 3.1 3.2 PHƯƠNG PHÁP MÔ PHỎNG ĐÀN CHIM DI (PSO) 50 3.1.1 3.1.2 Ngôn ngữ giả mã thuật tốn mơ đàn chim di 51 Tăng tốc thuật tốn mơ đàn chim di (PSO) 53 3.1.3 3.1.4 Hàm có đồ thị đa đỉnh (Multimodal Function) Mã chương trình tăng tốc thuật tốn PSO 54 56 3.1.5 Thuật toán PSO trường hợp tốn có ràng buộc 61 THUẬT TỐN MƠ PHỎNG Q TRÌNH TƠI THÉP (SA) 62 3.2.1 3.2.2 Các ý tưởng Lựa chọn tham số 62 63 3.2.3 3.2.4 Thuật tốn mơ q trình tơi thép Mã chương trình Matlab thuật tốn SA 65 67 MỞ ĐẦU Lý chọn đề tài Trong mơn tối ưu tốn học, phương pháp Metaheuristic hiểu thủ tục cấp cao nhằm tìm, tạo, chọn thủ tục cấp thấp để tìm nghiệm đủ tốt cho toán tối ưu, đặc biệt tốn tối ưu với thơng tin khơng đầy đủ địi hỏi khối lượng tính tốn q lớn Cụ thể hơn, phương pháp Metaheuristic chiến lược hướng dẫn trình tìm kiếm Mục đích phương pháp khai thác hữu hiệu khơng gian tìm kiếm để tìm nghiệm gần tối ưu Các kỹ thuật dùng cho Metaheuristic rộng từ thủ tục tìm kiếm địa phương đơn giản đến tiến trình “học” phức tạp Phương pháp Metaheuristic phát triển mạnh mẽ từ thập niên 80 kỷ trước So với phương pháp kinh điển (các phương pháp bước hóa), phương pháp Metaheuristic khơng tìm thấy nghiệm tối ưu tồn cục xác số lớp toán Nhưng cách kết hợp thêm phương pháp tối ưu ngẫu nhiên (stochastic) người ta tìm thấy nghiệm đủ tốt dựa tập biến ngẫu nhiên Hoặc với tập chấp nhận lớn, phương pháp Metaheuristic tìm thấy nghiệm đủ tốt với khối lượng tính tốn nhiều so với phương pháp kinh điển phương pháp heuristic đơn giản Phương pháp Metaheuristic ứng dụng nhiều toán tối ưu tổ hợp (nổi tiếng toán người du lịch, toán thiết kế dạng tối ưu ) với khơng gian tìm kiếm nghiệm tăng cấp số mũ theo cỡ toán (số nút mạng), điều mà phương pháp tìm kiếm vét cạn khơng thể thực Trên lý tơi chọn đề tài: "Thuật tốn Metaheuristic giải toán tối ưu phần mềm ứng dụng" Mục đích nghiên cứu Luận văn tập trung nghiên cứu số phương pháp tối ưu giải toán tối ưu phần mềm ứng dụng Matlab Đối tượng phạm vi nghiên cứu a Đối tượng nghiên cứu luận văn số phương pháp giải toán tối ưu đại b Phạm vi nghiên cứu luận văn hai thuật tốn Metaheuristic tìm nghiệm tối ưu (nội dung luận văn) với phần mềm ứng dụng chạy thử nghiệm số ví dụ cụ thể theo ngơn ngữ lập trình Matlab Phương pháp nghiên cứu Phương pháp tham khảo tài liệu: Nghiên cứu tài liệu nước nước ngồi, giáo trình báo liên quan có thư viện, giảng giáo viên, Internet Phương pháp trao đổi, thảo luận trực tiếp: với chuyên gia, đồng nghiệp, thầy hướng dẫn Ý nghĩa khoa học thực tiễn • Về mặt khoa học, luận văn cho người đọc hiểu chất toán học ứng dụng khoa học kỹ thuật • Về mặt thực tiễn, đề tài tài liệu tham khảo có ích cho muốn thực hành tính tốn thực máy tính với toán cụ thể Cấu trúc luận văn Ngoài phần mở đầu, kết luận phần phụ lục, luận văn gồm chương: Chương 1: Bài toán tối ưu khái niệm Chương 2: Thuật tốn heuristic tìm nghiệm tối ưu Chương 3: Hai thuật tốn Metaheuristic tìm nghiệm tối ưu phần mềm ứng dụng Trong chương 1, giới thiệu khái niệm toán tối ưu số thuật tốn sơ cấp, chương trình chạy thử ngơn ngữ lập trình Matlab Trong chương 2, trình bày số thuật tốn heuristic tìm nghiệm tốn tối ưu phi tuyến không ràng buộc “phương pháp giảm nhanh nhất”, “phương pháp Newton”, “phương pháp tìm kiếm trực tiếp (Hooke – Jeeves – Wood), số thuật tốn giải tốn tối ưu phi tuyến có ràng buộc “Điều kiện Kuhn-Tucker”, “phương pháp nhân tử Lagrange”, “phương pháp hàm phạt”, chương trình chạy thử ngơn ngữ lập trình Matlab Trong chương 3, giới thiệu hai thuật tốn Metaheuristic tìm nghiệm tối ưu tồn cục Đó “tối ưu hóa mơ đàn chim di (PSO)” “tối ưu hóa mơ q trình tơi thép (SA)”, chương trình chạy thử ngơn ngữ lập trình Matlab CHƯƠNG BÀI TỐN TỐI ƯU VÀ CÁC KHÁI NIỆM CƠ BẢN Trong thực tế, tối ưu hóa xuất hầu khắp nơi, từ sản xuất kinh doanh đến thiết kế kỹ thuật, từ lập kế hoạch kỳ nghỉ bạn đến chọn công việc cho tương lai Trong tổ chức kinh doanh cần tối đa lợi nhuận tối thiểu chi phí Trong thiết kế kỹ thuật cần tối đa hiệu suất sản phẩm dược thiết kế đồng thời tối thiểu chi phí Ngay việc đơn giản lập kế hoạch cho kỳ nghỉ, ta muốn tối đa hưởng thụ tối thiểu chi phí Do đó, nghiên cứu tối ưu hóa ln có ý nghĩa khoa học thực tế, đặc biệt phương pháp giải tốn tối ưu có vai trị ứng dụng to lớn Trong chương này, trình bày khái niệm toán tối ưu, thuật tốn tìm nghiệm sơ cấp, kèm theo chương trình Matlab 1.1 BÀI TỐN TỐI ƯU Bài tốn Một xí nghiệp sản xuất n loại sản phẩm cần sử dụng m loại nguyên liệu khác Gọi xj số lượng sản phẩm thứ j j = 1, n cj lãi thu sản phẩm thứ j Biết để sản xuất sản phẩm loại j cần lượng nguyên liệu aij i = 1, m Gọi bi số lượng tối đa ngun liệu i mà xí nghiệp có Bài tốn đặt sản xuất loại sản phẩm với số lượng để tổng lợi nhuận thu lớn Ta có mơ hình tốn học toán sau: max n cj xj j=1 với điều kiện: 1.1.1    n j=1 aij xj ≤ bi   xj ≥ i = 1, m j = 1, n Một số khái niệm Dạng tổng quát toán tối ưu phát biểu sau: f (x) với điều kiện x ∈ D (1.1) max f (x) với điều kiện x ∈ D (1.2) đó, D ⊆ Rn gọi tập nghiệm chấp nhận hay tập ràng buộc f : D → R Mỗi điểm x ∈ D gọi nghiệm chấp nhận hay phương án chấp nhận (có thể gọi tắt phương án) Chú ý 1.1.1 Không giảm tổng quát, ta xét toán 1.1 (f (x) |x ∈ D) = − max (−f (x) |x ∈ D) , tập lời giải tối ưu cho hai toán trùng Do đó, ta đưa tốn tìm cực đại tốn tìm cực tiểu ngược lại Điểm x∗ ∈ D thỏa mãn f (x∗ ) ≤ f (x) , ∀x ∈ D gọi nghiệm tối ưu, nghiệm tối ưu toàn cục, nghiệm cực tiểu toàn cục đơn giản nghiệm tốn 1.1 Người ta cịn gọi nghiệm tối ưu phương án tối ưu hay lời giải toán 1.1 Điểm x∗ ∈ D gọi nghiệm cực tiểu toàn cục chặt toán 1.1 nếu: f (x∗ ) < f (x) , ∀x ∈ D x = x∗ Không phải tốn 1.1 có nghiệm cực tiểu tồn cục tốn có nghiệm cực tiểu tồn cục chưa có nghiệm cực tiểu tồn cục chặt Xem minh họa hình 1.1 (trường hợp hàm mục tiêu f (x) hàm biến) 59 Hình 3.3: Vị trí bắt đầu 20 chim nn=size(yn,2); %a=alpha, b=beta xn=xn.*(1-b)+xo.*b+a.*(rand(1,nn)-0.5); yn=yn.*(1-b)+yo.*b+a.*(rand(1,nn)-0.5); [xn, yn]=findrange(xn,yn,range); % Bảo đảm vị trí chim nằm range function [xn,yn]=findrange(xn,yn,range) nn=length(yn); for i=1:nn; if xn(i)=range(2), xn(i)=range(2);end if xn(i)=range(4), xn(i)=range(4);end end Với chương trình này, ta tìm nghiệm tối ưu tồn cục vài chục giây với giá trị tối ưu 60 Và chương trình phù hợp với hầu hết máy tính cá nhân Nếu chạy chương trình này, ta có giá trị tối ưu sau 200 lần đánh giá hàm mục tiêu (cho 20 chim với 10 bước lặp) Kết hiển thị hình 3.4 ans = Hình 3.4: Vị trí cuối 20 chim sau 10 bước lặp 2.1875 1.5689 -1.7974 4.0000 1.5583 -0.8223 4.1243 1.5126 -0.8722 4.2057 1.5900 -0.9849 4.1088 1.5594 -0.9876 4.1476 1.5817 -0.9939 4.1745 1.5817 -0.9948 4.1677 1.5724 -0.9995 4.1768 1.5677 -0.9993 4.1629 1.5711 -0.9994 61 3.1.5 Thuật tốn PSO trường hợp tốn có ràng buộc Phần mềm vừa trình bày dùng cho tốn tối ưu khơng ràng buộc Với tốn tối ưu có ràng buộc ta cần bổ sung vào chương trình đẳng thức bất đẳng thức ràng buộc Tuy nhiên, có hai cách tiếp cận: bổ sung trực tiếp vào chương trình ràng buộc biến đổi tối ưu hóa khơng ràng buộc Cách tiếp cận thứ kiểm tra tất vị trí có thỏa mãn tất ràng buộc Các vị trí loại bỏ ràng buộc khơng thỏa mãn Sau đó, nghiệm đánh giá cách sử dụng thủ tục PSO chuẩn Bằng cách này, tất nghiệm phải nằm miền chấp nhận tất nghiệm ngồi miền chấp nhận khơng chọn Ví dụ, để cực đại hàm mục tiêu f (x) với ràng buộc g (x) ≤ thuật toán PSO chuẩn thảo luận trước sử dụng, nhiên, vị trí xi n chim kiểm tra lần lặp cho đáp ứng g (x) ≤ Nếu xi khơng thỏa mãn ràng buộc thay vị trí khác x ˜i thỏa mãn ràng buộc Cách tiếp cận thứ hai, ta chuyển tốn tối ưu khơng ràng buộc cách sử dụng phương pháp hàm phạt phương pháp nhân tử Lagrange thảo luận Chương Sử dụng tham số phạt v ≫ ví dụ đơn giản sau đây, ta có hàm phạt Π (x, v) = f (x) + vg(x)2 Đối với giá trị cố định v ta xác định mức độ xác nghiệm tương ứng, ta tối ưu hóa Π tốn tối ưu khơng ràng buộc chuẩn Có biến thể khác cho tốn tối ưu mơ đàn chim di thuật tốn PSO thường kết hợp với thuật toán có khác để đưa thuật tốn lai Trong thực tế, việc kết hợp lĩnh vực nghiên cứu sôi động với nhiều kết nghiên cứu công bố hàng năm 62 3.2 THUẬT TỐN MƠ PHỎNG Q TRÌNH TƠI THÉP (SA) Tìm nghiệm tối ưu cho toán tối ưu cụ thể nhiệm vụ vơ khó khăn Điều có tốn đủ lớn ta cần tìm kiếm thơng qua số lượng lớn nghiệm khả thi để tìm thấy nghiệm tối ưu Ngay với sức mạnh máy tính đại khó giải vấn đề Trong trường hợp này, khơng thể tìm thấy xác giải pháp tối ưu khoảng thời gian hợp lý nên ta phải xét đến giải pháp gần Một ví dụ tối ưu thường có số lượng lớn nghiệm khả thi toán người du lịch (Traveling Salesman Problem - TSP) Để tìm nghiệm tối ưu cho tốn TSP ta cần phải sử dụng thuật toán cho tìm thấy nghiệm đủ tốt (gần tối ưu) khoảng thời gian hợp lý Ngoài thuật tốn di truyền, có thuật tốn khác đơn giản thực tốn TSP để nghiệm tốt Một thuật tốn đủ tốt thuật tốn mơ q trình tơi thép 3.2.1 Các ý tưởng Mơ q trình tơi thép (SA), kỹ thuật tìm kiếm ngẫu nhiên nghiệm tối ưu tồn cục, mơ q trình tơi thép q trình thép làm lạnh đông cứng thành trạng thái tinh thể cho tốn lượng tinh thể đạt cỡ lớn để hạn chế khuyết điểm cấu trúc thép Q trình tơi thép liên quan đến việc điều khiển cẩn thận nhiệt độ tốc độ làm lạnh, thường gọi quy trình tơi thép Áp dụng phương pháp mơ q trình tơi thép để giải tốn tối ưu năm 1983 tác giả tiên phong Kirkpatrick, Gelatt Vecchi Đến phương pháp nghiên cứu mở rộng Không giống phương pháp dựa tính khả vi phương pháp tìm kiếm tất định khác ln bị mắc vào “bẫy” nghiệm cực tiểu địa phương, tiến phương pháp mơ q trình tơi thép tránh “bẫy” cực tiểu địa phương Trên thực tế, người ta chứng minh phương pháp hội tụ đến nghiệm cực tiểu tồn cục q trình 63 làm lạnh chậm kết hợp với tính ngẫu nhiên vừa đủ Nói cách ẩn dụ, điều tương đương với thả số bóng nảy sàn bóng nảy lượng, chúng ổn định số cực tiểu địa phương Nếu bóng nảy đủ số lần lượng tiêu hao đủ chậm, số bóng cuối rơi vào vị trí thấp tồn cục Do cực tiểu tồn cục tìm thấy Ý tưởng thuật tốn mơ q trình tơi thép dùng phương pháp tìm kiếm ngẫu nhiên có khả khơng chấp nhận thay đổi nghiệm làm cải thiện giá trị hàm mục tiêu (làm hàm mục tiêu giảm) mà chấp nhận ln số nghiệm khơng tốt Ví dụ, tốn cực tiểu hóa di chuyển tốt thay đổi làm giảm hàm mục tiêu f chấp nhận Tuy nhiên, số thay đổi làm tăng f chấp nhận với xác suất p Xác suất p gọi xác suất chuyển đổi xác định công thức δE (3.6) p = e− kT đó, k số Boltzmann, T nhiệt độ điều khiển q trình tơi thép, δE gia số lượng T độ Xác suất chuyển đổi dựa phân phối Boltzmann vật lý Một liên kết đơn giản δE hàm mục tiêu δf sử dụng (3.7) δE = γ.δf đó, γ số Khơng tính tổng qt, ta chọn k = λ = Như vậy, xác suất p đơn giản trở thành δf p (δf, T ) = e− T Ta thường sử dụng số ngẫu nhiên < r < làm ngưỡng Vì vậy, δf p > r p = e− T > r , thay đổi chấp nhận 3.2.2 Lựa chọn tham số Lựa chọn nhiệt độ thích hợp điều vơ quan trọng Với δf chuyển đổi cho trước, T lớn (T → ∞) p → , tức hầu hết thay đổi 64 chấp nhận Nếu T nhỏ T → δf > (nghiệm xấu) chấp nhận p → đa dạng nghiệm bị hạn chế, δf cải thiện (δf < 0) chấp nhận Trong thực tế, trường hợp đặc biệt T → tương ứng với phương pháp gradient nghiệm tốt chấp nhận hệ thống chủ yếu giống việc tụt xuống (hoặc leo lên) đồi Do đó, T lớn hệ thống rơi vào trạng thái lượng cao cực tiểu không dễ dàng xác định Nếu T q nhỏ hệ thống bị kẹt cực tiểu địa phương (không phải cực tiểu tồn cục) khơng có đủ lượng để hệ thống thoát khỏi cực tiểu địa phương để khai thác điểm cực tiểu toàn cục tiềm khác Vì vậy, nhiệt độ thích hợp cần phải tính tốn Một vấn đề quan trọng khác làm để điều khiển trình làm mát cho hệ thống nguội dần từ nhiệt độ cao đến trạng thái đóng băng cuối để đạt cực tiểu tồn cục Có nhiều cách để kiểm sốt tốc độ làm mát giảm nhiệt độ Có hai sơ đồ thép (hoặc cách làm mát) thường sử dụng: Làm mát tuyến tính làm mát hình học Đối với q trình làm mát tuyến tính, ta có T = T0 −βt T → T −δT , T0 nhiệt độ ban đầu, t số lần giả lặp β tốc độ làm mát chọn cho T → t → tf (số lần lặp lớn nhất), thường chọn β = Ttf0 Làm mát hình học làm giảm nhiệt độ hệ số làm mát < α < cho T thay αT T (t) = T0 αt với t = 1, 2, , tf Ưu điểm cách thứ hai T → t → ∞ , khơng cần xác định số lần lặp lớn tf Với lý này, ta sử dụng trình làm mát hình học Quá trình làm mát cần phải đủ chậm để hệ thống dễ chuyển trạng thái ổn định Trong thực hành thường chọn α = 0, ∼ 0, Cũng cần ý thêm với nhiệt độ cho trước, việc đánh giá hàm mục tiêu nhiều lần cần thiết Nếu đánh giá q hệ thống có nguy hoạt động khơng ổn định sau khơng hội tụ điểm tối ưu tồn cục Nếu đánh giá nhiều, thường tốn thời gian, hệ thống hội tụ chậm số lần lặp tăng cấp mũ so với cỡ tốn Vì vậy, cần phải cân số lượng đánh giá hàm mục tiêu chất lượng nghiệm Ta chọn: có nhiều đánh giá vài mức nhiệt độ vài đánh giá nhiều mức nhiệt 65 độ khác Có hai cách hay dùng để thiết lập số lần lặp: cố định thay đổi Cách một, cố định số lần lặp mức nhiệt độ Cách hai, tăng số bước lặp thời điểm có nhiệt độ thấp để cực tiểu địa phương khai thác đầy đủ 3.2.3 Thuật tốn mơ q trình tơi thép Giả mã thuật tốn mơ q trình tơi thép thể sau: Begin Hàm mục tiêu f (x) , x = (x1 , x2 , , xp )T Nhiệt độ ban đầu T0 , giá trị ban đầu đoán x(0) Đặt nhiệt độ cuối Tf số lần lặp lớn N Xác định lịch trình làm mát T → αT, while (T > Tf ) and (n < N ) (0 < α < 1) Di chuyển ngẫu nhiên đến vị trí xn+1 = xn + randn Tính δf = fn+1 (xn+1 ) − fn (xn ) Chấp nhận nghiệm xn+1 tốt hơn, tức δf < If không tốt Khởi tạo số ngẫu nhiên r Chấp nhận p = exp − δf kT >r end if Cập nhật x∗ f∗ end while end Trong đoạn mã giả lập trên, tìm nhiệt độ ban đầu T0 thích hợp ta sử dụng thông tin biết trước hàm mục tiêu Nếu ta biết độ chênh cực đại max (δf ) hàm mục tiêu ta dùng để ước tính nhiệt độ ban đầu T0 với xác suất cho trước p Khi T0 ≈ − max (δf ) ln p0 66 Hình 3.5: Đồ thị hàm Rosenbrock với cực tiểu toàn cục f ∗ (1, 1) Nếu ta độ chênh cực đại hàm mục tiêu sử dụng phương pháp heuristic để tính T0 Chẳng hạn, ta bắt đầu đánh giá từ nhiệt độ cao (sao cho hầu hết độ chênh f chấp nhận) giảm nhiệt độ cách nhanh chóng 50% 60% độ chênh xấu tập độ chênh chấp nhận, sau sử dụng nhiệt độ nhiệt độ ban đầu T0 cho trình làm mát tương đối chậm phù hợp 67 3.2.4 Mã chương trình Matlab thuật tốn SA Gõ đoạn mã chương trình đây, lưu thành file có tên sasimpledemo.m Chương trình 3.2 % Tìm cực tiểu hàm % theo thuật tốn mơ q trình tơi thép % Cách dùng (chạy file chương trình): sasimpledemo disp (’Chương trình chạy khoảng phút!’); % Nhập hàm kiểm tra chương trình Rosonbrock % với f*=0 (1, 1) fstr=’(1 − x)2 + 100 ∗ (y − x2 )2 ’; % Chuyển chuỗi thành hàm f=vectorize(inline(fstr)); % Đồ thị mặt hàm mục tiêu f miền range=[-2 -2 2]; % Đoạn trục x, [-2, 2] chia thành 40 khúc xgrid=range(1):0.1:range(2); % Đoạn trục y, [-2, 2] chia thành 40 khúc ygrid=range(3):0.1:range(4); % Lưới [x, y] có 1600 nút [x, y]=meshgrid(xgrid,ygrid); % Vẽ mặt cong f(x,y) lưới [x, y] surfc(x,y,f(x,y)); % Thiết lập tham số ban đầu cài đặt Tinit = 1.0; % Mức nhiệt độ lớn ban đầu Tmin = 1e-10; % Mức nhiệt độ thấp để dừng chương trình Fmin = -1e+1000 % giá trị cực tiểu f maxrej=500; % Số nghiệm xấu (xác suất p) tối đa để dừng chương trình % Số bước chạy tối đa để chuyển sang mức nhiệt maxrun=100; % Số nghiệm chấp nhận tối đa 68 % để chuyển sang mức nhiệt maxaccept = 15; k=1; % Hằng số Boltzmann alpha=0.9; % Hệ số làm lạnh Enorm=1e-5; % Ngưỡng chuẩn dùng đánh giá nghiệm chấp nhận guess=[2 2]; % Khởi tạo nghiệm chấp nhận (đoán) % Khởi tạo biến đếm i,j, i=0; j= 0; accept = 0; totaleval = 0; % Totaleval tổng số bước đánh giá i % Khởi tạo giá trị ban đầu cho T, E, best T = Tinit Einit = f(guess(1), guess(2)); Eold = Einit; Enew=Eold; best=guess; % Khởi tạo nghiệm chấp nhận % Bắt đầu thuật toán SA while ((T > Tmin) (jFmin) i=i+1; % Kiểm tra số lần lặp tối đa (100 lần) % số lần nghiệm chấp nhận tối đa (15) % để chuyển sang mức nhiệt if (i>=maxrun) | (accept >= maxaccept) % Nếu số bước lặp i vượt maxrun số nghiệm % vượt maxaccept chuyển sang mức nhiệt thấp T = alpha*T; totaleval = totaleval + i; % Khởi tạo lại biến đếm i=1; accept =1; end % Tính giá trị hàm mục tiêu điểm % Tính điểm thơng qua hàm tạo số ngẫu nhiên 69 ns=guess+rand(1,2)*randn; % ns viết tắt chữ newsolution (nghiệm mới) Enew = f(ns(1),ns(2)); % Quyết định chọn nghiệm hay không? DeltaE=Enew-Eold; % Chấp nhận nghiệm f giảm if (-DeltaE > Enorm) best = ns; Eold = Enew; accept=accept+1; j=0; end % Chấp nhận với xác suất p nhỏ % nghiệm làm f tăng if (-DeltaErand); best = ns; Eold = Enew; accept=accept+1; else j=j+1; % (nghiệm không cải thiện f) end % Cập nhật giá trị tối ưu tìm fopt=Eold; end % Hiển thị kết cuối disp(strcat (’Ham muc tieu :’,fstr)); disp(strcat (’So luong danh gia :’, num2st(totaleval))); disp(strcat (’Vi tri toi uu:’,num2str(best))); disp(strcat (’Gia tri toi uu:’, num2str(fopt))); Mở matlab gõ sasimpledemo cho kết Chuong trinh chay khoang mot phut! Fmin = -Inf T= 70 Ham muc tieu:(1 − x).2 + 100 ∗ (y − x.2 ).2 So luong danh gia:1800 Vi tri toi uu: 0.77455 Gia tri toi uu: 0.12321 0.57303 71 KẾT LUẬN Nội dung luận văn nhằm cung cấp cho người đọc hiểu biết tốn tối ưu hóa phương pháp giải để tìm nghiệm cực tiểu tồn cục chúng, từ phương pháp kinh điển đến phương pháp đại Luận văn chia thành chương Chương Cơ tối ưu hóa Chương cho ta khái niệm tốn tối ưu hóa, tức tìm nghiệm để có giá trị cực tiểu miền ràng buộc Đồng thời, giới thiệu số phương pháp cổ điển giải toán tối ưu biến, có từ thời Newton, mà bạn đọc gặp chương trình phổ thơng chưa có dịp xem lại cách hệ thống Chương Thuật toán heuristic tìm nghiệm tốn tối ưu Chương giới thiệu hàng loạt phương pháp kinh điển sử dụng thường xuyên nghiên cứu ứng dụng ngành toán tối ưu để giải toán tối ưu đa biến, phi tuyến Tuy nhiên, điểm đáng nhấn mạnh thuật toán heuristic này, đặc biệt thuật tốn dựa tính khả vi hàm mục tiêu hàm ràng buộc cho ta nghiệm cực tiểu địa phương Việc tìm nghiệm cực tiểu tồn cục khó khăn, trừ trường hợp quy hoạch lồi Chương Hai thuật tốn Metaheuristic tìm nghiệm tối ưu phần mềm ứng dụng Như trình bày chương 2, phương pháp heuristic kinh điển sử dụng nhiều nhiều lĩnh vực kỹ thuật, kinh tế, xã hội có nhiều thành tựu, hạn chế lớn dễ bị kẹt điểm dừng (đặc biệt phương pháp khai thác tính khả vi) tức nghiệm cực tiểu địa phương, khó khỏi “bẫy địa phương” để tìm đến nghiệm tồn cục 72 Chương chương cuối cùng, giới thiệu hai thuật toán tìm nghiệm tồn cục, hy vọng khắc chế nhược điểm kẹt “bẫy địa phương” phương pháp heuristic biết Hai thuật toán gọi thuật toán Metaheuristic với tên gọi – Thuật toán mơ đàn chim di (PSO) – Thuật tốn mơ q trình tơi thép (SA) Tính heuristic thuật toán thể chỗ tác giả nảy sinh ý tưởng dựa vào quan sát tập tính bay di trú đàn chim tìm chỗ tốt (ví dụ minimum nhiễm) quy trình tơi thép công nghiệp xử lý thép mức nhiệt hạ dần đạt chất lượng thép tốt (minimum khuyết tật cấu trúc thép) Việc tìm nghiệm bắt chước tự nhiên cho kết khả quan Tính meta (tức “mức cao” “siêu” so với heuristic truyền thống) thể chỗ tính heuristic kết hợp thêm tính ngẫu nhiên số phát ngẫu nhiên để điều chỉnh hướng tìm nghiệm nhằm hy vọng khỏi “bẫy địa phương” để tìm nghiệm tốt Điều bắt chước tập tính phần lớn chim bay theo hướng chung đàn có chim khác bay theo hướng ngẫu nhiên, nhờ hy vọng tìm chỗ đậu tốt chỗ đậu mà đàn theo Chương cịn có thêm nội dung thú vị hai phần mềm viết ngôn ngữ Matlab cụ thể cho hai thuật toán Metaheuristic nêu Người đọc gõ code để chạy kiểm chứng Luận văn tài liệu bổ ích cho thân tác giả hy vọng luận văn tài liệu tham khảo bổ ích cho người đọc nhiều thông tin hoạt động thời ngành tốn tối ưu Vì vậy, tơi mong nhận góp ý, nhận xét thầy cô đồng nghiệp 73 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Nguyễn Thị Bạch Kim (2008), Giáo trình phương pháp tối ưu, lý thuyết thuật toán, NXB Bách khoa – Hà Nội [2] Hoàng Quang Tuyến (2013), Bài giảng toán tối ưu, tài liệu giảng dạy cao học toán, Trường Đại học Sư phạm Đà Nẵng Tiếng Anh [3] Xin – She Yang (2008), Introduction to Mathematical Optimization – From Linear Programming to Metaheuristic, Cambridge International Science Publishing Nguồn Internet [4] www.math.vn [5] www.mathworks.com ... chọn đề tài: "Thuật tốn Metaheuristic giải toán tối ưu phần mềm ứng dụng" Mục đích nghiên cứu Luận văn tập trung nghiên cứu số phương pháp tối ưu giải toán tối ưu phần mềm ứng dụng Matlab Đối... luận phần phụ lục, luận văn gồm chương: Chương 1: Bài toán tối ưu khái niệm Chương 2: Thuật tốn heuristic tìm nghiệm tối ưu Chương 3: Hai thuật tốn Metaheuristic tìm nghiệm tối ưu phần mềm ứng dụng. ..BỘ GIÁO DỤC VÀ ĐÀO T O ĐẠI HỌC ĐÀ NẴNG NGUYỄN QUANG THỊNH THUẬT TOÁN METAHEURISTIC GIẢI BÀI TOÁN TỐI ƯU VÀ PHẦN MỀM ỨNG DỤNG Chun ngành: Phương pháp toán sơ cấp Mã số: 60.46.40

Ngày đăng: 21/05/2021, 22:24

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

TÀI LIỆU LIÊN QUAN