Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Bài toán tối ưu (1)

1. Bài toán tối ưu


1. Cho D  ℝn, f : D  ℝ, gk : D 
ℝ.

BT Tìm giá trị tối ưu của hàm f(X)


với X  D và thỏa mãn gk(X) = 0.
Xopt = ArgOpt f(X) với gk(X) = 0
 Hàm mục tiêu, các ràng buộc, các
phương án, các giá trị tối ưu.

2. (Phân loại)
 Phân loại qui hoạch
 Các phương pháp giải
 Xét bài toán cực tiểu Opt = min

2. Phương pháp giải tích


1. Cực trị địa phương
1. Cho D  ℝn, f  C2(D, ℝ)
BT Tìm cực trị của hàm f với X
D

 df(A) = ∑

d2f(A) = ∑
,
 Điểm cực trị  Tới hạn = dừng +
kỳ dị

2. Qui trình tìm cực trị


1) Tìm điểm tới hạn
2) Tại điểm dừng : Xét dấu d2f
3) Tại điểm kỳ dị : Xét dấu f =
f(X) – f(A)

Ví dụ Tìm cực trị tự do


z = x4 + y4 – x2 + 2xy – y2
Giải
 Maple (1).

2. Cực trị có điều kiện


1. Cho D  ℝn, f, gk  C2(D, ℝ)
BT Tìm cực trị của hàm f với X
 D thỏa gk(X) = 0

 Hàm Lagrange
L(X) = f(X) + ∑ l ( ), lk 

CTDP của L(X) là CTDK của f(X)

2. Qui trình như cực trị địa phương


 dL(A) = 0, gk(A) = 0, k=
1..m
 d2L(A) = d2f(A) +
∑ l ( )
dgk(A) = 0
d2L = (dx1, ..., dxn–m)

Ví dụ Tìm cực trị có điều kiện


u = xyz với x + y + z = 1, x2 +
y2 + z 2 = 1
Giải
 Maple (2). Tham số hóa
⎧ = + √ cos − sin

= + sin ,0t

⎪ = − √ cos − sin

2
 L = xyz + l(x + y + z – 1) + (x2
+ y2 + z2 – 1)
+ + =0
+ + =0

3. Trị lớn nhất, bé nhất


1. Cho D  ℝn, f  C2(D, ℝ)
BT Tìm TLN, BN của hàm f với
XD

 Hàm liên tục đạt TLN, BN trên


compact

2. Qui trình tìm TLN, BN


1) Tìm điểm tới hạn trong D0
2) Tìm điểm tới hạn trên D
3) TLN(f) = max{ f(A), ... f(B), ...}
TBN(f) = min{ f(A), ... f(B), ...}

Ví dụ Tìm TLN, BN của


u = xy + z với x2 + y2  z  1
Giải
 Maple (3).
...

Phương pháp trực tiếp (3)


1. Bài toán cực tiểu
1. Cho D  ℝn, f  C(D, ℝ).
 Miền cách ly cực trị ! CT X* 
D
 Điểm CT parabol (t) = f(X*
+ t. ⃗) , t  0
Maple (0).

BT Tìm điểm cực tiểu parabole


X* = Argmin f(X)

2. Thuật toán tìm cực trị


+) Tìm miền cách ly cực trị D
+) Lập dãy Xk ⎯⎯ X*

3. Phương pháp trực tiếp
 Xuất phát tại X0  D
 So sánh f(Xk+1) < f(Xk) để lập dãy
Xk ⎯⎯ X*

2. Phương pháp hướng đích


1. Cho B(e1, e2, … , en) là CSCT của
ℝn .
 Đích X0 = A  D số gia
h0 = h
Biên Yi = A ± hei i = 1...n
 So sánh giá trị f(X) tại { A, Yi } tìm
tìm đích tiếp theo

2. (Bước thứ k)
 Đích A = Xk số gia h = hk

Các điểm biên Yi = A ± hei


