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

Một số thuật toán giải số bài toán tối ưu phi tuyến

60 8 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 60
Dung lượng 395,84 KB

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

Nội dung

Nội dung chính của luận văn là nghiên cứu cơ sở toán học của các thuậttoán cơ bản giải bài toán quy hoạch phi tuyến tính không ràng buộc và có ràng buộc, tìm hiểu chi tiết các bước mô tả

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC

- -

NGUYỄN HỮU ĐẠT

MỘT SỐ THUẬT TOÁN GIẢI SỐ BÀI TOÁN TỐI ƯU PHI TUYẾN.

LUẬN VĂN THẠC SĨ TOÁN HỌC

THÁI NGUYÊN - 2019

Trang 2

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC KHOA HỌC

- -

NGUYỄN HỮU ĐẠT

MỘT SỐ THUẬT TOÁN GIẢI SỐ BÀI TOÁN TỐI ƯU PHI TUYẾN.

Chuyên ngành: Toán ứng dụng

Mã số : 8 46 01 12

LUẬN VĂN THẠC SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS Vũ Vinh Quang

THÁI NGUYÊN - 2019

Trang 3

Lời cảm ơn

Trước hết, em xin bày tỏ lòng kính trọng và lòng biết ơn sâu sắc tới TS

Vũ Vinh Quang, người thầy đã tận tình hướng dẫn, chỉ bảo và cung cấpnhững tài liệu rất hữu ích để em có thể hoàn thành luận văn

Xin cảm ơn lãnh đạo Trường Đại học Khoa học - Đại học Thái Nguyên

đã tạo điều kiện giúp đỡ tôi về mọi mặt trong suốt quá trình học tập vàthực hiện luận văn

Em xin bày tỏ lòng biết ơn tới các thầy, cô giáo giảng dạy lớp K11C

đã truyền đạt kiến thức và phương pháp nghiên cứu khoa học trong suốtnhững năm học vừa qua

Xin chân thành cảm ơn anh chị em học viên cao học K11C và bạn bèđồng nghiệp đã động viên và khích lệ tôi trong quá trình học tập, nghiêncứu và làm luận văn

Tôi xin bày tỏ lòng biết ơn sâu sắc đến gia đình, người thân, nhữngngười luôn động viên, khuyến khích và giúp đỡ về mọi mặt để tôi có thểhoàn thành công việc nghiên cứu

Thái Nguyên, tháng 4 năm 2019

Tác giả luận văn

Nguyễn Hữu Đạt

Trang 4

Lời cam đoan

Tôi xin cam đoan:

Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướngdẫn trực tiếp của thầy giáo hướng dẫn TS Vũ Vinh Quang

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tác giả,tên công trình, thời gian, địa điểm công bố

Tôi xin chịu trách nhiệm với lời cam đoan của mình

Thái Nguyên, tháng 4 năm 2019

Tác giả luận văn

Nguyễn Hữu Đạt

Trang 5

Mục lục

1.1 Mô hình tổng quát của bài toán tối ưu hóa 3

1.2 Phân loại bài toán tối ưu 4

1.3 Một số phương pháp giải cơ bản bài toán tuyến tính 5

1.3.1 Thuật toán hình học 5

1.4 Mô hình bài toán quy hoạch lồi tổng quát 6

1.4.1 Khái niệm tập lồi, hàm lồi 6

1.4.2 Khái niệm về Gradient và đạo hàm hướng 8

1.4.3 Bài toán quy hoạch lồi tổng quát, điều kiện tối ưu 8 1.4.4 Cực tiểu hàm lồi một biến 10

1.5 Phương pháp giải bài toán quy hoạch tuyến tính tổng quát trên phần mềm MATLAB 15

Trang 6

2.1 Một số kiến thức cơ bản 16

2.1.1 Định nghĩa 16

2.1.2 Điều kiện tối ưu 17

2.2 Các thuật toán sử dụng đạo hàm 18

2.2.1 Thuật toán Gradient 18

2.2.2 Thuật toán đường dốc nhất 20

2.2.3 Thuật toán Newton 23

2.3 Các thuật toán không sử dụng đạo hàm 26

2.3.1 Phương pháp tìm trực tiếp (Direct search) 26

2.3.2 Phương pháp Powell 27

2.3.3 Phương pháp Nelder và Mead 28

3 Một số thuật toán giải số bài toán tối ưu phi tuyến có ràng buộc 32 3.1 Một số kiến thức cơ bản 32

3.1.1 Hàm Lagrange 32

