Beispiel #1
0
    def execute(self, solution: BinarySolution) -> BinarySolution:
        offspring = solution.variables
        popsize = len(solution.variables[0])

        values = [
            np.random.choice(solution.variables[1][i]) for i in range(popsize)
        ]
        probs = np.random.uniform(0, 1, popsize)

        for i in range(popsize):
            if probs[i] <= self.probability:
                offspring[0][i] = values[i]

        solution.variables = offspring
        return solution
Beispiel #2
0
    def create_solution(self) -> BinarySolution:

        new_solution = BinarySolution(self.number_of_variables, self.number_of_objectives, self.number_of_constraints)
        new_solution.variables = \
            [self.sf.get_random_individual() for i in range(self.number_of_variables)]
        return new_solution