我需要优化一个功能。 为此,我使用scipy.optimize.basinhopping函数。
我编写了要优化的函数和进行更改的函数,我调用了这样的stagehopping函数:
result = basinhopping(func_to_be_optimized, x0,
take_step=take_step,
niter=10, niter_success=10,
disp=True)
x0是猜测的初始解决方案。
我的问题是func_to_be_optimized函数被调用了很多次,然后调用了take_step函数。 但通常它必须是:一次调用take_step和一次调用func_to_be_optimized等。
此外,func_to_be_optimized函数有一个X参数,它在每次调用时都被修改,但不是由我的函数take_step修改。
为什么我有这个问题?
答案 0 :(得分:0)
来自docs:
算法是迭代的,每个循环由以下特征组成
步骤1.使用take_step。步骤2.(局部最小化)将多次调用您的func_to_be_optimized。