GRBCallback: addLazy ()


GRBCallback: addLazy ()

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

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

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

你的回调应该准备好切断任何违反惰性约束的解决方案,包括那些已经添加的。节点解决方案通常会考虑前面添加的惰性约束,但并非总是如此。

注意,必须设置LazyConstraints参数,以便使用惰性约束。

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

    lhsExpr:新延迟约束的左边表达式。

    感觉:新延迟约束的意义(GRB_LESS_EQUALGRB_EQUAL,或GRB_GREATER_EQUAL).

    rhsVal:新延迟约束的右边值。

无效 addLazy GRBTempConstr& tc)

    参数:

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