1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

26 167 1

Đ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 26
Dung lượng 737,32 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠ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 2

Cô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 3

MỞ ĐẦ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 4

4 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 5

CHƯƠ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 6

Khô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 7

Chú ý 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 |tf 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  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 52.236067977

1.2.2 Phương pháp chia đôi

Phương pháp lặp nói trên để tìm xk là tương đương với tìm

Trang 8

nghiệm của hàm   2

0

f xx  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 xn1 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 n1x n về x : n

x

*

n x

O

B A

Trang 10

1.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 11

1.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 12

CHƯƠ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 13

1,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 14

Vì 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 xxx xx Chọn điểm cơ sở ban đầu  1  

vb Xét tọa độ x 1

Trang 16

Lặ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 17

2.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 xx  x với điều kiện  

 

1 00

Trang 19

2.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 20

Trướ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 21

CHƯƠ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 22

trong đó  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 23

3.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 24

3.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 25

KẾ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 26

Chươ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

Ngày đăng: 26/05/2020, 17:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w