跳到内容

[Deprecated]

get.shortest.paths() 已重命名为 shortest_paths(),以创建更一致的 API。

用法

get.shortest.paths(
  graph,
  from,
  to = V(graph),
  mode = c("out", "all", "in"),
  weights = NULL,
  output = c("vpath", "epath", "both"),
  predecessors = FALSE,
  inbound.edges = FALSE,
  algorithm = c("automatic", "unweighted", "dijkstra", "bellman-ford")
)

参数

graph

要操作的图。

from

数值常量,将计算从或到最短路径的顶点。请注意,现在这不是顶点 ID 的向量,而只是一个顶点。

to

数值向量,将计算最短路径的顶点。默认情况下,它包括所有顶点。请注意,对于 distances(),每个顶点最多只能在此处包含一次。(shortest_paths() 不需要。)

mode

字符常量,指定对于有向图,应计算到或从给定顶点的最短路径。如果为 out,则考虑顶点出发的最短路径;如果为 in,则考虑顶点的最短路径。如果为默认值 all,则该图被视为无向图,即不考虑边的方向。此参数对于无向图将被忽略。

weights

可能是数值向量,给出边的权重。如果此值为 NULL 并且图具有 weight 边属性,则使用该属性。如果此值为 NA,则不使用权重(即使图具有 weight 属性)。在加权图中,路径的长度是其组成边的权重之和。

output

字符标量,定义如何报告最短路径。“vpath”表示报告路径上的顶点,此形式在 igraph 版本 0.6 之前使用。“epath”表示报告路径上的边。“both”表示返回两种形式,在一个名为 “vpath” 和 “epath” 的命名列表中。

predecessors

逻辑标量,指示是否返回每个顶点的前驱顶点。树中顶点 i 的前驱是从中到达顶点 i 的顶点。根据定义,起始顶点(在 from 参数中)的前驱是它自身。如果前驱为零,则表示在搜索期间未从源到达给定顶点。请注意,如果到达 to 中的所有顶点,则搜索终止。

inbound.edges

逻辑标量,指示是否返回每个顶点的入边。树中顶点 i 的入边是顶点 i 通过其到达的边。起始顶点和搜索期间未到达的顶点将在向量的相应条目中显示零。请注意,如果到达 to 中的所有顶点,则搜索终止。

algorithm

用于计算的算法。默认情况下,igraph 尝试选择最快的适用算法。如果没有权重,则使用未加权广度优先搜索;否则,如果所有权重均为正数,则使用 Dijkstra 算法。如果存在负权重,并且我们对 100 多个源进行计算,则使用 Johnson 算法。否则,使用 Bellman-Ford 算法。您可以通过显式给出此参数来覆盖 igraph 的选择。请注意,igraph C 核心可能仍然会在明显的情况下覆盖您的选择,即如果没有边权重,则无论此参数如何,都将使用未加权算法。