跳轉到

1983-模擬退火#

案件摘要#

組合最佳化的老困境:局部搜尋(如 KL、簡單交換法)一掉進局部最優就爬不出來——像登山客在霧中困在小山頭,看不見遠處的主峰。1983 年,IBM Watson 的 Scott Kirkpatrick、Daniel Gelatt、Mario Vecchi 在《Science》發表模擬退火(Simulated Annealing):借冶金退火的物理——先高溫讓原子亂跑、再緩慢降溫讓晶格整齊——允許演算法以機率 \(e^{-\Delta E / T}\) 接受變差的移動,溫度 \(T\) 逐步下降。這是「以隨機換全局」的演算法革命,1985 年 Timberwolf 把它用於晶片佈局並擊敗 min-cut,退火自此成為 EDA 與組合最佳化的通用武器。

前因 -- 為什麼會有這個案子#

  • 局部最優的陷阱:佈局、繞線、分區都是 NP-hard 的坑谷地貌;貪心法掉進第一個谷底就停——解的品質隨問題規模惡化。
  • 冶金退火的物理:加熱金屬讓原子獲得動能跳脫亞穩態,緩慢降溫結成完美晶格(能量最低)——這是統計力學的成熟理論(Boltzmann 分布、Metropolis 1953 的蒙地卡羅法)。
  • IBM 的現場:Kirkpatrick 在 IBM 研究電路佈局與晶片測試,苦於局部搜尋的坑谷;Vecchi 有統計力學背景——跨學科合流。
  • Metropolis 演算法(1953):以 \(p = e^{-\Delta E / T}\) 接受/拒絕移動的蒙地卡羅採樣——機制已就緒,缺的是「降溫排程」的洞察。

線索與推理 -- 數學式、程式、理論#

核心:Boltzmann 接受機率#

狀態 \(x\) 有能量(成本) \(E(x)\) 。隨機選鄰居 \(x'\) ,若變差( \(\Delta E = E(x') - E(x) > 0\) ),仍以機率接受:

\[ p = e^{-\Delta E / T} \]
  • 高溫 \(T\) 大 ⇒ \(p \approx 1\) :亂跑,跳脫局部最優;
  • 低溫 \(T \to 0\) ⇒ \(p \to 0\) :退化成貪心,精修解。

降溫排程: \(T_{k+1} = \alpha T_k\) ( \(\alpha \approx 0.85\text{-}0.98\) ),每溫度做足夠多次移動(馬可夫鏈長度)。

import random, math

def anneal(cost, x0, T0=1000, alpha=0.95, steps=10000):
    x, E, T = x0, cost(x0), T0
    best, best_E = x, E
    for i in range(steps):
        x2 = neighbor(x)                       # 隨機鄰居(如搬移/交換)
        dE = cost(x2) - E
        if dE < 0 or random.random() < math.exp(-dE / T):
            x, E = x2, E + dE
            if E < best_E: best, best_E = x, E
        if i % 200 == 0: T *= alpha            # 降溫
    return best

為什麼全局收斂:細緻平衡#

移動機率滿足細緻平衡(detailed balance):

\[ \pi(x)\, p(x \to x') = \pi(x')\, p(x' \to x), \quad \pi(x) \propto e^{-E(x)/T} \]

穩態分布是 Gibbs/Boltzmann 分布——高溫時接近均勻(全域探索),低溫時集中在最低能量態。Geman-Geman(1984)證明:若降溫慢到 \(T_k \propto 1/\log k\) ,退火機率收斂到全局最優——只是這個排程實務上太慢,工程上用幾何降溫換取速度(放棄理論保證,換實戰表現)。

為什麼適合 EDA#

物理退火 電路佈局
原子 單元/巨集
能量 線長 + 重疊 + 擁塞懲罰
溫度 搬移距離與接受率
退火曲線 排程(遠→近、粗→細)

佈局的成本函數天然可分解為局部移動的影響(增量計算 \(O(\deg)\) ),鄰居結構清楚——退火的理想土壤。

結案 -- 後果與影響#

  • Timberwolf(1985)的實戰勝利:Sechen-Sangiovanni-Vincentelli 用退火佈局,線長比當時最強的 min-cut 商用工具省 15-35%——退火從理論變成產業武器。
  • 組合最佳化的通用引擎:TSP、排程、圖分區、電路測試——退火成為 1980-90 年代所有 NP-hard 問題的「預設武器」,催生 tabu search、門檻接受等後繼。
  • 與解析法的分道:退火品質高但慢(CPU 時小時級),解析佈局(Kraftwerk 1998、ePlace 2015)後來以速度反超——兩條路線在 DREAMPlace(2019)合流。
  • 跨學科的典範:統計力學 → 演算法的移植,是 EDA「物理回歸」主線中最著名的一案(同期還有:Metropolis、Boltzmann 機器)。

關鍵人物與文獻#

  • Scott Kirkpatrick:IBM Watson,退火用於組合最佳化的提出者。
  • Metropolis, Teller, Rosenbluth 夫婦(1953):蒙地卡羅接受機制的原創者。
  • 文獻:
  • S. Kirkpatrick, C. D. Gelatt, M. P. Vecchi, "Optimization by Simulated Annealing," Science 220, 671 (1983).
  • N. Metropolis et al., "Equation of State Calculations by Fast Computing Machines," J. Chem. Phys. 21, 1087 (1953).
  • V. Černý, "Thermodynamical Approach to the Traveling Salesman Problem," J. Opt. Theory Appl. 45, 41 (1985)(獨立同時提出)。