Skip to content

Commit

Permalink
Fixed issues
Browse files Browse the repository at this point in the history
  • Loading branch information
StannisMod committed Oct 8, 2023
1 parent 8c9946f commit 3b45c9f
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 52 deletions.
5 changes: 0 additions & 5 deletions sampo/scheduler/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,6 @@ def build_scheduler(self,
start_time = assigned_parent_time
finish_time += start_time

max_zone_time_after = timeline.zone_timeline.find_min_start_time(node.work_unit.zone_reqs, start_time,
finish_time - start_time)
#if start_time != max_zone_time_after:
print(f'333333 Start time: {start_time}, zone time: {max_zone_time_after}, exec_time: {finish_time - start_time}')

# apply work to scheduling
timeline.schedule(node, node2swork, best_worker_team, contractor, work_spec,
start_time, work_spec.assigned_time, assigned_parent_time, work_estimator)
Expand Down
10 changes: 0 additions & 10 deletions sampo/scheduler/timeline/just_in_time_timeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,6 @@ def find_min_start_time_with_additional(self, node: GraphNode,
# TODO Decide where this should be
dep_parent_time = dep_node.min_start_time(node2swork)

if dep_node.is_inseparable_son():
assert dep_parent_time >= node2swork[dep_node.inseparable_parent].finish_time

dep_st = max(new_finish_time, dep_parent_time)
working_time = work_estimator.estimate_time(dep_node.work_unit, worker_team)
new_finish_time = dep_st + working_time
Expand All @@ -119,10 +116,6 @@ def find_min_start_time_with_additional(self, node: GraphNode,

c_st = max(c_st, max_material_time, max_zone_time)

max_zone_time_new = self.zone_timeline.find_min_start_time(node.work_unit.zone_reqs, c_st, exec_time)
if max_zone_time_new != c_st:
print('ERROR!!!')

c_ft = c_st + exec_time
return c_st, c_ft, None

Expand Down Expand Up @@ -262,9 +255,6 @@ def _schedule_with_inseparables(self,
c_ft = new_finish_time

zones = [zone_req.to_zone() for zone_req in node.work_unit.zone_reqs]
zone_st = self.zone_timeline.find_min_start_time(node.work_unit.zone_reqs, start_time, c_ft - start_time)
if zone_st != start_time:
raise AssertionError(f'The Very Big Problems; start time: {start_time}, zone time: {zone_st}, exec_time: {c_ft - start_time}')
self.update_timeline(c_ft, node, node2swork, workers, spec)
node2swork[node].zones_pre = self.zone_timeline.update_timeline(len(node2swork), zones, start_time,
c_ft - start_time)
Expand Down
16 changes: 0 additions & 16 deletions sampo/scheduler/timeline/momentum_timeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,17 +127,10 @@ def apply_time_spec(time: Time):
max_zone_time = self.zone_timeline.find_min_start_time(node.work_unit.zone_reqs, max_parent_time, exec_time)

max_parent_time = max(max_parent_time, max_material_time, max_zone_time)
# print(f'Start time: {max_parent_time}, zone time: {max_zone_time}')
return max_parent_time, max_parent_time, exec_times

if assigned_start_time is not None:
st = assigned_start_time
max_zone_time = self.zone_timeline.find_min_start_time(node.work_unit.zone_reqs, st, exec_time)
if st != max_zone_time:
print(f'1 Start time: {st}, zone time: {max_zone_time}, exec_time: {exec_time}')
self.find_min_start_time_with_additional(
node, worker_team, node2swork, spec, assigned_start_time, assigned_parent_time, work_estimator
)
else:
prev_st = max_parent_time

Expand Down Expand Up @@ -174,15 +167,6 @@ def apply_time_spec(time: Time):
prev_st = st
st = max(max_material_time, max_zone_time, start_time)

max_zone_time_after = self.zone_timeline.find_min_start_time(node.work_unit.zone_reqs, st, exec_time)
if st != max_zone_time_after:
print(f'2 Start time: {st}, zone time: {max_zone_time_after}')

assert st >= max_parent_time

if st.is_inf():
break

return st, st + exec_time, exec_times

def _find_min_start_time(self,
Expand Down
18 changes: 9 additions & 9 deletions sampo/schemas/scheduled_work.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,14 @@ def start_time(self, val: Time):
def finish_time(self) -> Time:
return self.start_end_time[1]

@property
def min_child_start_time(self) -> Time:
return self.finish_time if self.work_unit.is_service_unit else self.finish_time + 1

@finish_time.setter
def finish_time(self, val: Time):
self.start_end_time = (self.start_end_time[0], val)

@property
def min_child_start_time(self) -> Time:
return self.finish_time if self.work_unit.is_service_unit else self.finish_time + 1

@staticmethod
def start_time_getter():
return lambda x: x.start_end_time[0]
Expand Down Expand Up @@ -134,8 +134,8 @@ def to_dict(self) -> dict[str, Any]:
'workers': {worker.name: worker.count for worker in self.workers},
}

def __deepcopy__(self, memodict={}):
return ScheduledWork(deepcopy(self.work_unit, memodict),
deepcopy(self.start_end_time, memodict),
deepcopy(self.workers, memodict),
self.contractor)
# def __deepcopy__(self, memodict={}):
# return ScheduledWork(deepcopy(self.work_unit, memodict),
# deepcopy(self.start_end_time, memodict),
# deepcopy(self.workers, memodict),
# self.contractor)
24 changes: 12 additions & 12 deletions tests/scheduler/genetic/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,16 @@ def setup_toolbox(setup_default_schedules) -> tuple:
resources_border[0, worker_index, work_index] = req.min_count
resources_border[1, worker_index, work_index] = req.max_count

return (create_toolbox(setup_wg,
setup_contractors,
setup_worker_pool,
size_of_population,
mutate_order,
mutate_resources,
mutate_zones,
setup_default_schedules,
rand,
work_estimator=work_estimator,
landscape=setup_landscape_many_holders,
verbose=False)[0], resources_border,
return (create_toolbox_and_mapping_objects(setup_wg,
setup_contractors,
setup_worker_pool,
size_of_population,
mutate_order,
mutate_resources,
mutate_zones,
setup_default_schedules,
rand,
work_estimator=work_estimator,
landscape=setup_landscape_many_holders,
verbose=False)[0], resources_border,
setup_wg, setup_contractors, setup_default_schedules, setup_landscape_many_holders)

0 comments on commit 3b45c9f

Please sign in to comment.