với i = 1..n
Tìm Xk+1 sao cho f(Xk+1)  f(Xk)
 Xét các trường hợp

1)  f(X) = min f(Yi) < f(A)


Lấy Xk+1 = X, hk+1 = h
2)  f(X) = min f(Yi) = f(A)
Chọn đích tạm
B = (A + X), h’ = h, Zi = { B ±
h’ei } – A
a)  f(Y) = min f(Zi) < f(A)
Lấy Xk+1 = Y, hk+1 = h’
b) min f(Yi)  f(A)
Lấy Xk+1 = X, hk+1 = h’
3)  f(Xi) > f(A)
Lấy Xk+1 = A, hk+1 = h’
 Sai số k+1 = hk+1

DL Xk ⎯⎯ X* = Argmin f(X)

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
 Maple (1)
...

3. Phương pháp hướng tối ưu


1. Cho B(e1, e2, … , en) là CSCT của
ℝn .
 Đích X0 = A  D số gia
h0 = h
Biên Yi = A + ihei i  {–1, 0,
1}
 So sánh giá trị f(X) tại {A, Yi} để
tìm hướng tối ưu

2. (Bước thứ k)
 Đích A = Xk số gia h = hk
Tìm Xk+1 sao cho f(Xk+1)  f(Xk)
 Với mỗi i = 1...n tìm
min{ f(A – hei), f(A), f(A + hei) }
+) min = f(A – hei) : i = –1
+) min = f(A) : i = 0
+) min = f(A + hei) : i = 1
Lấy e = 1e1 + ... + nen

 Xét các trường hợp


1) e  0 : Xk+1 = A + h.e hk+1 =
h
2) e = 0 : Xk+1 = A hk+1 =
h
 Sai số k+1 = hk+1

DL Xk ⎯⎯ X* = Argmin f(X)

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
 Maple (2)
...

4. Phương pháp đơn hình


1. Đơn hình Dk  ℝn là đa diện n+1
đỉnh. Tìm điểm cực tiểu tại đỉnh của
dãy các đơn hình thắt lại.

2. (Bước thứ k)
 Cho Dk có các đỉnh sắp thứ tự
f(M) < ... < f(A) < f(P) và Xk = M
Tìm Dk+1 sao cho f(Xk+1)  f(Xk)

 Thay đỉnh P bằng đỉnh mới tốt hơn.


Gọi C là tâm của mặt đối với đỉnh P.
Kí hiệu
E1 = C – PC⃗, E2 = C + PC⃗ , E3 = C
+ PC⃗
1) f(P) > f(E) = minf(Ei) thay P =
E
2) f(P) < f(E) co Dk về phía đỉnh
M với hệ số k =
 Sai số k+1 = d(Dk+1)
 Để tăng tốc độ hội tụ có thể lấy
E = Argmin f(P + lPC⃗) với l ℝ

DL Xk ⎯⎯ X* = Argmin f(X)

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
Maple (3).
...

5. Phương pháp ngẫu nhiên


1. Lập dãy ngẫu nhiên hội tụ đến điểm
tối ưu
 Tâm X0 = A  D bán kính
h0 = h
Lấy ngẫu nhiên N điểm Yi  B(A, h)
 So sánh giá trị f(X) tại {A, Yi} để
tìm tâm và bán kính tiếp theo.

2. (Bước thứ k)
 Tâm A = Xk bán kính h=
hk
Tìm Xk+1 sao cho f(Xk+1)  f(Xk)
1)  f(X) = min f(Yi) < f(A)
Lấy Xk+1 = X, hk+1 = h
2)  f(X) = min f(Yi) = f(A)
Chọn tâm tạm
B = (A + X), h’ = h , Zi  B(B,
h’)
a)  f(Y) = min f(Zi) < f(A)
Lấy Xk+1 = Y, hk+1 = h’
b) min f(Y)  f(A)
Lấy Xk+1 = X, hk+1 = h’
3)  f(Xi) > f(A)
Lấy Xk+1 = A, hk+1 = h’
 Sai số k+1 = hk+1

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
Maple (4).
...
Phương pháp xấp xỉ (4)
1. Phương pháp xấp xỉ
1. Cho f  Ck(D, ℝ), A  D0
g= H=
..

