更新贪心求解失败的显示问题

main
zart 1 year ago
parent 85b797bfd2
commit 50a7f7fb1c

@ -582,6 +582,15 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.show_path() # 显示路径
self.statusbar.showMessage(f"算法执行时间为{path[2]:.2f}")
else:
rvalue = self.cp.set_display_path(path[2], min_edges)
# 路径计算失败时,如果最后一条路径的节点之一和起相同,则删除最后一条路径
if rvalue[0][-1].node1_id == path[2][0] or rvalue[0][-1].node2_id == path[2][0]:
rvalue[0].pop()
self.Path = rvalue[0]
self.show_node() # 显示节点
self.show_node_conn() # 显示连接
self.show_path() # 显示路径
self.statusbar.showMessage(path[1])
self.warning_box(path[1])
self.auto_solve_init() # 初始化判断显示

@ -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):

Loading…
Cancel
Save