




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、离散数学大作业 最小生成树姓名:陈强学号:辅导老师:李阳阳一、最小生成树的概念:给定一个连通图, 要求构造具有最小代价的生成树时, 也即使生成树各边的权值总和达到最小。 把生成树各边的权值总和定义为生成树的权, 那么具有最小权值的生成树就构成了连通图的最小生成树,最小生成树可简记为mst。二、构造无向连通图的最小生成树的方法:1.prim (普里姆)算法算法 :假设g(v,e是有n个顶点的无向连通图,用t(u,te表示要构造的最小生成树,其中 u为顶点集合,te为边的集合。(1)初始化: 令 v= ,te= 。 从 v 中取一个顶点 u0 放入生成树的顶点集u 中, 作为第一个顶点,此时t=(
2、 u0 , ) ;(2)从u v,v v u的边(u,v)中找一条代价最小的边(u*, v*),将其放入te中,并*将 v 放入 u 中。(3)重复步骤(2),直至u=v为止。此时te集合中必有n-1条边,t即为所要构造的最小生成树。特殊处理:如果两个顶点之间没有直接相连的边,权值置为一个max 的数自身和自身的权值置为 max 的值代码:function t=prim(i,g_dist)%prim.m 实现了普里姆的方法生成无向连通图 g 的最小生成树%t 是返回的最小生成树%i 为输入的为最小生成树选定的第一个顶点%g_dist 是待输入的数据,是图 g 边( u,v )的权值矩阵m,n=
3、size(g_dist);%读入无向图的顶点数目为m=nv=i;%将选定的顶点放入中间变量v 中第二行存放边的终点,t=zeros(3,m-1);%最小生成树有( m-1 ) 条边。 第一行存放边的起点,第三行存放边的权值%初始化最小生成树的矩阵for j=1:m-1t(1,j)=v;%将第一个顶点放入最小生成树的矩阵中if j=vt(2,j)=j+1;t(3,j)=g_dist(v,j+1);elset(2,j)=j;t(3,j)=g_dist(v,j);endend%求第k 条边for k=1:(n-1)min=10000;%初始化一个最小的权值%找出最短边,并将最短变的下标记录在mid
4、中for j=k:(n-1)if t(3,j)minmin=t(3,j);mid=j;endende=t(:,mid);t(:,mid)=t(:,k);t(:,k)=e;%将最短的边所在的一列和第k 列交换v=t(2,k); %v 中存放新找到的最短边在 v-u 中的顶点for j=(k+1):(n-1)%修改所存储的最小边集d=g_dist(v,t(2,j);if dt(3,j)t(3,j)=d;t(1,j)=v;endendenddg=sparse(t(1,:),t(2,:),t(3,:),m,m);%用稀疏矩阵view(biograph(dg,showarrows , off , sho
5、wweights , on ); %画图调用函数g=10000,10,3,10000,10000,10000;10,10000,5,8,6,10000;3,5,10000,10000, 2,10000;10000,8,10000,10000,7,11;10000,6,2,7,10000,17;10000,10000,100 00,11,17,10000;%g表示图g的各边权值,自身到自身的权值和不直接相连的顶点的权值设为10000i=1;t1=1,2,1,3,2,2,4,4,5;3,3,2,5,5,4,5,6,6;3,5,10,2,6,8,7,11,17;0,0,0,0, 0,0,0,0,0;
6、%t1 表示图 g 的边的信息,第一行是边的起始点,第二行是边的终点,第三行是边的权重,第四行表示对边的选择t=t1(1:3,:);dg=sparse(t1(1,:),t1(2,:),t1(3,:),m,m);蜘稀疏矩阵view(biograph(dg,showarrows , off , showweights , on ); %0图prim(i,g);结果:图g:q biograph viewer 10 一面 1prim生成的最小生成树:2.kruskal(克鲁斯卡尔)算法算法:假设g(v,e是有n个顶点的无向连通图。(1)初始化:设置最小生成树的初始状态为只有n个顶点而无任何边的非连通图
7、t( v, )。(2)依次选择e中的最小代价边,若该代价边依附于t中两个不同的连通分量,则将该边加入te中。否则,舍去此边而选择下一条代价最小的边。(3)重复步骤(2)直到所有顶点都在同意连通分量上为止。这时t就是g的一棵最小生成树。代码:functiont=kruscal(t1,e,m)g 的最小生成树%kruscal.m 实现了克鲁斯克尔的方法生成无向连通图%t 是返回的最小生成树%t1 是图 g 的边信息%e表示的是图g中的边的数目%m是图g的顶点数目%初始化存放顶点连通信息的矩阵gggg=zeros(1,m);for i=1:mgg(i)=i;end%j=0;%直到选够(m-1 )条边
8、即可结束程序%while j=m-1break ;endendfor i=1:eif t1(4,i)=2 | t1(4,i)=0t1(:,i)=0;0;0;0;endendt1=t1(:,any(t1);t=t1(1:3,:);dg=sparse(t1(1,:),t1(2,:),t1(3,:),m,m);%用稀疏矩阵view(biograph(dg,showarrows , off , showweights , on );%画图调用函数e=9; %图 g 的边的数目m=6; %图 g 的顶点数目t1=1,2,1,3,2,2,4,4,5;3,3,2,5,5,4,5,6,6;3,5,10,2,6,8,7,11,17;0,0,0,0,0,0,0,0,0;%t1 表示图 g 的边的信息,第一行是边的起始点,第二行是边的终点,第三行是边的权重,第四行表示对边的选择t=t1(1:3,:);%用稀疏矩阵dg=sparse(t1(1,:),t1(2,:),t1(3,:),m,m);view(biograph(dg,showarrows , off , showwei
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电气设备行业月报:内需驱动持续行业发展动能充足
- 自然语言及语音处理项目式教程 课件1.2.1-2NLP研究内容和应用场景
- 《涉外法律服务能力模型》(征求意见稿)
- 工业互联网平台安全多方计算在智能零售业库存优化中的应用报告
- 2025年农村土地流转规范化管理与土地流转政策效应分析报告
- 乳制品行业奶源质量控制与品牌建设策略研究报告
- 2025年神经修复领域新突破:干细胞治疗在周围神经损伤中的应用
- 2025年工业园区污水处理站设计绿色建筑安全效益评估报告
- 2025年工业互联网平台网络隔离技术数据安全与隐私保护报告
- 医疗行业人才培养与流动趋势分析:2025年战略布局报告
- 浙江省金华市卓越联盟2024-2025学年高二下学期5月阶段性联考语文试卷(含答案)
- 2024-2025 学年八年级英语下学期期末模拟卷 (扬州专用)解析卷
- 中国狼疮肾炎诊治和管理指南(2025版)解读
- 福建省厦门市2023-2024学年高二下学期期末质量监测历史试题(解析版)
- 2024年天津市南开区初中学业考查模拟地理试卷
- 医美机构医废管理制度
- 2025CSCOCSCO宫颈癌的诊疗指南更新
- 第四届福建省水产技术推广职业技能竞赛-水生物病害防治员备赛题库(含答案)
- 数字供应链对营运资金周转效率的影响分析
- 居家适老化改造指导手册(2025年版)
- 职业技能等级认定考试保密协议书
评论
0/150
提交评论