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

理論と実務を繋ぐには V

MIKIO KUBO
September 18, 2023

理論と実務を繋ぐには V

最適化理論の発展,最適化ソルバーと計算機の高速化,データ分析ならびに機械(深層)学習ツールの普及によって,最適化を実務に適用するための敷居は大幅に下がってきている.
しかし,実際問題に最適化を適用する際には,様々な障害に直面する.本講演では,それらの障害を克服するための具体的な方法について(30年の実務研究の経験をもとに)解説する.具体的には,以下の内容をオムニバスで話す.
・最適化プロジェクトの進め方とライフサイクル
・モデリングとデータの前処理
・理論家と実務家からみた最適化モデルの違いとギャップの埋め方
・最適化と機械学習の融合による実際問題の解決の枠組み

MIKIO KUBO

September 18, 2023
Tweet

More Decks by MIKIO KUBO

Other Decks in Research

Transcript

  1. 理論と実務を繋ぐには V
    MIKIO KUBO https://www.logopt.com/kubomikio/
    https://www.youtube.com/@kubomikio
    https://twitter.com/MickeyKubo

    View Slide

  2. アジェンダ
    • 最適化プロジェクトの進め⽅とライフサイクル
    • 最適化のための前処理
    • 実⾏不可能性の取り扱い
    • なぜ実務への適⽤が難しいのか
    • 機械学習と数理最適化の融合

    View Slide

  3. メニュー

    View Slide

  4. 実際のNP-困難な
    最適化プロジェクトの
    進め⽅

    View Slide

  5. 「実際」の「NP-困難」な問題
    • 実際の...
    ü 実際の最適化問題は千差万別
    ü 実務に必要な様々な付加条件がある
    ü そのままでは,典型的な最適化問題に帰着できないことが多い
    (帰着可能なら「100+の最適化問題」を参考にして簡単に解決!)
    • NP-困難な...
    ü 実務の問題はほとんどがNP-困難
    ü 効率的なアルゴリズムが(おそらく)ない
    ü 普通に解くと問題例によっては⾮常に時間がかかる

    View Slide

  6. 100+の最適化問題
    https://scmopt.github.io/opt100/
    朝倉書店から3分冊

    View Slide

  7. 1. 線形最適化 2. (2次)錐最適化 3. 整数最適化 4. 栄養問題 5. 混合問題(ロバスト最適化) 6. 最短路問題 7. 負の費⽤をもつ最短路
    問題 8. 時刻依存最短路問題 9. 資源制約付き最短路問題 10. 第k最短路問題 11. パスの列挙問題 12. 最⻑路問題 13. Hamilton閉路問
    題 14. 多⽬的最短路問題 15. 最⼩⽊問題 16. 有向最⼩⽊問題 17. 容量制約付き有向最⼩⽊問題 18. Steiner⽊問題 19. 賞⾦収集
    Steiner⽊問題 20. 最⼤流問題 21. 最⼩カット問題 22. 多端末最⼤流問題 23. 最⼩費⽤流問題 24. 最⼩費⽤最⼤流問題 25. 輸送問題
    26. 下限付き最⼩費⽤流問題 27. フロー分解問題 28. 多品種流問題 29. 多品種輸送問題 30. 多品種ネットワーク設計問題 31. サービ
    スネットワーク設計問題(SENDO) 32. 割当問題 33. ボトルネック割当問題 34. ⼀般化割当問題 35. 2次割当問題 36. 線形順序付け問
    題 37. 極⼤マッチング問題 38. 最⼤マッチング問題 39. 安定マッチング問題 40. 安定ルームメイト問題 41. グラフ分割問題 42. グ
    ラフ多分割問題 43. 最⼤カット問題 44. グラフ彩⾊問題 45. 枝彩⾊問題 46. 極⼤クリーク列挙問題 47. 最⼤クリーク問題 48. 最⼤
    安定集合問題 49. クリーク被覆問題 50. 巡回セールスマン問題 51. 賞⾦収集巡回セールスマン問題 52. オリエンテーリング問題 53.
    階層型巡回セールスマン問題 54. 時間枠付き巡回セールスマン問題 55. Euler閉路問題 56. 中国郵便配達⼈問題 57. ⽥舎の郵便配達
    ⼈問題 58. 容量制約付き枝巡回問題 59. 容量制約付き配送計画問題 60. 時間枠付き配送計画問題 61. トレーラー型配送計画問題
    (集合分割アプローチ) 62. 巡回セールスマン型配送計画問題(ルート先・クラスター後法) 63. 分割配送計画問題 64. 運搬スケ
    ジューリング問題 65. 空輸送最⼩化問題 66. 積み込み積み降ろし型配送計画問題 67. 複数デポ配送計画問題(METRO) 68. 集合被覆
    問題 69. 集合分割問題 70. 集合パッキング問題 71. 数分割問題 72. 複数装置スケジューリング問題 73. ビンパッキング問題 74.
    カッティングストック問題 75. d次元ベクトルビンパッキング問題 76. 変動サイズベクトルパッキング問題 77. 多次元ビンパッキン
    グ(⻑⽅形詰め込み)問題 78. オンラインビンパッキング問題 79. 確率的ビンパッキング問題 80. 0-1ナップサック問題 81. 整数
    ナップサック問題 82. 多制約ナップサック問題 83. Weber問題 84. 複数施設Weber問題(MELOS-GF) 85. k-メディアン問題 86. 容
    量制約付き施設配置問題 87. ハブ⽴地問題 88. 容量制約なしr-割当p-ハブ・メディアン問題 89. ロジスティックスネットワーク設
    計問題(MELOS) 90. k-センター問題 91. 被覆⽴地問題 92. 経済発注量問題 93. 多品⽬経済発注量問題 94. 新聞売り⼦問題 95. 安全
    在庫配置問題(MESSA) 96. 複数エシェロン在庫最適化問題(MESSA) 97. 動的ロットサイズ決定問題 98. 多品⽬動的ロットサイズ決
    定問題 99. 多段階多品⽬動的ロットサイズ決定問題(OptLot) 100. シフト最適化問題 101. 業務割り当てを考慮したシフトスケ
    ジューリング問題(OptShift) 102. ポーフォリオ最適化問題 103. 1機械リリース時刻付き重み付き完了時刻和最⼩化問題 104. 1機械
    総納期遅れ最⼩化問題 105. 順列フローショップ問題 106. 資源制約付きスケジューリング問題(OptSeq) 107. ジョブショップスケ
    ジューリング問題 108. 起動停⽌問題 109. nクイーン問題 110. 重み付き制約充⾜問題(SCOP) 111. 時間割決定問題

    View Slide

  8. 実際のNP-困難問題に対する対処法
    • ⾼速に解くことを諦める(平均的に多項式オーダー)
    • 最適(厳密)解を出すことを諦める(近似解)
    • すべての問題例(インスタンス)を解くことを諦める
    容易に解ける特殊型の研究(✗)
    => 計算速度と解の良さのトレードオフ
    => 典型的な問題例をターゲットとしてモデルと解法を設計

    View Slide

  9. 実際問題例の特徴
    • ランダムに⽣成されたベンチマークとは違う
    ü顧客や製品はzipの法則に従うことが多い
    ü顧客の分布は偏りがある(⽇本だと東京に密集)
    • わざと難しくした問題例(研究⽤のベンチマーク)とも違う
    • 経験則で対処可能な部分がある(ように設計されている)
    => 前処理による固定
    • ヒヤリングだけでは不⼗分(データで補完)
    • データだけでも不⼗分(ヒヤリングで補完)

    View Slide

  10. プログラミング学習の弊害
    ⼊⼒データ プログラム 出⼒
    想定された任意の⼊⼒ 望ましい結果かどうかテスト
    授業で習う「望ましい」プログラム
    幅広い⼊⼒データの全てに対して,望ましい出⼒が出れば「正解」
    (真⾯⽬な⼈は)任意の問題例を想定してモデル化(✗)
    (⼿抜きな⼈は)少数の問題例を想定してモデル化(✗)
    NP-困難な問題例のすべてを解くことはできない!
    想定しない問題例を⼊⼒するとコケる!

    View Slide

  11. 典型的な実際問題例とモデルの抽出
    • 任意の⼊⼒データを想定してモデル設計(✗)
    • 実務で発⽣する可能性がある問題例を想定
    (真⾯⽬すぎない & ⼿を抜かない => アート!)
    üできるだけ多くの実際問題例を収集
    üデータ分析と可視化
    üヒヤリング
    ü問題例の特徴抽出
    ü問題例の特徴に応じた前処理とモデル化
    ü実際の問題例より多少⼤きめのランダムデータによるテスト

    View Slide

  12. ヒヤリング+専⾨家で解決するか?
    C. Alexander “The Oregon Experiment”
    顧客の説明 ヒヤリング 専⾨家 プログラマ 営業の約束
    ドキュメント 運⽤ 請求⾦額 サポート 本当の要求

    View Slide

  13. ヒヤリングあるある
    Wenger 16999 Swiss Army Knife Giant
    現場の⼈は会議室(背広組の前では)では本当のことは⾔わない(飲み会では話す)
    滅多におきない例外(⾃分はこう対処したと⾃慢)
    ⾃分の仕事がなくなるのが怖いので永遠に機能追加
    細かい仕様や数値(⾃分の仕事は⼤変だと⾃慢)
    数値的に表現できない条件
    (できれば,なるべく,たまには...)
    費⽤を増やす⽬的関数(公平のために遠回り?)
    ...

    View Slide

  14. ヒヤリングとモデル化
    • ヒヤリングした条件をすべて「真⾯⽬に」モデル化する(✗)
    • ヒヤリングとデータを元に「本当に必要な」条件を抽出し,前処理で誤
    魔化すか,標準問題に帰着させるか,きちんとモデルに⼊れるかを検討
    する
    例:配送計画
    ü ヒヤリング:店舗によっては時間帯によって作業時間が変化する
    ü 店舗数,作業時間の差,時間帯の種類を聞く(+ データで確認)
    ü 店舗の分布と時間帯と作業時間の関係を可視化
    ü 時間帯の種類が少ない(昼と夜)&店舗数が少ない => 昼・夜の2通りの時間枠で解く
    ü 作業時間の差が⼤きい => 時間枠を作業時間の短い1通り(夜)に設定
    ü 店舗数が多く時間帯が様々 => 時刻依存の移動時間をもつ配送最適化に帰着

    View Slide

  15. 最適化プロジェクトのライフサイクル
    ⽬標設定 データ処理 モデル作成
    デプロイ&
    評価
    • ターゲット設定
    (範囲,粒度,⽬的)
    ü SPRINT
    • メトリクス設定
    ü 応答時間
    ü 評価指標
    • 必要な資源
    ü ⼈(能⼒)
    ü 予算
    • タイムライン
    ü マイルストーン
    ü ゴール
    • データ収集
    • データ抽出
    • 前処理
    ü ⽋損値
    ü 外れ値
    • データ分析
    • 簡易メトリクス計算
    • データ可視化
    • ダッシュボード
    • 最適化のための前処理
    ü データ集約
    ü 数値丸め
    • 類似研究調査
    • 制約抽出
    • ⽬的関数抽出
    • (ソルバー選択)
    • 解法開発
    • 仮(予備)実験
    • ⼩規模実験
    • 全体最適化
    • What If 分析
    • 感度分析
    • トレードオフ分析
    • 優先順位分析
    • UI設計
    • UI作成
    • デプロイ
    • テスト
    • 評価
    • モニタリング
    ü クラウド性能
    ü ⼊⼒データ
    ü 出⼒メトリクス

    View Slide

  16. 現実問題
    • ヒヤリング
    • 現場⾒学
    • インターンシップ
    データ
    • データ収集
    • データ前処理
    • データ可視化
    モデル(or アルゴリズム)構築
    • 類似問題に対する研究調査
    • 100+の最適化問題から類似
    の問題を探す
    • 最適化モデル(or アルゴリ
    ズム)構築
    テスト
    • 現状(ベースライン)再現
    • ⼩規模問題例テスト
    • 中規模問題例テスト
    • 本番テスト
    • What If分析
    • 感度分析
    • ロバスト性テスト
    最適化プロジェクトの流れ

    View Slide

  17. (メタ)ヒューリスティクス
    Pros
    • 安価
    • ⾼速になりうる
    • 特定の問題には有効
    • 定式化必要なし
    • 複雑な条件でも組み
    込める
    • 問題の構造を利⽤し
    て設計できる
    Cons
    • 厳密解でない
    • 連続変数に対応できない
    • モデルがない
    • 単なる⼿順(処理的IT)
    の場合もある
    • 解法設計に時間がかかる
    • 設計が属⼈化
    • メンテがしにくい
    • 付加条件によっては遅く
    なる
    • 付加条件によっては解法
    を⼀から設計し直す必要
    がある
    • データが変わると解が悪
    化する場合がある
    数理最適化
    Pros
    • 厳密解(そうでない
    ものもある)
    • モデル(定式化)が
    ある
    • メンテがしやすい
    • (定式化可能な)付
    加条件は容易に対応
    できる
    • すぐに導⼊可能
    Cons
    • ⾼価なものでないと遅い
    場合もある
    • 計算時間がかかる場合も
    ある
    • 付加条件によっては組み
    込めない場合もある ?
    • データが変わると計算時
    間が増加する場合がある
    (メタ)ヒューリスティクスと数理最適化

    View Slide

  18. 複雑な付加制約をMIPで扱う⽅法
    MIP/CPアプローチ
    MIPで記述しにくい制約

    主問題

    制約逸脱オラクル
    朱 朱
    制約に依存した切除平⾯
    ( no good cut )

    制約のcheckを(CPで)⾏い
    破っている場合には,それを
    排除する制約を追加する

    主問題
    (線形緩和)
    分枝価格(列⽣成)法
    実⾏可能なパターンを⽣成し,選択を最適化
    最適双対変数

    ⼦問題

    列(パターン)⽣成
    複雑な制約をもつパターンを複数⽣成
    (ビームサーチや動的最適化)
    minimize パターンの費⽤
    s.t. グローバル制約(e.g., 荷を運ぶ)
    資源制約 (e.g., 船の隻数)

    View Slide

  19. 失敗事例から学ぶ (1)
    • ⽬標設定
    ü ソルバーが1兆倍になったという宣伝を鵜呑みにして,何でも瞬時に解けると
    クライアントに⾔ったが,解けなくて破綻
    ü クライアントに瞬時に解けると⾔ったが,実際は無理で破綻
    ü 最⼤2拠点経由の配送と聞いていたが,納期直前で4拠点になり破綻
    • データ処理
    ü 輸配送費⽤やハンドリング費⽤が収集できず破綻
    ü 実データの精度をそのまま利⽤することに固執したため,ソルバーが破綻
    ü 超⼤規模データをそのまま⼊れて破綻

    View Slide

  20. 失敗事例から学ぶ (2)
    • モデリング
    ü 資源制約ギリギリの最適化をしたら,実運⽤でデータが違って破綻
    ü ⾃社で使える唯⼀の解法で解こうとしたが,時間切れで破綻
    ü クライアントの⾔うがままに追加条件を⼊れていき,やがて破綻
    ü ヒヤリングを鵜呑みにして細かい条件を⼊れすぎて破綻
    ü ⼤学の本業が忙しくなった(もしくは担当学⽣が来なくなった)と⾔って,途
    中で終了
    • デプロイ・評価
    ü データベースからデータを1つずつSQLで吸い上げて時間切れ
    ü 実運⽤中に問題規模が徐々に増えて解けなくなり,破綻
    ü ⼈件費が半分になると営業が⼝を滑らせて,現場が反乱を起こして破綻

    View Slide

  21. 最適化のためのプロジェクト管理
    • 最適化(機械学習)のシステム開発は,通常のソフトウェア開発の
    プロジェクト管理とは異なる
    ü ⽬標が曖昧(何をどこまでするのかは⼿探りで決める)
    ü フィージビリティが保証できない(解けるかどうかは,やってみないと分
    からない!)
    ü 単なる処理の⾃動化(処理的IT)ではなく,頭脳を作る(解析的IT)
    ü 開発者のスキルによって,かかる時間が⼤きく変わる(6ヶ⽉=> 3⽇)
    ü スキルの測定が難しい(認定試験と実際問題は違う)
    • 昔ながらのPMでは経験と知識が不⾜
    ü 問題の難しさを判定できない
    ü はじめに仕様を決めたがる
    ü 費⽤⾒積もりを時給やコードの⾏数で⾏う
    • 最適化(機械学習)のプロセスを理解したPMの必要性

    View Slide

  22. まとめ
    • 実際の複雑な最適化問題を解決するのは簡単ではない
    • 計算時間,最適性を諦めるだけでは不⼗分
    • 任意の問題例を解くことも諦める必要がある
    • 実際のデータをもとに典型的な問題例を抽出し,モデル化
    • データの⼀部は(最適化のための)前処理で簡略化(アート!)
    • 最適化プロジェクトのライフサイクル
    • 実運⽤時の注意

    View Slide

  23. 実際の最適化問題
    を解くための
    データ前処理

    View Slide

  24. データの前処理
    • 機械学習のための前処理
    ü最近では⾃動化(型変換,⽋損値・外れ値の処理,訓練・検証・テス
    トの分離など)
    ü特徴抽出はアート(ただし深層学習では特徴の⾃動抽出が可能)
    • 最適化のための前処理
    ü⾃動化は難しい
    üクライアントとの打ち合わせ(+現場へのヒヤリング)が重要
    ü最適化モデル(+解法)の構築と同時に考える必要がある(切り離し
    ができない)
    üアート!

    View Slide

  25. データ収集
    1. NDA (Non-Disclosure Agreement) を結ぶ
    2. 本当の実際の問題例(インスタンス)を複数(できるだけた
    くさん)もらう
    3. できれば,時系列順に並んだものを適当な期間分もらう(動
    的な問題として扱う必要があるかどうかを⾒分けるため)
    4. データが出せない => これ以上やっても無駄なので終了
    5. データが不⼗分なら 2. に戻る

    View Slide

  26. データの前処理
    1. 各データ項⽬の分布をみて,異常値を除外(⼊⼒データの単位
    など異常値の原因を特定;要クライアントとの打ち合わせ)
    2. ⽋損データの処理(どのように処理するか?要クライアントと
    の打ち合わせ)
    3. データ項⽬間の関係を可視化(散布図,ガントチャート)
    4. 地点情報から地図上へのプロット(必要なら緯度経度を計算)
    機械学習やデータサイエンスの前処理と基本的には同じ

    View Slide

  27. 最適化のための前処理
    前処理によって問題の簡略化が可能か検討(要クライアントとの
    打ち合わせ;特に現場へのヒヤリング)
    ü例:地点のクラスター分析を⾏いデータの集約
    ü例:商品のABC分析を⾏いデータの集約
    ü例:商品サイズと容量の関係からサイズの平準化(切り上げ)
    ü例: (ほとんどの)最適解がもつ部分解の固定(機械学習の利⽤)
    5
    5
    ビン
    (容量10)
    3
    7
    5 4.51
    2.82
    6.92
    アイテム(サイズ)

    View Slide

  28. まとめ
    • 機械学習やデータサイエンスの前処理と最適化モデル作成のた
    めの前処理の違い
    • データ収集,前処理,最適化のための前処理
    • 最適化モデルと解法構築のための前処理(アート)

    View Slide

  29. 実⾏不可能性の
    取り扱い⽅

    View Slide

  30. 関数としての最適化モデル (基本的枠組み)
    問題例
    (instance)
    最適化
    モデル
    (最適)解
    最⼤化(最⼩化) ⽬的関数
    subject to 制約条件
    問題に数値を⼊れたもの 最⼤(最⼩)の⽬的関数値を
    もつ実⾏可能解
    (=制約条件をすべて満たす解)

    View Slide

  31. 関数としての最適化モデル (理論家の枠組み)
    問題例(instance)
    最適化
    モデル
    (最適)解
    or
    実⾏不能 or ⾮有界
    制約をすべて満たす解が存在しないこと = 実⾏不能 (infeasible)
    sup(inf) ⽬的関数
    subject to 制約条件
    ⽬的関数が無限⼤(⼩)になること = ⾮有界 (unbounded)

    View Slide

  32. 関数としての最適化モデル (実務家の希望)
    問題例
    (instance)
    最適化
    モデル
    使える解
    様々な指標(メトリクス)を
    考慮した解
    (制約条件の逸脱も⼀部は許す)
    最⼤化 ⽬的関数(がたくさん)
    subject to 制約条件
    (すべてを満たす必要はない)

    View Slide

  33. 重み付き充⾜可能性問題によるモデル化
    問題例
    (instance)
    最適化
    モデル
    (最適)解
    最⼩化 制約逸脱の重み付きペナルティの和
    subject to ハード制約条件 (絶対に満たす)
    ソフト制約条件 (破った場合にはペナルティ)
    逸脱の重みはどうやって決めるの?

    View Slide

  34. 逸脱の重みが決まる例:シフト最適化
    • 時間帯ごとの業務の必要⼈数を「すべて」満たすように,計画期間内のス
    タッフのシフトと業務を決める
    • 制約
    ü 必要⼈数条件
    ü スタッフの希望シフト(⽇,時間帯)
    ü 業務の切り替えペナルティ
    ü 特別な業務(休憩)を適切な時間帯に⼊れる
    ü 連続するシフトに対する制約(夜勤の翌⽇の朝勤務の禁⽌)
    ü …
    アプローチ : 制約最適化(重み付き制約充⾜問題)
    ü すべての制約の逸脱を許す
    ü 制約に対する逸脱ペナルティはユーザーが決める(e.g., 業務切り替えは⼩さく,希
    望シフトは⼤きく)or 優先度で処理

    View Slide

  35. 優先順位付き多⽬的最適化のための簡易法
    多⽬的最適化問題

    朱制約
    優先度 1 の⽬的関数

    優先度 2 の⽬的関数

    優先度 3 の⽬的関数
    制約条件
    minimize

    優先度 1 の⽬的関数
    朱制約
    制約条件
    朱制約
    制約条件

    優先度 2 の⽬的関数
    優先度 1 の⽬的関数 <= z*
    優先度1の⽬的関数 z*
    優先度2の⽬的関数 z**
    朱制約
    制約条件

    優先度 3 の⽬的関数
    優先度 1 の⽬的関数 <= z*
    優先度 2 の⽬的関数 <= z**

    View Slide

  36. 例:配送最適化
    • 荷物を「すべて」運びたい
    • 使える運搬⾞は決まっている
    ü 顧客の時間枠制約
    ü 運搬⾞の容量制約
    ü 顧客と運搬⾞の相性(スキル条件)
    ü …
    アプローチ 1: 制約の逸脱を許す(逸脱にペナルティ)
    アプローチ 2: 「荷物をすべて運ぶ」を緩和
    どうしても運べない荷物を残して提⽰(未使⽤運搬⾞も提⽰)

    View Slide

  37. アプローチ 1の流れ
    1. 解く
    運搬⾞台数はハード制約,その他の制約はソフト制約
    制約の重みは既定値)
    2. 実⾏不能解
    (どの制約を逸脱しているかをユーザーに返す)
    < できれば可視化してわかりやすく >
    3. 破っている制約の重み(ペナルティ)を調整,1. に戻る

    View Slide

  38. アプローチ 1 の問題点
    • 2. の部分(逸脱している制約を⽰す+可視化) が理論家には
    難しい (GUIを作りたがらない)
    • 制約逸脱の重みを⼤きくしても制約が満たされるとは限らない
    • 重みを変えて何度も解くので,最適化が⼗分に⾼速であること
    が必要

    View Slide

  39. アプローチ 2の流れ
    1. 解く(荷物の優先度を⼊れて,優先度の⾼いものをなるべく運ぶ)
    2. 未配達の荷物と未使⽤の運搬⾞を得る
    3. 荷物が未配の理由を調べ,制約を変更
    例:
    ü 荷物の時間枠が,運搬⾞の稼働時間内に⼊っていない
    ü 荷量が⼤きすぎて,運搬⾞の容量に⼊らない
    ü 顧客が要求するスキルが厳しすぎて,運搬⾞が割り当てできない
    4. (残された荷物を運搬⾞だけの問題を⽣成し)1. に戻る

    View Slide

  40. アプローチ 2 の問題点と利点
    • 問題点
    ⼈による制約の変更が必要なので,全⾃動ではない
    • 利点
    ü ユーザーが誤ったデータを⼊れている場合に,それを容易に修正できる
    ü 問題規模が徐々に⼩さくなるので,全体として早く解ける
    ü 優先度(⾃社の利益)が低い荷物は,翌⽇に回したり,他社(傭⾞)に
    任せることができる

    View Slide

  41. なぜ,最適化は
    実務への適⽤が難し
    いのか?

    View Slide

  42. 最適化は魔法の杖や銀の弾丸ではない
    • 最適化は機械学習と違って,実務への応⽤は簡単ではない
    • ソルバーを買っただけでは何の役にも⽴たない
    • 過度の期待はよくない
    • 制約条件の抽出や評価尺度の決定には,ユーザーの協⼒が不可⽋
    • 得られた解はそのままでは使えない(例:⾚字企業だと全部閉鎖と出
    る)
    • モデリングができても解けないことがある(解けるモデルを作ることが
    重要)
    • コンサルや教授の⼝⾞に乗ってはいけない(前者は最適化を理解してい
    る⼈が少ないし,後者は理論だけでなんでも解けると勘違いしている)

    View Slide

  43. ゴミを⼊れればゴミが出てくる
    • ⼊れるものがゴミだと出てくるものもゴミ
    • ⼊⼒を正しいものにするのは,以下が重要:
    ü ⼊⼒を正しいものに変換するための前処理
    ü データの妥当性の検証(⼊⼒時のチェックが理想)
    ü ⼊⼒データの可視化と異常値の検出
    ü ⼊⼒担当者への教育と賞罰(⾒返りがなければ誰もアンケートに答えない)
    ü ⽋損値の補完
    ü データの単位の統⼀(例:mとcmとmmの混在)
    ü 過去のデータとの紐付け(例:旧製品が現在のどの製品に対応するか,顧客
    や部⾨の名称変更の紐付けなど)

    View Slide

  44. 重要なのは最適解ではなく,そこから得
    られる洞察である
    • Arthor Geoffrionによる格⾔
    • 最適解をそのまま使うのは危険
    • ⼊⼒を⾊々と変えてテストすることが重要
    • 最適化とはWhat If分析のためのツール
    • 現状を知るためのツール
    • データ中⼼の考え⽅をするためのツール

    View Slide

  45. 最適化は意思決定⽀援ツールであり,制
    約条件も含めて決めるのは⼈間
    • 制約は破られるためにある.制約を緩和したときの影響を知る
    のは,現場を良く知る⼈間だけ
    • 良い⽀援ルーツを作るためには,対話のためのインターフェイ
    ス作りが重要
    • 使いやすいツールを設計するためには,システムのデザインが
    重要
    • 過去の慣習から出てくる制約を⾒直すことが重要

    View Slide

  46. 最適化は⼿作業を簡略化するためのもの
    ではない
    • ⼿作業の時間を作成する⼿間を省くだけの最適化システムは,
    成功しない
    • 解の評価尺度として⼿作業で作成した解との近さを使ってはい
    けない
    • 単に⼿間を省くのではなく,最適化を利⽤して費⽤削減,サー
    ビス向上ができなければ,処理的ITと⼤差ない(最適化は解析
    的IT)

    View Slide

  47. 動的・不確実性な最適化問
    題に対する機械学習と数理
    最適化を融合したアプロー

    View Slide

  48. 動機
    • 実際の最適化問題は,動的でかつ不確実である
    • それらは難しすぎるので,静的かつ確定的な問題であると仮定
    して最適化を適⽤している
    • ⼀⽅,最適化問題例(インスタンス)に関する膨⼤なデータが
    蓄積され利⽤可能になっている
    • これらのデータを⽤いて,以下の3点を克服する
    1. 動的(過去から未来の時間の流れを考慮した最適化)
    2. 不確実性(将来の問題例のデータが不確実性をもつ)
    3. 複雑性(最適化問題⾃体が⼤規模で計算量が膨⼤になる)

    View Slide

  49. (A)DP/RL/MPC/MOとの融合の⽐較
    動的計画(DP) 近似DP (ADP) RL MPC MO Hybrid
    モデル あり あり なくても良い あり あり
    予測 なし なし なし 過去の状態から
    予測
    過去の問題例と⽂
    脈(付加情報)か
    ら予測
    価値関数 あり ⾏動後状態に対
    して定義
    あり あり ⾏動後状態と⾏動
    前状態に対して定

    最適化 基本は貪欲 1期の最適化 基本は貪欲
    Tree Search,
    Beam Search,
    Rolloutを併⽤
    有限期間の最適
    化をローリン
    グ・ホライズン
    2次の⾮線形
    有限期間の問題を
    (M)Oで最適化
    即時決定とリコー
    ス変数で確率的最
    適化
    価値関数の近似
    の⼯夫
    状態の特徴に対
    する区分的線形
    関数で近似
    区分的線形,NN,
    決定⽊をMOに組み
    込む

    View Slide

  50. 実務的な枠組み ML+(M)O+MPC+RL
    (M)O
    予測
    問題例⽣成
    Solution
    訓練データ
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    (𝐼!
    "!#, $
    𝐼!$%
    "!#, $
    𝐼!$&
    "!#, … , $
    𝐼'
    "!#)
    (𝑋!
    "!#, 𝑋!$%
    "!#, 𝑋!$&
    "!#, … , 𝑋'
    "!#)
    ($
    𝐼!$%
    , $
    𝐼!$&
    , … , $
    𝐼'
    , ⋯ )
    ML
    ML (MIPlearn)
    ML (MIPlearn)
    State
    𝐼(
    (𝑖 = ⋯ , 𝑡 − 1, 𝑡)
    (𝑋(
    "(#, 𝑋($%
    "(#, 𝑋($&
    "(#, ⋯ ) (𝑖 = ⋯ , 𝑡 − 1)
    (𝐼(
    "(#, $
    𝐼($%
    "(#, $
    𝐼($&
    "(#, ⋯ )
    固定制約
    部分解
    近似解
    𝑆!)% 𝑆(
    ML (RL)
    V 𝑆(
    𝑆'$%
    𝑚𝑎𝑥 𝑣 𝑥 + 𝑉 𝑆'$%
    𝑋!
    "!#, 𝑋!$%
    "!#, 𝑋!$&
    "!#, … , 𝑋'(%
    "!#
    ≈ 𝑋!
    "!(%#, 𝑋!$%
    "!(%#, 𝑋!$&
    "!(%#, … , 𝑋'(%
    "!(%#
    MPC
    状態
    価値関数

    View Slide

  51. 意思決定の流れ
    問題例(顧客,需要)
    Period(⽇) 𝑡 − 1 𝑡 𝑡 + 1
    ⽂脈(補助データ)
    過去のデータで訓練
    ML/DL
    当⽇の問題例判明
    当⽇の⽂脈から,問題例
    (シナリオ)を複数⽣成
    ・・・
    シナリオ(確率的)最適化(過去の解も利⽤)
    で即時決定(e.g., トラック台数)

    最適化(過去の解も利⽤し,近いものを探す)
    でリコース(待機)決定(e.g., ルート)

    View Slide

  52. 𝐹(
    から 𝐼(
    を⽣成
    (𝑖 = 𝑡 + 1, … , 𝑇)
    過去の問題例で訓練し,未来の問題例を⽣成
    問題例(顧客)
    Period(⽇) 𝑡 − 1 𝑡 𝑡 + 1 ⋯
    訓練データ
    𝐹(
    , 𝐼(
    (𝑖 = ⋯ , 𝑡 − 1, 𝑡)
    ⽂脈(補助データ) 曜⽇,天候など
    ML/DL
    𝐹(
    (𝑖 = ⋯ , 𝑡 − 1, 𝑡) 𝐼(
    (𝑖 = ⋯ , 𝑡 − 1, 𝑡)
    問題例(顧客)
    損出関数 = 最適輸送距離
    問題例をランダムに複数⽣成

    View Slide

  53. 複数の問題例をシナリオとした確率的最適化
    即時決定変数
    (トラックの台数)
    待機決定(リコース)変数
    (ルート)
    即時決定変数
    (発注量)
    待機決定(リコース)変数
    (期末在庫量,品切れ量)
    顧客の位置と需要量
    製品の需要量

    View Slide

  54. 解の学習(MIPlearn+)
    • 過去の問題例と解の組で訓練
    • 問題例を⼊⼒し,解の「情報」を得る
    • 情報を⽤いて,最適化の⼿助け(⾼速化)をする
    機械学習
    機械学習
    𝐼(() (𝑖 = 1, … , 𝑚)
    X(() (𝑖 = 1, … , 𝑚)
    問題例

    訓練データ
    新しい問題例
    情報 最適解
    𝐼
    Optimization Voice “Strategy”:
    等式になる制約
    固定される変数
    => 解を簡単に⽣成可能
    MIPlearn
    満たされるべき制約 => 制約
    部分解 => 解ヒントや初期解

    View Slide

  55. 状態と価値関数
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯
    状態(期末在庫量)
    𝑆!)%
    状態 S
    ML/DL
    価値関数 V
    報酬関数 r = -(発注費⽤+在庫費⽤+品切れ費⽤)
    𝑆!
    TD学習(γは割引率,αは学習率)

    View Slide

  56. MPC/ローリングホライズン⽅式
    • 多期間問題
    • 時間をずらして最適化
    • 近い期は過去の解からのずれを最⼩化
    t T


    View Slide

  57. 機械学習
    実際問題
    数理最適化
    (MO)
    最適化
    ⼈⼯知能
    (AI)
    機械学習と数理最適化の融合
    • MOAI フォーラム
    (Mathematical Optimization
    & Artificial Intelligence)

    View Slide