主要内容

toposort

有向无环图的拓扑秩序

描述

例子

n= toposort (G)返回拓扑顺序节点的G这样i < j为每条边(n (i)、n (j))G。的有向图G不能有任何周期。

例子

n= toposort (G“秩序”,算法)指定排序算法。例如,toposort (G,“秩序”,“稳定”)使用一个基于辞典编纂的秩序稳定排序算法的节点。

例子

(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)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

发现课程的拓扑排序来确定他们应该适当的顺序完成。

N = toposort (G)
N =1×71 3 7 2 4 6 5
G.Nodes.Name (N,:)
ans =7 x1细胞{“微积分我”}{“微积分II”}{“实分析”}{“线性代数”}{多元微积分的}{“微分方程”}{“拓扑”}

使用一个逻辑创建一个有向图邻接矩阵,然后画出图。

rng默认的;=下三角阵(sprand (10、10、0.3), 1) ~ = 0;G =有向图(一个);(~ G) = toposort (G);情节(G)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

找到图的拓扑排序节点。尽管G已经在拓扑秩序,(1 2 3 4 5 6 7 8 9 10),toposort重新排列了节点。

toposort (G)
ans =1×102 5 1 4 10 9 8 7 3 6

指定订单作为“稳定”使用稳定的排序算法,首先订单指数较小的节点。稳定的排序不重新排列G如果它已经在拓扑秩序。

toposort (G,“秩序”,“稳定”)
ans =1×101 2 3 4 5 6 7 8 9 10

输入参数

全部折叠

输入图,指定为一个有向图对象。G必须是一个有向无环图。使用isdag确认G不包含周期。

使用有向图创建一个有向图。

例子:2 G =有向图([1],[2 3])

排序算法,指定为“快”“稳定”:

“快”(默认)

基于深度优先搜索。一个节点被添加到列表的开始在考虑所有的后代。

如果G已经在拓扑秩序,这种方法仍然会重新排序节点。

“稳定”

基于辞典编纂的秩序。n (1)是最小的节点索引,n (2)下一个最小的了n (1),等等。

如果G在拓扑顺序呢H是不变的,n1:numnodes (G)

例子:[n、H] = toposort (G,“秩序”,“稳定”)

输出参数

全部折叠

节点索引,返回一个行向量。

拓扑排序图,作为一个返回有向图对象。H一样的图吗G,但节点重新排序根据n

更多关于

全部折叠

拓扑顺序

一个有向图的拓扑顺序图中的节点的排序,这样每个节点出现在其继任者(后代)。

考虑一个有向图的节点代表的任务,其边缘代表依赖别人之前,必须完成某些任务。对于这样一个图,图的拓扑排序节点产生一个有效的序列可以执行的任务。

版本历史

介绍了R2015b