, ..
Khai triển Taylor hàm f tại A
f(X) = f(A) + tg(A)(X – A) +
+ t(X – A)H(A)(X – A) + ... + o(X
– An)
 Xấp xỉ bậc nhất n = 1
fa(X) = f(A) + tg(A)(X – A)
 Xấp xỉ bậc hai n = 2
fa(X) = f(A) + tg(A)(X – A) + t
(X –
A)H(X – A)

2. (Phương pháp xấp xỉ)


 Gọi fa là xấp xỉ của f tại A = Xk.
Chọn phương án tối ưu thứ k+1 là
Xk+1 = Argmin fa(X)
 PP bậc nhất (hai) dùng xấp xỉ bậc
nhất (hai)

3. (Thuật toán parabole) Tìm l =


Argmin (x)

 Bước thứ k
(bk) < min((ak), (ck))
x = (ak + bk), y = (bk + ck)
1) min((x), (y), (bk)) = (x)
ak+1= ak, bk+1 = x, ck+1 = bk
2) min((x), (y), (bk)) = (y)
ak+1= bk, bk+1 = y, ck+1 = ck
3) min((x), (y), (bk)) = (bk)
ak+1 = x, bk+1 = bk, ck+1 = y
 Lấy giá trị xấp xỉ lmin  bn

Ví dụ Tìm cực tiểu hàm (x) = x2 – 2x


+ 3 trong khoảng [–1, 2, 5]
Giải
...

2. Phương pháp gradient


1. Cho f  C1(D, ℝ), A  D0.
 ⃗ ( ) =<
⃗ ( ), ⃗ > tốc độ
biến thiên theo hướng vecto ⃗

DL Hướng biến thiên cực đại của


hàm f tại điểm A là vecto ⃗f(A)
 S = { (X, u = f(X)) : X  D} là đồ
thị
SA = { X  D : f(X) = f(A)} là mặt
mức
 PA = (A, f(A)) + { g  e3} là mặt
phẳng
CA = S  PA là đường dòng đi qua
(A, f(A))

2. (Thuật toán hạ nhanh)


 Xuất phát với X0  D. Tại A = Xk
tìm Xk+1 là điểm cực tiểu của hàm f
trên đường dòng CA

while .true.
gk = – grad f(Xk)
lk = Arg min f(Xk + t.gk)
Xk+1 = Xk + lk gk
k+1 = || Xk+1 – Xk ||
end

 Tìm l bằng phương pháp tìm cực trị


hàm một biến hoặc dùng thuật toán
parabole hoặc công thức sau
( )( )
lk = − ( )( )

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
 Maple (1).
g = – grad f(x, y) = (–2x – 2y + 2 , –
4y – 2x – 3)
(t) = f(X + t.g) = f(Y)
’(t) = grad f(Y)g(X) = – g(Y)g(X)
 X0 = (2, 2), g0 = (–6, –15)
Y = (2 – 6t, 2 – 15t), gY = (42t – 6,
72t – 15)
’(t) = 1332.t – 261 = 0  l0
= 0.196
X1 = X0 + l0g0
 ...

3. Phương pháp bậc hai


1. Cho f  C2(D, ℝ). Xuất phát với X0
 D.
 Tại Xk = A xấp xỉ
fa(X) = f(A) + tg(A)(X – A) +
+ t(X – A)H(A)(X – A)
 Lấy Xk+1 là điểm cực tiểu của hàm fa
grad fa(Xk+1) = tg(A) + H(A)(Xk+1 – A)
=0
Từ đó giải ra Xk+1

2. (Thuật toán bậc hai)

