gpt4 book ai didi

python - 如何获得给定顶点的最小子图?

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:10 26 4
gpt4 key购买 nike

我有一个图表。我想提取一个子图,其中包含列表中的节点以及链接到列表中节点的其他节点。

示例:一个图有 4 个节点:1、2、3、4,边为 1-2、2-3、1-4、3-4。如果我的列表有节点 1,4,那么子图应该是 1-2、1-4 和 3-4

像 py2neo 这样的 python 库中是否有用于此目的的函数?

最佳答案

对于neo4j,你可以使用Cypher queries从数据库中提取子图。您可以只使用查询的 MATCH 子句来表达您正在寻找的模式。

在 python 中,您可能会使用 py2neo运行密码查询。在这里,我假设您拥有的节点列表是节点 ID。你可能会这样做:

from py2neo import Graph
graph = Graph()
targets = [1,4]
for target in targets:
results = graph.cypher.execute("MATCH (n {id: %d})-[:foo]->(otherNode) RETURN n, otherNode" % target)
# process results

需要注意的一件事。您的图表指定 1 连接到 4,但 3 也是如此。这实际上会使连接的子图组件 1-3-4,而不是 1-4 和 3-4。因为您是这样指定的,请注意我上面所做的匹配只为您提供了从您正在搜索的节点开始的一跳。

关于python - 如何获得给定顶点的最小子图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com