【问题标题】:What's a good convex optimization library? [closed]什么是好的凸优化库? [关闭]
【发布时间】:2010-12-31 00:40:53
【问题描述】:

我正在寻找一个 C++ 库,我正在处理凸目标和约束函数。

【问题讨论】:

  • 大多数 LP 求解器都有自己定义问题集的方法。它的编程接口主要是糖衣。
  • 我正在使用 cvxopt,为了安装,我刚刚从 lfd.uci.edu/~gohlke/pythonlibs/#cvxopt 下载了预编译的库,然后进行了 pip install(下载的轮子),然后确保在使用之前导入 numpy。
  • @Phylliida:CVXOPT 有 C++ 版本/接口吗?

标签: c++ mathematical-optimization convex


【解决方案1】:

我猜你的问题是非线性的。在我工作的地方,我们使用SNOPTIpopt 和另一个专有求解器(非出售)。我们还尝试并听到了关于 Knitro 的好消息。

只要您的问题是凸的,所有这些求解器都可以正常工作。

它们都有自己的 API,但它们都要求相同的信息:值、一阶导数和二阶导数。

【讨论】:

    【解决方案2】:

    假设您的问题是非线性的,您可以使用免费的开源 OPT++,可从 Sandia Lab 获得。我在一个 C++ 项目中使用过它,它易于使用且运行良好。

    【讨论】:

      【解决方案3】:

      据我所知,CPLEX 求解器是最好的凸优化求解器。它是 LP 求解器的最先进技术。凸优化真的很好。在寻找它时,我看到它现在是 IBM 的软件。你可以在这里找到它:http://www-01.ibm.com/software/integration/optimization/cplex/

      【讨论】:

      【解决方案4】:

      您可以将 GSL (GNU Scientific Library) 与 the package NLopt 一起使用,这是一个具有无约束、有界约束和一般非线性不等式约束的非线性优化包。

      【讨论】:

      • 两个cmets:首先,你的意思是你可以同时使用GSL和NLOpt(GSL和NLOpt)?它们似乎是独立的项目。他们有相同的精神,但他们是独立的。其次,NLOpt 的作者不建议将 NLOpt 用于凸问题,来自网页:“NLopt 仅包括不假设凸性的一般方法;如果您有可证明的凸问题,则使用不同的软件包可能会更好,例如斯坦福大学的 CVX 软件包。” ab-initio.mit.edu/wiki/index.php/…
      猜你喜欢
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2011-01-27
      • 2011-04-07
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多