var.


var.

Gurobi变量对象。变量始终与特定模型相关联。通过将变量添加到模型来创建变量对象(使用model.addvar.),而不是通过使用avar.构造函数。

变量对象具有许多属性。全部列表可以在其中找到属性本文件的一部分。只能查询某些变量属性,而其他可变属性也可以设置。回想一下,Gurobi Optimizer采用懒惰的更新方法,因此对属性的更改不会生效,直到下次调用model.update.Model.Optimize., 或者模型.Write.在相关模型上。

我们应该指出一些关于变量属性的事情。考虑到这一点属性。它的价值可以使用var.lb.。Gurobi库以属性名称忽略字母案例,因此也可以查询它var.lb.。它可以使用标准分配语句(例如,var.lb = 0.)。但是,如前所述,属性修改以懒惰的方式完成,因此您不会立即看到变化的效果。并且无法设置某些属性(例如,X属性),因此尝试为它们分配新值将引发异常。

你也可以使用var.getattr./var.setattr.访问属性。属性名称可以作为字符串传递给这些例程,或者您可以使用所定义的常量grb.attr.班级(例如,grb.attr.lb.)。

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

expr1 = x + 2 * y + 3 * z + 4.0 expr2 = x * x + 2 * x * y + 3 * z + 4.0
第一表达式是线性的,而第二个表达式是二次的。然后通常传递表达式setobjective.(设置最优化目标)或addconstr.(添加约束)。



小节