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

正解の無い問題を 「できるだけ上手く」解く  ヒューリスティックで感性を磨こう。〜現実課題をプ...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

正解の無い問題を 「できるだけ上手く」解く  ヒューリスティックで感性を磨こう。〜現実課題をプログラミングで解きあうコミュニティについて〜

KomeKaigi 2026 で登壇予定のスライドです。
https://fortee.jp/komekaigi-2026/proposal/8a31de96-a4cb-4c0d-b2fe-421bba44b3e6

Avatar for allegrogiken

allegrogiken

October 30, 2026

More Decks by allegrogiken

Other Decks in Programming

Transcript

  1. はじめまして allegrogiken (アレグロ技研) From: 北海道苫⼩牧市 所属: 株式会社メンバーズ X: @vvanitter82 •

    雑⾷系エンジニア • 競プロ (主にAtCoder) 好き • 技術カンファレンス好き ◦ KomeKaigi 2025 も来ました!
  2. 「ヒューリスティック」とは? • 「発⾒的」「直感的」「経験的」といった意味合い • 計算機科学においては以下のような定義 “必ずしも正しい答えを導けるとは限らないが、ある程度のレベルで正解に近い解を得ること ができる⽅法である。発⾒的⼿法では、答えの精度が保証されない代わりに、解答に⾄るまで の時間が短いという特徴がある。「アルゴリズム」に対置する概念である。” • まともに計算すると

    計算量が爆発する ようなシーンで活躍する ◦ • ルート検索、シフトスケジュール作成、⽣産計画、囲碁‧将棋プログラム、などなど‧‧ ルート検索で例えると「1時間かけて完全な最短ルートを作る」代わりに「2秒で精度95%のルートを作る」 出典: https://ja.wikipedia.org/wiki/ヒューリスティック
  3. AHC006「Food Delivery」 2021-11-14 / 4時間(短期) • フードデリバリーの注⽂ 1,000 件から 50件

    の注⽂を選んでルートを作りたい。 • ピックアップ*50 → お届け*50 といったルート取りも可能 (荷物は無制限に持てる) • 拠点からスタートして、最後には拠点に戻る • 合計距離が⼩さいほど⾼スコア 出典: 京セラプログラミングコンテスト - Food Delivery https://atcoder.jp/contests/ahc006/tasks/ahc006_a
  4. ここからさらに伸ばすには‧‧? • • • 有効な試⾏が多い⽅がより強い ◦ 短い辺よりも⻑い辺の変更を試す⽅が良い ◦ 辺の交差を無くすような変更を試すと良い 試⾏の多様性がある⽅が強い

    ◦ 似たような試⾏ばかりだと “局所最適” にハマりがち ◦ スコア劣化を許容するのも有効 (焼き鈍し法) 試⾏回数が多い⽅が強い ◦ • 処理を⾼速化する 初期解をもっと賢く構築する ◦ 例) ルートが円形になるように選ぶ ⼭登り法のイメージ (AI作)
  5. AHC042 「Oni wa Soto, Fuku wa Uchi」 • 盤⾯に「⿁」と「福」がいる。 福を残して、全ての⿁を盤外に追い出したい。

    • • プレイヤーは以下の操作ができる。 ◦ ⾏を指定して左右に1マスずらす ◦ 列を指定して上下に1マスずらす 操作回数が少ないほど⾼スコア 出典: AtCoder Heuristic Contest 042 - Oni wa Soto, Fuku wa Uchi https://atcoder.jp/contests/ahc042/tasks/ahc042_a 2025-02-02 / 4時間(短期)
  6. 「⼈間ならどう考えてプレイするか?」 採⽤ • • • ⿁が外枠に近いほど 評価値+ • ⿁が減るほど 評価値+

    なるべく⿁をまとめて良い⽅向に動かしたい • • +10 最短距離で⿁を盤外に落としたい ⿁が1⾏or列に並んでいるほど 評価値+ +3 福は盤外に落とさないようにしたい • ⿁を塞ぐ福がいたら 評価値- → こんな感じで盤⾯を評価し、⾼評価の操作を選ぶ「評価値貪欲」 -20
  7. 「評価値貪欲」の難しさ → 評価値(関数)の設計はちょっとした職⼈芸 • 雑に評価すると盤⾯がループ‧スタックする • 「⿁を落とす」優先だとスコアが伸びない • 「⿁を集める」優先だと不安定‧⿁を落とさない •

    福を退避するスペースが無くて詰む • 破綻せず、程よく攻めるバランスの良い重み付けをしたい • 評価項⽬の設計が上⼿い⼈は⾊々な問題で強い ※ ある⿁は外に近づき、ある⿁は遠ざかるケース
  8. HTTF2022予選「Project Leader」 • タスクが 1,000個 ある • タスクには依存関係がある • メンバー

    20⼈ に順次タスクを割り当てて 2021-11-03 / 10⽇間(⻑期) なるべく早く全てを完了させたい … A B A C C D … 出典: HACK TO THE FUTURE 2022 予選 - Project Leader https://atcoder.jp/contests/future-contest-2022-qual/tasks/future_contest_2022_qual_a
  9. 公式ライブ放送「AHCラジオ」「解説放送」 → かなり親切な解説コンテンツ • 作問者が想定する解き⽅を Step by Step で解説してくれることが多く、嬉しい •

    ヒューリスティックの問題は「現実課題」を元に制作されていることがあり、 テーマや作問の背景も語ってくれる • コンテスト優勝者が Youtube Live のコメントに 登場すると盛り上がる 出典: JR⻄⽇本‧ALGO ARTIS プログラミングコンテストAHC064)解説: https://www.youtube.com/live/A3_9MF4nZKY
  10. コンテストの「解説」コーナー → ただの参加記録でもOK! • AtCoderでは問題に対して「ユーザ解説」を載せられるが、 アルゴリズム部⾨では⼀定以上の Rating が必要 • 対して、ヒューリスティック部⾨では誰でも解説を書ける

    • 中⾝の質も深くは問われない • ◦ 取り組んだ内容であればなんでもOK ◦ 参加⽇記のブログリンクもOK(私はこれが⼀番好き) 最近は⽣成AIによる「短い動画の参加記録」も増えている 出典: 解説 - RECRUIT ⽇本橋ハーフマラソン 2025冬(AHC043)https://atcoder.jp/contests/ahc043/editorial
  11. コンテスト中に⽣成AIを使っても良い? • 継続的にルールの改定やアンケートが実施されており、流動的 • AtCoder短期 (4時間) コンテストでは原則禁⽌に (2026年8⽉~) • AtCoder⻑期コンテストでは

    Human Only と With AI の2部⾨に別れることになった (2026年10⽉) • 「⽣成AIによる考察禁⽌、実装はOK」みたいなルールも検討されていたが‧‧ • Kaggle など⽣成AIへの制限が緩いコンテストサイトもある
  12. 競技そのものが⽣成AIに影響を与えている? • ヒューリスティック問題は⽣成AI研究の優れたベンチマーク環境 (要出典) • Sakana AI は AtCoder の許可を得てゲスト参戦している

    ◦ このAgentが4時間コンテストで優勝スコアを出して話題になった ▪ • https://sakana.ai/ahc058/ AtCoderの頂上決戦「AtCoder World Tour Final」に OpenAI がゲスト参戦 ◦ 2025年は2位 ◦ 2026年は1位、圧勝してニュースになった ◦ https://news.yahoo.co.jp/expert/articles/dfe51653b675d7e3535fbd47dd76f6f7e33cd76e
  13. ぜひ1度プレイしてみてください → 過去問は ⽣成AI との協業の練習にぴったり! • 紹介した全ての過去問はいつでも遊べます • 問題に対して有効なアイデアを知っておくだけでも “感性”

    は磨かれるはず! • 本当に⾊々なタイプの問題があります • ◦ ランダムに動く兎‧猫‧⽝‧豚‧⽜を柵で囲って捕まえる ◦ 乱雑に置かれた荷物をクレーンで綺麗に並べる ◦ 線路と駅を作ってお⾦を稼ぐ ◦ ケーキを切り分けて、要求に従って苺を配分する ◦ 地図を圧縮する ◦ … 問題を眺めたい場合、カタログ的なページ (⾮公式) があり、こちらが便利 ◦ https://jetbead.github.io/AtCoderHeuristicContestMemo/ContestMemo/
  14. 競技もいいけど、勉強してみたい!と⾔う⽅には → ここ数年でいい感じの書籍、出ました!! • 「ゲームで学ぶ 探索アルゴリズム実践⼊⾨」 ◦ 通称 thunder本 ◦

    具体例‧実装が充実している ◦ コードは C++ • 「ヒューリスティック探索」 ◦ パズルの話が多いかも ◦ 座学‧概念の解説が充実している ◦ コードは Python
  15. 「観戦」という楽しみ⽅もあります → 最近AtCoderが⼒を⼊れている「AtCoder 企業対抗リーグ」 • https://atcoder.jp/contests/atcoder-corporate-league2026 • ヒューリスティックに強い企業5社を集めて年4回の対抗戦を開催 • 次回、第3戦

    は 11/20 (⾦) • Youtubeライブ放送で観戦できる • 提出されるプログラムに対して、AIによる 即席の解説が⾏われたりして⾯⽩い 出典: AtCoder 企業対抗リーグ 2026 第1戦: https://www.youtube.com/live/LzDC8yWyFJA
  16. 本格的にやってみたい!と思ったそこのあなた • 超ラッキー! • HACK TO THE FUTURE 2027 https://atcoder.jp/contests/ahc074

    なんと昨⽇から10⽇間の⻑期コンテストが開催中です!! • 問題は⾯⽩いはずです!!参加費無料!今すぐ参加登録!!! 🌾 開催中コンテストの問題についての⾔及は禁⽌されているので、何を聞かれても答えられません 🌾