Code Duplication    Length = 29-44 lines in 2 locations

NiaPy/algorithms/basic/ba.py 1 location

@@ 26-69 (lines=44) @@
23
24
    # pylint: disable=too-many-instance-attributes
25
26
    def __init__(self, D, NP, nFES, A, r, Qmin, Qmax, benchmark):
27
        """Initialize algorithm.
28
29
        Arguments:
30
            D {integer} -- dimension of problem
31
            NP {integer} -- population size
32
            nFES {integer} -- number of function evaluations
33
            A {decimal} -- loudness
34
            r {decimal} -- pulse rate
35
            Qmin {decimal} -- minimum frequency
36
            Qmax {decimal } -- maximum frequency
37
            benchmark {object} -- benchmark implementation object
38
39
        Raises:
40
            TypeError -- Raised when given benchmark function which does not exists.
41
42
        """
43
44
        self.benchmark = Utility().get_benchmark(benchmark)
45
        self.D = D  # dimension
46
        self.NP = NP  # population size
47
        self.nFES = nFES  # number of function evaluations
48
        self.A = A  # loudness
49
        self.r = r  # pulse rate
50
        self.Qmin = Qmin  # frequency min
51
        self.Qmax = Qmax  # frequency max
52
        self.Lower = self.benchmark.Lower  # lower bound
53
        self.Upper = self.benchmark.Upper  # upper bound
54
55
        self.f_min = 0.0  # minimum fitness
56
57
        self.Lb = [0] * self.D  # lower bound
58
        self.Ub = [0] * self.D  # upper bound
59
        self.Q = [0] * self.NP  # frequency
60
61
        self.v = [[0 for _i in range(self.D)]
62
                  for _j in range(self.NP)]  # velocity
63
        self.Sol = [[0 for _i in range(self.D)] for _j in range(
64
            self.NP)]  # population of solutions
65
        self.Fitness = [0] * self.NP  # fitness
66
        self.best = [0] * self.D  # best solution
67
        self.evaluations = 0  # evaluations counter
68
        self.eval_flag = True  # evaluations flag
69
        self.Fun = self.benchmark.function()
70
71
    def best_bat(self):
72
        """Find best bat."""

NiaPy/algorithms/modified/hba.py 1 location

@@ 23-51 (lines=29) @@
20
class HybridBatAlgorithm(object):
21
    # pylint: disable=too-many-instance-attributes
22
23
    def __init__(self, D, NP, nFES, A, r, F, CR, Qmin, Qmax, benchmark):
24
        self.benchmark = Utility().get_benchmark(benchmark)
25
        self.D = D  # dimension
26
        self.NP = NP  # population size
27
        self.nFES = nFES  # number of function evaluations
28
        self.A = A  # loudness
29
        self.r = r  # pulse rate
30
        self.F = F  # scaling factor
31
        self.CR = CR  # crossover rate
32
        self.Qmin = Qmin  # frequency min
33
        self.Qmax = Qmax  # frequency max
34
        self.Lower = self.benchmark.Lower  # lower bound
35
        self.Upper = self.benchmark.Upper  # upper bound
36
        self.eval_flag = True  # evaluations flag
37
        self.Fun = self.benchmark.function()
38
39
        self.f_min = 0.0  # minimum fitness
40
41
        self.Lb = [0] * self.D  # lower bound
42
        self.Ub = [0] * self.D  # upper bound
43
        self.Q = [0] * self.NP  # frequency
44
45
        self.v = [[0 for _i in range(self.D)]
46
                  for _j in range(self.NP)]  # velocity
47
        self.Sol = [[0 for _i in range(self.D)] for _j in range(
48
            self.NP)]  # population of solutions
49
        self.Fitness = [0] * self.NP  # fitness
50
        self.best = [0] * self.D  # best solution
51
        self.evaluations = 0  # evaluations counter
52
53
    def best_bat(self):
54
        i = 0