如果您从 R 中使用 igraph,请使用此选项
random_walk {igraph} | R 文档 |
random_walk
在图上执行随机游走,并返回随机游走经过的顶点。 random_edge_walk
功能相同,但返回随机游走经过的边。
random_walk(
graph,
start,
steps,
mode = c("out", "in", "all", "total"),
stuck = c("return", "error")
)
random_edge_walk(
graph,
start,
steps,
weights = NULL,
mode = c("out", "in", "all", "total"),
stuck = c("return", "error")
)
图 |
输入图可以是无向图或有向图。 |
开始 |
起始顶点。 |
steps |
要执行的步数。 |
模式 |
如何沿着有向边前进。 |
stuck |
如果随机游走被卡住,该怎么办。 |
weights |
边的权重。 较大的边权重会增加随机游走者选择该边的概率。 换句话说,较大的边权重对应于更强的连接。 如果存在,则使用 ‘weight’ 边属性。 如果您想忽略 ‘weight’ 边属性,请在此处提供 ‘ |
执行随机游走。 从给定的起始顶点开始,执行给定的步数,均匀随机地从实际顶点选择一条边。 在有向图中观察边方向(也请参阅 mode
参数)。 多个边和环边也会被观察到。
对于 random_walk
,是一个包含沿游走的顶点的顶点序列。 对于 random_edge_walk
,是一个包含沿游走的边的边序列。
## Stationary distribution of a Markov chain
g <- make_ring(10, directed = TRUE) %u%
make_star(11, center = 11) + edge(11, 1)
ec <- eigen_centrality(g, directed = TRUE)$vector
pg <- page_rank(g, damping = 0.999)$vector
w <- random_walk(g, start = 1, steps = 10000)
## These are similar, but not exactly the same
cor(table(w), ec)
## But these are (almost) the same
cor(table(w), pg)