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

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

Nội dung

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

Trang 1

-

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

Trang 2

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

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

Người hướng dẫn khoa học: TS HỒNG QUANG TUYẾN

Đà Nẵng – Năm 2015

Trang 3

Tôi cam đ an đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu tr g luận văn là trung thực và chưa từng được

ai công bố t b t kỳ công trình nào khác

Tác giả luận văn

Nguy n Quang Thịnh

Trang 4

MỤC LỤC

MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Mục đích nghiên cứu 2

3 Đối tượng và phạm vi nghiên cứu 2

4 Phương pháp nghiên cứu 2

5 Ý nghĩa khoa học và thực tiễn 2

6 Cấu trúc của luận văn 2

CHƯƠNG 1 BÀI TOÁN TỐI ƯU VÀ CÁC KHÁI NIỆM CƠ BẢN 4 1.1 BÀI TOÁN TỐI ƯU 4

1.1.1 Một số khái niệm cơ bản 5

1.1.2 Điều kiện tồn tại nghiệm 10

1.2 CÁC THUẬT TOÁN TÌM NGHIỆM SƠ CẤP 13

1.2.1 Phương pháp lặp đơn 13

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

1.2.3 Phương pháp Newton 16

1.2.4 Phương pháp Newton dùng cho giải hệ phi tuyến 18

1.3 CÁC CHƯƠNG TRÌNH MATLAB 20

CHƯƠNG 2 THUẬT TOÁN HEURISTIC TÌM NGHIỆM BÀI TOÁN TỐI ƯU 26 2.1 BÀI TOÁN TỐI ƯU PHI TUYẾN KHÔNG RÀNG BUỘC 26 2.1.1 Bài toán hàm đơn biến 27

Trang 5

2.1.2 Bài toán hàm nhiều biến 27

2.1.3 Phương pháp Newton 28

2.1.4 Phương pháp giảm nhanh nhất 29

2.1.5 Phương pháp tìm kiếm trực tiếp (Hooke-Jeeves-Wood) 32 2.2 BÀI TOÁN TỐI ƯU PHI TUYẾN CÓ RÀNG BUỘC 36

2.2.1 Phương pháp hàm phạt 36

2.2.1.1 Phương pháp hàm phạt điểm ngoài 37

2.2.1.2 Phương pháp hàm phạt điểm trong 38

2.2.2 Phương pháp nhân tử Lagrange 40

2.2.3 Điều kiện Kuhn - Tucker 42

2.3 MỘT SỐ CHƯƠNG TRÌNH LẬP TRÌNH MATLAB 44

CHƯƠNG 3 HAI THUẬT TOÁN METAHEURISTIC TÌM NGHIỆM TỐI ƯU VÀ PHẦN MỀM ỨNG DỤNG 49 3.1 PHƯƠNG PHÁP MÔ PHỎNG ĐÀN CHIM DI (PSO) 50

3.1.1 Ngôn ngữ giả mã của thuật toán mô phỏng đàn chim di 51 3.1.2 Tăng tốc thuật toán mô phỏng đàn chim di (PSO) 53

3.1.3 Hàm có đồ thị đa đỉnh (Multimodal Function) 54

3.1.4 Mã chương trình tăng tốc thuật toán PSO 56

3.1.5 Thuật toán PSO trong trường hợp bài toán có ràng buộc 61 3.2 THUẬT TOÁN MÔ PHỎNG QUÁ TRÌNH TÔI THÉP (SA) 62 3.2.1 Các ý tưởng cơ bản 62

3.2.2 Lựa chọn tham số 63

3.2.3 Thuật toán mô phỏng quá trình tôi thép 65

3.2.4 Mã chương trình Matlab của thuật toán SA 67

Trang 6

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ántố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

Cụ thể hơn, phương pháp Metaheuristic là chiến lược hướng dẫn quá trìnhtìm kiếm Mục đích của phương pháp là khai thác hữu hiệu không gian tìmkiếm để tìm được nghiệm gần tối ưu Các kỹ thuật dùng cho Metaheuristic

là khá rộng từ các thủ tục tìm kiếm địa phương đơn giản đến các tiến trình

“học” phức tạp

Phương pháp Metaheuristic được phát triển mạnh mẽ từ thập niên 80của thế kỷ trước cho đến nay So với các phương pháp kinh điển (các phươngpháp bước hóa), phương pháp Metaheuristic có thể không chắc tìm thấynghiệm tối ưu toàn cục chính xác ở một số lớp bài toán Nhưng bằng cáchkết hợp thêm phương pháp tối ưu ngẫu nhiên (stochastic) người ta vẫn tìmthấy nghiệm đủ tốt dựa trên tập các biến ngẫu nhiên Hoặc là với tập chấpnhận được khá lớn, phương pháp Metaheuristic sẽ tìm thấy nghiệm đủ tốtvớ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ặccác phương pháp heuristic đơn giản

Phương pháp Metaheuristic được ứng dụng nhiều trong các bài toán tối

ưu tổ hợp (nổi tiếng là bài toán người đi du lịch, bài 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ỡ bài toán (sốnút mạng), điều mà các phương pháp tìm kiếm vét cạn không thể thực hiệnđược

Trang 7

Trên đây là lý do tôi chọn đề tài: "Thuật toán Metaheuristic giải bàitoá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

a Đối tượng nghiên cứu của luận văn là một số phương pháp giải bài toántối ưu hiện đại

b Phạm vi nghiên cứu của luận văn là hai thuật toán Metaheuristic tìmnghiệm tối ưu (nội dung chính của luận văn) cùng với phần mềm ứngdụng chạy thử nghiệm trên một số ví dụ cụ thể theo ngôn ngữ lập trìnhMatlab

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ảngcủ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

• Về mặt khoa học, luận văn cho người đọc hiểu được bản chất toán họctrong ứng dụng của khoa học kỹ thuật

• Về mặt thực tiễn, đề tài sẽ là 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 8

một số thuật toán sơ cấp, cùng chương trình chạy thử trên ngôn ngữ lậptrình Matlab

Trong chương 2, trình bày một số thuật toán heuristic tìm nghiệm củabài toán tối ưu phi tuyến không ràng buộc như “phương pháp giảm nhanhnhất”, “phương pháp Newton”, “phương pháp tìm kiếm trực tiếp (Hooke –Jeeves – Wood), một số thuật toán giải bài toán tối ưu phi tuyến có ràngbuộc “Điều kiện Kuhn-Tucker”, “phương pháp nhân tử Lagrange”, “phươngpháp hàm phạt”, cùng chương trình chạy thử trên ngôn ngữ lập trình Matlab.Trong chương 3, giới thiệu hai thuật toán Metaheuristic tìm nghiệm tối

ưu toàn cục Đó là “tối ưu hóa mô phỏng đàn chim di (PSO)” và “tối ưu hóa

mô phỏng quá trình tôi thép (SA)”, cùng chương trình chạy thử trên ngônngữ lập trình Matlab

Trang 9

CHƯƠNG 1

BÀI TOÁ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 hiện hầu khắp mọi nơi, từ sản xuất kinhdoanh đến thiết kế kỹ thuật, từ lập kế hoạch kỳ nghỉ của bạn đến chọn côngviệc cho tương lai Trong tổ chức kinh doanh thì cần tối đa lợi nhuận và tốithiểu chi phí Trong thiết kế kỹ thuật thì cần tối đa hiệu suất của sản phẩmdược thiết kế đồng thời tối thiểu các chi phí Ngay cả việc đơn giản là lập kếhoạch cho kỳ nghỉ, ta cũng muốn tối đa sự hưởng thụ và tối thiểu chi phí

Do đó, các nghiên cứu về tối ưu hóa luôn có ý nghĩa khoa học và thực tế,đặc biệt các phương pháp giải quyết bài toán tối ưu có vai trò ứng dụng tolớn

Trong chương này, trình bày các khái niệm cơ bản của bài toán tối ưu,các thuật toán tìm nghiệm sơ cấp, kèm theo chương trình Matlab

Bài toán Một xí nghiệp sản xuất n loại sản phẩm cần sử dụng m loạinguyên liệu khác nhau Gọixj là số lượng sản phẩm thứ j j = 1, n và cj làlãi thu được của một sản phẩm thứ j Biết rằng để sản xuất một sản phẩmloại j cần một lượng nguyên liệu aij i = 1, m Gọi bi là số lượng tối đa củanguyên liệu i mà xí nghiệp có Bài toán đặt ra là hãy sản xuất mỗi loại sảnphẩm với số lượng bao nhiêu để tổng lợi nhuận thu được là lớn nhất

Ta có mô hình toán học của bài toán trên như sau: max Pn

j=1

cjxj

Trang 10

với điều kiện:

j=1

aijxj ≤ bi i = 1, m

xj ≥ 0 j = 1, n1.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 x ∈ D (1.1)hoặc

max f (x) với điều kiện x ∈ D (1.2)trong đó, D ⊆Rn được gọi là tập nghiệm chấp nhận được hay tập ràng buộc

và f : D → R Mỗi điểm x ∈ D được gọi là một nghiệm chấp nhận được haymột phương án chấp nhận được (có thể gọi tắt là một phương án)

Chú ý 1.1.1 Không giảm tổng quát, ta chỉ xét bài toán 1.1

f (x∗) < f (x) ,∀x ∈ D và x 6= x∗Không phải bài toán 1.1 nào cũng có nghiệm cực tiểu toàn cục và nếu bàitoá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àncục chặt Xem minh họa hình 1.1 (trường hợp hàm mục tiêu f (x) là hàmmột biến)

Trang 11

Hình 1.1: Hàm mục tiêu f(x) là hàm một biếnGiá trị tối ưu (hay giá trị cực tiểu) của bài toán 1.1 được kí hiệu là:

f (x∗) < f (x) ,∀x ∈ B (x∗, ε)∩ D và x 6= x∗Các khái niệm tương tự cũng được định nghĩa cho bài toán 1.2 Cụ thể,

Trang 12

Hình 1.2: Nghiệm cực tiểu địa phương chặt

f (x∗) > f (x) ,∀x ∈ B (x∗, ε)∩ D và x 6= x∗Điểm x∗ ∈ D được gọi là nghiệm tối ưu toàn cục hoặc nghiệm cực đạitoàn cục của bài toán 1.2, nếu điểm x∗ ∈ D sao cho

f (x∗) ≥ f (x) , ∀x ∈ D

Điểm x∗ ∈ D được gọi là nghiệm tối ưu toàn cục chặt hoặc nghiệm cựcđại toàn cục chặt của bài toán 1.2, nếu điểm x∗ ∈ D sao cho

f (x∗) > f (x) ,∀x ∈ D và x 6= x∗Giá trị tối ưu (hay giá trị cực đại) của bài toán 1.2 được ký hiệu là:

max

x ∈D f (x) hoặc max{f (x) |x ∈ D}

Trang 13

Tương tự, ta ký hiệu arg max{f (x) |x ∈ D} là tập nghiệm tối ưu củabài toán 1.2 Nếu bài toán chỉ có một nghiệm tối ưu thì x∗ có thể viết

gi(x) ≤ 0, i = 1, , p được gọi là một ràng buộc của bài toán Vì ràng buộc

gi(x) ≥ 0 ⇔ −gi(x) ≤ 0 và gi(x) = 0 ⇔

(

gi(x) ≤ 0

−gi(x) ≤ 0 (1.4)Điều này chứng tỏ, công thức 1.3 biểu diễn tất cả các ràng buộc

Chú ý 1.1.3 Nghiệm tối ưu toàn cục cũng là nghiệm tối ưu địa phươngnhưng điều ngược lại chưa chắc đúng Tuy nhiên, nếu D là tập lồi và f (x)

là hàm lồi thì nghiệm tối ưu địa phương của bài toán 1.1 cũng là nghiệm tối

Trang 14

x = λx + (1− λ)x∗ = x∗+ λ(x− x∗) ∈ B(x∗, ε)∩ D, ∀λ > 0 đủ nhỏ.

Do x∗ là nghiệm cực tiểu địa phương và f là hàm lồi nên:

f (x∗) ≤ f (x) ≤ λ.f (x) + (1 − λ) f (x∗) ⇒ f (x∗) ≤ f (x) , ∀x ∈ D.Điều đó chứng tỏ x∗ là nghiệm tối ưu toàn cục của bài toán đang xét

b Giả sử x∗ là nghiệm tối ưu địa phương chặt Theo a), x∗ cũng là nghiệmtối ưu toàn cục Bây giờ ta giả thiết phản chứng rằng, x∗ không phảinghiệm tối ưu toàn cục duy nhất của bài toán, tức là tồn tại x ∈ D, x 6=

Cuối cùng, trường hợp x∗ là nghiệm tối ưu địa phương và hàm mục tiêu

f là lồi chặt Vì hàm lồi chặt là hàm lồi nên từ a) ta có x∗ là nghiệm tối

