import numpy as np
import matplotlib.pyplot as plt
N = 10
dim = 2
iter_times = 100
def function(vec):
return vec[0]**2+vec[1]**2-5
def initSwarm(N,dim):
x = np.random.random((N,dim))
v = np.random.random((N,dim))
pbest = x
fitness = [function(vec) for vec in x]
gbest = pbest[np.argmin(fitness)]
best = fitness[np.argmin(fitness)]
return x,v,pbest,fitness,gbest,best
x,v,pbest,fitness,gbest,best = initSwarm(N,dim)
def searchBestParam(iter_times):
result = []
for time in range(iter_times):
for index in range(N):
k = function(x[index])
if k < fitness[index]:
fitness[index] = k
pbest[index] = x[index]
best = fitness[np.argmin(fitness)]
gbest =