Chương 2: MỘT SỐ PHƯƠNG PHÁP HEURISTIC
2.3. Giải thuật mô phỏng tôi luyện (SA - Simulated Annealing Algorithm)
Giải thuật Mô phỏng tôi luyện (SA) được phát triển từ các quan sát thấy rằng quá trình giải các bài toán tối ưu hóa tổ hợp tương tự như quá trình tôi luyện kim loại trong lĩnh vực vật lý chất rắn. Mục đích của quá trình tôi luyện trong vật lý là làm cho kim loại ở trạng thái có mức năng lượng nhỏ nhất.
Điều này đạt được thông qua việc đốt nóng chảy kim loại và sau đó hạ nhiệt độ từ từ sao cho các hạt vật chất trong kim loại (phân tử hoặc nguyên từ) tự sắp xếp theo một cấu trúc tinh thề tối ưu. Cấu trúc này ứng với trạng thái của kim loại có mức năng lượng nhỏ nhất (nghĩa là kết thúc tại cực trị toàn cục).
SA là một phương pháp tối ưu xác suất bắt chước sự đông cứng của tinh thể khi làm giảm nhiệt độ. SA bắt đầu từ một cả thể khởi tạo và nhiệt độ ban đầu T0. Quá trình tạo sinh cá thể mới được tiến hành có tham số nhiệt độ, nhiệt độ này giảm theo một sơ đồ làm lạnh. Quá trình ngừng khi số lần lặp vượt quá ngưỡng hoặc nhiệt độ đạt đến một “độ đông” định trước.
Nhiệt độ ban đầu của quá trình tôi luyện là nhiệt độ đốt nóng, tại đó tất cả các hạt vật chất trong kim loại được sắp xếp một cách ngẫu nhiên. Khi tiến hành quá trình tôi luyện, kim loại phải đạt được trạng thái được gọi là căn bằng nhiệt tại mỗi nhiệt độ tôi luyện trước khi qua quá trình hạ nhiệt độ được tiếp tục. Định nghĩa hình thức về cân bằng nhiệt được phát biểu như sau.
Định nghĩa 1.1 Cân bằng nhiệt đạt được trong quá trình tôi luyện kim loại khi xác xuất để kim loại đạt tới trạng thái nào đó với mức năng lượng E thỏa mãn phương trình
) 4 . 2 ( . .
) (
1
−
= KbET T e
P Z
Trong đó Z(T) là hệ số chuẩn hóa phụ thuộc vào nhiệt độ T và kB là hằng số Boltzman.
Phân bố xác suất có dạng như phương trình (2.4) có tên gọi là phân bố Boltzman. Mô phỏng Monte Carlo Metropolis được sử dụng để mô phỏng quá trình tôi luyện kim loại tại một nhiệt độ cố định. Phương pháp Metropolis sản sinh một chuỗi các trạng thái mới một cách ngẫu nhiên tại một nhiệt độ cố định. Sự chấp nhận hay loại bỏ các trạng thái mới được quyết định thông qua tiêu chuẩn chấp nhận Metropholis. Tiêu chuẩn này được định nghĩa như sau:
Định nghĩa 1.2 Nếu trạng thái mới j có mức năng lượng Ej nhỏ hơn mức năng lượng của trạng thái hiện tại Ei, quá trình Metropolis được tiếp tục từ trạng thái mới j. Nếu năng lượng của trạng thái mới lớn hơn mức năng lượng của trạng thái hiện tại, xác suất quá trình Metropolis tiếp tục từ trạng thái mới j được cho bởi phương trình sau:
∆
−
= =
= −
bT kEi j
e P Xk j Xk i
,
, 1
trong đó ∆Ei,j = Ej - Ei
Sau một số lớn các trạng thái mới được sản sinh và xem xét chấp nhận hay loại bỏ bằng tiêu chuẩn chấp nhận Metropolis, phân bố của các trạng thái sẽ tiến tới phân bố Boltzman.
2.3.2. Sơ đồ của giải thuật mô phỏng tôi luyện
Thông thường, giải thuật SA xuất phát từ một điểm ngẫu nhiên X0 trong không gian tìm kiếm của bài toán tối ưu hóa và nhiệt độ ban đầu T0 cao. Nhiệt độ ban đầu được xác lập ở pha khởi tạo sao cho mọi chuyển dịch trạng thái
đều được chấp nhận. Ở đây cần phải tạo ra cơ chế sản sinh phụ thuộc vào nhiệt độ Tk nhằm mục đích tạo ra tập các điểm lân cận Rj của điểm hiện tại i.
Các điểm lân cận j ∈ Ri được chọn một cách ngẫu nhiên để trở thành điểm hiện tại cho bước lặp tiếp theo. Điểm có giá trị hàm giá Cj nhỏ hơn giá trị hàm giá của điểm hịên tại Ci luôn được chấp nhận và điểm có giá trị hàm giá lởn hơn sẽ được chấp nhận với xác suất
∆
−
= =
= − TCki j i e
Xk i j PX
, , 1
Trong đó : ∆Ci,j = Cj - Ci
Tk: nhiệt độ tôi luyện hiện tại.
Điều đáng lưu ý là hằng số Boltzman kB được gán giá trị bằng 1.
Quá trình sản sinh điểm tìm kiếm mới và việc sử dụng tiêu chuẩn Metropolis sẽ được tiếp tục cho đến khi cân bằng nhiệt được thiết lập tại nhiệt độ hiện tại. Nhiệt độ sau đó giảm xuống theo một phương thức được định trước. Hệ thống lại đạt được cân bằng tại nhiệt độ mới và tiếp tục được lặp lại cho đến khi nhiệt độ đạt tới giá trị, tại đó không một chuyển dịch trạng thái nào được chấp nhận. Tại điểm này, hệ thống được coi là đóng băng và giải thuật kết thúc. Điểm tìm kiếm có giá trị hàm giá nhỏ nhất được trả về như lời giải của giải thuật SA. Một lịch trình tôi luyện của giải thuật SA bao gồm 4 nhân tố là:
> Nhiệt độ tôi luyện ban đầu T0,
> Số lần sản sinh điểm tìm kiểm mới cần thiết để đạt cân bằng nhiệt tại nhiệt độ tôi luyện L(T)
> Hàm giảm nhiệt độ tôi luyện T(k) và
> Điều kiện dừng của giải thuật.
Sơ đồ tổng thể của giải thuật SA được mô tả như sau.
Thủ tục SA () { /* Tối thiểu hàm */
// Khởi động điểm tìm kiếm Xi =X0 một cách ngẫu nhiên.
// Khởi động một nhiệt độ ban đầu Tk = T0 cao để mọi dịch chuyển đều
// Chấp nhận được k =0;
Khỏi _động (Xi,Tk);
// Đặt lời giải của giải thuật là điểm xuất phát.
Xbest =Xi;
do { do {
// Tạo ra điểm tìm kiếm mới Xj từ điểm tìm kiếm hiện tại // và tính độ chênh lệch hàm giá ∆Ci,j
Xj = sản_sinh (Xi,Tk);
∆Ci,j = C(Xj)-C(Xi);
// Sử dụng tiêu chuẩn Metropolis để chấp nhận hay loại bỏ điểm Xj // random () là hàm sinh số ngẫu nhiên với phân bố đều
// trong khoảng (0,1).
)) , )
1 , 0 ( (
ll ) , 0
((
−∆
<
≤
∆ TCki j
e random
j Ci f
I
{ Xi=Xj ;
// Nếu giá trị hàm giá của Xi nhỏ hơn giá trị hàm giá của Xbest
// thay thế lời giải
if (C(Xi) < C(Xbest)) Xbest = Xi;
}
} while (cân bằng nhiệt chưa đạt);
// Giảm nhiệt độ theo lịch trình tôi luyện
Tk+1 = giảm(Tk);
k = k+1;
} while (điều kiện dừng chưa đạt); /* Trả về lời giải của giải thuật SA*/
}
2.3.3. Các phiên bản của giải thuật mô phỏng tôi luyện Một cách tổng quát, giải thuật SA gồm 3 hàm chính:
> Hàm sản sinh trạng thái mới xuất phát từ điểm hiện tại phụ thuộc vào nhiệt độ tôi luyện sản sinh (X,T). Hàm này được tính toán thông qua một hàm khác được gọi là hàm mật độ xác suất của không gian tìm kiếm g(X,Y,T).
> Hàm xác suất chấp nhận trạng thái mới a(X, Y, T).
> Hàm giảm nhiệt độ tôi luyện giảm (Tk) , do lịch trình tôi luyện T(k) quyết định.
Các giải thuật SA khác nhau ở dạng của hai hàm g(X,Y,T) và lịch trình tôi luyện T(k). Tốc độ thực hiện giải thuật phụ thuộc vào lịch trình tôi luyện. Với một lịch trình tôi luyện cho trước, hàm mật độ xác suất của không gian tìm kiếm quvết định xác suất hội tụ của giải thuật tới lời giải toàn cục.
2.32.1. Giải thuật SA cổ điển
Gọi D là số chiều của không gian tìm kiếm, T0 là nhiệt độ tôi luyện ban đầu.
- Hàm mật độ xác suất của không gian tìm kiếm g(X,Y,T):
TX Y D
e T T
Y X
g 2
)2 ( 2 . ) 2 ( ) , ,
( = π − − −
- Lịch trình tôi luyện:
) 1 ) ln(
( 0
k k T
T = +
2.3.2.2. Giải thuật SA nhanh
- Hàm mật độ xác suất của không gian tìm kiếm g(X,Y,T):
21
2) )2
((
) , ,
( +
+
−
= D
T X
Y T T
Y X g
- Lịch trình tôi luyện:
) 1 ) (
( 0
k k T
T = +
2.3.2.3. Giải thuật SA rất nhanh
- Giả sử X = (x1,x2, ...,XD), trong đó Xi: 1 ≤ i ≤D nằm trong khoảng [Li
Ui].
- Mỗi thành phần yi trong đó : 1 ≤ i ≤D của điểm tìm kiếm mới Y được tính toán thông qua một số ngẫu nhiên zi, zi ∈[-1,1] như sau yi=xi+zi(Ui - Li) số ngẫu nhiên zi được xác định thông qua hàm mật độ xác suất
1) 1 ln(
) (
2 ) 1 (
Ti Ti
Zi Zi
G = + +
Trong đó Ti là nhiệt độ tôi luyện của thành phần thứ i của không gian tìm kiếm.
- Mỗi thành phần thứ i của không gian tìm kiếm có nhiệt độ tôi luyện ban đầu T0 i, và lịch trình tôi luyện )
1 exp(
0 . )
(k T i bikD
Ti = − trong đó bi >0 là hằng số điều khiển của lịch trình tôi luyện.
Trong luận văn này có sử dụng giải thuật mô phỏng tôi luyện có thể trình bày như sau:
Khởi tạo ngẫu nhiên cá thể X
Khởi tạo các tham sổ ban đầu : T0 , Tk = T0 , Tdong, k = 0.
WHILE (Tk > Tdong AND k < solanlap) DO Y= generate(X, Tk)
IF accept(X, Y, Tk) THEN X = Y Tk+1 = update(Tk)
k = k+l END.
Giải thuật này sử dụng các hàm sau :
generate(X, Tk) - hàm sinh cá thể mới với nhiệt độ Tk ; trong chương trình thử nghiệm, thuật toán sinh được thực hiện như sau :
Tính z theo phân phổi xác suất (− )*(1+ 1 )2u−1 −1 (u∈[0,1])
k
k T
T
Y[i] = X[i] + r*(X[i] - left) hoặc Y[i] = X[i] + r*(righ - X[i])
vói xác suất 0.5; r là số ngẫu nhiên trong [0,1] ; left và righ là cận dưới và trên đối với mỗi biến Xi.
- Accept(X, Y, Tk) - hàm chấp nhận cá thể mới; cá thể Y được thay thế cho X khi Y tốt hơn X hoặc theo phân phối xác suất:
Paccept= Min(l, exp(-(Fitness(Y) - Fitness(X))/Tk)
- Update(Tk) - hàm cập nhật lại nhiệt độ (sơ đồ tôi luyện); trong chương trinh sử dụng sơ đồ tôi luyện sau: Tk = T0 * exp(-b * k1/n )
Các tham số sử dụng là: T0=1000 ; Tdong = 0.01; b = 7.
Kết Luận: phần trên giới thiệu những vấn đề khái quát về giải thuật di truyền (GA), chiến lược tiến hoá (ES) và giải thuật mô phỏng tôi luyện (SA) làm cơ sở cho việc ứng dụng giải bài toán tối ưu đa mục tiêu.