こんにちは、NRIの大貫です。入社当初から、数理最適化やAIソリューションの導入支援や、開発プロジェクトの推進を担当しています。
この記事では、数理最適化の活用事例の一つである、効率的な配送ルートを求める配送計画最適化に着目し、最近注目されているModel Context Protocol(以下、MCP)を利用して、LLMから配送最適化を呼び出す簡単なデモを紹介します。
数理最適化とは
数理最適化とは、ある制約条件のもとで「最も良い(最適な)」答えを数学的に導き出す手法です。例えばコスト削減や効率化など、現実世界のさまざまな場面で活用されています。
数理最適化の例:
- 配送計画最適化:配送ルートを最短にして、コストを最小にする
- シフトスケジュール最適化:スタッフの希望や業務量を考慮し、勤務シフトを効率よく割り当てる
- 設備運転計画最適化:運転負荷や生産コストを考えて、最適な設備の運転スケジュールを求める
NRIでは、数理最適化やアルゴリズムに関する知見とノウハウを組み合わせ、Fiboatというソリューションを提供しています。ビジネス上の課題を数理モデルに落とし込むにあたり、お客様特有の業務要件を柔軟に考慮しながら「コスト最小化」「利益最大化」が見込めるオペレーションを導きだせる点が、Fiboat の特徴です。Fiboatについては以下もご参照ください。
機械学習・最適化・量子コンピュータ | ソリューション | atlax (アトラックス) | 野村総合研究所 (NRI)
さて、昨今、数理最適化に対し直接LLMを適用、あるいは既存の手法とLLMを組み合わせるようなケースが散見されるようになってきており、FiboatとしてもLLMとの連携を始めています。今回はそのユースケースの一つとして、MCPを利用し数理最適化をLLMから呼び出す簡単なデモを紹介します。
MCPとは
まず、MCPとは何かについて説明します。MCPは、AIアプリケーションが様々なデータソースやツールと簡単・安全に連携できるように、Anthropic社によって提案された標準規格です。Anthropic社による公式ドキュメントでは、「USB-Cが多様なデバイスをつなぐ共通アダプタのように、MCPはLLMと外部システムやリソースとの橋渡しを行う」と表現されています。
MCPの活用例:
- AIチャットがGoogle Driveの資料を要約
- AIコードエディタがGitHubから進捗を取得してレポートを出力
ドキュメントでは、AIアプリケーションがMCPホスト、データソースやツールへの接続を担うサーバーがMCPサーバーと呼称されています。
デモの紹介
デモの構成を以下の図に示します。
配送最適化用のMCPサーバーの他に、ルート計算に必要な配送先同士の移動時間を取得するためのMCPサーバーも用意しました。これは、Google社が提供するGoogle Maps PlatformのAPIアクセスを利用して、移動時間を取得します。
次に、実際に使ってみた例を紹介します。以降のデモで紹介する例は、AIアプリケーションにAnthropic社のClaude for Desktop、LLMモデルにClaude Sonnet 4を利用したものです。
まず、配送最適化を指示するプロンプトを入力します。プロンプトの内容は以下の通りです。特に数理最適化やアルゴリズム特有のワードは利用せず、一般的な単語のみで構成されていることが分かるかと思います。
ここでは、以下の条件を守りながら、全ての駅に荷物を配送する最適なルートを求めるよう指示しています。
- 4台のトラックまでを利用してよい。(4台全てを利用しなくてもよい。)
- 全てのトラックが大手町駅を出発し、大手町駅に帰らなければならない。
- 1台のトラックにつき、大手町駅を除いて、4駅までしか配送してはいけない。
プロンプトを投げると、LLMは、LLMが判断したタイミングでMCPサーバーにリクエストを送信し、回答に必要な情報を取得します。今回のデモでは、まず移動距離用のMCPサーバーに接続し、駅間の移動距離を取得した後、配送最適化MCPサーバーに接続し、配送ルートを取得します。
その後、以下のように、取得した配送ルートを整形して出力してくれます。出力されたルートを見ると、「最大4台」や「1台につき、4駅」等、プロンプトに散りばめられた条件を満たしたうえで、効率的なルートが出力されていることが分かると思います。
また、同じスレッド上で、入力条件を変えて配送最適化を再実行させることも可能です。以下の例では、トラックの運転手2人が体調不良でお休みになってしまったという設定の下で、利用可能なトラックの数を2台に変更し、計算をやり直すよう指示しています。
注目すべきは、配送最適化MCPサーバー(get_optimized_route)のみを呼び出している点です。これは、距離行列を前回の回答ですでに取得しており、追加の呼び出しが不要であるとLLMが判断したためと考えられます。
他にも、配送ルートをCSVファイル等に整形して出力させたり、配送する駅を追加して再計算させるなど柔軟な指示をすることも可能です。
配送最適化MCPサーバー作成時のポイント
配送最適化MCPサーバーを作成する上で、工夫が必要なポイントの一例を以下に記します。
- LLMとのインターフェースは、構造的でLLMが解釈しやすい形式にする。
- 最適化の条件設定を含むインターフェースを、Key-Value形式や表形式のような構造的な形式で定義した方が、LLMの解釈の精度が向上するケースが多いです。
(先ほど紹介したデモではKey-Value形式を採用しました。)
- 最適化の条件設定を含むインターフェースを、Key-Value形式や表形式のような構造的な形式で定義した方が、LLMの解釈の精度が向上するケースが多いです。
- 仕様をドキュメントに細かく記載し、事前にLLMにインプットしておく。
- インターフェースの説明や最適化の仕様を丁寧にドキュメントに記載し、事前にLLMに読み込ませるようにしました。これを行わないと、LLMがうまく引数を整形できなかったり、仕様とは異なる最適化を実行してしまうことがありました。
まとめ
この記事では、配送最適化を実行するMCPサーバーを作成し、それをLLMから呼び出す例を紹介しました。この記事を通じて、数理最適化が少しでも身近に感じていただけたら幸いです。
デモで紹介した配送計画最適化の例では、基本的な条件のみしか考慮していませんでしたが、NRI提供のソリューションであるFiboatはより複雑な業務制約にも多く対応可能であり、また配送最適化以外にもシフトスケジュール最適化や設備運転計画最適化など、多様な業務に対する導入実績もございます。もし、お困りのことなどありましたら、以下のお問い合わせ先までお気軽にご相談ください。
Fiboatのお問い合わせ先
atlax公式SNS
各種SNSでも情報を発信しています。ぜひフォローをお願いいたします。
お問い合わせ
atlax では、ソリューション・サービス全般に関するご相談やお問い合わせを承っております。
関連リンク・トピックス
・2023/06/20 「NRI独自開発の最適化AIによってビジネスを変革!数理最適化チームの取り組みや「Fiboat」の魅力についてインタビュー!」
・2022/08/22 「量子コンピュータ分野における東北大学との 産学共同研究についてご紹介」
-
採用情報
NRIの IT基盤サービスでは、キャリア採用を実施しています。様々な職種で募集しておりますので、ご興味を持たれた方は キャリア採用ページも ぜひご覧ください。
※ 記載された会社名 および ロゴ、製品名などは、該当する各社の登録商標または商標です。
※ アマゾン ウェブ サービス、Amazon Web Services、AWS および ロゴは、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ Microsoft、Azure は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
※ Google Cloud、Looker、BigQuery および Chromebook は、Google LLC の商標です。
※ Oracle、Java、MySQL および NetSuite は、Oracle Corporation、その子会社および関連会社の米国およびその他の国における登録商標です。NetSuite は、クラウド・コンピューティングの新時代を切り開いたクラウド・カンパニーです。