一种基于遗传算法和极大熵模型计算交叉口转向比例的方法

文档序号:6610029阅读:151来源:国知局
专利名称:一种基于遗传算法和极大熵模型计算交叉口转向比例的方法
技术领域
本发明涉及一种计算交叉口转向比例的方法,特别是一种基于遗传算法和极大熵模型计算交叉口转向比例的方法,适用于道路交通规划与交通管理控制。
背景技术
对于一个城市的交通网络而言,各交叉口各个方向进口交通流的转向比例(也称分流系数,转向概率等)是制定交通管理控制方案(如交通信号配时),拟定交通规划(如交叉口车道渠化)不可缺少的重要数据。
通常对于支路不多的交叉口(如小于4支),交叉口转向比例可以采用人工计数的方法来获得。但对于十字交叉口或多于4支的交叉口,人工计数很难分辨各入口车流的去向。因此,单靠人工计数是不能完全确定一个交叉口的转向比例的。事实上,交叉口转向比例与各交叉口的进出流量之间是有关系的,而交叉口的进出流量可以通过检测器检测。根据交叉口的进出流量计算交叉口各个方向交通流的转向比例可以被视为根据流量反推O-D矩阵的一个特例,因为可以把与交叉口相关联的上下游交叉口看成O-D节点。基于路段流量反推O-D流量的问题,根据问题的规模的大小,分为3类,即交叉口(点)O-D反推,高速公路O-D反推(线)以及路网O-D反推(面)。可见,根据进出交叉口的路段流量反推交叉口各个方向的转向比例(O-D矩阵)是这类问题中的规模最小的。一般认为,在符合某些特定的假设条件下,转向比例与交叉口进出流量之间存在着线性的关系。可以通过求解一个线性方程组,得到交叉口转向比例。
假定某个典型的十字交叉口,有4个邻接交叉口。每个邻接交叉口和交叉口之间的交通流为双向,如图1所示。定义yj(t)在时间段t内,从本交叉口经由下游交叉口j离开的流量,j=1,2,3,4;y(t)=[y1(t),......,y4(t)];qi(t)在时间段t内,从上游路段i进入本交叉口的流量,i=1,2,3,4;q(t)=[q1(t),......,q4(t)];bij(t)(i=1,...,4;j=1,...,4)指车辆从上游交叉口i到达交叉口后从下游交叉口j离开的概率(j=1,2,3,4),也就是本说明书所指的交叉口转向比例。
bj(t)=[bij(t)],i=1,2,3,4;b(t)=[bj(t)]T,j=1,2,3,4;bj(t)满足流量守恒方程并且是非负的,即0≤bij(t)≤1和Σj≠ibij(t)=1.]]>根据上述定义以及如下的假设(1)交叉口转向比例在流量检测时间间隔t内保持不变;(2)进入交叉口的流量已知(检测器检测流量);(3)所有驾驶员在时间间隔t内,从上游路段i到达交叉口后从下游路段j离开的事件彼此独立;(4)所有在流量检测时间间隔t内到达交叉口的流量在时间间隔t内离开交叉口(即不考虑车辆在路段上行驶时间和在交叉口内停留的时间),并且只考虑直行,左转弯和右转弯,而不考虑掉头的情况(bii(t)=0,允许掉头的交叉口相对于其他类型的交叉口比较少,如果确实需要,同样也可以应用本方法),则有式(1)y(t)=q(t)b(t)+e(t)(1)Subject to0≤bij(t)≤1(1a)Σj≠ibij(t)=1---(1b)]]>
其中e(t)为均值等于0的误差向量。
假定Rank(q(t))=M,未知转向比例数量为N,在一般情况下,M<<N,因此方程组无法得到唯一解。
针对上面的问题,比较常用的处理方法有最小二乘法,最大似然法,极大熵法和贝叶斯推断法。这些方法可以区分为非递推方法和递推方法。比较常用的非递推的方法包括最大似然法。该方法本质上是最小二乘法。根据最小二乘法的原理,可以推导出交叉口转向比例与交叉口进出流量之间的关系如式(2)所示j(t)=[∑tq(t)qT(t)]-1∑tq(t)yj(t)],j=1,...,4(2)这种基于最小二乘法原理的估计方法比较简单,但是无法保证满足约束条件(1a)和(1b),并且需要对矩阵求逆。对于某个特定时间段(即非时间序列数据),由于系数矩阵非满秩,无法求逆,也就不能采用这种方法进行计算。
递推方法的基本形式形如式(3)所示。
j(t)=j(t-1)+gj(t)[yj(t)-qT(t)j(t-1)]j=1,...,n(3)其中gj(t)为增益因子(Gain Factor)。通过使用在时间间隔t内得到的进入交叉口的流量数据,产生一序列(t)的估计值来更新先前(t-1)的值。更新选择的依据是由(t)预测的离开流量与实际的观测离开流量之间的均方差最小。这就是所谓的递推预测误差法。根据不同的gj(t)定义,常见的递推方法主要包括随机梯度法,递推最小二乘收敛法和基于卡尔曼滤波的跟踪递归最小二乘法。随机梯度法同时可以被视为一种递归最速下降的方法,而递推最小二乘收敛法在收敛速度上明显快于第一种方法。第三种方法的优点在于gj(t)可以不是一个常数,当转向比例是一个分段的常数向量,并且相对于算法的收敛时间,不同段之间的间隔时间较长的时候,这种变化可以通过gj(t)的值被跟踪。由递推法的基本形式可以看出,这种方法仅利用了非常局部的信息,即仅利用一个时间段的量测交通量来估计该时段的交叉口转向比例,对于后续的估计时段,先前时段的交叉口转向比例保持恒定。这在量测噪声较大时可能导致估计误差偏大。
可以看出,所有的这些方法都是基于一个假设确实存在一个准确的动态交通分配模型,并且,先验的随时间变化的O-D数据是可以获得的。但是,实际中,得到一个准确的动态的交通分配模型以及O-D数据是非常困难的,更多的时候得到的是离线的静态交通数据。因此,本发明提出了一种基于离线静态交通数据,采用遗传算法和极大熵模型混合的方法,求解交叉口的转向比例。相对于前面的方法,这种采用智能计算的方法,由于算法本身的特点,在其求解过程中可以不受或者少受约束条件的限制。另外,由于遗传算法是一种随机搜索的方法,这种方法无法排除可能存在的其他的“最优”解的可能性。因此,又结合了极大熵的方法,通过极大熵模型,从众多的满足精度要求的遗传算法搜索解中找到其中“最优”解作为最终确定的交叉口转向比例。

