>100 Views
November 07, 26
スライド概要
MOAI Labが開発したAGI4OPTおよびAGI4SCMは、数理最適化と人工知能を統合し、自然言語による指示とデータから複雑な課題を自動解決するAgentic AIです。従来のオープンソースソルバーとは異なり、問題の規模や実務要件に応じた最先端の解法やメタヒューリスティクスを自動選択して適用します。さらに、Model Context Protocol(MCP)上のスキルとして主要なAIモデルから呼び出すことが可能であり、検証用コードによる解の正確性チェックや詳細な視覚的ダッシュボードの生成も行います。社内での安全なAI活用を支えるMOAIクラウド基盤とともに、生産計画、配送、スケジューリングなどのサプライチェーン最適化を強力に支援します。
#海洋大 #講演 #AGI4OPT #moai
@kubomikio
MIKIO KUBO is a professor at Tokyo University of Marine Science and Technology, a director (CTO) at MOAI Lab, a director at A* Quantum, and an adviser at Optimind. He works on supply chain management (SCM) with an emphasis on optimization and machine (deep) learning. He founded Supply Chain Risk Management Forum and MOAI Forum.
MOAI Lab 紹介 @東京海洋大発ベンチャー講演会 Mikio Kubo
MO (Mathematical Optimization) 数理最適化・メタヒューリスティクス AI (Artificical Intelligence) 人工知能 の融合技術を中心とした技術集団
商品 AGI4OPT & AGI4SCM
What is AGI4OPT ? 最適化のための汎用人工知能 自然言語による問題の説明と 元データを入れるだけで 最先端の最適化をしてくれる Agentic AI
AGI4OPTアシスタント 手持ちのAIに最適化の専門家のスキルを付与 AGI4OPTクラウド 会社全体で使える最適化の専門家 AIで自動生成したアプリを社内で共有
What is AGI4SCM ? SCMのための汎用人工知能 自然言語と元データを入れるだけで 最先端のSCM解析をしてくれる Agentic AI
AGI4SCMアシスタント 手持ちのAIにSCMの専門家のスキルを付与 AGI4SCMクラウド 会社全体で使えるSCMの専門家 様々なサプライチェーンアプリを社内で共有
サプライチェーン最適化 AGI4SCM サプライチェーン最適化アプリ 在庫最適化・予測 生産最適化 ロジスティクス最適化 シフト最適化 リスク最適化 在庫分類(ABC/XYZ分析) 在庫方策 需要予測 ロットサイズ最適化 スケジューリング最適化 物流ネットワーク最適化 配送最適化 シフト最適化 タスク割り当て最適化 リスク評価 リスク最適化 「MCP上のスキル」として提供 Claude, ChatGPT, Gemini などから呼び出し
MOAIクラウド ゼロトラスト基盤による安全なAI活用 青写真によるアプリ配布 (ユーザーごとに独立したアプリ) AIに鍵を渡さない完全隔離設計 「MCP上のスキル」によるAI統制
スキル(Agent Skills) AIに専門知識をもたせる仕組み 最適化とSCMに関する30年以上のノウハウ MCP上のスキル(Skills on MCP – Model Context Protocol ) スキルを隠蔽し、MCP として接続
AGI4OPTの使用例 段取り費用付きの多品目生産計画の問題を解いてください。 データは添付したよ。 スキルなし 通常の混合整数最適化としてモ デル化し、オープンソースのソ ルバーで解く 小規模例題は解けるが、大規模 問題例だと解けない AGI4OPTスキル利用 通常のモデル化だけでなく、問題例の規 模に応じて Matheuristicsを実装 検算用コードで解の正しさを確認し、 推奨方法を提示 問題例の規模により最適な手法を自動選択
X = {}
I = {}
Y = {}
スキルなしの出力(一部)
M_big = 1000000 # Big-M for setup linkage
for p in products:
期 t に品目 p を生産する量を表す変数
for t_idx, t in enumerate(months):
X[(p, t)] = solver.NumVar(0.0, solver.infinity(), f'X_{p}_{t}')
I[(p, t)] = solver.NumVar(0.0, solver.infinity(), f'I_{p}_{t}')
Y[(p, t)] = solver.IntVar(0, 1, f'Y_{p}_{t}')
for p in products:
for t_idx, t in enumerate(months):
prev_inv = initial_stock[p] if t_idx == 0 else I[(p, months[t_idx-1])]
# I[p, t] == prev_inv + X[p, t] - demand[p][t]
solver.Add(I[(p, t)] == prev_inv + X[(p, t)] - demand[p][t])
for p in products:
for t in months:
# Get max possible demand sum from t to end to bound M tightly, or use a safe upper bound
max_prod = sum(demand[p][months[k]] for k in range(len(months))) + initial_stock[p]
solver.Add(X[(p, t)] <= max_prod * Y[(p, t)])
for m in ['M1', 'M2']: m_products = [p for p in products if prod_info[p]['machine'] == m] capacity_minutes = mach_info[m]['hours_per_month'] * 60 for t in months: expr = solver.Sum([ prod_info[p]['minutes_per_unit'] * X[(p, t)] + prod_info[p]['setup_minutes'] * Y[(p, t)] for p in m_products ]) solver.Add(expr <= capacity_minutes) objective = solver.Objective() for p in products: setup_cost = prod_info[p]['setup_cost_yen'] holding_cost = prod_info[p]['holding_cost_yen_per_unit_month'] for t in months: objective.SetCoefficient(Y[(p, t)], setup_cost) objective.SetCoefficient(I[(p, t)], holding_cost) objective.SetMinimization() スキルなしの出力(続き)
AIG4OPTスキル利用(全部)
var IsSetup {PRODUCTS, MONTHS} binary;
var Supply {p in PRODUCTS, s in MONTHS, t in MONTHS: s <= t and NetDemand[p,t] > 0} >= 0;
var Production {p in PRODUCTS, s in MONTHS} = sum {t in s..NumMonths: NetDemand[p,t] > 0} Supply[p,s,t];
minimize TotalCost:
sum {p in PRODUCTS, s in MONTHS} SetupCost[p] * IsSetup[p,s]
+ sum {p in PRODUCTS, s in MONTHS, t in MONTHS: s <= t and NetDemand[p,t] > 0}
HoldCost[p] * (t - s) * Supply[p,s,t] + InitHoldConst;
subject to MeetDemand {p in PRODUCTS, t in MONTHS: NetDemand[p,t] > 0}:
sum {s in 1..t} Supply[p,s,t] = NetDemand[p,t];
subject to SetupLink {p in PRODUCTS, s in MONTHS, t in MONTHS: s <= t and NetDemand[p,t] > 0}:
Supply[p,s,t] <= NetDemand[p,t] * IsSetup[p,s];
subject to ProdLink {p in PRODUCTS, s in MONTHS}:
Production[p,s] <= ProdUB[p,s] * IsSetup[p,s];
subject to Capacity {m in MACHINES, s in MONTHS}:
sum {p in PRODUCTS: MachineOf[p] = m}
(MinutesPerUnit[p] * Production[p,s] + SetupMinutes[p] * IsSetup[p,s]) <= CapMinutes[m];
ampl-latex-generation スキル利用 高次元空間 強い定式化 強化式
例 乗務員スケジューリング問題を最適化して。 データは添付したよ。 スキルなし 通常の混合整数最適化としてモ デル化し、オープンソースのソ ルバーで解く 小規模例題は解けるが、大規模 問題例だと解けない AGI4OPTスキル利用 通常のモデル化だけでなく列生成法を実装 様々なソルバー(SOTA解法)で解き、 時間と精度を比較 検算用コードで解の正しさを確認し、 推奨方法を提示 問題例の規模により最適な手法を自動選択
例 配送最適化問題を最適化して。 データは添付したよ。 スキルなし 通常のオープンソースのソル バーで解く 付加条件には対処できない 大きな問題例には対処できない 出力はテキストのみ AGI4OPTスキル利用 通常のモデル化だけでなく様々な配送最適化 ソルバー(SOTA解法)で解き、時間と精度 を比較 検算用コードで解の正しさを確認し、 推奨方法を提示 問題例の規模により最適な手法を自動選択
AGI4OPTはダッシュボードも返す
例 スケジューリング問題を最適化して。 データは添付したよ。 スキルなし 通常のオープンソースのソル バーで解く 付加条件には対処できない 大きな問題例には対処できない 出力はテキストのみ AGI4OPTスキル利用 通常のモデル化だけでなく様々なスケジュー リング最適化ソルバー(SOTA解法)で解き、 時間と精度を比較 検算用コードで解の正しさを確認し、 推奨方法を提示 問題例の規模により最適な手法を自動選択
AGI4OPTはダッシュボードも返す
AGI4SCMの使用例 この需要データを分析して。データは添付したよ。
AGI4SCMの使用例 この需要データを最適化して。データは続きだよ。
AGI4SCMの使用例 この需要データを予測して。データは添付したよ。
AGI4SCMの使用例 予測に基づく動的在庫方策の効果を検証して。
AGI4SCMの使用例 物流ネットワークの最適化をして。データは添付したよ。
AGI4SCMの使用例 サプライチェーンリスクの評価をして。データは添付したよ。
AGI4SCM :複数のMCPを組合せた Web アプリを作れる
AGI4SCMクラウド :アプリのUIをAIで修正して共有
ソフトウェアの国内総代理店 数理最適化モデリング言語 AMPL 40年以上の全世界での販売実績をもつ最適化モデラーのデファクトスタンダード PyVRP エンタープライズ 最高精度の配送最適化アルゴリズム・ほとんどすべての実務制約に対応
出版物 (1) エージェントスキル: 自律型 AI が変える 最適化とサプ ライチェーン の未来 朝倉書店 近刊
出版物 (2) もっとあたらしい 数理最適化 近代科学社 近刊
その他のサービス MOAIブートキャンプ AI×数理最適化で動くプロトタイプを 3日間で構築する実践型プログラム https://www.moai-lab.jp/