如何在CPLEX中获得MIP的多个最佳解决方案?

时间:2017-04-19 23:03:43

标签: python cplex

我使用CPLEX Python API构建了一个Mixed Integer LP,并使用MATLAB构建了一个强力检查程序(它解决了LP)。我发现,对于我创建的特定随机示例,强力检查找到2个最优解,即相同的目标值。我们称它们为A和B.但是,CPLEX只能找到其中一个,例如A.

所以我尝试为这些参数设置不同的值:

model.parameters.mip.pool.capacity
model.parameters.mip.pool.intensity
model.parameters.mip.limits.populate
model.parameters.mip.pool.absgap
model.parameters.mip.pool.replace

最后调用model.populate_solution_pool()。这给了我解决方案B,但它没有找到A.还有其他方法可以找到超过1个最优解决方案吗?

1 个答案:

答案 0 :(得分:0)

也许你可以:

  • 找到一个最佳解决方案
  • 在您的目标函数中添加一个惩罚该解决方案的术语
  • 检查是否存在与先前找到的最佳解决方案的值(容差)匹配的另一个可行解决方案。如果是,请重复。