ưu toàn cục Ta cũng giả thiết phản chứng rằng x∗ không phải nghiệmtối ưu toàn cục duy nhất của bài toán, tức là tồn tại x ∈ D, x 6= x∗ và

f (x) = f (x∗) Do f là hàm lồi chặt nên:

f

1

Trang 15

Chú ý 1.1.4 Nếu bài toán 1.1 không có nghiệm tối ưu thì giá trị tối ưu củabài toán này, ký hiệuinf f (D) là cận dưới lớn nhất (hay giá trị infimum) củahàm f trên D

Giả sử, nếu bài toán 1.2 không có nghiệm tối ưu thì giá trị tối ưu của bàitoán này, ký hiệu sup f (D) là cận trên bé nhất (hay giá trị supremum) củahàm f trên D

Nhắc lại, t∗ = sup f (D) , t∗ ∈ R ∪ {+∞} thì f (x) ≤ t∗ ∀x ∈ D và

∃ {xn} ⊂ D sao cho lim

n →∞f (xn) = t∗.Tương tự, t∗ = inf f (D) , t∗ ∈ R ∪ {+∞} thì f (x) ≥ t∗ ∀x ∈ D và

∃ {xn} ⊂ D sao cho lim

n →∞f (xn) = t∗.1.1.2 Điều kiện tồn tại nghiệm

