shortestpathtree
最短路径树的节点
语法
描述
例子
从指定源节点的最短路径
找到最短路径从源节点到每个其他可及节点图,并画出结果。
创建一个有向图。
s = [1 1 2 3 3 4 4 6 6 7 8 7 5];t = [4 2 3 4 5 5 6 8 1 3 2 8];G =有向图(s, t)
G =有向图的属性:边缘:x1表[13]节点:[8 x0表)
从节点1计算最短路径的每一个其他可及节点图。然后,绘制结果树的图。
TR = shortestpathtree (G, 1);p =情节(G);突出(p, TR,“EdgeColor”,“r”)
由于没有路径从节点1到7节点,节点从树上7是断开连接。
最短路径指定的目标节点
找到最短路径图中的每个节点到目标节点,并画出结果。
创建和绘制图表。
s = [1 1 1 1 1 1 1 2 2 7 7 7 7 9 9 3 3 1 6 4 8 10 6 8 4 5];t = [2 3 4 5 6 7 8 6 5 6 7 8 9 10 6 8 6 10 10 10 10 11 11 11 8 8];图G = (s, t);x = [0 0.5 -0.5 -0.5 -1.5 0.5 1.5 0 0 2 2];y = [0 0.5 0.5 -0.5 -0.5 - 2 0 2 0 0 0);情节(G,“XData”,x,“YData”,y)
找到图中的每个节点的最短路径节点10。情节产生的树。
TR = shortestpathtree (G,“所有”10);情节(TR)
指定的源节点的最短路径子集
找到最短路径和路径长度从一个源节点到多个目标节点。
创建和绘制图表。
G =有向图(巴基);情节(G)
23找到最短路径的节点到其他节点。指定OutputForm
作为细胞
返回单元阵列中的最短路径。指定两个输出也返回最短路径距离。
目标= [1 5 13 32 44];(TR, D) = shortestpathtree (G, 23岁的目标,“OutputForm”,“细胞”)
TR =5×1单元阵列{[22日23日21日4 5 1]}{[22日23日21日4 5]}{[23 22 20 16 17 15 14 13]}{[23日22日20 19 18 32]}{24 48 47 46 44 [23]}
D =1×55 4 7 5 5
树{j}
23从节点的最短路径节点目标(j)
长度为D (j)
。
找到路径和路径长度从节点21节点5。
路径= TR {2}
路径=1×522日23日21 4 5
path_length = D (2)
path_length = 4
输入参数
年代
- - - - - -源节点(s)
节点索引|节点名|“所有”
源节点,指定为一个或多个节点指标或节点名称,或与图中的所有节点“所有”
。
当单独使用,
年代
必须指定一个单一的源节点。一起使用时
t
,年代
和t
输入必须满足:年代
可以是一个单一的源节点,然后呢t
可以指定多个目标节点。年代
可以指定多个源节点,然后呢t
可以指定一个目标节点。
这个表格展示了不同的方法来引用一个或多个节点通过他们的指数数字节点或节点名。
形式 | 单独的节点 | 多个节点 |
---|---|---|
节点索引 | 标量 例子: |
向量 例子: |
节点名称 | 特征向量 例子: |
单元阵列的特征向量 例子: |
字符串标量 例子: |
字符串数组 例子: |
年代
不得指定节点的名字吗“所有”
,因为这个节点名称冲突的选项名称。使用findnode
而不是通过节点索引对于这种情况。
例子:shortestpathtree (G, a)
例子:shortestpathtree (G (1 2 3), 8)
t
- - - - - -目标节点(s)
“所有”
(默认)|节点索引|节点名
目标节点(s),指定为一个或多个节点指标或节点名称,或与图中的所有节点“所有”
。
的年代
和t
输入必须满足:
年代
可以是一个单一的源节点,然后呢t
可以指定多个目标节点。年代
可以指定多个源节点,然后呢t
可以指定一个目标节点。
t
不得指定节点命名“所有”
,“方法”
,或“OutputForm”
,因为这些节点名与选项名称冲突。使用findnode
而不是通过在这些情况下的节点索引。
例子:shortestpathtree (G (1 2 3), 8)
例子:shortestpathtree (G, {' a ', ' b ', ' c '}, {' f '})
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:(TR, D) = shortestpathtree (G s t,“方法”,“减重”、“OutputForm”,“矢量”)
OutputForm
- - - - - -输出的格式
“树”
(默认)|“细胞”
|“向量”
输出格式,指定为逗号分隔组成的“OutputForm”
其中一个选项表中。
选项 | 描述 |
---|---|
“树” (默认) |
|
“细胞” |
如果 如果指定了,第三输出 |
“向量” |
在每种情况下 如果指定了,第三输出 |
例子:shortestpathtree (G s“OutputForm”,“矢量”)
方法
- - - - - -最短路径算法
“汽车”
(默认)|“减重”
|“积极”
|“混合”
|“单极”
最短路径算法,指定为逗号分隔组成的“方法”
其中一个选项表中。
选项 | 描述 |
---|---|
“汽车” (默认) |
的
|
“减重” |
广度优先对待所有边的权值的计算 |
“积极” |
迪杰斯特拉算法,要求所有边的权值是负的。 |
“混合” (仅供有向图 ) |
bellman指示图,需要图形算法没有负面循环。 而 |
“单极” (仅供有向图 ) |
算法设计为指导改善性能,非循环图(无进取心的人)和加权边缘。 使用 |
请注意
对于大多数图形,“减重”
是最快的算法,其次是吗“单极”
,“积极”
,“混合”
。
例子:shortestpath (G s t,“方法”,“单极”)
输出参数
TR
-最短路径树
有向图
对象(默认)|单元阵列|向量
最短路径树,作为一个返回有向图
对象、单元阵列或向量,根据的价值“OutputForm”
。使用突出
函数可视化的最短路径树图的一个阴谋,或使用情节(TR)
可视化的最短路径树。
如果有多个两个节点之间的最短路径TR
只包含一个路径。返回的路径可以改变这取决于指定的算法方法
。的TR
输出是一个图形与零如果没有边缘路径连接的任何指定的节点。
D
——源节点与目标节点之间的距离
向量
源节点与目标节点之间的距离,作为一个向量返回。的值正
表明没有任何两个节点之间的路径。
E
——边缘在树或路径
逻辑向量(默认)| |单元数组向量
边缘在树或路径,作为一个逻辑向量,返回单元阵列,或向量,根据的价值“OutputForm”
:
如果你不指定
“OutputForm”
或者指定的值“树”
,然后E
是一个逻辑向量表示每个图形边缘是否有向图吗TR
。这个输出兼容“边缘”
名称-值对的突出
,例如:突出(p,‘边缘’,E)
。如果
“OutputForm”
是“细胞”
,然后E
是一个包含边缘单元阵列中相应的路径TR
。如果
“OutputForm”
是“向量”
,然后E
是一个向量,为每个节点,给出了指数的边缘连接它的父节点的最短路径树。
提示
的
shortestpath
,shortestpathtree
,距离
功能不支持与负边的无向图,或更一般金宝app的任何包含消极的循环图,由于这些原因:一个消极的循环是一个路径,从一个节点本身,与路径上的边的权值之和是负的。如果一个消极的周期在两个节点之间的路径,节点之间的最短路径不存在,因为总能找到更短的路径遍历负面循环。
一个负缘体重在一个无向图创建一个负面循环。
版本历史
另请参阅
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。