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

サンタコンペ2025完全攻略 ~お前らの焼きなましは遅すぎる~

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for terry-u16 terry-u16
February 25, 2026

サンタコンペ2025完全攻略 ~お前らの焼きなましは遅すぎる~

2026/2/25 (水) にKaggle サンタコンペ 2025 振り返り会で発表させていただいたスライドです。
https://algo-artis.connpass.com/event/382730/

Avatar for terry-u16

terry-u16

February 25, 2026
Tweet

More Decks by terry-u16

Other Decks in Technology

Transcript

  1. 松尾 充 株式会社ALGO ARTIS まつお あたる (世界6位) ヒューリスティック部門 レーティング 3210

    @terry_u16 terry_u16 ←このへん お仕事 アルゴリズムエンジニアのマネージャー 趣味 競技プログラミング (ヒューリスティック最適化部門) Kaggle歴 サンタコンペ数回 + Tabular Playgroundくらい
  2. 初期解生成 高さと幅を同時に縮めるのではなく、高さ固定の問題として取り扱う ベスト解の辺の長さを𝐿𝑖 として、高さを 𝐿𝑖 − 𝜀 で固定して解く 𝐿𝑖 −

    𝜀 嬉しいこと 縦と横を同時に縮めるのは難しいが 横だけを縮める問題と捉えることができる 左右をそれぞれをいい感じに揃えればよいので 実質的な問題サイズが半分になる 上下の辺部分の形が崩れにくい
  3. 𝑁 ± 1 解の生成 木を 𝑘 本削除したあと、 𝑘 ± 1

    本追加することで 𝑁 ± 1 解を作ることができる
  4. 限界高速化 焼きなましは速度が命なので、一番重い衝突判定処理を限界高速化する 速度が倍になればサーバー代は半額になるので頑張る 加えて SIMD (Single Instruction, Multiple Data) を使って1命令で複数演算を行う

    32並列で実行すると焼きなましの操作が1億回/sくらい回る N 1 thread 32 threads 50 6,797,952 123,390,208 100 5,920,896 110,288,768 200 5,270,784 100,830,720 今思うとfp32+AVX512とかでもうちょい頑張れたかも…… 3 1 4 1 5 9 2 6 iter/s @Ryzen 9 7950X (16 cores, 32 threads) 2 7 1 8 2 8 1 8 5 8 5 9 7 17 3 14 + =