Numerical 使用GNU Scientific“multimin”查找所有局部极小值

Numerical 使用GNU Scientific“multimin”查找所有局部极小值,numerical,minimization,Numerical,Minimization,GNU科学图书馆有一个框架。然而,它的警告明确指出,当在具有多个不同局部极小值的函数上使用时,它只返回一个任意解。有人知道你可以如何调整它,使它返回一个符合某些阈值标准的所有局部极小值的列表吗?它不是基于GNU Scientific的,但我发现了一个查找所有局部极小值的算法:http://www.cs.uoi.gr/~lagaris/papers/MINF.pdf它不是基于GNU Scientific,但是我发现了这个算法,可以找到所有的局部极小值:http://www.cs.uoi.gr/~l

GNU科学图书馆有一个框架。然而,它的警告明确指出,当在具有多个不同局部极小值的函数上使用时,它只返回一个任意解。有人知道你可以如何调整它,使它返回一个符合某些阈值标准的所有局部极小值的列表吗?

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

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

任何标准的优化算法都会在接近起点的某个地方寻找局部最小值,无论是由自身选择还是由您提供。查找所有局部极小值可能是一个不可计算的问题,因为即使在有限范围内,也可以有无穷多个局部极小值,例如fx=[cos1/x]^2在0,1]范围内有无穷多个局部极小值。 假设你有有限数量的局部极小值,找到所有的局部极小值比找到一个全局极小值要复杂得多,而全局极小值又比在你附近找到一个局部极小值困难得多。没有简单的方法适应局部优化算法来寻找全局极小值。即使是寻找全局极小值的流行算法,如遗传算法SM/进化策略,也不能保证它们访问所有局部极小值。事实上,他们正试图避免这种情况


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

任何标准优化算法都会在接近起点的某个地方查找局部最小值,该最小值可以是自己选择的,也可以是您提供的。查找所有局部极小值可能是一个不可计算的问题,因为即使在有限范围内,也可以有无穷多个局部极小值,例如fx=[cos1/x]^2在0,1]范围内有无穷多个局部极小值。 假设你有有限数量的局部极小值,找到所有的局部极小值比找到一个全局极小值要复杂得多,而全局极小值又比在你附近找到一个局部极小值困难得多。没有简单的方法适应局部优化算法来寻找全局极小值。即使是寻找全局极小值的流行算法,如遗传算法SM/进化策略,也不能保证它们访问所有局部极小值。事实上,他们正试图避免这种情况


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

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

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