公交查询系统,07年全国赛B题
.556.黑龙江大学自然科学学报第25卷车毛,从彳到Y有直达车t,按照直达车算法分别得站点数为c。和c。,用q表示从L。转到厶的一次转车到达的总站数,则有
q=cI+ci,(,=1,2,3,…,r)
所经站点总数最少为
c:=min{c:,砭,…,C:}
计算出相应的费用h和r…总费用为刊
最少费用为=k+-(J=1,2,…,r).
R:=min{尺:,R;,…,R:}
2.3两次转乘算法
若Q,nMy=中,则此时至少要转两次车才可以到达终点,记Q,为与鸠中的各条线路相交的线路的集合。
由假设,Q,nQ,≠中.对于Q,nQ,中的任意一条线路厶,则在鸩中至少存在一条线路厶与其相交,同样在M,中至少存在一条线路乙和厶相交,这样毛+厶+厶便是一个可行线路的组合。
假设有s种这样的组合,类似一次转乘,求出厶和厶的第一个交点e,Lj与k的第一个交点,这样就相当于从戈到e有直达车厶,从e到,有直达车厶,从厂到Y有直达车厶.
按照转一次车算法求出t,L。,厶线路中相应的站点数C^,c;,c。和费用“,ri,“.
按照c;=c。+ci+c。(J=1,2,…,s)计算出二次转车各种可行线路组合要经过的站点数,求出
c:=min{c;,谚,…,c:}
则第m种可行线路组合便是换乘两次时路程较短的线路。
利用R;=“+-+h(J=1,2,…,s)求出各种可行线路组合所需费用。
求出R:=min{R;,尺;.…,碍}就是相对比较省钱的线路组合。
利用VB编制可视化程序,实现查询结果,在可视化窗lYl中只需输入起点站和欲到达站,便可根据查询者不同的要求给出相应的结果。
下面以北京公交线路为例,选取6组站点,运用此算法实现查询结果如下(其中耗时栏含等车时间3rain):
表1一次换乘最优路线
Table1OptimumroutewitIlonetransfer
表2二次换乘最优路线
Table2Optimumroutewithtwotransfer
3模型评价
针对本文的问题,如用Dijkstra标号法,把站点看成节点,把公交线路看成连接节点的路径,可以找到从起点z到终点Y的最短站点距离的线路,但Dijkstra标号法找线路时没有考虑有几个转折点的问题,即最后找到的线路可能路径较短,但要转很多次车;另外Dijkstra算法在节点数量较多的情况下计算的时间成倍甚至幂次增长【卜8|,这就脱离了实际。一文中算法将对站点的搜索转化为对线路的搜索,从而将上万个数据的处理优化为对500多个数据的处理,大大缩短了运算时间。不仅如此,而且更符合乘客的查询要求(线路)。经检验输入起点与终点,结果查询运算时间不超过30s。同时,所得结果必为由起点到终点的路径。在转车
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证公交查询系统的数学模型(3)全文阅读和word下载服务。
相关推荐: