文档帮助中心文档
找出两个图节点之间的所有路径
路径= allpaths (G s t)
[路径,edgepaths] = allpaths (G s t)
[___] = allpaths (G s t,名称,值)
例子
路径= allpaths (G,年代,t)返回图中的所有路径G从源节点开始年代并在目标节点结束t.输出路径单元格数组是否包含每个单元格的内容路径{k}列出路径上的节点。
路径= allpaths (G,年代,t)
路径
G
年代
t
路径{k}
[路径,edgepaths) = allpaths (G,年代,t)也返回每条路径上的边年代来t.输出edgepaths单元阵列在哪里edgepaths {k}给出相应路径上的边,路径{k}.
[路径,edgepaths) = allpaths (G,年代,t)
edgepaths
edgepaths {k}
[___) = allpaths (G,年代,t,名称,值)使用一个或多个名称-值参数指定其他选项。您可以在前面的语法中使用任何输出参数组合。例如,可以指定MaxNumPaths以及限制返回路径数量的标量。
[___) = allpaths (G,年代,t,名称,值)
名称,值
MaxNumPaths
全部折叠
为一个有四个节点的完整图创建一个邻接矩阵,然后根据邻接矩阵创建一个无向图。画出图。
一个= 1 (4);图G =(一个);情节(G)
计算图中从节点1开始到节点3结束的所有路径。
路径= allpaths (G, 1, 3)
路径=5×1单元阵列{(1 2 3)} {[1 2 4 3]} {[1 3]} {[1 4 2 3]} {[1 4 3]}
的第二个输出参数allpaths返回沿每条路径的边。这对于多重图特别有用,因为在多重图中,需要边索引来唯一地标识路径上的边。
allpaths
创建一个有8个节点和18条边的有向多图。为节点指定名称。绘制带有标记的节点和边的图。
S = [1 1 2 2 3 3 2 2 4 6 8 6 6 7 3 3 5 3];T = [2 3 1 3 2 1 4 4 6 2 6 7 8 8 5 5 7 7];名称= {“一个”,“B”,“C”,' D ',“E”,“F”,‘G’,“H”};G =有向图(s t[],名称);p =情节(G,“EdgeLabel”1: numedges (G));
计算节点A和节点h之间的所有路径。指定两个输出参数也返回沿每条路径的边的索引。
(路径,edgepaths) = allpaths (G,“一个”,“H”);
沿第一个路径查看节点和边缘。
路径{1}
ans =1 x6单元格{' a '} {' b '} {' c '} {' e '} {' g '} {' h '}
edgepaths {1}
ans =1×51 4 9 13 17
沿着第一个路径突出显示节点和边缘。
突出(p,“边缘”, edgepaths {1},“EdgeColor”,“r”,“线宽”, 1.5,“NodeColor”,“r”,“MarkerSize”6)
使用“MaxNumPaths”,“MaxPathLength”,“MinPathLength”选项来限制返回的路径数量allpaths.
“MaxNumPaths”
“MaxPathLength”
“MinPathLength”
为一个包含20个节点的完整图创建一个邻接矩阵。从邻接矩阵创建一个无向图,省略自循环。
一个= 1 (20);图G = (,“omitselfloops”);
由于图中的所有节点都连接到其他所有节点,图中任意两个节点(超过)之间有大量的路径1.7 e16天).因此,计算两个节点之间的所有路径是不可行的,因为结果不适合内存。计算从节点2到节点5的前10条路径。
1.7 e16天
paths1 = allpaths (G, 2、5、“MaxNumPaths”, 10)
paths1 =10×1单元阵列{(1 2 3 4 5)} {[2 1 3 4 6 5]} {(1 2 3 4 5 6 7)} {(1 2 3 4 5 6 7 8)} {(1 2 3 4 5 6 7 8 9]} {(1 2 3 4 5 6 7 8 9 10]} {(1 2 3 4 5 6 7 8 9 10 11]} {(1 2 3 4 5 6 7 8 9 10 11 12]} {(1 2 3 4 5 6 7 8 9 10 11 12 13]} {(1 2 3 4 5 6 7 8 9 10 11 12 13 14]}
现在计算节点2和节点5之间路径长度小于或等于2的前10条路径。
paths2 = allpaths (G, 2、5、“MaxNumPaths”10“MaxPathLength”, 2)
paths2 =10×1单元阵列{[2 1 5]}{[2 3 5]}{[2 4 5]}{【2 - 5】}{[2 6 5]}{[2 7 5]}{[2 8 5]}{[2 9 5]}{[2 10 5]}{[2 11 5]}
最后,计算节点2和节点5之间路径长度大于等于3的前10条路径。
paths3 = allpaths (G, 2、5、“MaxNumPaths”10“MinPathLength”3)
paths3 =10×1单元阵列{(1 2 3 4 5)} {[2 1 3 4 6 5]} {(1 2 3 4 5 6 7)} {(1 2 3 4 5 6 7 8)} {(1 2 3 4 5 6 7 8 9]} {(1 2 3 4 5 6 7 8 9 10]} {(1 2 3 4 5 6 7 8 9 10 11]} {(1 2 3 4 5 6 7 8 9 10 11 12]} {(1 2 3 4 5 6 7 8 9 10 11 12 13]} {(1 2 3 4 5 6 7 8 9 10 11 12 13 14]}
图
有向图
输入图形,指定为图或有向图对象。使用图创建无向图或有向图创建有向图。
例子:图G =(1、2)
图G =(1、2)
例子:G =有向图([1,2],[2 3])
G =有向图([1,2],[2 3])
源和目标节点id,作为节点索引或节点名称的单独参数指定。
1
“一个”
例子:allpaths (G, 2、5)计算节点2到节点5之间的所有路径。
allpaths (G, 2、5)
例子:allpaths (G, node1, node2)计算命名节点之间的所有路径node1和node2.
allpaths (G, node1, node2)
node1
node2
指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
allpaths (G s t ' MaxNumPaths ', 100)
最大路径数,由逗号分隔的对组成“MaxNumPaths”和一个非负整数标量。当两个节点之间的路径数量增长到足以达到内存限制时,此选项非常有用。您可以指定MaxNumPaths来限制返回的路径数allpaths这样结果就能在可用内存中保存。
例子:allpaths (G s t ' MaxNumPaths ', 100)
最大路径长度,由逗号分隔的对组成“MaxPathLength”和一个非负整数标量。该选项过滤返回的结果allpaths这样就不会返回长度大于指定限制的路径。路径的长度是由其中的边数来度量的,而忽略了边的权值。
要查找具有一定长度范围的路径,请同时指定两者“MaxPathLength”和“MinPathLength”.要查找具有精确指定长度的路径,请为两者指定相同的值“MaxPathLength”和“MinPathLength”.
例子:allpaths (G s t MaxPathLength, 4)返回长度小于或等于4的路径。
allpaths (G s t MaxPathLength, 4)
例子:allpaths (G s t MinPathLength, 3,‘MaxPathLength’,5)返回长度为3、4或5的路径。
allpaths (G s t MinPathLength, 3,‘MaxPathLength’,5)
最小路径长度,由逗号分隔的对组成“MinPathLength”和一个非负整数标量。该选项过滤返回的结果allpaths这样就不会返回长度小于指定限制的路径。路径的长度是由其中的边数来度量的,而忽略了边的权值。
例子:allpaths (G s t ' MinPathLength ', 2)返回长度大于等于2的路径。
allpaths (G s t ' MinPathLength ', 2)
指定节点之间的路径,作为单元格数组返回。每个元素路径{k}包含位于指定源节点和目标节点之间的一条路径上的节点。路径按照字典顺序返回。源节点和目标节点年代和t指定相同的节点,然后按照约定allpaths返回包含该节点的单个路径。如果节点t从节点不可达年代,然后路径是空的。
输入项的数据类型路径这取决于方式年代和t指定:
如果年代和t指定为数字节点索引,则每个元素路径{k}是节点索引的数值向量。
如果年代和t指定为字符串节点名,则每个元素路径{k}是节点名称的字符串数组。
如果年代和t指定为字符向量节点名,则每个元素路径{k}是字符向量节点名称的单元格数组。
每条路径的边,作为单元格数组返回。每个元素edgepaths {k}包含沿相应路径的边的指标,路径{k}.如果节点t从节点不可达年代,然后edgepaths是空的。
图中的路径数量很大程度上取决于图的结构。对于某些图结构,路径的数量可以随着节点的数量呈指数增长。例如,一个包含12个节点的完整图图G = ((12))包含在任意两个节点之间的近1000万条路径。使用MaxNumPaths,MaxPathLength,MinPathLength用于控制输出的名称-值对allpaths在这些情况下。
图G = ((12))
MaxPathLength
MinPathLength
allcycles|距离|shortestpath|shortestpathtree
allcycles
距离
shortestpath
shortestpathtree
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系