1

GNU Scientific 库有一个多维函数最小化框架。但是,它的警告明确指出,当用于具有多个不同局部最小值的函数时,它只会返回一个任意解决方案。有谁知道您可能如何调整它,以便它返回所有局部最小值的列表(受某些阈值标准约束)?

4

3 回答 3

3

它不是基于 GNU Scientific,但我发现了这个用于查找所有局部最小值的算法:http://www.cs.uoi.gr/~lagaris/papers/MINF.pdf

于 2008-10-17T10:30:04.137 回答
2

任何标准优化算法都会在“接近”起点的某个地方寻找一个局部最小值,要么由它自己选择,要么由你提供。找到所有局部最小值可能是一个不可计算的问题,因为即使在有限范围内(例如 f(x) = [ cos(1/x) ]^2 具有无限数量的局部最小值),它们也可以有无穷多个在 (0, 1] 范围内)。假设您有有限数量的局部最小值,找到所有这些是比找到全局最小值更复杂的任务,而全局最小值又比在某处找到局部最小值要​​困难得多离你很近。没有简单的方法可以适应局部优化算法来找到全局最小值。即使是流行的算法来找到全局最小值,例如遗传算法/进化策略,也不能保证它们访问所有局部最小值。事实上,

在这种情况下使用 GSL 的最佳方法是查看最小化函数并尝试猜测最小值应该在哪里,然后使用 GSL 代码查找它们。

于 2009-05-11T09:21:38.940 回答
0

事实证明,粒子群优化方法对于查找函数的所有局部最小值和全局最小值的任务来说并不是一个糟糕的选择。代码PSO 查找局部最小值 PSO 查找全局最小值可供您参考。

于 2018-11-09T07:55:00.053 回答