def prune_edges(tree):
tree = tree.copy()
# Remove redundent edges
# Given: edges((a, b), (b, c), (a, c))
# Then : Edge (a, c) is not required
# As it is coverd by the path (a, b, c)
for name, data in tree.nodes(data=True):
for prereq in data['info']['after']:
paths = list(nx.all_simple_paths(tree, prereq, name))
if len(paths) > 1:
tree.remove_edge(prereq, name)
return tree
评论列表
文章目录