我想在R igraph中生成随机无环图。我知道该函数sample_pa根据Barabasi-Albert模型为m = 1个无比例无环图生成。我是否可以强制igraph为m的更高值生成非循环图?还是我们可以根据igraph R(或其他R包)中的其他算法生成非循环图?我的目的是生成具有不同分支模式的非循环图。因此,我对这些图表感兴趣。
答案 0 :(得分:3)
我想在R igraph中生成随机无环图。
我主要对无向图感兴趣。
无环无向图是一个森林,即一个图,其连接的组成部分是树。
我知道该函数sample_pa根据Barabasi-Albert模型为m = 1个无比例无环图生成。我很想知道是否可以强制igraph为m的更高值生成非循环图?
这在数学上是不可能的。 n
个节点上的树具有n-1
个边,而林则较少。对于m
中sample_pa
较高的值,将有更多的边,因此会有周期。
或者我们可以根据igraph R中的其他算法生成非循环图
浏览igraph中的随机图生成器。其中几个将输出树。例如,用sample_growing
选中citation = TRUE
。
但是,这些都不会统一采样树木。想必,您不仅想生成任何树,还想了解它们来自何处的分布。
最近,我为igraph贡献了一个统一的树采样器和一个统一的生成树采样器,但是它还没有出现在R接口中。您可以使用the Mathematica interface(当然也可以在C中)进行尝试。
Table[IGTreeGame[10], 6]
grid = IGSquareLattice[{10, 10}];
HighlightGraph[grid, IGRandomSpanningTree[grid], GraphHighlightStyle -> "DehighlightHide"]
但是从有向图上,总是有可能获得无向版本。
但不是非循环的。
通过用所需数量的1
随机填充邻接矩阵的上部很容易生成随机有向无环图。
将其转换为无向时,通常不会是非循环的。
例如,这不是非定向的非循环的:
事实上,任何简单无向图都可以是oriented,因此有向图将是非循环的。无向无环图和有向无环图之间几乎没有关系。