3.1.2 Thiết lập điều kiện tối ưu Kuhn - Tucker 33

3.2 Một số thuật toán 35

3.2.1 Thuật toán Gradient 35

Trang 7

Bảng ký hiệu

QHTT Quy hoạch tuyến tính;

Trang 8

Mở đầu

Mô hình bài toán quy hoạch phi tuyến nói chung là một mô hình quantrọng trong lớp các bài toán tối ưu hóa Mô hình này có rất nhiều ứngdụng trong các bài toán cơ học và vật lý, kinh tế và thương mại Về mặt lýthuyết, đã có rất nhiều các tài liệu trình bày các thuật toán lý thuyết giải

mô hình các bài toán này trên mô hình tổng quát Tuy nhiên việc nghiêncứu và cài đặt chi tiết các thuật toán và ứng dụng vào một số mô hình đốivới một số bài toán cụ thể trong cơ học và vật lý là chưa nhiều người đềcập đến

Nội dung chính của luận văn là nghiên cứu cơ sở toán học của các thuậttoán cơ bản giải bài toán quy hoạch phi tuyến tính không ràng buộc và

có ràng buộc, tìm hiểu chi tiết các bước mô tả thuật toán, xây dựng sơ đồkhối và cài đặt các thuật toán trên ngôn ngữ lập trình cụ thể

Nội dung luận văn gồm ba chương, phần phụ lục được cấu trúc như sau:Chương 1 Một số kiến thức cơ bản

Trình bày mô hình tổng quát của bài toán tối ưu hóa, phân loại bài toán tối

ưu, các phương pháp biến đổi cơ bản, một số thuật toán giải bài toán tối ưuhàm lồi một biến, giải bài toán quy hoạch tuyến tính trên MATLAB Cáckết quả là những kiến thức quan trọng được ứng dụng trong các chươngsau của luận văn

Chương 2 Mô hình bài toán tối ưu hóa phi tuyến

Trong chương này, trình bày một số thuật toán giải số bài toán tối ưu phi

Trang 9

tuyến không ràng buộc Cụ thể của chương nêu mô hình tổng quát, điềukiện tối ưu, các thuật toán sử dụng đạo hàm như thuật toán Gradient,thuật toán đường dốc nhất, thuật toán Newton, thuật toán Gradient liênhợp, các thuật toán không sử dụng đạo hàm như thuật toán tìm trực tiếp,thuật toán Powell, thuật toán Nelder và Mead.

Chương 3 Một số thuật toán giải số bài toán tối ưu phi tuyến có ràngbuộc

Nội dung của chương là tìm hiểu một số thuật toán giải số bài toán tối ưuphi tuyến có ràng buộc như khái niệm hàm Lagrange, phương pháp hàmphạt, các thuật toán tìm nghiệm xấp xỉ Các thuật toán đã được cài đặttrên môi trường MATLAB version 7.0

Trang 10

Chương 1

Một số kiến thức cơ bản

Nội dung chính của chương là trình bày mô hình tổng quát của bài toántối ưu hóa, phân loại bài toán tối ưu, các phương pháp biến đổi cơ bản,một số thuật toán giải bài toán tối ưu hàm lồi một biến, giải bài toán quyhoạch tuyến tính trên MATLAB Các kết quả là các kiến thức quan trọngđược ứng dụng trong các chương sau của luận văn Các kiến thức đượctham khảo trong các tài liệu [1], [2], [4]

1.1 Mô hình tổng quát của bài toán tối ưu hóa

Tối ưu hóa là một trong những lĩnh vực quan trọng của bài toán có ảnhhưởng đến hầu hết các lĩnh vực khoa học, công nghệ, kinh tế và xã hội.Việc tìm giải pháp tối ưu cho một bài toán thực tế nào đó chiếm một vaitrò hết sức quan trọng như việc tiến hành lập kế hoạch sản xuất hay thiết

kế hệ thống điều khiển các quá trình Nếu sử dụng các kiến thức trênnền tảng của toán học để giải quyết các bài toán cực trị, người ta sẽ đạtđược hiệu quả kinh tế rất cao Điều này phù hợp với mục đích của các bàitoán đặt ra trong thực tế hiện nay

Mô hình bài toán tối ưu tổng quát được phát biểu như sau:

Trang 11

Cực đại hóa (cực tiểu hóa) hàm:

f (X) → max/minVới các điều kiện:

mãn hệ ràng buộc lập nên một miền D được gọi là miền phương án (haymiền chấp nhận được), mỗi điểm X ∈ D gọi là một phương án Một

