cuOpt 数值优化 API 技能
用 cuOpt 指导 GPU 加速的 LP、MILP 与 QP 建模求解
技能限定为 cuOpt LP/MILP/QP 建模求解,要求接口不明确时先询问,未见凭据读取、数据外传、破坏性默认操作或超范围权限;但未说明敏感数据处理、依赖安全、求解器外部数据流、用户确认、回滚或结果风险控制,因此扣7分。
正文提供接口选择、问题分类、QP限制、常见故障和部分 C 构建示例,异常场景有一定诊断指引;但引用的 Python/C/CLI 参考文件内容未提供,未见针对本技能关键路径的测试,且 QP 的 beta 与“production-capable”表述存在风险,因此受静态上限限制并扣分,得8分。
适用对象和触发条件较清楚,覆盖 Python、C/C++、CLI 以及 LP、MILP、QP,并说明整数 QP 等边界;但非适用范围、输入输出契约、版本兼容性、中文支持和大陆网络可达性未充分说明,核心文档链接依赖 NVIDIA 海外站点,扣5分。
具有版本号、名称、标签、Apache-2.0 技能许可、接口路由、常见问题和 C 资产说明;但缺少推荐的 Instructions 与 Examples 章节,author 不符合规范格式,未提供 changelog、维护责任/更新路径、完整依赖安装说明和可见的 Python/CLI 示例,扣7分。
目标是帮助用户选择接口并完成 LP/MILP/QP 求解,分类规则、求解器设置和 C 示例能提供直接指导;附带 benchmark 报告显示在9个任务上通过且有正确性、发现性和有效性指标,但报告缺少可复核任务输出,且 Python/C/CLI 参考内容未给出,因此无法确认完整、直接可用的结果,按静态上限得6分。
存在版本化源文件、C 示例目录、仓库 CI 以及附带 benchmark 报告,提供了有限审计线索;但本技能没有提交的关键路径测试,benchmark 仅为摘要且无任务明细或独立复现材料,未达到多重可复核证据,扣6分。
- 该评估仅基于静态文件,未执行安装、编译、求解或 benchmark;应在发布前补充并复核 Python/C/CLI 参考文件和关键路径测试。
- QP 标注为 beta,但正文又称其对典型凸 QP 可用于生产;应明确版本兼容性、稳定性和适用限制。
- 使用前需确认 NVIDIA cuOpt、GPU、库路径及相关文档在目标环境可用;未提供中文说明或大陆网络可达性保证。
- 求解结果可能受不可行、无界、数值缩放、时间限制和 MIP gap 影响,不能将技能提示替代独立的模型与结果验证。
这个 Skill 能做什么,适合哪些场景?
该技能帮助 AI 代理使用 NVIDIA cuOpt 解决线性规划(LP)、混合整数线性规划(MILP)和测试版二次规划(QP)。它根据用户使用的接口,在 Python、C/C++ 与命令行参考之间进行选择,并帮助判断问题类型及变量应为整数还是连续变量。技能还说明了 cuOpt 作为 AMPL、GAMS/GAMSPy、PuLP、JuMP、Pyomo 和 CVXPY 后端的使用方式。技能版本为 26.08.00,由 NVIDIA cuOpt Team 发布,技能许可证为 Apache-2.0。
根据用户的建模接口选择 Python、C/C++ 或 CLI 参考;依据目标函数和变量类型区分 LP、MILP 与 QP;根据“数量”“是否开启”“比例”等表述建议整数、二元或连续变量;说明 QP 的最小化、连续变量和半正定 Q 矩阵限制;解释 LP、QP 与 MILP 的对偶值、约化成本和 PDLP warmstart 可用性;针对不可行、无界、求解缓慢、QP 目标方向或数值缩放问题提供排查建议;介绍 time_limit、mip_relative_gap、mip_absolute_tolerance 和 log_to_console 等设置。
- 正在编写 Python 优化程序、需要用 cuOpt 建立并求解 LP 或 MILP 的开发者。
- 需要把 cuOpt 嵌入 C/C++ 应用,并希望先按接口获取相关指导的工程师。
- 已有 MPS 文件、希望通过命令行运行 cuOpt 求解器的用户。
- 已有 AMPL、GAMS/GAMSPy、PuLP、JuMP、Pyomo 或 CVXPY 模型,希望将 cuOpt 作为后端而不是重写模型的用户。
- 正在处理投资组合方差、最小二乘或正则化回归等连续二次目标,并需要确认 QP 约束的用户。
这个 Skill 有哪些优点和局限?
- 覆盖 LP、MILP 和测试版 QP,并提供问题分类和变量类型判断规则。
- 同时面向 Python、C/C++ 和 CLI 接口。
- 涵盖常见不可行、无界、性能和 QP 数值问题的排查方向。
- 可指导将 cuOpt 接入多个第三方建模语言。
- QP 标注为 beta,仅支持最小化和连续变量,且要求 Q 矩阵为正半定以获得凸、良定义问题。
- MILP 不提供对偶值;含二次约束时,即使是 LP/QP,对偶值也不可用。
- 仅明确说明指导和参考路径,提供的材料未包含具体 API 代码、cuOpt 安装流程或测试结果。
- CLI 场景依赖 MPS 文件,但来源未说明 MPS 文件的生成方法。
如何安装这个 Skill?
使用 NVIDIA/skills 集合中的 skills CLI 安装:
npx skills add nvidia/skills --skill cuopt-numerical-optimization-api --yes
也可以指定目标代理,例如 Codex:
npx skills add nvidia/skills --skill cuopt-numerical-optimization-api --agent codex
来源没有说明 cuOpt 本身的安装步骤、版本要求或硬件要求。
如何使用这个 Skill?
安装后,在相关任务中明确提出接口和问题,例如:“使用 cuOpt Python API 建立并求解一个包含整数变量的生产计划 MILP。” 如果接口尚不明确,技能要求代理先询问用户。若已有 AMPL、GAMS/GAMSPy、PuLP、JuMP、Pyomo 或 CVXPY 模型,应优先说明现有建模语言,以便将 cuOpt 作为求解器后端。
这个 Skill 与同类方案有什么区别?
对于已经使用 AMPL、GAMS/GAMSPy、PuLP、JuMP、Pyomo 或 CVXPY 的用户,来源明确建议把 cuOpt 作为这些建模工具的求解器后端,以减少代码改动;否则可直接选择 cuOpt 的 Python、C/C++ 或 CLI 接口。