Professional Documents
Culture Documents
Chương 7 - Các Phương Pháp Cực Tiểu Hóa Không Ràng Buộc
Chương 7 - Các Phương Pháp Cực Tiểu Hóa Không Ràng Buộc
Chương 7 - Các Phương Pháp Cực Tiểu Hóa Không Ràng Buộc
Chương 7
Các Phương Pháp Cực Tiểu Hóa Không Ràng Buộc
SoICT
Hanoi University of Science and Technology
2 / 66
Giới thiệu
3 / 66
Nhắc lại một số khái niệm từ giải tích
R n = {x = (x1 , x2 , · · · , xn )T : xi ∈ R, i = 1, 2, · · · , n}
u + v = (u1 + v1 , u2 + v2 , · · · , un + vn )
Rn cùng các phép toán vừa định nghĩa lập thành một không gian tuyến tính. Các phần tử của
Rn đôi khi là các điểm. 4 / 66
Nhắc lại một số khái niệm từ giải tích
thì Rn cùng với tích vô hướng sẽ trở thành không gian Euclid n-chiều.
Độ dài chuẩn của vec tơ u ∈ Rn là số
n
!1/2
X
1/2
||u|| =< u, u > = ui2
i=1
5 / 66
Nhắc lại một số khái niệm từ giải tích
n
!1/2
X
ρ(u, v ) = ||u − v || = (ui − vi )2
i=1
6 / 66
Nhắc lại một số khái niệm từ giải tích
7 / 66
Nhắc lại một số khái niệm từ giải tích
8 / 66
Nhắc lại một số khái niệm từ giải tích
9 / 66
Không gian Euclid n-chiều
10 / 66
Nhắc lại một số khái niệm từ giải tích
trong đó o(x, ∆x) là vô cùng bé bậc cao hơn ||∆x||, nghĩa là lim||∆x||→0 o(x,∆x)
||∆x|| = 0.
′
Hàm f (x) được gọi là gradient của hàm f tại x và thường được ký hiệu là ▽f (x).
11 / 66
Nhắc lại một số khái niệm từ giải tích
12 / 66
Nhắc lại một số khái niệm từ giải tích
Tập các hàm thỏa mãn tính chất này được ký hiệu là C 1 (X ).
Định nghĩa 4 : Giả sử hàm f xác định trên tập mở X . Ta nói hàm f là hai lần khả vi liên tục
trên tập X nếu f là hai lần khả vi tại mọi điểm x của X và
Tập các hàm thỏa mãn tính chất này được ký hiệu là C 2 (X ).
13 / 66
Nhắc lại một số khái niệm từ giải tích
trong đó limx→x o α(x, x o ) = 0, sai số có thể được viết dưới dạng o(||x − x o ||2 )
14 / 66
Nhắc lại một số khái niệm từ giải tích
15 / 66
Vi phân hàm nhiều biến
16 / 66
Nhắc lại một số khái niệm từ giải tích
17 / 66
Nhắc lại một số khái niệm từ giải tích
Chú ý
Rõ ràng nếu hàm f đạt cực tiểu toàn cực trên X thì
18 / 66
Nhắc lại một số khái niệm từ giải tích
Một số ví dụ
f (x) = (x − 1)2 có cực tiểu toàn cục tại x ∗ = 1 với f (x ∗ ) = 0.
f (x) = e x + e −x − 3x 2 . Giá trị tối ưu của hàm f (x) = −7.02. Bài toán có cực tiểu toàn
cục tại hai điểm x = ±2.84, không có cực tiểu địa phương.
f (x) = e −x cận dưới bằng không nhưng không đạt được. Không có cực tiểu địa phương
cũng như cực tiểu toàn cục.
f (x) = −x + e −x Hàm mục tiêu không bị chặn dưới, không có cực tiểu địa phương cũng
như cực tiểu toàn cục.
f (x) = e x + e −x − 3x 2 + x Bài toán có hai cực tiểu địa phương x1 = −2.9226 và
x2 = 2.7418, trong đó x1 là cực tiểu toàn cục. Giá trị tối ưu của hàm là -9.9040
19 / 66
Nhắc lại một số khái niệm từ giải tích
20 / 66
Nhắc lại một số khái niệm từ giải tích
21 / 66
Bài toán cực trị hàm nhiều biến
22 / 66
Bài toán qui hoạch phi tuyến không ràng buộc
Định nghĩa
Xét bài toán qui hoạch phi tuyến không ràng buộc (unconstrained nonlinear programming)
Các định lý
Định lý 1 (Điều kiện cần tối ưu) : Điều kiện cần để x 0 là cực tiểu địa phương là
▽f (x 0 ) = 0 (2)
Điều kiện (2) được gọi là điều kiện dừng, điểm x 0 thỏa mãn (2) đc gọi là điểm dừng. Như vậy
việc giải bài toán (1) có thể qui về giải hệ phương trình (2).
23 / 66
Bài toán qui hoạch phi tuyến không ràng buộc
Các ví dụ
f (x) = x 2 − 3x − 1 phương trình f ′ (x) = 2x − 3 = 0 có nghiệm duy nhất x 0 = 3/2 là
điểm cực tiểu địa phương, đồng thời là điểm cực tiểu toàn cục.
!
2 2 2x1 − 2x2 + 1
f (x1 , x2 ) = x1 + x2 − 2x1 x2 + x1 phương trình ▽f (x) = = 0 có nghiệm
−2x1 + 2x2
duy nhất x 0 = (−1/4, 1/4). Tuy nhiên, nghiệm x 0 không là phương án tối ưu của bài
toán min{f (x) : x ∈ R2 } vì ta có f (−1/4, 1/4) = −1/8 > −1 = f (0, 1).
24 / 66
Bài toán qui hoạch phi tuyến không ràng buộc
Để biết ma trận có tính xác định dương hay không có thể sử dụng tiêu chuẩn Silvestra sau đây.
Tiêu chuẩn Silvestra : Ma trận A = (aij )n×n là xác định không âm (bán xác định dương) khi
và chỉ khi tất cả các định thức con của nó là không âm
Các ví dụ
2 2
Xét f (x1 , x2 ) = e x1 +x2 giải hệ phương trình
2 2
!
2x1 e x1 +x2
▽f (x) = 2 2 =0
2x2 e x1 +x2
!
2 0
có nghiệm duy nhất x 0 = (0, 0) do f ”(0, 0) = có định thức det|f ”(x 0 )| > 0 suy
0 2
ra x 0 là điểm cực tiểu địa phương đồng thời là phương án tối ưu của bài toán.
26 / 66
Bài toán qui hoạch phi tuyến không ràng buộc
Các ví dụ (tiếp)
Xét f (x1 , x2 ) = −x12 + x22 − 2x1 x2 − x1 giải hệ phương trình
!
−2x1 − 2x2 − 1
▽f (x) = =0
−2x1 + 2x2
!
−2 −2
có nghiệm duy nhất x 0 = (−1/4, −1/4) do f ”(x 0 ) = có định thức
−2 2
det|f ”(x 0 )| < 0 vậy x 0 không là cực tiểu của hàm f (x).
27 / 66
Bài toán qui hoạch phi tuyến không ràng buộc
28 / 66
Các phương pháp cực tiểu một biến
Chú ý
Các phương pháp tìm kiếm (sẽ được giới thiệu) đều sử dụng giả thuyết là hàm đơn cực trị.
29 / 66
Các phương pháp cực tiểu một biến
Ví dụ
Giả sử đoạn chứa cực tiểu [0,1], ta tính giá trị hàm tại hai điểm
x1 < x2 : f (x1 ) = f1 , f (x2 ) = f2 có 3 khả năng xảy ra :
1 f1 < f2 : Điểm cực tiểu x không thể nằm bên phải x2 vì thế đoạn chứa cực tiểu mới là
[0, x2 ]
2 f1 > f2 : Điểm cực tiểu x không thể nằm bên trái x1 vì thế đoạn chứa cực tiểu mới là
[x1 , 1]
3 f1 = f2 : Hai đoạn [0, x1 ) và (x2 , 1] có thể loại bỏ và đoạn chứa cực tiểu mới là [x1 , x2 ]
30 / 66
Các phương pháp cực tiểu một biến
Sơ đồ tìm kiếm
31 / 66
Các phương pháp cực tiểu một biến
Ví dụ :
Viết đoạn kịch bản tìm cực tiểu của f (x) = x(x − 1.5) trên đoạn (a, b) = (0, 1) với chênh lệch
e = 0.01 so với nghiệm đúng x ∗ = 0.75
f = inline(’x.*(x-1.5)’,’x’);
eps = 0.01;
a = 0; b = 1; k = 0;
while abs(b-a)>= 2*eps
x1=a + (b-a)/2 - eps/2; x2=a + (b-a)/2 + eps/2;
f1=f(x1); f2=f(x2); k=k+1;
if f1<f2 b=x2;
elseif f1>f2 a=x1;
else a=x1;b=x2;
end
end
32 / 66
Các phương pháp cực tiểu một biến
Ví dụ (tiếp) :
...
fprintf(’So buoc lap k= %d ’,k);
fprintf(’Do dai doan : b-a = %d’,b-a);
fprintf(’x= %d’,x1);
.
Kết quả
» So buoc lap k=7
Do dai doan : b-a = 1.773438e-002
x=7.502344e-001
33 / 66
Các phương pháp cực tiểu một biến
F0 = 1; F1 = 1;
Fk = Fk−1 + Fk−2 , k ≥ 2;
(k)
Ta phải xác định số bước lặp N trước khi thực hiện tính cực tiểu. Việc chọn hai điểm x1 và
(k)
x2 ở bước lặp k đc xác định theo công thức :
(k) FN−1−k
x1 = (bk − ak ) + ak , k = 0, 1, · · · , N − 1
FN+1−k
(k) FN−k
x2 = (bk − ak ) + ak , k = 0, 1, · · · , N − 1
FN+1−k
34 / 66
Các phương pháp cực tiểu một biến
35 / 66
Các phương pháp cực tiểu một biến
Ví dụ
Cài đặt thuật toán lát cắt vàng để tìm cực tiểu hàm trong đoạn [0,2]
f (x) = x 2 − 2x + 1
f = inline(’x∧ 2-2*x+1’);
a = 0; b = 2; eps = 0.00001;
x1 = a + (b-a)*0.382;
x2 = a + (b-a)*0.618;
f1 = f(x1);
f2 = f(x2);
while abs(b-a)>2*eps
if f1 > f2
a = x1; x1 = x2; f1 = f2;
x2 = a + (b-a)*0.618;
f2 = f(x2);... 36 / 66
Các phương pháp cực tiểu một biến
Ví dụ (tiếp)
...
else
b = x2; x2 = x1; f2 = f1;
x1 = a + (b-a)*0.382;
f1 = f(x1);
end
end
fprintf(’Khoang co hep nghiem : [%f,%f]’,a,b);
»
Khoang co hep nghiem : [0.999990,1.000004]
37 / 66
Các phương pháp cực tiểu một biến
38 / 66
Các phương pháp số cực tiểu không ràng buộc
Mở đầu
Xét bài toán qui hoạch phi tuyến không ràng buộc
trong đó f (x) là khả vi liên tục. Để giải (3), nếu tồn tại có thể tìm được trong số các nghiệm
của phương trình
▽f (x) = 0 (4)
Tuy vậy, việc giải hệ phương trình (4) trong trường hợp tổng quát cũng không kém phần phức
tạp. Dẫn đến ta phải dùng các phương pháp hiệu quả để giải (3).
39 / 66
Các phương pháp số cực tiểu không ràng buộc
Mở đầu (tiếp)
Hướng thường dùng để giải quyết (3) là dùng các phương pháp lặp từ giá trị khởi tạo x 0 rồi
dịch chuyển dẫn ’về hướng’ giá trị tối ưu x ∗ , theo mỗi bước lặp cập nhật là :
x k+1 = x k + αk p k , k = 1, 2, · · · (5)
trong đó
p k là vec tơ định hướng dịch chuyển từ điểm x k .
αk là độ dài của bước dịch chuyển theo hướng p k .
Rõ ràng thủ tục (5) là xác định khi ta xác định được hướng dịch chuyển p k và cách tính độ
dài bước dịch chuyển αk .
40 / 66
Các phương pháp số cực tiểu không ràng buộc
Mở đầu (tiếp)
Phụ thuộc vào các cách xây dựng p k và αk khác nhau mà ta có các thủ tục lặp với các đặc
tính khác nhau. Ta đặc biệt quan tâm đến hai đặc tính sau :
Sự thay đổi giá trị của hàm mục tiêu f của dãy {x k }
Sự hội tụ của dãy {x k } đến lời giải x ∗ .
Cũng cần chú ý là việc xác định p k và αk khác nhau cũng đòi hỏi khối lượng tính toán khác
nhau.
41 / 66
Các phương pháp số cực tiểu không ràng buộc
tức là dịch chuyển theo hướng p k với độ dài đủ nhỏ ta sẽ đến được điểm x k+1 với giá trị hàm
mục tiêu nhỏ hơn. Vậy hướng p k thỏa mãn (6) được gọi là hướng giảm (hướng tụt) của hàm
mục tiêu f (x).
42 / 66
Các phương pháp số cực tiểu không ràng buộc
Thử tục lặp tuân theo công thức (7) được gọi là các phương pháp gradient.
43 / 66
Các phương pháp số cực tiểu không ràng buộc
Phương án tối ưu của bài toán được lấy làm giá trị của αk .
Thủ tục 2 : Để chọn αk ta tiến hành theo thủ tục sau
1 Đặt α = α > 0
2 Đặt u = x k − α▽f (x k ), tính f (u)
3 Kiểm tra
f (u) − f (x k ) ≤ −ϵα||▽f (x k )||2 , với 0 < ϵ < 1 (8)
4 Nếu bđt (8) thỏa mãn thì đặt αk = α, ngược lại đặt α = α/2 và quay lại bước 2.
44 / 66
Các phương pháp số cực tiểu không ràng buộc
45 / 66
Các phương pháp số cực tiểu không ràng buộc
x k → x ∗ , f (x k ) → f (x ∗ ), khi k → ∞
trong đó x ∗ là điểm cực tiểu của f (x), đồng thời ta có các đánh giá sau:
f (x k ) − f (x ∗ ) ≤ q k [f (x 0 ) − f (x ∗ )],
||x k − x ∗ || ≤ Cq 1/2
Ví dụ :
Xét bài toán cực tiểu hóa không ràng buộc
1
f (x1 , x2 ) = (x12 + γx22 ) (γ > 0)
2
Thực hiện thuật toán gradient bắt đầu từ phương án x 0 = (γ, 1), độ dài bước xác định theo
thủ tục 1, ta thu được dãy các phương án xấp xỉ x k = (x1k , x2k ) trong đó
k
γ−1 k
γ−1
x1k =γ , x2k = −
γ+1 γ+1
Dãy xấp xỉ hội tụ chậm đến phương án tối ưu x ∗ = (0, 0) khi γ >> 1 và γ << 1
47 / 66
Các phương pháp số cực tiểu không ràng buộc
48 / 66
Các phương pháp số cực tiểu không ràng buộc
49 / 66
Các phương pháp số cực tiểu không ràng buộc
x k+1 = x k + αk (u k − x k ) (11)
Vậy phụ thuộc các phương án chọn αk mà ta có các phương pháp khác nhau. Nếu αk = 1,
với mọi k, ta có phương pháp Newton.
50 / 66
Các phương pháp số cực tiểu không ràng buộc
51 / 66
Các phương pháp số cực tiểu không ràng buộc
với x ∗ là nghiệm của phương trình f ′ (x) = 0. Vậy tốc độ hội tụ của phương pháp Newton là
bình phương khoảng cách sau mỗi bước lặp.
52 / 66
Các phương pháp số cực tiểu không ràng buộc
Ví dụ
Minh họa giải thuật Newton cho hàm mục tiêu không ràng buộc sau
53 / 66
Các phương pháp số cực tiểu không ràng buộc
Ví dụ (tiếp)
fval = f(x);gval = gf(x);H = hf(x);ng = norm(gval);nf = 1;tol = 0.05;iter = 0; alpha
= 1;
while ng >= tol
iter = iter + 1;nf = 0;alpha = 1;p = -inv(H)*gval;pass = 0;
while pass == 0
ftest = f(x+alpha*p);
nf = nf+1;
if ftest <= fval + 0.01*alpha*gval’*p
pass = 1;
x = x+alpha*p;
fval = ftest;
gval = gf(x);
H = hf(x);
... 54 / 66
Các phương pháp số cực tiểu không ràng buộc
Ví dụ (tiếp)
...
ng = norm(gval);
else
alpha = alpha/2;
end
end
fprintf(’%3i %3.2e %3.2e %3.2e %3.2e %i’,iter,fval,ng,norm(x-xstart),alpha,nf);
end
55 / 66
Các phương pháp số cực tiểu không ràng buộc
iter f ||g|| ||x-x*|| alpha nf
1 2.18e+000 4.64e+000 2.21e+000 1.00e+000 1
2 2.08e+000 1.10e+001 2.06e+000 6.25e-002 5
3 2.00e+000 1.51e+001 1.93e+000 2.50e-001 3
4 1.91e+000 1.63e+001 1.83e+000 5.00e-001 2
5 1.79e+000 1.68e+001 1.72e+000 1.00e+000 1
6 1.46e+000 7.79e+000 1.65e+000 1.00e+000 1
7 1.36e+000 8.04e+000 1.59e+000 5.00e-001 2
8 1.23e+000 8.23e+000 1.50e+000 1.00e+000 1
9 9.87e-001 3.70e+000 1.40e+000 1.00e+000 1
10 9.82e-001 1.06e+001 1.23e+000 1.00e+000 1
11 6.72e-001 1.17e+000 1.12e+000 1.00e+000 1
.....
16 1.42e-001 4.59e+000 2.82e-001 1.00e+000 1
17 9.04e-002 4.41e-001 1.96e-001 1.00e+000 1
18 2.24e-002 2.13e+000 4.88e-002 1.00e+000 1 56 / 66
Các phương pháp số cực tiểu không ràng buộc
Ký hiệu
0
.
..
e i = 1
.
.
.
0
là vec tơ chỉ gồm các số không và số 1 duy nhất ở hàng thứ i. Đương nhiên e i ∈ Rn , đây là57 / 66
Các phương pháp tìm kiếm
Giải thuật
Giả sử ta có x 0 là một xấp xỉ xuất phát. Chọn α0 > 0 là một thông số của thuật toán. Trong
các bước lặp k = 0, 1, 2, · · · tại các xấp xỉ x k và αk > 0.
Đặt
k ik k
p = e , ik = k − n+1 (15)
n
trong đó [k/n] là số nguyên lớn nhất không vượt quá k/n.
Tính f (x k + αk p k ) nếu
f (x k + αk p k ) < f (x k ) (16)
thỏa mãn thì gán
x k+1 = x k + αk p k , αk+1 = αk
rồi chuyển sang k + 1.
58 / 66
Các phương pháp tìm kiếm
f (x k − αk p k ) < f (x k ) (17)
x k+1 = x k ,
59 / 66
Các phương pháp tìm kiếm
p 0 = e 1 , p 1 = e 2 , · · · , p n−1 = e n , p n = e 1 , · · · , p 2n−1 = e n , p 2n = e 1 ,
Khi độ dài αk+1 = λαk cần thay đổi theo công thức trên chỉ khi sau n chu kỳ liên tiếp
mà ta không thành công trong việc giảm giá trị hàm mục tiêu khi thỏa mãn một trong
hai bđt (16) và (17).
60 / 66
Các phương pháp số cực tiểu không ràng buộc
M(x 0 ) = {x : f (x) ≤ f (x 0 )}
là giới nội. Khi đó dãy {x k } xây dựng theo phương pháp mô tả ở trên là dãy cực tiểu hóa của
bài toán (14), nghĩa là
f (x k ) → f ∗ , k → ∞
trong đó f ∗ là giá trị tối ưu của bài toán (14).
61 / 66
Các phương pháp số cực tiểu không ràng buộc
62 / 66
Bài tập về nhà :
tìm hiểu các hàm tối ưu hóa trong Matlab
FMINBND
FMINUNC
FMINSEARCH
OPTIMSET
INLINE
63 / 66
Xét bài toán cực tiểu hóa không điều kiện:
64 / 66
Xét bài toán quy hoạch phi tuyến không ràng buộc:
Thực hiện giải thuật gradient giải bài toán đặt ra bắt đầu từ phương án xuất phát x 0 = (1, 2).
Để xác định độ dài bước hãy sử dụng thủ tục 1 (trong đó đòi hỏi giải bài toán cực tiểu hóa
một chiều)
65 / 66
66 / 66