《武汉工程大学学报》  2010年12期 84-87   出版日期:2010-12-31   ISSN:1674-2869   CN:42-1779/TQ
基于多智能体的交通控制仿真系统


0引言交通控制的智能化已成为人工智能领域最活跃的研究主题之

一.传统交通信号控制策略是定时控制,是一种开环控制方法,其适

应性较差;感应控制是一种闭环控制方法,它可根据车辆信息检测绿

时变化,具有一定的适应性.传统交通控制策略与方法固有的局限性

,迫使人们采用智能程度更高的技术来解决控制问题.由于交通控制

拓扑结构的分布式特性,使其很适合于应用MultiAgent技术,尤其

对于具有剧烈变化的交通情况,MultiAgent的分布式处理和协调

技术更为适合[1].本文从MultiAgent[2]的角度研究智能交

通控制系统, 对各Agent主体进行研究,并最终完成系统仿真.1系统

简介通过对实际交通系统[3]简化建立多Agent模型后完成的

MultiAgent仿真系统,主要包括车辆随机生成Agent、路口碰撞检

测Agent、车辆Agent、系统调度Agent和交通流Agent[4].此外

还有一些功能性的模块,主要有外围环境渲染模块、中心动画生成

模块、系统时间显示模块.这些功能模块相对独立,主要完成一些细

节,如纹理生成、时间显示等.系统调度Agent在系统启动时根据用

户选择启动车辆随机生成Agent,推进仿真钟,协调各Agent的动作.

车辆随机生成Agent可以根据以往统计数据或者随机生成模型(依据

用户选择)生成车辆Agent数据.交通流Agent用双链表记录相应车辆

Agent数据,反馈控制车辆随机生成Agent的参数(也可人工选择),当

车辆Agent驶离时,释放其资源.在仿真钟的触发下,车辆Agent根据

当前交通流Agent的数据作出相应动作,调整速度、加速度、行驶方

向,是否停车等.当车辆Agent到达路口时,启动路口碰撞检测Agent,

各车道车辆Agent进行自主协调(以多线程技术完成),完成车辆

Agent的路口通行.系统能完成交通控制的基础仿真,对多智能体交

通控制系统的设计具有重要意义.2Agent设计2.1车辆随机生成借鉴

排队论[5]中到达时间间隔的分布,建立了基于泊松分布的车辆随

机生成Agent模型.车辆产生模型描述了车辆的随机到达数分布,车

辆达到数的分布是离散型的随机分布.车辆到达分布数常见的有泊

松分布、平均分布及二项分布等.其中泊松分布用于描述计数时间

间隔极短,车流密度不大,车流间相互影响较小,其他外界干扰基本

不存在的交通状况;平均分布用于描述车流比较平均的情况,各车道

产生车辆的概率相当,二项分布用于描述车辆比较拥挤,自由行驶机

会不多的车流.本仿真模型主要用到泊松分布模拟车辆产生的间隔,

泊松分布基本公式是:p(x)=mxx!e-m(1)
式(1)中:p(x)为在计数间隔t内 到达x辆车的概率;x为给定时间

间隔到达的车辆数;e为自然对数的底数,e=2.718 28;m= t为计数

间隔t时段内平均到达的车辆数,λ=N3 600,N是小时交通量,t为每

个计数间隔持续的时间(s).2.2路口碰撞检测根据碰撞检测理论[6

],将车辆行驶的环境按照坐标值划分为网格来进行碰撞检测,即空

间剖分法.在真正进行碰撞检测时,对车辆矩形运用AABB(Axis

Aligned Bounding Box)包围盒.碰撞检测的一般框架如图1所示.

图1碰撞检测的一般框架
Fig.1General framework for collision detection按照碰撞检

测的一般框架,经过初步检测阶段分析,4个车道(2、5、8、11)的车

辆不会发生碰撞,其余8个车道的车辆可能会发生碰撞.而在详细检

测阶段的逐步求精层中,这8个车道的车辆碰撞检测又分为2类.在精

确求交层将对这2类进行具体求解,分析如下:第12期熊继鹏,等:基

于多智能体的交通控制仿真系统
武汉工程大学学报第32卷
1) 处于中间车道即1、4、7、10的车辆碰撞检测,以1车道为例进行

分析.1车道行驶的车辆是笔直通行的,可能在图2中4个三角红点处

发生碰撞.图2中绿色菱形点为可能会发生碰撞点.车辆不一定刚好

位于这些点,将这些点的前后各一格也标识为碰撞区域,1车道有25

个碰撞点.中间车道的车辆在检测点互不依赖,不会发生死锁.因而

