Линейное программирование с горячим стартом в 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?
Подобные вопросы задавались здесь и здесь, но не достаточно подробно, чтобы дать полезные ответы.