修复管道加权计算逻辑bug,优化邻接关系处理
This commit is contained in:
@@ -85,16 +85,25 @@ def metis_grouping_pipe_weight(
|
|||||||
correspond_dic = {}
|
correspond_dic = {}
|
||||||
count_node = 0
|
count_node = 0
|
||||||
w = []
|
w = []
|
||||||
for line in generate_adjlist_with_all_edges(G1, delimiter):
|
for node_name, neighbors in G1.adjacency():
|
||||||
temp_node_name = line.split(sep=delimiter)
|
|
||||||
w_temp = []
|
w_temp = []
|
||||||
for i in range(len(temp_node_name) - 1):
|
n_t = [node_dict[node_name]]
|
||||||
temp_name_1 = temp_node_name[0] + "," + temp_node_name[i + 1]
|
for neighbor_name, edge_data in neighbors.items():
|
||||||
w_temp.append(couple_node_length[temp_name_1])
|
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)
|
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
|
correspond_dic[n_t[0]] = count_node
|
||||||
count_node = count_node + 1
|
count_node = count_node + 1
|
||||||
# del n_t[0]
|
# del n_t[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user