cplex 的最优解和 cplex 的最优解有什么区别?

问题描述

cplex 的最优解和 cplex 的最优解有什么区别? 1、当我用CPLEX求解器求解一个整数规划模型时,有些实例的结果状态显示为“optimal”,但有些实例的结果状态显示为“optimalTol”。我想知道cplex的最优解和cplex的最优解的区别? 2、我的整数规划模型是最小化目标。当我用CPLEX求解器求解整数规划模型时,结果状态为“optimalTol”,模型的目标值为1000。当我为求解器添加 cplex.setParam(IloCplex::EpGap,0.0) 时。然后再次使用 CPLEX 求解器求解模型。我想知道目标函数的值会变大还是变小?

解决方法

这与任何 MIP 求解器相关。

求解器可能因不同原因停止:

  • 时间限制或其他一些限制(迭代、节点限制等)
  • 已满足间隙容差
  • 事实证明该解决方案是最佳的

默认间隙容差不是零,而是类似于 1e-4(相对间隙)和 1e-6(绝对间隙)。这意味着 Cplex 可以停止,但不能 100% 确定没有更好的解决方案。然而,差距容差将限制解决方案可以有多好。例如。如果相对间隙容差为 1%,而绝对间隙容差为 0,则最佳可能解决方案的距离不能超过 1%。如果您将两者都设置为零,Cplex 将需要更多时间,但始终会提供 OPTIMAL(除非您达到限制)。如果您允许一个小的间隙,Cplex 很可能会返回 OPTIMAL_TOL(我们停止是因为我们达到了间隙公差)但在某些情况下可以确定没有更好的解决方案,在这种情况下它会返回 OPTIMAL。对于大型、实用的模型,我们通常对比最好的 5% 更好的解决方案感到满意。