考虑交叉口转向的最短路径拍卖算法的制作方法

文档序号:6697697阅读:209来源:国知局
专利名称:考虑交叉口转向的最短路径拍卖算法的制作方法
技术领域
本发明涉及对道路最短路径网络表示方法改进中的一种考虑交叉口转向的最短路径拍卖算法。

背景技术
最短路径拍卖算法是通过反复的迭代最终得到给定两点之间的最短路径,迭代过程并不使用到网络中的所有点,避免了传统算法须先求解最短路径树的繁琐,并且更加适合于多线程的并行计算,可快速求出单一起、终点问题。
但是目前,不论是在交通规划中利用最短路进行交通量分配,还是在导航系统中求解最短行车路线,普遍采用的最短路径算法是以无约束网络条件为前提的。在无约束道路网络中,车辆通过交叉口时所产生的延误或在交叉口的禁止转向限制是被忽略的。然而,实际道路网络是有限制条件的网络,主要表现在 (1)由交通管理措施产生的交叉口转向限制,如在某些交叉口禁止车辆左转弯,路段单行限制等。
(2)由于不同流向车流之间的干扰和信号控制手段产生的交叉口转向延误,例如,由于各行驶方向信号灯配时的不同时,相同进口道直行、左转车辆的延误也不相同。
在计算这类最短路径时的主要困难就是难以用一个经济、紧凑且易于管理的方法表示道路网络。传统的方法是将每一个交叉口扩展为一个子网,以路段表示转向行为,扩展后的网络不再涉及交叉口约束,并可以用任何标准的算法求解最短路径。但是,这种方法存在着占用空间多、修改复杂、冗余度高等主要缺点,例如仅对于普通的四路交叉口,将被扩展为一个包含8个结点和16条路径的子网络。


发明内容
本发明要解决的技术问题是针对背景技术中存在的缺陷而提出一种基于扩展前向星型结构的考虑交叉口转向的最短路径拍卖算法。
本发明的考虑交叉口转向的最短路径拍卖算法,包括如下步骤 对于有向网络G(V,E,A,D) (1)给定路径起点r和终点s,在价格矢量p中为路径起点r增设虚拟上游结点0; (2)初始化路径P和价格矢量p P=(r),pl,k=0,k∈Γ-1(l) pr,0=0 (3)取路径P的末结点表示为结点i,选择结点i的下游结点j,当时,如果满足条件进入步骤A,否则进入步骤B A.收缩路径令收缩路径P,转到下一个迭代过程,其中收缩路径P是指当路径P不仅包含路径起点r时,移除此时路径P中的末结点,当路径P仅包含路径起点r时,路径P保持不变; B.延伸路径通过第二结点ji来延伸路径P,如果第二结点ji是终点s,则迭代终止,P就是要求的最短路径,否则转入下一个迭代过程; (4)重复步骤(3),直到算法推出,此时,路径P即为路径起点r和终点s之间的最短路径,最短路径长度等于pi,h-pr,0; 其中V-所有结点集合;E-路段的集合;A-路段费用集合;D-交叉口转向费用集合;i-路径P的末结点,j-结点i的下游结点,k、l-网络中任意结点,h-结点i的上游结点,h∈Γ-1(i),i、j、h均为自然数;Γ-1(l)-结点l的上游结点集合;Γ-1(i)-结点i的上游结点结合;aij-路段(i,j)的行驶费用,aij∈A;(i,j)-从结点i指向其下游结点j的有向路段,(i,j)∈E;(h,i,j)-由结点i与其上游结点h和下游结点j三者唯一确定的在结点i处的转向动作;dh,i,j-转向动作(h,i,j)对应的转向费用,dh,i,j∈D;ji-{aij+pj,i+dh,i,j}中最小和值对应的下游结点j;pl,k-结点l处以k为上游结点价值量;pr,0-起点r处以0为虚拟上游结点价值量;pi,h-结点i处以h为上游结点价值量;pj,i-结点j处以i为上游结点价值量。
与现有技术相比,本发明具有如下有益效果1、本发明提供的扩展星型网络结构是一种数据存储空间更优的拓扑数据结构,能够大大减少内存占用空间,且便于网络信息的更新;2、本发明能够准确求解附加交叉口转向延误和转向限制的网络最短路径,并且能以最高效的方式从上述星型结构中检索网络信息;3、本发明能够求解任何因禁行限制而产生的复杂最短路径,如最短路径中包含交叉口“P型”转向和车辆掉头的情况;4、本发明采用二维价格矢量,允许算法在迭代过程中对同一结点的不同转向行为加以区别,符合求解限制网络最短路径问题的基本条件;5、本发明继承了原拍卖算法的迭代原理,对价格矢量做合理的扩展,同样适用于多处理器的并行计算,保留了拍卖算法的基本特性。



