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

白金鉱業Vol.21【初学者向け発表枠】身近な例から学ぶ数理最適化の基礎 / Learning...

Avatar for BrainPad BrainPad
November 20, 2025

白金鉱業Vol.21【初学者向け発表枠】身近な例から学ぶ数理最適化の基礎 / Learning the Basics of Mathematical Optimization Through Everyday Examples

2025年11月20日に実施した、白金鉱業 Meetup Vol.21@六本木(数理最適化編)
での株式会社 ブレインパッド廣江の登壇スライドです。

イベントURL
https://brainpad-meetup.connpass.com/event/372155/

Avatar for BrainPad

BrainPad

November 20, 2025
Tweet

More Decks by BrainPad

Other Decks in Science

Transcript

  1. ©BrainPad Inc. Strictly Confidential 所属 役割 2 廣江 航大 HIROE

    KOTA メンバー アナリティクスコンサルティングユニット 所属 役割 大学院にてメタヒューリスティクスアルゴリズムの一つである遺伝的アルゴリズムを用いた応用研 究・論文執筆を行い、博士課程前期を修了 その後、2025年にデータサイエンティストとしてブレインパッドに参画。 データサイエンティスト 2025 信州大学 総合理工学研究科 修士(情報工学) 2025 株式会社ブレインパッド データサイエンティスト 経歴 キャリア要約 プロジェクト経験 業界 領域 テーマ 研究開発 最適化 交通流シミュレータを用いて長野市のバス運行計画最適化 システム開発 作業効率化・自動化 生成AIを用いた自動化システム開発 趣味 • 国内旅行:学生時代に2か月弱かけてバス・鉄道で日本一周 • 美術館巡り:大塚国際美術館に行ってみたい
  2. 3 ©BrainPad Inc. Strictly Confidential はじめに 本セッションでは、数理最適化のイメージを掴み、実際の問題を通して最適化の使われ方、面白 さを感じてもらうことが目標 対象となる人 •

    数理最適化のことをよく知らない人 • 数理最適化がどんなところに使われているのか知りたい人 ゴール • 数理最適化のことがなんとなく分かるようになる • 数理最適化の使われているところ、使いどころが掴めるようになる • 実際に社会で数理最適化を用いるときの難しさが理解できるようになる
  3. ©BrainPad Inc. Strictly Confidential 4 1. 数理最適化とは? 2. 数理最適化実践例①:お弁当に何入れる? 3.

    複数の目的関数があるときのアプローチ 4. 数理最適化実践例②:新卒研修チーム組み合わせ最適化 Agenda
  4. 6 ©BrainPad Inc. Strictly Confidential 数理最適化とは 現実問題を数式を使って表現し、最も良い答えを見つけ出す技術のこと 最適化問題1 現実問題 乗換検索:東京駅からイベント会場へ行く最適なルートはどれ?

    問題設計 ・各路線はどの駅に停車するか ・各路線の運賃 … 制約条件 ・不正乗車となるルートは使わ ない … 目的関数 ・目的地に着く時間 ・目的地に着く値段 … 数式を使って表現(定式化) 最も良い答え(最適解) Opens profile photo 東京駅 Opens profile photo イベント会場
  5. 7 ©BrainPad Inc. Strictly Confidential 数理最適化のソルバー 定式化から最適解を求めるには最適化アルゴリズムが用いられるが、一般に公開されているソルバーを使う ことが多い 最適化問題1 乗換検索:東京駅からイベント会場へ行く最適なルートはどれ?

    数式を使って表現(定式化) 最も良い答え(最適解) ソルバーを用いて求解 Opens profile photo 問題設計 ・各路線はどの駅に停車するか ・各路線の運賃 … 制約条件 ・不正乗車となるルートは使わ ない … 目的関数 ・目的地に着く時間 ・目的地に着く値段 …
  6. 8 ©BrainPad Inc. Strictly Confidential 実社会における数理最適化の活用例 実社会でも様々な所で数理最適化が用いられている 最適化問題2 時刻表作成 最も便利で使いやすいバスの時刻表は?

    制約条件 ・バスの乗車定員 … 目的関数 ・乗客の待ち時間 ・バスの乗車率 … 最適化問題3 生産計画作成 ライン1 ライン2 ライン3 製品A 入替作業 製品B 製品C 入替作業 製品D 製品C 入替作業 製品C 製品B 入替作業 最も効率的な生産計画は? 制約条件 ・製品の納期を守る ・1日の入替作業回数 … 目的関数 ・在庫逸脱量 ・作業員の負荷 …
  7. 9 ©BrainPad Inc. Strictly Confidential 数理最適化の定式化 現実問題を数理最適化で解くとき、重要になるのが定式化であり、3つの要素「設計変数」「目的関数」「制 約条件」を考える必要がある 決定変数 目的関数

    制約条件 最適化によって、何を決定したいか? どのような状態になっているのが理想 的か? 絶対に守るべき条件は何か? 時刻表作成の場合 • X路線の7時00分にバスを発車さ せるか、させないか • X路線の7時05分にバスを発車さ せるか、させないか • … 時刻表作成の場合 • 乗客の待ち時間の合計 • 待ち時間が少ない方が利用 しやすい • バスの乗車率の平均 • 乗車率が高いほど収益性が 高い 時刻表作成の場合 • 一台のバスに乗車できる人数は最 大40人 • 全てのバスが決められた路線ルー トを通行する • 全てのバスが決められたバス停に 停車する
  8. 11 ©BrainPad Inc. Strictly Confidential お弁当に何入れる? 簡易的な実問題を最適化問題として定式化する 問題文 遠足に持っていくお弁当箱におかずを詰めようとしています。 お弁当のおかずの候補は3つ決まっています。

    お弁当の満足度を最大化したいです。 ただし、以下の条件を満たす必要があります。 • 弁当箱のスペースは10 • 予算の上限は200円 おかず 満足度 スペース 費用 おにぎり 5 4 30 唐揚げ 8 2 50 玉子焼き 3 1 20
  9. 12 ©BrainPad Inc. Strictly Confidential お弁当に何入れる?|決定変数の決定 問題に答えられるように、決定変数を決める 問題文 遠足に持っていくお弁当箱におかずを詰めます。 お弁当のおかずの候補は3つ決まっています。

    お弁当の満足度を最大化したいです。 ただし、以下の条件を満たす必要があります。 • 弁当箱のスペースは10 • 予算の上限は200円 おかず 満足度 スペース 費用 おにぎり 5 4 30 唐揚げ 8 2 50 玉子焼き 3 1 20 考え方 • 決定変数=最適化によって、何を決定したいか? • 今回の問題では、お弁当のおかずをそれぞれいくつい れるかを決定したい • よって、今回の問題での決定変数は以下のようになる • おにぎりを入れる個数:𝑥 • 唐揚げを入れる個数:𝑦 • 玉子焼きを入れる個数:𝑧
  10. 13 ©BrainPad Inc. Strictly Confidential お弁当に何入れる?|目的関数の決定 理想状態になるように、目的関数を設計する 問題文 おかず 満足度

    スペース 費用 おにぎり 5 4 30 唐揚げ 8 2 50 玉子焼き 3 1 20 考え方 • 目的関数=どのような状態になっているのが理想的か? • 今回の問題では、満足度が大きいお弁当が理想的 • よって、今回の問題での目的関数は以下のようになる • 満足度 = 5𝑥 + 8𝑦 + 3𝑧 • maximize 5𝑥 + 8𝑦 + 3𝑧 遠足に持っていくお弁当箱におかずを詰めます。 お弁当のおかずの候補は3つ決まっています。 お弁当の満足度を最大化したいです。 ただし、以下の条件を満たす必要があります。 • 弁当箱のスペースは10 • 予算の上限は200円
  11. 14 ©BrainPad Inc. Strictly Confidential お弁当に何入れる?|制約条件の決定 問題にあるルールを守るように、制約条件を設計する 問題文 おかず 満足度

    スペース 費用 おにぎり 5 4 30 唐揚げ 8 2 50 玉子焼き 3 1 20 考え方 • 制約条件=絶対に守るべき条件は何か? • 今回の問題では、守るべき条件に以下がある • 弁当箱のスペースは10 • 予算の上限は200円 • おかずの個数は0以上の整数 • よって、今回の問題での制約条件は以下のようになる • 4𝑥 + 2𝑦 + 𝑧 ≤ 10 • 30𝑥 + 50𝑦 + 20𝑧 ≤ 200 • 𝑥 ≥ 0, 𝑦 ≥ 0, 𝑧 ≥ 0 • 𝑥, 𝑦, 𝑧は整数 遠足に持っていくお弁当箱におかずを詰めます。 お弁当のおかずの候補は3つ決まっています。 お弁当の満足度を最大化したいです。 ただし、以下の条件を満たす必要があります。 • 弁当箱のスペースは10 • 予算の上限は200円
  12. 15 ©BrainPad Inc. Strictly Confidential お弁当に何入れる?|定式化完成 決定変数、目的関数、制約条件を決めることで、定式化が完成する 問題文 おかず 満足度

    スペース 費用 おにぎり 5 4 30 唐揚げ 8 2 50 玉子焼き 3 1 20 定式化 5𝑥 + 8𝑦 + 3𝑧 4𝑥 + 8𝑦 + 3𝑧 ≤ 10, maximize subject to 30𝑥 + 50𝑦 + 20𝑧 ≤ 200, x ≥ 0, 𝑦 ≥ 0, 𝑧 ≥ 0. x, 𝑦, 𝑧は整数. 遠足に持っていくお弁当箱におかずを詰めます。 お弁当のおかずの候補は3つ決まっています。 お弁当の満足度を最大化したいです。 ただし、以下の条件を満たす必要があります。 • 弁当箱のスペースは10 • 予算の上限は200円
  13. 16 ©BrainPad Inc. Strictly Confidential お弁当に何入れる?|定式化の改善 ソルバーを実行して得られた最適化結果から、定式化を改善していく 問題文 おかず 満足度

    スペース 費用 おにぎり 5 4 30 唐揚げ 8 2 50 玉子焼き 3 1 20 最適化結果と改善 この定式化をもとに、ソルバーで最適化すると 𝑥 = 0, 𝑦 = 4, 𝑧 = 0 となる つまり、唐揚げしか入ってないお弁当が最適ということ になる 実際に唐揚げだけのお弁当を作るわけにはいかないので、 目的関数や制約条件を見直しを行う 例:制約条件 • おかずの最大個数は3個まで • おかずは最低2種類入れる 例:目的関数 • 栄養価列を追加して、それぞれの栄養価の偏りが最 小になるようにする 遠足に持っていくお弁当箱におかずを詰めます。 お弁当のおかずの候補は3つ決まっています。 お弁当の満足度を最大化したいです。 ただし、以下の条件を満たす必要があります。 • 弁当箱のスペースは10 • 予算の上限は200円
  14. 18 ©BrainPad Inc. Strictly Confidential 複数の目的関数があるときのアプローチ 目的関数は複数出てくることがある 数理最適化で複数の目的関数を扱う手法は、いくつか存在する 最適化問題1 乗換検索:東京駅からイベント会場へ行く最適なルートはどれ?

    目的関数 1. なるべく早く目的地に着くルートが良いルート 2. なるべく乗換回数が少ないルートが良いルート 3. なるべく安いルートが良いルート 東京駅 Opens profile photo イベント会場
  15. 19 ©BrainPad Inc. Strictly Confidential 数理最適化における目的関数① 各目的関数を別の問題として、それぞれで最適化を行う 結果を比較することで、分かりやすい結果が得られるが、バランスの取れた結果は得られない 手法 特徴

    • 複数の目的関数を同時には扱わず、それぞれを独立 した別の問題として解く • Yahoo乗換アプリはこの手法を用いている • 時刻、乗換、料金について、それぞれ独立に3回最適 化を行い、3つの最適解が提示される • どの最適解を選択するかはユーザーが判断する メリット 1. 分かりやすさ • それぞれの基準で、一番良いものが明確に示さ れるため直感的に理解しやすい 2. 実装の容易さ • 複数の「単一目的最適化問題」を解けばよいため、計 算アルゴリズムの実装が比較的容易 デメリット 1. バランスの取れた解の欠如 • 時間もほどほどに早く、料金もほどほどに安い 解が出てこない 2. 解の比較が困難 • 複数の最適解について、観点が異なるため、比較する ことが難しい • 最終的にどの解を選択すべきかは提示されず、ユー ザーに委ねられている
  16. 20 ©BrainPad Inc. Strictly Confidential • 各目的関数に重みを掛けて足し合わせて、1つの目的 関数を使って最適化する 時間の重み: α,

    乗換回数の重み: β, 値段の重み: γ minimize α ∗ 時間 + β ∗ 乗換回数 + γ ∗ 値段 数理最適化における目的関数②:重み付き和法 各目的関数に重みを掛けて足し合わせて単一目的関数として解く 実装が容易だが、重みのつけ方が非常に難しい 手法 特徴 メリット 1. 実装の容易さ • 単一目的最適化問題を解けばよいため、計算ア ルゴリズムの実装が比較的容易 2. 目的関数の重要度を調整できる • 時間を60%、乗換を10%、値段を30%重視するなど、 ユーザーの好みを直接反映できる デメリット 1. 適切な重みの設定が非常に困難 • ユーザーの好みを重みとして設定するのが難しい 2. スケールの調整が困難 • 時間が20~60分、乗換が1~4回、料金が1000~5000円 となる場合、料金の値が大きいため、料金の重要度が 最も高いことになる • 正規化処理も難しい • 重視したい目的関数に大きな重みを設定する
  17. 21 ©BrainPad Inc. Strictly Confidential • ある目的関数を改善すると、別の目的関数が悪化し てしまう、トレードオフの関係があることが多い 数理最適化における目的関数③:多目的最適化 各目的関数を同時に考慮しながら最適化を行う

    トレードオフの関係にある目的を同時に考慮できるが、すべての目的関数を加味した結果は得られない 手法 特徴 メリット 1. バランスの取れた解の選択 • 時間もほどほどに早く、料金もほどほどに安い 解が出てくる 2. トレードオフの完全な可視化 • 値段を〇円下げるには時間がどれだけ余計にかかるか という、目的間の関係性を可視化できる デメリット 1. 最終的な実行解の選択困難 • パレート解が1000個など数が多すぎると、どれ を選択すればよいか判断ができなくなる 2. 計算コストが高い • 解の集合を丸ごと探索するので、計算時間やコストが 高い 値段 時間 • 複数の目的のどれかを良くするには、必ず他のどれかを悪化 しなければならない解のグループをパレート解という • よりよいパレート解集合を得る手法を多目的最適化と呼ぶ • 最終的にどの最適解を選択するかはユーザーが判断する
  18. 22 ©BrainPad Inc. Strictly Confidential 数理最適化における目的関数④:辞書式最適化 目的関数に優先度を決め、優先度の高い目的関数の結果を制約条件に設定して、最適化を繰り返す 意思決定は明確だが、バランスの取れた解を出すことが難しい 手法 特徴

    メリット 1. 意思決定がシンプルで明確 • 目的関数の優先度さえ決めれば、必ずそれが反映される • 移動時間=20分の解が、次の最適化でも必ず出力 される 2. スケール、単位を気にしなくていい • 制約条件に設定していくので、重みを割り当てたり正規 化する必要が一切ない デメリット 1. バランスの取れた解の欠如 • 第1優先の目的が少しでも改善されるなら、第2以下の目 的がどれだけ悪化しても、その解が優先される 2. 計算コストの増加 • 目的関数の数だけ最適化する必要があり、制約条件が増 えていくため、問題が複雑になる 1. 目的関数に優先度を決める 2. 最も優先度が高い目的関数のみを設定して、その目的 関数のみ最適化する 3. 結果を制約条件にして、次点の目的関数で最適化する 目的関数 制約条件 移動時間 不正乗車しない 最適化実行 最適解 移動時間=20分 目的関数 制約条件 乗換回数 不正乗車しない 移動時間=20分 最適化実行 最適解 移動時間=20分 乗換回数=2回 目的関数 制約条件 値段 不正乗車しない 移動時間=20分 乗換回数=2回 最適化実行 最適解 移動時間=20分 乗換回数=2回 値段=1000円
  19. 26 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|2/12 理想的なチーム分けとは何かを考える 考え方 理想的なチーム分けとは? 1.

    データ分析の経験が偏っていない、なるべく均等なチーム • 研修での分析演習スコアがなるべく均等になっている 2. 過去の所属が偏っていない、なるべく均等なチーム • 学部卒(2人)、修士卒(7人)、博士卒(2人)の人数が偏っていない • 学部卒、博士卒が同じチームになっていない 3. チームメンバーの相性が良い • メンバーのMBTIがばらけている チーム1 チーム2 チーム3 経験 チーム1 チーム2 チーム3 経験
  20. 27 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|3/12 制約条件と目的関数に区別する 目的関数が2つ存在するため、今回は辞書式最適化を用いる 問題文 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている 考え方 目的関数が2つあるため、手法を選ぶ必要がある 考慮内容 ✓ 二つの目的関数がトレードオフの関係にあるか不明 ✓ 単一の解を出してほしい ✓ MBTIを最優先で考えてほしい ✓ チーム決め最適化は毎年行われているが、MBTI を用いるのは今年独自のアイデアのため 目的関数の中で明確に優先度が付けられるときに有効な 辞書式最適化を用いる
  21. 28 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|4/12 まず最初に決定変数を定義する 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている チーム1 チーム2 ・・・ • 集合は以下のように定める。 𝐼 = 1, 2, … , 11 :人の集合 𝐽 = {1, 2, 3}:チームの集合 𝑲 = {学士, 修士, 博士}:最終学歴の集合 𝑴 = {分析家, 外交官 , 番人, 探検家}:MBTIタイプの集合 • 定数は以下のように定める。 𝑆𝑐𝑜𝑟𝑒𝑖 :人𝑖の分析演習スコア 𝑆𝑐𝑜𝑟𝑒_𝑎𝑣𝑒𝑟𝑎𝑔𝑒:1チームあたりのスコア平均 𝑴𝒂𝒋𝒐𝒓𝒊,𝒌 ∈ 𝟎, 𝟏 , 𝒊 ∈ 𝑰, 𝒌 ∈ 𝑲:人𝒊が最終学歴𝒌かどうか 𝑴𝑩𝑻𝑰𝒊,𝒎 ∈ 𝟎, 𝟏 , 𝒊 ∈ 𝑰, 𝒎 ∈ 𝑴:人𝒊がタイプ𝒎に属している かどうか
  22. 29 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|5/12 続いて決定変数を定義する 問題文 考え方 •

    決定変数は 𝑥𝑖,𝑗 = ൝ 1 人𝑖がチーム𝑗に割り当てられる 0 人𝑖がチーム𝑗に割り当てられない チーム2 人1 𝑥1,1 = 0 𝑥1,2 = 1 𝑥1,3 = 0 ⋮ あなたはミニプロジェクトのチーム決めを任されました 理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている
  23. 30 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|6/12 決定変数を用いて制約条件を表す 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている • メンバーをそれぞれ1つのチームに割り当てることを考える。 𝑥1,1 + 𝑥1,2 + 𝑥1,3 = 1 𝑥2,1 + 𝑥2,2 + 𝑥2,3 = 1 ⋮ 𝑥11,1 + 𝑥11,2 + 𝑥11,3 = 1 ෍ 𝑗∈𝐽 𝑥𝑖,𝑗 = 1 ∀𝑖 ∈ 𝐼 人1 人2 人11 𝐼 = 1, 2, … , 11 :人の集合 𝐽 = {1, 2, 3}:チームの集合
  24. 31 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|7/12 決定変数を用いて制約条件を表す 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている 𝐼 = 1, 2, … , 11 :人の集合 𝐽 = {1, 2, 3}:チームの集合 𝑀𝑎𝑗𝑜𝑟𝑖,𝑘 ∈ 0, 1 , 𝑖 ∈ 𝐼, 𝑘 ∈ 𝐾:人𝑖が最終学歴𝑘かどうか • 各チームに所属する人数は3以上4以下となる 3 ≤ ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ≤ 4 ∀𝑗 ∈ 𝐽 • 学部卒、博士卒が同じチームになっていない = チームに所属している学部卒、博士卒は1人以下 ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝑎𝑗𝑜𝑟𝑖, 学士 ≤ 1 ∀𝑗 ∈ 𝐽 ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝑎𝑗𝑜𝑟𝑖, 博士 ≤ 1 ∀𝑗 ∈ 𝐽
  25. 32 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|8/12 決定変数を用いて目的関数を表す 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている 𝐼 = 1, 2, … , 11 :人の集合 𝐽 = {1, 2, 3}:チームの集合 𝑀𝐵𝑇𝐼𝑖,𝑚 ∈ 0, 1 , 𝑖 ∈ 𝐼, 𝑚 ∈ 𝑀:人𝑖がタイプ𝑚に属しているかどうか 1. チームjに属する、タイプmの総人数を計算する ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝐵𝑇𝐼𝑖 , 𝑚 2. 最もばらついている状態は? → タイプmの総人数÷3人が各チームにいる σ𝑖∈𝐼 𝑀𝑎𝑗𝑜𝑟𝑖,𝑚 3 3. 理想状態からの逸脱具合を表現する σ𝑖∈𝐼 𝑀𝑎𝑗𝑜𝑟𝑖,𝑚 3 + 𝑧𝑚 4. 制約条件の形にする ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝐵𝑇𝐼𝑖 , 𝑚 ≤ σ𝑖∈𝐼 𝑀𝑎𝑗𝑜𝑟𝑖,𝑚 3 + 𝑧𝑚 5. 逸脱具合を最小化する minimize ෍ 𝑚∈𝑀 𝑧𝑚 𝑧 𝑚 が逸脱人数を表している
  26. 33 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|9/12 MBTIのみの目的関数で1段階目の最適化を行う 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない 目的関数 • メンバーのMBTIがばらけている • 分析演習スコアがなるべく均等になっている ෍ 𝑚∈𝑀 𝑧𝑚 ෍ 𝑗∈𝐽 𝑥𝑖,𝑗 = 1 ∀𝑖 ∈ 𝐼 3 ≤ ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ≤ 4 ∀𝑗 ∈ 𝐽 ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝑎𝑗𝑜𝑟𝑖, 学士 ≤ 1 ∀𝑗 ∈ 𝐽 ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝑎𝑗𝑜𝑟𝑖, 博士 ≤ 1 ∀𝑗 ∈ 𝐽 minimize subject to
  27. 34 ©BrainPad Inc. Strictly Confidential • 最適化を実行すると、目的関数の最小の値が分かる ෍ 𝑚∈𝑀 𝑧𝑚

    = 10 • これを次の制約条件として2段階目の最適化を行う 新卒研修チーム組合せ最適化|10/12 ソルバーを実行することで最適解と目的関数の値を得る 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました 理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない • メンバーのMBTIの偏りが10である 目的関数 • 分析演習スコアがなるべく均等になっている
  28. 35 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|11/12 分析演習スコアのばらつきを目的関数の形で表す 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない • メンバーのMBTIの偏りが10である 目的関数 • 分析演習スコアがなるべく均等になっている 𝐼 = 1, 2, … , 11 :人の集合 𝐽 = {1, 2, 3}:チームの集合 𝑆𝑐𝑜𝑟𝑒𝑖 :人𝑖の分析演習スコア 𝑆𝑐𝑜𝑟𝑒_𝑎𝑣𝑒𝑟𝑎𝑔𝑒:1チームあたりのスコア平均 1. チームjの合計点数を計算する ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ Score𝑖, 𝑚 2. 最も均等である理想状態は? →チームjの合計点数が平均と等しい ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ Score 𝑖, 𝑚 − 𝑆𝑐𝑜𝑟𝑒_𝑎𝑣𝑒𝑟𝑎𝑔𝑒 3. 理想状態からの逸脱具合を表現する プラスにもマイナスにも逸脱してはいけないので2つ作る ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ Score𝑖, 𝑚 − 𝑆𝑐𝑜𝑟𝑒_𝑎𝑣𝑒𝑟𝑎𝑔𝑒 ≤ 𝑍_𝑆𝑐𝑜𝑟𝑒_𝑝𝑙𝑢𝑠𝑗 𝑆𝑐𝑜𝑟𝑒_𝑎𝑣𝑒𝑟𝑎𝑔𝑒 − ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ Score𝑖, 𝑚 ≤ 𝑍_𝑆𝑐𝑜𝑟𝑒_𝑚𝑖𝑛𝑢𝑠𝑗 4. 逸脱具合を最小化する minimize ෍ 𝑗∈𝐽 (𝑍_𝑆𝑐𝑜𝑟𝑒_𝑝𝑙𝑢𝑠𝑗 + 𝑍_𝑆𝑐𝑜𝑟𝑒_𝑚𝑖𝑛𝑢𝑠𝑗 )
  29. 36 ©BrainPad Inc. Strictly Confidential 新卒研修チーム組合せ最適化|12/12 分析演習スコアのみの目的関数で2段階目の最適化を行い、最適なチーム分けが求められる 問題文 考え方 あなたはミニプロジェクトのチーム決めを任されました

    理想的なチーム分けを行います 制約条件 • 11名を3つのいずれかのチームに割り当てる • チームの人数は3人か4人 • 学部卒、博士卒が同じチームになっていない • メンバーのMBTIの偏りが10である 目的関数 • 分析演習スコアがなるべく均等になっている ෍ 𝑗∈𝐽 (𝑍_𝑆𝑐𝑜𝑟𝑒_𝑝𝑙𝑢𝑠𝑗 + 𝑍_𝑆𝑐𝑜𝑟𝑒_𝑚𝑖𝑛𝑢𝑠𝑗 ) ෍ 𝑗∈𝐽 𝑥𝑖,𝑗 = 1 ∀𝑖 ∈ 𝐼 3 ≤ ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ≤ 4 ∀𝑗 ∈ 𝐽 ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝑎𝑗𝑜𝑟𝑖 , 学士 ≤ 1 ∀𝑗 ∈ 𝐽 ෍ 𝑖∈𝐼 𝑥𝑖,𝑗 ∗ 𝑀𝑎𝑗𝑜𝑟𝑖 , 博士 ≤ 1 ∀𝑗 ∈ 𝐽 ෍ 𝑚∈𝑀 𝑧𝑚 = 10 minimize subject to
  30. 38 ©BrainPad Inc. Strictly Confidential さいごに 本セッションでは、数理最適化のイメージを掴み、実際の問題を通して最適化の使われ方、面白さを感じて もらうことが目標 まとめ •

    数理最適化は、現実問題を数式を使って表現し、最も良い答えを見つけ出す技術のこと • 乗換検索や、チーム決めなど、様々な所で使われている • 本当に解きたい問題に合うように、制約条件や目的関数を設計する工程が難しい 次のステップ • 数理最適化で使われている数理的なロジックについて学ぶ • 実際に最適化とプログラミングを使って問題を解いてみる • 最適化で問題を解く能力を競い合う大会に参加してみる https://atcoder.jp/contests/ahc046 https://qiita.com/Kenshi_Okada/items/cc9334015b8e154ac46e