属性示例


属性示例

Gurobi属性处理旨在是正交的,这意味着您只需要使用少量例程来使用大量属性。特别是:

  • 虽然每种语言需要一些装饰,但各种Gurobi属性的名称和含义仍然是恒定的。
  • 鉴于您希望使用它的属性(Double,Integer等)的类型和您要使用的编程语言,您只需以该语言识别该属性类型的适当例程,以便查询或修改该属性。

考虑这一点属性,捕获变量的下限。您将引用此属性,如不同的Gurobi API中的下面:

属性
C grb_dbl_attr_lb.
C ++ grb_doubleattr_lb.
java. grb.doubleattra.lb.
。网 grb.doubleattra.lb., 要不就var.lb.
Python grb.attr.lb., 要不就var.lb.

要查询不同API中单个变量的本属性的值,您将执行以下操作:

属性查询示例
C grbgetdblattreLement.(模型,grb_dbl_attr_lb,var_index和值);
C ++ var.get.(grb_doubleattr_lb)
java. var.get.(grb.doubleattra.lb)
。网 var.get.(grb.doubleattra.lb), 要不就var.lb.
Python var.getattr.(grb.attr.lb), 要不就var.lb.

我们的API还包括用于立即查询多个变量或约束的属性值的例程,这更有效。

属性称为使用一组枚举C ++,Java和.NET中的类型(用于双值属性的一个枚举,一个用于INT值属性等)。在C和Python中,上面列出的名称只是占用字符串值的常量。例如,grb_dbl_attr_lb.在C层中定义为:

#define grb_dbl_attr_lb“lb”
在C和Python中,您可以选择在调用属性方法时直接使用字符串。如果您希望这样做,请注意,忽略字符案例和下划线。因此,min_coeff.Mincoeff.是等同的。

关于属性修改的一个重要点是它在a中完成懒惰的时尚。修改实际上不会影响模型,直到下一个请求更新或优化模型(grbupdatemodel.或者grboptimize.在c)中。

有关如何查询或修改我们各种API的更详细示例,请参阅以下部分:

你也可以浏览我们的例子为了获得更好的方式使用我们的属性界面。



小节