发明内容
本发明的技术解决问题克服现有技术的不足,提供一种基于遗传算法和极大熵模型计算交叉口转向比例的方法,该方法基于离线的静态交通数据,即根据实际的交通状况以及先验的交叉口转向比例知识,对遗传算法的搜索空间进行限制,既提高了算法的效率,又使最终的解更具有实际意义。
本发明的技术解决方案一种基于遗传算法和极大熵模型计算交叉口转向比例的方法,其特征在于包括以下步骤(1)输入研究路口及其空间相邻路口某一个时间段的流量数据;(2)设置遗传算法的遗传算子及其控制参数,定义遗传算法求解的搜索空间以及求解的总次数;(3)初始化遗传算法计算环境;
(4)执行遗传算法计算;如果得到的解满足精度要求,转步骤(5),否则,转步骤(3);(5)计算得到的解的熵;判断是否达到设定的求解总次数,如果是,转步骤(6),否则,转步骤(3);(6)比较所有满足精度要求解的熵,找出其中熵最大对应的解,该解即为最终解。
本发明与现有技术相比的优点在于本发明不需要准确的动态交通分配模型,而是基于交叉口检测的历史流量,采用遗传算法对此求解,然后对所有满足精度要求的解计算其熵值,以熵最大值为最终确定的交叉口转向比例,既提高了算法的效率,又使最终的解更具有实际意义。


图1为每个邻接交叉口和交叉口之间的交通流量图;图2为本发明方法的流程图。
具体实施例方式
如图2所示,本发明的具体实现步骤如下(1)输入研究路口及其空间相邻路口某一个时间段的流量数据;(2)设置遗传算法的遗传算子及其控制参数,定义遗传算法求解的搜索空间以及求解的总次数;a.设定遗传算法求解运行的总次数。由于采用智能计算的方法,该参数可以取较大的值,如500,甚至1000。
b.可接受遗传算法解的最小误差。该参数可以根据需要调整,一般不应该大于5%。
设置遗传算子和控制参数,见表1。
表1遗传算子和控制参数

