8.模型的评价、改进和推广
模型的评价
优点:
1、通过实际调查,确定了乘客对乘车的不同需求,以乘车时间、换乘次数、乘车花费为目标建立多目标优化模型,使问题更加清晰,得出的线路更全面合理;
2、将复杂的公交网转化为图论问题,在图论基础上求解出转乘次数不超过两次 时的所有可行方案,根据乘客的不同需求,给出最佳路线方案,模型实用性较强;
3、利用MATLAB元胞数组存储数据信息,缩小信息存储空间,并选用适当的搜索算法,缩短运算时间,有较强的实用性;
4、模型的现实意义强,具有很好的实用性和扩展性。 缺点:
1、在转乘次数超过2次的情况下,运用所建立的模型求解计算过程复杂,计算量过大;故模型存在一定的局限性。
2、由于在计算过程中题目给的平均行驶及转车时间是非现实的,所以使得本模型的应用于现实时存在偏差。 模型的改进
由于公交网本身就是一个复杂的连通图,数据信息量大,而我们所建立的模型只考虑了乘客对乘车时间,转乘次数,乘车费用以及拥挤程度的需求,可以适当的考虑其他的需求,如:乘车途中的观光路线,线路中经过的标志性建筑等因素。从人性化的角度考虑,还可以把车辆的负载量,舒适度考虑进去。
另外,本文是一个静态的交通系统,所有的信息都已经给定。通过本题的数学模型,只要给出起始点和目的地,我们就可以通过算法求得应该走的路线,所花的时间以及乘车费用。但是在现实生活中,交通系统随时都可能在发生变化,如:上下班时候的某些线路运力不足,由于交通事故某两个站点之间的线路暂时中断,但是这些在本题中都没有能够反应出来,这样我们的路径推荐模型就可能将用户带到已经中断或者是非常拥挤的线路中。所以从实际出发,应该建立动态系统,将交通系统查询计算机网络化,每一个查询终端类比为一个路由器,同时采用类似于路由算法的实时更新算法。这样才能够根据最新的数据信息判断出最优方案。 模型的推广
本文采用多目标规划模型确定北京的公交线路,多目标规划模型不仅可以应用于公交线路的查询还可以运用到其他方面,比如:国防部门设计某种导弹时,一般都要求导弹的射程要远,精度要高,重量要最轻以及消耗燃料要最省等;在物资调运过程中,既要考虑在运输过程中少走冤枉路,同时又要考虑节约运费等。
9.参考文献
[1] 湖北大学生数学竞赛专家组,数学建模(本科册),华中科技大学出版社,
2006.2.
[2] 王沫然 MATLAB与科学计算(第二版)电子工业出版社 2005.12.
[3] 沈雷 张鑫 马福诚 一种公共交通的最优路径算法 海洋测绘第25卷 第6期
2005.11,41-43.
[4] 姜启源 谢金星 叶俊 数学模型(第三版)[M] 北京:高等教育出版社2003
10.附录
附录一: directMatrix.m%生成直达数据库DM clear all; clc %生成3996*3996的空直达矩阵 DM=cell(3996,3996); %数据导入 file=fopen('d:\\我的文档\\桌面\\1.1 公汽线路信息.txt','r'); lcount=0; while 1 fprintf('已导入%d行\\n',lcount); lcount=lcount+1; tline=fgetl(file); if strcmp(tline,'END') fprintf('the end\\n'); break; end if strcmp(tline,'') continue; end if strcmp(tline(1),'L') busNumStr=tline; continue; end if strcmp(tline,'单一票制1元。') ticketType=1; continue; end if strcmp(tline,'分段计价。') ticketType=2; continue; end %对第一种情况,有上下行的进行处理 if strcmp(tline(1:2),'上行')||strcmp(tline(1:2),'下行') stationNum=(size(tline,2)-8)/6+1; for startP=1:stationNum-1 for endP=startP+1:stationNum existNum=size(DM{str2num(tline(6*startP-1:6*startP+2)),str2num(tline(6*endP-1:6*endP+2))},1); DM{str2num(tline(6*startP-1:6*startP+2)),str2num(tline(6*endP-1:6*endP+2))}(existNum+1,:)={busNumStr,3*(endP-startP),ticketCost(ticketType,startP,endP),startP}; end end continue; end %对第二种情况,上下行一致的进行处理 if strcmp(tline(1),'S') stationNum=(size(tline,2)-5)/6+1; for startP=1:stationNum for endP=1:stationNum if startP==endP continue; end existNum=size(DM{str2num(tline(6*startP-4:6*startP-1)),str2num(tline(6*endP-4:6*endP-1))},1); if startP
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库公交查询系统的最佳乘车方案研究与设计(5)在线全文阅读。
相关推荐: