Code Duplication    Length = 28-44 lines in 2 locations

NiaPy/algorithms/basic/ba.py 1 location

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

NiaPy/algorithms/modified/hba.py 1 location

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