Как можно справиться с разрывом решающей системы в Юлии? - PullRequest
1 голос
/ 25 октября 2019

мы можем иметь ручной разрыв в CPLEX.

IRP=Model(solver=CplexSolver(CPX_PARAM_EPGAP=0.00000001))

но если мы хотим достичь 0,02% разрыва. это правильно?

IRP=Model(solver=CplexSolver(CPX_PARAM_EPGAP=0.02))

или это правильно?

IRP=Model(solver=CplexSolver(CPX_PARAM_EPGAP=0.0002))

Не могли бы вы мне помочь, что из этого верно? Большое спасибо.

1 Ответ

1 голос
/ 26 октября 2019

В соответствии с описанием на IBM Knowledgecenter for CPLEX , для 0,02% вам нужно ввести 0.0002=0.02*0.01. Поэтому второй является правильным.

IRP=Model(solver=CplexSolver(CPX_PARAM_EPGAP=0.0002))

Когда значение

|bestbound-bestinteger|/(1e-10+|bestinteger|)

падает ниже значения этого параметра, оптимизация смешанного целого числаостановлен.

Например, чтобы дать команду CPLEX остановиться, как только будет найдено допустимое целочисленное решение, которое оказалось в пределах пять процентов от оптимального, установите относительный допуск разрыва MIP равным 0,05 .

...