GRBCallback.AddLazy ()


GRBCallback.AddLazy ()

从回调函数中向MIP模型添加一个延迟约束。请注意,此方法只能在在哪里成员变量GRB.Callback.MIPNODEGRB.Callback.MIPSOL(见回调代码章节以获取更多信息)。

当MIP模型的全部约束太大而无法显式表示时,通常会使用延迟约束。通过只包含分支和分割搜索中发现的解实际上违反的约束,有时只添加全部约束的一小部分,就可能找到已证明的最优解。

您通常会通过首先查询当前节点解决方案(通过调用GetSolution从一个GRB.Callback.MIPSOL回调,或者GetNodeRel从一个GRB.Callback.MIPNODE回呼),然后再呼叫AddLazy ()添加一个约束来切断解决方案。古罗比保证,您将有机会切断任何其他情况下被认为可行的解决方案。

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

请注意,必须设置LazyConstraints参数,如果要使用延迟约束。

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

    lhsExpr: new lazy constraint的左侧表达式。

    感觉:表示新的惰性约束(伽马射线爆发。LESS_EQUAL伽马射线爆发。平等的,或伽马射线爆发。GREATER_EQUAL).

    rhsVal:新lazy约束的右边值。

无效 AddConstr GRBTempConstr tempConstr)

    参数:

    tempConstr:由重载比较运算符创建的临时约束对象。