修复管道加权计算逻辑bug,优化邻接关系处理

This commit is contained in:
2026-03-07 15:04:08 +08:00
parent 0c6c27a0c1
commit b9d9cef5ef
@@ -85,16 +85,25 @@ def metis_grouping_pipe_weight(
correspond_dic = {}
count_node = 0
w = []
for line in generate_adjlist_with_all_edges(G1, delimiter):
temp_node_name = line.split(sep=delimiter)
for node_name, neighbors in G1.adjacency():
w_temp = []
for i in range(len(temp_node_name) - 1):
temp_name_1 = temp_node_name[0] + "," + temp_node_name[i + 1]
w_temp.append(couple_node_length[temp_name_1])
n_t = [node_dict[node_name]]
for neighbor_name, edge_data in neighbors.items():
edge_key = f"{node_name},{neighbor_name}"
reverse_edge_key = f"{neighbor_name},{node_name}"
if edge_key in couple_node_length:
edge_weight = couple_node_length[edge_key]
elif reverse_edge_key in couple_node_length:
edge_weight = couple_node_length[reverse_edge_key]
elif edge_data.get("weight") is not None:
edge_weight = float(edge_data["weight"])
else:
raise KeyError(
f"Missing edge weight for partition edge '{edge_key}' in burst locator."
)
w_temp.append(edge_weight)
n_t.append(node_dict[neighbor_name])
w.append(w_temp)
n_t = []
for each_node in temp_node_name:
n_t.append(node_dict[each_node])
correspond_dic[n_t[0]] = count_node
count_node = count_node + 1
# del n_t[0]