Я хочу рассчитать разрыв относительной оптимальности проблемы MIP, а также хочу прервать запуск в определенное время выполнения. Этот способ:
F(1)
abs(mymodel.objest - mymodel.objval)/max(abs(mymodel.objest),abs(mymodel.objval))
не согласуется с пробелом, который GAMS рассчитывает в журнале. GAMS использует наилучшее целое число, чтобы найти разрыв, не являющийся текущим целевым значением. который правильный? и как сохранить текущее наилучшее целое число в параметре (например, .objval).
и, наконец, вычисление разрыва относительной оптимальности в алгоритме изгибов является правильным?
rgap = (upperBound - lowerBound)/(1 + abs(upperBound));
Что GAMS рассчитывает с помощью решения MIP
MIP Solution: 3334501534.000555 (1625 iterations, 0 nodes)
Final Solve: 56330158.829040 (2561 iterations)
Best possible: 48915652.476336
Absolute gap: 3285585881.524219
Relative gap: 0.985330
F (1) рассчитал разрыв с использованием mymodel.objval (mymodel.objval return Final Solve), поэтому расчетный разрыв составляет% 13, а значение mymodel.objval - 5,633016E + 7 (расчетный разрыв GAMS составляет% 98). поэтому мне нужно сохранить решение MIP в параметре, чтобы экспортировать его в файл Excel.