MATLAB 帮助中心
图的最小生成树
T = minspantree(G)
T = minspantree(G,Name,Value)
[T,pred] = minspantree(___)
T = minspantree(G) 返回图 G 的最小生成树 T。
T
G
示例
T = minspantree(G,Name,Value) 使用一个或多个名称-值对组参量指定的其他选项。例如,minspantree(G,'Method','sparse') 使用 Kruskal 的算法来计算最小生成树。
Name,Value
minspantree(G,'Method','sparse')
[T,pred] = minspantree(___) 支持上述语法中的任何输入参量,且可返回前趋节点的向量 pred。
pred
全部折叠
使用加权边创建并绘制一个立方体图。
s = [1 1 1 2 5 3 6 4 7 8 8 8]; t = [2 3 4 5 3 6 4 7 2 6 7 5]; weights = [100 10 10 10 10 20 10 30 50 10 70 10]; G = graph(s,t,weights); p = plot(G,'EdgeLabel',G.Edges.Weight);
计算并在图上方绘制图的最小生成树。T 包含的节点与 G 相同,但包含的边仅为后者的子集。
[T,pred] = minspantree(G); highlight(p,T)
创建并绘制一个包含多个分量的图。
s = {'a' 'a' 'a' 'b' 'b' 'c' 'e' 'e' 'f' 'f' 'f' 'f' 'g' 'g'}; t = {'b' 'c' 'd' 'c' 'd' 'd' 'f' 'g' 'g' 'h' 'i' 'j' 'i' 'j'}; G = graph(s,t); p = plot(G,'Layout','layered');
找出图的最小生成森林,从节点 i 开始。在绘图中突出显示生成的森林。图节点名称显示在最小生成树图中。
i
[T,pred] = minspantree(G,'Type','forest','Root',findnode(G,'i')); highlight(p,T)
使用前趋节点向量 pred 创建有向最小生成森林。此树中的所有边都从每个分量中的根节点(节点 i 和 a)向外发出。
a
rootedTree = digraph(pred(pred~=0),find(pred~=0),[],G.Nodes.Name); plot(rootedTree)
graph
输入图,指定为 graph 对象。使用 graph 创建一个无向图对象。
示例: G = graph(1,2)
G = graph(1,2)
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
Name1=Value1,...,NameN=ValueN
Name
Value
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: [T,pred] = minspantree(G,'Method','sparse')
[T,pred] = minspantree(G,'Method','sparse')
Method
'dense'
'sparse'
最小生成树算法,指定为逗号分隔的对组,其中包含 'Method' 和下表中的选项之一。
'Method'
Root
1
根节点,以逗号分隔的对组形式指定,该对组由 'Root' 和一个节点索引或节点名称组成。默认根节点是 1。
'Root'
如果 'Method' 是 'dense'(默认值),则根节点是起始节点。
如果 'Method' 是 'sparse',则根节点仅用于计算 pred,即前趋节点的向量。
您可以使用以下任一格式指定根节点:
'A'
"A"
Type
'tree'
'forest'
最小生成树的类型,指定为逗号分隔的对组,其中包含 'Type' 和下表中的选项之一。
'Type'
仅返回单一树。树包含根节点。
返回最小生成树的森林。换言之,指定 'forest' 可计算图中所有连通分量的最小生成树。
最小生成树,以 graph 对象形式返回。
前趋节点,以节点索引的向量形式返回。pred(I) 是节点 I 的前趋节点的节点索引。按照惯例,pred(rootNode) = 0。如果 Type 是 'tree',则对于与根节点不在同一分量中的所有节点 I,pred(I) = NaN。
pred(I)
I
pred(rootNode) = 0
pred(I) = NaN
pred 指定有向的最小生成树,所有边从根节点向外发出。
对于连通图,生成树是一个子图,其中连接图中的每个节点但不包含任何循环。对于任一给定图,可以有许多生成树。通过为每条边分配权重,不同生成树均被分配一个表示其各边总权重的数字。然后,最小生成树就是各边的总权重最小的生成树。
对于边权重相等的图,所有生成树都是最小生成树,因为遍历 n 个节点需要 n-1 条边。
n
n-1
全部展开
backgroundPool
ThreadPool
在 R2015b 中推出
graph | shortestpath | conncomp
shortestpath
conncomp
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处