【问题标题】:The right package/software for non-linear optimization with semidefinite constraints用于具有半定约束的非线性优化的正确软件包/软件
【发布时间】:2016-03-02 16:41:17
【问题描述】:

我正在努力解决以下(通用)形式的优化问题。

最小化 F(x)

这样:

___(1): 0

___(2): M(x) >= 0。

其中 M(x) 是一个矩阵,其元素是 x 的二次函数。最后一个约束意味着 M(x) 必须是 positive semidefinite matrix。此外,F(x) 是一个可调用函数。对于更好奇的人,here 是一个类似的最小工作示例。

我尝试了几个选项,但都没有成功。

  1. PICOSCVXPYCVX——在前两种情况下,我找不到像我这样的 minimax 问题编码的方法。在 MATLAB 中实现的第三个中,涉及半定约束的矩阵必须是仿射的。所以我的问题不属于这个标准。
  2. fmincon -- 我们如何编码矩阵正性约束?一种方法是解析地计算矩阵 M(x) 的特征值,并将每个特征值约束为正。但是特征值的解析表达式可能很可怕。
  3. MOSEK -- 目标函数必须是可表达的标准形式。我找不到用户定义的目标函数的示例。
  4. scipy.optimize -- 除了目标函数和约束,还需要提供这些函数的导数。特别是在我的情况下,这对于目标函数来说很好。但是,如果我要用特征值的解析表达式来表达矩阵正性约束(以及它的导数),那可能会非常乏味。

我很抱歉没有提供 MWE 来说明我对上述每个软件包/软件的尝试。

谁能推荐一个对我解决优化问题有用的软件包/软件?

【问题讨论】:

  • 可以举一个FM的例子吗?
  • 一个更具体的 $M(x)$ 示例会有所帮助。至于 MOSEK(我在 MOSEK 工作),你不能为 SDP 指定用户定义的函数。但是,如果 F(X) 是圆锥可表示的,那么您可能不需要它。见docs.mosek.com/modeling-cookbook/index.html

标签: scipy nonlinear-optimization cvxopt fminsearch mosek


【解决方案1】:

查看带有框约束的非线性优化包,其中可以通过惩罚或障碍技术对不同类型的约束进行编码。 看下面的网址 merlin.cs.uoi.gr

【讨论】:

  • 如果 M 是对称的 LDL^T choleski 更便宜地找出 M 是否是 pd
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多