【问题标题】:How to get multiple optimal solutions for MIP in CPLEX?如何在 CPLEX 中获得 MIP 的多个最优解?
【发布时间】:2017-04-19 23:03:43
【问题描述】:

我使用 CPLEX Python API 构建了一个混合整数 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 个最佳解决方案吗?

【问题讨论】:

  • 这个technote 可能会有所帮助。

标签: python cplex


【解决方案1】:

也许你可以:

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

【讨论】:

    猜你喜欢
    • 2017-02-19
    • 2017-02-11
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    相关资源
    最近更新 更多