Mục đích của quy hoạch toán học là nghiên cứu tính chất của tập nghiệm

và xây dựng các thuật toán để tìm nghiệm của bài toán tối ưu Câu hỏi đầutiên đặt ra là: “Bài toán cần giải có nghiệm tối ưu hay không?”

Xét bài toán tối ưu 1.1, có bốn phương án có thể xảy ra:

a Bài toán 1.1 không có phương án chấp nhận được, tức D = ∅;

b Bài toán có nghiệm tối ưu, tức tồn tại x∗ ∈ D sao cho:

Trang 16

của bài toán 1.1 luôn tồn tại nhưng nghiệm tối ưu thì không nhất thiết tồntại Việc tìm kiếm điều kiện đảm bảo để bài toán có nghiệm tối ưu là vấn đềquan trọng.

Mệnh đề 1.1.2 Điều kiện cần và đủ để bài toán 1.1 có nghiệm tối ưu là tập

⇐) Ngược lại, nếu tập f (D)+ có một cận dưới hữu hạn thì cận dưới lớnnhất (hay infimum) của tập này là hữu hạn và ta ký hiệu nó là t0.Theo định nghĩa của infimum,

Điều đó chứng tỏ x0 là nghiệm tối ưu của bài toán 1.1

Định lý 1.1.1 Cho D là tập compact khác rỗng Khi đó:

a Nếu hàm f nửa liên tục dưới trên D thì bài toán 1.1 có nghiệm tối ưu

b Nếu hàm f nửa liên tục trên trên D thì bài toán 1.2 có nghiệm tối ưu

Trang 17

Chứng minh Do tính tương tự ta chỉ cần chứng minh phần (a)

Giả sử giá trị tối ưu của bài toán 1.1 là t0 = inf f (D) Theo định nghĩa,

f x0

≤ limn

→∞f (xn) = t0

Kết hợp điều kiện này với 1.5 ta có t0 = inf f (D) = f x0 Chứng tỏ x0

là nghiệm tối ưu của bài toán

Hệ quả 1.1.1 (Định lý Weierstrass) Nếu tập D là compact và hàm f liêntục trên D thì cả hai bài toán 1.1 và 1.2 đều có nghiệm tối ưu

Chứng minh Hàm liên tục là hàm nửa liên tục trên và nửa liên tục dưới.Như vậy hệ quả trên được trực tiếp suy ra từ định lý 1.1.1

Nếu tập khác rỗng D chỉ đóng mà không bị chặn và hàm f nửa liên tụcdưới trên D thì nói chung, có thể hàm f không đạt cực tiểu trên D, tức bàitoán 1.1 không có nghiệm tối ưu

Định lý 1.1.2 Cho tập đóng khác rỗng D ⊂ Rn Nếu hàm f là nửa liên tụcdưới trên D và thỏa mãn điều kiện bức (coercive) trên D : f (x) → +∞ khi

x ∈ D và kxk → +∞, thì bài toán 1.1 có nghiệm tối ưu

Chứng minh Lấy một điểm bất kỳ x0 ∈ D Trước hết, ta chứng minh rằngtập dưới D = 

x ∈ D|f (x) ≤ f x0 là tập compact

Thật vậy, do f nửa liên tục dưới trên D nên với mỗi dãy {xn} ⊂

D,{xn} → x mà dãy {f (xn)} hội tụ, ta có f (x) ≤ lim

n →∞f (xn) ≤ f x0.Suy ra x ∈ D, chứng tỏ D là tập đóng

Hơn nữa, nếu D không bị chặn thì phải tồn tại một dãy xk

⊂ D tức

f xk

≤ f x0, sao cho

xk −→ +∞ khi k → ∞

Trang 18

tập compact.

Theo định lý 1.1.1.a), hàm f đạt cực tiểu trên D, tức tồn tại x∗ ∈ D saocho f (x∗) ≤ f (x) ∀x ∈ D Dễ thấy, x∗ cũng chính là nghiệm cực tiểu củabài toán 1.1