while .true.
gk = – grad f(Xk)
Hk = Hes f(Xk)
Xk+1 = Xk + Hk–1 gk
k+1 = || Xk+1 – Xk ||2
end

 Để tránh tính H–1 điều chỉnh thuật


toán
Hk dk = gk
Xk+1 = Xk + dk

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
 g = – gradf = (–2x – 2y + 2, –4y –
2x – 3)
H = hesf = 2 2
2 4
 X0 = (2, 2), g0 = (–6, –15), H0 = H
H0.d0 = g0  d0 = (1.5, –4.5)
X1 = X0 + d0
 ...

3. (Thuật toán Levenberg – Marquart)


 Kết hợp hai phương pháp tối ưu
+) bậc nhất d = lg
+) bậc hai d = H–1g  (lH +
I)d = 2lg

while .true.
gk = – grad f(Xk)
lk = Argmin f(Xk + l.gk)
Hk = Hes f(Xk)
(lk Hk + I)dk = 2lk gk
Xk+1 = Xk + dk
k+1 = || Xk+1 – Xk ||2
end

 Việc tìm l như phương pháp


gradient

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
 Maple (2).
g = – grad f(x, y) = (–2x – 2y + 2 , –
4y – 2x – 3)
(t) = f(X + t.g) = f(Y)
’(t) = – g(Y)g(X), H = hesf =
2 2
2 4
 X0 = (2, 2), go = (–6, –15), H0 = H
Y = (2 – 6t, 2 – 15t), gY = (42t – 6,
72t – 15)
’(t) = 1332.t – 261 = 0  l0
= 0.196
(l0H0 + I)d0 = 2l0g0  d0 =
(–0.812, –3.117)
X1 = X0 + d0
 ...

4. Phương pháp liên hợp


1. Phương pháp hướng liên hợp xấp xỉ
bậc hai hàm f tại Xk = A nhưng tránh
xứ lí ma trận Hessien.

2. Gọi dk và dk+1 là hai hướng tối ưu


liên tiếp.
Theo xấp xỉ bậc hai
Hk dk = gk dk  gk+1 Hk+1 dk+1
= gk+1
Từ đó suy ra
t
dk+1 Hk+1 dk = tgk+1 dk = 0
Hai hướng tối ưu liên tiếp dk và dk+1 là
liên hợp với nhau qua ma trận H 
Sn(ℝ). Lấy
dk+1 = gk+1 + k+1dk
Từ đó giải ra được
k+1 =
( )
− = =

3. (Thuật toán Fletcher – Jeeves)

g0 = – grad f(X0)
d0 = g 0
While .True.
lk = Argmin f(Xk + t.dk)
Xk+1 = Xk + lkdk
gk+1 = – grad f(Xk+1)
k+1 =
dk+1 = gk+1 + k+1dk
k+1 = || Xk+1 – Xk ||2
end

 Việc tìm l như phương pháp


gradient

Ví dụ Với  = 10–2, tìm cực tiểu của


hàm
f(x, y) = x2 + 2y2 + 2xy – 2x + 3y
Giải
 Maple (3).
g = – grad f(x, y) = (–2x – 2y + 2 , –
4y – 2x – 3)
(t) = f(X + t.d) = f(Y)
’(t) = – g(Y).d(X)
 X0 = (2, 2), g0 = (–6, –15), d0 = g0
Y = (2 – 6t, 2 – 15t), gY = (42t – 6,
72t – 15)
’(t) = 1332.t – 261 = 0  l0
= 0.196
X1 = X0 + l0d0 = (0.824, –0.939)
g1 = (2.230, –0.892), 1 = 0.022
d1 = g1 + 1d0 = (2.097, –1.223)
 Y = (2.097t + 0.824, –1.223t –
0.939)
gY = (–1.748t + 2.230, 0.699t –
0.892)
’(t) = –4.520t + 5.767 = 0 
l1 = 1.276
X2 = X1 + l1d1 = (3.500, –2.500)

You might also like