được gọi là phương án tối ưu

1.2 Phân loại bài toán tối ưu

Dựa trên mô hình tổng quát, người ta thường phân loại lớp các bài toántối ưu như sau:

- Quy hoạch tuyến tính: Là những bài toán mà hàm mục tiêu f (X)

- Quy hoạch phi tuyến: Là những bài toán một trong hàm mục tiêu

- Quy hoạch lồi: Là các bài toán quy hoạch mà các hàm mục tiêu

f (X) là lồi trên tập các ràng buộc D lồi

Trang 12

- Quy hoạch lõm: Là các bài toán quy hoạch mà các hàm mục tiêu

f (X) là lõm trên tập các ràng buộc D lõm

- Quy hoạch rời rạc: Bài toán tối ưu được gọi là quy hoạch rời rạcnếu miền ràng buộc D là tập hợp rời rạc Trong trường hợp riêng khi cácbiến chỉ nhận giá trị nguyên thì ta có quy hoạch nguyên

- Quy hoạch đa mục tiêu: Nếu trên cùng một miền ràng buộc taxét đồng thời các hàm mục tiêu khác nhau

Trong các lĩnh vực kinh tế kỹ thuật thì quy hoạch phi tuyến, quy hoạchtuyến tính là những bài toán thường gặp

1.3 Một số phương pháp giải cơ bản bài toán tuyến tính

1 Vì các ràng buộc của bài toán luôn luôn là các nửa mặt phẳng, do

đó miền phương án luôn luôn là một đa giác lồi (là giao của các nửamặt phẳng)

2 Xét đường thẳng f = m được gọi là đường mức Hiển nhiên khiđường mức chuyển động song song trong miền phương án thì điểm chạm

Trang 13

cuối cùng của đường mức với miền luôn luôn là một trong các đỉnh của đagiác (hoặc một cạnh của đa giác) Đấy chính là phương án tối ưu cần tìm.Xuất phát từ nhận xét trên, chúng ta có thuật toán hình học gồm cácbước như sau:

1.4 Mô hình bài toán quy hoạch lồi tổng quát

a Tập lồi

Định nghĩa:

∀λ ∈ [0; 1] Nghĩa là nếu x, y ∈ C thì đoạn thẳng [x, y] ∈ C

Trang 14

có nghĩa là điểm x = λx1 + (1 − λ)x2 trong [x1, x2] thì mọi điểm của đồ

bán xác định dương Khi H(x) xác định dương thì hàm f (x) gọi là hàmlồi chặt

Trang 15

với giả thiết x1 là cực tiểu Do đó f (x) chỉ có một cực tiểu duy nhất.Như vậy trong quy hoạch lồi thì giá trị tối ưu địa phương cũng là giátrị tối ưu toàn cục.

+ Gradient của f (x) là một vectơ có các thành phần là đạo hàm riêng

a Phát biểu bài toán

Tìm x sao cho hàm mục tiêu

f (x) → minCác ràng buộc:

Trang 16

trong đó C là tập lồi, f , gi là các hàm lồi trên C.

b Điều kiện tối ưu

+ Miền nghiệm chấp nhận được:

Định lí 1.2 (Định lý Kuhn - Tucker, phát biểu năm 1951)

Giả sử bài toán quy hoạch lồi thỏa mãn điều kiện Slater:

Trang 17

Khi đó điều cần và đủ để x∗ trở thành nghiệm tối ưu là tồn tại một vectơ

ngựa của hàm Lagrange L(x, λ)

Chú ý Điều kiện Slater không được thỏa mãn thì có thể không tồn tại

Thuật toán chia đôi

Cho hàm số f (x) xác định trên đoạn [a, b] với điều kiện f (x) lồi trên

Trang 18

+ Thuật toán chắc chắn hội tụ sau hữu hạn bước lặp, tốc độ hội tụ phụ

+ Phương pháp chia đôi dễ lập trình nhưng không tối ưu về tính toán

Trang 19

Bảng 2.1: Nghiệm xấp xỉ tối ưu sau các bước lặp

Trang 20

Phương trình p2+ p − 1 = 0 có nghiệm dương: p = −1+

√ 5

Hai số p và (1-p)=0,38197 được gọi là hằng số Fibonacci

số vàng

Thuật toán lát cắt vàng

cho trước

Nhận xét

a/ Trong cả hai trường hợp ta đều có:

b/ Một trong hai điểm chia ở bước sau trùng với điểm chia ở bước trước

