1

Я пишу код в C++ и вызываю CPLEX для его решения. Он быстро находит очень хорошее решение, но очень долго пытается его улучшить. Поэтому я хочу, чтобы установить разрыв до большего значения для завершения кода, и это то, что я использую:Как установить разрыв при решении с помощью cplex

cplex_model.setParam(EpGap, 0.01); 

Но компилятор дает мне ошибку говоря EpGap является необъявленным идентификатором. Каково значение по умолчанию для относительного разрыва?

ответ

4

EpGap является частью перечисления в классе IloCplex

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

Это устранило ошибку, но код продолжает работать даже после того, как он меньше моей игры! Я установил его cplex_model.setParam (IloCplex :: EpGap, 1); но теперь, хотя разрыв составляет 0,46%, он все еще работает! – Anna

-1

cplex_model.setParam(IloCplex::EpGap, 0.01); правильно

Если EpGap составляет 1 (1%) он переходит к следующему возможному решению найдено, что дает двойственность разрыв 1% или меньше, поэтому, когда он будет меньше 1%, он должен остановиться и дать вам это решение. Таким образом, в вашем случае это может идти от разрыва двойственности> 1% до 0,43%!

Смежные вопросы