R igraph 手册页

如果您从 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

要执行的步数。

模式

如何沿着有向边前进。 "out" 沿着边的方向前进,"in" 与之相反。 "all" 忽略边的方向。 此参数对于无向图将被忽略。

stuck

如果随机游走被卡住,该怎么办。 "return" 返回部分游走,"error" 引发错误。

weights

边的权重。 较大的边权重会增加随机游走者选择该边的概率。 换句话说,较大的边权重对应于更强的连接。 如果存在,则使用 ‘weight’ 边属性。 如果您想忽略 ‘weight’ 边属性,请在此处提供 ‘NA’。

详细信息

执行随机游走。 从给定的起始顶点开始,执行给定的步数,均匀随机地从实际顶点选择一条边。 在有向图中观察边方向(也请参阅 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)

[包 igraph 版本 1.3.5 索引]