收藏 分享(赏)

通信网基础及应用课程设计.doc

上传人:dzzj200808 文档编号:2638416 上传时间:2018-09-24 格式:DOC 页数:18 大小:2.63MB
下载 相关 举报
通信网基础及应用课程设计.doc_第1页
第1页 / 共18页
通信网基础及应用课程设计.doc_第2页
第2页 / 共18页
通信网基础及应用课程设计.doc_第3页
第3页 / 共18页
通信网基础及应用课程设计.doc_第4页
第4页 / 共18页
通信网基础及应用课程设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、课程设计说明书 NO.1C 语言环境下 D 算法完成最短路径求解1.课程设计的目的为了巩固“通信网基础及应用”课程学到的相关知识,通过对本课程所学知识的综合运用,使学生融会贯通课程中所学的理论知识,初步掌握通信网络的体系结构和扩频通信系统等相关知识;加深对通信网络的基本理论、基本知识和常用技术的理解;提高学生分析问题的能力和实践能力,培养科学研究的独立工作能力。2.设计方案论证2.1 最短路径算法的分类用 于 解 决 最 短 路 径 问 题 的 算 法 被 称 做 “最 短 路 径 算 法 ”, 有 时 被 简 称 作 “路 径算 法 ”。 最 常 用 的 路 径 算 法 有 : 1.Dijk

2、stra 算 法 ,是 解 决 一 个 节 点 到 其 他 节 点 之 间 的 最 短 路 径 的 问 题 。2.A*算 法 。3.SPFA 算 法 。4.Bellman-Ford 算 法 。5.Floyd-Warshall 算 法 , 可 以 用 来 求 解 网 中 任 意 两 个 节 点 之 间 的 最 短 路 径 。6.Johnson 算 法 。所 谓 单 源 最 短 路 径 问 题 是 指 : 已 知 G ( V, E) , 我 们 希 望 找 出 从 某 给 定 的 源结 点 S V 到 V 中 的 每 个 结 点 的 最 短 路 径 。 首先,我们可以发现有这样一个事实:如果 P

3、是 G 中从 vs 到 vj 的最短路,vi 是P 中的一个点,那么,从 vs 沿 P 到 vi 的路是从 vs 到 vi 的最短路。2.2 经典 Dijkstra 算法的主要思想Dijkstra 算法的基本思路是:假设每个点都有一对标号 (dj, pj),其中 dj是从起源点 s 到点 j 的最短路径的长度 (从顶点到其本身的最短路径是零路(没有弧的路),其长度等于零);p j则是从 s 到 j 的最短路径中 j 点的前一点。求解从起源点 s 到点 j的最沈 阳 大 学课程设计说明书 NO2短路径算法的基本过程如下:第一步:初始化。令 N=1。对于不在 N 中的每个节点 v,设置 D(v)=

4、l(1,v)(对于与 1 不直接相连的节点取为)。第二步:找到一个不在 N 中的使 D(w)最小的节点 w,并将 w 加进集 N 中去,然后计算下式,以修改不在 N 中的所有其他节点的 D(v):D(v)=minD(v),D (w)+l(w,v)重复第二步,直至全部节点包括在 N 中。2.3 Dijkstra 算法的实现我们利用图 1 中所示的网作为例子讨论 Dijkstra 算法,我们的目的是求出源节点到网中所有其他节点的最短路径。在求解过程中,采取步进方式,建立一个以源节点 1 为根的最短路径树,直到包括最远的节点在内为止。到第 k 步,计算出到离源节点最近的 k 个节点的最短路径。这些路

5、径定义为在集 N 内。图 1 一个网络的例子在按标记法实现 Dijkstra 算法的过程中,核心步骤就是从未标记的点中选择一个权值最小的弧段。要选择一个权值最小的弧段就必须把所有的点都扫描一遍,将这些要扫描的点按其所在边的权值进行顺序排列,这样即可大大提高算法的执行效率。沈 阳 大 学课程设计说明书 NO.32.4 Dijkstra 算法的基本原理Dijkstra 算法解决的是有向图中最短路径问题。Dijstra 算法的基础操作是边的拓展。图 2 中示出了以源节点 1 为根的最短距离树。它的产生过程是:当一个节点加入集合 N 时,它就连接到已在 N 中的适当点。每个节点下面圆圈内的数字代表在第

