跳到内容

此函数列出从一个源顶点到另一个或多个顶点的所有简单路径。如果路径不包含重复的顶点,则该路径是简单的。

用法

all_simple_paths(
  graph,
  from,
  to = V(graph),
  mode = c("out", "in", "all", "total"),
  cutoff = -1
)

参数

graph

输入图。

from

源顶点。

to

目标顶点或顶点集。默认为所有顶点。

mode

字符常量,用于指定对于有向图,应计算到给定顶点的最短路径还是从给定顶点出发的最短路径。 如果 out,则考虑从顶点出发的最短路径;如果 in,则考虑顶点的最短路径。 如果是默认值 all,则将使用相应的无向图,即搜索非有向路径。 此参数对于无向图将被忽略。

cutoff

要考虑的路径的最大长度。 如果为负数,则不使用截止值。

整数向量的列表,每个整数向量是从源顶点到目标顶点之一的路径。 路径由其顶点 ID 给出。

详细信息

请注意,两个顶点之间可能存在指数级数量的路径,如果您的图是格状结构,则使用此函数可能会耗尽内存。

此函数忽略多重边和环边。

参见

其他路径相关函数: diameter(), distance_table(), eccentricity(), graph_center(), radius()

示例


g <- make_ring(10)
all_simple_paths(g, 1, 5)
#> [[1]]
#> + 5/10 vertices, from 4e18fde:
#> [1] 1 2 3 4 5
#> 
#> [[2]]
#> + 7/10 vertices, from 4e18fde:
#> [1]  1 10  9  8  7  6  5
#> 
all_simple_paths(g, 1, c(3, 5))
#> [[1]]
#> + 3/10 vertices, from 4e18fde:
#> [1] 1 2 3
#> 
#> [[2]]
#> + 5/10 vertices, from 4e18fde:
#> [1] 1 2 3 4 5
#> 
#> [[3]]
#> + 7/10 vertices, from 4e18fde:
#> [1]  1 10  9  8  7  6  5
#> 
#> [[4]]
#> + 9/10 vertices, from 4e18fde:
#> [1]  1 10  9  8  7  6  5  4  3
#>