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