我正在用 C++ 编写代码并调用 CPLEX 来解决它。它可以快速找到一个非常好的解决方案,但需要很长时间才能尝试改进它。所以我想将间隙设置为更大的值来终止代码,这就是我使用的:
cplex_model.setParam(EpGap, 0.01);
但是编译器给了我一个错误,说EpGap
是一个未声明的标识符。相对间隙的默认名称是什么?
我正在用 C++ 编写代码并调用 CPLEX 来解决它。它可以快速找到一个非常好的解决方案,但需要很长时间才能尝试改进它。所以我想将间隙设置为更大的值来终止代码,这就是我使用的:
cplex_model.setParam(EpGap, 0.01);
但是编译器给了我一个错误,说EpGap
是一个未声明的标识符。相对间隙的默认名称是什么?
EpGap 是 IloCplex 类中枚举的一部分
cplex_model.setParam(IloCplex::EpGap, 0.01);
cplex_model.setParam(IloCplex::EpGap, 0.01);
是正确的
如果EpGap
是 1 (1%),它会转到下一个可行的解决方案,该解决方案提供 1% 或更少的对偶差距,因此一旦它低于 1%,它应该停止并为您提供该解决方案。因此,在您的情况下,它可能会从 > 1% 的对偶差距变为 0.43%!