|
|
|
@ -115,7 +115,7 @@ class CustomPath:
|
|
|
|
|
return self.Edges
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def creat_node_data(self, data:int|list):
|
|
|
|
|
def creat_node_data(self, data):
|
|
|
|
|
if isinstance(data, int):
|
|
|
|
|
num = data
|
|
|
|
|
else:
|
|
|
|
@ -390,8 +390,8 @@ class CustomPath:
|
|
|
|
|
if node.id == list(remaining_nodes)[0]:
|
|
|
|
|
label2 = node.label
|
|
|
|
|
if label and label2:
|
|
|
|
|
return False, (f"当前'{label}'的节点无直接路径到"
|
|
|
|
|
f"'{label2}'的节点贪心算法求解失败")
|
|
|
|
|
return False, (f"当前贪心路径{path}\n'{label}'的节点无直接路径到"
|
|
|
|
|
f"'{label2}'的节点贪心算法求解失败"), path
|
|
|
|
|
path.append(next_node)
|
|
|
|
|
remaining_nodes.remove(next_node)
|
|
|
|
|
current_node = next_node
|
|
|
|
@ -405,8 +405,8 @@ class CustomPath:
|
|
|
|
|
if node.id == start_node:
|
|
|
|
|
label2 = node.label
|
|
|
|
|
if label and label2:
|
|
|
|
|
return False, (f"当前'{label}'节点无直接路径到"
|
|
|
|
|
f"'{label2}'节点贪心算法求解失败")
|
|
|
|
|
return False, (f"当前贪心路径{path}\n'{label}'节点无直接路径到"
|
|
|
|
|
f"'{label2}'节点贪心算法求解失败"), path
|
|
|
|
|
end_time = time.time() # 记录结束时间
|
|
|
|
|
self.elapsed_time = end_time - start_time # 计算运行时间
|
|
|
|
|
return [path], self.calculate_path_dort(graph, path), self.elapsed_time
|
|
|
|
@ -514,7 +514,7 @@ class CustomPath:
|
|
|
|
|
num = len(user_paths)
|
|
|
|
|
for i in range(num): # 逐个节点进行匹配
|
|
|
|
|
if not user_paths[i] == min_path[i]:
|
|
|
|
|
return False, f"正确的贪心节点顺序为{min_path}\n你的第{i+1}个节点{user_paths[i]}不符合贪心规则。" # 返回不匹配的节点
|
|
|
|
|
return False, f"正确的贪心节点顺序为{min_path}\n你的第{i+1}个节点{min_path[i]}不符合贪心规则。" # 返回不匹配的节点
|
|
|
|
|
return True , None # 返回True表示是贪心路径
|
|
|
|
|
|
|
|
|
|
def Path_to_nodes(self, Path, start_node=0):
|
|
|
|
|