GRBCallback: addLazy ()


GRBCallback: addLazy ()

从回调函数中向MIP模型添加惰性约束。请注意,此方法只能在在哪里成员变量等于GRB_CB_MIPNODEGRB_CB_MIPSOL(见回调代码部分以获取更多信息)。

当MIP模型的全部约束集太大而无法显式表示时,通常使用惰性约束。通过只包括在分支-切割搜索过程中发现的解实际上违反的约束,有时可以找到一个已证明的最优解,而只添加整个约束集的一小部分。

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

你的回调应该准备切断违反任何懒惰约束的解决方案,包括那些已经添加的。节点解决方案通常会遵守前面添加的惰性约束,但并不总是这样。

注意,您必须设置LazyConstraints参数,如果你想使用延迟约束。

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

    lhsExpr:左侧表达式表示新的惰性约束。

    感觉:对新的惰性约束的感知(GRB_LESS_EQUAL,GRB_EQUAL,或GRB_GREATER_EQUAL).

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

无效 addLazy GRBTempConstr& tc)

    参数:

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