manbet体育手机客户端


Var

Gurobi变量对象。变量总是与特定的模型相关联。通过向模型添加变量(使用Model.addVar),而不是使用Var构造函数。

变量对象有许多属性。完整的名单可在属性本文档的一部分。有些变量属性只能查询,有些可以设置。回想一下,Gurobi优化器使用了惰性更新方法,因此对属性的更改直到下一次调用时才生效Model.updateModel.optimize,或Model.write在相关模型上。

我们应该指出一些关于变量属性的事情。考虑到属性。可以通过以下方式查询var.lb.Gurobi库忽略了属性名称中的字母大小写,因此也可以将其查询为var.LB.它可以使用标准赋值语句来设置(例如,var.lb = 0).但是,正如前面提到的,属性修改是以惰性方式完成的,因此您不会立即看到更改的效果。并且一些属性不能被设置(例如x属性),因此尝试给它们赋新值将引发异常。

你也可以使用Var.getAttr/Var.setAttr访问属性。属性名可以作为字符串传递给这些例程,也可以使用伽马射线爆发。Attr类(例如,GRB.Attr.LB).

要使用变量对象构建表达式,通常使用操作符重载。你可以任意构建线性二次表达式:

expr2 = x * x + 2 * x * y + 3 * z + 4.0
第一个表达式是线性的,第二个是二次的。然后通常将表达式传递给setObjective(设定优化目标)或addConstr(添加约束)。



部分