Những phương pháp tối ưu được trình bày sau đây là những phươngpháp tối ưu trực tiếp không có sử dụng đạo hàm, còn những phươngpháp có sử dụng đạo hàm không được nói đến do việc gắn nó v
Trang 1Lời mở đầu
Ngày nay cùng với sự phát triển không ngừng của khoa học máy tínhthì việc ứng dụng nó vào các ngành khoa học khác cũng đạt được nhữnghiệu quả hết sức to lớn
Một ứng dụng cụ thể của máy tính vào cơ học đó là tối ưu hoá các hệ
cơ học Với các modul tối ưu có sẵn trên máy thì ta có thể dễ dàng triểnkhai chúng vào một modul riêng biệt trong quá trình giải trọn vẹn một
hệ cơ học
Mục đích chính của đồ án này là xây dựng các modul tối ưu để gắnvào một chương trình hoàn chỉnh giải một hệ cơ học Do phạm vi để sửdụng như vậy nên trong đồ án này tôi chỉ trình bày những phương pháptối ưu mà có thể dễ dàng ứng dụng để đạt được mục đích trên, mặc dùcòn nhiều phương pháp nhanh và chính xác hơn nhưng việc áp dụngchúng vào dạng bài toán như trên thì nó trở nên phức tạp hơn
Những phương pháp tối ưu được trình bày sau đây là những phươngpháp tối ưu trực tiếp không có sử dụng đạo hàm, còn những phươngpháp có sử dụng đạo hàm không được nói đến do việc gắn nó vào cácmodul khác mà tính đến đạo hàm thì chương trình rất khó thực hiện dohàm mục tiêu được xác định trong quá trình tính toán từ các modul khácnên khó xác định được đạo hàm của chúng và các ràng buộc
Chương I giới thiệu sơ qua các khái niệm về tối ưu và bài toán cơhọc đặt ra Chương II, III, IV trình bày cụ thể các phương pháp tối ưu.Chương V là sử dụng các modul xây dựng từ các phương pháp đã giớithiệu để giải một vài bài toán cụ thể
Tôi xin chân thành cảm ơn sự hướng dẫn tận tình của thầy giáo ĐinhVăn Phong, cảm ơn sự giúp đỡ tham khảo của thầy Nguyễn Nhật Lệ vàthầy Phan Mạnh Dần
Trang 2Chương I.
bài toán tối ưu trong cơ học
I Bài toán tối ưu tổng quát
1 Phát biểu bài toán.
“Tìm trạng thái tối ưu của một hệ thống bị ràng buộc sao cho đạtđược mục tiêu mong muốn về chất lượng theo một nghĩa nào đó.”
Các yếu tố của một bài toán tối ưu hoá:
- Trạng thái: mô tả trạng thái của hệ thống cần tối ưu hoá
- Mục tiêu: đặc trưng cho tiêu chuẩn hoặc hiệu quả mong muốn(như hiệu suất cao nhất, trọng lượng nhỏ nhất, độ cứng nhỏ nhất,gia tốc nhỏ nhất, thời gian ngắn nhất)
- Ràng buộc: Thể hiện các điều kiện kỹ thuật mà hệ thống phải thoảmãn
2 Phân loại các bài toán tối ưu.
Có các loại bài toán tối ưu sau:
- Bài toán quy hoạch tuyến tính
- Bài toán quy hoạch phi tuyến
- Bài toán cực trị phiếm hàm
- Bài toán điều khiển tối ưu
Tuy nhiên do phạm vi ứng dụng ở đây là trong các bài toán cơ họcnên ta chỉ xét đến bài toán tối ưu phi tuyến
Một bài toán tối ưu phi tuyến được phát biểu như sau:
Tìm giá trị nhỏ nhất (hoặc lớn nhất) của hàm:
Trang 3Hàm f(x) ở đây được gọi là hàm mục tiêu, x∈En là biến trạng thái.
hàm nhiều biến Trong các hàm đó thì phải có ít nhất một hàm là phituyến
II Một số Bài toán cơ học
Bây giờ ta sẽ đi xét một số ví dụ dùng để minh hoạ cho việc sử dụngcác modul tối ưu Với mỗi hệ cơ học sẽ chỉ đặt ra bài toán tối ưu, còn ta
sẽ xem xét cụ thể vào chương V của đồ án này
1 Bài toán 1: Tối ưu tần số
1
i
2 ib i
Trang 4Đây là bài toán tối ưu bằng phương pháp số, các biến đầu vào là mi,
được tính từ mi, ci, bi bằng một modul tính toán khác
2 Bài toán 2: Tối ưu biên độ
Hình II-2
Với mô hình cơ học như trên thì bài toán đặt ra là xác định các khối
ω
ω
;
4
Trang 5D= (0)
1
2ω2mbThì giải hệ trên ta được các hàm khuếch đại như sau:
2 2
)μηη
(1η4D]
ημξ)η)(ξη[(1
η4D)
η(ξ
−
−+
)μηη
(1η4D]
ημξ)η)(ξη[(1
η4Dξ
−
−+
bài toán tối ưu biên độ đặt ra như sau:
η)ξ,(D,Vη)ξ,(D,V
max
≤
η)ξ,(D,V
η)ξ,(D,Vη)ξ,(D,V
Trang 6Gọi giá trị của η tại các điểm gián đoạn trong [a,b] là ηi với i=1 m.Khi đó bài toán dẫn về:
)ηξ,(D,V)ηξ,(D,V
i 1
i 1
Trang 7Do phạm vi ứng dụng trong các bài toán như vậy nên ở phần này tôichỉ trình bày chủ yếu vào phương pháp tìm kiếm không sử dụng đạohàm, tức là tìm trực tiếp, và thuật toán được trình bày cụ thể để sử dụngtrong đồ án này là thuật toán Fibonacci và còn được phát triển thànhphương pháp “golden section” (mặt cắt vàng).
II Tối ưu với hàm mục tiêu không có giới hạn
Là hàm mục tiêu mà không có giới hạn cho biến x Để tìm được lờigiải tối ưu cho những hàm này ta phải đi xác định khoảng mà chứa giátrị tối ưu, do đó nó chuyển thành bài toán với hàm mục tiêu có giới hạn
a Xác định khoảng tối ưu
Trang 8Trong bước tìm kiếm trực tiếp nào đó, hai giá trị của hàm mục tiêu
có thể được dùng để loại trừ một miền không chứa giá trị tối ưu Theo
đó, nếu ta tìm max: với x1 > x0 và f(x1) > f(x0) thì ta có thể kết luận giá
tối ưu nằm trong hai khoảng, ở đây đó là [x0 ; x1] và (x1 ;+∞)
x1=x0+s và tính f(x1), f(x0) Có 3 trường hợp sau:
- Nếu f(x1) = f(x0) thì max nằm trong khoảng x0 < x < x1
- Nếu f(x1) > f(x0) thì max nằm trong khoảng x>x0, ta phải tìm theotrục x theo hướng tăng theo s Phương pháp của Swann yêu cầu tính giátrị hàm mục tiêu tại dãy các điểm: x0; x1=x0+s; x2=x1+2s; …; xk=xk-1+2k-
f(x0)< f(x1) <f(x2)<…< f(xk-1) và f(xk-1)≥ f(xk)
độ dài khoảng này là:
xk-xk-2= xk-1+2k-1s- xk-2
- Nếu f(x1) < f(x0), ta loại khoảng x>x1 và tìm kiếm theo các giá trịgiảm dần của x Cũng tương tự trường hợp thứ 2 ở trên nhưng ta thay
Đến đây đã xác định được khoảng tối ưu, việc tìm giá trị tối ưu chohàm mục tiêu sẽ chuyển thành tìm giá trị tối ưu cho hàm mục tiêu cógiới hạn
b Chọn độ dài khởi tạo s
Bài toán đặt ra đầu tiên trong bất kì việc tìm kiếm giá trị tối ưu làchọn dộ dài khởi tạo s, trong phương pháp số trên máy tính thì nó quyếtđịnh số lượng tính toán nhiều hay ít Trong phần trước, tổng khoảngcách dịch chuyển trong quá trình tìm kiếm giá trị max của hàm mục tiêu
8
Trang 9đến bước thứ k-1 là tổng của ∑−
=
1 0
s2
k i
s2
k i
i
hay: k >
2ln
]/)(
1
với k là số bước dịch chuyển, nhưng có k+1 giá trị của hàm mục tiêu
miền cuối cùng của độ dài 3d/2 chứa giá trị tối ưu mong muốn Độ dài
đó là: (3/2).d(k)=3.2k-2s theo (2.1.2) và với k tính theo (2.2.2)
c ước lượng gần đúng giá trị tối ưu
Từ 3 điểm (xk-2, xk-1, xk) đã tính được với 3 giá trị của hàm mục tiêutương ứng, hàm f(x) có thể được tính xấp xỉ thành hàm bậc 2 như sau:
2 - k 1
k
-x-x
)f(x-)f(x
(2.3.3)
11
β =
1 - k k
2 - k 1 - k
2 - k 1
k
-2 - k k
2 - k k
x-x
x-x
)f(x-)f(xx
x
-)f(x-)f(x
−
(2.3.4)
Do đó bài toán tối ưu bây giờ trở thành bài toán tìm cực trị của hàmbậc hai một biến Ta chỉ cần giải phương trình f’(x)=0, kết quả cho nhưsau:
x*=(xk-2+xk-1-β /1 β )/211
III tối ưu với hàm mục tiêu có giới hạn
Trang 10Trong phần này ta sẽ tìm giá trị tối ưu cho hàm mục tiêu có giới hạn:
Fibonacci
1 Phương pháp Fibonacci
a Cơ sở tìm kiếm trên dãy số Fibonacci
Hai điểm dùng để thử có thể được thêm vào là C và D như hình vẽ dướivới các độ dài tương ứng: lj=AC và lj’=DB
Hình III-1 Hai bước liên tiếp của phương pháp Fibonacci
độ dài Lj-lj’, do đó để thu được những đoạn bằng nhau ta nên đặt lj=lj’.Bước tiếp theo là ta thay đoạn AB bằng đoạn CB hoặc AD bằng cáchloại trừ một trong hai đoạn Giả sử ta thu được đoạn CB và nó có chứađiểm D, do đó ta chỉ việc thêm vào điểm E và quan hệ về độ dài là:
Trang 111 1
β2γ
β-γ
+ +
+ +
− j
j
j j
(3.1.3)Điều đó được thoả mãn khi:
) 1 (
j N
với j=1,2,…,N-1
Trang 12Đến đây ta đã có tất cả những thành phần cần thiết cho phương pháptìm kiếm Fibonacci.
b Phương pháp tìm kiếm Fibonacci
Trong phương pháp này, đoạn đầu tiên ta phải tính 2 giá trị (bước 1)
để chia đoạn đó thành 3 đoạn, sau đó chọn 2 đoạn để thực hiện việc tìmkiếm tiếp theo ở bước tiếp theo ta chỉ việc tính thêm 1 giá tri do giá trịthứ 2 trùng với 1 trong 2 giá trị ở bước trước Do đó từ bước thứ 2 trở đi
ta chỉ phải tính thêm 1 giá trị để thử
Có thể tóm tắt các bước của phương pháp như sau:
- Bước 1: Thay hai giá trị đầu tiên.
Với đoạn a1 ≤ x ≤ b1 có độ dài L1=b1-a1 Hai vị trí được thêm vàođoạn [a1,b1] để thử là x1 và x2 (x2 > x1) Trước hết ta tính độ dài:
Bằng cách so sánh f(x1) và f(x2) mà ta sẽ loại được đoạn (a1,x1) hoặc
được đoạn mới nhỏ hơn chứa giá trị tối ưu
- Bước 2: Tìm kiếm trên đoạn mới.
Đoạn mới có độ dài: L2=L1-l1=b1-x1 (hoặc x2-a1)
Trang 13) 1 (
) 1 (
- Bước 3: Hai điểm để thử trong đoạn thứ hai.
Trên đoạn L2 ta sẽ thêm vào 2 điểm x3’và x3’’ Ta có:
Đến đây ta phải xét tới 2 trường hợp:
+ Trường hợp thứ nhất: đoạn (a1,x1) bị loại trừ còn lại đoạn(x1,b1), giá trị tối ưu sẽ nằm trong đoạn (x1,b1):
1
3 1
F
F-F
+ Trường hợp thứ hai: đoạn (x2,b1) bị loại trừ còn lại đoạn (a1,x2),
hợp trên, chỉ phải tính một giá trị x3
Tổng quát cho bước lặp thứ m ta có:
Trang 142 Phương pháp Fibonacci cải tiến
Từ biểu thức (3.1.7) ta đặt: j=N-(k-1) ta có
lk=
) 1 (
) 1 (
k N
Bước 1: Xác định hướng tối ưu
a xt=x0+s
Nếu f(xt) > f(x0) thì s = -s và xt=x0+s (Đổi hướng)
Nếu f(xt) > f(x0) thì s = -s/2 và xt=x0 (Quay về điểm ban đầu)
b Nếu f(xt) > f(x0) và s>e thì quay lại a
Bước 2: Xác định khoảng tối ưu
a Gán: xt=x0+s và s=2s
b Nếu f(xt) < f(x0) thì quay lại a
Bước 3: Thuật toán Fibonacci
14
Trang 15Chú ý: ở trên ta phải dùng dấu trị tuyệt đối để kiểm tra điều kiện
dừng của chương trình do ở bước 1 xác định hướng tối ưu s có thể âm
chương trình kết thúc khi xt chưa dần tới x0 (xt < x0)
Thuật toán Fibonacci có tốc độ hội tụ rất nhanh so với việc chiakhoảng tối ưu thành nhiều điểm bằng nhau đồng thời số lượng tính toán
ít do ở mỗi vòng lặp chỉ phải thực hiện một phép tính
Thủ tục tính toán được viết bằng ngôn ngữ C++ ứng dụng trongthuật toán Powell trong tệp “Powell.cpp” trong phần phụ lục
Trang 16Chương III.
Tối ưu hoá hàm Nhiều biến không có ràng
buộc
I Giới thiệu
cho hàm nhiều biến, ta sẽ phải tìm ra các phương pháp khác phù hợp đểtìm lời giải tối ưu
Ta có thể phân loại thành hai phương pháp chính cho lời giải bàitoán tối ưu: đó là phương pháp có sử dụng đạo hàm và phương phápkhông sử dụng đạo hàm
Phương pháp có sử dụng đạo hàm có ưu điểm là hội tụ nhanh vàchính xác nhưng yêu cầu phải tính đạo hàm của hàm mục tiêu Cònphương pháp không sử dụng đạo hàm thì không phải tính đạo hàm màchỉ cần tính giá trị của hàm mục tiêu và so sánh các giá trị với nhau tùytheo từng phương pháp tìm kiếm
Tuy nhiên trong ứng dụng các phương pháp vào từng lớp bài toán cụthể thì phương pháp sử dụng đạo hàm gặp phải hai trở ngại lớn khi triểnkhai
16
Trang 17Thứ nhất đó là khi gặp phải bài toán có số lượng lớn các biến (n lớn),việc phân tích hàm mục tiêu để tính các giá trị đạo hàm đó rất nặng nề
và không dễ dàng để thực hiện, nhất là khi phải tính đạo hàm bậc haivới phương pháp gradient cấp hai Ngay cả khi việc xác định giá trị cácđạo hàm được thay thế bằng phương pháp tính xấp xỉ thì cũng gặp phảilỗi khi triển khai trên máy tính số, cụ thể đó là lỗi khi giá trị các biếndần đến lân cận của vô cùng hoặc tính đến điểm đạo hàm không xácđịnh, việc tính xấp xỉ không còn đúng nữa Về nguyên tắc thì việc thaythế đó hoàn toàn có thể, nhưng phương pháp này vẫn yêu cầu một sốlượng biến đổi đáng kể trước khi nó trở thành công cụ có thể tính toán.Cũng với trường hợp trên thì phương pháp không sử dụng đạo hàm lạikhông yêu cầu hàm mục tiêu phải liên tục và đều hay tồn tại đạo hàmhay không mà vẫn có thể thực hiện việc tìm lời giải tối ưu
Trở ngại thứ hai đó là người dùng phải nhập trực tiếp biểu thức củađạo hàm vào trước khi phải tính đến giá trị của hàm mục tiêu trong thuậttoán, nhất là khi số biến lớn hoặc có nhiều ràng buộc thì việc nhập rấtkhó khăn
Một vấn đề nữa cũng cần phải cân nhắc khi sử dụng phương pháp tối
ưu nào, đó là khi sử dụng thuật toán tối ưu như một modul tính toán chotoàn bộ một đề án, khi đó hàm mục tiêu được tính qua các modulchương trình khác trên máy tính số, việc xác định được đạo hàm của nótrong trường hợp này là vô cùng khó khăn
Với những yếu tố trên và phạm vi ứng dụng của đồ án này như mộtmodul riêng như đã nói thì trong đồ án này tôi chỉ nói sơ qua phươngpháp có sử dụng đạo hàm để có thể so sánh chứ không có ý định ứngdụng, còn phương pháp được trình bày chính là không sử dụng đạohàm
Trong chương này ta sẽ xét đến các hàm mục tiêu không có các ràngbuộc Việc tối ưu các hàm mục tiêu có ràng buộc ta sẽ nói đến ở chương
Trang 18sau, nhưng về cơ bản vẫn phải sử dụng đến các phương pháp sẽ trìnhbày ở chương này.
II Phương pháp tối ưu của hook và jeeves
Theo khái niệm thì đây là phương pháp đơn giản nhất, nó được thựchiện như sau: tại một thời điểm chỉ thay đổi một biến trong khi giữnguyên giá trị của các biến còn lại cho tới khi tìm được giá trị tối ưu
giá trị tối ưu ứng với nó Tuy nhiên quá trình này sẽ không chính xác
phương pháp này không thể được thực hiện trừ khi hàm mục tiêu có sựảnh hưởng lẫn nhau là vô nghĩa
Hook và Jeeves đã đưa ra một chiến lược đơn giản hợp lý củaphương pháp tối ưu trực tiếp Đó là sử dụng những điểm đã tính thử rồiloại bỏ sự không cần thiết về tính chất của hàm mục tiêu trong không
không bị ảnh hưởng của sự thay đổi hình dáng và kích thước) Nó đãđược Wood bổ sung thêm, thuật toán gồm hai bước chính: đầu tiên là tối
ưu quanh điểm cơ sở rồi tối ưu theo hướng đã chọn (hay còn gọi tối ưutheo mẫu hình) Hình II-1 dưới đây là sơ đồ thuật toán của phương pháp
đó (Trong trường hợp tìm min của f(x))
18
Trang 19Bắt đầu
Cho điểm khởi tạo cơ sở
x0Tính f(x
0 ) Thực hiện tối ưu lần I, thu
Trang 20Hình II-1 Sơ đồ thuật toán tối ưu của Hook Jeeves
Thuật toán tối ưu trực tiếp được thực hiện theo các bước như sau:
- Cho trước các giá trị khởi tạo:
x1(0) được thay đổi bởi s1(0): x1(1)= x1(0)+s1(0)
Nếu f(x) không giảm thì thay x1(1)= x1(0)-s1(0) Nếu f(x) giảm thì ta
- Tối ưu theo mẫu hình được thực hiện nếu bước trên thành công:Sau khi tối ưu theo n hướng ở trên thì ta thực hiện tối ưu theomẫu hình Từ các hướng tối ưu thành công ở trên (là các hướng màtối ưu thu được giá trị hàm mục tiêu tốt hơn giá trị trước khi thực
20
Trang 21hiện) ta định nghĩa một vector trong không gian Rn thể hiện hướngtối ưu thành công Gọi m là số lần tối ưu thành công thì thực hiện tối
ưu theo mẫu hình theo công thức sau:
x(k+1)=m.x(k)-x(0) (i=1 n)
Việc tối ưu theo mẫu hình có thành công hay không ta chưa thểkết luận ngay được mà còn phải thực hiện tối ưu lần II xong mới kếtluận được
- Tối ưu lần II:
Sau khi tối ưu theo mẫu hình kết thúc thì ta thực hiện tối ưu lần
II, các bước cũng tương tự như lần I
Nếu f(x) không giảm sau khi tối ưu lần II thì ta kết luận việc tối
ưu theo mẫu hình là thất bại, quay lại tối ưu từ lần I để tìm hướng tối
ưu thành công mới
- Kiểm tra điều kiện dừng:
Nếu việc tối ưu ngay từ lần I đã thất bại, hướng tối ưu mới khôngđược tìm thấy thì ta giảm dần các thành phần của s (là một vector)cho tới khi tìm được hướng tối ưu mới hoặc tất cả các thành phầncủa nó bằng không (trong máy tính số thì nhỏ hơn sai số e) thì thuậttoán kết thúc
Việc thất bại trong việc làm giảm giá trị của f(x) ứng với các thànhphần của s cho thấy f(x) chính là giá trị tối ưu địa phương Ba bướckiểm tra cơ sở phải được thoả mãn cho các bước tối ưu kết thúc:
- Bước kiểm tra đầu tiên được thực hiện sau mỗi lần tối ưu I và tối
ưu theo mẫu hình: Độ lớn của sự thay đổi hàm mục tiêu được so sánhvới một giá trị nhỏ cho trước Nếu tổng số thay đổi của hàm mục tiêu kể
từ giá trị cơ sở của nó không lớn hơn giá trị nhỏ cho trước thì bước tối
ưu lần I hoặc tối ưu theo mẫu hình coi như thất bại Khi không thực hiệnviệc kiểm tra như trên thì thực hiện kiểm tra theo cách khác là xác địnhxem hàm mục tiêu tăng (thất bại) hay giảm (thành công)
Trang 22- Bước kiểm tra thứ hai bảo đảm rằng giá trị của hàm mục tiêu luôntốt hơn (trong trường hợp tối ưu này là giảm).
- Bước kiểm tra thứ ba thực hiên sau khi tối ưu lần I thất bại theocác hướng thành phần của s Thuật toán có thể kết thúc nếu các thànhphần của s nhỏ hơn sai số e cho trước
III Phương pháp tối ưu của nelder và mead
1 Cơ sở lý thuyết
Nelder và Mead đã đưa ra một phương pháp có phần hơi phức tạp sovới phương pháp tối ưu trực tiếp nhưng nó đã chứng tỏ là một phươngpháp có hiệu quả tốt và dễ dàng thực hiện trên máy tính số
Để hiểu rõ hơn về phương pháp ta hãy xem xét vắn tắt một phươngpháp gọi là tối ưu bằng đơn hình do Spendley, Hext và Himsworth nghĩ
ra khi thống kê các lần tính thử bằng tay Các khối đa diện đều trong
một tam giác đều (3 đỉnh), với hàm 3 biến thì là một khối tứ diện đều (4đỉnh) (hai trường hợp này được minh họa bằng hình III-1 ở dưới),…,tương tự với hàm mục tiêu n biến thì đơn hình là khối đa diện (n+1)đỉnh
Hình III-1 Đơn hình đều với 2 và 3 biến độc lập
Trong quá trình tối ưu hàm mục tiêu f(x), vector x dùng để thử có thể
hình như đã giới thiệu ở trên do Spendley, Hext và Himsworth Từnhững phân tích hình học như trên ta có thể chỉ ra toạ độ của các điểmcủa đơn hình đều được cho bởi ma trận D, trong đó các cột biểu diễn
4
Trang 23các thành phần của các đỉnh được đánh số từ 1 đến (n+1) và các hàngbiểu diễn các toạ độ được đánh số từ 1 đến n:
D =
1)(nnd
dd0
dd0
d
dd0
d
dd0
1 2
2
2 2
2
2 1
2
2 2
t
d2=
2n
t
t : khoảng cách giữa hai đỉnh
Hàm mục tiêu có thể được tính tại mỗi đỉnh của đơn hình, một phépchiếu được thực hiện từ đỉnh mà hàm mục tiêu có giá trị lớn nhất quatrọng tâm của đơn hình, trong hình III-1 thì đó là đỉnh A và B là đỉnhtạo thành sau phép chiếu Thông thường thì ta thực hiện phép chiếu làphép ánh xạ hệ số bằng 1, tức là phép lấy đối xứng Đơn hình mới đượctạo nên sau khi bỏ đi đỉnh A và thêm một đỉnh mới là B Tiếp tục vớithủ tục này ta luôn luôn loại được đỉnh mà hàm mục tiêu có giá trị lớnnhất, đồng thời thêm vào quy tắc giảm kích thước của đơn hình sau mỗilần thực hiện để tránh dẫn tới giá trị vô hạn Chúng ta thừa nhận rằngphương pháp tối ưu bằng đạo hàm thì ở một vòng lặp nào đó độ dàidùng để tối ưu là cố định nhưng hướng tối ưu đã chọn lại thay đổi
Một vài khó khăn trong thủ tục đơn hình đều là hội tụ chậm (do phảitính đến nhiều hơn (n+1) giá trị và so sánh trong một lần tính) và khithực hiên với những hàm mục tiêu lồi hoặc lõm, từ đó dẫn đến một vàiphương pháp cải tiến để xử lí những khó khăn đó Trong phần nàychúng ta sẽ nói đến phương pháp của Nelder và Mead, trong đó đơn
Trang 24hình được thay đổi hình dáng không phải là đơn hình đều nữa, việc đókhông làm phương pháp lâu hơn là giữ nguyên đơn hình đều, do đóchúng ta gọi là phương pháp “khối đa diện linh hoạt” (flexiblepolyhedron).
Phương pháp của Nelder và Mead để tìm giá trị nhỏ nhất của hàmmục tiêu có n biến độc lập sử dụng (n+1) đỉnh của khối đa diện linh
Đỉnh mà giá trị hàm mục tiêu có giá trị lớn nhất được lấy đối xứng quatrọng tâm của các đỉnh còn lại của khối đa diện Thay đỉnh mà hàm mụctiêu có giá trị lớn nhất đó bằng đỉnh có giá trị nhỏ hơn qua các phépchiếu cho tới khi kích thước của khối đa diện xấp xỉ không thì tìm thấygiá trị nhỏ nhất
2 Xây dựng thuật toán
Từ những cơ sở lý thuyết như trên ta sẽ đi xây dựng một thuật toán
cụ thể để dễ dàng thực hiện trên máy tính
Kí hiệu: xi(k)=[xi1(k), xi2(k),…, xin(k)]T là đỉnh thứ i của khối đa diện tạibước tính thứ k Thuật toán Nelder và Mead là thực hiện trên khối đadiện (n+1) đỉnh bất kì nên ta phải cho trước toạ độ của (n+1) đỉnh, tức là
và đơn giản ta xây dựng luôn khối đa diện ban đầu là một đơn hình đềunhư đã trình bày ở trên, khi đó ta chỉ phải cho trước một đỉnh, tức là chỉphải nhập vào máy n giá trị, điều đó đơn giản hơn rất nhiều và bảo đảmkhối đa diện ban đầu luôn thoả mãn để tính toán không phải kiểm tra.Thuật toán được trình bày cụ thể như sau:
ban đầu là một đơn hình đều với kích thước t cho trước như phầntrình bày ma trận D ở trên:
x1(0)= x0(0)
24
Trang 25)
xn
hj n
Trang 26hệ số thu nhỏ là 0,5:
k=k+1 và quay lại bước 2
- Bước 6: Kiểm tra điều kiện dừng:
Điều kiện kiểm tra cho thuật toán dừng là:
2 / 1 1
1
2 ) ( 2 )
( ) ( )]
([1
k
xf
Trong đó ε là sai số của thuật toán
3 Các hệ số α , γ , β
26
Trang 27Trong các bước trên của thuật toán có 3 hệ số là α , γ , β Trong đó
α là hệ số ánh xạ sử dụng để chiếu đỉnh mà hàm mục tiêu đạt giá trị lớnnhất qua trọng tâm của khối đa diện biến dạng (đã bỏ đi đỉnh đó) Hệ sốgiãn γ sử dụng để kéo dài vector xác định hướng tối ưu (gốc là trọngtâm của khối đa diện dùng để thực hiện phép chiếu và ngọn là đỉnh thuđược) nếu như phép ánh xạ thu được một đỉnh mà tại đó hàm mục tiêu
có giá trị nhỏ hơn giá trị nhỏ nhất tìm được ngay trước đó Hệ số co β
sử dụng để thu nhỏ vector xác định hướng tối ưu (gốc là trọng tâm nhưtrên và ngọn là đỉnh dùng để thực hiện phép chiếu) nếu phép chiếukhông thu được một đỉnh mà tại đó giá trị của hàm mục tiêu nhỏ hơn giátrị lớn nhất thu được ngay trước khi thực hiện phép chiếu Do đó ýnghĩa của các phép giãn và co là làm cho kích thước và hình dáng củakhối đa diện biến dạng có tỉ lệ phù hợp với tính topo của bài toán đangđược giải
Một câu hỏi tự nhiên được đặt ra là nên chon các hệ số trên như thếnào cho phù hợp Một khối đa diện biến dạng có tỷ lệ thích hợp, độ dàinên được giữ nguyên không thay đổi cho đến khi thay đổi trong hìnhhọc topo của bài toán gọi đến một khối đa diện có hình dáng khác Điềunày chỉ thoả mãn khi α =1 Nelder và Mead đã chứng minh được rằngcác giá trị được yêu cầu để giải bài toán với α =1 ít hơn với α <1 Hơnnữa α không nên chọn lớn hơn 1 bởi vì có hai lý do, thứ nhất đó là khối
đa diện biến dạng dễ dàng thích nghi với hình học topo của bài toán hơnnếu chọn α nhỏ, cụ thể khi nó cần thay đổi hướng tối ưu khi gặp phảihàm lõm, thứ hai là kích thước của khối đa diện biến dạng phải được thunhỏ về giá trị nhỏ nhất, và một giá trị α lớn sẽ làm cho tốc độ hội tụchậm hơn Do đó ta chọn α =1
Để xác định được hiệu quả của việc chọn γ và β trong quá trình tối
ưu, Nelder và Mead, và cả Paviani đã giải một vài bài toán kiểm tra có
sử dụng nhiều sự kết hợp các giá trị của γ và β Nelder và Mead đã đưa
Trang 28ra các giá trị α =1, β =0.5, γ =2 và nói chung đều thoả mãn với các bàitoán tối ưu không ràng buộc Kích thước và sự định hướng của khối đadiện khởi tạo đã có một vài tác dụng trong số lượng thời gian máy tínhyêu cầu Nhưng các giá trị thích hợp với α , β , γ lại có tác dụng đáng kểhơn Còn Paviani đã tiến hành kiểm tra và cho rằng không có một cáchgiải quyết rõ ràng cho việc chọn β và γ , và hiệu quả của việc chọn βlàm cho hiệu quả của việc tối ưu nhỏ hơn nhiều so với việc chọn γ Paviani đã giới thiệu một các chọn vừa phải như sau:
0.4≤β≤0.6
2.8≤γ≤3.0
Với 0 < β < 0.4 vòng lặp có thể sớm kết thúc do khối đa diện bị dátmỏng Với β > 0.6 thì quá trình tối ưu đòi hỏi một số lượng lớn cácbước lặp và thời gian để đi tới lời giải cuối cùng của bài toán
4 Sơ đồ thuật toán
Từ các bước phân tích như trên ta xây dựng một sơ đồ giải thuật nhưsau để dễ dàng thực hiện trên máy tính
28
Bắt đầu
Cho trước , t, x (0)
Xây dựng đơn hình (n+1) đỉnh x
i (0)
và tính f(x
i (0) ) với i=1,2, ,(n+1)
Tìm x
h , x
g , x
l Tính x
Kết thúc
Đún g
Đún g
Đún g
Sai
Đún g Sai
Trang 29IV Phương pháp tối ưu của Rosenbrock.
1 Cơ sở lý thuyết
Phương pháp của Rosenbrock là một thủ tục lặp mà sinh ra một vài
sự tương ứng với bước tối ưu thăm dò của Hook và Jeeves (đã trình bàytrong mục II), trong đó những khoảng tối ưu nhỏ được giữ nguyên trongkhi tối ưu trên các toạ độ trực giao Tuy nhiên, thay vì tiếp tục tối ưutrên các toạ độ tương ứng với các hướng của các biến độc lập sau mỗi
Trang 30vòng lặp thì nó lại tối ưu trên các trục của toạ độ trực giao, với toàn bộkhoảng tối ưu ở bước trước được dùng để xây dựng các toạ độ tối ưu
công trên một trục từ điểm cơ sở x(k) theo một tập các trục trực giao s1(k),
tối ưu hướng theo các trục chính của xấp xỉ bậc hai của hàm mục tiêu.Các trục này là các vector thành phần của ma trận H(x) (là ma trậnGradient cấp hai của hàm mục tiêu) và tạo thành một trường hợp đặcbiệt của các trục liên hợp, phương pháp thực hiện có phần giống vớiphương pháp một trục liên hợp trong sự hội tụ nếu ứng dụng vào mộtxấp xỉ bậc hai của hàm mục tiêu
Phương pháp thực hiện như sau Đặt s1(k), s2(k), …, sn(k) là các vector
sinh ra từ những thông tin thu được ở bước (k-1) theo công thức (4.1.1)
và (4.1.2) ở dưới Tại bước khởi tạo k=0, hướng của các vector s1(k), s2(k),
…, sn(k) thường được lấy song song với các trục của x1, x2, …, xn Nóichung các hướng trực giao có thể được biểu diễn bằng các sự kết hợpcủa tất cả các toạ độ của các biến độc lập như sau:
) (
2
k n
ở bước lặp thứ k, đặt x0(k)=xn(k-1) là điểm trong không gian En được
tương ứng với các hướng s1(k), s2(k), …, sn(k)
30
Trang 31Từ x0(k) thuật toán bắt đầu bằng việc tính λ1 (k) s1(k) trong trục toạ độđầu tiên của vòng lặp
Nếu f(x0(k)+ λ1 (k) s1(k))≤f(x0(k)) thì bước tối ưu đó được cho là thànhcông và x0(k) được thay bằng x0(k)+ λ1 (k) s1(k), λ1 (k) được nhân với một số
α >0 và tiếp tục với hướng s2(k)
Nếu f(x0(k)+ λ1 (k) s1(k)) > f(x0(k)) thì bước tối ưu đó được cho là thất bại
và x0(k) được giữ nguyên, λ1 (k) được nhân với một số β <0 và tiếp tục với
trình
Sau mỗi lần thực hiện xong n hướng s1(k), s2(k), …, sn(k) thì hướng đầutiên s1(k) lại được thực hiện với độ lớn của bước tối ưu là α λ1 (k) hoặc β
1
trên cho đến khi tất cả các hướng đều thất bại thì bước lặp thứ k kếtthúc Trong mỗi hướng tại lần thành công cuối cùng ta giữ lấy giá trịcủa hàm mục tiêu tại điểm x(k) và độ dài tối ưu λi (k) Điểm cuối cùng thu
hướng s1(k+1) chọn song song với (x0(k+1)-xn(k)) và các hướng còn lại được
các phương pháp được trình bày vắn tắt sau đây
Davies, Swann và Campey (DSC) đã biến đổi cách tối ưu củaRosenbrock trong các hướng s1(k), s2(k), …, sn(k) bằng việc xác định giá trịnhỏ nhất của f(x) trong mỗi hướng si(k) Để rõ ràng, đặt xi(k) là điểm mà
vector xi(k) và n giá trị tối ưu của hàm mục tiêu f(xi(k)) Từ x0(k) ta xácđịnh λ1 *(k) theo hướng s1(k) sao cho f(x0(k)+ λ1 *(k) s1(k)) là một giá trị nhỏnhất, đặt x1(k)= x0(k)+ λ1 *(k) s1(k) Từ x1(k) xác định λ2 *(k) sao cho f(x1(k)+ λ2
*(k) s2(k)) là giá trị nhỏ nhất, đặt x2(k)= x1(k)+ λ2 *(k) s2(k)
Trang 32Một cách tổng quát như sau: từ xi-1(k) xác định λi *(k) trên hướng si(k)
sao cho f(xi-1(k)+ λi *(k) si(k)) là giá trị nhỏ nhất Quá trình trên được lặp
Swann và Campey đã sử dụng thuật toán tối ưu tuyến tính để xác định
i
được trình bày ở chương trước để thay thế
Sau khi bước lặp thứ k hoàn thành thì các vector cho hướng mới phảiđược tính tại điểm x0(k+1)=xn(k) Kết quả thu được là các hướng tối ưu trựcgiao sẽ xoay từ các hướng ở ngay bước trước tới vị trí sao cho thẳnghàng với một điểm lõm (hoặc lồi) của hàm mục tiêu và bỏ qua quan hệ
vector A1, A2, …, An như sau:
A1(k)=D1(k)s1(k)+ D2(k)s2(k)+…+ Dn(k)sn(k)
A2(k)= D2(k)s2(k)+…+ Dn(k)sn(k)
An(k)= Dn(k)sn(k)
Do đó A1(k) là vector hướng từ x0(k) tới x0(k+1), A2(k) là vector hướng từ
x1(k) tới x0(k+1) A1(k) biểu diễn toàn bộ dịch chuyển từ bước k tới bước
hướng s1(k), …, An(k) biểu diễn dịch chuyển bắt đầu từ hướng sn-1(k), tức làtổng dịch chuyển trong hướng sn(k)
Trong quá trình biến đổi DSC của phương pháp Rosenbrock, để
số dưới sẽ không có trong công thức (4.1.1), nhưng cần phải sắp xếp lạisao cho D1(k) >D2(k) >…Dn(k) Nếu có m số Di(k) nào đó bằng
32
Trang 33không thì các hướng mới được tính như sau: chỉ có (n-m) hướng mà Di(k)
s(k+1)=si(k) với i=(n-m)+1, , n
khác không chính là (n-m) số đầu tiên (n-m) vector đầu tiên là trực giao
n Do các (n-m) hướng sau cùng trực giao với nhau nên tất cả các hướng
là trực giao với nhau
Trên máy tính, thay cho việc kiểm tra Di(k)=0 thì ta kiểm tra Di(k)<
ε với ε là độ chính xác của x hoặc f(x) Sự thay đổi này ảnh hưởng tớitính trực giao của các vector si(k) rất nhỏ
Trong cả hai phương pháp thì các hướng mới xác định như sau:
tập các hướng trực giao với nhau s1(k+1), s2(k+1), …, sn(k+1) tại bước thứ(k+1) được tính theo các quan hệ như sau:
) 1 (
1
1
) ( 1
A
A
k k
2
2
) ( 2
B
B
k k
Bn(k)=An(k)-∑−
=
1 1
n i
[( An(k))T s(k+1 )
i ]s(k+1 )
i
) 1 (
s k+
n = ( )
) (
B
B
k n k n
Trang 34Trong đó A là độ dài của vector Ai i Thủ tục thực hiện tương tựbước k bây giờ lặp lại cho bước (k+1), bắt đầu từ điểm x0(k+1)=xn(k).
toán học và không gian nhớ:
) (
i =∑
=
n i j
k j
k j
) ( ) ( s
) 1 (
s k+
[ 2]1 / 2
) ( 2 ) ( 1 )
( ) ( 1
2 ) ( ) ( 1
2 ) ( 1 ) (
AA
.A.A
AAA
A
k i
k i
k i
k i
k i
k i
k i
k i
nhỏ hơn một giá trị cho trước trong một vài bước lặp thành công Còn
với bước tối ưu δ(k)
i để thu được Di(k) trong tối ưu tuyến tính Nếu Di(k)<
Trang 35hướng cũ với giá trị δ(k)
các hướng s1(k), s2(k), …, sn(k) Tại bước đầu tiên k=0 thì ta nên chọn cáchướng trên song song với trục của các biến độc lập
Bước 2: Thực hiện việc tối ưu lần lượt theo từng hướng độc lập Một
điểm mới được chấp nhận nếu một dịch chuyển là thành công (giá trịcủa hàm mục tiêu nhỏ hơn giá trị của nó tại điểm cơ sở), còn ngược lại
là thất bại thì giữ nguyên điểm cơ sở Nếu một dịch chuyển thành côngthì độ dài tối ưu được nhân với một số α >1, còn thất bại thì nhân vớimột số β <0 và β >-1
Bước 3: Quá trình trên được thực hiện cho tới khi tất cả các hướng
các dịch chuyển thành công λi theo hướng si(k)
Tiếp theo ta tính một tập các hướng mới theo các công thức (4.1.1)
và (4.1.2)
3 Sơ đồ giải thuật
Sau cùng ta đi xây dựng một sơ đồ giải thuật cho phương phápRosenbrock như trang sau
Trang 36Bắt đầu
Cho điểm khởi tạo cơ sở x (0)
và các độ dài tối ưu: i(0) với
i=1, ,n k=0
Tính f(x (k) )
i=0
xi+1(k) =xi(k) +i(k) Nếu f(xi(k) )< f(xi-1(k) ) Tính lại từ x1
từ bước trước
i (k) =3i(k)
i (k) =-0.5i(k)
Tất cả các hướng tối ưu đều thất bại ít nhất một lần i=i+1
Tính các hướng tối ưu mới
Nếu f(x (k) )- f(x (k-1) ) < hoặc x
i
(k) - x
i (k- 1) <
Sa i
Sa i
Đún g
Đún g Sa
i
Trang 37V Phương pháp tối ưu của Powell
1 Cơ sở lý thuyết
Trước hết ta đi xem xét khái niệm các hướng liên hợp để tối ưu hàm
Phép biến đổi từ điểm x0(k) tới điểm xm(k) như sau:
xm(k)= x0(k)+∑=−1
1
) ( ) ( sλ
m i
k i
k
Ta đi tìm hiểu cụ thể cách thực hiện thủ tục biến đổi trên Tại mộtvector x0(0) trong En xây dựng các hướng khởi tạo s1(0), s2(0),…, sn(0) song
hướng sn(0); f(x0(0)+λ sn(0)) được tối ưu bằng phương pháp tối ưu mộttham số (chú ý λ ở đây là λ0(0)) Sau đó x1(0)=x0(0)+ λ0(0)sn(0) Tiếp theothực hiện lần lượt với n hướng si(0) (i=1,2,…,n), f(xi(0)+λ si(0)) được tối ưu
công các giá trị mới của xi(0)
Trang 382 Các bước của thuật toán
Từ cách biến đổi như trên ta trình bày cụ thể tại bước thứ k củaphương pháp Powell thực hiện tối ưu n hướng độc lập tuyến tính vớiđiểm khởi tạo là x0(k)=xn+1(k-1)
Bước 1: Từ x0(k) xác định λ1(k) bằng tối ưu một tham số sao cho f(x0(k)
+λ1s1(k)) là một giá trị tối ưu và đặt x1(k)=x0(k)+ λ1(k)s1(k) Từ x1(k) xác định
λ2(k) sao cho f(x1(k)+λ2s2(k)) là một giá trị tối ưu và đặt x2(k)=x1(k)+ λ
2(k)s2(k)…, thực hiện liên tiếp như vật cho tới khi tất cả λi(k) (i=1,2,…,n)được xác định
thay đổi lớn nhất, gọi khoảng thay đổi đó là ∆(k) thì ta có:
∆(k)=max{f(xi(k))- f(xi-1(k))} với i=1,2,…,n
Quay lại lặp từ bước 1
Ngược lại cả hai bất đẳng thức trên đều không thoả mãn thì μ làhướng tốt để tính:
Thực hiện tối ưu theo hướng μ tìm được giá trị tối ưu tại
x0(k+1), là điểm cơ sở để thực hiện bước tối ưu tiếp theo
Thay: si(k+1)=si(k) với i=1,2,…,m-1
si(k+1)=si+1(k) với i=m,…,n-1 và sn(k+1)= μLặp lại từ bước 1
38
Trang 39Bước 5: Tiêu chuẩn hội tụ của phương pháp Powell là thoả mãn điều
Trong thủ tục trên ở bước 4 ta có kiểm tra hai bất đẳng thức Bất
hướng mới Cụ thể là điểm xt(k)= 2xn(k)-x0(k) trên hướng μ Nếu giá trị ft(k)
không được dùng để tối ưu Bất đẳng thức thứ hai dùng để xác địnhxem hàm mục tiêu có thể không tăng (trong trường hợp tìm min) quabước dịch chuyển từ điểm xn(k) tới điểm 2xn(k)-x0(k), đồng thời nó cũng đểxác định liệu hướng μ có đi qua một điểm nằm trong vùng lõm không,nếu có thì ta bỏ qua hướng này và giữ nguyên các hướng cũ để thựchiện cho bước lặp tiếp theo
Zangwill đã chỉ ra rằng thủ tục của Powell sẽ hội tụ tới một điểm màtại đó gradient của f(x) bằng không nếu f(x) là hàm hoàn toàn lồi, đó làđiểm mà hàm mục tiêu dần tới vô cùng
3 Sơ đồ giải thuật
Từ các bước thực hiện như trên ta có sơ đồ giải thuật như hình vẽdưới
Trang 40Bắt đầu
k=0 Đặt si(k) song song với các trục toạ độ
của E n
Xác định bằng cách tối ưu
một tham số f() Nếu - <, i=1,2,…,n
Tìm min của f() theo hướng
=- thu được
Thay = với i=1,…,n và
im Còn = Đặt =+
Đặt: = Đặt: =
Kết thúc
Đún g
Sa i k=k+1
Sa i
Đún g
Đún g
Sa i
Đún g
Sa i