用java在图中查找簇

用java在图中查找簇,java,graph,neo4j,cluster-analysis,Java,Graph,Neo4j,Cluster Analysis,考虑以下陈述 有向图-1: a1->p1->b1->p2->c1 b1->p3->c2 b1->p4->c3 有向图-2: a1->p4->c2 a1->p1->b1 a2->p2->b1 b1->p3->c1 a2->p5->b2 这里“a”、“b”和“c”是顶点,所有“p”都是边。方向是从节点a到节点b/c。绘制图形时,它看起来与的幻灯片8中的图形相似 在图1中,有一个簇从节点b1开始,在图2中,有两个簇在b1处连接。所谓簇,我的意思是,所有向外的边都连接到一个顶点,也包括这组向外的边所涉及

考虑以下陈述

有向图-1:

a1->p1->b1->p2->c1 b1->p3->c2 b1->p4->c3

有向图-2:

a1->p4->c2 a1->p1->b1 a2->p2->b1 b1->p3->c1 a2->p5->b2

这里“a”、“b”和“c”是顶点,所有“p”都是边。方向是从节点a到节点b/c。绘制图形时,它看起来与的幻灯片8中的图形相似

在图1中,有一个簇从节点b1开始,在图2中,有两个簇在b1处连接。所谓簇,我的意思是,所有向外的边都连接到一个顶点,也包括这组向外的边所涉及的顶点。使用任何现有的基于java的graph API,是否有一种快速而简单的方法来查找这些集群?我还想找到连接到簇的边,如图1中的a1 p1 b1和图2中的b1 p3 c1。我是否遗漏/误用了一些图形术语?我看了一下,但没有找到我要找的东西

这些图非常小,大约有20个顶点和10条边

注意:添加了Neo4j标签,因为我觉得它是一个很好的候选者。Neo4j特定问题:有没有办法获得计数大于1的所有输出边?现在开始探索塞弗


提前谢谢

这些是有向图还是无向图?什么构成集群?这只是具有最高程度传入/传出边的顶点吗?@Matt根据您的评论对我的问题进行了编辑。是的,它是一个有向图。关于集群-是的,但不一定是最高的。一个簇可能由一个顶点和另一个顶点组成,其中一个顶点有5条向外的边,另一个顶点有3条向外的边。但簇不仅由该顶点组成,还包括该组或输出边中的其他顶点。簇:连接到一个顶点的所有输出边,以及连接到这些输出边的顶点。那么,这是否意味着每个返回的集群应该包括:一个中心节点、该节点的外边缘以及连接到这些外边缘另一侧的节点?@AlexAverbuch,是的,这是正确的外边缘>1。现在,我觉得我应该自己做,而不是在api中寻找一些东西。您只需要查找高阶节点及其邻居。算法应该返回什么?[1] 仅群集中心您可以稍后检索邻居[2]群集中心及其外边缘[3]群集中心及其外边缘,以及将它们连接到另一个群集的关系?