Do đó thuật toán này cho phép giảm số phép tính

Thuật toán mặt cắt vàng được mô phỏng bằng ngôn ngữ MATLABfunction mc=mat_cat_vang_1(a, b, epxilon)

L=b-a;

p=(-1 + sqrt(5))/2; count=0;

while L > epxilon

Trang 21

Bảng 1.3: Nghiệm xấp xỉ tối ưu sau các bước lặp

Trang 22

1.5 Phương pháp giải bài toán quy hoạch tuyến tính tổng

quát trên phần mềm MATLAB

Trong phần mềm MATLAB, bài toán Quy hoạch tuyến tính có dạngmặc định là:

[X, f val, exitf lag, output] = linprog(C, A, b, A ∈ q, beq, lb, ub)

[X, f val, exitf lag, output] = intprog(C, A, b, Aeq, beq)

Trong đó:

Lệnh linprog để lấy các nghiệm không âm

Lệnh bintprog để lấy các nghiệm nguyên có giá trị 1 hoặc 0

Trong dấu () là các vectơ và ma trận đã cho của hàm mục tiêu và các ràngbuộc

Trong dấu [ ] là các đại lượng cần tính:

X - giá trị tối ưu của nghiệm,

f val - giá trị min của hàm mục tiêu

Exitf lag - số nguyên thông báo kết thúc tính toán Các kết quả tính khiexitf lag = 1, được coi là thành công tốt đẹp, nghĩa là hàm số hội tụ vềmột nghiệm Các kết quả tính tương ứng exitf lag ≤ 0 được coi là khôngthành công với các giải thích tương ứng

Output- cho các thông tin về phép tính đã thực hiện

Trang 23

2.1 Một số kiến thức cơ bản

Trang 24

khi k → +∞, C < +∞.

+ Điều kiện cần của tối ưu địa phương

cực đại địa phương hoặc điểm yên ngựa

+ Điều kiện đủ của cực tiểu địa phương

Trang 25

Nhận xét Trong trường hợp tổng quát khi hàm mục tiêu là phi tuyếnthì việc xác định các điểm dừng là không thực hiện được Do đó chúng taphải nghiên cứu các thuật toán xác định nghiệm xấp xỉ.

2.2 Các thuật toán sử dụng đạo hàm

Đây là phương pháp phổ biến nhất, luôn luôn hội tụ

Thuật toán sử dụng sơ đồ lặp

có thể chọn bước đi bằng hằng số cho cả quá trình hoặc tính giá trị bước

đi tối ưu theo phương pháp tối ưu một tham số

Quy tắc Armijo xác định bước đi tối ưu tổng quát

Trang 26

Bước 3: Kiểm tra

Sử dụng quy tắc Armijo, thuật toán Gardient được mô tả bằng ngôn ngữMATLAB như sau:

function gd=gradient_amo(epxilon, k)

clc;

X=[-1; -2];

while and(ss > epxilon, count < k)

Trang 27

Bảng 2.2: Nghiệm xấp xỉ tối ưu sau các bước lặp

Xét bài toán quy hoạch phi tuyến không ràng buộc tổng quát:

cho f (x + λd) < f (x), ∀x ∈ (0, δ)

Giả sử hàm f khả vi tại x Ngoài ra giả sử rằng 5f (x) 6= 0 Lúc đó, có

theo hướng d tại x, với điều kiện ||d|| ≤ 1

Thật vậy, do f khả vi tại x nên:

Trang 28

Do ||d|| ≤ 1 nên theo bất đẳng thức schwartz ta có

giảm nhanh nhất của hàm f tại x Nếu biểu thức ||λd||α(x, λd) được coi làbằng 0 trong công thức (2.1) thì với một giá trị λ > 0 cố định và với điều

Tuy nhiên, biểu thức ||λd||α(x, λd) không nhất thiết phải bằng 0, nên sau

Sau đây là thuật toán của phương pháp đường dốc nhất Dựa trên lý

án tối ưu toàn cục của bài toán quy hoạch phi tuyến không ràng buộc

đã cho

Thuật toán đường dốc nhất

Bước khởi tạo: Cho ε > 0 làm sai số kết thúc Lấy một điểm xuất phát

Các bước lặp (bước lặp thứ k)

Bước 2

Trang 29

X=[1; 3]; ss=10; ep=1/2; lamda =1/3; count =0;

while and(ss > epxilon, count < k)

Các kết quả thực hiện thuật toán được cho trong bảng dữ liệu sau đây

Bảng 2.3: Nghiệm xấp xỉ tối ưu sau các bước lặp

