使用Python实现差异进化的Ackley函数
我为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
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
是否应该在循环中(打印时也是如此)。