Bản chất của việc tìm kiếm các nghiệm của một bài toán tối ưu tươngđương với việc tìm kiếm điểm tới hạn (điểm cực trị) Để tìm điểm tới hạn,chúng ta thường giải quyết các điều kiện dừng khi đạo hàm cấp một bằngkhông, tuy vậy sẽ có sự khác nhau cơ bản khi điểm cực trị đạt tại các biên Do

đó, tìm hiểu các phương pháp giải phương trình phi tuyến rất quan trọng.Các phương pháp giải tích tìm nghiệm đúng là rất hiếm, và trong nhiềutrường hợp, chỉ có giải pháp gần đúng là có thể Trong mục này, sẽ giới thiệucác phương pháp cơ bản của kỹ thuật liên quan đến các thuật toán sơ cấptìm nghiệm tối ưu

k ) qua việc sử dụng phương trình:

x = 12



x + kx



(1.7)

bắt đầu cho ngẫu nhiên x = 1 Để thực hiện việc lặp, ta kí hiệu xn cho giátrị của x tại lần lặp thứ n Như vậy, phương trình 1.7 cung cấp một cáchtính toán x tại n + 1 (ký hiệu là xn+1) Ta có

Trang 19

Nếu ta bắt đầu từ giá trị cơ bản, cho x0 = 1 tại n = 0, chúng ta có thể lặp

đi lặp lại để được đáp số với độ chính xác tùy ý

Bởi vì việc lặp đi lặp lại này sẽ cho dãy x1, x2, , xn hội tụ vào giá trị √kđiều đó chứng tỏ rằng

xn+1

xn

= 12



1 + k

x2 n

.Vậy xn → √k

Ví dụ 1.2.1 Tìm √5

Lời giải Ta có k = 5 với giá trị ban đầu x0 = 1 và lặp 5 lần như sau:

x1 = 12

vì √k > 0(trong trường hợp này, việc lặp sẽ tiếp cận đến −√k)

Vì vậy, một sự lựa chọn hợp lý sẽ là dự đoán giá trị ban đầu Ở bước banđầu, nếu x20 < k, x0 cận dưới và k

x0 là cận trên Nếu x20 > k thì x0 là cậntrên và k

x0 là cận dưới Với các lặp khác, các cận mới sẽ là xn và k

xn.Trong thực tế, giá trị xn+1 luôn luôn là giữa hai cận xn và k

xn và các ướctính mới xn+1 là trung bình hoặc trung bình của hai cận Điều này chứng tỏrằng dãy trên hội tụ vào giá trị thực sự của √k

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 nghiệmcủa hàm f (x) = x2 − k Đối với bất kỳ f (x) trong đoạn [a, b],

Các thủ tục lặp bắt đầu với hai giới hạn đoán ban đầu xa (cận dưới), và

xb (cận trên ) để nghiệm x = x∗ nằm giữa hai cận này thì và có những dấu

Trang 20

Hình 1.3: Phương pháp chia đôi tìm thấy

nghiệm x∗ của f(x) = 0, x ∈ [a, b]

khác nhau Giả sử, f (xa) > 0 và f (xb) < 0, hay f (xa) f (xb) < 0 Chọn

xa = a và xb = b Ước tính tiếp theo chỉ là trung điểm của A và B và ta có

xn = 1

Sau đó chúng ta phải kiểm tra dấu của f (xn) Nếu f (xn) < 0 (cùng dấu với

f (xb)), ta cập nhật cận trên mới xb = xn Nếu f (xn) > 0 ( cùng dấu với

f (xa)) ta cập nhật cận dưới mới xa = xn Trong trường hợp đặc biệt khi

f (xn) = 0, ta có kết quả phải tìm Việc lặp tiếp tục theo cách tương tự chođến khi một độ chính xác nhất định có thể đạt được hay số lượng lặp lại đủlớn được quy định

Ví dụ 1.2.2 Tìm √π

Lời giải Ta có f (x) = x2 − π Chọn xa = 1, xb = 2 (vì π < 4)

f (xa) = 1− π < 0; f(xb) = 4− π > 0Điểm chia đôi thứ nhất:

x1 = 1

2(xa + xb) = 1, 5 ⇒ f (x1) = −0, 8916 < 0,

Trang 21

Tại bất kỳ điểm xn.

Ta có hàm gần đúng nhờ khai triển Taylor từ ∆x = xn+1− xn về xn:

f (xn+1) = f (xn+ ∆x) ≈ f (xn) + f′(xn) ∆x (1.10)dẫn đến

Trang 22

