Slide 1

Slide 1 text

月刊 競技プログラミングを お仕事に役立てるには 競プロ新年会 in 東京 2025 株式会社ALGO ARTIS 松尾 充

Slide 2

Slide 2 text

松尾 充 株式会社ALGO ARTIS まつお あたる (世界2位) 1971 アルゴリズム ヒューリスティック 3226 @terry_u16 terry_u16 1992年 福岡県生まれ 九州大学に入学して機械工学を勉強 九州大学大学院の修士課程に進学 2010年 2014年 株式会社IHIに入社し戦闘機用ジェットエンジンを開発 うっかり競技プログラミングにハマってしまう 株式会社ALGO ARTISに入社しアルゴリズムを仕事に 2016年 2020年 2022年

Slide 3

Slide 3 text

月刊 競技プログラミングは役に立たない

Slide 4

Slide 4 text

今日話すこと 競技プログラミングを どのように仕事の役に立てているか 弊社の実例を交えながらご紹介 コンセプト的に会社の宣伝っぽくなっちゃったらごめんなさい!

Slide 5

Slide 5 text

株式会社ALGO ARTISとは

Slide 6

Slide 6 text

ALGO ARTISとは 株式会社 ALGO ARTIS アルゴリズム Algorithm Artisan 職人 アルゴリズムの職人として 社会基盤を支えるアルゴリズムを 提供することで、 社会基盤の最適化を実現する 表の顔 設立: 2021年7月 従業員数: 75名 (アルバイト15名含む)※ 前身: DeNAからスピンオフして設立 ※2024/12/1時点 マラソンコンテストを 仕事にしたら面白いのでは?と思って ひたすら業務AHCを 解き続けている狂った会社 裏の顔

Slide 7

Slide 7 text

競プロerの割合 非エンジニアも含めた全社員75名のうち過半数の39名が競プロ経験者※ 競プロ 経験者 競プロ 未経験 39 名 36 名 ※2024/12/1時点 ヒューリスティックランキング (所属を記載しているメンバーのみ) https://atcoder.jp/ranking/all?contestType=heuristic

Slide 8

Slide 8 text

競プロerを活躍させるには

Slide 9

Slide 9 text

競プロerを活躍させるには 方策1 方策2 方策3 競プロerの「得意」を仕事にする 他の分野のプロフェッショナルを集める 競プロerが働きやすい環境を整備する

Slide 10

Slide 10 text

競プロerを活躍させるには 方策1 方策2 方策3 競プロerの「得意」を仕事にする 他の分野のプロフェッショナルを集める 競プロerが働きやすい環境を整備する

Slide 11

Slide 11 text

競プロerの「得意」を仕事にする 競プロの問題を解いたらお金をもらえる状態が理想! しかし、賞金付き問題がその辺に落ちているわけではない こんな高橋くんは実在しない! (高橋くんは自分で問題を解いて準優勝してしまうため) https://atcoder.jp /contests/ahc039 /tasks/ahc039_a

Slide 12

Slide 12 text

作問もまとめて仕事にする 問題が存在しないのなら自分で作問すればよい 顧客の課題を自分たちで問題に落として解けばお金になる! 漠然とした顧客課題 問題に落とす 解く! ? ?

Slide 13

Slide 13 text

最適化プロジェクト事例 火力発電所用石炭の配船計画の最適化を実装・提供 超複雑な最適化問題を超強い競プロerに解いてもらう 目的 海外から国内の発電所に向けて 石炭を船で運ぶ計画を立てる 制約条件 (一例) 船着き場の数 石炭購入日計画 石炭在庫量 船の隻数 評価指標 (一例) 船への積載量 運賃・滞船料 石炭価格 航路距離 最適化問題 に落とし込んで 解く https://www.algo-artis.com/news/20220920

Slide 14

Slide 14 text

競プロerのスキルが活かせる仕事 最適化だけが競プロerの強みではない 具体的な課題から抽象的な能力まで活かせるスキルは様々 Will やりたいこと Can できること Need 求められること • 最適化力 (ALGO ARTIS) • 就職・転職 (AtCoderさん) • 学習 (アルゴ式さん) • 狂気の実装力 (estieさん) • 問題解決能力 (THIRDさん)

Slide 15

Slide 15 text

