Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将图形分解为2节点或更大节点的最小子组件_R_Igraph - Fatal编程技术网

R 将图形分解为2节点或更大节点的最小子组件

R 将图形分解为2节点或更大节点的最小子组件,r,igraph,R,Igraph,我希望能够将我的图形分割成子组件,这样删除任何单个节点都不会创建更多的子组件(不包括单个节点)。作为示例,请参见下面的两幅图像 第一幅图显示了完整的图形。第二幅图显示了图的子组件,当它被拆分为最小的子组件时。从第二幅图像中可以看出,顶点名称一直保持不变。我不需要新的结构是一个单一的图,它可以是一个图的列表,甚至是每个组件中节点的列表 节点4-5-6的组件保持不变,因为删除三个节点中的任何一个都不会创建新组件,因为断开的节点将仅是一个节点。 目前,我正在尝试组合一个迭代过程,该过程按升序顺序删

我希望能够将我的图形分割成子组件,这样删除任何单个节点都不会创建更多的子组件(不包括单个节点)。作为示例,请参见下面的两幅图像

第一幅图显示了完整的图形。第二幅图显示了图的子组件,当它被拆分为最小的子组件时。从第二幅图像中可以看出,顶点名称一直保持不变。我不需要新的结构是一个单一的图,它可以是一个图的列表,甚至是每个组件中节点的列表

节点4-5-6的组件保持不变,因为删除三个节点中的任何一个都不会创建新组件,因为断开的节点将仅是一个节点。

目前,我正在尝试组合一个迭代过程,该过程按升序顺序删除节点,并递归到生成的新组件中。然而,这很难,我想其他人以前做得更好。

你说你想要“2个节点中最大节点的最小子组件”,并且你的示例具有“可能最小的子组件”。但实际上你的意思是最大的子组件,这样移除任何一个节点都不会产生更多的子组件,对吗?否则,您可以将该图拆分为所有2-图的集合

因此,我相信您的问题可以描述为查找所有“双连通组件”(也称为图的最大双连通子图):

正如您在评论中所说,igraph具有功能
biconnected_components(g)
,可以解决您的问题。:)

您说您想要“2个较大节点的最小子组件”,并且您的示例具有“可能的最小子组件”。但实际上你的意思是最大的子组件,这样移除任何一个节点都不会产生更多的子组件,对吗?否则,您可以将该图拆分为所有2-图的集合

因此,我相信您的问题可以描述为查找所有“双连通组件”(也称为图的最大双连通子图):


正如您在评论中所说,igraph具有功能
biconnected_components(g)
,可以解决您的问题。:)

您说您想要“2个节点中最大节点的最小子组件”,并且您的示例具有“可能的最小子组件”。但实际上你的意思是最大的子组件,这样移除任何一个节点都不会产生更多的子组件,对吗?否则,您可以将该图拆分为所有2-图的集合。那么,我相信你的问题可以描述为找到所有“双连通分量”(图的最大双连通子图):这是正确的。非常感谢,这正是我所需要的。igraph具有双连接的_组件(g)功能。所以我可以用它,你说你想要“2个节点中最小的子组件,大于2个节点”,你的例子有“最小的子组件”。但实际上你的意思是最大的子组件,这样移除任何一个节点都不会产生更多的子组件,对吗?否则,您可以将该图拆分为所有2-图的集合。那么,我相信你的问题可以描述为找到所有“双连通分量”(图的最大双连通子图):这是正确的。非常感谢,这正是我所需要的。igraph具有双连接的_组件(g)功能。所以我可以用它。