课设-交通.docx
《课设-交通.docx》由会员分享,可在线阅读,更多相关《课设-交通.docx(14页珍藏版)》请在优知文库上搜索。
1、/N”少火学程序设计课程设计报告学院:软件学院专业:软件工程班级学号:姓名:指导教师:王会青时间:2014年6月3.交通咨询系统设计最短路径问题专业:软件工程班级:1215班姓名:张鹏远学号:2012005391完成日期:2014/6/253.1 【问题描述】在交通网络非常兴旺,交通工具和交通方式不断更新的今天,人们在出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需要的时间等问题也感兴趣。对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。图中的顶点表示城市,边表示城市之间的交通关系。这个交通系统可以答复出行旅客提出的各种路径选择问题。
2、例如,问题之一:“一位旅客要从A城到B城,他希望选择一条途中中转次数最少的路线。”假设图中每一站都需要换车,那么这个问题反映到图上就是要找一条从顶点A到顶点B的所含边数目最少的路径。我们只需要从顶点A出发对图作广度优先搜索,一旦遇到顶点B就终止。由此所得广度优先生成树上,从根顶点A到顶点B的路径就是中转次数最少的路径。路径上A与B之间的顶点就是路径的中转站,但这只是一类最简单的图的最短路径问题。系统还可以答复诸如此类的等等的路径选择问题。设计一个交通咨询系统,为出差、旅游或做其他出行的客人提供各种路径选择信息查询效劳。3.21 设计需求及分析】设计一个交通咨询系统,能让旅客咨询从任一个城市顶点
3、到另一城市顶点之间的最短路径(里程)或最低花费或最少时间等问题。对于不同的咨询要求,可输入城市间的路程或所需时间或所需费用。本设计共分三局部,一是建立交通网络图的存储结构;二是解决单源最短路径问题;三是实现任两个城市顶点之间的最短路径问题。3.2.1建立图的存储结构邻接矩阵是表示图形中顶点之间相邻关系的矩阵。图的邻接矩阵是定义如下的n阶方设G=(V,E)是一个图,结点集为V=Wi2,,匕,G的邻接矩阵A=(%)“*“,%=(wij)nxn,当(vi,vj)或EO或co,当(vi,vj)或iE当邻接矩阵的行表头、列表头顺序一定时,一个图的邻接矩阵表示是唯一的。图的邻接矩阵表示,除了需用一个二维数
4、组存储顶点之间的相邻关系的邻接矩阵外,通常还需要使用一个具有n个元素的一维数组来存储顶点信息,其中下标为i的元素存储顶点i的信息。因此,图的邻接矩阵的存储结构定义如下:#definfMVNum50最大顶点数typedefstructVertexTypevexsMVNum;顶点数组,类型假定为Char型AdjmatrixarcsMVNumMVNum;邻接矩阵,假定为int型MGraph;3.2.2单源最短路径最短路径的提法很多。在这里先讨论单源最短路径问题:即有向图(带权),我们希望找出从某个源点SV到G中其余各顶点的最短路径。为了表达方便,我们把路径上的开始点称为源点,路径的最后一个顶点为终点
5、。那么,如何求得给定有向图的单源最短路径呢?迪杰斯特拉(Dijkstra)提出按路径长度递增产生诸点的最短路径算法,称之为迪杰斯特拉算法。迪杰斯特拉算法求最短路径的实现思想是:设G=(V,E)是一个有向图,结点集为,V=v,V2,v,J,cost是表示G的邻接矩阵,costij表示有向边i,j的权。假设不存在有向边i,j,那么CoStij的权为无穷大(这里取值为32767)。设S是一个集合,其中的每个元素表示一个顶点,从源点到这些顶点的最短距离已经求出。设顶点Vl为源点,集合S的初态只包含一个元素,即顶点5。数组dist记录从源点到其他顶点当前的最短距离,其初值为disti=costvi,i=
6、l,2,no从S之外的顶点集合V-S中选出一个顶点w,使distw的值最小。于是从源点到达W只通过S中顶点,把W参加集合S中,调整dist中记录的从源点到V-S中每个顶点V的距离:从原来的distv和distw+costwv中选择较小的值作为新的distvo重复上述过程,直到V-S为空。最终结果是:S记录了从源点到该顶点存在最短路径的顶点集合,数组diSt记录了源点到V中其余各顶点之间的最短路径,Path是最短路径的路径数组,其中Pathi表示从源点到顶点i之间的最短路径的前驱顶点。因此,迪杰斯特拉算法可用自然语言描述如下:初始化S和D,置空最短路径终点集,置初始的最短路径值;Sv,=TRUE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通
