GRBCallback: addCut ()


GRBCallback: addCut ()

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

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

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

当添加你自己的切割时,你必须设置参数PreCrush值1。这种设置关闭了一些预先解决的削减,这些削减有时会阻止原始模型上的削减被应用到预先解决的模型。

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

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

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

    感觉:新切割平面的感觉(GRB_LESS_EQUALGRB_EQUAL,或GRB_GREATER_EQUAL).

    rhsVal:右侧值为新切割平面。

无效 addCut GRBTempConstr& tc)

    参数:

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