图中的模式匹配
我正在尝试找到用于搜索与定向图中指定模式相对应的部分的工具/算法,例如:
A->B->C 或或 A<->B->C
请建议我的方向我的搜索。
我的意思是模式匹配。我需要找到与指定模式匹配的所有节点和边组
I'm trying to find tool/algorithm for searching sections that corresponds to specified pattern in oriented graph, e.g.:
A->B->C or or A<->B->C
Please, suggest me direction of my searches.
I mean pattern matching. I need to find all group of nodes and edges, that matching specified pattern
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这不是子图同构问题吗?如果是,维基百科页面包含有关算法的部分。
Isn't this the Subgraph isomorphism problem? If yes, the Wikipedia page contains a section on algorithms.
图模式匹配是图重写工具的核心功能,他们提供预先实施的服务。
在例如 GrGen 中,您将示例模式写为 a:A --> b:B --> c:C,然后该工具为其生成一个模式匹配器,该模式匹配器适合主机图的特征(通过考虑有关图的统计数据进行优化)。
Graph pattern matching is the functionality at the core of graph rewrite tools, they offer it pre-implemented.
In e.g. GrGen you write down your example pattern as a:A --> b:B --> c:C, the tool then generates a pattern matcher for it, one that is adapted to the characteristics of the host graph (optimized by taking statistics about the graph into account).
关于可能的库,您可以在这里找到答案 Python 图形库。
至于模式匹配,如果您知道要搜索的模式,则只需遍历图形并比较路径,或者您可以使用函数来检索节点之间的路径并检查模式是否存在。
Regarding possible libraries you can find an answer here Python Graph Library.
As for the pattern matching, if you know the pattern you're searching for, you just need to traverse the graph and compare the paths or you can use a function to retrieve a path between nodes and check if the pattern exists.