温度と受理確率

温度と受理確率

執筆済 最適化焼きなまし

焼きなまし法で唯一の調整対象が温度 T。悪化をどれだけ許すかを決める。

P(受理)={1Δ0exp(Δ/T)Δ>0

具体的な数字で見る#

Δ=1 の悪化に対する受理確率。

T exp(1/T)
10 0.90
1 0.37
0.1 4.5×105
0.01 3.7×1044

T が 1 を割ると急速に受け入れなくなる。 つまりT は目的関数の変化量と同じ尺度で読むべき量で、 f のスケールが変われば適切な T も変わる。

初期温度の決め方#

理屈から決めるのは難しいので、実測から逆算するのが定石。

  1. 無作為な移動を何回か試し、悪化量 Δ の平均を測る
  2. 初期受理率を 0.8 程度にしたいなら T0=Δ/ln0.8

初期受理率を目安にするのは、f のスケールに依存しない指標だから。

受理率を監視する#

探索中の受理率は、温度が適切かを示す。

  • 高すぎる(0.9 以上が続く) … ほぼランダムウォーク。冷やすべき
  • 低すぎる(0.01 未満) … 動けていない。実質的に山登り法
  • 0.2〜0.5 程度 … おおむね機能している

受理率を目標値に保つよう T を自動調整する 適応的焼きなましも広く使われる。

参考文献#

ノート一覧を閉じる