SuperAPI AI 工具集

cuopt-numerical-optimization-api-c

数据与分析

查看项目

更新于 10-16 03:49

技能介绍

用途:通过 cuOpt 的 C API 求解线性规划(LP)、混合整数线性规划(MILP)以及二次规划(QP,测试版)。仅限 C,适合在 C/C++ 项目中嵌入优化求解。

主要能力:LP、MILP 与 QP 共用同一库、头文件、构建方式与核心调用。LP/MILP 的有序入口为 cuOptCreateRangedProblem(目标方向 CUOPT_MINIMIZE/CUOPT_MAXIMIZE,约束矩阵以 CSR 的 row_offsets/col_indices/values 给出,变量类型用 CUOPT_CONTINUOUS/CUOPT_INTEGER 字符数组)→ cuOptSolve(problem, settings, &solution) → cuOptGetObjectiveValue(solution, &obj_value) → 对应的 cuOptDestroy* 调用,需包含 <cuopt/linear_programming/cuopt_c.h>。QP 仅问题创建调用不同,接受二次目标。

QP 规则:仅支持最小化(CUOPT_MINIMIZE),最大化需对目标系数和 Q 条目取负;仅支持连续变量(全部设为 CUOPT_CONTINUOUS),不支持整数 QP;为凸问题需 Q 半正定。

对偶值:cuOptGetDualSolution 与 cuOptGetReducedCosts 对 LP 和 QP 返回对偶值与缩减成本;若含二次约束则不返回(数组填 NaN),仅当约束全为线性时读取。

调试:MPS 解析要求分区按 NAME、ROWS、COLUMNS、RHS、(可选)BOUNDS、ENDATA 顺序,整数标记为 'MARKER'、'INTORG'、'INTEND'。内存不足或缓慢时检查问题规模、使用稀疏矩阵、设置时间限制与间隙容差。

示例:examples.md 提供 LP/MILP 构建说明;assets/README.md 列出参考代码构建命令,包括 lp_basic、lp_duals、lp_warmstart、milp_basic、milp_production_planning、mps_solver(经 cuOptReadProblem 从 MPS 文件求解)。CLI 处理 MPS 文件可用 cuopt_cli。

限制:该技能仅限 C;编码前需先确认问题类型与建模;贡献或源码构建请参阅产品/仓库文档。其他收费、价格、平台等信息暂未提供。