6、 n 步该节点加入树结构。由节点 1 的最短距离树可以得到节点 1 的路由选择表,如图 3 所示。该表指明了到相应的目的的地节点所应选的下一节点。同理,我们可以求得节点2,3,6 的路由选择表。图 2 节点 1 到其他节点的最短距离(a)沈 阳 大 学课程设计说明书 NO.4目的节点 下一节点2 23 44 45 46 4图3 节点1到其他节点的最短距离(b)2.4.1 Dijkstra 算法的基本过程Dijkstra算法是最短路径算法中最典型的一种算法,求最短路径就是解 决 一 个 节点 到 其 他 节 点 之 间 的 最 短 路 径 的 问 题 。Dijkstra一 般 的 表 述 通 常

7、 有 两 种 方 式 , 一 种 用 永 久 和 临 时 标 号 方 式 , 一 种 是 用OPEN, CLOSE表 方 式 。大 概 过 程 : 创 建 两 个 表 , OPEN, CLOSE。 OPEN 表 保 存 所 有 已 生 成 而 未 考 察 的 节 点 , CLOSED 表 中 记 录 已 访 问 过 的 节 点 。 1 访 问 路 网 中 距 离 起 始 点 最 近 且 没 有 被 检 查 过 的 点 , 把 这 个 点 放 入 OPEN组 中 等 待 检 查 。 2 从 OPEN 表 中 找 出 距 起 始 点 最 近 的 点 , 找 出 这 个 点 的 所 有 子 节 点

8、, 把 这 个点 放 到 CLOSE 表 中 。 3 遍 历 考 察 这 个 点 的 子 节 点 。 求 出 这 些 子 节 点 距 起 始 点 的 距 离 值 , 放 子 节 点到 OPEN 表 中 。 4 重 复 第 2 和 第 3 步 ,直 到 OPEN 表 为 空 , 或 找 到 目 标 点 。最 短 路 径 问 题 是 图 论 研 究 中 的 一 个 经 典 算 法 问 题 , 旨 在 寻 找 图 ( 由 结 点 和 路径 组 成 的 ) 中 两 结 点 之 间 的 最 短 路 径 。算 法 具 体 的 形 式 包 括 :确 定 起 点 的 最 短 路 径 问 题 - 即 已 知 起

9、 始 结 点 , 求 最 短 路 径 的 问 题 。沈 阳 大 学课程设计说明书 NO.5确 定 终 点 的 最 短 路 径 问 题 - 与 确 定 起 点 的 问 题 相 反 , 该 问 题 是 已 知 终 结 结 点 ,求 最 短 路 径 的 问 题 。 在 无 向 图 中 该 问 题 与 确 定 起 点 的 问 题 完 全 等 同 , 在 有 向 图 中该 问 题 等 同 于 把 所 有 路 径 方 向 反 转 的 确 定 起 点 的 问 题 。 确 定 起 点 终 点 的 最 短 路 径 问 题 - 即 已 知 起 点 和 终 点 , 求 两 结 点 之 间 的 最 短 路径 。 全

10、局 最 短 路 径 问 题 - 求 图 中 所 有 的 最 短 路 径 。2.4.2 Dijkstra 算 法 的 步 骤图 4 示出了求图 1 网中节点 1 到其他节点最短路径的过程。在表中画圆圈的数字表示该步骤中 D(w)的最小值。这样,相应的节点 w 就加到 N 中,D(v)的值就按要求更改。因此,在初始化后的第 1 步,距离最小 D(4)=w,节点 4 就加进集合 N 中;在第 2 步,D(5)=2,节点 5 加进 N 中;如此不断继续下去。第 5 步以后,所有的节点都在 N 中,算法终止。步骤 N D(2) D(3) D(4) D(5) D(6)初始 1 2 5 1 1 1,4 2

11、4 2 2 1,4,5 2 3 1 43 1,2,4,5 3 1 2 44 1,2,3,4,5 2 1 2 45 1,2,3,4,5,6 2 3 1 2 图 4 算法的计算过程3、设计过程与分析3.1 设计内容根据我们平常在通信网基础的课程中所学的知识,使用 Dijkstra 算法,设计一个沈 阳 大 学课程设计说明书 NO.6用 C 语言程序编译的求最短路径的程序。以下为用邻接矩阵表示的图的 Dijkstra 算法的源程序。3.2 设计程序#include#define MAXVEX 100typedef char VexType;typedef float AdjType;typedef

12、structVextype vexsMAXVEX;/*顶点信息 */AdjType arcsMAXVEXMAXVEX;/*边信息*/int n;/*图的顶点个数*/GraphMatrix;GraphMatrix graph;typedef structVexType vertex;/*顶点信息*/AdjType length;/*最短路径长度*/int prevex;/*从 v0 到达 vi(i=1,2,.n-1)的最短路径上 vi 的前趋顶点*/沈 阳 大 学课程设计说明书 NO.7Path;Path dist6;/*n 为图中顶点个数 */#define MAX 1e+8void init