这4个车道的碰撞检测是独立进行的.图21车道车辆碰撞检测分析
Fig.2Analysis of vehicle collision detection in channel

1 2) 处于内侧车道即0、3、6、9车道的碰撞检测,以0车道为例进

行分析.内道的情况要比中间道的碰撞检测情况复杂的多,图3中虚

线的菱形原本也是碰撞点,因行驶方向一致,变为非碰撞点.图3中的

蓝色菱形是其他内道的检测点,这样可以看出内道之间会发生死锁,

不仅如此,内道与中间道之间也会发生死锁,由进程优先权的思想,

给4条内道赋予一个优先权:0、3、6、9依次降低,而且内道优先权

高于中道.经过这样的一个策略设计,内道的车辆将不会发生碰撞.

图30车道车辆碰撞检测分析
Fig.3Analysis of vehicle collision detection in channel

0 2.3系统调度系统调度Agent根据仿真钟协调各Agent的动作,也即

采用分时控制模型.每隔20 ms时钟步从全局进行一次车辆随机生成

、碰撞检测、车辆Agent行为、交通流Agent更新操作.采用C++及

OpenGL实现AnimationVehicle函数如下:
void AnimationVehiele(int value)
{
CollisionDetect();
Node<VehicleRect>*q;
q=Vehiclel. sit.first→next;
while(q)
{
q→data.CalDistance();
q→data.ChangeDirect();
q=q→next;
}
DeleteLevaveVehicle();
glutPostRedisplay();
glutTimerFunc(20,AnimationVehicle,2);
}2.4中心动画与车辆Agent中心动画与车辆Agent,其实就是粒子系

统.粒子系统通用结构如图4所示.图4粒子系统结构图
Fig.4Structure of particle system基于粒子系统理论[7],中

心动画粒子系统的粒子源位于坐标原点(0,0,0)处,角度增量是15°

,粒子数24,颜色可不断变化.粒子生命期为20 ms.粒子属性更新由

圆参数方程式(2)控制.x=r×cosθ
y=r×sinθ(2)
式(2)中r为粒子产生半径,根据一定步长变化,θ为粒子角度,范

围为[0,360],变化步长为15度.车辆Agent由于数量较多,也构成

了粒子系统.车辆Agent粒子系统的粒子源共有12个,即12个车道的

起点处,根据车辆随机生成Agent的数据生成车辆Agent,所以每时每

刻的车辆总数(即粒子总数)是不确定的.粒子的属性每隔20 ms更新

一次,其坐标点控制方程如下:s=s+v0+12at(3)
式(3)中,v0为车辆初始速度,其正负由行驶方向决定,即规定向左

和向下为负,向右和向上为正,如图5所示.加速度根据车辆类型决定

,若加速度为0,则为匀速运动.图5车辆行驶方向示意图
Fig.5Diagram for direction of vehicle2.5交通流Agent交通

流Agent则从全局角度记录当前系统中所有车辆Agent的数据,方便

其他Agent交互时的通信.交通流Agent用双链表记录相应车辆Agent

数据,反馈控制车辆随机生成Agent的参数(也可人工选择).当车辆

驶离系统时,释放其占用的系统资源.3仿真实现系统模拟的是单个

交叉口的交通控制.车辆Agent的随机生成依据统计数据或者随机生

成模型.生成的车辆Agent数据记录在交通流Agent中,交通流Agent

数据反馈控制车辆的随机生成,从而减少交通拥塞.各车辆Agent可

以与全局交通流Agent交互进行加减速,超车,停车等相应动作.在更

大范围的多交叉口的交通控制中,单个交叉口的交通流数据可以作

为全局范围的短时交通量预测依据,反馈车辆生成.在VC环境下,采

用OpenGL[8]图形库及多线程技术实现的交通控制仿真系统如图6

所示.系统能较好的模拟交通控制,对多智能体交通控制系统的设计

具有重要意义.图6交通控制仿真系统
Fig.6Simulation system for traffic control 4结语基于VC和

OpenGL图形库开发的仿真系统,验证了智能化交通控制系统研究的

可行性,体现了多Agent技术的优越性.研究的主要创新点如下:1)

基于多Agent技术,综合应用了排队论、碰撞检测和粒子系统建立了

交通控制多Agent模型.2) 基于VC环境和OpenGL图形库,实现了交

通控制仿真系统.与其他交通控制系统不同的是,运用MultiAgent

方法将从全局的角度控制交通.车辆之间交互性和协调性增加,更加

智能化.进一步的研究工作可以如下展开:(1)从全局从发,协调多个

交叉口的交通控制,优化交通时延、拥塞,车辆选择交通路线更加智

能.(2)比较其他网络控制系统,研究优化交通控制模型.