Линейное программирование с горячим стартом в Python?

Я работаю над линейной программой среднего размера (матрица разреженных ограничений 70 x 10000) и мне нужно запустить большое количество сценариев, требующих ~ 2000 ЦП-часов в мое текущее время решения. Поскольку изменения относительно незначительны (изменение не более ~10% целевой функции, то есть матрицы c), использование теплого старта может значительно ускорить время решения, но я не смог найти быстрый решатель LP с теплым стартом в Python.

Я работал на сегодняшний день с linprog в Matlab и CVXOPT lp решатель в Python, с лучшей производительностью, используя симплексный решатель GLPK в CVXOPT. Тем не менее, оболочка CXVOPT для GLPK не обеспечивает теплый запуск, даже если с помощью GLPK возможен теплый запуск. Пока CVXOPT поддерживает теплый старт на родном языке conelp решатель, это значительно медленнее, чем холодный старт в GLPK. Мне не удалось найти варианты горячего запуска в PuLP или другие ссылки на теплый запуск в модулях Python.

У кого-нибудь есть опыт адаптации / исправления CVXOPT для "горячего старта" с GLPK, или можете показать, как сделать "теплый старт" в других пакетах оптимизации Python?

Подобные вопросы задавались здесь и здесь, но не достаточно подробно, чтобы дать полезные ответы.

0 ответов

Другие вопросы по тегам