Answers:
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的一个非常好用的“有纪律”的界面,其中可以确保在语法上正确的程序是凸优化问题。
在大多数情况下,OpenOpt只是与其他求解器的接口。CVXOPT是OpenOpt底层的开源求解器之一,因此,除非您有要使用的商业求解器,否则在任何情况下都可能需要安装CVXOPT。AFAIK,CVXOPT是开源库中的最新技术,至少适用于二阶锥编程和半定式编程。