减少爆管定位代码中引入的不确定性

This commit is contained in:
2026-03-09 11:29:57 +08:00
parent d55e23bc44
commit f9111ab9c1
5 changed files with 145 additions and 31 deletions
+24 -6
View File
@@ -345,6 +345,7 @@ def DN_search_multi_simple_add_flow_count_new(
node_y,
pipe_start_node_all,
pipe_end_node_all,
pipe_diameter,
couple_node_length,
node_pipe_dic,
all_node_series,
@@ -415,7 +416,12 @@ def DN_search_multi_simple_add_flow_count_new(
# group 分组,得出候选漏损中心
stage_start = perf_counter()
candidate_center_list, candidate_group_list, new_all_node = (
(
candidate_center_list,
candidate_group_list,
new_all_node,
candidate_center_candidates,
) = (
metis_grouping_pipe_weight(
G0,
wn,
@@ -429,6 +435,7 @@ def DN_search_multi_simple_add_flow_count_new(
node_pipe_dic,
all_node_series,
couple_node_length,
pipe_diameter,
)
)
_accumulate_stage(stage_timing, "group_partitioning", stage_start)
@@ -479,19 +486,30 @@ def DN_search_multi_simple_add_flow_count_new(
add_center = []
leak_center_dict = dict()
for i in range(len(candidate_center_list)):
houxuan_center = []
primary_center = candidate_center_list[i]
houxuan_center = [
center
for center in candidate_center_candidates[i]
if center != primary_center
]
candidate_group_set = set(candidate_group_list[i])
for each_center in record_center_dataset:
if (
each_center in candidate_group_set
and each_center != candidate_center_list[i]
and each_center != primary_center
):
houxuan_center.append(each_center)
add_center = add_center + houxuan_center
houxuan_center.append(candidate_center_list[i])
leak_center_dict[candidate_center_list[i]] = houxuan_center
leak_center_dict[primary_center] = _dedupe_preserve_order(
houxuan_center + [primary_center]
)
add_center = _dedupe_preserve_order(add_center)
for each_center in candidate_center_list:
for each_group_centers in candidate_center_candidates:
for each_center in each_group_centers:
if each_center not in record_center_set:
record_center_dataset.append(each_center)
record_center_set.add(each_center)
for each_center in add_center:
if each_center not in record_center_set:
record_center_dataset.append(each_center)
record_center_set.add(each_center)