Commit 8edf3046 authored by 张晓彤's avatar 张晓彤

代码优化v3

parent c81d437a
...@@ -55,9 +55,9 @@ class Congestion(AlgorithmBase): ...@@ -55,9 +55,9 @@ class Congestion(AlgorithmBase):
task = self.truck.get_truck_current_task()[truck_id] task = self.truck.get_truck_current_task()[truck_id]
group_dynamic_excavator_num = len(self.group.dump) group_dynamic_excavator_num = len(self.group.group_dumps)
group_dynamic_dump_num = len(self.group.excavator) group_dynamic_dump_num = len(self.group.group_excavators)
except Exception as es: except Exception as es:
self.logger.error("车辆调度信息读取异常") self.logger.error("车辆调度信息读取异常")
...@@ -158,9 +158,9 @@ class ExpectedTime(AlgorithmBase): ...@@ -158,9 +158,9 @@ class ExpectedTime(AlgorithmBase):
truck_avl_time = self.pre_sch.get_truck_avl_time(truck_id=truck_id) truck_avl_time = self.pre_sch.get_truck_avl_time(truck_id=truck_id)
group_dynamic_excavator_num = len(self.group.excavator) group_dynamic_excavator_num = len(self.group.group_excavators)
group_dynamic_unload_area_num = len(self.group.unload_area) group_dynamic_unload_area_num = len(self.group.group_unload_areas)
# except Exception as es: # except Exception as es:
# self.logger.error("车辆调度信息读取异常") # self.logger.error("车辆调度信息读取异常")
...@@ -174,7 +174,7 @@ class ExpectedTime(AlgorithmBase): ...@@ -174,7 +174,7 @@ class ExpectedTime(AlgorithmBase):
# try: # try:
self.logger.info(f'矿卡 {truck_id}') self.logger.info(f'矿卡 {truck_id}')
self.logger.info("矿卡状态:矿卡启动或故障恢复") self.logger.info("矿卡状态:矿卡启动或故障恢复")
self.logger.info(f"涉及挖机:{self.group.excavator}") self.logger.info(f"涉及挖机:{self.group.group_excavators}")
# self.logger.info(f"涉及挖机:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}") # self.logger.info(f"涉及挖机:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}")
# except Exception as es: # except Exception as es:
# self.logger.error(f"矿卡{truck_id}状态不匹配") # self.logger.error(f"矿卡{truck_id}状态不匹配")
...@@ -185,7 +185,7 @@ class ExpectedTime(AlgorithmBase): ...@@ -185,7 +185,7 @@ class ExpectedTime(AlgorithmBase):
excavator_val_time_dict = self.pre_sch.get_excavator_avl_time() excavator_val_time_dict = self.pre_sch.get_excavator_avl_time()
# 局部挖机可用时间 list # 局部挖机可用时间 list
group_excavator_avl_time_ls = np.full(len(self.group.excavator), 0.0) group_excavator_avl_time_ls = np.full(len(self.group.group_excavators), 0.0)
self.logger.info("self.group.excavator_uuid_index_dict") self.logger.info("self.group.excavator_uuid_index_dict")
self.logger.info(self.group.excavator_uuid_index_dict) self.logger.info(self.group.excavator_uuid_index_dict)
...@@ -229,18 +229,18 @@ class ExpectedTime(AlgorithmBase): ...@@ -229,18 +229,18 @@ class ExpectedTime(AlgorithmBase):
# try: # try:
self.logger.info(f'矿卡 {truck_id}') self.logger.info(f'矿卡 {truck_id}')
self.logger.info("矿卡状态:矿卡空载") self.logger.info("矿卡状态:矿卡空载")
self.logger.info(f"涉及卸载设备:{self.group.dump}") self.logger.info(f"涉及卸载设备:{self.group.group_dumps}")
# self.logger.info(f"涉及卸载设备:{list(DeviceMap.dump_uuid_to_index_dict.keys())}") # self.logger.info(f"涉及卸载设备:{list(DeviceMap.dump_uuid_to_index_dict.keys())}")
# except Exception as es: # except Exception as es:
# self.logger.error(f"矿卡{truck_id}状态不匹配") # self.logger.error(f"矿卡{truck_id}状态不匹配")
# self.logger.error(es) # self.logger.error(es)
try: try:
# get dump available time (List) for all # get group_dumps available time (List) for all
dump_val_time_dict = self.pre_sch.get_dump_avl_time() dump_val_time_dict = self.pre_sch.get_dump_avl_time()
# get dump available time (List) within the group # get group_dumps available time (List) within the group
group_dump_val_time_ls = np.full(len(self.group.unload_area), 0.0) group_dump_val_time_ls = np.full(len(self.group.group_unload_areas), 0.0)
self.logger.info("self.group.dump_uuid_index_dict") self.logger.info("self.group.dump_uuid_index_dict")
self.logger.info(self.group.dump_uuid_index_dict) self.logger.info(self.group.dump_uuid_index_dict)
...@@ -248,17 +248,17 @@ class ExpectedTime(AlgorithmBase): ...@@ -248,17 +248,17 @@ class ExpectedTime(AlgorithmBase):
for dump_id, dump_index in self.group.dump_uuid_index_dict.items(): for dump_id, dump_index in self.group.dump_uuid_index_dict.items():
group_dump_val_time_ls[dump_index] = dump_val_time_dict[dump_id] group_dump_val_time_ls[dump_index] = dump_val_time_dict[dump_id]
# get truck located excavator id (uuid) from truck trip # get truck located group_excavators id (uuid) from truck trip
if int(trip[1]) < 0 or int(trip[1]) >= len(DeviceMap.excavator_index_to_uuid_dict): if int(trip[1]) < 0 or int(trip[1]) >= len(DeviceMap.excavator_index_to_uuid_dict):
raise CoreException(105, f'车辆 {truck_id} 行程驶往 {int(trip[1])} 号挖机越界') raise CoreException(105, f'车辆 {truck_id} 行程驶往 {int(trip[1])} 号挖机越界')
excavator_id = DeviceMap.excavator_index_to_uuid_dict[int(trip[1])] excavator_id = DeviceMap.excavator_index_to_uuid_dict[int(trip[1])]
# get excavator index (int) within group from group's excavator_group_index # get group_excavators index (int) within group from group's excavator_group_index
if excavator_id not in self.group.excavator_uuid_index_dict: if excavator_id not in self.group.excavator_uuid_index_dict:
raise CoreException(106, f'挖机 {excavator_id} 不存在于分组 {self.group.name} excavator_uuid_index_dict') raise CoreException(106, f'挖机 {excavator_id} 不存在于分组 {self.group.name} excavator_uuid_index_dict')
excavator_group_index = self.group.excavator_uuid_index_dict[excavator_id] excavator_group_index = self.group.excavator_uuid_index_dict[excavator_id]
# get travelling time (List) to each dump # get travelling time (List) to each group_dumps
truck_reach_time_ls = 60 * self.group.to_unload_area_distance[excavator_group_index, :] \ truck_reach_time_ls = 60 * self.group.to_unload_area_distance[excavator_group_index, :] \
/ 1000 / self.truck.heavy_speed[truck_id] + truck_avl_time / 1000 / self.truck.heavy_speed[truck_id] + truck_avl_time
...@@ -296,18 +296,18 @@ class ExpectedTime(AlgorithmBase): ...@@ -296,18 +296,18 @@ class ExpectedTime(AlgorithmBase):
# try: # try:
self.logger.info(f'矿卡 {truck_id}') self.logger.info(f'矿卡 {truck_id}')
self.logger.info("矿卡状态:矿卡重载") self.logger.info("矿卡状态:矿卡重载")
self.logger.info(f'涉及挖机设备:{self.group.excavator}') self.logger.info(f'涉及挖机设备:{self.group.group_excavators}')
# self.logger.info(f"涉及挖机设备:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}") # self.logger.info(f"涉及挖机设备:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}")
# except Exception as es: # except Exception as es:
# self.logger.error(f"矿卡{truck_id}状态不匹配") # self.logger.error(f"矿卡{truck_id}状态不匹配")
# self.logger.error(es) # self.logger.error(es)
try: try:
# get excavator available time (List) for all # get group_excavators available time (List) for all
excavator_val_time = self.pre_sch.get_excavator_avl_time() excavator_val_time = self.pre_sch.get_excavator_avl_time()
# get excavator available time (List) within the group # get group_excavators available time (List) within the group
group_excavator_avl_time_ls = np.full(len(self.group.excavator), 0.0) group_excavator_avl_time_ls = np.full(len(self.group.group_excavators), 0.0)
self.logger.info("self.group.excavator_uuid_index_dict") self.logger.info("self.group.excavator_uuid_index_dict")
self.logger.info(self.group.excavator_uuid_index_dict) self.logger.info(self.group.excavator_uuid_index_dict)
...@@ -315,10 +315,10 @@ class ExpectedTime(AlgorithmBase): ...@@ -315,10 +315,10 @@ class ExpectedTime(AlgorithmBase):
for excavator_id, excavator_index in self.group.excavator_uuid_index_dict.items(): for excavator_id, excavator_index in self.group.excavator_uuid_index_dict.items():
group_excavator_avl_time_ls[excavator_index] = excavator_val_time[excavator_id] group_excavator_avl_time_ls[excavator_index] = excavator_val_time[excavator_id]
# get truck located dump id (uuid) from truck trip # get truck located group_dumps id (uuid) from truck trip
dump_id = DeviceMap.dump_index_to_uuid_dict[int(trip[1])] dump_id = DeviceMap.dump_index_to_uuid_dict[int(trip[1])]
# get unload area id (uuid) from DispatchInfo dump_id to unload_area mapping # get unload area id (uuid) from DispatchInfo dump_id to group_unload_areas mapping
unload_area_id = DispatchInfo.dump_unload_area_dict[dump_id] unload_area_id = DispatchInfo.dump_unload_area_dict[dump_id]
# get unload area id (uuid) from DispatchInfo dump_id to unload # get unload area id (uuid) from DispatchInfo dump_id to unload
......
This diff is collapsed.
...@@ -22,9 +22,9 @@ class PreSchedule: ...@@ -22,9 +22,9 @@ class PreSchedule:
根据矿卡请求队列及抵达信息,计算设备最早可用时间 根据矿卡请求队列及抵达信息,计算设备最早可用时间
Attribute: Attribute:
equipment class: truck, excavator, dump equipment class: truck, group_excavators, group_dumps
schedule start time schedule start time
equipment available time: truck, excavator, dump equipment available time: truck, group_excavators, group_dumps
""" """
......
...@@ -231,9 +231,9 @@ class DispatchSubmission: ...@@ -231,9 +231,9 @@ class DispatchSubmission:
""" """
self.logger.info(f'调度分组: {group.group_id} {DispatchInfo.group_name[group.group_id]}') self.logger.info(f'调度分组: {group.group_id} {DispatchInfo.group_name[group.group_id]}')
self.logger.info(f'组内车辆 {group.truck_set}') self.logger.info(f'组内车辆 {group.group_trucks}')
self.logger.info(f'组内挖机 {group.excavator}') self.logger.info(f'组内挖机 {group.group_excavators}')
self.logger.info(f'组内卸点 {group.dump}') self.logger.info(f'组内卸点 {group.group_dumps}')
self.logger.info(f'调度模式 {group.group_mode}') self.logger.info(f'调度模式 {group.group_mode}')
self.logger.info("dispatch_plan_dict") self.logger.info("dispatch_plan_dict")
self.logger.info(dispatch_plan_dict) self.logger.info(dispatch_plan_dict)
......
...@@ -25,15 +25,15 @@ class DispatchInfo: ...@@ -25,15 +25,15 @@ class DispatchInfo:
load_excavator_dict = {} # 装载区id-->>电铲编号的映射 load_excavator_dict = {} # 装载区id-->>电铲编号的映射
excavator_load_dict = {} # 电铲编号->>装载区id的映射 excavator_load_dict = {} # 电铲编号->>装载区id的映射
# excavator <-> group id # group_excavators <-> group id
group_excavator_dict = {} # team_id -> dict {[excavator_id, excavator_id], ...} group_excavator_dict = {} # team_id -> dict {[excavator_id, excavator_id], ...}
excavator_group_dict = {} # excavator_id -> team_id 问题:多个key值对应一个value值 excavator_group_dict = {} # excavator_id -> team_id 问题:多个key值对应一个value值
# unload_area <-> group id # group_unload_areas <-> group id
group_unload_area_dict = {} # team_id -> dict {unload_area_id, unload_area_id, ...} group_unload_area_dict = {} # team_id -> dict {unload_area_id, unload_area_id, ...}
unload_area_group_dict = {} # unload_area_id -> team_id unload_area_group_dict = {} # unload_area_id -> team_id
# dump <-> group id # group_dumps <-> group id
group_dump_dict = {} group_dump_dict = {}
dump_group_dict = {} dump_group_dict = {}
...@@ -54,7 +54,7 @@ class DispatchInfo: ...@@ -54,7 +54,7 @@ class DispatchInfo:
# truck -> match(excavator_id, unload_area_id) # truck -> match(excavator_id, unload_area_id)
truck_match_dict = {} truck_match_dict = {}
# unload_area <-> dump id # group_unload_areas <-> group_dumps id
dump_unload_area_dict = {} dump_unload_area_dict = {}
unload_area_dump_dict = {} unload_area_dump_dict = {}
...@@ -204,7 +204,7 @@ class DispatchInfo: ...@@ -204,7 +204,7 @@ class DispatchInfo:
# update excavator_id <-> group_id && unload_area_id <-> group_id && truck_id <-> group_id # update excavator_id <-> group_id && unload_area_id <-> group_id && truck_id <-> group_id
try: try:
for item in session_mysql.query(DispatchSetting).filter_by(isdeleted=0).all(): for item in session_mysql.query(DispatchSetting).filter_by(isdeleted=0).all():
# add excavator # add group_excavators
if item.group_id not in cls.group_excavator_dict.keys(): if item.group_id not in cls.group_excavator_dict.keys():
cls.group_excavator_dict[item.group_id] = [item.exactor_id] cls.group_excavator_dict[item.group_id] = [item.exactor_id]
else: else:
...@@ -212,7 +212,7 @@ class DispatchInfo: ...@@ -212,7 +212,7 @@ class DispatchInfo:
cls.group_excavator_dict[item.group_id].append(item.exactor_id) cls.group_excavator_dict[item.group_id].append(item.exactor_id)
cls.excavator_group_dict[item.exactor_id] = item.group_id cls.excavator_group_dict[item.exactor_id] = item.group_id
# add unload_area # add group_unload_areas
if item.group_id not in cls.group_unload_area_dict.keys(): if item.group_id not in cls.group_unload_area_dict.keys():
cls.group_unload_area_dict[item.group_id] = [item.unload_area_id] cls.group_unload_area_dict[item.group_id] = [item.unload_area_id]
else: else:
...@@ -220,7 +220,7 @@ class DispatchInfo: ...@@ -220,7 +220,7 @@ class DispatchInfo:
cls.group_unload_area_dict[item.group_id].append(item.unload_area_id) cls.group_unload_area_dict[item.group_id].append(item.unload_area_id)
cls.unload_area_group_dict[item.unload_area_id] = item.group_id cls.unload_area_group_dict[item.unload_area_id] = item.group_id
# add dump # add group_dumps
if item.group_id not in cls.group_dump_dict.keys(): if item.group_id not in cls.group_dump_dict.keys():
cls.group_dump_dict[item.group_id] = [item.dump_id] cls.group_dump_dict[item.group_id] = [item.dump_id]
else: else:
......
...@@ -48,13 +48,13 @@ logger = get_logger("zxt.para") ...@@ -48,13 +48,13 @@ logger = get_logger("zxt.para")
# excavator_uuid_to_name_dict, dump_uuid_to_name_dict = build_equipment_uuid_name_map() # excavator_uuid_to_name_dict, dump_uuid_to_name_dict = build_equipment_uuid_name_map()
# #
# # 矿卡集合 # # 矿卡集合
# truck_set = set(update_total_truck()) # group_trucks = set(update_total_truck())
# #
# # 固定派车矿卡集合 # # 固定派车矿卡集合
# fixed_truck_set = set(update_fixdisp_truck()) # fixed_truck_set = set(update_fixdisp_truck())
# #
# # 动态派车矿卡集合 # # 动态派车矿卡集合
# # dynamic_truck_set = truck_set.difference(fixed_truck_set) # # dynamic_truck_set = group_trucks.difference(fixed_truck_set)
# dynamic_truck_set = update_dynamic_truck() # dynamic_truck_set = update_dynamic_truck()
# #
# dynamic_truck_num = len(dynamic_truck_set) # dynamic_truck_num = len(dynamic_truck_set)
...@@ -472,7 +472,7 @@ def global_period_para_update(): ...@@ -472,7 +472,7 @@ def global_period_para_update():
# 矿卡集合 # 矿卡集合
truck_set = set(update_total_truck()) truck_set = set(update_total_truck())
logger.info("truck_set") logger.info("group_trucks")
logger.info(truck_set) logger.info(truck_set)
# 固定派车矿卡集合 # 固定派车矿卡集合
...@@ -482,7 +482,7 @@ def global_period_para_update(): ...@@ -482,7 +482,7 @@ def global_period_para_update():
logger.info(fixed_truck_set) logger.info(fixed_truck_set)
# 动态派车矿卡集合 # 动态派车矿卡集合
# dynamic_truck_set = truck_set.difference(fixed_truck_set) # dynamic_truck_set = group_trucks.difference(fixed_truck_set)
dynamic_truck_set = update_dynamic_truck() dynamic_truck_set = update_dynamic_truck()
dynamic_truck_num = len(dynamic_truck_set) dynamic_truck_num = len(dynamic_truck_set)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# @Time : 2021/8/24 11:28 # @Time : 2021/8/24 11:28
# @Author : Opfer # @Author : Opfer
# @Site : # @Site :
# @File : dump.py # @File : group_dumps.py
# @Software: PyCharm # @Software: PyCharm
from data.para_config import * from data.para_config import *
...@@ -33,7 +33,7 @@ class DumpInfo(WalkManage): ...@@ -33,7 +33,7 @@ class DumpInfo(WalkManage):
self.dump_strength = np.zeros(self.dynamic_dump_num) self.dump_strength = np.zeros(self.dynamic_dump_num)
# 日志器 # 日志器
self.logger = get_logger("zxt.dump") self.logger = get_logger("zxt.group_dumps")
# # 参数初始化 # # 参数初始化
# self.dump_para_period_update() # self.dump_para_period_update()
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# @Time : 2021/8/24 11:28 # @Time : 2021/8/24 11:28
# @Author : Opfer # @Author : Opfer
# @Site : # @Site :
# @File : excavator.py # @File : group_excavators.py
# @Software: PyCharm # @Software: PyCharm
from data.para_config import * from data.para_config import *
...@@ -37,7 +37,7 @@ class ExcavatorInfo(WalkManage): ...@@ -37,7 +37,7 @@ class ExcavatorInfo(WalkManage):
self.excavator_strength = np.zeros(self.dynamic_excavator_num) self.excavator_strength = np.zeros(self.dynamic_excavator_num)
# 日志器 # 日志器
self.logger = get_logger("zxt.excavator") self.logger = get_logger("zxt.group_excavators")
# #
# # 参数初始化 # # 参数初始化
# self.excavator_para_period_update() # self.excavator_para_period_update()
......
...@@ -76,7 +76,7 @@ class TruckInfo(WalkManage): ...@@ -76,7 +76,7 @@ class TruckInfo(WalkManage):
# 日志 # 日志
self.logger = get_logger("zxt.truck") self.logger = get_logger("zxt.truck")
# # 初始化读取参数 # # 初始化读取参数
# self.truck_para_period_update(dump, excavator) # self.truck_para_period_update(group_dumps, group_excavators)
# # 矿卡所属group # # 矿卡所属group
# self.truck_group = {} # self.truck_group = {}
# 矿卡禁用列表 # 矿卡禁用列表
...@@ -428,7 +428,7 @@ class TruckInfo(WalkManage): ...@@ -428,7 +428,7 @@ class TruckInfo(WalkManage):
# self.dump_hold_truck_num[end_eqp_index] = self.dump_hold_truck_num[end_eqp_index] + 1 # self.dump_hold_truck_num[end_eqp_index] = self.dump_hold_truck_num[end_eqp_index] + 1
# 其他状态,矿卡状态为-2,equipment_pair表不存在该矿卡 # 其他状态,矿卡状态为-2,equipment_pair表不存在该矿卡
else: else:
# end_eqp_index = excavator.excavator_uuid_to_index_dict[item.exactor_id] # end_eqp_index = group_excavators.excavator_uuid_to_index_dict[item.exactor_id]
# self.excavator_hold_truck_num[end_eqp_index] = self.excavator_hold_truck_num[end_eqp_index] + 1 # self.excavator_hold_truck_num[end_eqp_index] = self.excavator_hold_truck_num[end_eqp_index] + 1
pass pass
except Exception as es: except Exception as es:
......
...@@ -474,7 +474,7 @@ def get_lanes_between_entrances(closer_node_id, further_node_id): ...@@ -474,7 +474,7 @@ def get_lanes_between_entrances(closer_node_id, further_node_id):
def get_excavator_state(excavator_id): def get_excavator_state(excavator_id):
""" """
get excavator state. get group_excavators state.
:param excavator_id: :param excavator_id:
:return: state :return: state
""" """
......
...@@ -142,7 +142,7 @@ class Topo(): ...@@ -142,7 +142,7 @@ class Topo():
Entrancenode_for_dump = str(session_postgre.query(DumpArea).filter_by(Id=item[0][1]).first().EntranceNodeId) Entrancenode_for_dump = str(session_postgre.query(DumpArea).filter_by(Id=item[0][1]).first().EntranceNodeId)
dump_name = str(session_postgre.query(DumpArea).filter_by(Id=item[0][1]).first().Name) dump_name = str(session_postgre.query(DumpArea).filter_by(Id=item[0][1]).first().Name)
self.unload_G.add_node(Exitnode_for_digging, name='digging', type=digging_name) self.unload_G.add_node(Exitnode_for_digging, name='digging', type=digging_name)
self.unload_G.add_node(Entrancenode_for_dump, name='dump', type=dump_name) self.unload_G.add_node(Entrancenode_for_dump, name='group_dumps', type=dump_name)
# path_node_for_trip.append(Exitnode_for_digging) # add start node for trip # path_node_for_trip.append(Exitnode_for_digging) # add start node for trip
...@@ -215,7 +215,7 @@ class Topo(): ...@@ -215,7 +215,7 @@ class Topo():
self.load_G_all_nodes.append(Entrancenode_for_digging) self.load_G_all_nodes.append(Entrancenode_for_digging)
self.load_G_digging_nodes.append(Entrancenode_for_digging) self.load_G_digging_nodes.append(Entrancenode_for_digging)
self.load_G.add_node(Exitnode_for_dump, name='dump', type=digging_name) self.load_G.add_node(Exitnode_for_dump, name='group_dumps', type=digging_name)
self.load_G.add_node(Entrancenode_for_digging, name='digging', type=dump_name) self.load_G.add_node(Entrancenode_for_digging, name='digging', type=dump_name)
try: try:
...@@ -333,7 +333,7 @@ class Topo(): ...@@ -333,7 +333,7 @@ class Topo():
for (u, wt) in self.unload_G.nodes.data('name'): for (u, wt) in self.unload_G.nodes.data('name'):
# select next reachable target # select next reachable target
if wt == 'dump': if wt == 'group_dumps':
if allow: if allow:
target_list.append(u) target_list.append(u)
else: else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment