如何在igraph中生成非循环随机图?

时间:2018-11-20 16:46:22

标签: r igraph

我想在R igraph中生成随机无环图。我知道该函数sample_pa根据Barabasi-Albert模型为m = 1个无比例无环图生成。我是否可以强制igraph为m的更高值生成非循环图?还是我们可以根据igraph R(或其他R包)中的其他算法生成非循环图?我的目的是生成具有不同分支模式的非循环图。因此,我对这些图表感兴趣。

1 个答案:

答案 0 :(得分:3)

  

我想在R igraph中生成随机无环图。

  

我主要对无向图感兴趣。

无环无向图是一个森林,即一个图,其连接的组成部分是树。

  

我知道该函数sample_pa根据Barabasi-Albert模型为m = 1个无比例无环图生成。我很想知道是否可以强制igraph为m的更高值生成非循环图?

这在数学上是不可能的。 n个节点上的树具有n-1个边,而林则较少。对于msample_pa较高的值,将有更多的边,因此会有周期。

  

或者我们可以根据igraph R中的其他算法生成非循环图

浏览igraph中的随机图生成器。其中几个将输出树。例如,用sample_growing选中citation = TRUE

但是,这些都不会统一采样树木。想必,您不仅想生成任何树,还想了解它们来自何处的分布。

最近,我为igraph贡献了一个统一的树采样器和一个统一的生成树采样器,但是它还没有出现在R接口中。您可以使用the Mathematica interface(当然也可以在C中)进行尝试。

Table[IGTreeGame[10], 6]

enter image description here

grid = IGSquareLattice[{10, 10}];
HighlightGraph[grid, IGRandomSpanningTree[grid], GraphHighlightStyle -> "DehighlightHide"]

enter image description here

  

但是从有向图上,总是有可能获得无向版本。

但不是非循环的。

通过用所需数量的1随机填充邻接矩阵的上部很容易生成随机有向无环图。

将其转换为无向时,通常不会是非循环的。

例如,这不是非定向的非循环的:

enter image description here

事实上,任何简单无向图都可以是oriented,因此有向图将是非循环的。无向无环图和有向无环图之间几乎没有关系。