GRBCallback.addLazy ()
GRBCallback.addLazy ()
从回调函数中向MIP模型添加一个延迟约束。请注意,此方法只能在在哪里
成员变量等于伽马射线爆发。CB_MIPNODE
或伽马射线爆发。CB_MIPSOL
(见回调代码更多信息请参阅参考手册中的章节)。
当MIP模型的全部约束太大而无法显式表示时,通常会使用延迟约束。通过只包含分支和分割搜索中发现的解实际上违反的约束,有时只添加全部约束的一小部分,就可能找到已证明的最优解。
您通常会通过首先查询当前节点解决方案(通过调用getSolution从一个伽马射线爆发。CB_MIPSOL
回调,或者getNodeRel从一个伽马射线爆发。CB_MIPNODE
回呼),然后再呼叫addLazy ()
添加一个约束来切断解决方案。古罗比保证,您将有机会切断任何其他情况下被认为可行的解决方案。
你的回调函数应该准备好切断违反任何懒惰约束的解决方案,包括那些已经添加的约束。节点解决方案通常会尊重之前添加的延迟约束,但并非总是如此。
请注意,必须设置LazyConstraints参数,如果要使用延迟约束。
无效 | addLazy( | GRBLinExpr | lhsExpr, |
字符 | 意义上说, | ||
双 | rhs) |
-
参数:
lhsExpr: new lazy constraint的左侧表达式。
感觉:表示新的惰性约束(伽马射线爆发。LESS_EQUAL,伽马射线爆发。平等的,或伽马射线爆发。GREATER_EQUAL).
园艺学会:新lazy约束的右边值。