文档帮助中心文档
定向非循环图的拓扑顺序
n = toposort (G)
n = toposort (G,“秩序”,算法)
[n,h] = topoosort(___)
例子
n= toposort (G)返回拓扑顺序节点的G这样i < j为每条边(n (i)、n (j))在G.的有向图G不能有任何周期。
n= toposort (G)
n
G
i < j
(n (i)、n (j))
n= toposort (G“秩序”,算法)指定排序算法。例如,TopoSort(G,'订单','稳定')使用基于节点的词典顺序的稳定排序算法。
n= toposort (G“秩序”,算法)
算法
TopoSort(G,'订单','稳定')
[n,H) = toposort (___)另外返回定向图形H节点按照给定的拓扑顺序排列。您可以在前面的语法中使用任何输入参数组合。
[n,H) = toposort (___)
H
全部折叠
创建并绘制一个代表大学数学课程进展的图表。两门课程之间的边缘表示课程要求。
一个= [0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0];名称= {学我的,'线性代数',“微积分二世”,...“多元微积分”,'拓扑',...“微分方程”,“实分析”};G =有向图(名称);情节(G)
找到课程的拓扑排序,以确定他们应该完成的正确顺序。
N = toposort (G)
N =1×71 3 7 2 4 6 5
g.nodes.name(n,:)
ans =7 x1细胞{'微积分I'}{'微积分II'}{'实分析'}{'线性代数'}{'多元微积分'}{'微分方程'}{'拓扑'}
使用逻辑邻接矩阵创建有向图,然后绘制图。
RNG.默认的;A = trl (sprand(10, 10, 0.3), -1)~=0;G =有向图(一个);(~ G) = toposort (G);情节(G)
找到图节点的拓扑排序。尽管G已经按拓扑顺序排列了,(1 2 3 4 5 6 7 8 9 10),toposort重新排序节点。
(1 2 3 4 5 6 7 8 9 10)
toposort
toposort (G)
ans =1×102 1 4 10 9 8 5 7 3 6
指定命令作为“稳定”使用稳定排序算法,排序时先对索引小的节点排序。稳定排序不会重新排列G如果它已经有了拓扑顺序。
命令
“稳定”
toposort (G,'命令',“稳定”)
ans =1×101 2 3 4 5 6 7 8 9 10
有向图
输入图形,指定为有向图目的。G必须是一个有向无环图。使用isdag.确认G不包含循环。
isdag.
使用有向图创建有向图。
例子:G =有向图([1,2],[2 3])
G =有向图([1,2],[2 3])
'快速地'
订购算法,指定为'快速地'或者“稳定”:
基于深度优先搜索。在考虑节点的所有子节点之后,将节点添加到列表的开头。
如果G已经是拓扑顺序,这种方法仍然可能重新排列节点。
基于词典秩序。n (1)为索引最小的节点,n (2)下一个最小的n (1),等等。
n (1)
n (2)
如果G是拓扑顺序的吗H是不变的,n是1: numnodes (G).
1: numnodes (G)
例子:[n、H] = toposort (G,“秩序”,“稳定”)
[n、H] = toposort (G,“秩序”,“稳定”)
节点索引,作为行向量返回。
拓扑排序图,返回为有向图目的。H和G,但已根据节点重新排序n.
有向图的拓扑排序是图中节点的排序,使得每个节点出现在它的后继节点(后代节点)之前。
考虑一个有向图,其节点表示任务,其边表示某些任务必须先于其他任务完成的依赖关系。对于这样一个图,图节点的拓扑排序产生一个有效的任务执行序列。
有向图|isdag.|reordernodes.
reordernodes.
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系