cuopt_mcp: add VRP/routing support

オープン
#1,939 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@Iroy30 がすでに取り組んでいます。

2026年9月18日 から。

評価

この issue はまだ評価されていません。

説明

feature request

cuopt_mcp (#1916) currently exposes LP and MILP solving only (cuopt_solve_lp/cuopt_solve_milp), backed by cuopt.grpc.client.grpc_client.Client. Routing/VRP isn't wired in.

Why this is bigger than adding another tool

LP/MILP submission is file-based — problem_path works because MPS/LP are standard formats Read() parses directly. VRP has no file-format equivalent: a routing problem is built programmatically via DataModel calls (fleet size, cost matrix or coordinates, demand, capacity, time windows, breaks, etc.). A cuopt_solve_vrp tool needs a structured JSON input schema covering that construction surface instead of a problem_path string — real design work, not just plumbing.

What's already reusable

RoutingClient (merged into the same cuopt.grpc.client.grpc_client extension module as Client) has a near-identical shape — submit/status/wait/cancel/result/delete — so the tool-calling pattern this PR established (async submit, _guard-shaped errors, generated settings catalogue) should carry over cleanly once the input schema exists.

Gaps to close

  • Design a JSON Schema for VRP problem construction (fleet, tasks, time windows, matrices, etc.) to replace problem_path.
  • cpp/src/grpc/codegen/field_registry.yaml only has pdlp_settings/mip_settings — no routing settings section, so cuopt_list_settings-style generated discovery doesn't cover routing yet. Extending codegen to routing settings (or hand-writing a schema, which the existing settings catalogue deliberately avoids) is its own piece of work.
  • New tools: cuopt_solve_vrp, plus routing-appropriate cuopt_result shaping (route sequences/vehicle assignments look nothing like an LP variable vector).

Scoped as a follow-up to #1916, not part of it.

主要言語
Cuda
スター
1.1k
フォーク
255
平均マージ
1日 11時間
マージ済み PR(30日)
123

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA/cuopt のほかの issue

NVIDIA/cuopt の issue をすべて見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。