Luận văn:PHƯƠNG PHÁP HÀM CHẮN VÀ PHƯƠNG PHÁP HÀM PHẠT trong các bài toán tối ưu Chương 2. Luận văn:PHƯƠNG PHÁP HÀM CHẮN VÀ PHƯƠNG PHÁP HÀM PHẠT trong các bài toán tối ưu Chương 2. Luận văn:PHƯƠNG PHÁP HÀM CHẮN VÀ PHƯƠNG PHÁP HÀM PHẠT trong các bài toán tối ưu Chương 2. Luận văn:PHƯƠNG PHÁP HÀM CHẮN VÀ PHƯƠNG PHÁP HÀM PHẠT trong các bài toán tối ưu Chương 2. Luận văn:PHƯƠNG PHÁP HÀM CHẮN VÀ PHƯƠNG PHÁP HÀM PHẠT trong các bài toán tối ưu Chương 2. Luận văn:PHƯƠNG PHÁP HÀM CHẮN VÀ PHƯƠNG PHÁP HÀM PHẠT trong các bài toán tối ưu Chương 2.
Trang 1Chơng 2 phơng pháp hàm chắn
Chơng này trình bày phơng pháp hàm chắn cho phép đa bài toán tối u có ràng buộc bất đẳng thức về bài toán tối u không ràng buộc, để có thể áp dụng
đ-ợc các phơng pháp tìm cực tiểu không ràng buộc quen biết Phơng pháp này đòi hỏi bài toán có điểm chấp nhận thoả mãn chặt mọi ràng buộc Nội dung trình bày ở chơng này chủ yếu dựa trên các tài liệu [2], [3] và [6]
2.1 Mở đầu
Xét bài toán tối u với ràng buộc bất đẳng thức:
(P) min {f(x) : gi(x) 0, i = 1, … , m; x |RRn},
trong đó f(x), gi(x): |Rn |R, i = 1, … , m là các hàm lồi, hai lần khả vi liên tục Miền ràng buộc (miền chấp nhận đợc) của bài toán (P) là tập
C = {x |Rn : gi(x) 0, i = 1, … , m} , m}
Đặt C0 {x |Rn : gi(x) < 0, i = 1, … , m} , m} Ta giả thiết C0 , tức là có ít nhất một điểm x với gi(x ) < 0, i = 1, … , m (điều kiện Slater) và C bị chặn
Ta sẽ đa bài toán (P) về bài toán không ràng buộc để có thể áp dụng đợc các phơng pháp giải số tìm cực tiểu không ràng buộc Dễ dàng thấy rằng x* là lời giải tối u của (P) khi và chỉ khi x* là nghiệm của bài toán cực tiểu không ràng buộc:
(P) min {f(x) + I(x) : x |Rn}
trong đó I : |Rn |R {+} là hàm chỉ (indicator function) của tập C, tức là
I(x) =
lại.
trái nếu nếu x C , 0
Tuy nhiên, do hàm mục tiêu không khả vi trên biên của C, nên việc giải bài toán ( P ) gặp nhiều khó khăn và ta không thể vận dụng trực tiếp các phơng pháp
Trang 2cổ điển tìm cực tiểu không ràng buộc để giải (P) Vì thế, ta sẽ tìm cách sử dụng những hàm khả vi khác để xấp xỉ I(x) Giải các bài toán không ràng buộc xây dựng theo cách này ta sẽ đợc các lời giải xấp xỉ của (P)
ý tởng cơ bản của phơng pháp hàm chắn là xấp xỉ hàm I bởi hàm I : |
Rn |R {+} với các tính chất:
(A 1) I là hàm lồi khả vi liên tục trên miền hữu hiệu của nó
(A 2) dom I = {x |Rn : gi(x) < 0, i = 1, … , m} , m}
(A 3) Nếu xk dom I, xk tiến gần tới biên của C thì I(xk) +
Một hàm I nh thế đợc gọi là hàm chắn (barrier function) của C, bởi vì
hàm này dần tới vô cùng khi x gần tới biên của C (hàm ngăn x tiến ra biên) Bài toán xấp xỉ của (P) có dạng
(Pˆ ) min {f(x) + I(x) : gi(x) < 0, i = 1, … , m} , m}
Sự tồn tại và tính duy nhất nghiệm (lời giải tối u) của bài toán này đợc khẳng định trong mệnh đề sau
Mệnh đề 2.1 Giả thiết miền ràng buộc C compac và I là hàm chắn Khi
đó bài toán (Pˆ ) có nghiệm Hơn nữa, nếu f + I là hàm lồi chặt thì nghiệm của
bài toán (Pˆ ) là duy nhất.
Chứng minh Giả sử x0 C0 {x |Rn : gi(x) < 0, i = 1, … , m} , m} Đặt W = {x C0 : f(x) + I(x) f(x0) + I(x0)} (W đợc xác định là do giả thiết C0 khác
rỗng) Trớc hết ta chứng minh W là compac Do C compac và W C0 nên tập W
bị chặn Ta sẽ chứng tỏ W đóng Thật vậy, giả sử {wj} là một dãy hội tụ bất
Trang 3kỳ trong W và điểm giới hạn của dãy là w Do C đóng nên w C và vì thế nếu w
C0 thì w thuộc biên của C Do wj w nên theo định nghĩa của hàm chắn (điều
kiện A3) thì f(wj) + I(wj) +, điều này trái với sự kiện mỗi wj thuộc W
Vậy phải có w C0 Do hàm f + I liên tục tại w và do wj W nên ta có
f(w) + I(w) = limj[f(wj) + I(wj)] f(x0) + I(x0)
Vì thế, w W, nghĩa là W đóng Cuối cùng, do liên tục trên tập compac W
nên hàm f + I đạt giá trị cực tiểu trên W, chẳng hạn tại điểm x* W |Rõ ràng, x* là một nghiệm (lời giải tối u) của bài toán (Pˆ ) Giả sử x ˆ là một nghiệm của bài toán (Pˆ ) Khi đó, x ˆ là một xấp xỉ cho nghiệm của bài toán (P) Nhng xấp xỉ đó nói chung còn thô Để cải tiến xấp xỉ này ta nhận xét rằng nếu I là một hàm chắn thì t I cũng là hàm chắn với mọi
t > 0 và giá trị t càng nhỏ thì hàm chẵn tI xấp xỉ càng tốt hàm chỉ I
Nh vậy, ý tởng đầu tiên là giải bài toán
(Pˆ (t)) min {f(x) + tI(x) : gi(x) < 0, i = 1, … , m} , m}
với t > 0 đủ nhỏ Tuy nhiên về mặt tính toán cách làm này không thật hợp lý Lý
do là vì chỉ số điều kiện của ma trận Hessian của hàm mục tiêu trong bài toán (
Pˆ (t)) tăng lên khi t giảm và chỉ số điều kiện tăng sẽ gây khó khăn cho việc giải
hệ phơng trình tuyến tính để xác định hớng Newton
Trong thực hành tốt nhất là ta nên bắt đầu quá trình giải từ một giá trị t0
không quá nhỏ và giải bài toán (Pˆ (t0)) để nhận đợc nghiệm xấp xỉ x(t0) của bài toán Sau đó giảm t0, chẳng hạn đặt t1 = ct0 với hệ số c < 1 Tiếp đó, giải bài toán (Pˆ (t1)), bằng cách xuất phát từ nghiệm x(t0) đã có trớc đó Sau đó ta đặt t2 = ct1, rồi lại giải bài toán (Pˆ (t)), xuất phát từ nghiệm x(t ) đã có, … , m} Trong thực tiễn,
Trang 4ngòi ta thờng chọn hệ số c = 1/10 và thấy rằng cách chọn này đủ tốt Đôi khi
ng-ời ta cũng chọn c = 1/12, 1/16, Rõ ràng là dãy tk giảm dần và tiến tới 0 Quá trình này tạo ra dãy điểm {x(tk)} với hy vọng dãy sẽ hội tụ tới điểm x* là một nghiệm của bài toán (P)
Theo Mệnh đề 2.1, mỗi bài toán (Pˆ (tk)) có nghiệm Hơn nữa, nếu ta dùng một trong các phơng pháp tìm cực tiểu không ràng buộc (Cauchy, Newton, tựa Newton, građiên liên hợp), xuất phát từ một điểm chấp nhận đợc chặt (thuộc C0) thì mọi điểm lặp tiếp sau sẽ vẫn thuộc C0 nhờ tính chất A3 của hàm chắn Tuy nhiên, việc giải bài toán cực tiểu hàm một biến số (cực tiểu một chiều) cần tiến hành thận trọng để tránh phải xét các điểm chấp nhận đợc không chặt (thuộc C nhng không thuộc C0)
2.2 Hàm chắn lôga
Hàm chắn lôga là một lớp hàm đợc sử dụng rộng rãi để xử lý các ràng buộc
gi(x) 0, i = 1, … , m} , m Đó là hàm đợc xác định bởi công thức:
(x) =
lại
trái nếu
nếug (x) 0,i 1, ,m, ))
x ( g
m 1
Có thể thấy là một hàm chắn Thật vậy, rõ ràng là hàm lồi, trơn trong
C0 và (x) dần tới + khi x tiến gần tới biên của C Hơn nữa, lồi chặt trên C0, theo nghĩa: với mọi x1 x2 C0, 0 < < 1 ta có
[x1 + (1 )x2] < (x1) + (1 )(x2)
Do (x) lồi, trơn và C bị chặn (theo giả thiết) nên (x) phải có một cực tiểu trên C0 Hơn nữa, do tính lồi chặt của nên nếu có hai điểm x1 x2 cùng đạt cực tiểu của (x) trên C0 thì với 0 < < 1:
[x1 + (1 )x2] < (x1) + (1 ) (x2) = (x1) = (x2),
trái với x1, x2 đạt cực tiểu Vậy chỉ có một điểm cực tiểu duy nhất của trên C0
Điểm cực tiểu ấy gọi là tâm giải tích của các bất đẳng thức gi(x) 0 i
Ví dụ 2.1 Xét bài toán: min {x2 + 1 : 2 – x 0, x – 4 0}
Trang 5Nghiệm của bài toán này là x* = 2 Hàm mục tiêu chắn lôga có dạng
B(x, t) = x2 + 1 – t.log(x – 2) – t.log(4 – x)
Đồ thị của B(x, t) đợc vẽ ở Hình 2.1 với các giá trị t = 3, 5, 10 Ta có thể thấy rằng điểm cực tiểu x(t) của B(x, t) dần tới x* = 2 khi t dần tới 0
0
5
10
15
20
25
30
Một ví dụ khác về hàm chắn là hàm chắn nghịch đảo đợc xác định bởi
(x) =
lại
trái nếu
nếug (x) 0,i 1, ,m, )
x ( g /
m 1
Ví dụ 2.2 Xét bài toán tìm cực tiểu của hàm một biến số f(x) = x với ràng
buộc g(x) = 2 – x 0 Rõ ràng giá trị cực tiểu của f bằng 2, đạt tại điểm x* = 2
Hàm chắn nghịch đảo có dạng: (x) = 1/(x – 2) Dùng tham số t ta xét bài toán không ràng buộc
min {B(x, t) = x + t/(x - 2) : x |R}
t
3 = 3
t
2 = 5
t
1 = 10
x(t
3) x(t
2) x(t
1) x* = 2
Hình 2.1 Hàm mục tiêu chắn lôga B(x, t)
Trang 6Hình 2.2 vẽ đồ thị của hàm B(x, t) và chỉ ra vị trí các điểm cực tiểu tơng
ứng với các giá trị t = 1; 0,64; 0,25 và 0,09
Hình 2.2 Hàm mục tiêu chắn nghịch đảo
1 2 3 4 5 6 7
Miền ràng buộc nằm ở bên phải đờng thẳng đứng x = 2 Dễ nhận thấy rằng dãy điểm q1, q2, q3, q4, … , m} tiến dần tới điểm q (cực tiểu có ràng buộc của hàm f) Thật vậy, để tìm cực tiểu của B(x, t) ta lấy đạo hàm của B theo x và cho đạo hàm này bằng 0, ta nhận đợc
dx
dB
) 2 x (
t
= 0 (x – 2)2 = t x = 2 t
Do đó, 22
dx
B
d =
3
) 2 x (
t 2
bên trong miền ràng buộc và giá trị cực tiểu bằng 2 + 2 t Khi đó, q1 = (3; 4),
q2 = (2,8; 3,6), q2 = (2,5; 3) và q3 = (2,3; 2,6) Rõ ràng khi t 0 thì giá trị cực tiểu không ràng buộc của B(x, t) tiến tới 2 và điểm cực tiểu là x* = 2 Nói chung ta không thể xác định bằng giải tích vị trí điểm cực tiểu của hàm B(x, t) mà phải dùng các phơng pháp giải số
2.3 Đờng trung tâm
q
q1
q2
q3
q4
Trang 7Dùng một tham số t > 0 ta đặt B(x, t) = f(x) + t.(x), trong đó là hàm chắn lôga, và xét bài toán tối u không ràng buộc:
min {B(x, t) : x |Rn}
Do hàm (x) lồi chặt trên C 0 và f(x) lồi trên C nên B(x, t) cũng lồi chặt trên
C0 Do vậy, B(x, t) có một điểm cực tiểu duy nhất trên C0
Vì thế, từ đây về sau ta giả thiết hàm chắn đợc sử dụng là hàm chắn lôga và nghiệm của bài toán không ràng buộc: min{f(x) + t(x)} tồn tại và duy nhất Ta
ký hiệu nghiệm này là x*(t) Tập hợp {x*(t) : t > 0} xác định một đờng cong,
đ-ợc gọi là đờng trung tâm (central path) hay quĩ đạo chắn (barrier trajectory)
Ví dụ 2.3 Xét bài toán quy hoạch tuyến tính với hai biến, bốn ràng buộc:
(P) f(x) = x2 min
với các điều kiện:
0,5x1 – x2 0, 3x1 – x2 5, 2x1 + x2 10, x2 6
Điểm x* = (0, 0) là nghiệm của bài toán Đờng trung tâm đợc xác định bởi tập điểm x*(t) = argmin B(x, t) với t > 0, trong đó
B(x, t) = x2 – t.log(- 0,5x1 + x2) - t.log(5 - 3x1 + x2)
- t.log(10 - 2x1 - x2) - t.log(6 - x2)
Bảng sau ghi toạ độ một số điểm thuộc đờng trung tâm và các giá trị tơng ứng của hàm B(x, t) Các điểm này đợc vẽ ở Hình 2.3 (trang sau)
Trang 80,0781 0,0189 0,1490 0.0252
ở mục sau ta sẽ đề cập tới vấn đề hội tụ của dãy {x*(t)} và dãy {f(x*(t))} khi t 0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Hình 2.3 Đờng trung tâm 2.4 nhân tử Lagrange
Do các hàm f, gi (i = 1, … , m}., m) là lồi, khả vi liên tục và do điều kiện Slater
đợc thoả mãn, tức là tồn tại điểm x sao cho gi(x ) < 0 với mọi i = 1, , m, nên… , m}
điều kiện Karush - Kuhn - Tucker là điều kiện cần và đủ của tối u Nói chính xác
hơn, x* là một nghiệm của bài toán (P) khi và chỉ khi tồn tại véctơ * = (
1 ,
,
… , m}
m) thoả mãn các điều kiện sau đây, gọi tắt là điều kiện KKT:
Trang 9f(x*) +
m 1
i i
gi(x*) = 0,
i gi(x*) = 0, i = 1, 2, … , m} , m,
gi(x*) 0, i = 1, 2, … , m} , m,
i 0, i = 1, 2, … , m} , m, Hơn nữa, ta biết rằng * là một nghiệm của bài toán đối ngẫu với (P):
(Q) max{d() infx L(x, ) : 0},
trong đó L(x, ) = f(x) +
m 1
i i
gi(x) là hàm Lagrange của bài toán (P)
Do điều kiện Slater đợc thoả mãn nên ta có hệ thức đối ngẫu mạnh: d(*) = f*, giá trị tối u của (P) Sau đây ta sẽ sử dụng đờng trung tâm để đa ra một xấp xỉ
cho véc tơ nhân tử Lagrange * = (
1 ,
2, … , m} ,
m)
Muốn thế, ta viết các điều kiện tối u của điểm
x*(t) = argmin {f(x) + t.(x)}
thuộc đờng trung tâm dới dạng:
f(x*(t)) + t.(x*(t)) = 0 với mỗi t > 0
Do (x) = -
m 1
)) x ( g
m 1
)) x ( g / 1
Vì thế, đờng trung tâm đợc đặc trng bởi hệ phơng trình
f(x*(t)) -
m 1
i gi( x * ( t ))
t
gi(x*(t)) = 0
So sánh điều kiện này với điều kiện KKT thứ nhất
m 1
i i
gi(x*) = 0,
Trang 10ta thấy nếu x*(t) đủ gần x* thì giá trị
i (t) = - g (xt*(t))
i
, i = 1, 2, … , m} , m (2.1)
có thể đợc xem nh một xấp xỉ cho các nhân tử Lagrange
i , i = 1, 2, … , m} , m
Do t > 0 và gi(x*(t)) < 0, i = 1, 2, … , m} , m (vì điểm cực tiểu của f(x) + t(x)
nằm ở phần trong miền chấp nhận) nên ta có
i (t) > 0 với mọi i = 1, 2, … , m} ,m Vì thế, véctơ *(t) thoả mãn các ràng buộc của bài toán đối ngẫu (Q)
Ta cũng để ý rằng cặp véctơ (x*(t), *(t)) thoả mãn gần nh đầy đủ các điều kiện KKT Thật vậy, ta có
f(x*(t)) +
m 1
i i
(t)gi(x*(t)) = 0,
i (t)gi(x*(t)) = - t, i = 1, 2, … , m} , m, (2.2)
gi(x*(t)) < 0, i = 1, 2, … , m} , m,
i (t) > 0, i = 1, 2, … , m} , m
Điểm cực tiểu x*(t) của B(x, t) là một điểm trong của C, vì thế điểm này
đ-ợc đặc trng bởi điều kiện cần của tối u:
B(x*, t) = f(x*) + t.
m 1
i
*) x ( g
*) x ( g
= 0
(2.3)
Khi t 0+ thì x*(t) dần tới điểm cực tiểu duy nhất của (x), tức là tới tâm giải tích của hệ bất đẳng thức gi(x) 0 với i = 1, … , m} , m Dễ thấy điều kiện (2.3) cũng là điều kiện cần và đủ để x* là điểm cực tiểu (trên toàn |Rn) của hàm
Trang 11L(x, *) = f(x) +
m 1
*
i g ( x ),
trong đó *
i =
*) x ( g
t
i
0 Nhng L(x, ) chính là hàm Lagrange của bài toán
(P) và * = *(t) là một lời giải chấp nhận đợc của bài toán đối ngẫu (Q) Tập
{*(t) : t > 0} gọi là đờng trung tâm đối ngẫu.
Ký hiệu f* là giá trị tối u của bài toán (P) ta có
f* infx {f(x) +
m 1
*
i g ( x )}
= f(x*) +
m 1
*
i g ( x *) = f(x*) m/ t
Nh vậy, một điểm x*(t) trên đờng trung tâm gốc cho ta một điểm *(t) trên
đờng trung tâm đối ngẫu, cùng với một cận dới cho giá trị tối u là
f(x*(t)) f* f(x*(t)) m/ t
Bất đẳng thức này chứng tỏ khi t 0+ thì f(x*(t)) f* và x*(t) dần tới một lời giải tối u của bài toán (P)
Mệnh đề 2.2 Với mọi t > 0, x*(t) là lời giải tối u của (P) sai khác một hằng
số mt > 0, nghĩa là f(x*(t)) – mt f* Hơn nữa, f(x*(t)) f*, giá trị tối u của
(P), khi t 0+
Chứng minh Do *(t) thoả mãn các ràng buộc của bài toán đối ngẫu (Q)
nên ta có hệ thức đối ngẫu yếu d(*(t)) f* Mặt khác, bằng cách lần lợt sử dụng định nghĩa của hàm đối ngẫu, phơng trình đầu của (2.2) và hệ thức (2.1) ta nhận đợc:
d(*(t)) = infx L(x, *(t)) = L(x*(t), *(t)) =
= f(x*(t)) +
m 1
i i
) t ( gi(x*(t)) = f(x*(t)) – mt
Trang 12Vì thế, f(x*(t)) – mt = d(*(t)) f*, nghĩa là x*(t) là lời giải tối u của (P) với độ sai khác mt > 0 Hơn nữa, cho t 0+ trong 0 f(x*(t)) – f* mt ta có f(x*(t)) f*
Từ những kết quả trên ta suy ra phơng pháp sau đây để giải bài toán (P), gọi
là phơng pháp SUMT (Sequential Unconstrained Minimization Technique - kỹ thuật liên tiếp cực tiểu không ràng buộc) Thuật toán này là một dạng của phơng
pháp bám đờng (path-following method) và là một trong các phơng pháp điểm
trong đơn giản, tự nhiên nhất:
Thuật toán liên tiếp tìm cực tiểu không ràng buộc ( SUMT)
Bớc 0 Cho một điểm chấp nhận đợc chặt x’ C0, một trị t = t0 > 0 Cho các
hệ số 0 < c < 1, > 0
Bớc 1 Xuất phát từ điểm x’, tìm cực tiểu của hàm f(x) + t(x) và nhận đợc
lời giải x*(t) Đặt x’ := x*(t)
Bớc 2 Nếu m.t (sai số cho phép) thì dừng thuật toán: x’ là một lời giải
- tối u Nếu trái lại thì đặt t := ct (giảm t do c < 1) và lặp lại Bớc 1
Các bài toán không ràng buộc thờng đợc giải bằng cách sử dụng phơng pháp Newton Ta nhận xét là tất cả các điểm do thuật toán SUMT tạo ra đều ở trên đờng trung tâm Thờng c đợc chọn từ 0,1 đến 0,001 Nếu giá trị c không quá nhỏ (ví dụ, c = 0,1) thì chỉ cần một vài bớc lặp Newton sẽ nhận đợc x*(t’), trong
đó t’ = ct Tuy nhiên, cần giải nhiều bài toán phụ không ràng buộc để đạt tới x*, lời giải tối u (nghiệm) của bài toán (P) Mặt khác, nếu giá trị c nhỏ (ví dụ, c = 0,001) thì cần thực hiện nhiều bớc lặp Newton để nhận đợc x*(t’), nhng lại chỉ cần giải một vài bài toán phụ không ràng buộc để đạt đợc nghiệm x*
Để thực hiện thuật toán này cần giải quyết hai vấn đề:
1 Tính x*(t) trên đờng trung tâm;
2 Xác định hệ số c, nhân với t để dùng trong bớc lặp sau;