SuperAPI AI 工具集

python-optimization

编程与开发

查看项目

更新于 10-15 23:33

技能介绍

用途:把数学优化问题从建模转化为可运行的 Python 代码,覆盖线性规划、非线性规划、混合整数与全局优化等类型,并指导库与求解器选择及收敛问题排查。

主要能力:提供问题分析框架,先提取目标函数、决策变量、约束与参数,再按 LP、QP、NLP、MIP、凸优化、全局优化、最小二乘、动态优化等分类,并按变量规模(<100、100-1000、>1000)与导数、稀疏性等特征给出建议。库选择上:scipy.optimize 适合中小规模、无约束或光滑约束 NLP、最小二乘与快速原型;pyomo 适合大规模与混合整数、需多求解器后端;cvxpy 适合凸问题并可自动验证凸性;GEKKO 适合含微分方程的动态优化与无导数黑箱问题。还给出 scipy 方法选择(BFGS、L-BFGS-B、Nelder-Mead、Powell、SLSQP、trust-constr、COBYLA)及专用函数(least_squares、curve_fit、differential_evolution、linprog)的适用场景,并附实现模式示例。

使用方式:按资料中的模式调用,例如 minimize(f, x0, method='BFGS', jac=gradient)、minimize(f, x0, method='SLSQP', constraints=cons)、least_squares(residual, x0, bounds=bounds)、linprog(c, A_ub, b_ub, method='highs')、differential_evolution(f, bounds)、pyomo 的 SolverFactory('ipopt')、cvxpy 的 problem.solve()。

适用场景:目标最小化/最大化、参数估计与曲线拟合、投资组合与资源分配、生产计划排程、工程设计优化、控制与动态优化、约束或无约束问题、库选型。

限制:简单求根应使用 scipy.optimize.root,纯线性代数用 numpy/scipy.linalg,符号计算用 sympy;pyomo 多数问题类型需外部求解器且安装较复杂;cvxpy 仅限凸问题;GEKKO 需 GEKKO 服务器;Nelder-Mead、COBYLA 等无导数方法收敛慢;differential_evolution 慢且必须指定边界。资料未提供具体收费、价格与平台信息。