当前位置 :
初中数学如何画树状图
1人问答
更新时间:2024-04-18 16:23:39
问题描述:

初中数学如何画树状图

马兰回答:
  最小树形图,就是给有向带权图中指定一个特殊的点v,求一棵有向生成树T,使得该有向树的根为v,并且T中所有边的总权值最小.最小树形图的第一个算法是1965年朱永津和刘振宏提出的复杂度为O(VE)的算法.   判断是否存在树形图的方法很简单,只需要以v为根作一次图的遍历就可以了,所以下面的算法中不再考虑树形图不存在的情况.   在所有操作开始之前,我们需要把图中所有的自环全都清除.很明显,自环是不可能在任何一个树形图上的.只有进行了这步操作,总算法复杂度才真正能保证是O(VE).   首先为除根之外的每个点选定一条入边,这条入边一定要是所有入边中最小的.现在所有的最小入边都选择出来了,如果这个入边集不存在有向环的话,我们可以证明这个集合就是该图的最小树形图.这个证明并不是很难.如果存在有向环的话,我们就要将这个有向环所称一个人工顶点,同时改变图中边的权.假设某点u在该环上,并设这个环中指向u的边权是in[u],那么对于每条从u出发的边(u,i,w),在新图中连接(new,i,w)的边,其中new为新加的人工顶点;对于每条进入u的边(i,u,w),在新图中建立边(i,new,w-in[u])的边.为什么入边的权要减去in[u],这个后面会解释,在这里先给出算法的步骤.然后可以证明,新图中最小树形图的权加上旧图中被收缩的那个环的权和,就是原图中最小树形图的权.   上面结论也不做证明了.现在依据上面的结论,说明一下为什么出边的权不变,入边的权要减去in[u].对于新图中的最小树形图T,设指向人工节点的边为e.将人工节点展开以后,e指向了一个环.假设原先e是指向u的,这个时候我们将环上指向u的边in[u]删除,这样就得到了原图中的一个树形图.我们会发现,如果新图中e的权w'(e)是原图中e的权w(e)减去in[u]权的话,那么在我们删除掉in[u],并且将e恢复为原图状态的时候,这个树形图的权仍然是新图树形图的权加环的权,而这个权值正是最小树形图的权值.所以在展开节点之后,我们得到的仍然是最小树形图.逐步展开所有的人工节点,就会得到初始图的最小树形图了.   如果实现得很聪明的话,可以达到找最小入边O(E),找环O(V),收缩O(E),其中在找环O(V)这里需要一点技巧.这样每次收缩的复杂度是O(E),然后最多会收缩几次呢?由于我们一开始已经拿掉了所有的自环,我门可以知道每个环至少包含2个点,收缩成1个点之后,总点数减少了至少1.当整个图收缩到只有1个点的时候,最小树形图就不不用求了.所以我们最多只会进行V-1次的收缩,所以总得复杂度自然是O(VE)了.由此可见,如果一开始不除去自环的话,理论复杂度会和自环的数目有关.
数学推荐
最新更新
优秀数学推荐
PC端 | 移动端 | mip端
问答网(wenda2.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

邮箱:联系方式:

Copyright©2009-2021 问答网 wenda2.com 版权所有 闽ICP备2022000227号-1