Sự hội tụ của thuật toán Hooke Jewes

Một phần của tài liệu Bài toán quy hoạch phi tuyến không ràng buộc (Trang 48 - 52)

Định nghĩa 3.1. [7]z∗được gọi là cực tiểu địa phương nếu

L(z∗,ε) = {z∈ Rn : f(z) < f(z∗)và kz−z∗k <ε}

với độ đo Lebergue0đầy đủ với∀εđủ nhỏ.

Nếu f liên tục tạiz∗ thìz∗ cũng là cực tiểu địa phương của f theo định nghĩa truyền thống. Tuy nhiên ta cũng dễ dàng thấy rằng{zm} không phải luôn hội tụ về một cực tiểu địa phương.

Xét một phản ví dụ đơn giản như hàm

f =      kxk2,∀x ∈ Q −1,∀x ∈/ Q

Rõ ràng khi z = 0 không phải là điểm cực tiểu địa phương của f, nếu {gm} chỉ chứa n điểm hợp lý thì sẽ ngộ nhận z = 0 là cực tiểu địa phương. Do đó, định nghĩa cực tiểu địa phương được chỉnh sửa theo định nghĩa(3.2)dưới đây.

Định nghĩa 3.2. [7]Cực tiểu địa phươngz∗của một tập mở là một điểm màL(z∗,ε)

không chứa tập mở nào trong không gian topo với∀εđủ nhỏ.

Mệnh đề 3.1. [7]Nếu {zm}m∈Mlà giới hạn của dãy vô hạn{zm}thì

lim

m∈Minf(hm) =0 lim

m∈Msup(Nm) = ∞,

trong đóNm là số các bước lặp tìm kiếm trong thuật toán Hooke- Jeeves.

3.3. Ví dụ

Tính cực tiểu của hàm

f(x1,x2) = 3x12+4x1x2+5x22.

Áp dụng theo thuật toán Hooke- Jeeves, trình tự giải bài toán như sau

Bước 1. Chọn điểm cơ sở ban đầub1= (4, 3)T, độ dài bước khởi điểmh=1, hằng số ε = 10−3 và cơ sở e1 = (1, 0)vàe2 = (0, 1). Thay tọa độ điểm cơ sở vào hàm f(x1,x2)ta tính được giá trị kỷ lục f b= f(b1) = 141.

1.1. Dò tìm quanh điểm cơ sở. Đặt v = b1. Ta lần lượt xét 2 tọa độ x1vàx2 tương ứng với 2 cơ sởe1vàe2.

