示例#1
0
 def __init__(
     self,
     resource_names: List[str] = None,
     task_ids: List[int] = None,
     tasks_mode: Dict[int, Dict[int, Dict[str, int]]] = None,
     successors: Dict[int, List[int]] = None,
     max_horizon: int = None,
     resource_availability: Dict[str, int] = None,
     resource_renewable: Dict[str, bool] = None,
 ):
     self.resource_names = resource_names
     self.task_ids = task_ids
     self.tasks_mode = tasks_mode
     # transform the "mode_details" dict that we largely used in DO in the good format.
     self.task_mode_dict = {}
     self.duration_dict = {}
     for task in self.tasks_mode:
         self.task_mode_dict[task] = {}
         self.duration_dict[task] = {}
         for mode in self.tasks_mode[task]:
             self.task_mode_dict[task][mode] = ConstantModeConsumption({})
             for r in self.tasks_mode[task][mode]:
                 if r in self.resource_names:
                     self.task_mode_dict[task][mode].mode_details[r] = [
                         self.tasks_mode[task][mode][r]
                     ]
             self.duration_dict[task][mode] = self.tasks_mode[task][mode][
                 "duration"]
     self.successors = successors
     self.max_horizon = max_horizon
     self.resource_availability = resource_availability
     self.resource_renewable = resource_renewable
     self.initialize_domain()
示例#2
0
 def _get_tasks_mode(self) -> Dict[int, ModeConsumption]:
     return {
         1: ConstantModeConsumption({
             "r1": 0,
             "r2": 0
         }),
         2: ConstantModeConsumption({
             "r1": 1,
             "r2": 1
         }),
         3: ConstantModeConsumption({
             "r1": 1,
             "r2": 0
         }),
         4: ConstantModeConsumption({
             "r1": 2,
             "r2": 1
         }),
         5: ConstantModeConsumption({
             "r1": 0,
             "r2": 1
         }),
         6: ConstantModeConsumption({
             "r1": 1,
             "r2": 0
         }),
         7: ConstantModeConsumption({
             "r1": 0,
             "r2": 0
         }),
     }
示例#3
0
 def _get_tasks_modes(self) -> Dict[int, Dict[int, ModeConsumption]]:
     return {
         1: {
             1: ConstantModeConsumption({
                 "r1": 0,
                 "r2": 0
             })
         },
         2: {
             1: ConstantModeConsumption({
                 "r1": 1,
                 "r2": 1
             }),
             2: ConstantModeConsumption({
                 "r1": 2,
                 "r2": 0
             }),
         },
         3: {
             1: ConstantModeConsumption({
                 "r1": 1,
                 "r2": 0
             }),
             2: ConstantModeConsumption({
                 "r1": 0,
                 "r2": 1
             }),
         },
         4: {
             1: ConstantModeConsumption({
                 "r1": 2,
                 "r2": 1
             }),
             2: ConstantModeConsumption({
                 "r1": 2,
                 "r2": 0
             }),
         },
         5: {
             1: ConstantModeConsumption({
                 "r1": 0,
                 "r2": 0
             })
         },
     }