| @@ 27-48 (lines=22) @@ | ||
| 24 | ||
| 25 | class FlowerPollinationAlgorithm(object): |
|
| 26 | # pylint: disable=too-many-instance-attributes |
|
| 27 | def __init__(self, D, NP, nFES, p, benchmark): |
|
| 28 | self.benchmark = Utility.get_benchmark(benchmark) |
|
| 29 | self.D = D # dimension |
|
| 30 | self.NP = NP # population size |
|
| 31 | self.nFES = nFES # number of function evaluations |
|
| 32 | self.p = p # probability switch |
|
| 33 | self.Lower = self.benchmark.Lower # lower bound |
|
| 34 | self.Upper = self.benchmark.Upper # upper bound |
|
| 35 | self.Fun = self.benchmark.function() # function |
|
| 36 | ||
| 37 | self.f_min = 0.0 # minimum fitness |
|
| 38 | ||
| 39 | self.Lb = [0] * self.D # lower bound |
|
| 40 | self.Ub = [0] * self.D # upper bound |
|
| 41 | ||
| 42 | self.dS = [[0 for _i in range(self.D)] |
|
| 43 | for _j in range(self.NP)] # differential |
|
| 44 | self.Sol = [[0 for _i in range(self.D)] |
|
| 45 | for _j in range(self.NP)] # population of solutions |
|
| 46 | self.Fitness = [0] * self.NP # fitness |
|
| 47 | self.best = [0] * self.D # best solution |
|
| 48 | self.evaluations = 0 # evaluations counter |
|
| 49 | ||
| 50 | def best_flower(self): |
|
| 51 | i = 0 |
|
| @@ 23-44 (lines=22) @@ | ||
| 20 | """Firefly Algorithm implementation.""" |
|
| 21 | ||
| 22 | # pylint: disable=too-many-instance-attributes |
|
| 23 | def __init__(self, D, NP, nFES, alpha, betamin, gamma, benchmark): |
|
| 24 | self.benchmark = Utility.get_benchmark(benchmark) |
|
| 25 | self.D = D # dimension of the problem |
|
| 26 | self.NP = NP # population size |
|
| 27 | self.nFES = nFES # number of function evaluations |
|
| 28 | self.alpha = alpha # alpha parameter |
|
| 29 | self.betamin = betamin # beta parameter |
|
| 30 | self.gamma = gamma # gamma parameter |
|
| 31 | # sort of fireflies according to fitness value |
|
| 32 | self.Index = [0] * self.NP |
|
| 33 | self.Fireflies = [[0 for _i in range(self.D)] |
|
| 34 | for _j in range(self.NP)] # firefly agents |
|
| 35 | self.Fireflies_tmp = [[0 for _i in range(self.D)] for _j in range( |
|
| 36 | self.NP)] # intermediate pop |
|
| 37 | self.Fitness = [0.0] * self.NP # fitness values |
|
| 38 | self.Intensity = [0.0] * self.NP # light intensity |
|
| 39 | self.nbest = [0.0] * self.NP # the best solution found so far |
|
| 40 | self.Lower = self.benchmark.Lower # lower bound |
|
| 41 | self.Upper = self.benchmark.Upper # upper bound |
|
| 42 | self.fbest = None # the best |
|
| 43 | self.evaluations = 0 |
|
| 44 | self.Fun = self.benchmark.function() |
|
| 45 | ||
| 46 | def init_ffa(self): |
|
| 47 | for i in range(self.NP): |
|