简单使用 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

猜你喜欢

转载自blog.csdn.net/qq_40678163/article/details/109406991