首页>软件资讯>常见问题

常见问题

CVXPY求解器介绍Gurobi

发布时间:2025-12-25 08:05:48人气:3

一、Gurobi 是什么?

Gurobi 是目前工业界与学术界最顶级的商业优化求解器之一,核心特点可以概括为:


极快 + 极稳 + 极准


在 CVXPY 中,Gurobi 主要用于求解:


线性规划(LP)


二次规划(QP)


混合整数规划(MILP)


混合整数二次规划(MIQP)


部分二阶锥问题(有限支持)



二、Gurobi 在 CVXPY 中的“定位”

如果你的模型是 LP / QP / MIP,并且你追求“速度 + 全局最优 + 高精度”,那 Gurobi 是天花板。


求解器对比:

求解器对比.png

三、Gurobi 能解什么类型的问题?

四、Gurobi 的核心算法思想

1️⃣ 对连续问题:内点法 + 单纯形法

Primal Simplex


Dual Simplex


Barrier Method(内点法)


Gurobi 会:自动选择最合适的算法,你不用指定。


2️⃣ 对整数问题:分支定界(Branch & Bound)

核心逻辑:

先忽略整数约束(松弛问题)


解连续问题


若变量非整数 → 分支


剪枝(cutting planes)


搜索全局最优


Gurobi 的强项在于:


剪枝极强


启发式极多


并行能力一流


五、 CVXPY 中求解整数问题推荐使用 Gurobi

Gurobi.png

GLPK_MI 可以求解教学中问题、小规模问题,复杂问题、工业中的实际问题推荐使用Gurobi 。


六、 CVXPY + Gurobi 的一个整数规划案例

整数规划案例.png

#author: chengd

import cvxpy as cp


x = cp.Variable(2, integer=True)


objective = cp.Maximize(x[0] + x[1])

constraints = [

    2*x[0] + x[1] <= 4,

    x >= 0

]


prob = cp.Problem(objective, constraints)

prob.solve(solver=cp.GUROBI)


print("最优解 x =", x.value)

print("最优目标值 =", prob.value)



上一条:gurobi怎么样

下一条:gurobi是什么软件