Hình 1.4: Phương pháp Newton tìm nghiệm gần đúng x∗

Vì vậy, việc dự đoán giá trị ban đầu là một ý tưởng tốt để hạn chế số lầnlặp

Trang 23

Xuất phát x0 = 1 Ta có:

x1 = 1− 1− e−1

1 + e−1 ≈ 0, 5378828427và

1.2.4 Phương pháp Newton dùng cho giải hệ phi tuyến

Phương pháp Newton có thể viết được dưới dạng tổng quát để giải hệphương trình phi tuyến là:

F (x) = [F1(x), F2(x),· · · , Fn(x)]T (1.14)trong đó, x = [x1, x2,· · · , xn]T = [x, y,· · · , z]T hay viết gọn F (x) = 0.Xấp xỉ F (x) bởi một hàm tuyến tính với phần dư R(x, xn) trong lân cận

xn Ta có

R (x, xn) = F (xn) + J (xn) (x− xn) (1.15)và

J(x) = ∆Ftrong đó, J là ma trận Jacobi của F Tức là

Trang 24

xk+1 = xk − J−1F xk (1.17)

xn+1 − xn ≤ εQuá trình lặp yêu cầu một vector khởi đầu x0, thường được thiết lập bởi

F (x) = x1 − e−x2

x21 − x2

!, x = x1

xn+1 = xn− J−1F (xn) trong đó, ma trận Jacobi J là:

J = 1 e−x

2

2x1 −1

!,với ma trận nghịch đảo là:

Trang 25

Nghiệm chính xác của bài toán là (0, 6529186405; 0, 4263027510)T.

Ta nhận thấy rằng sau bốn lần lặp ta đã ước lượng gần đúng với giá trịchính xác

% g,x0 là hàm và giá trị ban đầu

% tolx là sai số cho phép

% maxiter là số lần lặp tối đa

Trang 27

function [x,err,xx]=bisection(g,a,b,tolx,maxiter)tol=eps;

Trang 30

% cac buoc lap

while herrx > maxerr

Trang 31

f (x) không lồi hoặc lõm thì để tìm cực tiểu toàn cục hoặc cực đại toàn cụcthì khó khăn hơn nhiều.

Trong chương này, chúng ta sẽ xét lần lượt một số thuật toán giải bàitoán tối ưu phi tuyến dựa trên tính khả vi của hàm mục tiêu f (x) Kèm theo

đó là một số chương trình chạy thử trên ngôn ngữ lập trình Matlab

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 x ∈ Rn (2.1)trong đó, f : Rn →R là hàm phi tuyến

Trang 32

Bài toán tối ưu không ràng buộc đơn giản mà việc tìm nghiệm không gặpkhó khăn có lẽ là bài toán tìm kiếm cực đại hoặc cực tiểu của hàm đơn biến

f (x) Cho bài toán tối ưu không ràng buộc, các giá trị tối ưu xảy ra tại điểmtới hạn được đưa ra bởi điều kiện dừng f′(x) = 0 Tuy nhiên, điều kiện nàychỉ là điều kiện cần, chứ không phải là đủ Nếu f′(x∗) = 0 và f′′(x∗) > 0thì x∗ là điểm cực tiểu địa phương Ngược lại, nếu f′(x∗) = 0 và f′′(x∗) < 0thì x∗ là điểm cực đại địa phương Tuy nhiên, nếu f′(x∗) = 0 nhưng f′′(x∗)

là không xác định (cả dương và âm) khi x → x∗ thì x∗ tương ứng với mộtđiểm yên ngựa

Ví dụ 2.1.1 Tìm cực đại và cực tiểu của hàm số:

f (x) = xe−x2, −∞ < x < ∞Lời giải Giải phương trình f′(x) = 0 Tức là,

e−x2 − 2x2e−x2 = 0

Vì e−x2 6= 0 nên

x = ±

√2

2.1.2 Bài toán hàm nhiều biến

Cho hàm nhiều biếnx = (x1, x2, , xn)T ∈ Rn, bài toán tối ưu được phátbiểu tương tự đối với hàm một biến:

min / max

x ∈R n

Trang 33

Cho hàm f (x) là hàm bậc hai Theo phép khai triển Taylor tại x∗ ∈ Rnsao cho x = x∗ + εu

f (x∗ + εu) = f (x∗) + εu∇f (x∗) + 1

2uT∇2f (x∗ + εu) u + (2.3)trong đó, ∇f (x) và ∇2f (x) là vector gradient và ma trận Hessian, với ε đủnhỏ, u là vector

n× n có n giá trị riêng λj với n vector riêng vj, j = 1, n

