電子設計自動化演算法
模擬退火(simulated annealing)
模擬退火是一套直接借自冶金學的最佳化策略:為了長出毫無瑕疵的晶體,鐵匠把金屬加熱到原子能自由抖動,再緩慢冷卻,讓原子安頓進低能量、近乎完美的晶格。這個演算法仿效此過程——它以隨機改動來探索問題的解空間,而關鍵在於:在高「溫度」時,它有時會「接受」一個更差的解。正是這份願意倒退一步的特質,讓它能跳出困住貪婪法的淺谷(區域最小值),找到更好的全域佈局。
凡是讓成本改善的移動一律採納;讓成本變差 ΔE 的移動,則以機率 e^(−ΔE/T) 被接受。隨著溫度 T 依排程冷卻,壞移動愈來愈罕見,搜尋逐漸凍結成一個良好的解。數十年來這正是傳奇的 TimberWolf 擺置器的核心,至今仍是許多平面規劃器與 FPGA 擺置器(VPR)背後的引擎——那些解空間太崎嶇、解析法難以施展的場合。它的魅力在於通用性——你只需要一個成本函數與一種擾動解的方式——代價則是執行時間,因此較適合規模小、更棘手的子問題。
accept worse move with P = e^(−ΔE / T); cool T_k+1 = α·T_k, α≈0.95
理論只在「無限慢」的冷卻排程下才保證收斂到全域最佳——這在實務上毫無用處,因此模擬退火的藝術,在於設計一個既快得能跑完、又慢得能找到好解的冷卻排程。
又稱
另見