c.限制遗传算法搜索空间由于交叉口转向比例问题是一个实际问题,并且在某些时候,还可以得到一些先验知识。因此,可以选择搜索空间限制法来处理约束条件。显然,交叉口转向比例的问题中各个到达交叉口交通流的转向比例最小值为0,最大值为1。但是这个搜索空间的定义对于问题的解决没有任何的帮助,需要更加进一步的信息来对搜索空间做限制。
在实际的交通中,交通管理部门根据先验的交通流转向比例(不一定是定量的,可能是定性的)对进入交叉口的各个车道进行渠化,划分出直行车道,左转弯车道或者右转弯车道(掉头的情况暂不考虑)并且标示在接近交叉口的位置,以提醒驾驶员行驶在合适的车道上。本发明就是利用这些信息,对转向比例的搜索空间做进一步的约束。具体的方法如下Step1计算到达交叉口的车道总数N;Step2为每一车道平均分配流量比例,即1/N。如果某条车道定义的车流方向对于一个方向(如既可以左转,又可以直行),则根据定义的方向对1/N比例的车流量继续平均划分,如1/(2N);Step3根据车道的渠化,计算各个方向的转向比例;Step4考虑其他随机因素的影响,对各个方向的转向比例在原来的基础上增加一个随机富余比例流量(0.1~0.2);Step5Step4得到的各个方向的转向比例设定为该方向转向比例的最大值;而最小值可以设定为一个很小的数(如0.01)或者为0。如果该方向的交通流禁止某个方向,如左转弯,则可以将该方向的转向比例最大值和最小值均设定为0。
例如,某个交叉口某个方向的渠化定义为(L(L&T)TTR),即总共有5条车道,一条左转弯专用车道,一条右转弯专用车道,两条直行专用车道和一条左转弯和直行共用车道,并且假设所有方向的转向比例富余量均为0.1,则计算得到的各个方向的搜索空间为直行0~0.6;左转弯0~0.4,直行0~0.3。而如果渠化变为(L(L&T)TT(T&R)),也就是把原来的右转弯专用车道改变为右转弯和直行共用车道,其他设定不变,则计算得到的各个方向的搜索空间为直行0~0.7;左转弯0~0.4,直行0~0.2。
可以看出,根据算法的定义,相对于原来的搜索空间,经过限制后的遗传算法搜索空间被大大地缩小了,从而有利于提高算法的效率;同时,由于对搜索空间所做的限制又是根据实际的交通渠化和先验的交通流转向比例,使得最终得到的解更具有实际的意义;(3)初始化遗传算法计算环境,第一次初始化可以与步骤(2)的初始环境相同,以后每次运算完后均需要初始化;(4)执行遗传算法计算,记录每次采用遗传算法进行计算的结果,其中目标函数和个体适应度计算如下目标函数如以下公式J(b)=min(Σj=14|yj(t)-Σi=14qi(t)bij(t)|Σj=14yj(t))]]>由于本问题是一个最小值问题,而在遗传算法中,个体的适应度越大,个体遗传到下一代的概率就越大。因此,个体的适应度需要在目标函数的基础上进行变换,如以下公式Fitness=Cmax-J(b)ifJ(b)<Cmaxelse]]>
Cmax为一适当的相对比较大的数,可以是目标函数最大值的估计,也可以是一个合适的输入值。
(5)根据遗传算法求得的路口转向比例,根据前述的公式(1),可以计算出当路口转向比例为求得的转向比例条件下,从路口各个方向离开的流量;将计算得到的路口各个方向离开流量与实际的路口各个方向离开的流量进行比较,采用步骤(4)中计算目标函数的公式作为误差计算公式,进行误差计算,如果得到解的误差满足精度要求,转步骤(6),否则,转步骤(3);从对搜索空间的限制可以发现,当最终由遗传算法搜索得到的解,即计算路口转向比例时,左转、右转和直行相加的计算结果无法满足约束条件Σj≠ibij(t)=1]]>时,则需采用归一化处理或投影处理的归一化处理方法,其中归一化处理为bij(t)=bij(t)Σjbij(t)]]>投影处理为bij(t)=bij(t)+1.0-Σjbij(t)n]]>(6)根据以下公式计算所有满足精度要求的解的熵,判断是否达到设定的求解总次数,如果是,转步骤(7),否则,转步骤(3); 对公式的说明令y=Σi=1n]]>yi=Σl=1N]]>fi为经过交叉口的总车辆数(事实上就是从交叉口离开的流量),对一给定的F=(f1,f2,...,fN),其可能出现的组合数为I(F)=y!Πl=1Nfl!]]>从直观上看,I(F)越大,则F出现的可能性越大。下面将证实这一直观想象是符合申农原理的。取I(F)的一个单调增加函数,取其不妨对数,记为(F),则有 由stiring近似公式lny!=ylny-y,则 =Σl=1Nfllny-Σl=1Nfllnfl=Σl=1Nfllnyfl=-yΣl=1Nflylnfly]]>若将 看作第l次事件出现的概率,则上式即为申农熵的原始定义,亦即(F)的含义是F中所包含的熵。根据申农信息论可知,事件中所含的熵越大,则出现的可能性越大。因为(F)是I(F)单增函数,所以I(F)越大,则(F)亦越大,即F中所含的熵越大。为此,可将熵最大的F作为真实的一种估计,于是将原问题转化为一个求熵最大、满足约束的数学规划问题。
为了求解方便,取(F),而不取I(F)作为目标函数。另一方面,由于y是一固定的常数,可以将其从(F)中略去,即取 (7)比较所有满足精度要求解的熵,找出其中熵最大对应的解,该解即为最终解。
权利要求
1.一种基于遗传算法和极大熵模型计算交叉口转向比例的方法,其特征在于包括以下步骤(1)输入研究路口及其空间相邻路口某一个时间段的流量数据;(2)设置遗传算法的遗传算子及其控制参数,定义遗传算法求解的搜索空间以及求解的总次数;(3)初始化遗传算法计算环境;(4)执行遗传算法计算;如果得到的解满足精度要求,转步骤(5),否则,转步骤(3);(5)计算得到的解的熵;判断是否达到设定的求解总次数,如果是,转步骤(6),否则,转步骤(3);(6)比较所有满足精度要求解的熵,找出其中熵最大对应的解,该解即为最终解。
2.根据权利要求1所述的基于遗传算法和极大熵模型计算交叉口转向比例的方法,其特征在于所述步骤(4)中遗传算法计算的目标函数和个体适应度函数选择方式的特征如下目标函数J(b)=min(Σj=14|yj(t)-Σi=14qi(t)bij(t)|Σj=14yj(t))]]>其中yj(t)在时间段t内,从本交叉口经由下游交叉口j离开的流量,j=1,2,3,4;y(t)=[y1(t),......,y4(t)];qi(t)在时间段t内,从上游路段i进入本交叉口的流量,i=1,2,3,4;q(t)=[q1(t),......,q4(t)];bij(t)(i=1,...,4;j=1,...,4)交叉口转向比例,指车辆从上游交叉口i到达交叉口后从下游交叉口j离开的比例,j=1,2,3,4;个体的适应度Fitness=Cmax-J(b)ifJ(b)<Cmaxelse]]>Cmax为一个大的常数值。
3.根据权利要求1所述的基于遗传算法和极大熵模型计算交叉口转向比例的方法,其特征在于所述步骤(4)中当采用基于遗传算法计算路口转向比例时,左转、右转和直行相加的计算结果无法满足约束条件Σj≠ibij(t)=1]]>时需采用以下的归一化处理或投影处理的归一化处理方法,其中归一化处理为bij(t)=bij(t)Σjbij(t)]]>投影处理为bij(t)=bij(t)+1.0-Σjbij(t)n.]]>
4.根据权利要求1所述的基于遗传算法和极大熵模型计算交叉口转向比例的方法,其特征在于所述步骤(5)进行熵计算时,遗传算法解的熵值定义特征如下 如果将车辆经过交叉口的过程看作一次随机试验过程,车辆从第i入口进来又从第j出口出去看作第l次事件的发生l=i+j(n-1),则上式中fl就表示从上游交叉口i到达交叉口后从下游交叉口j离开的总流量,N为事件的总数。
5.根据权利要求1所述的基于遗传算法和极大熵模型计算交叉口转向比例的方法,其特征在于所述步骤(1)中定义遗传算法求解的搜索空间的方法如下(1)计算到达交叉口的车道总数N;(2)为每一车道平均分配流量比例,即1/N,如果某条车道定义的车流方向对于一个方向既可以左转,又可以直行,则根据定义的方向对1/N比例的车流量继续平均划分,即1/(2N);(3)根据车道的渠化,计算各个方向的转向比例;(4)考虑其他随机因素的影响,对各个方向的转向比例在原来的基础上增加一个随机富余比例流量0.1~0.2;(5)上述步骤(4)得到的各个方向的转向比例设定为该方向转向比例的最大值;最小值设定为一个很小的数或者为0;如果该方向的交通流禁止某个方向,则将该方向的转向比例最大值和最小值均设定为0。
全文摘要
一种基于遗传算法和极大熵模型计算交叉口转向比例的方法包括(1)输入研究路口及其空间相邻路口某一个时间段的流量数据;(2)设置遗传算法的遗传算子及其控制参数,定义遗传算法求解的搜索空间以及求解的总次数;(3)初始化遗传算法计算环境;(4)执行遗传算法计算;如果得到的解满足精度要求,转步骤(5),否则,转步骤(3);(5)计算得到的解的熵;判断是否达到设定的求解总次数,如果是,转步骤(6),否则,转步骤(3);(6)比较所有满足精度要求解的熵,找出其中熵最大对应的解,该解即为最终解。本发明提高了计算效率和增加了最后得到解的实际意义,还可以根据道路实际的交通状况和先验的交叉口转向比例知识对遗传算法的搜索空间进行限制。
文档编号G06N3/12GK101089913SQ20071011869
公开日2007年12月19日 申请日期2007年7月12日 优先权日2007年7月12日
发明者王劲峰, 孙腾达, 王海起 申请人:中国科学院地理科学与资源研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1