2.1. GIẢI THUẬT LUYỆN KIM (SA:SIMULATED ANNEALING) [6] [17]
2.1.1. Giói thiệu chung về giải thuật luyện kim
Tiền thân của giải thuật luyện kim là thuật toán Monte Carlo năm 1953 của nhóm Metropolis. Giải thuật luyện kim được đề xuất bởi s. Kirkpatrick năm 1982 và công bố trước công chúng năm 1983. SA là một nhánh của phương pháp tìm kiếm leo đồi trong bài toán cục bộ nhưng cho phép điều khiển các bước leo đồi.
Giải thuật luyện kim có nguồn gốc từ cơ học hệ thống. Giai thuật này gia lập quá trình làm lạnh kim loại sau khi nung. SA thực thi đơn giản và tương tự quá trình luyện kim vật lý. Trong luyện kim vật lý kim loại được đốt nóng đến nhiệt độ cao và làm lạnh từ từ để nó kết tinh ở cấu hình năng lượng thấp (tăng kích thước của tinh thể và làm giảm những khuyết điểm của chúng). Một kim loại được nung đến nhiệt độ hóa lỏng sau đó giảm nhiệt từ từ, cấu trúc tinh thể sẽ được hình thành tùy theo mức độ làm lạnh.
Nếu việc làm lạnh không xẩy ra từ từ thì chất rắn không đạt dược trạng thái có cấu hình năng lượng thấp, sẽ đông lạnh đến trạng thái không ổn định (cấu trúc tối ưu địa phương)
Quá trình làm lạnh có thời gian phù hợp thì cấu trúc tinh thể sẽ hình thành. Nếu quá trình làm lạnh quá nhanh thì cấu trúc tinh thể sẽ tồn tại những điểm không hoàn hảo. Giải thuật luyện kim giả lập quá trình làm lạnh bằng cách giảm nhiệt độ cứa hệ thống một cách tuần tự cho đến khi nó hội tụ về trạng thái đông cứng. Trạng
thái đông cứng là trạng thái có mức năng lượng thấp nhất tương ứng với lời giải có giá trị đánh giá tối ưu. SA được sử dụng để tìm cực đại hay cực tiểu để giải một bài toán lối ưu. Khi quá trình luyện kim kết thúc, lời giải toi ưu được hội tụ vô cliinli la trạng thái kết tinh của bài toán.
So' đồ thể hiện trong một không gian lời giải thuật toán luyện kim sẽ tìm đến tối ưu toàn cục với bước nhảy từ tối ưu địa phương.
ỳ
Initial State Solution Space: Không gian lời giải Initial State: Trạng thái ban đầu Local \ Local Minimum: Tối ưu địa phương
Minimum \ /
Global Minimum: Tôi ưu toàn cục Global Minimum
Solution Space
Hình 2.1. Sơ đồ không gian lòi giải [17]
Sự tương đồng giữa quá trình luyện kim vật lý và giải thuật luyện kim (Bảng 2.1) Bảng 2.1: So sánh tưo’ng quan giữa luyện kim vật lý và giải thuật luyện kim
Quá trình luyện kim vật lý Giải thuật luyện kim Các trạng thái hệ thống Các lời giải khả thi
Năng lượng Chi phí
Thay đổi trạng thái Giải pháp lân cận
Nhiệt độ Tham số điều khiển
Trạng thái kết tinh Giải pháp tối ưu
Giải thuật luyện kim sử dụng một biến điều khiển toàn cục là biến nhiệt độ T. Ban đầu T ở giá trị rất cao và sau đó được giảm dần xuống. Trong quá trình tìm kiểm SA thay lời giải hiện thời bằng cách chọn ngẫu nhiên lời giải láng giềng với xác suất phụ thuộc sự chênh lệch giữa giá trị hàm mục tiêu và tham số điều khiến T
Quá trinh tối ưu hóa được tiếp tục cho tới cực tiểu toàn cục được tìm thấy hoặctổng các bước chuyển vượt quá một số tối đa các bước chuyển đã dược định trước.
Sự chuyển tiếp ở một nhiệt độ kết thúc khi đạt tới trạng thái cân bàng nhiệt. Sau khi đạt tới trạng thái cân bằng nhiệt thì nhiệt độ được giảm thấp hơn. Nếu hệ thống không đông lạnh và cũng không tìm được cực tiểu toàn cục thì vòng lặp vẫn tiếp tục và chỉ số k tăng. Hệ thống đông lạnh khi T tiến tới nhiệt độ TclIối do người dùng đưa ra. Khi sử dụng giải thuật luyện kim, các vấn đề cần được làm rõ: Không gian lòi giải, cách xác định lời giải lân cận và hàm đánh giá
Bản chất của giải thuật này cũng giống như thuật toán leo đồi nhưng khắc phục được vấn đề “local minimum” nhờ vào cách chọn ngẫu nhiên cho phép chuyển sang trạng thái xấu hơn. Thông thường, hệ thống sẽ chuyển sang trạng thái tối ưu tìm được tại mỗi nhiệt độ T. Tuy nhiên, nếu không tìm được trạng thái tốt, hệ thống vẫn có thể chuyển sang trạng thái xấu hơn dựa vào xác suất chấp nhận chuyển trạng thái. Xác suất chấp nhận một trạng thái xấu hơn được tính bằng công thức:
(2.1) với: ổ- độ biến đổi hàm giá trị;
Giải thuật luyện kim:
SA(S) {
loigiaitot = s //Gán lời giải tối ưu = lời giải s
giatritot=BIC(S) //Gán giá trị đảnh giả tối ưu = giá trị đánh giá lời giải s Khởi tạo nhiệt độ ban đầu t=to
Khởi tạo hệ so giảm nhiệt a
Giaidoan^O; //Khởi tạo hệ sổ giai đoạn luyện kim
while (giaidoan < giaidoan toida) { // Tiến hành quá trĩnh luyện kim solan=0 //Sổ lần luyện trong 1 giai đoạn while(solan<solan_toida) {
t - nhiệt độ hiện tại
Tạo lời giải lân cận S’
GA (S’) // Tìm bộ tham sổ toi ưu cho s' Tính cost BIC cho S’ //BỈC =AT.lni^i’+ c’.lniA''
5 = BIC (S’) - BIC(S) if(5<0)ỉ
S=S’
}else{
Khởi tạo một sổ ngẫu nhiên r E (0,1) if (r < e~s/t) {
S=S' Ị
ị i
ỉLưu lại lời giải toi um solan++
} gỉaỉdoan++; t= z* a;
ì
Trả về lời giải mô hình tối ưu sau quá trĩnh luyện kim }