我正在用C++編寫代碼並調用CPLEX來解決它。它很快找到了一個很好的解決方案,但需要很長時間才能改進。所以我想間隙設置爲一個較大的值,終止代碼,這是我使用:如何在用cplex解決問題時設置空隙
cplex_model.setParam(EpGap, 0.01);
但是,編譯器給了我一個錯誤說EpGap
是一個未聲明的標識符。相對差距的默認名稱是什麼?
我正在用C++編寫代碼並調用CPLEX來解決它。它很快找到了一個很好的解決方案,但需要很長時間才能改進。所以我想間隙設置爲一個較大的值,終止代碼,這是我使用:如何在用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%!
這消除了錯誤,但代碼仍然運行,即使它小於我的gam!我設置它cplex_model.setParam(IloCplex :: EpGap,1);但現在雖然差距爲0.46%,但它仍在運行! – Anna 2012-03-05 20:22:20