Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・...

AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・焼きなまし法編)

AtCoder Heuristic First-step Vol.1 ( https://atcoder.jp/contests/ahf1 ) のうち、山登り法・焼きなまし法の解説で使用したスライドです。

takumi152

March 23, 2025
Tweet

Other Decks in Programming

Transcript

  1. 近傍をどうやって考えるか • ルートの中で何なら変えられそうか? • 例えば、 レストラン・配達先の位置は 変えられない • 選んだ注文は変えないことにしたので •

    レストラン・配達先を訪れる 順序は変えられる →今回は順序を変える 近傍を考えます どのように移動するかを 表すルート
  2. 山登り法と焼きなまし法の比較 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NOまたは YESかつ確率

    点線の中の部分を 制限時間まで繰り返す 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NO 点線の中の部分を 制限時間まで繰り返す 山登り法 焼きなまし法
  3. 山登り法と焼きなまし法の比較 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NOまたは YESかつ確率

    点線の中の部分を 制限時間まで繰り返す 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NO 点線の中の部分を 制限時間まで繰り返す 山登り法 焼きなまし法 ここが 変わる!
  4. 悪化した解を確率的に採用する 確率的に変えた後の解を採用する ってどういうこと?? • 距離の悪化量をΔ𝑆 • 温度を𝑇 として、 𝑒 −

    Δ𝑆 𝑇 の確率で採用する 実際に採用するかは乱数で決める 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NOまたは YESかつ確率 点線の中の部分を 制限時間まで繰り返す
  5. 悪化した解を確率的に採用する 確率的に変えた後の解を採用する ってどういうこと?? • 距離の悪化量をΔ𝑆 • 温度を𝑇 として、 𝑒 −

    Δ𝑆 𝑇 の確率で採用する 実際に採用するかは乱数で決める 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NOまたは YESかつ確率 点線の中の部分を 制限時間まで繰り返す 悪化量が小さいほど 採用されやすい 温度が高いほど 採用されやすい
  6. 悪化した解を確率的に採用する 確率的に変えた後の解を採用する ってどういうこと?? • 距離の悪化量をΔ𝑆 • 温度を𝑇 として、 𝑒 −

    Δ𝑆 𝑇 の確率で採用する 実際に採用するかは乱数で決める 悪化量が小さいほど 採用されやすい 温度が高いほど 採用されやすい 𝑇, Δ𝑆による採用確率の変化
  7. 悪化した解を確率的に採用する 確率的に変えた後の解を採用する ってどういうこと?? • 距離の悪化量をΔ𝑆 • 温度を𝑇 として、 𝑒 −

    Δ𝑆 𝑇 の確率で採用する 実際に採用するかは乱数で決める 初期解を作る 解を少し変える スコアが 悪化? 解を元に戻す 解を出力 YES NOまたは YESかつ確率 点線の中の部分を 制限時間まで繰り返す
  8. 悪化した解を確率的に採用する 温度って何?? 悪化したときの採用されやすさを 決めるパラメータ • 開始温度を𝑇𝑠𝑡𝑎𝑟𝑡 • 終了温度を𝑇𝑒𝑛𝑑 • 開始から終了までの経過時間の割合を𝑡

    として、𝑡だけ経過した時点での温度𝑇は 𝑇 = 𝑇𝑠𝑡𝑎𝑟𝑡 1−𝑡 ⋅ 𝑇𝑒𝑛𝑑 𝑡 とする • 距離の悪化量をΔ𝑆 • 温度を𝑇 として、 𝑒 − Δ𝑆 𝑇 の確率で採用する 温度が高いほど 採用されやすい
  9. 悪化した解を確率的に採用する 温度って何?? 悪化したときの採用されやすさを 決めるパラメータ • 開始温度を𝑇𝑠𝑡𝑎𝑟𝑡 • 終了温度を𝑇𝑒𝑛𝑑 • 開始から終了までの経過時間の割合を𝑡

    として、𝑡だけ経過した時点での温度𝑇は 𝑇 = 𝑇𝑠𝑡𝑎𝑟𝑡 1−𝑡 ⋅ 𝑇𝑒𝑛𝑑 𝑡 とする 𝑇𝑠𝑡𝑎𝑟𝑡 = 1000, 𝑇𝑒𝑛𝑑 = 10 の場合の 温度変化
  10. 文脈依存かどうかを考えよう • 文脈とは? • 解の一部を変化させたときに 他の部分にどれだけ影響するかのこと • 変化させた部分以外が大きく影響を受けるなら 文脈依存である(文脈が強い) •

    変化させた部分以外が影響をほとんど受けないなら 文脈依存ではない(文脈が弱い) 参考資料: 短期AHCで勝つためのテクニック https://speakerdeck.com/shun_pi/duan-qi-ahcdesheng-tutamenotekunituku