CVXOPTVS。OpenOpt的


11
  • CVXOPT:http://abel.ee.ucla.edu/cvxopt/index.html
  • OpenOpt:http://openopt.org/Welcome

    1. 他们之间有什么关系?
    2. 它们的优点/缺点分别是什么?

顺便说一句,还有其他值得注意的用于Python / C ++的高质量通用凸优化库吗?

Answers:


11

CVXOPT仅解决(平滑和非平滑)凸问题,从而可以确保以最先进的最坏情况复杂度访问多个第三方凸求解器。您可以设置线性,凸二次曲面,线性半定约束以及许多其他凸类型的约束。

OpenOpt解决一般(平滑和非平滑)非线性程序,包括整数约束问题。与CVXOPT不同,它没有用于解决半定程序的软件。求解器全部由Dmitrey Kroshko亲自编写,并且历史悠久,因此测试可能受到限制。OpenOpt本身不会与一般的第三方求解器进行_not-接口。

但是,有一个“ OpenOpt框架”(http://openopt.org/OOFramework)连接到IPOPT(在另一条评论中提到;它不能解决不平滑的问题),CVXOPT和Python中可用的其他一些求解器。

除此接口外,这些软件包之间没有任何关系。方法完全不同;唯一的共同点很可能就是Python语言和对LAPACK的访问。

对于凸问题,我还要向您推荐
CVX:用于规则凸编程的Matlab软件 http://cvxr.com/cvx
作者为此获得了今年非常负盛名的Beale-Hays-Orchard计算数学编程卓越奖。 。它是用Matlab编写的。
他们也有一个称为CVXPY的Python“版本” ,网址为http://www.stanford.edu/~ttinoco/cvxpy/,但是CVXPY实际上只是CVXOPT的一个非常好用的“有纪律”的界面,其中可以确保在语法上正确的程序是凸优化问题。


4

在大多数情况下,OpenOpt只是与其他求解器的接口。CVXOPT是OpenOpt底层的开源求解器之一,因此,除非您有要使用的商业求解器,否则在任何情况下都可能需要安装CVXOPT。AFAIK,CVXOPT是开源库中的最新技术,至少适用于二阶锥编程和半定式编程。


1
我认为说CVXOPT是OpenOpt背后的主要开源解决方案没有道理。为什么它更主要的不是,说,IPOPT,或其他十几个潜在的求解?
大卫·凯奇森2012年

也许主要的SOCP求解器更准确(?)
Marc Shivers
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.