Bài toán tối ưu hoá ngày càng trởnên cần thiết trong mọi hoạt động của con người và được áp dụng sâu rộng vào các nghành kinh tế,
Trang 1MỤC LỤC
Trang 21 Đặt vấn đề
Bài toán tối ưu hoá ngày càng trở nên cần thiết trong mọi hoạt động của
con người và được áp dụng sâu rộng vào các nghành kinh tế, kỹ thuật, công
nghệ và các lĩnh vực xã hội… Các bài toán tuyến tính và phi tuyến đơn giản
đã có rất nhiều cách giải quyết đem lại kết quả khả quan và nhanh chóng
Song đến các bài toán phi tuyến phức tạp, các hàm tối ưu hoá có dạng khe,
khe sâu, các phương pháp này trở nên khó khăn để giải quyết và cho kết quả
không tin cậy Việc tìm ra phương pháp giải cho các bài toán phi tuyến phức
tạp đã và đang được các nhà khao học hoàn thiện Nhất là với công nghệ máy
tính hiện đại phát triển như ngày nay, là một công cụ rất hữu ích giúp đỡ cho
công việc tìm lời giải tối ưu đó Tiểu luận sau đây trình bày phương pháp tìm
lời giải tối ưu hoá bằng phương pháp tối ưu hoá “vượt khe” của tác giả
PGS.TSKH.VS Nguyễn Văn Mạnh
2 Khái niệm về bài toán tối ưu hoá và ý nghĩa thực tiễn
Trong những năm gần đây lĩnh vực áp dụng các phương pháp của quy
hoạch phi tuyến phát triển rất nhanh Nếu trước đây, quy hoạch điều khiển các
đối tượng kinh tê thì hiện nay xuất hiện ngày càng nhiều các bài toán cự trị
phi tuyến trong các nghiên cứu kinh tế toán, như lập kế hoạch cho các ngành,
các hệ thống điều khiển các xí nghiệp…
Trong quá trình lập dự án thiết kế, vận hành và điều khiển hệ thống,
người ta thường mong muốn biết được phương án tốt nhất có thể đạt trong
những điều kiện nhất định Đó là lời giải cực tiểu (cực đại) của bài toán tối ưu
hóa, cho phép tiết kiệm tiền vốn, chi phí sản xuất, tiết kiệm thời gian và nâng
cao sản phẩm,…
Bài toán tối ưu hóa là bài toán tìm điểm cực tiểu (cực đại) của hàm f(x)
trong một miền D nào đó đã cho Bài toán được phát biểu:
n
E x
x f
∈
→ min )
với các điều kiện:
gi(x) ≤ 0, i = 1,n (2.2)
hj(x) ≤ 0, j = 1,q (2.3)
x∈X ∈E n (2.4)
trong đó, x = {x1,x2,…,xn} – vectơ cần tối ưu hóa; En – không gian Ơclit n
chiều; X – là hình hộp khống chế các khoảng biến; f(x) – gọi là hàm mục tiêu;
gi(x) – gọi là ràng buộc
Nếu bài toán ban đầu là cực đại hóa: f(x) Æ max, thì đổi sang cực tiểu
hóa tương đương là; -f(x) Æ min Ngoài ra, nếu gặp ràng buộc: gi(x) ≥ 0, thì
có thể đổi sang: -gi(x) ≤ 0
Trang 3Tập hợp các điểm x thỏa mãn các điều kiện (2.1) – (2.3) tạo thành miền
D, gọi là miền ràng buộc hay miền lời giải cho phép kí hiệu
D = {x∈X | gi(x) ≤ 0, i=1,n; hj(x) ≤ 0, j = 1,q } (2.5)
Mỗi điểm x ∈ D gọi là một lời giải chấp nhận đuợc Điểm x*∈ D đạt
điểm cực tiểu của hàm mục tiêu (tức f(x*) ≤ f(x) ∀x ∈D) gọi là lời giải tối ưu,
còn f(x*) – giá trị tối ưu bài toán
Việc nghiên cứu phương pháp giải các bài toán tối ưu hóa là nội dung
chính của môn tối ưu hóa hay Quy hoạch toán học và áp dụng chúng vào các
bài toán kỹ thuật Nhiệt nói riêng và kỹ thuật nói chung có một ý nghĩa thực
tiễn to lớn: như giải quyết bài toán chế độ vận hành tối ưu các tổ máy năng
lượng trong các nhà máy nhiệt điện trong điều kiện khác nhau sẽ đem lại
những lợi ích kinh tế to lớn, hay các bài toán về tối ưu các tham số của hệ
thống điều khiển – đây là những bài toán lớn trong thực tế
3 Sơ lược về bài toán tối ưu hóa hàm một biến và phương pháp giải
Xét bài toán cực tiểu hóa hàm một biến f(x) trong không gian Ơclit n
chiều En:
n
E x
x f
∈
→ min )
Trong đó f(x) liên tục, có thể không khả vi (không tồn tại đạo hàm tại điểm
nào đó) Phương pháp tổng quát để tìm cực trị hàm một biến là:
-Phương pháp chia đôi
-Phương pháp lát cắt vàng
-Phương pháp xấp xỉ hàm
-Phương pháp dây cung
-phương pháp tiếp tuyến
Trong đó ba phương pháp cuối yêu cầu hàm trơn và có đạo hàm liên tục,
hai phương pháp đầu yêu cầu duy nhất đối với hàm mục tiêu là không bị đứt
đoạn Đây là những phương pháp kinh điển, sau đó PGS.TSKH.VS Nguyễn
Văn Mạnh đã đưa ra một phương pháp mới là phương pháp “ vượt khe” đây
là một phương pháp rất mạnh nó cũng chỉ có yêu cầu là hàm mục tiêu không
bị đứt đoạn, và hiệu quả cao đối với những hàm trơn từng khúc so với tất cả
các phương pháp đã biết Sau đây giới thiệu một số phương pháp nêu trên
3.1 Xét phương pháp chia đôi
Chia trục x ra thành m khoảng đủ nhỏ để bắt được những khoảng chứa
điểm cực trị Thông thường ta chia theo cấp số nhân (để mở rộng khoảng
được xét): xi+1 = xi q (q>1)
Sau đó tính f(x) tại các điểm mút xi với giả thiết các khoảng chia đủ nhỏ
thì điểm cực tiểu sẽ nằm trong đoạn (xk-1, xk) nếu thoả mãn điều kiện
Trang 4f(xk)≤f(xk+1) và f(xk)≥f(xk-1) Đối với mỗi khoảng sẽ tìm điểm cực tiểu chính
xác hơn Với khoảng đủ nhỏ có thể coi hàm trong khoảng đó là lồi Thuật toán
được thể hiện cụ thể như sau:
Tính c:=(a+b)/2;
Các trường hợp xảy ra:
• f(a) < f(c) < f(b)
Gán b:=c Î miền [a, b] mới
• f(a) > f(c) > f(b)
Gán a:=c Î miền [a, b] mới
• f(c) < f(a) và f(c) < f(b)
d:= (a+c)/2; tính f(d)
Nếu f(c) > f(d) gán b:=c
Nếu f(c) < f(d) gán a:=d
Nếu f(c) = f(d) gán a:=d; b:=c
3.2 Phương pháp “lát cắt vàng”
Phương pháp này dựa trên tỉ lệ chia
khoảng tối ưu của đoạn chia tìm điểm tối ưu
tỉ lệ chia tối ưu = 0,618
2
1
a, b cho trước:
Tính [a,c] = 0,382[a,b] = γ[a,b]
[a,d] = 0,681[a,b] = (1-γ)[a,b]
Tính f(a), f(b), f(c), với c = γ(b-a)+a
Nếu: f(a) > f(c) > f(b) → a:=c;
f(a) < f(c) < f(b) → b:=c;
f(c) < f(a) và f(c) < f(b);
d:= c+γ(b-c); tính f(d);
Nếu f(c) < f(d) < f(b) → b:=d;
f(c) > f(d) → a:=c;
f(c) = f(d) → a:=c; b:=d;
Và trình tự quay lại từ đầu, nếu ta biết rằng trong [a,b] có một điểm thấp
nhất nhưng không có cực trị địa phương thì hai thuật toán trên sẽ hội tụ về
Hình 3.1
Hình 3.2
f(b x
f(x)
f(a
x*
e
f(b) x
f(x)
f(a)
c
x*
d
a b
Trang 5điểm thấp nhất đó Nếu có nhiều điểm cực trị địa phương thì nghiệm tối ưu sẽ
rơi vào một trong những điểm cực tiểu địa phương đó
3.3 Phương pháp xấp xỉ bậc hai
Phương trình bậc hai: f(x) = ax2 + bx + c (3.2)
Nếu biết 3 điểm x1, x2, x3 thì thay vào (3.2)
Viết lại dưới dạng:
f(x) = a0 + a1(x-x1) + a2(x-x1)(x-x2)
f(x1) = a0
f(x2)= a0 + a1(x2 – x1)
Vậy
1 2
1 2
2
x x
f f
a
−
−
=
f(x3)= a0 + a1(x3 – x1) +a2(x3 – x1)(x3 – x2)
Vậy
2 3
1 2
1 2 1 3
1 3
3
x x
x x
f f x x
f f
a
−
−
−
−
−
−
=
f’(x) = a1 + a2(x-x1) + a2(x-x2) = 0
→
2
1 2 1
2
a x x
Nếu x1−x3 <ε thì dừng lại
Nếu không tính
2
1 2 1
2
a x
x
• Nếu x2 ≤ x≤ x3 thì tính f(x )
- Nếu f(x ) < f(x2) thì bỏ x1, gán x1 = x2, x = x
- Nếu f(x ) ≥ f(x2) thì gán x3 = x rồi quay về bước đầu tiên
• Nếu x1 > x ≥ x2 thì tính f(x)
- Nếu f(x ) < f(x2) thì bỏ x3, gán x3 = x2, x2 = x
- Nếu f(x ) ≥ f(x2) thì gán x1 = x rồi quay về bước đầu tiên
4 Khái quát về hàm tối ưu hóa đa biến
Hình 3.3
x
f(x)
f 1
x
Trang 6Xét bài toán cực tiểu hàm nhiều biến f(X) trong không gian Euclide n
chiều En
E X
X f
∈
→ min )
với các điều kiện: gi(X) ≤ 0, i = 1,n
X ∈E n
Nếu một trong những hàm f(X), gi(X) là phi tuyến, thì phương pháp
giải gọi là thuật toán tối ưu hóa phi tuyến Phương pháp giải là dùng hàm
phạt chuyển bài toán về bài toán tối ưu hóa tương đương:
∑Ψ +
)
2
|]
) (
| ) ( [ ) (X g i X g i X
Ψ
p>0 J(X) là hàm mục tiêu tương đương, nhưng điểm cực tiểu của nó trùng
với nghiệm bài toán ban đầu (p đủ lớn) Hầu hết các phương pháp tối ưu hóa
phi tuyến xây dựng theo nguyên tắc lặp, tức thay đổi vectơ tối ưu hóa theo
từng bước, từ điểm bắt đầu xo , đến điểm tối ưu x* Phương trình lặp của thuật
toán tối ưu hóa lặp:
xk+1 = xk + αk+1sk, k= 0,1, , (4.2)
xk+1 , xk – điểm đầu và điểm cuối của bước lặp thứ k+1; sk – hướng dịch
chuyển; αk+1- độ dài bước thứ k+1; xk+1 , xk ,sk∈En; En – không gian Ơclit n
chiều
Khi số bước lặp tăng dần: k=0,1,…theo phương trình (4.2) sẽ hình thành
trong không gian một quỹ đạo chuyển dịch có hình gấp khúc, bao gồm các
điểm tiến dần đến nghiệm tối ưu: x → x1 → …xk → xk+1 …→x* Với ý nghĩa
phải tính toán xác định quỹ đạo từng bước trong không gian để đi đến điểm
tối ưu, người ta gọi đó là quỹ đạo tìm kiếm tối ưu với: xk – là các điểm tìm
kiếm, sk – các hướng tìm kiếm, αk+1 – các bước tìm kiếm
Những vấn đề đáng quan tâm nhất của mỗi thuật toán tối ưu hoá phi
tuyến là tốc độ hội tụ, độ chính xác của lời giải, và phạm vi áp dụng của thuật
toán
Quỹ đạo đi tìm điểm tối ưu của thuật toán “hạ nhanh nhất”
5 Các quy tắc xác định bước chuyển dịch
o
x1
x2
x *
Trang 7Giả sử ta có bμi toán cực tiểu hoá hμm đa biến vô điều kiện như sau:
n
E x
x f
∈
→ min )
Trong đó, En – lμ không gian ơclít n chiều
Các thuật toán tối ưu hoá lặp được xây dựng trên cơ sở hai khái niệm cơ
bản lμ hướng tìm kiếm (hướng thay đổi các biến) vμ qui tắc điều chỉnh độ dμi
bước lặp Qúa trình tối ưu hoá lặp liên tiếp từ bước thứ k sang bước thứ k+1
thực hiện theo quan hệ:
xk+1 = xk + αk+1sk, k= 0,1, , (5.2)
trong đú: xk+1 , xk∈En – điểm đầu và điểm cuối (cũn gọi là điểm tỡm kiếm)
của bước lặp thứ k+1; sk ∈En– hướng dịch chuyển; αk+1- độ dài bước thứ
k+1
Nếu xét một cách tổng thể về vấn đề xây dựng thuật toán tối ưu hoá hμm
đa biến dưới dạng tổng quát, thì khái niệm hướng tìm kiếm vμ độ dμi bước
chuyển động có ý nghĩa tương đương trong việc đảm bảo sự hội tụ vμ tốc độ
hội tụ của một quá trình lặp
Chỉ khi kết hợp một cách hợp lý giữa hướng chuyển động vμ nguyên tắc
xác định độ dμi bước mới đảm bảo hiệu quả hội tụ thực tế cao Có thể kết hợp
một phương thức xác định hướng chuyển động với nhiều qui tắc điều chỉnh
bước hoặc ngược lại kết hợp một qui tắc điều chỉnh bước với nhiều phương
thức xác định hướng chuyển động, sẽ tạo ra nhiều thuật toán khác nhau
Hiện nay số lượng những thuật toán tối ưu hoá đã đề xuất đạt tới con số
hμng trăm, mμ chúng chủ yếu khác nhau về phương thức xác định hướng tìm
kiếm Song số lượng những qui tắc điều chỉnh bước thì lại rất ít, không quá 6
qui tắc cơ bản
5.1 Qui tắc điều chỉnh bước thứ nhất
Lμ cách đơn giản nhất lμ cách điều chỉnh bước chỉ căn cứ theo điều kiện
sao cho hμm mục tiêu luôn luôn giảm sau kết quả tìm kiếm trên mỗi bước lặp
như sau:
(xk+1) = J(xk + αk+1sk) < J(xk), k =0,1, (5.3)
Đây lμ một điều kiện quá yếu, không đủ để đảm bảo sự hội tụ vμ, hơn
nữa, cμng không thể có tác dụng tăng tốc độ hội tụ của hầu hết các thuật toán
tối ưu hoá hμm trơn vμ không trơn
Qui tắc điều chỉnh bước nói trên khá thô thiển nên chỉ áp dụng trong các
thuật toán đơn giản, ví dụ thuật toán tụt theo toạ độ
Trong thuật toán đa diện biến dạng, qui tắc điều chỉnh bước (5.3) thể
hiện một cách ẩn thông qua ba phép toán đặc biệt là phản xạ, kéo dãn và co
đa diện Đây là những phép biến đổi hình học thuần tuý, không có mối liên hệ
Trang 8chặt chẽ với tính chất hình học của hàm cực tiểu hoá Do vậy, việc chứng
minh sự hội tụ của thuật toán gặp nhiều khó khăn Về mặt thực tế, nhiều
trường hợp áp dụng cho thấy thuật toán này hội tụ khá nhanh, nhưng lại có
nhiều trường hợp thuật toán bị mắc ở khe hoặc hoàn toàn không hội tụ
5.2 Qui tắc điều chỉnh thứ hai
Lμ chọn cố định theo điều kiện Lipchits, ví dụ:
α k+1=α , 0<α <1/L, k =0,1, , (5.4)
trong đó L lμ hằng số Lipchits, lμ “độ dốc” lớn nhất của hμm mục tiêu
Qui tắc điều chỉnh bước (5.4) thường áp dụng đối với các thuật toán
gradien đơn giản để cực tiểu hoá các hμm trơn, tuân theo phương trình lặp
(5.2) Điều kiện (5.4) đủ để đảm bảo tính đơn điệu vμ sự hội tụ lý thuyết của
quá trình tối ưu hoá, khi hướng tìm kiếm lμ véctơ đối gradien của hμm mục
tiêu
Nhược điểm thứ nhất của qui tắc điều chỉnh bước nói trên là vấn đề hằng
số Lipchits mà trong đa số các trường hợp thực tế là không biết trước và
không thể xác định được Nhược điểm thứ hai, một nhược điểm có bản của qui
tắc điều chỉnh bước kiểu này là chỉ đảm bảo hình thành những thuật toán hội
tụ chậm
5.3 Qui tắc điều chỉnh bước thứ ba
Dựa trên sự tận dụng triệt để khả năng giảm của hμm mục tiêu trong mỗi
bước, tức lμ điểm tìm kiếm đạt cực tiểu của hμm mục tiêu theo hướng chuyển
dịch Điều kiện đạt cực tiểu theo hướng viết như sau:
0 1
α
=
≥ + J , k = 0,1, (5.5)
Độ dμi bước xác định theo điều kiện (1.5) có tên gọi lμ bước “triệt
để”.Trong các trường hợp hμm mục tiêu khe rõ rệt, với bước chuyển dịch “triệt
để”, điểm tìm kiếm thường đạt tới đúng “lòng khe” Do đó có thể gọi lμ “bước
tới khe” hay “bước khe”
Qui tắc điều chỉnh (5.5) không chỉ đảm bảo hội tụ cho các thuật toán
gradien thuần tuý đối với các hμm trơn, mμ còn đảm bảo tốc độ hội tụ cao so
với các thuật toán gradien khác
Khi quá trình tối ưu hoá xuất phát từ vị trí nằm cách xa lân cận tối ưu,
thì các hàm mục tiêu thường không phải là toàn phương và thậm chí là không
lồi, qui tắc điều chỉnh bước “triệt để” không mang lại hiệu quả hội tụ cao
nhất Đặc biệt, khi hàm cực tiểu hoá có “khe cong” hoặc là không trơn, bước
Trang 9“triệt để” thể hiện là “bước khe” rõ rệt và do đó dễ làm cho quĩ đạo tìm kiếm
bị tắc ở lòng khe
5.4 Qui tắc điều chỉnh bước thứ tư
Có thể được xét lμ do Gelfand đề xuất Theo qui tắc nμy, độ dμi bước xác
định bởi phép ngoại suy tựa theo hướng lòng khe, các thuật toán khe của
Gelfand chỉ áp dụng hiệu quả cho những trường hμm số có lòng khe không
quá hai chiều
5.5 Qui tắc thứ năm
Lμ cách điều chỉnh bước theo qui luật chuỗi số định trước Qui tắc kiểu
nμy áp dụng chủ yếu trong các thuật toán lặp tối ưu hoá hμm không trơn vμ
các hμm ngẫu nhiên Độ dμi bước ở đây xác định theo điều kiện Đvoreskyi
dưới nhiều dạng khác nhau sao cho đảm bảo sự hội tụ theo nghĩa xác xuất:
k 1
k
2 k 1
k k
=
∞
<
∞
=
∞
→
∞
=
∞
Các phần tử αk trong chuỗi số thoả mãn điều kiện (1.6) có thể chọn theo
qui luật:
) 1 (
+
k
b
c
Luật điều chỉnh bước chuỗi số thoả mãn điều kiện (5.6)-(5.7) do
Robins-Monro đề xuất để xây dựng thuật giải xác định hμm hồi qui theo các số liệu
ngẫu nhiên Thuật giải nμy có tên gọi lμ phương pháp “xấp xỉ ngẫu nhiên Qui
tắc nμy cũng được áp dụng mở rộng đối với các hμm không trơn vμ không lồi
Trên cơ sở khái niệm “hμm trơn hoá” vμ “gradien trơn hoá”, Gupal đề xuất
một biến thể của qui tắc điều chỉnh bước kiểu chuỗi số như sau
, 0
, 0
, 0
, 0 lim
,
,
k
k 1 k k
k k
k
k k 1
k
2 k 1
k k
→
ư
→
Δ
→
→
∞
<
∑
∞
=
∑
+
∞
→
∞
=
∞
=
β
α α
β β
α
α α
α
(5.8)
trong đó: Δk lμ gia số biến để tính gradien của hμm trơn hoá theo công thức sai
phân hữu hạn Thường thường nó được tính như gradien thông thường tại điểm
tựa ~xk, mμ ~xk một điểm ngẫu nhiên trong hình hộp với tâm tại xk vμ cạnh
bằng βk, xk lμ véctơ các biến tối ưu hoá, nhận được sau bước lặp thứ k
Trang 10Phương trình lặp tối ưu hoá hμm không trơn có hình thức giống như đối
với hμm trơn, nhưng gradien được thay bởi gradien trơn hoá, tức gradien của
hμm mục tiêu tại điểm ~xk
Qui tắc nàylà cơ sở để xây dựng các thuật toán tối ưu hoá hàm không
trơn, với sự đảm bảo hội tụ tiệm cận Nhưng các qui tắc điều chỉnh bước theo
kiểu chuỗi số định trước được thiết lập trên cơ sở hết sức chung và sử dụng
lượng thông tin rất nghèo nàn về tính chất của hàm mục tiêu Vì vậy, các thuật
toán tối ưu hoá dựa trên cơ sở qui tắc điều chỉnh bước trên nói chung có tốc
độ hội tụ chậm và có hiệu quả ứng dụng thấp
5.6 Qui tắc điều chỉnh bước thứ sáu
Lμ qui tắc “vượt khe” nhằm lμm cơ sở xây dựng những thuật toán tối ưu
hoá thích hợp vμ có hiệu quả nhất để tối ưu hoá các hμm khe Trong các bμi
toán tối ưu hoá thực tế, đặc biệt trong các nghμnh kỹ thuật vμ công nghệ, các
hμm cực tiểu hoá thể hiện hoặc lμ hμm trơn, hoặc lμ hμm không trơn tại những
tập điểm giới hạn nμo đó, hoặc lμ hμm ngẫu nhiên rõ nét trong miền hẹp nμo
đó bao quanh điểm tối ưu Nhưng trong hầu hết các trường hợp chúng đều có
tính chất khe rõ rệt
Theo qui tắc điều chỉnh bước vượt khe, độ dμi bước αk+1 trong mỗi lần
lặp không nhỏ hơn độ dμi bước “triệt để” đã nói ở trên Qui tắc nμy tạo cho
các thuật toán vượt khe có khả năng nghiên cứu tổng thể vùng khe của hμm
mục tiêu vμ xác định chiến lược chuyển dịch đến nghiệm tối ưu một cách hiệu
quả nhất Dưới đây sẽ trình bầy tỉ mỉ về quan điểm điều chỉnh bước theo
nguyên lý “vượt khe”
6 Nguyên lý tối ưu hoá vượt khe và thuật toán xác định bước vượt khe
Như một thuật toán gradien thông thường, phương pháp “vượt khe” xây
dựng trên cơ sở hai khái niệm: hướng thay đổi hμm mục tiêu vμ qui tắc điều
chỉnh bước Theo nguyên lý “vượt khe”, điểm đầu vμ điểm cuối của mỗi bước
lặp luôn luôn nằm về hai phía điểm cực tiểu của hμm mục tiêu xét dọc theo
hướng chuyển động của điểm tìm kiếm, tại mỗi bước Sự chuyển động đó tạo
ra bức tranh hình học tựa như trên mỗi bước lặp, điểm tìm kiếm luôn luôn
“bước” qua “lòng khe” của hμm mục tiêu Sự chuyển động vượt qua điểm cực
tiểu (theo hướng) trên mỗi bước lặp tạo ra khả năng khảo sát “địa hình” vùng
khe vμ nhận được thông tin cụ thể về đặc tính khe của hμm mục tiêu Điều đó
cho phép xây dựng chiến lược tìm kiếm hiệu quả nhất dẫn đến nghiệm tối ưu
Độ dμi bước lặp xác định theo nguyên lý “vượt khe” có tên gọi lμ “bước vượt
khe”
Giả sử ta có hμm cực tiểu hoá J(x), x∈En Xét hμm một biến xác định tại
bước lặp thứ k+1 như sau:
h(α) = J(xk + α.sk), (6.1)
trong đó xk - điểm đầu; sk - hướng tìm kiếm; α - độ dμi bước