• Xét tọa độ x1. Lần lượt tính được v+he1 = (5, 3)T vàv−he1 = (3, 3)T sau đó thay vào hàm f(x1,x2) ta tính được giá trị tương ứng f(v+he1) = 180và f(v−he1) = 108 và lấy giá trị nhỏ nhất trong 2 giá trị (min

f(v+he1), f(v−he1) =108). Sau đó so sánh với giá trị kỷ lục f b, nếu nhỏ hơn thì lấy giá trị đó làm giá trị kỷ lục mới ngược lại xét tọa độ x2 (vì 108 < 141nên đặtv := v−

• Xét tọa đọ x2. Tương tự như như với xét tọa độ x1. Tính v+he2 = (3, 4)T vàv−he2= (3, 2)T thay vào được

minnf(v+he2) =155, f(v−he2) =71o =71 < f b=108

nên đặt b2 = v−he2 = (3, 2)T. Thấy b1 6= b2 suy ra giá trị kỷ lục mới được gán lại f b = f(b2) =71.

1.2.1. Dò tìm quanh mẫu xuất phát từb2= (3, 2)T. Tính điểm mẫu theo công thứcv=2b2−b1 = (2, 1)T và f(v) = 25. Vì f(v)< f bnên đặt lại giá trị kỷ lục mớif b := f(v) =25.Ta lại xét 2 tọa độx1,x2ứng với hai cơ sởe1,e2.

• Xét tọa độ x1. Tính v+he1 = (3, 1)T, f(v+he1) = 44vàv−he1 = (1, 1)T, f(v−he1) =12. Thấymin{44, 12} =12 < f b =25nên đặt v:=v−he1 = (1, 1)T và giá trị kỷ lục mới f b := f(v) = 12.

• Xét tạo độ x2. Tínhv+he2 = (1, 2)T, f(v+he2) = 31vàv−he2 = (1, 0)T, f(v−he2) = 3. Vìmin{31, 3} = 3 < f b = 12nên đặt b3 =

v−he2 = (1, 0)Tvàb36=b2suy ra giá trị kỷ lục mới f b:= f(b3) = 3. Tiếp tục dò tìm quanh mẫu lần 2.

1.2.2. Dò tìm theo mẫu với các giá trị được gán lạib1 := b2 = (3, 2)T,b2 :=

b3 = (1, 0)T và có f b = 3. Tính được mẫu v = 2b2−b1 = (−1,−2)T (adsbygoogle = window.adsbygoogle || []).push({});

thay vào có f(v) = 31> f b =3nên giá trị f bvẫn giữ nguyên.

• Xét tọa độ x1. Ta tính đượcv+he1 = (0,−2)T, f(v+he1) = 20và v−he1 = (−2,−2)T, f(v−he1) = 48. Ta thấymin{20, 48} =20 >

f b =3nên giá trị kỷ lục giữ nguyên.

• Xét tọa độ x2. Ta tính đượcv+he2 = (−1,−1)T, f(v+he2) = 12và v−he2 = (−1,−3)T, f(v−he2) = 60. Ta thấymin{12, 60} =12 >

f b =3nên giá trị kỷ lục giữ nguyên.

• Dừng tìm kiếm theo mẫu từ b2 = (1, 0)T. Đặt lại giá trịb1 := b2 = (1, 0)T và thực hiện lại(1.1).

1.3 Dò tìm quanh điểm cơ sở b1 = (1, 0)T với giá trị f b = 3. Đặt v = b1. Tương tự ta xét • Tọa độ x1. Tính v+he1 = (2, 0)T, f(v+he1) = 12 và v−he1 = (0, 0)T, f(v−he1) = 0. Vìmin{12, 0} = 0 < f b = 3nên đặt v := v−he1= (0, 0)T và giá trị kỷ lục mới f b = f(v) =0. • Tọa độ x2. Tính v+he2 = (0, 1)T, f(v+he1) = 5 và v−he1 = (0,−1)T, f(v−he1) = 5. Vì min{5, 5} = 0 > f b = 0 nên vvà f b giữ nguyên. • Đặtb2 :=v= (0, 0)T 6=b1và giá trị kỷ lục mới f b= f(b2) = 0.

Dò tìm theo mẫu vớib2 = (0, 0)T,b1 = (0, 0)Tvàf b =0. Tínhv=2b2−b1= (−1, 0)T, f(v) =3. Do f(v) > f bnên giá trị kỷ lục giữ nguyên.

• Xét tạo độ x1. Tính v+he1 = (0, 0)T, f(v+he1) = 0 vàv−he1 = (−2, 0)T, f(v−he1) = 12. Ta thấy min{0, 12} = 0 = f b nên giữ nguyên giá trịvvà f b.

• Xét tạo độ x2. Tínhv+he2 = (−1, 1)T, f(v+he2) = 4vàv−he2 = (−1,−1)T, f(v−he2) = 12. Ta thấy min{4, 12} = 4 > f b = 0 nên giữ nguyên giá trịvvà f b.

• Dừng tìm kiếm theo mẫu từ b2 = (0, 0)T và quay lại bước dò tìm quanh điểm cơ sở cũb2, vì thế ta đặt lạib1 :=b2 = (0, 0)T(tao tác 1.1) . Do không tìm được điểm tốt hơn nên tiếp tục dò tìm quanh điểmb1 = (0, 0)T với độ dài bướchgiảm đi 10 lần so với (Bước 1).

Bước 2. Lặp lại dò tìm quanh điểm b1cho đến khi độ dài bướch =εthì dừng lại và kết luận(0, 0)T là điểm cực tiểu với fmin = f(0) =0. Chú ý rằng để nhân kết thúc ta chọnhsau mỗi bước giảm đi10lần so với trước.

Một phần của tài liệu Bài toán quy hoạch phi tuyến không ràng buộc (Trang 48 - 52)