競プロerを活躍させるには 方策1 方策2 方策3 競プロerの「得意」を仕事にする 他の分野のプロフェッショナルを集める 競プロerが働きやすい環境を整備する

Slide 16

Slide 16 text

他の分野のプロフェッショナルを集める 競プロerだけではできないこともある 競プロerを活躍させるには強い非競プロerが必要 ビジネス 営業・課題ヒアリング 顧客との折衝などを担当 バックオフィス 人事・労務・経理・法務・総務 スタートアップでは特に重要 デザイナー 本当に使いやすいUI/UXを 顧客と密に連携しながら設計 ソフトウェアエンジニア フロントからバックエンドまで 実は半分くらいが競プロer

Slide 17

Slide 17 text

アルゴリズムについて理解してもらう 社内コミュニケーションには共通言語が必要 アルゴリズムの基礎について非競プロer向けの教育を実施 研修内容 (一部抜粋) モデル化 制約条件 評価関数 貪欲法 ビームサーチ 山登り法 焼きなまし法 数理計画法 深層強化学習

Slide 18

Slide 18 text

分野が違うと見え方が違う 異なる分野のプロが見ると一人では気付かなかったアイデアが出てくる ビームサーチも組織も多様性が大事 アルバイトメンバーが こういう研究成果を出してくれました! ビジネス バックオフィス こういう使い方をすれば お客様に新しい提案ができて売上も伸びそう! 特許化も検討しましょう! 他社には真似できない武器になります!

Slide 19

Slide 19 text

競プロerを活躍させるには 方策1 方策2 方策3 競プロerの「得意」を仕事にする 他の分野のプロフェッショナルを集める 競プロerが働きやすい環境を整備する

Slide 20

Slide 20 text

開発者体験 chokudaiさん「共通認識として扱える範囲はメンバー能力のminで決まる。 これは開発者体験への影響が大きい」 https://ttj.paiza.jp/archives/2024/07/30/14404/

Slide 21

Slide 21 text

開発者体験 エンジニアメンバー全員競プロerだとアルゴ能力のminが異様に高くなる 「DP」「フロー」「焼きなまし」という言葉が常時飛び交う異次元の開発者体験 緩和してフローを流せば下界が出せます 状態数はカタラン数だから制約下ならDPが十分高速 合宿のチーム分けを焼きなましで最適化します 再帰的なUIコンポーネントをDFSで構築します 天才になると(中略) 𝑂 log 𝑁 に落ちます

Slide 22

Slide 22 text

競プロer向け福利厚生 競プロ勉強会におけるAHCトップ層による解法共有や 最適化関連の研究成果の発表などが自然と競プロer向け福利厚生に この辺の人たちの 生のAHC解説が 毎回聞ける! https://atcoder.jp/ranking/all?contestType=heuristic

Slide 23

Slide 23 text

競プロer向け福利厚生 社内AHCやLLMワークショップなどのおもしろイベントをメンバーが企画 https://x.com/iwashi31/status/1702534545906806864 問題文 優勝チームの景品 https://media.algo-artis.com/posts/bN4vP1cR

Slide 24

Slide 24 text

メンバーの質の担保 このような環境を維持するためにはメンバーの採用が超重要 アルゴエンジニア採用はアルゴエンジニア主体で責任を持って実施 自身も競技者としての勘が鈍らないように毎週コンテストに出場 毎週コンテストに出ても レートが上がるとは限らない (悲しい……) https://atcoder.jp/users/terry_u16

Slide 25

Slide 25 text

優秀な競プロerにアプローチするには 非常に参考になるサイトがあったのでご紹介 https://info.atcoder.jp/utilize/jobs/approach

Slide 26

Slide 26 text

AtCoderでコンテストを開こう! コンテストを開いて優秀な競プロerにアプローチしましょう! 詳細はchokudaiさんという人に聞くといいらしいです! こんな感じの人です!

Slide 27

Slide 27 text

【宣伝】AHCやります 来週1/19(日)15:00-19:00にALGO ARTIS主催のAHCを開催します! 対戦よろしくお願いします……! https://atcoder.jp/contests/ahc041

Slide 28

Slide 28 text

まとめ 競プロerの得意なことを仕事にして AtCoderでコンテストを開こう!

Slide 29

Slide 29 text

ご清聴ありがとうございました!