get.shortest.paths()
已重命名为 shortest_paths()
,以创建更一致的 API。
参数
- 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 核心可能仍然会在明显的情况下覆盖您的选择,即如果没有边权重,则无论此参数如何,都将使用未加权算法。