【问题标题】:How can I calculate the girth of a graph using graph-tool?如何使用图形工具计算图形的周长?
【发布时间】:2018-11-06 12:58:53
【问题描述】:

Graph-tool 提供了许多用于评估图表的工具:https://graph-tool.skewed.de/static/doc/topology.html。但是,我找不到任何计算周长的方法,即图中的最短周期。

您知道是否存在适当的方法,或者我是否可以使用现有的方法来进行有效的计算?

【问题讨论】:

    标签: python graph-theory graph-tool


    【解决方案1】:

    我认为这可以使用all_paths 函数轻松计算。

    g = gt.collection.data["karate"]
    min_cycle_lengths = []
    for v in g.vertices():
        cycles_v = list(gt.all_paths(g, source = v, target = v))
        min_cycle_lengths.append(min([len(x)-1 for x in cycles_v if len(x) > 3]))
    
    girth = min(min_cycle_lengths)
    

    【讨论】:

    • 谢谢!需要在没有循环的情况下处理空列表并且计算量非常大,但可以完成这项工作,因为您可能无法在不找到所有路径的情况下逃脱,同时保持解决方案简单。
    • @blindeyes 代码有错误;现在更正了。基本上,您必须删除刚刚到达相邻顶点并立即返回的路径。我认为这是图形工具中的一个实现错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多