def get_cuckoos(nest,best,lb,ub,n,dim):
# perform Levy flights
tempnest=numpy.zeros((n,dim))
tempnest=numpy.array(nest)
beta=3/2;
sigma=(math.gamma(1+beta)*math.sin(math.pi*beta/2)/(math.gamma((1+beta)/2)*beta*2**((beta-1)/2)))**(1/beta);
s=numpy.zeros(dim)
for j in range (0,n):
s=nest[j,:]
u=numpy.random.randn(len(s))*sigma
v=numpy.random.randn(len(s))
step=u/abs(v)**(1/beta)
stepsize=0.01*(step*(s-best))
s=s+stepsize*numpy.random.randn(len(s))
tempnest[j,:]=numpy.clip(s, lb, ub)
return tempnest
评论列表
文章目录