1 importnumpy as np2 from AFSIndividual importAFSIndividual3 importrandom4 importcopy5 importmatplotlib.pyplot as plt6
7
8 classArtificialFishSwarm:9
10 """class for ArtificialFishSwarm"""
11
12 def __init__(self, sizepop, vardim, bound, MAXGEN, params):13 '''
14 sizepop: population sizepop15 vardim: dimension of variables16 bound: boundaries of variables, 2*vardim17 MAXGEN: termination condition18 params: algorithm required parameters, it is a list which is consisting of[visual, step, delta, trynum]19 '''
20 self.sizepop =sizepop21 self.vardim =vardim22 self.bound =bound23 self.MAXGEN =MAXGEN24 self.params =params25 self.population =[]26 self.fitness = np.zeros((self.sizepop, 1))27 self.trace = np.zeros((self.MAXGEN, 2))28 self.lennorm = 6000
29
30 definitialize(self):31 '''
32 initialize the population of afs33 '''
34 for i inxrange(0, self.sizepop):35 ind =AFSIndividual(self.vardim, self.bound)36 ind.generate()37 self.population.append(ind)38
39 defevaluation(self, x):40 '''
41 evaluation the fitness of the individual42 '''
43 x.calculateFitness()44
45 defforage(self, x):46 '''
47 artificial fish foraging behavior48 '''
49 newIn