Example #1
0
    def crossover_impl(self, parents: List[Genotype]) -> Tuple[Genotype, float, float, PopulationStrategies]:
        cr = np.random.normal(0.9, 0.1)
        cr = 1.0 if cr > 1.0 else (0.1 if cr < 0.1 else cr)
        f = self.generate_mutation_factor_norm()

        self.cr.append(cr)
        self.f.append(f)

        return Genotype.crossover_triple(self.config.generation, f, cr, parents[0], parents[1], parents[2], parents[3]), f, cr, self.strategy
Example #2
0
    def crossover_impl(
        self, parents: List[Genotype]
    ) -> Tuple[Genotype, float, float, PopulationStrategies]:
        cr = self.generate_cr()
        f = np.random.uniform() if np.random.uniform(
        ) < 0.2 else self._generate_mutation_factor_cauchy()

        self.cr.append(cr)
        self.f.append(f)

        return Genotype.crossover_triple(self.config.generation, f, cr,
                                         parents[0], parents[1], parents[2],
                                         parents[3]), f, cr, self.strategy