예제 #1
0
 def __init__(
     self,
     problem: Problem,
     solution: Solution,
     attribute: str = None,
     proportion: float = 0.3,
 ):
     self.problem = problem
     self.register: EncodingRegister = solution.get_attribute_register(
         problem)
     self.attribute = attribute
     if attribute is None:
         print("none")
         attributes = [
             k for k in self.register.dict_attribute_to_type
             for t in self.register.dict_attribute_to_type[k]["type"]
             if t == TypeAttribute.PERMUTATION
         ]
         print(attributes)
         if len(attributes) > 0:
             self.attribute = attributes[0]
     self.range_shuffle = self.register.dict_attribute_to_type[
         self.attribute]["range"]
     self.n_to_move = int(proportion * len(self.range_shuffle))
     self.range_int = list(range(self.n_to_move))
     self.range_int_total = list(range(len(self.range_shuffle)))
예제 #2
0
 def __init__(self,
              problem: Problem,
              solution: Solution,
              attribute: str = None):
     self.problem = problem
     self.register: EncodingRegister = solution.get_attribute_register(
         problem)
     self.attribute = attribute
     if self.attribute is None:
         attributes = [
             k for k in self.register.dict_attribute_to_type
             for t in self.register.dict_attribute_to_type[k]["type"]
             if t == TypeAttribute.PERMUTATION
         ]
         if len(attributes) > 0:
             self.attribute = attributes[0]
     self.range_shuffle = self.register.dict_attribute_to_type[
         self.attribute]["range"]
     self.range_int = list(range(len(self.range_shuffle)))
예제 #3
0
 def __init__(
     self,
     problem: Problem,
     solution: Solution,
     attribute: str = None,
     nb_swap: int = 1,
 ):
     self.problem = problem
     self.register: EncodingRegister = solution.get_attribute_register(
         problem)
     self.nb_swap = nb_swap
     self.attribute = attribute
     if self.attribute is None:
         attributes = [
             k for k in self.register.dict_attribute_to_type
             for t in self.register.dict_attribute_to_type[k]["type"]
             if t == TypeAttribute.PERMUTATION
         ]
         if len(attributes) > 0:
             self.attribute = attributes[0]
     self.length = len(
         self.register.dict_attribute_to_type[self.attribute]["range"])