SuperAPI AI 工具集

convex-optimization

通用与其它

查看项目

更新于 10-16 03:15

技能介绍

用途:该技能用于处理优化领域中的凸优化问题,给出从判定到求解、验证的决策流程。

主要能力:

  1. 凸性验证:检查目标函数 Hessian 是否半正定、约束集是否为凸集交集,可用 z3_solve.py prove "hessian_psd" 辅助证明。
  2. 问题分类与求解器选择:线性规划用 scipy.optimize.linprog;二次规划用 scipy.optimize.minimize(method='SLSQP');一般凸问题用内点法;半定规划用 CVXPY 配合 SDP 求解器。
  3. 标准形式转换:将最大化取负转为最小化,将 >= 约束取负转为 <= 约束,形式为 minimize f(x) subject to g_i(x) <= 0, h_j(x) = 0。
  4. KKT 条件检查:包括平稳性 grad L = 0、原始可行性、对偶可行性 lambda_i >= 0、互补松弛 lambda_i * g_i(x) = 0,可用 z3_solve.py prove "kkt_conditions" 验证。
  5. 求解与验证:调用 scipy.optimize.minimize(f, x0, constraints=cons),检查约束满足情况,并依据凸性确认解为全局最优。

使用方式:资料给出若干命令示例,例如 uv run python -c "from scipy.optimize import linprog; res = linprog([-1, -2], A_ub=[[1, 1], [2, 1]], b_ub=[4, 5]); print('Optimal:', -res.fun, 'at x=', res.x)"、uv run python -c "from scipy.optimize import minimize; res = minimize(lambda x: (x[0]-1)**2 + (x[1]-2)**2, [0, 0]); print('Minimum at', res.x)" 以及 uv run python -m runtime.harness scripts/z3_solve.py prove "kkt_conditions"。

适用场景:凸优化建模、线性与二次规划、半定规划、KKT 条件推导与验证,以及需要确认全局最优性的问题。

限制:资料未提供安装步骤、依赖版本、性能数据或收费信息;部分内容来自教材摘录,具体实现细节与完整工具文档需参考 .claude/skills/math-mode/SKILL.md。