基于GIS的校园公交车管理系统设计
一、任务
通过信息网络将现实校园的各种信息收集,整理,归纳,存储,分析和优化,进而对校园的教学资源,校园环境等方面的实体和现象进行模拟,仿真,表现,分析和深入认识。
为了方便大学生在校内的出行,许多学校都建立了校内公交车系统,然而该系统的有效管理却成了一大难题,表现在如何选取行驶路线、乘坐站点以及时间表。为了解决以上难题,改善服务质量以及提高校园公交车的效率,以西安电子科技大学校内公交车为实验对象,通过采集和分析数据,实地考察以及综合分析,借助GIS以及其他软件平台,设计出符合西电学生的校内公交车管理系统。
二、问题背景
西安电子科技大学长安校区在校师生数万人,并且面积较大,教学楼、行政楼、图书馆、学生宿舍、食堂、学校大门等布局分配较为复杂且部分建筑之间距离较远,使得师生的日常出行极为不便。
同时,对于一些刚步入西电的新生同学,对于校园的各种布局并不熟悉,很难到达自己想去的地方。
三、校园公交车管理系统的现状以及存在的问题
为了方便大学生在校内的出行,许多学校都建立了校内公交车系统,然而该系统的有效管理却成了一大难题并且存在诸多问题,如:
- 校园公交的效率问题,存在部分公交频率较高,导致每班次运输学生的数量寥寥无几,使得效率较低。
- 时效性问题,学生在站点等车时间可能过长,甚至长于学生步行到达时间。
- 校园公交车的行驶线路不能够满足大多数师生的要求,所经过的路线距离目的地仍然较远。
- 乘坐站点的选择不够合理,表现在过于密集或过于稀疏。
四、基于GIS的智能配送方案的关键技术及解决方案
1.GIS简介:
地理信息系统(GIS)是集计算机科学、地理学、信息科学等学科为一体的新兴边缘科学,它着重对信息进行加工、处理、应用、融合、交叉渗透,并实现各种信息的可视化。GIS 能将空间信息和属性信息以地理实体为主线组织起来,使其支持一般管理信息系统所不能支持的空间查询和空间分析功能, 便于制定规划和决策。 现代网络地理信息系统 (WebGIS) 的兴起更使其成为商业领域一种新兴的信息查询和信息分析工具, 应用的范围不断拓展。凡是涉及到地理分布的领域都可以应用 GIS 技术。 它为用户提供了一种高度可视化的方法, 显示和分析与地理位置相关的数据, 从而更好地为客户服务进行决策、 管理资产和运营。 其特有的功能可使程序开发人员将地图化功能嵌入实际应用中,开发人员可在他们熟悉的环境中工作, 用户则可通过应用程序访问地图数据。
2.算法介绍:克鲁斯卡尔算法
克鲁斯卡尔算法是求连通网的最小生成树的一种方法。具体思路:
将所有边按照权值的大小进行升序排序,然后从小到大一一判断,条件为:
如果这个边不会与之前选择的所有边组成回路,就可以作为最小生成树的一部分;反之,舍去。直到具有 n 个顶点的连通网筛选出来 n-1 条边为止。筛选出来的边和所有的顶点构成此连通网的最小生成树。
判断是否会产生回路的方法为:在初始状态下给每个顶点赋予不同的标记,对于遍历过程的每条边,其都有两个顶点,判断这两个顶点的标记是否一致,如果一致,说明它们本身就处在一棵树中,如果继续连接就会产生回路;如果不一致,说明它们之间还没有任何关系,可以连接。
假设遍历到一条由顶点 A 和 B 构成的边,而顶点 A 和顶点 B 标记不同,此时不仅需要将顶点 A 的标记更新为顶点 B 的标记,还需要更改所有和顶点 A 标记相同的顶点的标记,全部改为顶点 B 的标记。
例如,使用克鲁斯卡尔算法找出上连接图的最小生成树的过程为:
首先,在初始状态下,对各顶点赋予不同的标记(用颜色区别),如下图所示:
对所有边按照权值的大小进行排序,按照从小到大的顺序进行判断,首先是(1,3),由于顶点 1 和顶点 3 标记不同,所以可以构成生成树的一部分,遍历所有顶点,将与顶点 3 标记相同的全部更改为顶点 1 的标记,如下图所示:
其次是(4,6)边,两顶点标记不同,所以可以构成生成树的一部分,更新所有顶点的标记为:
其次是(2,5)边,两顶点标记不同,可以构成生成树的一部分,更新所有顶点的标记:
其中最小的是(3,6)边,两者标记不同,可以连接,遍历所有顶点,将与顶点 6 标记相同的所有顶点的标记更改为顶点 1 的标记:
继续选择权值最小的边,此时会发现,权值为 5 的边有 3 个,其中(1,4)和(3,4)各自两顶点的标记一样,如果连接会产生回路,所以舍去,而(2,3)标记不一样,可以选择,将所有与顶点 2 标记相同的顶点的标记全部改为同顶点 3 相同的标记:
当选取的边的数量相比与顶点的数量小 1 时,说明最小生成树已经生成。所以最终采用克鲁斯卡尔算法得到的最小生成树为上图所示。
3.实验步骤
3.1 首先在ARCGIS软件上对校园道路及相关建筑进行数字化。
3.2 通过实地统计,得到人员分布比较聚集的地方以及人流量的大小,如海棠,竹园,丁香三个宿舍区以及教学楼,家属区。再结合实地道路交通情况,找出最合适的站点。
最终我们选取了校内的二十个站点,分别为A栋教学楼、B栋教学楼、C栋教学楼、D栋教学楼、E栋教学楼、F栋教学楼、G栋教学楼、丁香、东门、体育场、信远楼、办公辅楼、医院、图书馆、大学生活动中心、家属区A区、家属区E区、海棠、竹园、远望谷体育馆。
3.3 根据所统计的信息建立校园数据库,其中包括:每一个站点的名称、该站点区域人数占所有站点区域的总人数的百分比、该站点与其它所有站点之间的距离、该站点到其它所有站点的人流量。
3.4 根据我们目前所面临的问题,我们选择使用最小生成树的克鲁斯卡尔算法确定出校园公交的运行线路。
根据两个站点所在区域的人数占所有站点区域人数的百分比以及两个站点之间的距离和两个站点之间的人流量(人流量是双向的)来确定一个站点到另一个站点的边上权值,然后使用最小生成树的克鲁斯卡尔算法,因此,权值越小的边越容易被选到,故权值的大小应该和两个站点所在区域的人数占总人数的百分比成反比,和两个站点之间的距离正相关,和两个站点的人流量负相关,按这种原则对确定权值的三个量每个乘以一个因子,然后将这三个量相加确定权值,构造最小生成树,因为公交线路的选择应该服务更多人,而且应该走的路程还希望尽可能短,因此公交车走的路线应该是最小生成树中最长的那条路。
五、实验结果及分析
最终根据我们的程序(kruskal.m)以及我们的数据(gis_data_mat)作为输入得到相应的最小生成树结果,已保存至(output_data.mat)文件中。
从而获取最小生成树如下图所示:
基于最小生成树我们可以大致得到校园公交的最佳运行线路,但基于以下几点情况我们考虑对最终结果加以调整。
- 最小生成树显示的最短路径,实际中可能并不能满足校园公交车的运行。
- 在统计数据时,如各个站点之间的距离,相互之间的人流量等,会存在一定的误差,经过加权之后可能会使得误差被进一步放大。
经过考虑实际道路情况与忽略某些人为因素导致的不可避免的误差,最终我们得到了校园公交最佳的运行线路:
东门→G栋教学楼→F栋教学楼→信远楼→竹园→D栋教学楼→C栋教学楼→A栋教学楼→大活→丁香→家属区A区→家属区E区→远望谷体院馆→东门
如下图所示:
六、实验总结
我们对学校内人流量进行了统计、站点之间距离进行了测量,利用数据库和算法知识,设计出了校园公交车管理系统,选择出了校园公交车的最优行车路线。在解决实际问题时,需求分析是首要任务,人流量和距离是我们进行站点设计的重要指标。接下来是数据库设计,在MySQL数据库中建一张bus_station表,储存站点名、该站点区域人数占所有站点区域的总人数的百分比、该站点与其它所有站点之间的距离、该站点到其它站点的人流量信息。将各个站点构成的无向图,利用邻接矩阵表示,将采集到的数据通过计算转化为权值,用克鲁斯卡尔算法,选择权值最小的边,求出最小生成树,得到我们所需要的最优路线,为西电师生的日常出行提供了便利。
在此基础上,为了更好的方便师生进行乘车,本方案计划在校园公交车安装GPS设备以定位出每一辆公交车的实时位置。根据该位置信息:可以向车上的乘客提供到站提醒以及下一站的名称;同时可以向各个站点发送该信心,站点利用 LED 实时显示校园公交车的运行状态,以及预计下一班车到达时间。
在我们的实地统计过程中,我们还发现周内(周一到周五)的同学们的出行状况较周末(周六和周日)要更为频繁,因此有必要设计出两套发车时间表,也就是有不同的发车间隔。本着更好为师生服务的原则,再结合公交车运输效率与成本的考量,最后我们设计在周内公交车的发车间隔为8分钟,周末为15分钟。