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