Vì ma trận A đối xứng nên các vector riêng vj, j = 1, n trực giao Tức

là một biến thể của f (x) , khi x chuyển từ điểm dừng x∗ dọc theo hướng vj

là đặc trưng bởi các giá trị riêng

Nếu λj > 0, |ε| > 0 dẫn đến |∆f| = |f (x) − f (x∗)| > 0 Nói cách khác,

f (x) tăng khi |ε| tăng Ngược lại, nếu λj < 0 thì f (x) giảm khi |ε| tăng.Đặc biệt, λj = 0 khi đó hàm f (x) không thay đổi theo hướng vj tươngứng

2.1.3 Phương pháp Newton

Ta biết rằng phương pháp Newton là một phương pháp lặp thông thường

để tìm nghiệm của hàm phi tuyến một biến f (x) trên đoạn [a, b] Phương

Trang 34

pháp này tương đương với tìm nghiệm của f′(x) = 0 với hàm mục tiêu f (x)cho trước.

Cho trước hàm f (x) liên tục khả vi, ta có khai triển Taylor tại điểm

∇f (xn) + ∇2f (xn) ∆x = 0 (2.8)Điều này dẫn đến

x = xn − G−1∇f (xn)trong đó, G = ∇2f (xn) là ma trận Hessian Nếu thủ tục lặp bắt đầu từvector x0 thì công thức lặp của Newton cho lần thứ n là

Điều đó chứng tỏ rằng nếu f (x) là hàm bậc hai thì nghiệm chính xác có thểđược tìm thấy trong một bước duy nhất Tuy nhiên, phương pháp này khônghiệu quả đối với các hàm không phải là hàm bậc hai Để tăng tốc độ hội tụ,

ta thường xét bước nhỏ hơn α ∈ (0, 1] vì vậy phương pháp Newton được sửađổi

Đôi khi chúng ta phải mất nhiều thời gian để tính ma trận Hessian tạobởi các đạo hàm bậc hai Cách tốt nhất là đồng nhất ma trận G−1 = I ,chúng ta có phương pháp bán Newton

khi đó phương pháp này gọi là phương pháp giảm nhanh nhất

2.1.4 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 x(n) Từ phép khai triển Taylor hàm f (x) tại x(n) ta có:

Trang 35

trong đó, ∆s = x(n+1)− x(n) là vector số gia Vì ta cố gắng tìm xấp xỉ thấphơn (tốt hơn) cho hàm mục tiêu, cần số hạng vế phải là âm Tức là:

f x(n) + ∆s− f x(n) = (∇f)T∆s < 0 (2.13)Trong giải tích, ta đã biết tích uTv của hai vector u và v là lớn nhất khichúng cùng phương nhưng hướng ngược nhau Vì vậy, (∇f)T∆s nhỏ nhấtkhi

trong đó, α > 0 là số bước Trong trường hợp này, khi ∇s hướng giảm theohướng giảm âm Như ta đã nêu ở trên, đây là phương pháp bán Newton.Việc lựa chọn số bước α > 0 là rất quan trọng Một số bước nhỏ có nghĩa

là di chuyển theo hướng cực tiểu địa phương, trong khi với số bước lớn hơnrất có thể vượt qua và tiến ra xa cực tiểu địa phương Do đó, α = α(n) phảikhác nhau sau mỗi bước lặp và phải chọn α để cực tiểu hóa hàm mục tiêu

Lời giải Áp dụng phương pháp hướng giảm bắt đầu với x0 = (10, 15)T

Ta có: ∇f = (20x1 + 5x2, 5x1 + 20x2 − 60)T

Suy ra: ∇f x0

= (275, 290)TTại bước lặp thứ nhất ta có

x1 = x0 − α0(275, 290)T

Trang 36

Chọn α0 sao cho f x(1) là giá trị cực tiểu, có nghĩa là

f (α0) = 10(10− 275α0)2 + 5 (10− 275α0) (15− 290α0) + 10(12− 290α0)2đạt cực tiểu Điều này trở thành bài toán tối ưu cho biến độc lập α0 Tất cảcác kỹ thuật giải bài toán tối ưu như phương pháp Newton có thể được sửdụng để tìm α0 Ta có thể tìm được nghiệm α0 bằng cách thiết lập:

!

Tương tự cực tiểu của hàm f (α2) tại α2 ≈ 0.040 Vì vậy,

x(3) ≈ (−0.8000299, 3.20029)TSau đó, việc lặp lại cho đến khi đáp ứng được yêu cầu bài toán

Trong tính toán, ta biết rằng công thức đạo hàm riêng của chúng bằng không

Trang 37

