繁体   English   中英

MATLAB优化:具有“步骤”的目标函数

[英]MATLAB optimization: objective function with “steps”

我正在尝试在MATLAB中使用fmincon查找最小值,并且面临以下问题:

由于起始点处的渐变大小小于函数公差的默认值,因此优化已完成。

我的目标函数的表面显示“阶梯”,因此在某些输入变量范围内它具有相同的值(如果我是正确的话,渐变的大小为零):

在此处输入图片说明

从初始点移动时,求解器看不到目标函数值的任何变化,并完成了优化:

Iteration  Func-count       f(x)        Step-size       optimality

0           3          581.542                             0

Initial point is a local minimum.

Optimization completed because the size of the gradient at the initial point 
is less than the default value of the function tolerance.

当目标函数保持其值不变(直到目标函数开始增加)时,有什么方法可以使求解器前进?

谢谢你的帮助。

我发布了扩展评论作为答案,希望以后的求职者更容易找到解决方案:

如果目标函数的评估成本不高,那么使用基于非梯度的求解器(例如ga可能会得到合理的结果。 这些不依赖于梯度,并且在非平滑函数上表现良好。 在选择求解器算法之前,还值得阅读以下指南: 如何选择求解器

答案就在那里:

Initial point is a local minimum

您作为初始点给出的已经是局部最小值 因此,算法会找到该最小值并坚持下去。 为了找到其他局部最小值全局 最小值 ,请将初始点更改为远离局部最小值的其他 为了找到全局最小值,请使用全局优化技术。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM