有没有人知道一个强大的例程/算法(最好在 scipy/python 中)来定位 N 维向量空间的定义(“矩形”)区域中 N 个变量的标量实函数的“所有”局部最小值?
scipy 中的受约束和不受约束的最小化算法都只返回一个最小值(全局或局部)
有没有人知道一个强大的例程/算法(最好在 scipy/python 中)来定位 N 维向量空间的定义(“矩形”)区域中 N 个变量的标量实函数的“所有”局部最小值?
scipy 中的受约束和不受约束的最小化算法都只返回一个最小值(全局或局部)
Scipy 的盆地跳跃有一个callback
参数可以用来保存所有找到的最小值。
例如:
all_minima = []
def save_minima(x, f, accepted):
all_minima.append(x)
basinhopping(func, x0, callback=save_minima)
显然,这不一定会返回所有局部最小值。但它确实会返回它找到的所有内容。