简单使用 Gurobi:Python API

前言:

  1. CSDN博客和公众号“ManTou馒头”同步发布博文、推文,都是学习交流所得,水平有限~
  2. CSDN交流有延时,通常一两天才能看到粉丝的评论和私信,私信还只能发三条~
  3. 公众号不只是ManTou本人运营,大家关注自己想关注的内容就可以啦~

Gurobi:Python API

小声哔哔:ManTou也是用到才去看的,不足之处大家指正

Gurobi参考手册

Gurobi随软件安装有指导手册,refman和example,文件路径是:Gurobi安装路径\gurobi903\win64\docs。
大家可以参考官方手册使用Gurobi

关键函数使用

  1. Model(name=“”)
  • name是模型的名称, 返回值是一个model对象,初始情况下没有变量和约束条件
  • 调用方式:model1 = Model()
  1. Model.addVar(lb, ub, obj, vtype, name,column)
  • lb是下限,ub是上限,obj是目标的优化系数,vtype是变量类型,name是变量的名称,column是变量参与的约束以及优化系数。
  • 所有的参数都是可选的,不指定就是默认值
  • 变量的类型有GRB.CONTINUOUS, GRB.BINARY, GRB.INTEGER, GRB.SEMICONT, or GRB.SEMIINT
  1. Model.addConstr( lhs, sense=None, rhs=None, name="" )
  • lhs是约束的右侧,rhs是约束的左侧,sense是约束的类型,有(GRB.LESS_EQUAL, GRB.EQUAL, or GRB.GREATER_EQUAL
  • name是约束的名称
  1. Model.addConstrs( generator, name="" )
  • generator是Python表达式。这种表达方式比 2 直观一点,返回值是tupledict类型的
  • 例:model.addConstrs(x[i] + x[j] <= 1 for i in range(5) for j in range(5))
  • 注意:generator表达式只能由一个比较关系。
  1. Model.update()
  • 对修改了的模型进行更新
  1. Model.setObjective(expr, sense)
  • 设置模型的优化函数
  • expr是优化目标表达式,sense是优化类型,优化类型有GRB.MINIMIZE和GRB.MAXIMIZE,如果省略sense可以使用ModelSense函数来指定优化的类型。
  1. Model.write(filename)
  • 将优化模型,解向量,基向量,起始向量或参数设置写入文件,文件的类型有.mps, .rew, .lp .rlp,也可以只保存的模型的一部分,详见refman
  1. Model.getVars()
  • 返回模型中的所有变量

更多复杂的使用方法参考fefman和examples

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值