SuperAPI AI 工具集

cuopt-lp-milp-api-c

编程与开发

查看项目

更新于 10-16 07:24

技能介绍

用途:在 C/C++ 项目中通过 cuOpt 的 C API 求解 LP 与 MILP,适合需要将求解能力嵌入原生应用的场景。编码前应先确认问题类型与建模要素,包括变量、目标、约束与变量类型。

主要能力:提供创建问题与求解接口。约束使用 CSR 格式,通过 row_offsets、col_indices、values 描述稀疏矩阵;变量类型用 CUOPT_CONTINUOUS、CUOPT_INTEGER 标注。示例调用包括 cuOptCreateRangedProblem 创建含上下界的问题、cuOptSolve 求解、cuOptGetObjectiveValue 获取目标值。可从 MPS 文件读取问题(cuOptReadProblem)。示例目录涵盖基础 LP、对偶值与 reduced costs、PDLP warmstart、基础 MILP、含资源约束的生产计划,以及从 MPS 文件求解。

使用方式:包含头文件 #include <cuopt/linear_programming/cuopt_c.h>,按 CSR 组织约束数据,设定目标方向(如 CUOPT_MINIMIZE)与各变量上下界及类型,创建问题后调用求解并读取结果。各参考示例的构建命令见其 README。若使用命令行处理 MPS 文件,改用 cuopt_cli 及产品文档。

限制与排查:本技能仅限 C API。目标若含平方项或交叉项则属二次问题,应改用 QP。遇到内存不足或求解缓慢时,检查变量与约束规模、使用稀疏矩阵、设置时间上限与 gap 容差。MPS 解析需按 NAME、ROWS、COLUMNS、RHS、(可选)BOUNDS、ENDATA 顺序,整数标记为 'MARKER'、'INTORG'、'INTEND'。贡献或从源码构建请参阅产品或仓库文档。其他细节暂未提供。