二次规划(QP)求解器Gurobi基础用法速查表

Gurobi求解二次规划(QP)问题的基础用法速查表:

1. 导入和安装:

  • pip install gurobipy
  • import gurobipy as gp
    from gurobipy import GRB

2. 模型初始化

  • model = gp.Model(name)
    创建新模型,name 为模型名称。

  • model.dispose()
    释放模型资源(内存管理)。

3. 变量定义

  • addVar(lb, ub, vtype, name)
    添加单个变量:

    • lb/ub: 变量上下界(默认 -∞/+∞)。

    • vtype: 变量类型(GRB.CONTINUOUS/GRB.INTEGER/GRB.BINARY)。

    • name: 变量名称。

  • addVars(count, lb, ub, vtype, name_prefix)
    批量添加多个变量(返回 VarList 对象)。

  • model.update()
    强制刷新模型变量和约束(显式应用更改)。

4. 目标函数

  • setObjective(expr, sense)
    设置目标函数:

    • expr: 目标表达式(支持线性、二次项)。

    • sense: 优化方向(GRB.MINIMIZE 或 GRB.MAXIMIZE)。

  • setObjectiveN(expr, index, priority, weight)
    多目标优化中设置第 index 个目标(优先级 priority,权重 weight)。

5. 约束条件

  • addConstr(lhs, sense, rhs, name)
    添加单个约束:

    • lhs ≤/=/≥ rhssense 为 GRB.LESS_EQUAL/GRB.EQUAL/GRB.GREATER_EQUAL)。

    • 示例:model.addConstr(x + 2*y <= 10, "c1")

  • addConstrs(generator)
    批量添加约束(通过生成器表达式)。
    示例:model.addConstrs(x[i] <= 5 for i in range(3))

  • addQConstr(quad_expr, sense, rhs, name)
    添加二次约束(非凸问题需设置 NonConvex=2)。

6. 求解控制

  • optimize()
    启动求解过程。

  • optimize(callback)
    带回调函数的求解(自定义中断逻辑)。

  • reset()
    重置模型状态(清除求解结果)。

  • terminate()
    强制终止求解。

7. 参数设置

  • model.Params.参数名 = 值
    设置求解器参数(常用参数):

    • TimeLimit: 最大运行时间(秒)。

    • OutputFlag: 控制日志输出(0 关闭,1 开启)。

    • NonConvex: 处理非凸 QP(2 允许非凸)。

    • Threads: 并行线程数。

8. 结果获取

  • model.status
    获取求解状态(GRB.OPTIMAL/GRB.INFEASIBLE/GRB.UNBOUNDED 等)。

  • var.X
    获取变量值(如 x.X)。

  • model.ObjVal
    获取目标函数值。

  • model.getVars()
    返回所有变量的列表。

  • model.getConstrs()
    返回所有约束的列表。

特别声明:当且仅当技术类文章可转载,转载时请标明出处和作者哟~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