我需要优化一个函数。为此,我使用scipy.optimize.basinhopping函数。
我编写了要优化的函数和进行更改的函数,并调用basinhopping函数,如下所示:
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修改。
为什么我会有这个问题?
发布于 2017-09-22 03:37:18
从docs
该算法是迭代的,每个循环由以下特征组成
基于最小化函数值
步骤1.使用take_step。步骤2. (局部最小化)将多次调用您的func_to_be_optimized。
https://stackoverflow.com/questions/41987526
复制相似问题