graph-algorithm - 如何获取图上的孤立顶点

标签 graph-algorithm arangodb vertices

如何获取图形上的孤立顶点。我是 arangodb 的新手。 我想获取所有孤立的顶点并将其删除,以便于我分析数据。

最佳答案

使用 ArangoDB 3.x,以下 AQL 查询将计算 @nodes 中相对于特定边集合 @edges 的孤立节点:

FOR v IN @nodes
 LET degree = (FOR v1 IN 1..1 ANY v @edges 
               COLLECT WITH COUNT INTO c RETURN c)[0]
 FILTER degree==0
 COLLECT WITH COUNT into c
 RETURN c

如果可能有多个相关的 Edge 集合,则必须显式指定它们,除非您想依赖命名图中的现有规范。在这种情况下,您可以将上面的 @edges 替换为 GRAPH mygraph,其中 mygraph 是相关命名图的名称。

一旦您确认这就是您想要的,您就可以修改上面的内容以删除顶点。

上述方法(基于计算边缘)相当耗费资源,但我不知道更好的替代方法,因为即使在 JavaScript 中,您也可能必须使用 inEdges() 和 outEdges()。可能以顶点为中心的索引可能会有所帮助。

有关边缘优先的方法,请参阅 retrieve vertices with no linked edge in arangodb

关于graph-algorithm - 如何获取图上的孤立顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47769067/

相关文章:

rest - ArangoDB HTTP API 批量导入测试

javascript - 索引的顺序重要吗?

r - 控制哪些边在 r 中的 igraph 网络图中可见

java - 形状中的 Box2D 顶点

algorithm - 遍历所有区域的最短路径

Python ArangoDB

graph - ArangoDB 将顶点和边复制到邻居

algorithm - 计算矩阵中从源到目的地沿所有 4 个方向移动的路径

c# - 图中节点的拓扑排序子集

algorithm - 如何存储欧拉图结构?