77范文网 - 专业文章范例文档资料分享平台

公交查询系统的最佳乘车方案研究与设计(5)

来源:网络收集 时间:2019-04-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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 startPstationNum-1 ww=startP-stationNum+1; else ww=startP; end DM{saveStation(startP),saveStation(endP)}(existNum+1,:)={busNumStr,3*abs(endP-startP),ticketCost(ticketType,startP,endP),ww}; end end continue; end end 附录二: ticketCost.m%计算票价的函数(第一问) unction cost=ticketCost(ticketType,startP,endP) if ticketType==1 cost=1; end if ticketType==2 passStation=abs(endP-startP); if passStation<=20 cost=1; elseif passStation<=40 cost=2; else cost=3; end end changeBus1.m%计算换乘一次的(第一问) function a=changeBus1(DM,startP,endP) a={}; midP=[]; for i=1:3957 if size(DM{startP,i},1)~=0 midP=[midP,i]; end end for i=1:size(midP,2) if size(DM{midP(i),endP},1)==0 midP(i)=0; end end for i=1:size(midP,2) if midP(i)==0 continue; end lineOne=size(DM{startP,midP(i)},1); lineTwo=size(DM{midP(i),endP},1); for jj=1:lineOne for kk=1:lineTwo sizea=size(a,1); a(sizea+1,:)={DM{startP,midP(i)}{jj,1},midP(i),DM{midP(i),endP}{kk,4},DM{midP(i),endP}{kk,1},DM{startP,midP(i)}{jj,2}+DM{midP(i),endP}{kk,2}+5,DM{startP,midP(i)}{jj,3}+DM{midP(i),endP}{kk,3}}; end end end changeBus2.m%计算换乘2次的(第一问) function a=changeBus2(DM,startP,endP) a={}; midP=[]; mid2P=[]; for i=1:3957 if size(DM{startP,i},1)~=0 midP=[midP,i]; end end for i=1:3957 if size(DM{i,endP},1)~=0 mid2P=[mid2P,i]; end end for i=1:size(midP,2) for j=1:size(mid2P,2) if size(DM{midP(i),mid2P(j)},1)==0 continue; end for mm=1:size(DM(startP,midP(i)),1) for nn=1:size(DM(midP(i),mid2P(j)),1) for kk=1:size(DM(mid2P(j),endP),1) sizea=size(a,1); a(sizea+1,:)={DM{startP,midP(i)}{mm,1},midP(i),DM{midP(i),mid2P(j)}{nn,4},DM{midP(i),mid2P(j)}{nn,1},mid2P(j),DM{mid2P(j),endP}{kk,4},DM{mid2P(j),endP}{kk,1},DM{startP,midP(i)}{mm,2}+DM{midP(i),mid2P(j)}{nn,2}+DM{mid2P(j),endP}{kk,2}+10,DM{startP,midP(i)}{mm,3}+DM{midP(i),mid2P(j)}{nn,3}+DM{mid2P(j),endP}{kk,3}}; end end end end end strategy1.m%策略1(第一问) %策略1,优先考虑转乘次数,再考虑时间,最后考虑费用 function a=strategy1(DM,startP,endP) a={}; if size(DM{startP,endP},1)~=0 a=DM{startP,endP}; a=sortrows(a,2); if size(a,1)>=20 a=a(1:20,:); end end if size(DM{startP,endP},1)==0&&size(changeBus1(DM,startP,endP),1)~=0 a=changeBus1(DM,startP,endP); a=sortrows(a,5); if size(a,1)>=20 a=a(1:20,:); end end if size(DM{startP,endP},1)==0&&size(changeBus1(DM,startP,endP),1)==0 a=changeBus2(DM,startP,endP); a=sortrows(a,8); if size(a,1)>=20 a=a(1:20,:); end end strategy2.m%策略2(第一问) %策略2,首先考虑时间,再考虑转乘次数,最后考虑费用 function a=strategy2(DM,startP,endP) a={}; a1=DM(startP,endP);

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库公交查询系统的最佳乘车方案研究与设计(5)在线全文阅读。

公交查询系统的最佳乘车方案研究与设计(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/599155.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: