我试图让Gurobi在找到最佳解决方案(使用Java接口)后回调。最佳解决方案后Gurobi回调
背景:我正在研究一种方法,它需要(1)找到一个(非常好的)解决方案,然后(2)为该问题添加一个懒惰约束。首先要找到一个好的解决方案,因为确定一个合理的新的懒惰约束条件在我的情况下需要一个好的解决方案。
一般来说,这并不是一个问题,因为古罗比用MIP,MIPSOL等回来;然后,我可以检查当前解决方案的差距,并决定添加下一个懒惰约束。然而,当寻找一个非常好的解决方案时,Gurobi有时会找到一个最佳解决方案(例如在切断节点后)。在这种情况下,没有额外的MIP,MIPSOL或任何其他可用的回调,我可以添加一个额外的惰性约束。
我已经发现使用MIPNODE_STATUS可以识别出截断点。然而,我还没有找到一种方法来检查这种切断是否导致当前的解决方案被证明是最佳的。
有没有人知道识别这种情况,仍然添加一个懒惰的约束?