我正在开发一个中等大小的线性程序(70k x 10k稀疏约束矩阵)并且需要运行大量场景,在我当前的解决时间需要大约2,000个CPU小时。因为变化相对较小(最多改变目标函数的约10%,即c矩阵),使用热启动可以显着加快求解时间,但我无法找到快速热启动LP求解器蟒。
我一直在使用Matlab中的linprog
和Python中的CVXOPT lp
求解器,使用CVXOPT中的GLPK单纯形求解器获得最佳性能。但是,GLPK does not implement a warm start的CXVOPT包装器,即使是a warm start is possible using GLPK。虽然CVXOPT在其原生conelp
求解器中支持热启动,但这明显慢于GLPK中的冷启动。我无法在PuLP中找到热启动选项或在Python模块中找到热启动的其他参考。
有没有人有经验调整/修补CVXOPT用GLPK做热启动,或者可以在other Python optimization packages中展示如何热启动?