01模擬退火 (SA) 的物理學背景:從冶金退火到演算法
SA 演算法源自物理學中金屬退火的原理:高溫時金屬原子運動劇烈,結晶結構自由調整;隨著溫度緩慢冷卻,原子逐漸固化為最低能量的完美晶體結構。
02Metropolis 準則:為什麼「接受壞答案」是關鍵?
SA 演算法最精妙之處在於 **Metropolis 準則**:當新產生的解答比目前更差時,演算法不會直接拒絕,而是以一定的機率 $P = e^{-\Delta E / T}$ 接受這個較差的解答。**這個機率讓演算法擁有跳出區域死角的能力!**
03降溫排程 (Cooling Schedule) 的設計藝術
退火策略直接決定演算法成敗:
- 初始溫度 $T_0$:過高會變成盲目隨機搜尋,過低則失去跳出陷阱能力。
- 降溫係數 $\alpha$:通常設定為 0.95-0.99 進行等比漸進冷卻。
04工程應用:IC 晶片擺置、網路拓撲與資源分配
SA 演算法廣泛應用於半導體 IC 晶片電路板元件佈局 (Floorplanning)、通訊網路節點佈設以及大型工程項目的資源配置 optimization。」
FAQ常見問題解答
模擬退火演算法 (SA) 與基因演算法 (GA) 的主要差異?
SA 是單一解 (Single-state) 的漸進式演化,記憶體佔用極小且易於實作;GA 是群體 (Population-based) 演化,適合平行計算。
如何判斷 SA 演算法已經達到收斂?
當溫度降至設定的終止溫度 $T_{min}$,或者連續數十代解答能量改善低於微小門檻時即可終止。
SA 演算法能處理連續型變數最佳化嗎?
可以!透過高斯擾動 (Gaussian Perturbation) 生成鄰近解,SA 同樣能處理連續函數極值搜尋。