1

我正在用C++编写代码并调用CPLEX来解决它。它很快找到了一个很好的解决方案,但需要很长时间才能改进。所以我想间隙设置为一个较大的值,终止代码,这是我使用:如何在用cplex解决问题时设置空隙

cplex_model.setParam(EpGap, 0.01); 

但是,编译器给了我一个错误说EpGap是一个未声明的标识符。相对差距的默认名称是什么?

回答

4

EpGap是类内枚举的一部分IloCplex

cplex_model.setParam(IloCplex::EpGap, 0.01); 
+0

这消除了错误,但代码仍然运行,即使它小于我的gam!我设置它cplex_model.setParam(IloCplex :: EpGap,1);但现在虽然差距为0.46%,但它仍在运行! – Anna 2012-03-05 20:22:20

-1

cplex_model.setParam(IloCplex::EpGap, 0.01);是正确

如果EpGap为1(1%)它进行到下一个可行的解决方案发现,给出了一个对偶1%或更少的差距,所以一旦它低于1%,它应该停止并给你解决方案。所以在你的情况下,它可能从二元差距大于1%到0.43%!