Code Duplication    Length = 29-43 lines in 2 locations

NiaPy/algorithms/basic/ba.py 1 location

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

NiaPy/algorithms/modified/hba.py 1 location

@@ 22-50 (lines=29) @@
19
20
class HybridBatAlgorithm(object):
21
    # pylint: disable=too-many-instance-attributes
22
    def __init__(self, D, NP, nFES, A, r, Qmin, Qmax, benchmark):
23
        self.benchmark = Utility.get_benchmark(benchmark)
24
        self.D = D  # dimension
25
        self.NP = NP  # population size
26
        self.nFES = nFES  # number of function evaluations
27
        self.A = A  # loudness
28
        self.r = r  # pulse rate
29
        self.Qmin = Qmin  # frequency min
30
        self.Qmax = Qmax  # frequency max
31
        self.Lower = self.benchmark.Lower  # lower bound
32
        self.Upper = self.benchmark.Upper  # upper bound
33
        self.Fun = self.benchmark.function()
34
35
        self.f_min = 0.0  # minimum fitness
36
37
        self.Lb = [0] * self.D  # lower bound
38
        self.Ub = [0] * self.D  # upper bound
39
        self.Q = [0] * self.NP  # frequency
40
41
        self.v = [[0 for _i in range(self.D)]
42
                  for _j in range(self.NP)]  # velocity
43
        self.Sol = [[0 for _i in range(self.D)] for _j in range(
44
            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
        self.F = 0.5
50
        self.CR = 0.9
51
52
    def best_bat(self):
53
        i = 0