【问题标题】:Graph matching algorithms图匹配算法
【发布时间】:2018-10-16 17:30:50
【问题描述】:

我一直在寻找用 Python 编写的图匹配算法,但找不到太多。

我目前正在尝试匹配源自两组不同字符序列的两个不同图形。我知道这两个图之间存在潜在的联系,更准确地说是节点之间的一对一映射。但是这些图没有相同的标签,因此我需要仅通过比较拓扑和/或属性来返回节点映射的图匹配算法。通过测试,我希望最大化正确匹配。

我一直在使用 graphsim 包中的 BlondelHeymans,并打算也使用同一包中的 Tacsim。 我想测试其他选项,可能更标准,比如最大子图同构或找到两个图之间匹配非常好的子图。如果能够提供匹配,图形编辑距离也可能会有所帮助。

问题是我找不到任何实现的东西,即使在我正在使用的 Networkx 中也是如此。有谁知道任何 Python 实现?如果这些选项使用 Networkx,那将是一个加分项。

【问题讨论】:

  • 我敢打赌,一种可以迭代删除节点以最大化两个子图之间的匹配分数或在结果方面相当的策略的策略也会很棒。
  • C++ boost 库中有图和子图同构方法。您可以使用 boost.python 来公开您需要的内容。

标签: python graph match graph-algorithm


【解决方案1】:

我发现了在 Python 中使用 NetworkX 的 Graph Edit Distance 算法的实现。

https://github.com/Jacobe2169/GMatch4py

“GMatch4py 是一个专门用于图形匹配的库。图形结构存储在 NetworkX 图形对象中。GMatch4py 算法是用 Cython 实现的以提高性能。”

【讨论】:

    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2016-07-02
    • 2016-05-29
    相关资源
    最近更新 更多