ĐẠ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 Chuyên ngành: Phương pháp Tốn sơ cấp Mã số: 60.46.40 TĨM TẮT LUẬN VĂN THẠC SĨ KH
Trang 1ĐẠ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
Chuyên ngành: Phương pháp Tốn sơ cấp
Mã số: 60.46.40
TĨM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC
Đà Nẵng – Năm 2015
Trang 2Công trình được hoàn thành tại ĐẠI HỌC ĐÀ NẴNG
Người hướng dẫn khoa học: TS HOÀNG QUANG TUYẾN
Phản biện 1: PGS.TSKH Trần Quốc Chiến
Phản biện 2: TS Nguyễn Đắc Liêm
Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Khoa học tại Đại học Đà Nẵng vào ngày 10
tháng 01 năm 2015
Có thể tìm hiểu luận văn tại:
Trung tâm Thông tin-Học liệu, Đại học Đà Nẵng
Trung tâm Học liệu, Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Lý do chọn đề tài
Trong bộ môn tối ưu toán học, phương pháp Metaheuristic được hiểu là thủ tục cấp cao hơn nhằm tìm, tạo, hoặc chọn thủ tục cấp thấp hơn để có thể tìm ra nghiệm đủ tốt cho bài toán tối ưu, đặc biệt đối với các bài toán tối ưu với thông tin không đầy đủ hoặc đòi hỏi khối lượng tính toán quá lớn
Phương pháp Metaheuristic được phát triển mạnh mẽ từ thập niên 80 của thế kỷ trước cho đến nay So với các phương pháp kinh điển (các phương pháp bước hóa), phương pháp Metaheuristic có thể không chắc tìm thấy nghiệm tối ưu toàn cục chính xác ở một số lớp bài toán Hoặc, với tập chấp nhận được khá lớn, thì phương pháp Metaheuristic sẽ tìm thấy nghiệm đủ tốt với khối lượng tính toán ít hơn nhiều so với các phương pháp kinh điển hoặc các phương pháp heuristic đơn giản
Trên đây là lý do tôi chọn đề tài: "Thuật toán Metaheuristic giải bài toán tối ƣu và phần mềm ứng dụng"
2 Mục đích nghiên cứu
Luận văn tập trung nghiên cứu một số phương pháp tối ưu hiện đại để giải quyết các bài toán tối ưu và phần mềm ứng dụng Matlab
3 Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu của luận văn là một số phương pháp tối ưu hiện đại
Phạm vi nghiên cứu của luận văn là hai thuật toán Metaheuristic tìm nghiệm tối ưu (nội dung chính của luận văn) cùng với phần mềm ứng dụng chạy thử nghiệm trên một số ví dụ cụ thể theo ngôn ngữ lập trình Matlab
Trang 44 Phương pháp nghiên cứu
Phương pháp tham khảo tài liệu: Nghiên cứu các tài liệu trong nước và nước ngoài, giáo trình hoặc các bài báo liên quan có ở thư viện, bài giảng của 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
5 Ý nghĩa khoa học và thực tiễn của đề tài
Về mặt khoa học, luận văn cho người đọc hiểu được bản chất toán học trong ứng dụng của khoa học kỹ thuật
Về mặt thực tiễn, đề tài sẽ tạo ra một tài liệu tham khảo có ích cho những ai muốn thực hành tính toán thực sự trên máy tính với các bài toán cụ thể
6 Cấu trúc của luận văn
Ngoài phần mở đầu, kết luận và phần phụ lục, luận văn gồm 3 chương:
Chương 1: Bài toán tối ưu và các khái niệm
Chương 2: Thuật toán heuristic tìm nghiệm tối ưu
Chương 3: Hai thuật toán Metaheuristic tìm nghiệm tối ưu
và Phần mềm ứng dụng
Trang 5CHƯƠNG 1 BÀI TOÁN TỐI ƯU VÀ CÁC KHÁI NIỆM
Trong chương này, trình bày mô hình toán học của bài toán tối
ưu, các khái niệm cơ bản và các phương pháp sơ cấp
1.1 BÀI TOÁN TỐI ƯU
Ta có mô hình toán học của bài toán trên như sau:
1
max
n
j j j
1.1.1 Một số khái niệm cơ bản
Dạng tổng quát của bài toán tối ưu được phát biểu như sau:
min f x với điều kiện xD, P1
hoặc
max f x với điều kiện xD. P 2
trong đó, n
D gọi là tập nghiệm chấp nhận được và f D:
là hàm mục tiêu Mỗi điểm xD gọi là một nghiệm chấp nhận được
Chú ý 1.1 h ng gi m t ng qu t t ch t ài to n P1
min f x x D| max f x x D| ,
và tập c c lời gi i tối ưu cho h i ài to n này trùng nh u Do đó t
có thể đư ài to n tìm cực đại về ài to n tìm cực tiểu và ngược lại
Trang 6Không phải bài toán P nào cũng có nghiệm cực tiểu toàn cục 1
và nếu bài toán có nghiệm cực tiểu toàn cục thì cũng chưa chắc có nghiệm cực tiểu toàn cục chặt Xem minh họa Hình 1.1
Nghiệm cực tiểu
toàn cục chặt
Nghiệm cực tiểu đị phương chặt
Nghiệm cực tiểu đị phương kh ng chặt Nghiệm cực tiểu
toàn cục chặt h ng có nghiệm cực tiểu toàn cục toàn cục kh ng chặt Nghiệm cực tiểu
Trang 7Chú ý 1.3 Nghiệm tối ưu toàn cục cũng là nghiệm tối ưu địa
phương nhưng điều ngược lại chưa chắc đúng
Mệnh đề 1.1
Chú ý 1.4 Nếu bài toán P1 không có nghiệm tối ưu thì giá trị tối
ưu của bài toán này, ký hiệu là inf f D là cận dưới lớn nhất (hay
giá trị infimum) của hàm f trên D
1.1.2 Điều kiện tồn tại nghiệm
Mệnh đề 1.2 Điều kiện cần và đủ để ài to n P1 có nghiệm tối ưu là tập f D t |t f x , x D đóng và có cận dưới hữu hạn
Định lý 1.1
Hệ quả 1.1 (Định lý Weierstrass) Nếu tập D là comp ct và hàm f
liên tục trên D thì c h i ài to n P1 và P2 đều có nghiệm tối
Ví dụ 1.1 Tìm 5
Ta có k 5 với giá trị ban đầu x0 1 và sau 5 lần lặp ta được kết quả khá chính xác 52.236067977
1.2.2 Phương pháp chia đôi
Phương pháp lặp nói trên để tìm x k là tương đương với tìm
Trang 8nghiệm của hàm 2
0
f x x k Đối với bất kỳ f x trong
đoạn a b , phương pháp chia đôi hoạt động theo cách như thể hiện ,trong Hình 1.3
Hình 1.3 Phương pháp chia đôi tìm thấy nghiệm x*
Trang 9Đây là giá trị gần đúng bằng 2,5% giá trị đúng của
Hình 1.4 Phương pháp Newton cho nghiệm gần đúng x*
bởi xn1 từ giá trị xn trước đó
Tại bất kỳ điểm xn(xem hình 1.4), ta có hàm gần đúng nhờ khai triển Taylor từ x x n1x n về x : n
x
*
n x
O
B A
Trang 101.2.4 Phương pháp Newton dùng cho giải hệ phi tuyến
Cho hàm vectơ phi tuyến nhiều biến
Trang 111.3 CHƯƠNG TRÌNH MATLAB GIẢI PHƯƠNG TRÌNH 1.3.1 Phương pháp lặp đơn
Trước hết, ta xây dựng hàm simpiter() để giải phương trình:
1.3.4 Phương pháp Newton dùng cho giải hệ phi tuyến
Sử dụng Matlab, tìm nghiệm của hệ: 2
y
x e x y
Trang 12CHƯƠNG 2 THUẬT TOÁN HEURISTIC TÌM NGHIỆM
CỦA BÀI TOÁN TỐI ƯU 2.1 BÀI TOÁN TỐI ƯU PHI TUYẾN KHÔNG RÀNG BUỘC
Hầu hết các bài toán tối ưu là phi tuyến, quy hoạch phi tuyến do
đó một phần quan trọng của phương pháp tối ưu hóa toán học
2.1.1 Bài toán cực trị hàm nhiều biến
Bài toán quy hoạch phi tuyến không ràng buộc được phát biểu như sau: min f x với điều kiện n
Trang 131,0 T
x là điểm cực tiểu địa phương của f
2.1.2 Bài toán hàm đơn biến
Ví dụ 2.2 Tìm cực đại và cực tiểu của hàm số:
2.1.3 Bài toán hàm nhiều biến
Cho hàm nhiều biến 1, 2, , T n,
2.1.5 Phương pháp giảm nhanh nhất
Bản chất của phương pháp này là để tìm hàm mục tiêu f x
thấp nhất có thể từ điểm n
x
Trang 14Vì ta cố gắng tìm xấp xỉ thấp hơn (tốt hơn) cho hàm mục tiêu, cần số hạng vế phải là âm
2.1.6 Phương pháp tìm kiếm trực tiếp (Hooke-Jeeves-Wood)
Ví dụ 2.4 Tìm cực tiểu của hàm sau: 2
1, 2 3 1 4 1 2 5 2
f x x x x x x Chọn điểm cơ sở ban đầu 1
vb Xét tọa độ x 1
Trang 16Lặp lại một số lần dò tìm quanh 1
b với h nhỏ hơn 10 lần, sau
mỗi lần dò tìm ta nhận được giá trị cực tiểu của hàm là 0 và điểm
cực tiểu là 0,0 T
2.2 BÀI TOÁN TỐI ƯU PHI TUYẾN CÓ RÀNG BUỘC
2.2.1 Phương pháp nhân tử Lagrange
Một phương pháp với giới hạn của tham số là phương pháp
nhân tử Lagrange Nếu ta muốn tìm cực tiểu của hàm f x
với ràng buộc bởi phương trình phi tuyến g x 0, thì ta có thể kết
hợp hàm mục tiêu f x với phương trình phi tuyến này để có một
hàm mới được gọi là hàm Lagrange
Trang 172.2.2 Điều kiện Kuhn - Tucker
Xét bài toán quy hoạch phi tuyến
a Khái niệm điều kiện chính quy
Trang 18
trong đó p x là hàm phạt
Các phương pháp hàm phạt chia thành hai nhóm:
a Phương pháp hàm phạt điểm trong
Hàm p: n được gọi là hàm phạt điểm trong trên miền D
Xây dựng bài toán phụ B t
b Phương pháp hàm phạt điểm ngoài
Hàm p: n được gọi là hàm phạt điểm ngoài trên miền D
củ ài to n 2.24, nếu thỏ mãn:
a) p liên tục trên tập hợp n
b) p x 0, x D p x, 0, x D.
Xây dựng bài toán phụ P t
Ví dụ 2.6 Tìm cực tiểu của hàm số sau:
3
1
13
f x x x với điều kiện
1 00
Trang 192.3.1 Phương pháp Newton bằng Matlab
Trước hết, ta xây dựng hàm newtons(x)
Xây dựng hàm tính Jacobian của hàm f(x)
Để tìm cực tiểu của hàm f(x) bằng phương pháp Newton ta chạy
chương trình ctnewtons.m
Ta được kết quả:
xo = -0.800000000000000 3.200000000000000
fo = 0 0
2.3.2 Phương pháp giảm nhanh nhất bằng Matlab
Tạo M-file trong phần mềm Matlab Xây dựng chương trình
steepest.m có nội dung như sau:
Để tính gradient của hàm f(x), nhập chương trình có nội dung
như sau, rồi lưu lại với tên grad.m
Để thực hiện tính toán cực tiểu hàm mục tiêu f(x) ta chạy
Trang 20Trước hết, tạo file chứa hàm Rosenbrock’s: rosenbrock.m
Xây dựng hàm chứa các ràng buộc: unitdisk.m
Thực hiện chương trình sau 24 bước lặp ta được kết quả:
Iter F-count f(x) Feasibility optimality step
0 3 1.000000e+000 0.000e+000 2.000e+000
1 13 7.753537e-001 0.000e+000 6.250e+000 1.768e-001
2 18 6.519648e-001 0.000e+000 9.048e+000 1.679e-001
21 75 4.568281e-002 0.000e+000 6.437e-005 3.974e-005
22 78 4.568281e-002 0.000e+000 8.000e-006 1.083e-007
23 81 4.567641e-002 0.000e+000 1.601e-006 2.793e-005
24 84 4.567482e-002 0.000e+000 2.437e-008 6.916e-006
Giá trị cực tiểu: 0.04567482475809566 tại (0.786,0.618)
Trang 21CHƯƠNG 3 HAI THUẬT TOÁN METAHEURISTIC
TÌM NGHIỆM TỐI ƯU VÀ PHẦN MỀM ỨNG DỤNG 3.1 PHƯƠNG PHÁP MÔ PHỎNG ĐÀN CHIM DI (PSO)
3.1.1 Ngôn ngữ giả mã của thuật toán mô phỏng đàn chim di (PSO)
Hình 3.1 Sơ đồ biểu diễn các chuyển động của các con chim trong PSO, di chuyển về vị trí toàn cục tốt nhất *
g và vị trí tốt nhất hiện thời *
i
x của mỗi con chim thứ i
3.1.2 Tăng tốc thuật toán mô phỏng đàn chim di (PSO)
Thuật toán PSO chuẩn (như trình bày ở phần 3.1.1) sử dụng cả toàn cục hiện tại tốt nhất *
g và cá thể tốt nhất x*i Trong tăng tốc thuật toán PSO, các vector vận tốc được tạo ra bởi
3.1.3 Hàm có đồ thị đa đỉnh (Multimodal Function)
Trang 22trong đó x y, 0,5 0,5 Rõ ràng, đối với vấn đề cực tiểu ta có thể viết nó như sau:
3.1.4 Mã chương trình tăng tốc thuật toán PSO
Sau khi mở Matlab đánh dòng pso_simpledemo sẽ cho kết quả:
Nếu chạy chương trình này, ta sẽ có giá trị tối ưu sau 200 lần đánh giá hàm mục tiêu (cho 20 con chim với 10 bước lặp) Kết quả hiển thị ở hình 3.3
3.1.5 Thuật toán đàn chim di (PSO) trong trường hợp bài toán có ràng buộc
Phần mềm vừa trình bày ở trên chỉ dùng cho bài toán tối ưu không ràng buộc Với bài toán tối ưu có ràng buộc ta cần bổ sung vào chương trình các đẳng thức và bất đẳng thức ràng buộc Tuy nhiên, chúng ta có hai cách tiếp cận: bổ sung trực tiếp vào chương trình các ràng buộc hoặc biến đổi về tối ưu hóa không ràng buộc
Trang 233.2 THUẬT TOÁN MÔ PHỎNG QUÁ TRÌNH TÔI THÉP (SA) 3.2.1 Các ý tưởng cơ bản
Áp dụng phương pháp mô phỏng quá trình tôi thép để giải bài toán tối ưu được bắt đầu từ năm 1983 bởi các tác giả tiên phong Kirkpatrick, Gelatt và Vecchi Đến nay phương pháp này vẫn được nghiên cứu mở rộng
Hình 3.3: Vị trí bắt đầu và vị trí cuối cùng của 20 con chim
sau 10 bước lặp
Trang 243.2.2 Lựa chọn tham số
3.2.3 Thuật toán mô phỏng quá trình tôi thép
Trong đoạn mã giả lập trên, tìm nhiệt độ ban đầu T0 thích hợp ta
có thể sử dụng bất kỳ thông tin nào được biết trước của hàm mục tiêu
Hình 3.4 Đồ thị hàm Rosenbrock với cực tiểu toàn cục f*0 tại 1,1
3.2.4 Mã chương trình Matlab của thuật toán mô phỏng quá trình tôi thép
Mở matlab gõ sa_simpledemo sẽ cho kết quả
Chuong trinh chay khoang mot phut!
Ham muc tieu:(1-x).^2+100.*(y-x.^2).^2
So luong danh gia:1800
Best location:0.77455 0.57303
Best estimate:0.12321
Trang 25KẾT LUẬN
Nội dung bản luận văn nhằm cung cấp cho người đọc những hiểu biết cơ bản về bài toán tối ưu hóa và các phương pháp giải để tìm nghiệm cực tiểu toàn cục của chúng, từ các phương pháp kinh điển đến các phương pháp hiện đại Luận văn được chia thành 3 chương
Chương 1 Cơ bản về tối ưu hóa Chương này cho ta khái niệm bài toán tối ưu hóa, tức là tìm nghiệm *
x để *
f x có giá trị cực tiểu trên một miền ràng buộc nào đó Đồng thời, giới thiệu một số phương pháp cổ điển giải bài toán tối ưu một biến, có từ thời Newton, mà bạn đọc gặp đâu đó trong chương trình phổ thông nhưng chưa có dịp xem lại một cách hệ thống
Chương 2 Thuật toán heuristic tìm nghiệm của bài toán tối ưu Chương này giới thiệu hàng loạt phương pháp kinh điển được sử dụng thường xuyên trong nghiên cứu cũng như trong ứng dụng của ngành toán tối ưu để giải các bài toán tối ưu đa biến, phi tuyến Tuy nhiên, điểm đáng nhấn mạnh là các thuật toán heuristic này, đặc biệt các thuật toán dựa trên tính khả vi của hàm mục tiêu và các hàm ràng buộc chỉ cho ta được nghiệm cực tiểu địa phương Việc tìm nghiệm cực tiểu toàn cục là khó khăn, trừ trường hợp quy hoạch lồi
Chương 3 Hai thuật toán Metaheuristic tìm nghiệm tối ưu và phần mềm ứng dụng
Như đã trình bày ở chương 2, các phương pháp heuristic kinh điển tuy được sử dụng nhiều trong nhiều lĩnh vực kỹ thuật, kinh tế,
xã hội và có nhiều thành tựu, nhưng một hạn chế lớn là dễ bị kẹt tại điểm dừng (đặc biệt các phương pháp khai thác tính khả vi) tức là tại nghiệm cực tiểu địa phương, rất khó thoát khỏi “bẫy địa phương” này để tìm đến nghiệm toàn cục
Trang 26Chương 3 cũng là chương cuối cùng, giới thiệu hai thuật toán hiện đại để tìm nghiệm toàn cục, hy vọng khắc chế được nhược điểm kẹt “bẫy địa phương” của các phương pháp heuristic đã biết Hai thuật toán này gọi là thuật toán Metaheuristic với tên gọi
1 – Thuật toán mô phỏng đàn chim di (PSO)
2 – Thuật toán mô phỏng quá trình tôi thép (SA)
Tính heuristic của thuật toán thể hiện ở chỗ các tác giả nảy sinh ý tưởng dựa vào quan sát tập tính bay di trú của đàn chim tìm chỗ tốt
nhất (ví dụ minimum nhiễm) hoặc quy trình tôi thép trong công
nghiệp xử lý thép tại từng mức nhiệt hạ dần cho đến khi đạt chất lượng
thép tốt nhất (minimum khuyết tật cấu trúc củ th p) Việc tìm nghiệm
mới bắt chước tự nhiên này đã cho kết quả khả quan
Tính meta (tức “mức c o” hoặc “siêu” so với heuristic truyền
thống) thể hiện ở chỗ tính heuristic kết hợp thêm tính ngẫu nhiên bằng bộ số phát ngẫu nhiên để điều chỉnh hướng tìm nghiệm mới
nhằm hy vọng thoát khỏi “ ẫy đị phương” để tìm được nghiệm tốt
hơn Điều này cũng là sự bắt chước tập tính phần lớn con chim bay theo hướng chung của đàn nhưng cũng có những con chim khác bay theo hướng ngẫu nhiên, nhờ đó hy vọng tìm được chỗ đậu tốt hơn chỗ đậu mà cả đàn đang theo
Chương này còn có thêm nội dung thú vị là hai phần mềm được viết bằng ngôn ngữ Matlab cụ thể cho hai thuật toán Metaheuristic nêu trên Người đọc có thể gõ code này để chạy kiểm chứng
Luận văn này là một tài liệu bổ ích cho bản thân tác giả và hy vọng luận văn sẽ là tài liệu tham khảo bổ ích cho người đọc nhiều thông tin về hoạt động thời sự của ngành toán tối ưu hiện nay Vì vậy, tôi rất mong nhận được sự góp ý, nhận xét của các thầy cô và đồng nghiệp