向各位大神请教,求有向图的关键节点问题,节点到节点的所有路径
发布于 1 年前 作者 wsljw 637 次浏览 来自 问答

本人Neo4j新手一枚,想向各位大神请教。 简述:求neo4j数据库中两个节点之间的所有路径,并统计路径上所有节点出现的次数。

  需求:求有向图中的关键节点
  分析:数据库中存储的大多数是各不相交的有向图,每个联通的有向图都有1到多个入度为0的开始节点和1到多个初度为0的结束节点
  问题:想要计算图中比较重要的节点,如果仅仅是通过入度和出度来确定关键节点则像下图中的 G 节点会被漏掉。
  解决办法:想要通过统计初始节点到结束节点之间的所有路径,并计算这些路径中节点出现的频率来确定处于图的连接点位置的重要节点。
  
  ![QQ截图20170727220620.png](http://ofsebki4w.bkt.clouddn.com/FnaSr7y5it37Yn-F6iDUm4dLDmJC)
2 回复

不知道能否帮到你: 1.诸葛珪到诸葛瞻之间的所有路径: MATCH p=((n1:Person{name:“诸葛珪”})- [] -> (n2:Person{name:“诸葛瞻”})) RETURN p 2.诸葛珪到诸葛瞻之间的最短路径 MATCH p=shortestPath((n1:Person{name:“诸葛珪”})- [] -> (n2:Person{name:“诸葛瞻”})) RETURN p image.png

CALL apoc.algo.allSimplePaths(startNode, endNode, 关系类型, 设定遍历层数),你可以尝试使用,不过数据较大的话,性能可能会遇到问题,需要设定合适的路径长度。 节点次数,可基于路径再统计。

回到顶部