Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python实现差异进化的Ackley函数_Python_Python 3.x_Function_Optimization_Iteration - Fatal编程技术网

使用Python实现差异进化的Ackley函数

使用Python实现差异进化的Ackley函数,python,python-3.x,function,optimization,iteration,Python,Python 3.x,Function,Optimization,Iteration,我为ackley提供了以下功能 def ackley(x): a,b,c = 20.0, 0.2, 2*np.pi f = -a*np.exp(-b*np.sqrt(np.mean(x**2))) f -= np.exp(np.mean(np.cos(c*x))) f += a + np.exp(1) return f fm27 = lambda x: ackley(x) 如何调整此函数,以便迭代多个参数值 例如 a = 20 b = np.lins

我为ackley提供了以下功能

def ackley(x):
    a,b,c = 20.0, 0.2, 2*np.pi 
    f  = -a*np.exp(-b*np.sqrt(np.mean(x**2)))
    f -= np.exp(np.mean(np.cos(c*x)))
    f += a + np.exp(1)
    return f
fm27 = lambda x: ackley(x)
如何调整此函数,以便迭代多个参数值 例如

a = 20
b = np.linspace(0.6,0.9,7)
c = np.linspace(0,0.5,6)
然后打印每个组合的所有结果? 到目前为止我已经试过了,但我仍然只得到一个结果


def ackley(x):
    a = 20.0
    b = np.linspace(0.6,0.9,7)
    pii = np.linspace(0,0.5,6)
    c = 2*pii
    #20.0, 0.2, 2*np.pi #here pi has to be 0, 0.1, up to 0.5 , and b has to be 0.6, 0.65 , up to 0.9
    for i in pii:
        for j in b:
            f  = -a*np.exp(-j*np.sqrt(np.mean(x**2)))
            f -= np.exp(np.mean(np.cos(c*x)))
            f += a + np.exp(1)
            print(f)
            return f
fm27 = lambda x: ackley(x)

多谢各位

检查压痕是否正确。我怀疑
返回f
是否应该在循环中(打印
时也是如此)。