Как получить наилучшее выполнимое решение с GLPK (линейное программирование) при достижении максимального времени - Python Pyomo - PullRequest
0 голосов
/ 30 октября 2019

Я работаю над задачей линейного программирования, где мои переменные решения неотрицательны-действительны, и есть другие двоичные переменные решения, которые я строю, чтобы помочь решить мою проблему (используя формулировку big-M). Моя проблема довольно большая, и для решения GLPK в pyomo требуется некоторое время (8-9 часов), чтобы найти оптимальное решение. Я попытался установить ограничение по времени, и когда решатель превышает ограничение по времени, он завершает поиск.

Можно ли мне найти лучшее из возможных решений, скажем, через 120 минут? И может быть, насколько это далеко от наилучшего решения.

Я новичок в оптимизации и pyomo.

Ниже приведен конечный снимок из файла журнала:

  • 67794: obj = 4.732767276e + 04 inf = 0.000e + 00 (18437)

  • 67891: obj = 4.732864652e + 04 inf = 0.000e + 00 (18392)

  • 67988: obj = 4.734846662e + 04 inf = 0.000e + 00(18349)

Устранение возмущения LP [68078] ...

  • 68078: obj = 4.734846662e + 04 inf = 0.000e + 00 (18285)

ПРЕДЕЛ ВРЕМЕНИ ПРЕВЫШАЕТСЯ;ПОИСК ЗАВЕРШЕН

Используемое время: 7220,1 с *

Использовано памяти: 3983,6 МБ (4177060899 байт)

Запись MIP-решения в '..... \ Temp \ tmp4kp6gss9.glpk.raw '...

2590516 строк написано

...