GRBCallback: addLazy ()

添加一个懒惰MIP模型约束在一个回调函数。注意,这个方法只能当调用在哪里成员变量等于GRB_CB_MIPNODEGRB_CB_MIPSOL(见回调代码部分获取更多信息)。

懒惰的约束时通常使用约束的全套MIP模型太大代表明确。只包括约束实际上是由解决方案中发现违反branch-and-cut搜索,有时候可能会找到一个证明最优解只有添加约束的全套的一小部分。

你通常会添加一个懒惰约束首先查询当前节点的解决方案(通过调用getSolution从一个GRB_CB_MIPSOL回调,或者getNodeRel从一个GRB_CB_MIPNODE回调),然后调用addLazy ()添加一个约束,切断了解决方案。Gurobi保证你将有机会切断任何解决方案,否则被认为是可行的。

你的回调应该准备切断你的懒惰约束违反任何的解决方案,包括那些已经补充道。节点的解决方案通常会尊重之前添加懒惰的约束,但并非总是如此。

注意,您必须设置LazyConstraints如果你想用懒惰的约束参数。

无效 addLazy( const GRBLinExpr& lhsExpr,
字符 意义上说,
rhsVal)

参数:

lhsExpr:左边为新懒惰的约束表达式。

感觉:对新懒惰的约束(GRB_LESS_EQUAL,GRB_EQUAL,或GRB_GREATER_EQUAL)。

rhsVal:右边价值新懒惰的约束。

无效 addLazy( GRBTempConstr& tc)

参数:

tc:临时约束对象,使用重载比较运算符创建。看到GRBTempConstr为更多的信息。