Lyn*_*ite 6 mathematical-optimization julia coin-or-cbc julia-jump mixed-integer-programming
我有一个混合整数规划问题.我可以使用JuMP找到最佳解决方案.但我怎样才能找到第二个最佳解决方案?或者第三好等
这可能是另一个同样最优的解决方案,或者它可能是更糟糕的解决方案,或者可能是:Infeasible- 可能没有大多数解决方案.
我知道对于类似TSP的问题,我可以通过逐步删除最佳路径上的链接来找到其他解决方案(即将某些城市之间的距离设置为无限).对于调度类型问题,我可以类似地逐步设置禁止在最佳路径中使用的时隙的可用性.
但有没有一种通用的方法来做到这一点,而没有编写自己的问题特定的方法来禁止这个解决方案?
Erw*_*gen 10
您可以添加剪切以禁止找到最佳解决方案并再次解决.假设您的模型有二进制变量 x(i).让我们a(i):=x*(i)先前找到最佳解决方案.然后添加线性约束:
sum(i, x(i) * a(i)) - sum(i, x(i) * (1-a(i))) <= sum(i, a(i)) - 1
Run Code Online (Sandbox Code Playgroud)
并再次解决.(这件事来自这里).如果x是一般的整数变量,事情会变得更复杂.
像Cplex和Gurobi这样的解决方案也有一个称为解决方案池的东西也可以做到这一点.
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |