Code Duplication    Length = 27-32 lines in 3 locations

NiaPy/algorithms/modified/jde.py 1 location

@@ 8-39 (lines=32) @@
5
__all__ = ['SelfAdaptiveDifferentialEvolutionAlgorithm']
6
7
8
class SolutionjDE(object):
9
10
    def __init__(self, D, LB, UB, F, CR):
11
        self.D = D
12
        self.LB = LB
13
        self.UB = UB
14
        self.F = F
15
        self.CR = CR
16
        self.Solution = []
17
        self.Fitness = float('inf')
18
        self.generateSolution()
19
20
    def generateSolution(self):
21
        """Generate solution."""
22
23
        self.Solution = [self.LB + (self.UB - self.LB) * rnd.random()
24
                         for _i in range(self.D)]
25
26
    def evaluate(self):
27
        """Evaluate solution."""
28
29
        self.Fitness = SolutionjDE.FuncEval(self.D, self.Solution)
30
31
    def repair(self):
32
        for i in range(self.D):
33
            if self.Solution[i] > self.UB:
34
                self.Solution[i] = self.UB
35
            if self.Solution[i] < self.LB:
36
                self.Solution[i] = self.LB
37
38
    def __eq__(self, other):
39
        return self.Solution == other.Solution and self.Fitness == other.Fitness
40
41
42
class SelfAdaptiveDifferentialEvolutionAlgorithm(object):

NiaPy/algorithms/basic/ga.py 1 location

@@ 8-36 (lines=29) @@
5
__all__ = ['GeneticAlgorithm']
6
7
8
class Chromosome(object):
9
    def __init__(self, D, LB, UB):
10
        self.D = D
11
        self.LB = LB
12
        self.UB = UB
13
14
        self.Solution = []
15
        self.Fitness = float('inf')
16
        self.generateSolution()
17
18
    def generateSolution(self):
19
        self.Solution = [self.LB + (self.UB - self.LB) * rnd.random()
20
                         for _i in range(self.D)]
21
22
    def evaluate(self):
23
        self.Fitness = Chromosome.FuncEval(self.D, self.Solution)
24
25
    def repair(self):
26
        for i in range(self.D):
27
            if self.Solution[i] > self.UB:
28
                self.Solution[i] = self.UB
29
            if self.Solution[i] < self.LB:
30
                self.Solution[i] = self.LB
31
32
    def __eq__(self, other):
33
        return self.Solution == other.Solution and self.Fitness == other.Fitness
34
35
    def toString(self):
36
        print([i for i in self.Solution])
37
38
39
class GeneticAlgorithm(object):

NiaPy/algorithms/basic/de.py 1 location

@@ 8-34 (lines=27) @@
5
__all__ = ['DifferentialEvolutionAlgorithm']
6
7
8
class SolutionDE(object):
9
10
    def __init__(self, D, LB, UB):
11
        self.D = D
12
        self.LB = LB
13
        self.UB = UB
14
15
        self.Solution = []
16
        self.Fitness = float('inf')
17
        self.generateSolution()
18
19
    def generateSolution(self):
20
        self.Solution = [self.LB + (self.UB - self.LB) * rnd.random()
21
                         for _i in range(self.D)]
22
23
    def evaluate(self):
24
        self.Fitness = SolutionDE.FuncEval(self.D, self.Solution)
25
26
    def repair(self):
27
        for i in range(self.D):
28
            if self.Solution[i] > self.UB:
29
                self.Solution[i] = self.UB
30
            if self.Solution[i] < self.LB:
31
                self.Solution[i] = self.LB
32
33
    def __eq__(self, other):
34
        return self.Solution == other.Solution and self.Fitness == other.Fitness
35
36
37
class DifferentialEvolutionAlgorithm(object):