已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最小生成树算法 prim Kruskal 生成树的概念 生成树一个连通图的生成树是一个极小连通子图 它含有图中全部顶点 但只有足以构成一棵树的n 1条边 生成树不唯一 生成树 最小代价生成树 生成树的代价等于其边上的权值之和 V4 V1 V3 V2 V6 V5 6 5 1 2 6 6 5 5 3 4 最小代价生成树 两种常用的构造最小生成树的方法 普里姆算法 prim 克鲁斯卡尔算法 Kruskal 普里姆 Prim 算法 假设N V E 是连通网 TE是N上最小生成树中边的集合 算法从U u0 u0 V TE 开始 重复执行下述操作 在所有u U v V U的边 u v 中找一条代价最小的边 u0 v0 将其并入集合TE 同时将v0并入U集合 当U V则结束 此时TE中必有n 1条边 则T V TE 为N的最小生成树 普里姆算法构造最小生成树的过程是从一个顶点U u0 作初态 不断寻找与U中顶点相邻且代价最小的边的另一个顶点 扩充到U集合直至U V为止 V4 V1 V3 V2 V6 V5 6 5 1 2 6 6 5 5 3 4 V4 V1 V3 V2 V6 V5 1 2 5 3 4 U V U V1 V2 V3 V4 V5 V6 步骤 0 最小代价生成树 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 V4 V1 V3 V2 V6 V5 1 6 5 V1 V3 1 V1 V2 V3 V4 V5 V6 步骤 0 U V U 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 最小代价生成树 V4 V1 V3 V2 V6 V5 6 5 V1 V3 1 V1 V2 V3 V4 V5 V6 步骤 0 V6 4 6 5 5 4 U V U 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 最小代价生成树 V4 V1 V3 V2 V6 V5 6 5 V4 V1 V3 1 V1 V2 V3 V4 V5 V6 步骤 0 V6 4 6 5 5 2 6 2 U V U 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 最小代价生成树 V4 V1 V3 V2 V6 V5 6 V4 V1 V3 1 V1 V2 V3 V4 V5 V6 步骤 0 V2 V6 4 6 5 6 2 5 U V U 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 最小代价生成树 V4 V1 V3 V2 V6 V5 V4 V1 V3 1 V1 V2 V3 V4 V5 V6 步骤 0 V2 V6 V5 4 6 6 2 5 3 3 U V U 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 最小代价生成树 普里姆算法求最小生成树 从生成树中只有一个顶点开始 到顶点全部进入生成树为止 V4 V1 V3 V2 V6 V5 V4 V1 V3 1 V1 V2 V3 V4 V5 V6 步骤 0 V2 V6 V5 4 2 5 3 U V U 最小代价生成树 普里姆 Prim 算法 生成树中只放置一个顶点 在关联生成树顶点的边中 即边的一个顶点在生成树中 另一个顶点不在 取权值最小者 将选中的边加入生成树 同时将该边的关联顶点加入生成树中 生成树中顶点数小于n 是 否 结束 开始 从键盘 或数据文件 输入图的信息 用普里姆算法求解给定无向连通图的最小生成树 最后输出最小生成树中的权值和所有的边 图的存储结构自行设定 基本要求 例如下图的输出为 weight 15 v1 v3 v3 v6 v6 v4 v3 v2 v2 v5 或者 1 3 3 6 6 4 3 2 2 5 普里姆算法的实现 顶点集合如何表示 最小边如何选择 一个顶点加入U集合 生成树中 如何表示 struct intadjvex doublelowcost closedge MAX VERTEX NUM closedge i adjvex k closedge i lowcost 顶点i与顶点k邻接顶点k已经在U集合中 顶点i加入U集合时 0 closedge 2 adjvex 1 lowcost 6 closedge 3 adjvex 1 lowcost 1 closedge 4 adjvex 1 lowcost 5 V4 V1 V3 V2 V6 V5 1 6 5 当U集合中加入一个新顶点时 V U集合中的顶点到U的最小代价边可能会更新 U集合的成员 V U集合的成员 closedge 5 adjvex 1 lowcost closedge 6 adjvex 1 lowcost V4 V1 V3 V2 V6 V5 5 5 6 4 U集合的成员 V U集合的成员 当U集合中加入一个新顶点时 V U集合中的顶点到U的最小代价边可能会更新 closedge 2 adjvex 3 lowcost 5 closedge 4 adjvex 1 lowcost 5 closedge 5 adjvex 3 lowcost 6 closedge 6 adjvex 3 lowcost 4 V4 V1 V3 V2 V6 V5 5 6 2 当U集合中加入一个新顶点时 V U集合中的顶点到U的最小代价边可能会更新 U集合的成员 V U集合的成员 closedge 2 adjvex 3 lowcost 5 closedge 4 adjvex 6 lowcost 2 closedge 5 adjvex 3 lowcost 6 V4 V1 V3 V2 V6 V5 5 6 当U集合中加入一个新顶点时 V U集合中的顶点到U的最小代价边可能会更新 U集合的成员 V U集合的成员 closedge 2 adjvex 3 lowcost 5 closedge 5 adjvex 3 lowcost 6 V4 V1 V3 V2 V6 V5 3 当U集合中加入一个新顶点时 V U集合中的顶点到U的最小代价边可能会更新 U集合的成员 V U集合的成员 V4 V1 V3 V2 V6 V5 U集合的成员 V U集合的成员 图采用邻接矩阵表示 普里姆算法求最小生成树 615 6 5 3 15 5645 5 2 36 6 426 123456 123456 graph arac include include include defineINIT63355 defineNUM20usingnamespacestd typedefintElemtype typedefstructTnode Elemtypevex NUM intarac NUM NUM intv e graph voidInit Graph graph voidCreate Graph graph voidPrim graph min cost min cout j endl 输出符合最小生成树的顶点s j 1 已访问顶点置1for intt 2 t g v t if g arac j t lowcost t Kruskal 最小生成树 Kruskal算法步骤 a 带权图 此算法可以称为 加边法 初始最小生成树边数为0 每迭代一次就选择一条满足条件的最小代价边 加入到最小生成树的边集合里 1 把图中的所有边按代价 权值 从小到大排序 2 将图中的所有边都去掉 3 将边按权值从小到大的顺序添加到图中 保证添加的过程中不会形成环 用并查集检测 4 重复 3 直到所有顶点都在一颗树内或者有n 1条边为止 1 Kruskal 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4 6 5 2 6 5 1 经典应用 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4 6 5 2 6 5 1 经典应用 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4 6 5 2 6 5 1 经典应用 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4 6 5 2 6 5 1 经典应用 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4 6 5 2 6 5 3 4这条边 蓝色表示 加入会形成环 所以这条边不能用 1 经典应用 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4 6 5 2 6 5 1 4这条边 蓝色表示 加入会形成环 所以这条边不能用 1 经典应用 最小生成树 5 算法过程示意 原始图 5 6 4 2 3 1 6 5 3 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 插花活动策划方案
- 民爆新安全生产法课件
- 一年级生态生命安全课件
- 老年人健康生活知识测试题与答案手册
- 建筑结构设计实战案例分析集与答案详解
- 科学探索之旅天文地理自然奥秘探索题目及答案集
- 电子商务案例分析测试题库及解答参考
- 环境科学实践指南循环交叉环境保护方案测试及答案集
- 环境科学专业知识测试题与答案
- 2024年公务员考试大厂回族自治县《行政职业能力测验》最后冲刺试题含解析
- 集团公司组织架构调整方案模板
- 线务员培训课件
- 县妇幼保健服务中心基础设施设备采购项目投标方案
- 道路勘察应急预案
- 2025年宪法知识竞赛活动考试题库100题(含答案)
- 职业教育校企合作项目评估标准
- 人工智能+技术体系创新驱动发展战略研究
- 日本足球青训教学课件
- 土壤污染状况调查方案投标文件(技术标)
- 部队队列条令学习课件
- 2024海康威视DS-K2M062 门控安全模块用户手册
评论
0/150
提交评论