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

数理最適化と機械学習の 融合アプローチ -分類と新しい枠組みと応用-

MIKIO KUBO
September 18, 2023

数理最適化と機械学習の 融合アプローチ -分類と新しい枠組みと応用-

MIKIO KUBO

September 18, 2023
Tweet

More Decks by MIKIO KUBO

Other Decks in Research

Transcript

  1. 数理最適化と機械学習の
    融合アプローチ
    -分類と新しい枠組みと応⽤-
    Mikio Kubo

    View Slide

  2. 数理最適化と機械学習の融合 (MOAI)
    機械学習
    実際問題
    数理最適化
    (MO)
    最適化
    ⼈⼯知能
    (AI)

    View Slide

  3. なぜMOAIか?
    • 実際問題 (NP-hard, Dynamic, Stochastic) をAIで解くという宣伝が多い
    • その中⾝は,機械学習で予測してから(数理)最適化がほとんど
    • 失敗事例も多々ある(なぜ?)
    ü 機械学習の知識のなさ(e.g., 確率を予測するのに多項式回帰, overfit)
    ü (数理)最適化の知識のなさ(e.g., Big M, 数値誤差, … )
    • ここ数年で融合の研究が進んでいる
    • たくさんの⼿法が提案されているが,どれを使うべきか分からない
    • 論⽂は我⽥引⽔の実験が多く,本当に実務に使えるのかは不明
    => ⼿法の整理,サーベイ and/or 本の執筆
    => 実際問題の収集と解決

    View Slide

  4. メニュー

    View Slide

  5. 略語と分類

    View Slide

  6. 略語と分類
    • MO:数理最適化 (Mathematical Optimization)
    • O:より広い最適化(Optimization)
    • ML: 機械学習(Machine Learning)
    • RL:強化学習(Reinforcement Learning) = O + ML
    • MPC:モデル予測制御 (Model Predictive Control) = O + ML
    MOとRLの融合
    Þ 6つのパターンに分類
    1. ML -> MO (ML-first MO-second: ML先 MO後)
    2. MO -> ML (MO-first ML-second: MO先 ML後)
    3. MO ⊃ ML (ML assists MO, ML4MO: 機械学習が最適化をアシスト)
    4. ML ⊃ MO(MO assists ML, MO4ML: 最適化が機械学習をアシスト)
    5. 最適化の基礎理論で相互乗り⼊れ
    6. RL/MPC中⼼の融合型(ML & MO assists RL/MPC)

    View Slide

  7. パターンの概念図
    ML MO
    ML -> MO (ML-first MO-second: ML先 MO後) MO -> ML (MO-first ML-second: MO先 ML後)
    ML
    MO
    MO ⊃ ML (ML assists MO, ML4MO) ML ⊃ MO(MO assists ML,MO4ML)
    最適化の基礎理論で相互乗り⼊れ RL/MPC中⼼の融合型
    MO
    ML
    MO ML
    ML
    MO
    ML MO
    RL/MPC

    View Slide

  8. パターン1
    ML → MO

    View Slide

  9. パターン1 ML → MO
    • ML をした後で MO を適⽤する
    • 最も古典的で⾃然な(予測をしてから最適化)アプローチ
    • MLで予測し関数近似 => 近似した制約や⽬的関数をMOで解く
    ü MLの予測モデルをそのままMOに数式として埋め込む(Gurobi 10.0+)
    ü MLの予測モデルを現実的な仮定でMOで解きやすい関数として近似
    • MLで前処理(e.g., クラスタリング) → MO
    • 注:データから始まらないものは,パターン3(ML4MO)
    ML MO
    データ

    View Slide

  10. MLで予測し関数近似 => (M)Oで解く
    • たくさんのML⼿法 × たくさんの最適化⼿法 = たくさんある
    • 限定されたML -> ⾮線形ソルバー・混合整数最適化ソルバー
    • 任意のML -> オラクルを⽤いたブラックボックス最適化
    • 任意のML -> 解きやすい関数に近似 -> 最適化ソルバー
    • MLでシナリオ⽣成 -> 確率的最適化
    ML (M)O
    データ

    View Slide

  11. 限定されたML -> MO: Gurobi ML
    • https://github.com/Gurobi/gurobi-machinelearning
    • 線形回帰
    • 多項式回帰(2次)
    • ロジスティック回帰(⾮線形関数を区分的線形関数で近似)
    • ニューラルネット(完全結合層でLeLUのみ)
    • 決定⽊
    • 勾配ブースティング
    • ランダム森
    ML y
    x
    特徴ベクトル(変数 or 定数)
    予測制約
    ターゲット
    min f(x,y)
    s.t. x => ML => y
    x ∈X

    View Slide

  12. 任意のML -> ブラックボックスO
    • MLをオラクルとしてブラックボックス最適化
    • 利点:任意のMLで動く
    • 弱点:遅い
    ML f(x)
    x
    min f(x)
    s.t. x ∈X
    ブラックボックス最適化
    x
    f(x)
    オラクル

    View Slide

  13. ML -> 解きやすい関数に近似 -> ソルバー
    • 任意のMLモデルでたくさんの教師データを⽣成
    • 解きやすい関数を仮定し,実務的な公理を満たすように関数近似
    ü 例1:地点間と輸送⼿段別の輸送費⽤
    ü 単調⾮減少(重くなると⾼くなるか同じ)
    ü 連続(急に変化しない)
    ü 凹関数(単位重量あたりの費⽤は,重量が⼤きくなると安くなる)
    ü 原点を通る(運ばないときはタダ)
    ü例2:需要関数
    価格に対する減少関数,凸関数
    => MOによる区分的線形回帰

    View Slide

  14. MLで前処理 → MO
    • クラスタリングや次元削
    減などの教師なしMLは,
    ⼀種の最適化
    • ⼤規模最適化のための,
    前処理は⾃然
    • ロジスティクス・ネット
    ワーク設計問題の例
    • 1000点を50点にクラスタ
    リングしてから最適化

    View Slide

  15. ⽂脈付き確率最適化 (1)
    • 予測(後)最適化
    • 線形最適化(変数 x ,費⽤ベクトル c )
    • ⽂脈(補助データ)F と⽂脈・費⽤の訓練データ {F,c}
    • ⽂脈 F の元でのcの条件付き確率分布 𝐷"
    予測後最適化: ̂
    𝑐 = 𝑐 𝐹 ] を(最⼩2乗法などで)計算し, ̂
    𝑐#x を最⼩化
    min
    !∈#
    𝐸$∈%!
    𝑐&𝑥 𝐹 ] = min
    !∈#
    𝐸$∈%!
    𝑐 𝐹 ]& 𝑥
    予測値
    ML
    誤差最⼩化
    (M)O
    線形最適化
    データ

    F c

    View Slide

  16. ⽂脈付き確率最適化 (2)
    予測・最適化:
    費⽤の実現値をもとに最適化した場合との差をロス関数
    (Smart Predict then Optimize,End-to-End Learning)
    最適解オラクル
    実現値が既知のときの最適値 𝑧∗ 𝑐 = min
    !∈#
    𝑐&𝑥
    𝐿𝑂𝑆𝑆$
    ̂
    𝑐, 𝑐 = max {
    %∈'
    𝑐#𝑥 − 2 ̂
    𝑐#x } + 2 ̂
    𝑐#𝑥∗ 𝑐 − 𝑧∗ 𝑐
    𝐿𝑂𝑆𝑆 ̂
    𝑐, 𝑐 = 𝑐#𝑥∗ 2
    𝑐 − 𝑧∗ 𝑐 SPOロス(⾮凸)
    SPO+ロス(凸)
    𝑥∗
    SPOロスの上界
    劣勾配が得られる
    => 最適化を内包したML
    (M)O
    線形最適化
    データ 解
    ML
    SPO+ロス最⼩化
    F

    View Slide

  17. MLでシナリオ⽣成 -> 確率的最適化
    • ⽂脈付き確率的最適化に対するシナリオ⽣成アプローチ
    • データ (Y,F) : Yは最適化で使うデータ,Fは補助(⽂脈)データ
    • F(たとえばgoogle trend)は観測可能,Y(需要)を予測
    • MLで予測モデルを作成し,観測された F から予測値 Yと重み(確
    率)wを⽣成
    • Yとwから確率的(シナリオに対する重み付き)最適化
    Dimitris Bertsimas, Nathan Kallus (2019) From Predictive
    to Prescriptive Analytics. Management Science
    66(3):1025-1044.
    ML 確率的O
    データ
    (Y, F)

    問題例
    重み w
    Bertsimas, D., Kallus, N., & Hussain, A. (2016). Inventory
    Management in the Era of Big Data. Production and
    Operations Management, 25, 2006-2009.
    F
    Y

    View Slide

  18. ML → MOの課題
    • MLモデルを単純にMOに組み込みと計算量増加
    • 適⽤事例は,在庫最適化など単純なものが中⼼

    View Slide

  19. パターン2 MO → ML

    View Slide

  20. パターン2 MO → ML
    • 最適化をした後に機械学習をする
    • 予測は最適化の前が⾃然なので,これはレアケース
    • たとえば,輸送最適化をした後に,各拠点での作業員⼈数を機械学
    習で予測
    ML
    MO
    データ

    View Slide

  21. パターン3 MO ⊃ ML
    MOタスクが中⼼
    ML4MO

    View Slide

  22. パターン3 MO ⊃ ML, ML4MO
    • MO でたくさんのデータ(問題例と解の組)を⽣成し,MLで学習
    • MLで解法の選択,解法のパラメータの設定
    • 似た問題例の系列に対して訓練
    ü MLが解のヒントや満たすべき制約を返し,MOを⾼速化 (MIPlearn)
    ü MLが新しい問題例に対して解を返す (End-to-End learning, Learning to optimize)
    ü MLが近似(実⾏不能)解を返し,近い実⾏可能解に変換(optimization proxy)
    => 最適化に時間がかかるときやリアルタイム最適化に有効
    • ベンチマーク問題例を与えて訓練
    ü RLで分枝ルールを改善
    ü RLで切除平⾯を改善
    • MLがMOをアシスト
    MO
    問題例

    計算時間
    ML

    View Slide

  23. MOの性能を学習し解法(パラメータ)選択
    • MO → ML で複数の最適化⼿法の性能を学習し,学習済みのMLモ
    デルで解法(パラメータ)選択
    • オンラインでの運⽤を考えたものがAutoOpt
    問題例 機械学習
    最適化⼿法群 計算時間 vs 解 報酬予測
    学習済み機械学習
    )
    𝑓(𝑎)
    最適化の性能学習
    問題例 最適化
    ML → MO (実⾏時)
    MO → ML
    解法
    パラメータ

    View Slide

  24. ⼀般のMIPの⾼速化
    • Solving Mixed Integer Programs Using Neural Networks
    (Deep Mind, Google Research)
    • ⼀般のMIPへの適⽤(グラフ的深層学習利⽤)

    View Slide

  25. 機械学習で⾼速化(MIPLearn)
    問題例 数理最適化
    予測
    機械学習
    𝐼()) (𝑖 = 1, … , 𝑚)
    𝑂𝑃𝑇 𝐼
    最適解
    𝑋()) (𝑖 = 1, … , 𝑚)
    問題例

    訓練データ
    問題例 最適解の分布
    𝐼
    x.Start (初期部分解)
    x.VarHintVal (ヒント)
    満たすべき等式

    View Slide

  26. MIPlearn の関連研究
    • Álinson S. Xavier, Feng Qiu, Shabbir Ahmed (2020) Learning to
    Solve Large-Scale Security-Constrained Unit Commitment
    Problems. INFORMS Journal on Computing 33(2):739-756
    • 起動停⽌問題を例として機械学習で数理最適化の⾼速化
    • 訓練データからk-近傍法とSVMで変数を固定
    • ⼀般の最適化問題⽤のパッケージ
    https://anl-ceeesa.github.io/MIPLearn/0.1/
    • TSPやナップサック問題への適⽤
    (ただし枝費⽤のみ変化)

    View Slide

  27. Optimization Proxies
    • 電⼒の送電フロー最適化への応⽤
    • End-to-end learning and repair
    • Lagrange緩和で制約を満たすようにする⼯夫もあり
    End-to-End Feasible Optimization Proxies for Large-Scale Economic Dispatch
    Wenbo Chen, Mathieu Tanneau, Pascal Van Hentenryck

    View Slide

  28. Optimization Voice
    • Bertsimas-Stellaato (2019) “Online Mixed-integer
    optimization in millseconds”
    • 最適決定⽊やNNで戦略(等号になる不等式制約や整数変数の
    値)を学習
    • 問題例のパラメータは狭い範囲で変化すると仮定
    • 新たな問題例に対する⾼速な求解

    View Slide

  29. 強化学習でヒューリスティクスを学習
    • Kool-van Hodd-Welling (2019) “Attention, Learn to solve
    routing problems!”
    • Attentionモデル+ REINFORCE(強化学習)
    • ⼩中規模なTSP(とその変形)で実験
    • 他の類似研究も,⼩中規模実験が中⼼
    • ⼤規模問題例にスケールできるかが課題

    View Slide

  30. ML4MOの課題
    • 訓練⽤の問題例とテスト⽤の問題例が「近い」必要がある
    • 問題例の構造が同じで数値だけ異なる場合に有効
    • 構造が異なる問題例に対する「近さ」の定義が必要(問題依存)
    • 多くの数値実験では,「似た」問題例を⼈⼯的に⽣成し,評価
    • 現実問題に対するものは少ない(電⼒への応⽤が例外)

    View Slide

  31. パターン4 ML ⊃ MO
    MLタスクが中⼼
    MO4ML

    View Slide

  32. パターン4 ML ⊃ MO, MO4ML
    • MLのタスク(分類,回帰)をMOで⾏う
    • 特徴選択のためのMOモデルや最適決定⽊のためのMOモデル
    • 制約付きMLモデルのための最適化⼿法の適⽤(e.g., Lagrange緩和)
    • MOがMLをアシスト
    MO
    データ
    分類
    回帰
    ML

    View Slide

  33. 区分的線形回帰
    • Bertsimas-Shioda, (2007) Classification and Regression via
    Integer Optimization. Operations Research 55(2):252-271.
    • 整数最適化による区分的線形回帰

    View Slide

  34. 最適決定⽊
    サーベイ論⽂ Carrizosa, E., Molero-Río, C. & Romero Morales,
    D. Mathematical optimization in classification and regression
    trees. TOP 29, 5‒33 (2021)
    • 古典的な貪欲法 (CART)
    • 連続(⾮線形)最適化によるランダム化決定⽊
    • 混合整数最適化による決定⽊

    View Slide

  35. 混合整数最適化による最適決定⽊
    • Bertsimas-Dunn (2017) Optimal classification trees. Mach.
    Learn. 106(7):1039‒1082
    • 最適な分類⽊
    • 解釈可能性が⼤
    • 計算時間がかかる
    • その後,データの部分集合の選択,2値分類に特化した定式化,
    フロー定式化,Benders分解法の適⽤,定式化の改良,制約最
    適化の適⽤,近似最適化などの⼯夫,データマイニング⼿法の
    適⽤,動的計画などによる⾼速化の研究が提案されている.

    View Slide

  36. 最適決定⽊のコード
    • https://github.com/LucasBoTang/Optimal_Classification_Trees
    OCT, BinaryOCT, flowOCTの⽐較
    • MurTree https://bitbucket.org/EmirD/murtree/src/master/
    動的計画
    • DL8.5 https://dl85.readthedocs.io/en/latest/user_guide.html
    データマイニングベースの分枝限定法
    • 上の実装の⼊⼒は2値ベクトルに変換しておく必要がある!
    • https://github.com/pan5431333/pyoptree
    OCTの⾃作(⾼速化のためのLocal Searchもあり)

    View Slide

  37. MO4MLの問題点
    • MOをそのまま使うと計算量⼤
    • カテゴリーデータに対する⾼速化⼿法はあるが,連続データに
    は適⽤しにくい(離散化が必要)

    View Slide

  38. パターン 5
    最適化の基礎理論レベ
    ルでの相互乗⼊れ

    View Slide

  39. パターン 5
    最適化の基礎理論レベルでの相互乗⼊れ
    • 異なる分野として研究されているが,本質的な⽬標は同じ
    ü 深層学習(DL)の最適化(⾮凸最適解)->慣性項
    Adamやfit-one cycleなどの実験に基づく改良
    ü 微分不可能関数の最適化(劣勾配法) -> Nesterovの加速
    理論的な収束性の証明
    • 機械学習のモデルの数学的解釈としての数理最適化
    ü 定式化から疎性を組み込んだMOモデル(e.g., 回帰,SVM,NN)
    ü モデルに対する洞察 -> 改良や収束性の保証
    ü 新しいモデルのヒント

    View Slide

  40. パターン6 動的モデ
    ルに対する融合型

    View Slide

  41. パターン5 動的モデルに対する融合型
    • オンラインでの最適化(未来の情報がないか不確定)
    • 全体のフレームワークはRL /MPC (無限期間に対応)
    • 新たに得られた情報でMLで予測
    • 得られた情報をもとにMO
    • パターン1,3との組み合わせ(関数近似,MIPlearnなど)
    MO
    問題例

    ML
    RL/MPC

    View Slide

  42. MPC (Model Predictive Control)
    • モデル予測制御 = 予測 (ML) + 最適化 (O)
    • ローリング・ホライズン⽅式と類似
    • 有限期間の最適化を繰り返し解くことによって制御
    • 毎回,予測も更新
    • 滑らかな制御や状態の安定性のための⽬的関数(凸2次最適化)
    https://en.wikipedia.org/wiki/Model_predictive_control

    View Slide

  43. 近似動的計画 (ADP)
    • Approximate Dynamic Programming: Solving the Curses of
    Dimensionality (Wiley) W. B. Powell
    • 近似動的計画の⼀連の研究
    • 強化学習と最適化の融合
    • ⻑距離輸送問題への適⽤

    View Slide

  44. ⾏動後状態
    状態 ⾏動 ⾏動後状態 次の期の状態
    𝑠+
    𝑎+
    𝑠′+
    𝑠+,-
    ランダム要因 𝜖+
    状態 ⾏動 次の期の状態
    𝑠+
    𝑎+
    𝑠+,-
    ランダム要因 𝜖+
    通常の動的計画 (DP) :状態の数もしくは状態×⾏動の数が膨⼤
    近似動的計画 (ADP):⾏動後の状態の数は⼩さい:状態の特徴のみを抽出して近似

    View Slide

  45. (近似)動的計画/RL/MPCの⽐較
    動的計画(DP) 近似DP (ADP) RL MPC
    モデル あり あり なくても良い あり
    予測 なし なし なし(深層予測学
    習だとあり)
    過去の状態から
    予測
    価値関数 あり ⾏動後状態に対し
    て価値関数を定義
    あり あり
    最適化 基本は貪欲 1期の最適化 基本は貪欲
    Tree Search,
    Beam Search,
    Rolloutを併⽤
    有限期間の最適化
    をローリング・ホ
    ライズン
    2次の⾮線形
    価値関数の近似の
    ⼯夫
    状態の特徴に対す
    る区分的線形関数
    で近似

    View Slide

  46. 新しいフレームワーク
    ML+(M)O+MPC+RL

    View Slide

  47. (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

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

    View Slide

  49. ML+(M)O+MPC+RL (予測ML)
    • 現在の期を t ,期 t の問題例は発⽣していると仮定
    • 期 t までの問題例 (instances)から未来( t+1 期)以降のデータを予測
    (予測をした期は上添字)
    • 不確実性も予測(チルダがついているものは確率変数)
    • たとえば,過去の需要量から未来の需要量を予測する
    • 各期の特徴や天気予報などの付帯情報(⽂脈)も加味して予測する
    予測
    訓練データ
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    ML
    𝐼) (𝑖 = ⋯ , 𝑡 − 1, 𝑡) (8
    𝐼+,-
    .+/, 8
    𝐼+,0
    .+/, … , 8
    𝐼&
    .+/)

    View Slide

  50. ML+(M)O+MPC+RL (問題例⽣成ML)
    • ⽂脈(補助データ)F から問題例 I をランダムに⽣成
    • k-近傍法:Fに近い特徴をもつ過去の問題例を適当な確率で返す
    • 決定⽊:特徴 F をもとに何らかの評価尺度(e.g., 顧客数)もしくは問題例の分
    類を予測する決定⽊を作り,同じ葉に含まれる過去の問題例を選んで返す.
    • ランダム森:複数の決定⽊で同じ葉に含まれる過去の問題例に重みを与えて返
    す.
    • 期 t までに⽣成された問題例と期t+1の⽂脈の条件付き確率で期 t+1 の問題例
    を⽣成(問題例間の距離が微分可能なら⽣成DLを利⽤できる)
    予測
    訓練データ
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    ML
    𝐹), 𝐼) (𝑖 = ⋯ , 𝑡 − 1, 𝑡) 𝐹)
    から 𝐼)
    を⽣成
    (𝑖 = 𝑡 + 1, … , 𝑇)

    View Slide

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

    View Slide

  52. ML+(M)O+MPC+RL(最適化)
    • 期 t の実現値と予測値から期 T までの最適化を⾏う
    • 各期は独⽴ではない(たとえば,在庫は期をまたいで影響を与え
    る)ので,複数期を同時に最適化 (MPC)
    • 問題例がシナリオで与えられているときには確率的最適化(即時決
    定変数と待機決定(リコース)変数に分けて求解)
    • 期 t 以前や期 T 以降の在庫は,後述する状態を⽤いて表現する
    (M)O
    Solution
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    (𝐼+
    .+/, 8
    𝐼+,-
    .+/, 8
    𝐼+,0
    .+/, … , 8
    𝐼&
    .+/)
    (𝑋+
    .+/, 𝑋+,-
    .+/, 𝑋+,0
    .+/, … , 𝑋&
    .+/)

    View Slide

  53. 最適化(1期間)
    即時決定変数
    (トラックの台数)
    待機決定(リコース)変数
    (ルート)
    即時決定変数
    (発注量)
    待機決定(リコース)変数
    (期末在庫量,品切れ量)
    顧客の位置と需要量
    製品の需要量

    View Slide

  54. ⾏動後状態と確率的最適化
    状態 即時決定⾏動 ⾏動後状態 次の期の状態
    𝑠+ 𝑎+ 𝑠′+
    𝑠+,-
    ランダム要因
    𝜖+
    リコース⾏動
    𝑎+
    2 (𝜖+)
    即時決定変数のみの最適化
    リコースも含めた確率的最適化
    価値関数 価値関数
    例:前⽇までにトラック台数を最適化(即時決定) 例:当⽇の顧客需要の変動を考慮した最適化

    View Slide

  55. ML+(M)O+MPC+RL (MIPlearn+)
    • 過去の問題例と解の組で訓練
    • 期 t 以降の問題例を⼊⼒し,解の情報を得る
    • 解の情報を⽤いて,最適化の⼿助け(⾼速化)をする
    (M)O
    Solution
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    (𝐼+
    .+/, 8
    𝐼+,-
    .+/, 8
    𝐼+,0
    .+/, … , 8
    𝐼&
    .+/)
    (𝑋+
    .+/, 𝑋+,-
    .+/, 𝑋+,0
    .+/, … , 𝑋&
    .+/)
    ML (MIPlearn)
    ML (MIPlearn)
    (𝑋)
    .)/, 𝑋),-
    .)/, 𝑋),0
    .)/, ⋯ ) (𝑖 = ⋯ , 𝑡 − 1)
    (𝐼)
    .)/, 8
    𝐼),-
    .)/, 8
    𝐼),0
    .)/, ⋯ )
    固定制約
    部分解
    近似解

    View Slide

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

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

    View Slide

  57. ML+(M)O+MPC+RL(状態の利⽤)
    • (⾏動後)状態を⼊⼒とし,価値関数(それ以降の利益の期待
    値)V を学習
    • 期 T 以降もシミュレーションする(最適化の計算時間が重い場合
    には,学習済みのMIPlearnのMLを使っても良い)
    • 初期状態と最終状態を考慮して最適化する
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    (𝐼+
    .+/, 8
    𝐼+,-
    .+/, 8
    𝐼+,0
    .+/, … , 8
    𝐼&
    .+/)
    𝑆+1- 𝑆)
    ML (RL)
    V 𝑆)
    𝑆&,-
    𝑚𝑎𝑥 𝑣 𝑥 + 𝑉 𝑆&,-
    状態

    View Slide

  58. ML+(M)O+MPC+RL(ローリング・ホライズン⽅式)
    • 期 t から期 T までの最適化を期を順次ずらしながら⾏う
    • 予測と状態も更新する
    • 制御だとMPC,最適化だとローリング・ホライズン⽅式とよばれる
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    (𝐼+
    .+/, 8
    𝐼+,-
    .+/, 8
    𝐼+,0
    .+/, … , 8
    𝐼&
    .+/)
    𝑆+1- 𝑆&,-
    (𝐼+,-
    .+,-/, 8
    𝐼+,0
    .+,-/, 8
    𝐼+,3
    .+,-/, … , 8
    𝐼&,-
    .+,-/)
    𝑆+
    𝑆&,0
    Solution
    (𝑋+
    .+/, 𝑋+,-
    .+/, 𝑋+,0
    .+/, … , 𝑋&
    .+/)
    (M)O
    予測更新
    状態 状態

    View Slide

  59. ML+(M)O+MPC+RL (解の変更を避ける)
    • 期t-1の解からあまり離れないようなペナルティを付加して最適化
    (M)O
    Solution
    Period
    Instance
    𝑡 − 1 𝑡 𝑡 + 1 𝑡 + 2 ⋯ 𝑇 𝑇 + 1 ⋯
    (𝐼+
    .+/, 8
    𝐼+,-
    .+/, 8
    𝐼+,0
    .+/, … , 8
    𝐼&
    .+/)
    (𝑋+
    .+/, 𝑋+,-
    .+/, 𝑋+,0
    .+/, … , 𝑋&
    .+/)
    𝑚𝑎𝑥 𝑣 𝑥 + 𝑉 𝑆&,-
    𝑋+
    .+/, 𝑋+,-
    .+/, 𝑋+,0
    .+/, … , 𝑋&1-
    .+/ ≈ 𝑋+
    .+1-/, 𝑋+,-
    .+1-/, 𝑋+,0
    .+1-/, … , 𝑋&1-
    .+1-/

    View Slide

  60. 実装⽅法

    View Slide

  61. 問題例(インスタンス)のデータ
    • 問題例の構成要素
    ü 構造を表すデータ
    • グラフ
    • 座標(緯度・経度)
    • 部分集合
    ü 表形式データ(の組合せ)
    • 多次元ベクトル(同⼀構造上に定義された数値データ)
    • 多次元ベクトルに変換可能な表形式データ

    View Slide

  62. 問題例間の距離とその利⽤法
    • 問題例(インスタンス)間の距離(もしくは類似度)を定義
    • 問題例の特徴に対する距離でも可
    • MIPlearnで解をMLで⽣成するときに利⽤
    • 将来の問題例を⽂脈から⽣成するときに利⽤
    問題例
    特徴
    ⽂脈(コンテキスト)

    View Slide

  63. 多次元ベクトルに対する距離の計算法
    • 構造が同じで重みだけ変化する場合
    • ⾮負性,対称性,3⾓不等式,同⼀なら0を満たすものが望ましい
    • ノルム(Minkowski距離)
    • 相関(Pearson距離)
    • cosine類似度を⽤いた距離(cosine距離)
    などなど

    View Slide

  64. 集合に対する距離の計算法
    2つの集合A,Bに対して:
    üJaccard類似度
    üSorensen係数
    üTverskyインデックス
    ü交差係数
    𝐽 𝐴, 𝐵 = 𝐴 ∩ 𝐵 /|𝐴 ∪ 𝐵|
    𝑆𝐶 𝐴, 𝐵 = 2 𝐴 ∩ 𝐵 /( 𝐴 + 𝐵 )
    𝑇 𝐴, 𝐵 = 𝐴 ∩ 𝐵 /( 𝐴 ∪ 𝐵 + 𝛼 𝑋 − 𝑌 + 𝛽|𝑌 − 𝑋|)
    overlap 𝐴, 𝐵 = 𝐴 ∩ 𝐵 /min( 𝐴 , 𝐵 )

    View Slide

  65. 座標データに対する距離の計算法
    • 問題例をヒストグラムに変換して分布間の距離の尺度(Kullback-Leibler
    DivergenceやEarth Mover(最適輸送)距離)を利⽤
    • 直接法(最適輸送を利⽤)
    ü 1つの問題例の点(構成要素)ともう1つの問題例の点との距離を計算
    ü 1つの問題例をもう1つの問題に変換する最⼤位数の費⽤最⼩マッチング(重み付
    きの場合には最適輸送問題)を解くことによって対応付け
    ü 対応付けができなかった点に対しては,ペナルティ
    ü DLで⽣成したいときには,微分値が必要( Sinkhorn 法:
    https://pythonot.github.io/を利⽤)

    View Slide

  66. グラフに対する距離の計算法
    • 同型判定もしくは部分グラフの同型判定 (NP-困難)
    • グラフの点は不変 => グラフ編集距離(NP-困難)
    • 両者ともNetworkXのアルゴリズムに実装あり
    • グラフの分類を深層学習で⾏う研究もあり

    View Slide

  67. 距離の利⽤法
    • 距離(類似度)を⽤いてクラスタリング
    ü 多次元ベクトルならPCAやt-SNEやumapなど
    • 特徴(⽂脈)からクラスタリングを当てる分類器を⽣成
    (k-近傍法や決定⽊)
    • 将来の既知の⽂脈から問題例を⽣成
    ü k-近傍法の場合には,近いk個の⽂脈に対応する問題例を返す
    ü 決定⽊の場合には,葉に含まれるクラスターに含まれる問題例をラン
    ダムに選択

    View Slide

  68. (⽂脈を⽤いた)問題例⽣成
    • 合成表データ⽣成(Synthetic Tabular Data Generation)
    ü 問題例は表データ(連続とカテゴリー変数から成る)
    ü 決定⽊
    ü 空間的分割決定⽊(空間データの⽣成)
    ü Baysian Network
    ü GAN
    ü LLM (transformer)
    • ⽂脈もデータの⼀部とみなして⽣成できる
    ü データ間の関係を⽂脈として知識化(contexual knowledge)
    ü ⼀部データの条件付きでの⽣成(conditioning)

    View Slide

  69. 実際問題への適⽤

    View Slide

  70. 動的ロットサイズ決定問題
    • 期ごとに問題例を定義し,期 t から T までの問題例をあわせたもの
    を1つ上位の階層の問題例と考えて(確率的)最適化
    • 過去のデータ(需要量や資源量上限)から予測(シナリオ⽣成)
    • 問題例の類似度はパラメータ(需要量)間の距離
    • 期末の在庫量や段取り状態を状態とし,価値関数を推定
    • ローリング・ホライズン⽅式+解の変更のペナルティ
    t T
    𝑑!
    𝑑!"#
    𝑑$
    𝐼!%#
    𝐼$

    View Slide

  71. 起動停⽌問題
    • 電⼒への応⽤
    • 期は時間
    • ⽂脈は天気予報など
    • 必要な電⼒を予測
    • 問題例の類似度は,構造が同⼀なのでパラメータ間の距離
    • MIPlearnの適⽤
    • ⽂脈から需要のシナリオを⽣成し,(確率的)最適化
    • 状態は発電所の稼働情報(オン・オフ,カテゴリー(⾼温,低
    ⾳),停⽌時間,カテゴリー開始時からの時間,etc.

    View Slide

  72. 動的巡回修理⼈問題
    • ロードサービスへの応⽤
    • ⽂脈は天候,⽇付,時間帯など
    • データと⽂脈から,顧客の位置と時刻を予測
    • 動的に⾞両を割り当て
    • ⽂脈の類似度から問題例を複数⽣成
    • 状態は予定のルートやデポへの距離とし,価値関数を学習

    View Slide

  73. 動的(積み込み・積み降ろし型)配送計画
    • 宅配における中距離輸送への応⽤
    • 荷物は直送(時間枠あり),空輸送最⼩化
    • ⽂脈はアマゾンのセールや⽇付・時刻
    • 問題例の類似度は,発着点の座標対を点と重みを台数を重みを
    台数として,発地間の距離,着地間の距離を近さとして輸送問
    題で計算(次ページ)
    空輸送
    積み込み地点
    積み降ろし地点

    View Slide

  74. 問題例間の距離計算
    • 2部グラフの最⼤位数・最⼩マッチングで計算
    • 台数が付加される場合には,輸送問題に帰着
    • 残された点(台数)はペナルティ
    A
    B


    Bʼʼ
    A Aʼ
    B Bʼ
    Bʼʼ

    View Slide

  75. 多期間⻑距離輸送問題
    • 複数⽇にまたがる⻑距離輸送への応⽤
    • 途中での中継地点の選択と積み込み・積み降ろし型の輸送最適化
    • ⽂脈は⽇付
    • 問題例の類似度は前ページと同じ
    • 次期に持ち越す荷物を状態
    中継地点

    View Slide

  76. サービスネットワーク設計問題
    • ネットワークは同じでOD間の需要量が変化
    • 過去の問題例(需要量)をベクトル化して距離(類似度)を計算
    • ⽂脈は曜⽇などの⽇付情報とAMAZONのセールなどの付加情報
    • ⽂脈と過去の問題例から,期tの問題例を予測(シナリオ⽣成)
    • 状態は次の期に持ち越す荷や運搬⾞の位置情報
    • 可能なら多期間(複数⽇)で解く
    • ローリングホライズン⽅式でなるべく過去の決定通りの解とする
    • 過去の最適解における各地点への⼊⽊を保管して,それを利⽤し
    てMIPlearnや列⽣成法

    View Slide

  77. おわりに

    View Slide

  78. おわりに
    • 提案したものは完全な分類ではない(あくまで便宜的)
    • MO+MLの研究は急速に拡⼤
    • 様々な分野で独⽴に研究
    • 今後は,分野を超えた交流が必要
    • 動的最適化モデルに対する新しいフレームワークの提案
    • 毎⽇,最適化問題を繰り返し解いている実務家の⽅は,問題例
    と解の組をたくさん保管しておいてもらえると嬉しいです

    View Slide