13、(GraphMatrix* pgraph,Path dist)int i;dist0.length=0;dist0.prevex=0;dist0.vertex=pgraph-vexs0;pgraph-arcs00=1;/*表示顶点 v0 在集合 U 中*/for(i=1;in;i+)/*初始化集合 V-U 中顶点的距离值*/disti.length=pgraph-arcs0i;disti.vertex=pgraph-vexsi;if(disti.length!=MAX)disti.prevex=0;else disti.pervex=-1;void dijlstra(GraphMatrix g

14、raph,Path dist)int i,j,minvex;AdjType min;init(/*初始化,此时集合 U 中只有顶点 v0*/for(i=1;idistminvex.length+graph.arcsminvexj) distj.length=distminvex.length+graph.arcsminvexj; distj.prevex=minvex; void initgraph() int i,j; graph.n=6; for(i=0;i中间点 1-中间点 2-destDijkstra 算 法 是 很 有 代 表 性 的 最 短 路 算 法 , 在 很 多 专 业 课

15、程 中 都 作 为 基 本 内 容有 详 细 的 介 绍 。根据设计结果我们可以知道,如果从某顶点出发(此点称为源点),经边到达另一沈 阳 大 学课程设计说明书 NO.11顶点(称为终点)的路径不止一条,而如何找到一条路径使沿此路径上各边的权值之和为最小就是我们研究的问题。通过 C 语言的编程和运行,我们就可以方便的用Dijkstra算 法 求出最短路径。4、设计体会通过这次的课程设计,让我对所学的书本上的知识得到了实际上的应用,这不仅使我对知识的记忆更加牢固,还让我对有关通信网基础里的最短路径算法有了更深的了解,让我了解到,我们平常所学的知识不是死的,我们在日常中也可以用到。通过这次的学习,

16、让我对通信网基础这门课程更加感兴趣了。在这期间,我们同学间互相帮助,互相讲解不会的地方,让我们真正在快乐中学习到了知识。我想我们一定会抓住每一次这种学习的机会,更加努力!5、参考文献1王承恕 . 通信网基础.北京:人民邮电出版社,20022周昕数据通信与网络技术北京:清华大学出版社,20043唐宝民, 通信网技术基础 ,人民邮电出版社,20054申普兵, 计算机网络与通信 ,人民邮电出版社 20075马进通信网分析M北京:人民交通出版社,2003140-180,193-218沈 阳 大 学课程设计说明书 NO.12沈 阳 大 学课程设计说明书 NO.13沈 阳 大 学课程设计说明书 NO.14

17、沈 阳 大 学课程设计说明书 NO.15沈 阳 大 学参考文献要列出3篇以上,格式如下:1谢宋和,甘 勇.单片机模糊控制系统设计与应用实例M.北京: 电子工业出版社, 1999.5:20-25(参考书或专著格式为:著者.书名M.版本( 第1版不注).出版地:出版者,出版年月:引文所在页码)2潘新民,王燕芳. 微型计算机控制技术M,第2版.北京:电子工业出版社, 2003.4:305-350(1本书只能作为1篇参考文献,不能将1本书列为多个参考文献)3范立南,谢子殿. 单片机原理及应用教程M.北京:北京大学出版社, 2006.1:123-1304 Newman W M, Sbroull R F.

18、 Principles of Interactive Computer GraphicsM. New York: McGraw Hill, 1979.10:10-255卜小明,龙全求. 一种薄板弯曲问题的四边形位移单元 J.力学学报, 1991,23(1):53-60(参考期刊杂志格式为:作者.论文题目J.期刊名,出版年,卷号( 期号): 页码) (期刊名前不写出版地)6Mastri A R. Neuropathy of diabetic neurogenic bladderJ. Ann Intern Med, 1980, 92(2):316-3187范立南,韩晓微, 王忠石等. 基于多结构元的噪声污染灰度图像边缘检测研究J.武汉大学学报(工学版 ), 2003,49(3):45-498 index.asp(一般情况下不要用网址作为参考文献,如果用,最多1个)注:M表示参考的是书籍;J表示参考的是学术期刊的论文;如果参考会议论文集中的论文用C。要求:全部打印在 A4纸(二本) ,各级标题四号宋体加粗,正文文字小四号宋体,程序五号 times new roman,字数 3000字以上,15页以上。严禁抄袭,如有雷同者,均按不及格论处注:本页不用打印

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

当前位置:首页 > 高等教育 > 大学课件

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


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

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

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