Ta biết giá trị cực tiểu chính xác là

Có nhiều biến thể của phương pháp hướng giảm, nếu bài toán tối ưu làtìm cực đại thì phương pháp này trở thành phương pháp hướng tăng vì mụcđích là đến điểm cao nhất

2.1.5 Phương pháp tìm kiếm trực tiếp (Hooke-Jeeves-Wood)Phương pháp này được sử dụng để giải bài toán 2.1 khi hàm mục tiêu

f (x) không khả vi hoặc có khả vi nhưng việc lấy đạo hàm riêng thường khókhăn do f (x) có cấu trúc phức tạp hoặc khi có ít thông tin về f (x)

Ý tưởng của phương pháp là: Xuất phát từ một điểm tùy ý gọi là điểm cơ

sở, việc tìm kiếm được thực hiện quanh điểm cơ sở nhằm tìm được điểm tốthơn Nếu thành công thực hiện bước chuyển dời điểm cơ sở theo hướng giảmcủa hàm mục tiêu f (x) , x = (x1,· · · , xn)T tới điểm mới Trái lại quay lạiđiểm cơ sở trước đó hoặc giảm độ dài bước dò tìm Thuật toán gồm các bướcsau:

Bước 1 (Bước khởi đầu)

Chọn b(1) = (x1, , xn)T làm điểm cơ sở, ∆xj > 0 làm độ dài bước chobiến xj

Bước 2 (Dò tìm quanh điểm cơ sở)

Trang 38

Kết thúc quá trình dò tìm.

Có hai khả năng xảy ra:

• b(2) = b(1), nghĩa là việc dò tìm không làm giảm giá trị hàm, ta tiếp tục

dò tìm quanh điểm b(1) với độ dài bé hơn (thường giảm 10 lần)

• b(2) 6= b(1), nghĩa là việc dò tìm có kết quả, ta chuyển sang thực hiệnbước 3

Bước 3 (Dò tìm theo mẫu)

a Dịch chuyển từ điểm cơ sở b(2) theo hướng v := b(2) − b(1) vì dò theohướng này giá trị hàm sẽ giảm ta tính giá trị hàm tại điểm mẫu mới

v := 2b(2)− b(1)

b Tiến hành dò tìm quanh điểm mẫu v như bước 2, nếu giá trị hàm thuđược xung quanh điểm mẫu v nhỏ hơn giá trị đã thu tại điểm cơ sở b(2)thì ta nhận điểm cơ sở mới b(3)

c Lặp lại bước dò tìm với b(2) thay cho b(1), b(3) thay cho b(2) Nếu khôngtìm được điểm có giá trị hàm tốt hơn thì dừng việc dò tìm theo mẫu từđiểm b(2) và dò tìm quanh điểm cơ sở cũ b(2), bằng bước 2

Trang 39

Bước 4 (Dừng quá trình tìm kiếm)

Khi độ dài bước ∆ := max{∆x1, , ∆xn}T nhỏ hơn một giá trị quy địnhtrước

Ví dụ 2.1.3 Tìm cực tiểu của hàm sau:

f (x1, x2) = 3x1 + 4x1x2 + 5x22.Lời giải

Chọn điểm cơ sở ban đầu b(1) = (4, 3)T , độ dài bước h = 1, ε = 10−3.Giá trị ban đầu fb = f b(1)

= 141 Đặt v = b(1).Xét tọa độ x1

v + he1 = (5, 3)T, f (v + he1) = 180 > fb = 141,

v − he1 = (3, 3)T, f (v − he1) = 108 < fb = 141Đặt v := v − he1 = (3, 3)T đây là giá trị tốt nhất mới fb = f (v) = 108.Xét tọa độ x2

v + he2 = (3, 4)T, f (v + he2) = 155 > fb = 108

v − he2 = (3, 2)T, f (v − he2) = 71 < fb = 108Đặt b(2) := v − he2 = (3, 2)T 6= b(1) = (4, 3)T ,

giá trị ban đầu fb = f b(2)

= 71.Bước 3 Đặt v = 2b(2) − b(1) = (2, 1)T, f (v) = 25 ⇒ fb = 25

Xét tọa độ x1

v + he1 = (3, 1)T, f (v + he1) = 44 > fb = 25

v− he1 = (1, 1)T, f (v− he1) = 12 < fb = 25Đặt v := v − he1 = (1, 1)T đây là giá trị tốt nhất mới, fb = f (v) = 12Xét tọa độ x2

v + he2 = (1, 2)T, f (v + he2) = 31 > fb = 12

v − he2 = (1, 0)T, f (v − he2) = 3 < fb = 12

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

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