使用什么稀疏线性规划求解器更好?

计算科学 线性代数 稀疏矩阵 迭代法 线性规划
2021-12-08 19:57:44

我有以下 LP 问题:

minε,x1,,xnf(ε,x1,,xn)=εs.t.Cx0,xi0εxixi0+ε

其中Cm×n矩阵,xx0是维度为n的向量。

C是一个非常稀疏的矩阵,它的每一行只包含4个非零值。

典型情况是m=15000n=5000

任何人都可以建议任何可以为这个问题提供最佳性能的 LP 求解器吗?

2个回答

性能最好的求解器可能是 Gurobi 或 CPLEX;最后我检查了一下,Gurobi 稍微快一些,但两者都具有竞争力。这两个商业求解器比最好的开源求解器快大约十倍。

也就是说,正如 AC_MOSEK 指出的那样,您的问题足够小,基本上任何基于稀疏数据结构(即大多数)的功能性 LP 求解器都可以工作。如果可以,我建议不要将您的实现锁定在特定的求解器中,而是在 GAMS 或 AMPL 等优化框架中实现您的问题,或使用 PuLP 或 Coopr 等特定于 LP 的建模框架。这些框架旨在使您可以轻松地以独立于求解器、类似数学的格式输入问题,因此您可以快速尝试不同的公式和求解器。然后,在确定最适合您的公式和求解器组合后,您可以使用较低级别的语言实现它,以加快该公式和特定求解器的速度。

您的问题似乎相当简单,我想说任何合理的 LP 求解器都应该在几秒钟内解决它。因此,它可能更多是与 API、价格、许可相关的选择。尝试商业模式中的 MOSEK、CPLEX 或 GUROBI,或硬币或项目中的 CLP。你可以在维基百科上找到一个列表

http://en.wikipedia.org/wiki/Linear_programming