import numpy as np
import matplotlib.pyplot as plt
sample = 50
iter_times = 100
def initParams(bestX,bestY,sample):
position = []
fitness = []
for num in range(sample):
x,y = bestX+2*np.random.rand()-1,bestY+2*np.random.rand()-1
S = 1/np.sqrt(x**2+y**2)
smell = S**2-5
position.append((x,y))
fitness.append(smell)
bestIndex = np.argmin(fitness)
bestX,bestY = position[bestIndex]
bestSmell = fitness[bestIndex]
return bestX,bestY,bestSmell
bestX,bestY,bestSmell = initParams(10*np.random.rand(),10*np.random.rand(),sample)
xlist,ylist,value = [],[],[]
for time in range(iter_times):
tmpX,tmpY,tmpSmell = initParams(bestX,bestY,sample)
if tmpSmell < bestSmell:
bestX = tmpX
bestY