def bag_of_elementary_cycles(graph):
""" Bag of elementary cycles """
bag = {}
for cycle in nx.simple_cycles(graph):
ns = map(lambda x: node_label(graph.node[x]), cycle)
# Determine smallest label and rotate cycle
i = min(enumerate(ns), key=lambda x: x[1])[0]
ns.extend(ns[:i])
ns[:i] = []
label = '-'.join(ns)
if label not in bag:
bag[label] = 0
bag[label] += 1
return bag
评论列表
文章目录