我在R中使用Rsymphony
包作为混合整数程序。我希望能够迭代地放松我的一个约束,直到问题变得可行。为此,我希望能够:
通过Rsymphony_solve_LP
如果Rsymphony_solve_LP
返回一个可行的解决方案(或者声明 是一个可行的解决方案)那么我会终止求解,用更严格的约束重建我的约束矩阵,然后通过Rsymphony_solve_LP
如果Rsymphony_solve_LP
说问题不可行,我会回溯到最后一个可行的约束矩阵并从那里解决。
有关如何执行此操作的任何提示/技巧,而不仅仅是手动观察具有详细程度的解算器?
答案 0 :(得分:0)
另一块板上的海报给出了一个很好的方法。我重新制定了MILP,以便我想要迭代的约束,乘以'调整参数'连续决策变量。我将与该决策变量相关联的惩罚项放入目标函数中,以尽可能少地放宽约束。效果应该是约束足够放松以使其可行,但不能超越。