예제 #1
0
    def __init__(self, mutation_operator_list:[Mutation]):
        super(CompositeMutation,self).__init__(probability=1.0)

        Check.is_not_none(mutation_operator_list)
        Check.collection_is_not_empty(mutation_operator_list)

        self.mutation_operators_list = []
        for operator in mutation_operator_list:
            Check.that(issubclass(operator.__class__, Mutation), "Object is not a subclass of Mutation")
            self.mutation_operators_list.append(operator)
예제 #2
0
파일: crossover.py 프로젝트: abfarr/moo2020
    def __init__(self, crossover_operator_list:[Crossover]):
        super(CompositeCrossover, self).__init__(probability=1.0)

        Check.is_not_none(crossover_operator_list)
        Check.collection_is_not_empty(crossover_operator_list)

        self.crossover_operators_list = []
        for operator in crossover_operator_list:
            Check.that(issubclass(operator.__class__, Crossover), "Object is not a subclass of Crossover")
            self.crossover_operators_list.append(operator)
예제 #3
0
    def __init__(self, solutions: List[Solution]):
        super(CompositeSolution,
              self).__init__(len(solutions), solutions[0].number_of_objectives,
                             solutions[0].number_of_constraints)
        Check.is_not_none(solutions)
        Check.collection_is_not_empty(solutions)

        for solution in solutions:
            Check.that(
                solution.number_of_objectives ==
                solutions[0].number_of_objectives,
                "The solutions in the list must have the same number of objectives: "
                + str(solutions[0].number_of_objectives))
            Check.that(
                solution.number_of_constraints ==
                solutions[0].number_of_constraints,
                "The solutions in the list must have the same number of constraints: "
                + str(solutions[0].number_of_constraints))

        self.variables = solutions