用途:在 Python 中使用 cuOpt 的二次规划(QP)API 构建并求解优化问题。该技能仅支持 Python,QP 功能处于 beta 阶段。使用前需确认目标函数含平方项或交叉项(即 QP);若为纯线性问题,应改用 LP/MILP。
主要能力与限制:QP 只支持最小化。最大化需将目标取负后按最小化求解。变量可为连续类型,示例使用 Problem、CONTINUOUS、MINIMIZE 与 SolverSettings 等接口,通过 addVariable、setObjective、addConstraint、solve 构建模型。
必要用法: from cuopt.linear_programming.problem import Problem, CONTINUOUS, MINIMIZE from cuopt.linear_programming.solver_settings import SolverSettings
problem = Problem("Portfolio") x1 = problem.addVariable(lb=0, ub=1, vtype=CONTINUOUS, name="stock_a") problem.setObjective(0.04x1x1 + ..., sense=MINIMIZE) problem.addConstraint(x1 + x2 + x3 == 1, name="budget") problem.solve(SolverSettings())
状态判断使用 PascalCase,例如 problem.Status.name 为 "Optimal" 或 "PrimalFeasible" 时读取 problem.ObjValue。调试时可打印实际状态;遇到数值问题需检查 Q 是否为半正定(PSD)并缩放变量。
示例与参考:资料提及 examples.md 含投资组合、最小二乘、最大化变通写法;assets/ 含 portfolio、least_squares、maximization_workaround 等参考模型及 assets/README.md。若问题为线性,应转向 LP/MILP;贡献或源码构建参见开发者技能。具体安装命令、收费与价格资料暂未提供。