图1是本发明中扩展前向星型结构示意图。
图2是一幅简单的有向网络示例示意图。
图3是本发明有向网络中结点的上游结点列表。
图4是本发明中对价格矢量扩展示意图。
图5是本发明中各变量与价格矢量的关系。
图6是含有“P型”转向的有向网络示意图。

具体实施例方式 在求解网络最短路径问题时,网络的表示方式直接影响到算法的运算效率。如图1所示扩展的前向星型结构(Extend Forward Star Structure,简称EFSS结构)是一种较为经典的限制网络表示方法。该结构是一种链表结构,在原有的星型结构基础之上,加以扩展,加入了对交叉口转向延误的存储,并方便检索。为了提高算法对网络信息的查找速度,本文将给出如表1所示的数据结构。这是一种扩展的前向关联星型结构,统一以费用综合表示车辆通过路段或在交叉口转向时消耗的时间和受到的阻抗。其中,“Penalties”列为扩展列,存储对应路段(i,j)在结点j可能产生的转向费用。这些转向费用的排列顺序与结点j的“PointedNodes”列排列一致,并可以通过建立路网中所有结点的前向结点列表进行关联。作为EFSS结构中的扩展部分,它由n+1个子列组成。n表示“Pointed Nodes”列中同行结点j的出度(即以结点j为起点的路段数),“Penalties”中前n子列分别表示从结点i出发,经过结点j,并做转向k所产生的费用。而可执行转向动作k的数量就等于结点j的下游结点数n,这就建立了两者之间的一一对应关系。通过对应关系可以确定“Penalties”中子列的数量和顺序。对于“Penalties”中的第n+1列,赋予0值,用来表示路径以结点j为终点时产生的转向费用(在终点处无转向)。例如,如图2所示的有向网络,建立表2所示的网络数据结构。以转向动作(1,2,4)为例,其在数据表中的位置为a1,2所在行,根据结点1位于结点2前向列表的第1位,在“转向费用”列中可以读取d1,2,4=3。对于“Penalties”列的最后一位,存储费用0,表示以结点j为终点时,在结点j处的转向费用,即没有转向行为,这是为了便于计算的程序化。
表1有向网络加入转向费用的数据结构表示
表2扩展的前向星型结构表示方法
根据原始拍卖算法定义在给定一个有向网络G(V,E)中,V、E分别表示G中的结点集合和路段集合,路段(i,j)的长度为aij。用1表示起点,t表示终点,(i1,i2,...,ik)表示一条路径,其中(im,im+1)表示从结点im到结点im+1,如果i1,i2,…,ik各不相同,则(i1,i2,...,ik)称为初等路,结点ik为该初等路的终点,所有路段的长度之和就是路径的长度。在迭代中,算法始终保持一条初等路P=(i1,i2,...,ik),并不断延伸和收缩。如果ik+1不是路径P=(i1,i2,...,ik)中的结点,并且存在路段(ik,ik+1),则用结点ik+1来延伸P,是指用路径(i1,i2,...,ik,ik+1)来代替路径P;如果路P不只包含起点1,收缩P是指用路径(i1,i2,...,ik-1)来代替路径P。同时,算法对网络中的每一个结点i,分配一个价值量pi,并以价格矢量p表示所有结点价值的集合。在迭代过程中,价格矢量p要满足如下条件 pi≤aij+pj, pi=aij+pj,对于路径P上的连续结点对 这一条件称为松弛互补性条件(Complementary Slackness,简称CS条件)。可以证明,如果(P,p)满足CS条件,i是P中的点,则从起点1沿P到结点i的路是从1到i的最短路,并且p1-pi就是相应的最短路长度。
原始拍卖算法的关键步骤在于每一步迭代中对条件的判断,以决定路径P是否延伸或收缩。在限制网络中,任何车辆在交叉口的转向行为可以由该交叉口所在结点i、行驶路线的上游结点h和通过交叉口后的下游结点j三者唯一确定的,表示为(h,i,j)。以dh,i,j表示该转向行为的转向费用。这样在每一步迭代中,都可以用已知的h,i,j三点检索车辆通过当前交叉口所产生的转向费用。由此,可以建立起转向费用与转向行为的唯一对应关系。因此,考虑转向费用后的判断条件可写作 其中h为路径P中结点i的上游结点; 同理,对于拍卖算法的CS条件,可以扩展为 pi≤aij+pj+dh,i,j, pi=aij+pj+dh,i,j,对于P上的连续结点对 经过如上修改后,在原有拍卖算法中加入了对交叉口转向费用的考虑。对于交叉口的转向限制,则可以用无穷大或足够大的转向费用来表示该转向行为被禁止的。
进一步,为了能够正确处理最短路径中的结点与价格矢量之间的对应关系,并能够完成复杂路径,例如图6所示的含有P型转向的有向网络的迭代,算法将对价格矢量p的结构和路径P的延伸作如下修改 将一维的价格矢量p扩展为二维矢量,对于每一结点的子列,用于存储对应不同上游结点的价值量,其列数等于上游结点个数。pj,k表示在结点j处以k为上游结点价值量,k∈Γ-1(j)。如图4所示是对图2有向网络的价格矢量的扩展方法示意图,各结点价值量的扩展数量和排列顺序,应当按照图3所示的网络上游结点列表设置。对于起点(结点1),在最短路径中是没有上游结点的,为了在计算过程中便于对起点处的转向费用dh,i,j取值,对起点增设上游结点0(结点0实际并不存在),令dh,0,1=0,并且新增加价值量p1,0存放起点的价格矢量。本例中的结点1不存在上游结点,因此在增设结点0后,结点1对应的价值量为1列;而对于有n个上游结点起点1,在增加上游结点0后,对应的价值量应当被增加至n+1列。
此外,任意两点间的最短路径中,都不可能出现重复的子路线。算法迭代过程中,在路径P在延伸时,应当排除重复出现的路段。为此,在算法每一步的判断过程中,须排除对于(i,j)∈P的下游结点j的计算。
价格矢量与各变量之间的关系如图5所示。
综上,本发明的考虑交叉口转向的最短路径拍卖算法,包括如下步骤 对于有向网络G(V,E,A,D) (1)给定路径起点r和终点s,在价格矢量p中为路径起点r增设虚拟上游结点0; (2)初始化路径P和价格矢量p P=(r),pl,k=0,k∈Γ-1(l) pr,0=0 (3)取路径P的末结点表示为结点i,选择结点i的下游结点j,当时,如果满足条件进入步骤A,否则进入步骤B A.收缩路径令收缩路径P,转到下一个迭代过程,其中收缩路径P是指当路径P不仅包含路径起点r时,移除此时路径P中的末结点,当路径P仅包含路径起点r时,路径P保持不变; B.延伸路径通过第二结点ji来延伸路径P,如果第二结点ji是终点s,则迭代终止,P就是要求的最短路径,否则转入下一个迭代过程; 其中收缩路径和延伸路径依据以下松弛互补条件 pi,h≤aij+pj,i+dh,i,j, pi,h=aij+pj,i+dh,i,j,对于路径P上的连续结点对 (4)重复步骤(3),直到算法推出,此时,路径P即为路径起点r和终点s之间的最短路径,最短路径长度等于pi,h-pr,0; 其中V-所有结点集合;E-路段的集合;A-路段费用集合;D-交叉口转向费用集合;i-路径P的末结点,j-结点i的下游结点,k、l-网络中任意结点,h-结点i的上游结点,h∈Γ-1(i),i、j、h均为自然数;Γ-1(l)-结点l的上游结点集合;Γ-1(i)-结点i的上游结点结合;aij-路段(i,j)的行驶费用,aij∈A;(i,j)-从结点i指向其下游结点j的有向路段,(i,j)∈E;(h,i,j)-由结点i与其上游结点h和下游结点j三者唯一确定的在结点i处的转向动作;dh,i,j-转向动作(h,i,j)对应的转向费用,dh,i,j∈D;ji-{aij+pj,i+dh,i,j}中最小和值对应的下游结点j;pl,k-结点l处以k为上游结点价值量;pr,0-起点r处以0为虚拟上游结点价值量;pi,h-结点i处以h为上游结点价值量;pj,i-结点j处以i为上游结点价值量。
改进后的拍卖算法在原有算法的基础上增加了转向费用的考虑,并采用了一种能够节约存储空间且准确描述交叉口转向动作的网络表示法。改进后的算法继承了原拍卖算法的性质,同时也更加符合实际道路网络。
权利要求
1、一种考虑交叉口转向的最短路径拍卖算法,其特征在于包括如下步骤
对于有向网络G(V,E,A,D)
(1)给定路径起点r和终点s,在价格矢量p中为路径起点r增设虚拟上游结点0;
(2)初始化路径P和价格矢量p
P=(r),pl,k=0,k∈Γ-1(l)
pr,0=0
(3)取路径P的末结点表示为结点i,选择结点i的下游结点j,当时,如果满足条件进入步骤A,否则进入步骤B
A.收缩路径令收缩路径P,转到下一个迭代过程,其中收缩路径P是指当路径P不仅包含路径起点r时,移除此时路径P中的末结点,当路径P仅包含路径起点r时,路径P保持不变;
B.延伸路径通过第二结点ji来延伸路径P,如果第二结点ji是终点s,则迭代终止,P就是要求的最短路径,否则转入下一个迭代过程;
(4)重复步骤(3),直到算法推出,此时,路径P即为路径起点r和终点s之间的最短路径,最短路径长度等于pi,h-pr,0;
其中V-所有结点集合;E-路段的集合;A-路段费用集合;D-交叉口转向费用集合;i-路径P的末结点,j-结点i的下游结点,k、l-网络中任意结点,h-结点i的上游结点,h∈Γ-1(i),i、j、h均为自然数;Γ-1(l)-结点l的上游结点集合;Γ-1(i)-结点i的上游结点结合;aij-路段(i,j)的行驶费用,aij∈A;(i,j)-从结点i指向其下游结点j的有向路段,(i,j)∈E;(h,i,j)-由结点i与其上游结点h和下游结点j三者唯一确定的在结点i处的转向动作;dh,i,j-转向动作(h,i,j)对应的转向费用,dh,i,j∈D;ji-{aij+pj,i+dh,i,j}中最小和值对应的下游结点j;pl,k-结点l处以k为上游结点价值量;pr,0-起点r处以0为虚拟上游结点价值量;pi,h-结点i处以h为上游结点价值量;pj,i-结点j处以i为上游结点价值量。
2、根据权利要求1所述的考虑交叉口转向的最短路径拍卖算法,其特征在于所述步骤(3)中的收缩路径和延伸路径依据以下松弛互补条件
pi,h≤aij+pj,i+dh,i,j,
pi,h=aij+pj,i+dh,i,j,对于路径P上的连续结点对
其中h、i、j分别表示在最短路径中连续的三个结点;aij表示通过路段(i,j)的行驶费用;dh,i,j表示(h,i,j)转向动作的转向费用;pi,h-结点i处以h为上游结点价值量;pj,i-结点j处以i为上游结点价值量。
3、根据权利要求1所述的考虑交叉口转向的最短路径拍卖算法,其特征在于所述价格矢量p为二维矢量
价格矢量层次关系为结点→价值量,价值量层存储结点对应不同上游结点的价值量,其位数等于上游结点个数;
其中
-结点1处以k1(1)为上游结点价值量;k1(1),k1(2),...,k1(m)-结点1的上游结点,其上标表示上游结点序号,m等于上游结点个数,m为自然数。
全文摘要
本发明公开了一种考虑交叉口转向的最短路径拍卖算法,涉及对道路最短路径网络表示方法的改进。该方法先根据路段信息和结点信息构建星型数据结构,然后指定路径起点和终点,从起点产生初始路径,计算路径末结点对所有下游结点的估计量,并与路径末结点的价值量作比较当某一估计量与路径末结点价值量相等时,延伸路径至该估计量对应的下游结点,当估计量都大于路径末结点价值量时,取路径末结点价值量为最小的估计量,并将路径收缩一个结点。如此重复迭代过程直至路径延伸至终点,此时的路径即为起止点之间的最短路径。本方法能够准确地求解限制网络中的最短路径,具有更快的运算速度,继承了原始算法易用于并行计算的基本性质。
文档编号G08G1/00GK101571404SQ20091003309
公开日2009年11月4日 申请日期2009年6月11日 优先权日2009年6月11日
发明者琳 程, 杜牧青 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1