我正在JuMP中编写一个MILP并正在实现一个本地分支搜索启发式回调,它在回调中执行第二个优化问题。我希望它只在主优化问题中搜索建议解决方案附近的解决方案。这个主问题也有一个单独的延迟约束例程。
有没有办法从主解算器中提取问题约束?特别是,是否可以获得从主问题生成的惰性约束的副本以用于子问题?
感谢您的帮助。
P.S。我正在使用CPLEX解算器,如果这有任何区别
答案 0 :(得分:1)
原来我之所以挣扎,原因是这不是正确的做法! CPLEX有一些复杂的选项可用于在分支和分支期间生成subMILP。切割过程,同时仍保持原MILP的切割池。
CPLEX实施了本地分支搜索启发式。可以通过将CPX_PARAM_LBHEUR标志设置为1(默认为0)来打开它。
m =模型(求解器= CplexSolver(CPX_PARAM_LBHEUR = 1))
我在CPLEX的ILOG日期发现了一组slides,讨论了本地分支和放松诱导邻域搜索(RINS)搜索启发式(也可通过相应的标记获得)。