- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最小生成树问题的拓展 安徽省芜湖市第一中学 汪汀 回顾 设G=(V,E,ω)是连通的无向图,图G中权值和最小的生成树称为最小生成树。 Prim算法 O(Vlog2V+E) Kruskal算法 O(Elog2V) 拓展问题 本文主要讨论两类拓展问题 最小度限制生成树 次小生成树 例一 通讯线路 某地区共有n座村庄,每座村庄的坐标用一对整数(x, y)表示,现在要在村庄之间建立通讯网络。通讯工具有两种,分别是需要铺设的普通线路和卫星设备。卫星设备数量有限,只能给k个村庄配备卫星设备。拥有卫星设备的村庄互相间直接通讯;铺设了线路的村庄之间也可以通讯。卫星分配是不受限制的。 例一 通讯线路 问怎样合理的分配卫星和铺设线路,使得在保证每两座村庄之间都可以直接或间接地通讯的前提下,铺设线路的总长度最短。 范围:0≤k≤n≤5000 图的模型 如果没有卫星设备,原题等价于求该图的最小生成树。 卫星设备 改造图的模型 图中的一个生成树唯一对应一种可行方案一种可行方案唯一对应图中的一个生成树 可行方案与生成树之间是一一对应的 铺设线路的长度就是其对应生成树的权值和,生成树中与v0关联的点为分配有卫星设备的村庄 原问题转化为: 当DT(v0)=k时的权值和最小的生成树 最小度限制生成树 设G=(V,E,ω)是连通的无向图,v0 ∈V是特别指定的一个顶点,k为给定的一个正整数。如果T是G的一个生成树且dT(v0)=k,则称T为G的k度限制生成树。G中权值和最小的k度限制生成树称为G的最小k度限制生成树。 明确几个概念 T为图G的一个生成树,T+a-b记作(+a,-b),如果T+a-b仍然是一个生成树,则称(+a,-b)是T的一个可行交换。 T为图G的一个生成树,由T进行一次可行交换得到的新的生成树所组成的集合,称为T的邻集,记为N(T)。 定理 定理:设T是图G的最小k度限制树,E0是G中与v0有关联的边的集合,E1=E0\E(T),E2=E(T)\E0,A={(+a,-b)| a∈E1,b∈E2},设ω(a’)-ω(b’)=min{ω(a)-ω(b)| (+a,-b)∈A},则T+a’-b’是G的一个最小k+1度限制生成树。 即最小p+1度限制生成树属于最小p度限制生成树的邻集。 假设我们已经得到了最小p度限制生成树, 如何通过它来求最小p+1度限制生成树呢? 由定理可知最小p+1度限制生成树属于最小p度生成树的邻集,因此它可以通过枚举最小p度生成树上的一次可行交换求得。 为了使v0的度增加,枚举的可行交换中必须有一条边与v0关联。 如图,假设我们已经得到了v0点度为2时的最小生成树,现在要求v0度为3时的最小生成树。 我们枚举于V0关联且不在树上边,分别添加到树上,例如: 删去边的权值越大,所得到的生成树的权值和就越小,因此,需要找到环上可删除的权值最大的边并将其删除。 造成时间复杂度高的主要原因是有大量的重复计算 造成时间复杂度高的主要原因是有大量的重复计算 造成时间复杂度高的主要原因是有大量的重复计算 动态规划!!! 动态规划 设最小p度限制生成树为T,T是无根树,为了简便,我们把v0作为该树的根。 定义Father(v)为T中v的父结点,Father(v0)无意义。 设Best(v)为路径v0-v上与v0无关联且权值最大的边。 动态规划 Best(v)的状态转移方程为 Best(v)=max(Best(Father(v)),ω(Father(v),v)) 边界条件为 Best[v0]=-∞,Best[v’]=-∞|(v0,v’)∈E(T)。 动态规划 状态总共|V|个,而状态转移的时间复杂度为O(1),因而总的时间复杂度是O(V),即通过最小p度限制生成树求最小p+1度限制生成树的时间复杂度是O(V)。 边界情况 kDG(v0),问题无解 总存在k度限制生成树,k∈[1,DG(v0)] 观察下图 k≤2,不存在k度限制生成树 将v0从图中删去,图中将会出现3个连通分量 而这3个连通分量必须通过v0来连接,k3无解 删去v0,图中出现m个连通分量,k=m是问题有解的最小值。 我们先分别对m个连通分量求最小生成树。 每个连通分量中找一条与v0关联的权值最小的边与v0连接。 流程 例题 时间复杂度O(N2) 空间复杂度O(N) 应用范围 问题与最小生成树模型联系紧密 某个对象有特殊限制 实际生活:铺设电话线,运输货物等 例二 秘密的牛奶运输 Farmer John要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点,如此下去。 例二 秘密
文档评论(0)