欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最小生成树.ppt

    • 资源ID:3815305       资源大小:451.52KB        全文页数:26页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最小生成树.ppt

    算法艺术与信息学竞赛教学幻灯片,算法图论 第七讲 最小生成树,声明,本系列教学幻灯片属于刘汝佳、黄亮著算法艺术与信息学竞赛配套幻灯片 本幻灯片可从本书blog上免费下载,即使您并未购买本书. 若作为教学使用,欢迎和作者联系以取得技术支持,也欢迎提供有不同针对性的修改版本,方便更多人使用 有任何意见,欢迎在blog上评论 Blog地址:,内容介绍,一、最小生成树问题 二、Boruvka算法 三、Prim算法 四、Kruskal算法 五、MST唯一性判定 六、瓶颈生成树,参考资料,CLRS Chapter 23. Minimal Spanning Trees,一、最小生成树问题(MST),定义,连接每个点的连通图(一定是树) 权和尽量小,一般最小生成树算法,前提: 无相等边 维护生成森林F e为无用边, 若e的两个端点在F的同一个分量中, 但e不在F中 对于F的每一个分量 从它出去(即恰好有一个端点在此分量内)的最小边为安全边 不同的分量可以有相同的安全边 结论: MST含有所有安全边, 不含无用边.,一般最小生成树算法,结论: MST含有所有安全边, 不含无用边. 证明 假设有一个分量(黄色), 它的安全边e不在T内. 则u到v有唯一路径, 它经过e, 它恰好有一个端点在黄色分量中. 由于e是安全边, w(e)<w(e), 用e替换e得到更小的T, 矛盾 加入无用边将形成环,练习,证明最小边属于某棵MST中 对于某环上的最大边e, 证明原图中删除e后的MST和原来的相同 在图中减小一个边的权, 求新的MST 情况一: e在原MST中 情况二: e不在原MST中,二、Borovka算法,Boruvka算法,由Boruvka于1926年提出(早于图论产生!),Boruvka算法,每个分量设置leader, 用DFS在m时间内求出 检查每条边一次以修正各分量的安全边权 第i次迭代每个分量大小至少为2i 最多logV次迭代, 总O(ElogV),三、Prim算法,Prim算法,Prim提出, 但事实上Jarnik于1930于年更早提出 只关心一棵树T, 每次加入T的安全边 用堆保存到每个顶点(而非边)的安全边 Insert/ExtractMin调用V次, DecreaseKey调用E次 二叉堆: O(E+V)logV), Fibonacci堆: O(E+VlogV),练习,给定邻接矩阵, 设计一个O(V2)算法 对于稀疏图中, 用k次Boruvka迭代可以加速MST计算. 如何选取k, 使得k次迭代以后调用Prim算法的时间复杂度变为O(EloglogV),四、Kruskal算法,Kruskal算法,Kruskal, 1956年提出 把边从小到大排序, 每次填加一个安全边 如何知道边是否安全? 并查集, 每次约O(1) 总O(ElogE + E(V),练习,Kruskal返回的MST和边排序结果有关. 证明对于任何一个MST, 都有一个排序方法使得Kruskal返回此MST 如果边权为1|V|的整数, Kruskal的时间复杂度如何? 如果边权在0, 1)上均匀分布, Kruskal和Prim哪个算法更快? 计算出MST后, 如果加一个顶点和它所关联的边, 如何快速更新MST?,五、MST唯一性判定,MST唯一性判定,考虑一般最小生成树算法 每一个分量出发安全边唯一, 不特殊处理, 否则 若同时添加会形成环, 一定不唯一 若同时添加不会形成环, 类似正确性证明, 即: 假设某边e不在T中, 对应的e一定比e大而不可能相等,MST唯一性判定,时间复杂度 Boruvka: 不变(只在和安全边比较时修改) Prim: 不变(只在判断顶点标号时修改) Kruskal: 不变(相等的边时特殊处理) 另一种思路: 最小=第二小,六、瓶颈生成树,基本问题,边的最大值最小的生成树成为G的瓶颈生成树(bottleneck spanning tree), 把其中最大的边称为它的权. 显然, MST是一个瓶颈生成树, 但是瓶颈生成树可以算得更快 判定问题 问题: 给一个实数b, 如何在线性时间内判定是否存在一个瓶颈生成树, 它的权不超过b? 方法: 忽略超过b的边, 判断图是否连通,

    注意事项

    本文(最小生成树.ppt)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开