Trang 30

Số bước lặp Sai số Nghiệm xấp xỉ

Nhận xét Thuật toán hội tụ tốt sau 9 bước lặp đạt đến nghiệm tối ưu

Sau đây, chúng ta giải thích ý nghĩa của quy tắc dịch chuyển:

Trang 31

Ngoài ra, dễ thấy điều kiện cần để q(x) đạt giá trị cực tiểu là:

Có thể chứng minh được phương pháp Newton hội tụ (khá nhanh) với

Newton cải biên đã được đề xuất Tuy nhiên đây là giải thuật phức tạp

Ví dụ 3

Quá trình giải được minh họa trong bảng tóm tắt:

Trang 32

toán Newton được mô tả bằng ngôn ngữ MATLAB như sau:

function nw=newton_amo(epxilon, k)

format short e

clc;

X=[1; 3.5]; a=0; b=1;

Xluu=[1; 1]; count =0; ss=10; ep=1/2;

while and(ss > epxilon, count < k)

Trang 33

2.3 Các thuật toán không sử dụng đạo hàm

Tư tưởng chính của thuật toán: ở mỗi bước của thuật toán chỉ biến đổi

như vậy cho tới khi nhận được cực đại

Các bước thuật toán:

Bước 1: Thăm dò bước 1

* Cho một thành phần của x biến đổi, các thành phần khác giữ nguyên:

đều được biến đổi

Như vậy trong Bước 1, tại mỗi bước dịch chuyển theo một biến độc lập,giá trị hàm mục tiêu được so sánh với giá trị của nó tại điểm trước Nếuhàm mục tiêu được cải tiến tại một bước nào đó thì giá trị cũ được thaybằng giá trị mới trong những so sánh sau đó Nếu hàm mục tiêu được cảitiến thì giữ nguyên giá trị cũ

Bước 2: Tìm theo mẫu (Pattern search)

theo mẫu

Tức là:

Trang 34

x(k+1) = tx(k)i − x(b)iTrong đó:

Bước 3:

tìm theo mẫu để xem Bước 2 có kết quả không

* Nếu Bước 2 không kết quả thì kết luận rằng tìm theo mẫu đã thấtbại và lại phải thực hiện lại Bước 1 sao cho việc xác định hướng mới cóhiệu quả

* Nếu Bước 1 liên tiếp không cho hướng mới hiệu quả thì liên tiếp giảm4x cho tới khi hoặc xác định được hướng mới có hiệu quả, hoặc 4x đãnhỏ hơn sai số cho phép

Việc không có khả năng tăng f (x) khi 4x đã khá bé tức là tối ưu cục bộ

đã đạt được

phương pháp dùng đạo hàm nhưng sử dụng lại tiện hơn vì không phảitính đạo hàm

Thuật toán có thể cài đặt được bằng ngôn ngữ lập trình MATLAB

Trang 35

Khi đó xác định được λ(k)i và do đó xác định được:

Tiếp tục tìm theo hướng Gradient liên hợp

J.A Nelder và R.Mead đã dùng đơn hình là những đa diện biến dạng(flexible polyhedron) nhờ ba phép biến đổi: ánh xạ gương, phép co vàphép dãn

Thuật toán được thực hiện theo các bước:

Trang 36

tìm điểm xp Hệ số dãn γ > 1 được tìm từ biểu thức:

đơn hình về tính hội tụ đến cực tiểu Nếu hội tụ thì ngừng tính, nếu chưathì quay lại Bước 2

sự hội tụ Nếu vẫn chưa hội tụ thì quay về Bước 2

về Bước 2

2/ Thực hiện phép co:

Trang 37

Bước 7: So sánh các giá trị fc và f1 Tính fc

đạt được cần sang Bước 8

thì quay lại Bước 2

Trang 39

Chương 3

Một số thuật toán giải số bài toán tối ưu phi tuyến có ràng buộc

Nội dung chương 3 là tìm hiểu một số thuật toán giải số bài toán tối

ưu phi tuyến có ràng buộc như khái niệm hàm Lagrange, phương pháphàm phạt, các thuật toán tìm nghiệm xấp xỉ Các kết quả được tham khảotrong các tài liệu [2], [3], [9]

3.1 Một số kiến thức cơ bản

Xét bài toán quy hoạch phi tuyến có ràng buộc tổng quát:

Lúc đó, hàm Lagrange tương ứng với bài toán trên có dạng sau:

Ngày đăng: 18/06/2021, 10:21

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