卢镭,曾晖,刘阳
摘要:城市公交对城市经济发展和人民生活水平的提高起着非常重要的作用。但是随着城市规模的不断扩大,很多站点难以直达,且城市人口流动大,给出行人带来许多不便。该文根据影响公交出行的主要因素,得出公交出行的最优模型,建立一个公交换乘系统,可实现公交线路查询、站点查询、站点间换乘查询以及后台管理功能,使人们能在较短时间内得出最优的换乘方案。
关键词:最短路径算法;蚁群算法;C#;B/S结构;数据库
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)02-0494-03
Research of Urban Transit Inquiry System
LU Lei,ZENG Hui, LIU Yang
(Jiangxi College of Applied Technology,Ganzhou 341000, China)
Abstract: City bus plays a very important role to urban economic development and improvement of peoples living standard . But with the expansion of cities, so many people are brought inconvenience. Because many sites difficult to direct and urban floating population are foreigners. Based on the main factors affecting bus travel on existing public transport ,they obtained optimal model of bus travel.
Key words: shortest path algorithm; ant colony algorithm; C#; structure of B/S; database
“公交优先”的概念首先产生和应用于巴黎[1]。早在30年前,我国政府就发布了优先发展公共交通的产业和技术政策,但是由于我国基础差、底子薄,在交通结构转变过程中也处于劣势,有些城市甚至还出现了公交萎缩的尴尬局面[2]。
1蚁群算法
1.1蚁群算法概述
蚁群算法(Ant Colony Algorithm,ACA)是由意大利学者M.Dorigo等人于20世纪90年代提出的[3],是受自然界蚂群的觅食行为发展起来的随机搜索算法。
蚂蚁作为群体时,其高度结构化的集体行为让蚁群展现出超乎个体的特殊功能[4]。蚂蚁会在其经过的路线上释放一种特有的分泌物——信息素(pheromone),使得在一定范围内的蚂蚁能够感知它的存在及浓度,进而向该物质浓度强的方向移动。因此某一路径上蚂蚁越多,信息素也就越多,强度也越强,后来的蚂蚁选择该路径的概率也就越大。蚁群表现出来的这种特性被学者们称为“群集智能”(Swam Intelligence,SI)[5].
1.2蚁群算法模型
初始化相关参数信息[6]:m为蚂蚁的数量,p为城市数量,i为蚂蚁出发的城市,j为蚂蚁到达的城市,τij为边(i,j)路径上信息素强度,ηij(t)为城市间的启发函数,ρ为信息素挥发后的残留因子,α为在蚂蚁选择路径时信息素浓度的相对重要性,β为在蚂蚁路径选择时路径长度的相对重要性,allowedk为蚂蚁下一步允许选择经过的所有城市的集合[7]。tabuk为蚂蚁已走过的城市。allowedk={0,1,2,…,p-1}-tabuk。
j(t)表示t时刻第k只蚂蚁从城市i转移到城市j的概率
经过几个时刻,当蚂蚁k遍历完所有城市完成一次循环,需要用更新规则来更新相应路径上的信息素浓度。
τij(t+n)=ρ×τij(t)+Δτij(t)
(3)
Δτkij(t)为第k只蚂蚁在这次循环中在i,j城市之间路径上释放的信息素。
其中Q表示信息素浓度,LK为蚂蚁k所经过的城市的路径总长度。
2相关技术综述
2.1蚁群算法的基本流程
Step 1:设Nc=0,Nc为循环迭代次数,Nc=Nc+1
τij(0)= c,τij为每条路径上的信息素浓度,c为常数,Δτij=0。
Step 2:随机放置k个蚂蚁到起始点上(m为蚂蚁总数)。
Step 3:蚂蚁从起始点出发。
Step 4:Nc=Nc+1。
Step 5:将出发点的名称存入访问站点集合中的第一项,令k=1。
Step 6:读取访问站点集合中的最后一个站点,从弧段表中依次读取以该站点为起点弧段的终点。
Step 7:判断蚂蚁k是否走过该站点,即终点是否在蚂蚁k的访问站点集合中,
如果是表明蚂蚁k经过了该站点,继续读取下一个弧段信息,
如果否,则将该弧段存入被选弧段中。
Step 8:判断弧段是否扫描完毕,
如果否,则返回Step 6继续扫描弧段。
Step 9:根据被选弧段中各弧段的概率选择一弧段。
Step 10:判断是否所有蚂蚁都运行完毕k>=m?
若是则根据公式更新刚刚走过的弧段的信息素;若为否则返回k=k+1继续运行。
Step 11:根据公式更新每条路径上信息素的浓度。
Step 12:若满足约束条件Nc≥Ncmax则进入下一步打印最优计算结果;若为否则跳转到Step 4。
3系统总体设计
3.1系统设计
该系统的具体开发流程如图1。图1系统开发流程图
一是将需求功能的分析结果,作为设计系统的总体框架的依据;二是分别设计数据表和数据库;三是将模块的开发设定为三层B/S结构:设计数据层、建立业务逻辑层、设计表示层[8]。3.2系统功能模块划分
3.2.1城市公交系统的活动对象相互影响相互制约
1)管理决策者
由政府交通管理局等相关管理部门构成,主要负责制定并监督实施公交系统各项政策法规。2)运行者
由公交汽车公司构成,主要负责日常时刻表制定、车辆调度等工作。
3)使用者
乘客可以根据系统平台中查询得到的信息来选择出行方式。因此,乘客尽可能多的获得实时动态信息将对出行产生重要影响。
3.2.2系统功能模块划分
1)查询系统模块
用户输入需要查询的公交线路,系统可查询出该线路的始发车、末班车时间,发车时间间隔,途径的所有站点。
用户输入需要查询的公交站点,系统可查询出该站点的相关信息,包括经过该站点的所有车次、该站点是否为起始站点等信息。
用户在系统中输入任意两公交站点,系统将以这两点为起始点和终点按站点距离短优先给出可行的换乘路线。
2)管理模块
新增、编辑:系统具有很好的扩展性,允许管理员对线路、站点、车辆参数等数据信息进行操作,以保证数据的实时性,增强系统的可靠性。
495
删除:允许管理员对车次、站名进行操作,以保证数据的实时性。
4实现过程
用户在起点站中选择输入出发点,在终点站输入终点,起始点和终点站的ID参数便传入系统。实现两站点查询过程可分为三步[9-11],第一步:得出所有可能的途径车站列表;第二步:从起始点开始递归搜寻所有可能线路;第三步:调用算法求所有线路的权重并排序。如果这两个站点间可以直达或者通过换乘到达,则给出相应的出行线路,排在前面的线路根据蚁群算法检测到距离比其他线路更优;如果没有直达车,系统则不给出公交出行线路。
参考文献:
[1]北京公交斥巨资走公益发展模式[EB/OL].(2007-10-18).http://www.enorth.com.cn.
[2]匡星.城市常规公共交通服务水平研究[D].长春:吉林大学,2004.
[3] Dorigo M,Mnaiezzo V,Colonri A.The Ant System: Optimization by A Colony of Coopearting Agents[C]//IEEE Transactions on Systems,Man, and Cybernetics,1996,1(26):29-41.
[4] Dorigo M,Bonabeau E,Theraulaz G.Ant algorithms and stigmergy[J].Future Generation Computer System,2000,16(8):851-871.
[5] Bonabeau E,Dorigo M,Theraulaz G.Swarm intelligence: from natural to artificial systems[M].New York:Oxford University Press,1999.
[6]何胜学,范炳全.公交网络最优路径求解算法蚂蚁算法[J].交通运输工程与信息学报,2007,5(1):22-27.
[7]陈业红.蚂蚁算法的理论模型与收敛性的初步探讨[J].山东轻工业学院学报,2006,20(1):77-81.
[8]汪江洪.公交换乘系统研究及其评价[D].成都:西南交通大学,2006.
[9]徐锋,杜军平.改进蚁群算法在旅游路线规划中的应用研究[J].计算机工程与应用,2009(23).
[10]何胜学,范炳全.公交网络最优路径求解算法[J].交通运输工程与信息学报.2007,5(1):22-27.
[11]张军,胡晓敏.蚁群优化[M].北京:清华大学出版社,2007.