GRBCallback.AddCut ()


GRBCallback.AddCut ()

在回调函数中向MIP模型添加一个切割平面。请注意,此方法只能在在哪里成员变量等于GRB.Callback.MIPNODE(见回调代码章节以获取更多信息)。

切割平面可以添加到分支切割树的任何节点上。但是,它们应该有节制地添加,因为它们增加了每个节点求解的松弛模型的大小,并且会显著降低节点处理速度。

切割平面通常用于切断当前的弛豫解决方案。要在当前节点检索松弛解决方案,您应该首先调用GetNodeRel

您应该考虑设置参数PreCrush当加上你自己的切割时值为1。这个设置关闭了一些预解缩减,这有时会阻止你的切割应用到预解模型(这将导致你的切割被无声地忽略)。

注意,通过这种方法添加的切割平面必须是真正的切割平面——它们可以截断连续解,但它们不能截断符合模型原始约束条件的整数解。忽略这个限制将导致不正确的解决方案。

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

    lhsExpr:新切割平面的左侧表达式。

    感觉:新切面的意义(伽马射线爆发。LESS_EQUAL伽马射线爆发。平等的,或伽马射线爆发。GREATER_EQUAL).

    rhsVal:新切面右侧值。

无效 AddConstr GRBTempConstr tempConstr)

    参数:

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