GRBCallback::addLazy()
GRBCallback::addLazy()
在回调函数中向MIP模型添加延迟约束。请注意,此方法只能在哪里
成员变量等于GRB_CB_MIPNODE或GRB_CB_MIPSOL(见回拨码第节了解更多信息)。
当MIP模型的全套约束太大而无法显式表示时,通常使用惰性约束。通过只包含分支和切割搜索期间发现的解决方案实际违反的约束,有时可以找到经验证的最佳解决方案,同时只添加一部分完整约束集。
您通常会通过首先查询当前节点解决方案(通过调用获取解决方案从GRB_CB_MIPSOL回拨,或格诺德雷从GRB_CB_MIPNODE回调),然后调用addLazy()
添加切断解决方案的约束。古洛比保证,您将有机会切断任何可能的解决方案。
您的回调应该准备好切断违反任何延迟约束的解决方案,包括已经添加的解决方案。节点解决方案通常会考虑以前添加的惰性约束,但并不总是如此。
请注意,您必须设置懒散约束参数,如果要使用惰性约束。
无效的 | 愚蠢的( | 常量GRBLinExpr& | lhsExpr, |
烧焦 | 感觉 | ||
双重的 | rhsVal) |
-
论据:
lhsExpr:新惰性约束的左侧表达式。
感觉:检测新的惰性约束(GRB_小于等于,GRB_相等或GRB_大于等于).
拉斯瓦尔:新惰性约束的右侧值。
无效的 | 愚蠢的( | GRBTempcontr& | (tc) |
论据:
tc:临时约束对象,使用重载比较运算符创建。看见GRBTempcontr了解更多信息。