高效的免费/开源SOCP(二阶锥编程)求解器

ARF*_*ARF 5 convex-optimization

我正在寻找有关评估速度的二阶锥规划求解器的推荐(或比较)。求解器必须免费供非营利使用或开源。

我对环境相当开放:独立的解决方案,库,Matlab,Python,R等都是可以接受的。

我的问题在约束方面有很大的稀疏性,我相信好的求解者可以利用这些约束来加快计算速度。

den*_*nis 5

您可能知道,cvxpy使用 cvxopt 或ecos作为求解器。
我只使用了一点点 ecos,用于 LP 而不是 cones(在一个测试用例上比 cvxopt 快 3 倍)。
它大约有 5k 行 c + python 包装器,可以做所有事情!采用 scipy.sparse.csc 格式;也许值得一瞧。


小智 4

您可能想看看维护的基准

http://plato.la.asu.edu/bench.html

在那里您可以找到各种规模的 SOCP 和 QP 测试。大多数求解器都会为您提供多个接口,这没有问题。有关求解器列表,请参见此处

http://en.wikipedia.org/wiki/Second-order_cone_programming

我不确定它是否完整,但您可以从这里开始。

根据我的经验,对于大型问题,商业求解器(如 MOSEK 和 CPLEX)将提供更好的性能和稳定性,当然,正如您可能想象的那样,我有偏见,因为我的用户名。

请记住,当今大多数商业供应商都可以为您提供学术许可证或试用许可证。这可以方便地进行测试和比较。

在我看来,您可以考虑让用户选择使用哪个求解器。这需要做更多的工作,但它为您和用户提供了更多的灵活性。你可以在这里汲取一些灵感

Ipopt - COIN-OR 项目:Cbc:

我建议您使用商业求解器来提出一个好的公式,这样的求解器可以按照您想要的速度求解。这就是与其他人进行比较的基础。如果您遇到一些需要帮助的大型问题,您可以通过 mosek.com 联系我们。

cbc: https: //projects.coin-or.org/Cbc ipopt: https: //projects.coin-or.org/Ipopt