收藏 分享(赏)

运筹学最小生成树问题.ppt

上传人:scg750829 文档编号:7992232 上传时间:2019-06-02 格式:PPT 页数:18 大小:1.12MB
下载 相关 举报
运筹学最小生成树问题.ppt_第1页
第1页 / 共18页
运筹学最小生成树问题.ppt_第2页
第2页 / 共18页
运筹学最小生成树问题.ppt_第3页
第3页 / 共18页
运筹学最小生成树问题.ppt_第4页
第4页 / 共18页
运筹学最小生成树问题.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、运筹学课程设计,设计题目:最小生成树问题 班级:* 课设指导:*老师 设计者:LMZZ 设计日期:2011,09,01,目录Contents,1、最小生成树的概念 2、课程设计方案 1)克鲁斯卡尔算法2) 邻接矩阵 3、设计方案实施 4、结果与结论 5、收获与致谢 6、参考文献,概念篇,设计方案,本设计是在C语言环境下运行的,主要有 minitree_KRUSKAL()此函数包含几个算法有对树的邻接矩阵的构造,数据的输入,克鲁斯卡尔算法(又称Kruskal算法,其类似于求生成树的“避圈法”)求网的最小生成树,最小生成树的最小代价,输出最小生成树的顶点及其最小代价。ljjzprint(int n

2、)定义并输出邻接矩阵。 主程序: int main() minitree_KRUSKAL(); (函数调用)printf(“输出邻接矩阵是:n“);ljjzprint(n); (函数调用) ,Kruskal算法,这个方法类似于求生成树的“避圈法”,基本步骤如下:每步从未选的边中选取边e,使它与已选边不构成圈,且e是未选边中的最小权边,直到选够n-1条边为止。,邻接矩阵的定义,邻接矩阵(Adjacency Matrix):是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V=v1,v2,vn。G的邻接矩阵是一个具有下列性质的n阶方阵: 对无向图而言,邻接矩阵一定是对称的,而且对角线一定

3、为零,有向图则不一定如此。 在无向图中,任一顶点i的度为第i列所有元素的和,在有向图中顶点i的出度为第i行所有元素的和,而入度为第i列所有元素的和。 用邻接矩阵法表示图共需要n2个空间,由于无向图的邻接矩阵一定具有对称关系,所以扣除对角线为零外,仅需要存储上三角形或下三角形的数据即可,因此仅需要n(n-1)/2个空间。,方案实施,1、定义结构体以及各个变量; 2、数据的输入; 3、采用克鲁斯卡尔算法求出该图的最小生成树; 4、采用邻接矩阵做储存结构创建图; 5 、在主函数中分别调用以上各个函数,最终实现设计目的。,克鲁斯卡尔算法,while (i n) min=INFINITE; for (j

4、=0;j m;j+) if (ej.weight min ,邻接矩阵,void ljjzprint(int n)/*定义并输出邻接矩阵*/ int i,j;for(i=1;i=n;i+)for(j=1;j=n;j+)printf(“%dt“,adjmatrixij);printf(“n“); int main() minitree_KRUSKAL(); 函数调用printf(“输出邻接矩阵是:n“);ljjzprint(n); 输出矩阵return 0; ,调试过程,原设计在定义输出矩阵函数时,没有形参,在调用时必须输入树的定点数这和前面的函数在输入树的数据时重复操作,为了避免重复如果这个函数

5、添加一个参数为n的形参,再main函数调用minitree_KRUSKAL();后n为定值,n为了在ljjzprint(n)中为已知量则需在程序的开头定义一个全局变量n即可。在求最小生成树的代价时,因为其顶点的权值时变的 故重新定义个变量sum,以实现其权值的相加然后输出。,结果与结论,顶点为:a,b,c, d , e, 其标号分别为1,2,3,4,5 Vexh和vext分别为边的两端顶点, weight为边的权值运行如下:,收获与致谢,紧张而又忙碌的课设学习终于结束了,在本次课设中我们也取得了相对很大的成就,通过本次课程设计我们也学到了很多,它增加了我们编程软件的兴趣,在具体操作中对所学的C

6、语言的理论知识得到了巩固,达到实训的目的也发现了自己的不足之处,在以后的上机中应更加注意,同时体会到了C语言具有语句简洁,使用灵活,执行效率高等特点,并且通过此次运筹学课程设计,我们通过C语言将其中抽象的最小树问题比较直观的变现出来,掌握了求最小树问题的克鲁斯卡尔算法以及邻接矩阵的构造,特别是对C语言中数组和循环有了深刻的了解。通过实际操作将C语言编程和运筹学有机的结合起来,学会了C语言编程的基本步骤和基本方法,开发了自己的逻辑思维能力,培养了分析问题和解决问题的能力。,收获与致谢,在此衷心感谢学院安排这次课设,让我们又多了一次学习交流的机会,更好的巩固了所学的知识,拓展了知识面。本次课设能取得成功,要感谢张爱霞老师的帮助和指导。在课设期间老师帮助我们分析思路,提供方法,才使得我们的程序做的更加的完善。其次是要感谢和我同组的同学感谢对方对本次课设的付出。,参考文献,运筹学教程(第三版)胡运权主编 C程序设计(第三版)谭浩强编著 C程序设计题解与上机指导(第三版)谭浩强编著,Thank you!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报