Cuốn sách TỐI ƯU PHI TUYẾN – Lý thuyết và phương pháp giải này tập trung trình bày những nội dung cơ bản của lý thuyết tối ưu phi tuyến và các phương pháp thường dùng để giải các bài toán tối ưu phi tuyến có hay không có ràng buộc. Nội dung sách được chia thành bốn phần chính, có thể đọc độc lập với nhau tùy theo nhu cầu học tập, nghiên cứu. Phần cuối liệt kê một số tài liệu tham khảo, đưa ra đáp án các bài tập ở cuối mỗi chương và danh mục từ khóa tra cứu. Sách có thể dùng làm tài liệu giảng dạy cho giáo viên, tài liệu tham khảo, học tập cho sinh viên, học viên cao học, nghiên cứu sinh về một số chuyên đề gần nhau như: Giải tích lồi, Lý thuyết tối ưu, Quy hoạch phi tuyến, v.v..
KHÔNG RÀNG BUỘC
Phương pháp tim theo tia
6.1.1 Tìm chính xác và tìm gần đúng theo tia
Thuật ngữ fờm theo tia, (line search), hay con goi lA tim kiém mét chiéu (one-dimensional search), dude hiểu là một thủ tục tìm cực tiểu (hay cực đại) của hàm một biến
Gia stt f(x), 2 € R” la mot ham n bién va 2°, d € JR" cho trước
Xét hàm một biến ¿(A) = ƒ(#0 + Ad), A > 0 Néu ta tim a* sao cho xÙ + 2#) = mặn #(+Ð o(a*) — mì f(a’ +a*d) = min f(x? + Ad) hay y(a*) = min pt),
142 Chuong 6 Tim cuc tiểu hàm một biến thì cách thức tìm như thế gọi là fm chính xác (hay tầm tối ưu) theo tia (exact line search) và a* được gọi là độ dài bước tối ưu
Nhưng nếu ta chỉ tìm œ đạt được mức giảm ổ > 0 cho trước về giá trị hàm mục tiêu, tức là f(2°) — f(a + ad) > 5 hay (0) — pla) >, thì cách tìm đó gọi là tim gần đúng (hay từm chấp nhận được) theo tia (inexact line search)
Một số trường hợp có thể tìm chính xác theo tia nhờ dùng đạo hàm
Ví dụ 6.1 Tìm cực tiểu của hàm hai biến f(x) = (#1 — 3#s)(# — 3z) + 3) +4 trên tia đi từ điểm z9 = (—3;—1)T theo hướng đ = (2;1)'
Giải: Ta biểu diễn điểm # = (#,#z¿) ` = #Ð + fd thuộc tia đã cho dưới dạng #ị = —3 + 2t, v2 = —1+£ với t >0 Khi đó, bài toán quy về tìm cực tiểu của hàm một biến ¿(#), # > 0 với y(t) = f(x° + td)
=- +6 — 9t + 4 Để tìm cực tiểu của ¿(#), ta cho đạo hàm ¿/(f) = —3/?+12/—9 =0 và nhận được hai nghiệm ¡ = 1, f¿ = 3 Ta thấy ¿”(#) = —6f + 12, vỡ thế g”(1) = 6 > 0 và ¿”(3) = —6 < 0 Vậy ùĂ = 1 (g(ủi) = 0, oy" (t1) > 0) là điểm cực tiểu của ¿(f) với @„¡a = @(1) = 0 Do đó, ham f(x) đạt cực tiểu tại điểm #* = z9 + ¡đ = (—1;0)T trên tia đi từ z? = (—3;—1)T theo hướng d = (2;1)'
Khi cần tính đạo hàm của y(t) = f(x° + td), ta có thể dùng quy tắc lấy đạo hàm của hàm hợp:
() = (Vƒ(z° + 14), đồ và œ"() = (d,V°?ƒ(a° + td)dồ.
Tuy nhiên, nói chung khó có thể tìm được chính xác độ dài bước tối ưu và để tìm được gần chính xác độ dài bước tối ưu thường đòi hỏi rất nhiều công sức Vì thế, trong thực tế tính toán, cách tìm gần đúng theo tia với ít công sức tính toán hơn được dùng phổ biến hơn cả
Có nhiều cách để tìm gần đúng độ dài bước di chuyển từ điểm lap x* tdi điểm lặp tiếp theo #z#*†! theo hướng giảm đ* ((V ƒ(œF), d*) nhở hơn 0) Một cách đơn giản là dùng quy tắc do Armio nêu ra:
Chọn độ dài bước œ thỏa mãn điều kiện f(a) — f(a® + ad") > —ca (V F(x"), d*) hay f(a +ad*) < f(a*) + ea (Vf (x), d*), nghĩa là chọn độ dài bước a sao cho hàm mục tiêu giảm tối thiểu một mức ổ = —eœ (ƒ/ƒ(z!),d"), trong đó số e € (0;1) Quy tắc này thường hay được dùng trong các phương pháp gradient tìm cực tiểu của hàm nhiều biến sẽ được trình bày ở Chương 8
Về đại thể, chiến lược tìm theo tia như sau Trước hết, cho (hay tìm) một khoảng ban đầu mà nó chứa điểm cực tiểu Sau đó, dùng kỹ thuật chia nhỏ hay nội suy nêu ở chương này để thu hẹp dần các khoảng chứa nghiệm cho tới khi độ dài của khoảng nhỏ hơn một mức dung sai định trước
Trước hết, ta nêu một số ký hiệu và một cách đơn giản để xác định khoảng tìm ban đầu Định nghĩa 6.1 Cho hàm một biến ¿ : R > R Gia sti a* thudc [0, +00) véi
Néu c6 khoang dong [a,b] C [0,-+00) sao cho a* € [a,b] thi [a, Ù] được gọi là khoảng tìm kiếm (search interval) của bài toán cực tiểu một bién minyso ¿(A) Vì ta chưa biết chính xác vị trí điểm cực tiểu a* của ¿ trờn [ứ,b| nờn khoảng này được gọi là khoảng bắt dinh (interval of uncertainty).
144 Chuong 6 Tim cuc tiểu hàm một biến
Một phương pháp đơn giản để tìm khoảng ban đầu có tên là phương pháp tiến tà lời (forward-backward method) Ý tưởng cơ bản của phương pháp này như sau Cho trước một điểm ban đầu và một độ dài bước ban đầu, ta tìm thử ba điểm tương ứng ba giá trị mục tiờu dạng “eứo - thấp - cao” Nếu đi theo chiều cao tiến
(tức là điểm sau ở bên phải điểm trước) không đạt kết quả thì sẽ di lui lại (tức là điểm sau ở bên trái điểm trước) Cụ thể, cho điểm ban đầu Ào và độ dài bước họ > 0 Nếu ¿@(Ào + họ) < ¿(Ay), thì bước tiếp theo đi từ Ào + họ và tiếp tục tiến với bước đi dài hơn cho tới khi hàm mục tiêu tăng Còn nếu ¿(Ao + họ) > ¿(Ao), thì bước tiếp theo lại xuất phát từ Às và đi lùi lại cho tới khi hàm mục tiêu tăng Làm như thế, ta nhận được khoảng ban đầu mà nó chứa điểm cực tiểu a*
Thuật toán 6.1 (Phương pháp tiến và lùi)
Bước 1 (Khỏi sự) Chọn trước Ào € [0; +), họ > 0, hệ số nhân ỉ > 1 (thường chọn 6 = 2) Tinh yo = y(Ao) Dat k := 0
Bước 2 (So sánh giá trị hàm) Đặt À¿¿i = À¿ + h¿ và tính yey bởi ¿¿+¡ = ÿ(À¿+¡) Nếu ¿¿¿¡ < yp thi chuyển sang Bước 3, ngược lại chuyển tới Bước 4
Bước 3 (Bước tiến) Dặt hey := 0h;¿, À := À¿, Àkg = Abdi, Pk = Pry, k:=k+1 rồi chuyển tới Bước 2
Bước 4 (Bước lùi) Nếu k = 0 thì đảo ngược hướng tìm: Đặt hạ := —hy, À¿ := A¿¿i rồi chuyển tới Bước 2 Ngược lại, đặt a=min{A, Agi}, 6 = max{A, Anas}, cho ra kết quả [a,b| và dừng thuật toán
Các phương pháp tìm theo tia trình bày ở chương này sử dụng tính đơn mốt (unimodality) của hàm và khoảng Định nghĩa 6.2 Cho ¿ : R — IR, [a,b]| C R Nếu có œ* € [a,Ù] sao cho ¿(A) giảm chặt trên [a, a*] và tăng chặt trên |a*, b| thì ¿(A) goi lA mét ham don mot (unimodal function) trên [a, b| Đoạn [a, bÌ như thế gọi là một khoảng đơn mốt (unimodel interval) của @(À).
Cũng có thể định nghĩa hàm đơn mốt theo một cách khác như sau Định nghĩa 6.3 ¿(A) gọi là một hàm đơn mốt trên [a, b} nêu có duy nhất một số a* € [ứ,b] sao cho hai điều sau đõy đỳng với mọi Ài,Àa € [a,b| và Ài < À¿:
(b) Néu Ay > a* thi ya) < yrs)
Dễ thấy hàm tựa lồi là một hàm đơn mốt và một hàm đơn mốt có thể không liên tục hoặc không kha vi (minh họa ở Hình 6.1) ir œ * œ *
Hinh 6.1 (a) Ham don mét khong lién tuc; (b) Ham don mốt không khả vi
đua 1 "
Vì thế, từ phương trình (6.2), thấy rằng việc tìm theo phương pháp lát cắt vàng là dạng giới hạn của việc tìm theo phương pháp
Fibonacci Tên gọi lát cắt vàng được suy ra từ tên gọi của tỷ số ở phương trình (6.3) Rõ ràng L;_¡ được chia ra làm hai phần sao cho tỷ số của toàn bộ khoảng với phần lớn bằng tỷ số của phần lớn với phần nhỏ, nghĩa là bằng cái gọi là fÿ số àng
Trong quá trình tính toán theo phương pháp lát cắt vàng, khoảng bất định đang xét luôn được ky hiéu 1a (#°, x?) và đã có hai giá trị hàm ƒ¡, ƒa tại các điểm x! va a? trong khoang nay Khi đó, cần xét hai trường hợp (xem Hình 6.7):
Hàm lồi là một trường hợp đặc biệt của hàm đơn mốt và phương pháp lát cắt vàng rất hiệu quả đối với các hàm này Phương pháp lát cắt vàng sử dụng hai hằng số
Hai số này có tính chất đặc biệt f¡ = (fa)?.
156 Chuong 6 Tim cuc tiểu hàm một biến iB th)
Hình 6.7 Thu hẹp khoảng chứa nghiệm
Thuật toán lát cắt vàng tìm cực tiểu hàm f(x) gdm cdc bude sau
Bước 1 Chia đoạn [a,b| ban đầu thành ba phần bởi các điểm z!,
+? và tính giá trị hàm tại các điểm này, cụ thể là tính t'=att(b—a), fi=f(a'); 2 =a+te(b-a), fo = f(a”)
Bước 2 So sénh fi va fo Néu fi < fo thì chuyển tới Bước 3, còn nếu ƒ¡ > ƒs thì chuyển sang Bước 4
Bước 3 Lấy đoạn [ứ, b| mới với ứ = ứ, b = z2 Nếu |b — a| e thì an doan [a,b] thanh ba đoạn BÙI các điểm chia #!, #? với
+” = ứ!, do đú fy = f(z’) = jh và”! =ứ+ ủh(b— ọ), rồi tớnh h = ƒ(!) Chuyển tới Bước 2 với các giá tri a, 6, T, 7, fi, fo mới
Bước 4 Lay doan [a, 6] mới với ứ = z!, b = b
Nếu |b — a < e thì điểm cực tiểu là z* = 2? va f(a*) = fo, ding tính toán
Nếu |b — a| > thi chia doan [@, }] thanh ba doan bdi céc diém chia #!, #2 với #! = z2, do đú ƒd = ƒ(#!) = ƒ; và #2 = ứ+fa(b— 8), rồi tớnh ƒạ = ƒ(#2) Chuyển tới Bước 2 với cỏc giỏ trị ứ, b, đ!, #2, fi, fo mdi
Sơ đồ khối của phương pháp lát cắt vàng được cho trong Hình
6.8 Ưu điểm cơ bản của phương pháp lát cắt vàng là ở chỗ: một trong hai điểm chia đoạn mới trùng với một điểm chia cũ, do đó, ở mỗi bước lặp chỉ cần tính thêm một giá trị hàm ứng với điểm chia mới, nhờ đó tiết kiệm được thời gian tính toán.
Nhập: a,b,e Đặt ¡ = 0,3819660113, tạ =1—hh zÙ=a, z!=a+h(b— a), Jì =ƒ()), vw? =a+ts(b— a), J2 = ƒ(+?), #3 =b
L=2?— 2°, 2 = z2, #—2!, = 2}, w=, fo= fi tl=2, fi = fo v=a+hl, fi=f(c') xv =a+tol, fo =f (x?)
5 Hình 6.8 Sơ đồ khối phương pháp lát cắt vàng
Hinh 6.11b)
Hình 6.11 Kiểm tra điều kiện dừng khi chọn g
Nếu không có điều kiện nào trên đây được thực hiện thì ta lần lượt tăng gấp đôi giá trị g cho đến khi khoảng (0; g) chứa điểm cực tiểu (bức là g thỏa mãn một trong hai điều kiện đã nêu)
Vấn đề còn lại là xác định giá trị g ban đầu Có những khó khăn thực tế nảy sinh khi chọn giá trị này mà lẽ ra cần được áp dung cho mọi bài toán Davidon, Fletcher và Powell đã nêu ra cách chọn ứ như sau: ứ=min [g, — ức — ấn}}, (6.7) trong đó ¿„ là ước lượng dưới cho giá trị cực tiểu đúng của hàm p(h), con 7 là hằng số thường được chọn bằng 1 hay 2
"Thủ tục nội suy bậc ba gồm các bước lặp sau:
Buéc 1 Dat p = 0 Tinh y, = f(z°) va G, = (Vƒ(z°),d) Nếu G, > 0 thi tìm cực tiểu theo hướng —đ: đặt đ © —d va G,
Buéc 2 Udc doan gid tri ym Tinh ¢ theo (6.7)
Buéc 3 Tinh y, = f(x° + qd) va Gy = (Vf (2° + qd), d)
Bước 4 Nộu G, > 0 hoặc ¿„ > Yằ thi [0;q] 1 khoang chita diộm cực tiểu và chuyển sang Bước 5 Nếu ngược lại, thay ứ bằng 2q và trở lại Bước 3
Bước 5 Dùng hệ thức (6.6) hay (6.6*) để xấp xỉ điểm cực tiểu của ¿ trong khoảng |0; g] bởi giá trị r.
166 Chuong 6 Tim cuc tiểu hàm một biến
Bước 6 Nếu || = |(Wƒ(œ9 + r4), đ)| = |G,| < e, trong đó e là độ chính xác cho trước, thì dừng
Bước 7 Trỏ lại Bước 5 với khoảng mới (0;r) (tức đặt q © z), nếu G, > 0, hoặc khoảng (r;g) (bức đặt #9 © #2 + rd và q — q—r), nếu G, < 0 Ở Bước 6, tiến hành kiểm tra giá trị đạo hàm Cũng có thể dừng thủ tục khi vị trí điểm cực tiểu không thay đổi
Cần chú ý rằng, nói chung việc tìm giá trị cực tiểu của hàm thường dễ hơn việc tìm vị trí của điểm cực tiểu Diểm cực tiểu được xác định với độ chính xác kém hơn
Sơ đồ khối thuật toán trên vẽ ở Hình 6.12
Ví dụ 6.7 Dùng phương pháp nội suy bậc ba tìm cực tiểu của ham hai biến ƒ(#) = 100(za — #?)? + (L— #¡)2 trên đường thẳng đi qua điểm (—1;0)" theo hướng (5; 1)" Các giá trị thông số ban đầu: e = 0,00001, g„ = 0 Quá trình giải như sau:
2 Tìm |0, g] chứa cực tiểu: Ude doan ym = 0, tim g = 0,0937 theo (6.7)
4 Do Gg < 0, Yq < ý; nên q + 2q = 0, 1874, Gq = 49, 1843 > 0:
Tìm điểm cực tiểu r € [0;0, 1874] theo các Bước 5 - 7 cho ở bảng Sau
Kết quả tính toán (trên máy): gid tri cuc tiéu finn & 0, 1822355 dat tai diộm ô* = (—0, 34137; 0, 13173)" Số lần lặp tỡm điểm cực tiểu r là 4.
—2 (@p — #m q=min pe xa“ Pm) \ 5 xệ = Gp f(a) thi lap lai (1), (2);
(4) Nếu sau một số lớn lần lặp mà không gặp điểm nào tốt hơn thì giảm Ð (2, 5 hay 10 lần chẳng hạn) và lặp lại (1), (2), (3)
Nếu sau khi đã giảm h xuống dưới mức e > 0 đủ nhỏ định trước mà vẫn không tìm được điểm nào tốt hơn thì lấy điểm hiện có làm điểm cực tiểu
Ví dụ 7.1 Dùng phương pháp Hooke - Jeeves tìm cực tiểu của hàm: ƒ(ai, #2) = 8x} + 4x2 + 523
A Khởi sự Chọn điểm cơ sở ban đầu b! = (4;3)", độ dài bước h = 1 và số e = 1073 Đặt giá trị kỷ lục ƒb = ƒ(b}) = 141
B Dò tìm quanh điểm cơ sở Dặt v = b'
0+ he! = (5:3), ƒ(o + he!) = 180 > ƒb = 141, v —he! = (3;3)", f(v — he!) = 108 < ƒb = 141.
176 Chương 7 Phương pháp không dùng đạo hàm
Dat v := v — he! = (3;3)" Gia tri kỷ lục mới: ƒb = ƒ(ứ) = 108
Xét toa dd we: v+he? = (3;4)", f(v + he?) = 155 > fb = 108, v — he? = (3;2)", f(v — he?) = 71 < fb = 108 Đặt b2 := v — he? = (3;2)' A b! = (4;3)' Giá trị kỷ lục mới fo = f(b?) q
C Dò tìm theo mẫu từ 02 Diém mau v = 26? — b! = (2;1)', f(v) = 25 Gia tri ky luc méi fb = f(v) = 25
Xét toa do x1: v+hel = (3;1)', f(u the!) = 44> fb = 25,
=(1;1)', f(v— he!) < fb% e | = ® | — Đặt ứ := 0 — he! = (1;1)' Giỏ trị kỷ lục mới: ƒb = f(v) = 12
Xét toa dO xo: v+he? = (1;2)", f(u the?) = 31> fb = 12, ò— he? =(1;0)', ƒ(b— he?) =3 < fb = 12
Dat bo := v — he? = (1;0)' A W = (3;2)' Giá trị kỷ lục mới fo= f(b!) =3
C Dò tìm theo mẫu (tiếp) với b1 © WY = (3;2)', Po b? = (1;0)' và ƒb = 3 Điểm mẫu v = 20? — b! = (-1;-2)', f(v) 1> fb=3
Xét toa dé 2: v+he! = (0;-2)", f(v+ he!) = 20> fb =3, v — he! = (—2;—2)', f(v—he!) = 48 > fb =3
Xét toa dO xo: v+he? = (-1;-1)', f(vt+ he?) = 12> fb=3, v — he? = (—1;—3)”, ƒ(ứ — he?) = 60 > fb =3.
Ding tim kiếm theo mẫu từ b? = (1;0)' Dat 6! — b? = (1;0)" va thực hiện B
B Dò tim quanh diém co sé b! = (1;0)' (fb = 3) Dat v = b!
Xét tọa độ z1: v+he! = (2;0)", f(u the!) = 12> fb=3, v—he! = (0;0)', f(v—he') =0 < fb=3
Dat v :=v—he! = (0;0)' Gia trị kỷ lục mới ƒb = ƒ() = 0
0+ he? = (0;1)', ƒ(o+ he?) =5 > ƒb=0, v—he? = (0;-1)', f(v—he?) =5 > fb=0
Dat b? := v = (0;0)' 4 b' = (1;0)' Gia tri ky luc mới ƒb = ƒ°) =0
C Dò tìm theo mẫu với b! = (1;0)', & = (0,0)', fb = 0 Điểm mẫu v = 2b? — b! = (-1;0)', f(v) =3> fb=0
Xét toa do 71: v+he! = (0;0)", f(v+he!) = ƒb=0, vu — he! = (-2;0)", f(v—he') = 12> fb=0
0+ he? = (—1;1)", ƒ(u+ he) =4> ƒb=0, v —he? = (-1;-1)', f(v— he?) > ƒb =0
Chương 8 Phương pháp gradlent
8.1 Phương pháp hướng dốc nhất
Xét bài toán tối ưu không ràng buộc có dạng: min { f(x): 2 € R"}, trong dé f : R” > R 1a mét ham phi tuyén cho trudc Ta sé xây dựng một dóy điểm ô°,2!,x?, sao cho f(a**!) < f(x") vội moi k =0,1,2, , day {a*} hoi tu tdi 2* khi k > 00 va Vf(a*) = 0
Gia sit ta c6 diém x* thudc lan can của +*, khi đó, để giảm hàm muc tiéu, ta sé dich chuyén từ ## theo hướng d* tạo với vécto gradient Vf(ô*) một gúc tự, tức là xỏc định aht! = ok + a,d® trong dé a, > 0, (VF (r*),d*) < 0
Thật vậy, khai triển hàm f(x) thành chuỗi Taylor tại điểm 2”, ta được ƒ(œ) = f(x®) + ax(V F(a"), ab) + Awe p aya, đÈ), 2
: T 2 trong d6 Vf(x) = (42 2/G) "m2 ,V?ƒ(z) = (š 49) de, ? Ora? Den 2e¡0x; cp nxn vat = ak +6 (a — 2*) voi ỉ e [0,1] Nếu (Vƒ (œ*), d*) nhỏ hơn 0 thì với a¿ > 0 đủ nhỏ, ta cd f(x) < f(x")
Việc lựa chọn hướng dịch chuyển đ# và độ đài bước o¿ khác nhau sẽ cho ta các phương pháp gradient khác nhau Nếu chọn dé = —V f(x") véi moi k thì phương pháp gradient như thế gọi là phương pháp hướng doc nhat (Steepest Descent Method) Day 1a một phương pháp thông dụng để tìm cực tiểu, nó rất đơn giản và có thể áp dụng cho nhiều lớp hàm rất rộng Phương pháp này xây dựng dãy lặp: ak! = ok a, Vf(a*), a, >0, k=0,1, (8.1) rà Thuật toán xác định œ tại mỗi bước lặp (Quy tắc Armijo)
(1) Chọn giá trị œ tùy ý (như nhau với mọi bước lặp, chẳng hạn œ = 1) và xỏc định điểm x = ô* —aVf (x*)
(3) Kiểm tra bất đẳng thức f(x) — f (x*) < ea(Vf (x) ,d*) = —co |[Vƒ (x*) |)? (8.2) với 0 < e < 1 là một hằng số được chọn tùy ý, như nhau với mọi & = 0,1,
(4) Nếu (8.2) thỏa mãn thì œ là giá tri can tim: a; = a Néu (8.2) không thỏa mãn thì ta giảm œ (bằng cách nhân œ với một số
A € (0,1), chẳng hạn À = 4) cho đến khi bất đẳng thức (8.2) được thỏa mãn
8.1.2 Sự hội tụ của phuong phap gradient
Ta noi day {2} hoi tu tới điểm a* với tốc độ hội tụ tuyến tính hay tốc độ hội tụ cấp số nhân (công bội q) nếu bắt đầu từ một chỉ số k nào đó, ta có bất đẳng thức
Cơ sở của việc lựa chọn œ như trên và sự hội tụ của phương pháp gradient cho trong định lý sau.
190 Chương 8 Phương pháp gradient Định lý 8.1 Giả sử ham f(x) bi chan dudi, gradient V f(x) thoa man diéu kién Lipschitz:
IV) — V/0)|| < Ella — yl] Va, y € IR” Đà 0œ dược chọn theo thuật toán nêu trên Khi đó, nói bắt kỳ điểm ban dau x°, quá trình lặp (8.1) có tính chất IVF (0k )| — 0 khi ko
Chứng minh Theo định lý giá trị trung bình: ƒ() — ƒ @*) = (VF(R), 2 — 2"), trong đú #ẩ = xk +6 (a — #đ) với ỉ € [0,1] Do z—z+ẩ = —aVƒ (+) nên ta có ƒ(œ) — ƒ (+) = (VE (2*) 2 — 2°) + (Vƒ () — Vƒ (+Ê),a — at)
Từ đánh giá đó suy ra rằng, nếu chọn œ sao cho
—=l + aL < —e hay a < 1— © thì bất đẳng thức (8.2) sẽ được thỏa mãn Vậy, việc chọn œ theo thuật toán trên là có thể thực hiện được Khi đã chọn œ„ như trên, ta có ƒ(t) —Ƒ (at) < —eow ||Vƒ (x*) ||", (8.3) tức là với bất kỳ k thì ƒ(a**) — ƒ(z?) < 0 (với điều kiện
VƒƑ(z*) # 0) Vì hàm ƒ(z) bị chặn dưới, nên bất đẳng thức nhận được cho thấy f (a**1) — f (x*) + 0 khi k — oo (8.4)
Chú ý là thuật toán chọn a¿ đảm bảo cho với bất kỳ k sẽ có ằ„ > >0, trong đú ứ cú thể chọn là hằng số tựy ý khụng vượt quá (1— e)/E (vì bất đẳng thức (8.2) hay (8.3) được thỏa mãn với œ = (1—£)/L) Từ (8.4), (8.5) và chú ý này suy ra ||Vf (2*) || + 0 khi k — œ Định lý được chứng minh L] Định lý 8.1 bảo đảm giá trị hàm mục tiêu hội tụ hoặc đến cận dưới inf ƒ(z), hoặc tới giá trị của hàm tại điểm dừng nào đó (có thể là điểm cực tiểu địa phương hay điểm yên ngựa) Với những giả thiết nhất định về độ trơn và tính lồi của hàm cần tìm cực tiểu, ta có thể đánh giá được tốc độ hội tụ của phương pháp gradient Định lý 8.2 Giả sử f(x) la ham ldi hai lần khả 0ì liên tục uà ma trận các đạo hàm bậc hai thổa mãn điều kiện: ml|g|Ÿ < (V”ƒ(ứ)w.) < Mllw| M >zn>0, — (8.6) vdi moi x,y € R", con day {x*} được xâu dựng theo phương pháp (8.1), trong dé a, duoc chon theo thuat todn da mé ta Khi do, vdi bất kỳ điểm ban dau x°, ta sé cé xk + a*, f Cài — f (x*), trong đó #* là điểm cực tiểu (duy nhất) của ƒ(œ) Đồng thời, ta có các đánh giá sau 0È tốc độ hội tụ của thuật toán: f9) = ƒ(a) < # [f@P) = ƒ(a9)], l+” - z'| OF
Cách xác định œ như trên được gọi là phương pháp tìm chính sác theo tia (Exact Line Search) Khi đó, các Dịnh lý hội tụ 8.1 và 8.2 vẫn đúng Ngoài ra, ta còn nhận được đánh giá chính xác hơn về tốc độ hội tụ:
Dat 5
k&k+l Tìm nghiệm xấp xi A, cla min {f (at + A#) :À> 0} Đặt z#†1 = œ# + Ayd#
Lo Hình 8.1 Phương pháp hướng dốc nhất e Phương pháp građient khác
Cho F(z) l& một ma trận đối xứng thỏa mãn điều kiện:
Nếu chọn d = —Ƒ(z)V ƒ(z) và nếu Vƒ(z) # 0 thì
(Vƒ(z),đ) = —(Vƒ(+),F()Vƒ(+)) < —p||Vƒ()|ẽ < 0, nghĩa là đ = —F(z)Vƒ(z) là hướng giảm của f(x) Nhu vay, dé tìm cực tiểu của ƒ(z), ta có thể dùng phép lặp: ak) — ok — ap FLV f(x), ay >0, k=0,1, , trong dé {F;,} la day ma tran bat ky théa man (8.12) Để thống nhất ký hiệu, đôi khi ta dùng phép lặp ak! = a* oy FIV f(x), a, > 0, k=0,1, , (8.13)
196 Chương 8 Phương pháp gradient trong đó Fy ! là ma trận nghịch đảo của Fy Co thé ching minh được rằng nếu j thỏa mãn (8.12) thì #„Ì sẽ thỏa mãn: mallyll? < (Fet ysy) S Millyll? voi mi = p/n? va Mi =1/p,
Cac day {Fy} khac nhau sé tuong tig véi céc phuong phap lặp khác nhau Dồng thời, các Dịnh lý hội tụ 8.1 và 8.2 đúng cho phép lặp (8.1) vẫn còn đúng cho phép lặp (8.13), với cùng những điều kiện đối với hàm cần tìm cực tiểu và cùng cách thức chọn độ dai bước a; Tuy nhiên, trong trường hợp này, ta không thể có đánh giá tốt hơn về giá trị g
Sau đây là một số cách chọn ma trận #};: â Ƒj xỏc định dương và dỶ = —Ƒ!Vƒ(ứ#) e Hị = 1„ với lạ là ma trận đơn vị cấp n (phương pháp hướng dốc nhất) ôe Hj = V?ƒ(z*) nếu V?ƒ(+*) xỏc định dương (phương phỏp
Newton) ôly = max {1ứ 1} nếu V?ƒ(+#) khụng xỏc
0 định dương và ứ lớn e Fe = V?ƒ(+*) + +I„ nêu V2ƒ(z#) không xác định dương và n không quá lớn, trong đó + = max {0, 1— Xmin } (min la gid tri riéng nhé nhat cia V?f(2*))
Ví dụ 8.1 Dùng phương pháp gradient tìm cực tiểu của hàm số f (x1, 2) = (a1 — 6)? + 2(a2 — 3)
Gidi: Tinh Vf (x) = (2a, — 12; 4a — 12)’ Chọn điểm ban dau a! = (0;0)", f(a!) = 54.
Bước lặp 1 Ta có Vƒ(z!) = (—12,—12)! Chọn hướng giảm nhanh nhất đ! = (1;1)' tỷ le voi -V f(a") Xét diém a = (21; x2)" trên tia 2! + td! (t > 0): v=0+1xKt=t va r%1xt=t
Thay vào hàm mục tiêu cần tìm cực tiểu, ta được: p(t) = f(a! + td') = (t — 6)? + 2(t — 3)? = 34? — 241 + 54
Tim cuc tiéu y(t) nhờ cho đạo hàm y’(t) = 6 — 24 = 0, ta được h=4 Điểm lap méi 2? = x! + tid! = (0;0)' +4 x (1,1) = (4:4) v6i f(a?) =6 < f(a!) = 54
Bước lặp 2 Ta có V f(z?) = (—4;4)' Hướng giảm nhanh nhất d? = (1;—1)' (ty lệ với —Vƒ(z2)) Xét các điểm z = (a1; 2)! trén tia x? + td? (t > 0):
Thay vào hàm mục tiêu, ta được: g(t) = f(a? + td?) = (444-6)? + 2(4-t- 3) = 3 — 8t + 6
Bằng cách cho đạo hàm y(t) = 6t — 8 = 0, ta dude ty = 4/3 Điểm lặp mới a? = x? + tod? = (4;4)' + (4/3) x (1;-1)' hay x? = (16/3;8/3)', f(a?) = 2/3
Bước lặp 3 Ta có Vƒ(z3) = (—4/3, —4/3)' Huéng giam nhanh nhất là đ3 = (1;1)T (tỷ lệ với —V ƒ(z3)) Xét các diém x = (x1; 22)" trên tỉa #3 + td? (t > 0):
Thế vào hàm mục tiêu, ta được:
Cho dao ham y'(t) = 6t — 8/3 = 0, ta duge ts = 4/9 Điểm lặp mới ứ* = x? + tydđ = (16/3; 8/3)! + (4/9) x (1; 1)" hay x = (52/9; 28/9)", f(a) = 2/27
Bước lặp 4 Ta có Vƒ(z!) = (—4/9;4/9)" Hướng giảm nhanh nhất là đt = (1;—1)T (tỷ lệ với —Vƒ(z®)) Xét các điểm z = (a1; 22)! trén tia xt + td (t > 0):
Thay vào hàm mục tiêu, ta được: g(t) = f(x + td") = (F+t-6) trễ -#-8), 6 g 8 2
Cho dao ham y’(t) = 6¢ — 8/9 = 0, ta duge ty = 4/27 Điểm lap 2° = a4 + tyd* = (52/9; 28/9)" + (4/27) x (1;-1)7 hay x° = (160/27; 80/27)", f(a°) = 2/243
Buéc lap 5 Ta cé Vf(2°) = (—4/27;-4/27)" Hướng giảm nhanh nhat 1A d®° = (1;1)" (ty lé voi -Vf(2°)) Xét cdc diém x = (x1; x2)! trén tia 2° + td? (t > 0):
Mao tt va #2 — an TÍ,
Thay vào hàm mục tiêu, ta được:
Cho đạo hàm ¿'(£) = 6 — 8/27 = 0, ta được t; = 4/81
Diém lap 2° = a° + tsd° = (160/27; 80/27)" + (4/81) x (1;1)7 hay 2° = (484/81;244/81)', ƒ(z8) = 2/2187 (Vƒ(z) bằng
3 | (16/3;8/3)' 2/3 (4/3; —4/3) Gs)" 4/9 4 | (52/9; 28/9)" 2/27 (—4/9;4/9)” (1;-1)7 4/27 5 | (160/27; 80/27)" 2/243 | (—4/27;-4/27)* (;UT 4/81 6 | (484/81; 244/81)" 2/2187 | (—4/81;4/81)” (;-ĐT 4/243 k|(G-33?°°;3-4L(-392 *ỊT | 3352 | 4(—32*(-3)2 5}! | (G( UP ĐI | 431 *
Bảng 8.1 Kết quả giải Ví dụ 8.1
Kết quả tính toán giải Ví dụ 8.1 bằng phương pháp hướng dốc nhất được tổng kết ở Bảng 8.1 và được minh họa ở Hình 8.2
Từ bảng trên, có thể thấy ring x" > 2* = (6;3)', f(x") +0 và V f(x") + 0 khi k + +00
Hinh 8.2 Minh hoa Vi du 8.1
8.2.1 Nội dung phương pháp Trong phương pháp gradient chỉ có số hạng tuyến tính ở khai triển ƒ() thành chuỗi Taylor được dùng để chọn hướng dịch
200 Chương 8 Phương pháp gradient chuyển, nghĩa là chỉ sử dụng xấp xỉ thô của hàm cần tìm cực tiểu
Phương phỏp Nẹewton sử dụng cả đạo hàm cấp hai và vỡ thế, nú đòi hỏi ham f(x) hai lần khả vi liên tục
Ta biết rằng nếu ứ* là điểm cực tiểu tự do của hàm f(x) thi Vƒ(z*) =0 Do đú, nờu điểm z° ở gần zứ* thi trong lan can x° cú thé xAp xi f(a) béi ham bac hai: p(x) = f(x®) + (VF (2°), a — 2°) + 3 (V2F(a °)(a — 2°), x — 2°), trong dộ V?f(ô°) 1a ma tran Hessian (ma trận cỏc đạo hàm riờng cấp hai) của hàm ƒ(z) tính tại điểm #9
Cực tiểu của ƒ(z) trong lân cận điểm z° có thể xấp xỉ bởi cực tiểu của ¿(z) Nếu cực tiểu của v(x) dat tai diém 2” thi
Từ đó, nếu V?ƒ a có nghịch đảo thì
Nhu vay, néu ham f(x) hai lan kha vi liên tục và [V?ƒ(z9)| 1 tồn tại vdi mdi x*, thi dé tim a*, ta có thể dùng công thức lặp:
+t?1! = x — |V?ƒ(z)| 1VƑ(ứ*) (8.14) e Phương pháp Newton thuần túy (Pure Newton Method) Chọn điểm z5 tùy ý Tính dãy điểm {z} theo công thức (8.14)
Quá trình lặp sẽ dừng khi V?f(x**!) œ 0
Như vậy, hướng tìm trong phương pháp Newton không phải là vécto —V f(x") nhu trong cac TT pháp gradient thông thường mà là hướng —[V?ƒ(z*)] !V ƒ(œ*), gọi là hướng Neuton, trong đó đã dùng đến các đạo hàm riêng cấp hai của hàm f(z)
Phương pháp này có một số tính chất đáng chú ý sau
+ Nếu ƒ là hàm toàn phương thì phương pháp Newton sẽ cho điểm cực tiểu chỉ sau một bước lặp Thật vậy, giả sử f(x) =a (b,x) + 3(Cna), trong đó Ở là ma trận đối xứng nửa xác định dương, b € R" và a1 Khi đó, Vƒ(œ) = Cx +b (Vz) va V? f(x) = C Diém cực tiểu của ƒ(+) là nghiệm cia phuong trinh Vf(x) = Ca +b = 0
Từ đó, z* = —C"!b Bây giờ, xuất phát từ điểm bất kỳ z? và áp dụng phép lặp (8.14), ta có gi =2°—-C1(Cxr° +6) =-C7lb= 2" ơ Có thể chứng minh được rằng nếu ƒ bai lần kha vi liên tục, V?ƒ liên tục Lipschitz trong lân cận điểm cực tiểu địa phương z* của ƒ, V?Ƒ(+*) xác định dương và nếu xuất phát từ điểm z° đủ gần x*, thì dãy {z#} xây dựng theo phương pháp Newton thuần túy sẽ hội tụ tới z* với tốc độ hội tụ bậc hai Cụ thể ta có:
Jet 2's Stef, m trong đó L 1a hang sé Lipschitz va m là giá trị riêng nhỏ nhất của Vˆƒ(œ*) ơœ® Nói chung, nếu ƒ không phải là hàm toàn phương thì dãy điểm {+} xây dựng theo (8.14) có thể phân kỳ hoặc hội tụ đến điểm yên ngựa hay điểm cực tiểu địa phương e Phương pháp Newton suy rộng Có thể cải tiến phép lặp (8.14) nhờ sử dụng công thức lặp: ak! = ok — oy [Vf (2*)] VE (2°), (8.15) trong đó độ dài bước œ„ được xác định nhờ các phương pháp tìm kiếm một chiều theo hướng đ* = — [V?ƒ (+) ] > Vi (x*)
Quá trình lặp theo công thức (8.15) thường được gọi là phương pháp Neuton tới bước điều chỉnh hay phương pháp Neulton su rộng Khi sử dụng phương pháp này, tốc độ hội tụ của ## —> z#* và ƒ (a*) — f (ô*) sộ nhanh hon so với khi dựng phương phỏp gradient Khi œ = 1 (với mọi È) thì ta có phương pháp Newton thuần túy như đã xét ở trên.
Sau đõy sẽ trỡnh bày hai dạng phương phỏp ẹewton suy rộng, khác nhau ở cách chọn độ dài bước œ
Cách thứ nhất, gọi là phương pháp quay lưi, bao gồm các bước Sau:
(2) Tớnh giỏ tri ham f(x) = f (ô* + ad*);
(3) Kiểm tra bất đẳng thức ƒ(œ) — ƒ (+*) < ca(VƑ (+*),4*),0 0 (8.18)
Nhớ rằng các hàm như thế luôn có điểm cực tiểu duy nhất, ký hiệu #* Định lý 8.3 Nếu hàm ƒ(z) thỏa mãn điều kiện (8.18) tà a¿ được chọn theo điều kiện (S.16), thà uới bất kỳ điểm ban đầu +9, dãy {a*} sinh ra theo (8.15) sé héi tụ tới điểm cực tiểu #* theo tốc độ hội tụ trên tuyến tính:
ÄN+k› (8.19) trong đó N, Ở < œ, ÀN+¿ < 1 (Vk > 0) vd An44 4 0 khi kk > ov
Chứng minh Thấp lặp (8.15) chính là phép lặp (8.13) với v= [VF (x*)] Vì ma trận V?ƒ (+°) có các tinh chất đòi hỏi (so sánh (8.12) và (8.18)) nên sự hội tụ của phép lặp (8.15) được suy ra từ các định lý hội tụ của phương pháp gradient
Bay giờ, ta chứng minh tính đúng đắn của đánh giá (8.19)
Muốn thế, trước hết chú ý rằng, do d* =— [V?Ƒ (ứ*)]| ` V/ (ứF) hay Vƒ (+*) = —V?ƒ (ứ`) dt
Do (Vf (2*) ,d*) 0 và
V?ƒ(z) liên th tục nên khi k —> 0, ta có
Khi đó, với bất kỳ hằng sé 0 < ¢ < 1/2 tén tai s6 No(e) sao cho véi moi k > No(e): a SS Se