【问题标题】:Solve Global Optimization in MATLAB [closed]在 MATLAB 中求解全局优化
【发布时间】:2016-03-11 07:17:26
【问题描述】:

我必须找到最小化以下无约束优化问题的 x:

f(x) = sigma{k}(x'A_kx - b_k)^2;

其中 A_k 是 4 x 4 正定矩阵 (A_1, A_2,...A_k),x 是 4 x 1 向量,b_k 是标量 (b_1,b_2,...b_k)。我已经通过在 MATLAB 中使用 Nelder-Mead 和牛顿法解决了这个问题,但是由于这个非线性 OP 有多个局部最小值(解决这个 OP 的多个 x),我无法选择 x 的最佳解决方案。有没有办法在 MATLAB 中解决这个 OP,使得 x 始终是全局最小值(最佳/全局解决方案)?我非常感谢您的建议。

【问题讨论】:

  • 您所写的问题不是凸的,因此更难确定您是处于全局最小值还是只是局部最小值。
  • 是的,它似乎是非凸的,并且由于非凸它有多个局部最小值。两种不同的算法产生了两种不同的解决方案 (x),因此我不确定将哪个视为该 OP 的最佳解决方案。有关如何处理此类问题的任何建议?
  • 一种方法是枚举所有局部最小值并找到最低值。
  • 我已经想到了;但由于 x 是一个向量,我不知道如何继续。我认为可能有一些全局优化算法可以为这种非线性 OP 生成全局最小值。
  • 从 1 到 180。

标签: matlab optimization mathematical-optimization data-analysis


【解决方案1】:

BARON 是一个非常好的全局求解器,可以从 Matlab 中调用。

我很快用一些随机数据用 Baron(不是来自 Matlab,而是来自 GAMS)尝试了你的模型,这似乎解决得很快:

【讨论】:

  • 感谢您的建议。我会试试这个:)
猜你喜欢
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2020-01-06
  • 1970-01-01
相关资源
最近更新 更多