一种基于a星策略的最优多会合点路径搜索方法及装置的制造方法_2

文档序号:9911419阅读:来源:国知局
其中的且 X,yex;
[0030] (2)当j时,返回a XminXEU,yai(dist(s,x)+C(x,y,U)+dist(y,t));
[0031] (3)求出从s到t的最短路径P';
[0032] ⑷计算以如(尸')+ (1 -r)),并赋值给best,该best为已经计 算过的最优路径的花费;
[0033] ( 5 )初始化队列 Q 和集合 D,将初始状态 i(W0),O,lb((.v,.s',0),U/,(), 〇))和 ((认0),0,1b(认0)417,0,D))加入队列Q,其中lb〇是计算下界的操作,其结果lb是队列Q的 优先序;
[0034] (6)当队列Q不为空时重复以下步骤:
[0035] (6.1)弹出队列〇中第一个元素((1&1^1,^父),(3 〇5^,113);
[0036] (6 · 2)将label,标记为label的相反方向;
[0037] (6.3)X,SU_X;
[0038] (6.4)当v = label,且X = U的时候,返回当前的cost;
[0039] (6·5)将状态((labe 1,v,X),cost)加入集合D;
[0040] (6.6)对于集合E里的所有(V,U)边循环:
[0041 ] (6·6· 1)计算cost+α Xw(v,u)并赋值给cost' ;
[0042] (6·6· 2)更新(Q,D,best,label,,X,,(label,u,X),cost ');
[0043] (6.7)对于集合U-X里的所有x点循环:
[0044] (6·7· 1)计算cost+(l_a) Xdist(x,v)并赋值给cost' ;
[0045] (6 · 7 · 2)更新(Q,D,best,label,,X,-{x},( label,v,X U {x}),cost ');
[0046] (7)所有上述循环结束还没有找到最优解,则返回%。
[0047] 其中,所述步骤(1)中,使用全集合路径算法计算C(x,y,U)的方法为:
[0048] (A)初始化队列Q和集合D,对于所有的ueu,将初始状态((^,{"^(^加入队列 Q〇
[0049] (B)当队列Q不为空时重复以下步骤:
[0050] (8.1)弹出队列〇中第一个元素((、7,父),(3〇5^);
[00511 (B.2)将 cost 赋值给状态 C(x,y,X);
[0052] (B.3)将状态(x,y,X)加入集合D;
[0053] (B.4)对于集合U-X里的所有点v循环:
[0054] (B.4.1)将集合XU {v}赋值给临时变量集合X' ;
[0055] (B. 4.2)将cost的值加上点¥到点7的距离并赋值给临时变量cost';
[0056] (B.4.3)如果新的状态(x,y,X')存在于集合D中,则跳过本次循环继续;
[0057] (8.4.4)如果新的状态(1,7,')不属于队列〇,则将其加入队列1
[0058] (B.4.5)如果新的cost'比原来队列Q中的相应状态的cost要小,贝lj更新队列Q中该 状态的cost值。
[0059] 其中,所述步骤(5)中,计算下界(lower bound)的操作方法为:
[0060] 当(label,,v,X,)ED时,返回cost+D. cost( (label,,v,X,));
[0061] 当label = s时,即前向增长:
[0062] 若JT古0.,则计算minx〇(,,yQ(,{dist(v,x)+C(x,y,X')+dist(y,t)}赋值给变量c, 并返E
;否则直接返回cost+α Xdist(v,t);
[0063] 否则,即反向增长:
[0064] 若JTV0..,则计算minx〇(' ,y〇(' {dist(s,x)+C(x,y,X')+dist(y,v)}赋值给变量c, 并返回
;否则直接返回cost+aXdist(s,v)。
[0065] 其中,所述步骤(6.6.2)中,更新(Q,D,best,label ',X',(label,u,X),cost')的方 法为:
[0066] 当状态(label,v,X)eD时,直接返回;
[0067] 计算lb((label,v,X),label',X',cost,D)并赋值给lb;
[0068] 当lb 2 best时,直接返回;
[0069] 当状态(/"&/, v,,.ΛΧ_)时,将状态((label,v,X),cost,lb)压入队列Q;
[0070] 当lb小于队列Q中状态(label,v,X)的下界〇.让((1&1^1^,乂))时,同时更新该状 态的cost和lb,Q.update( (label,v,X),cost,lb);
[0071 ]当(1&匕〇1,,¥,父,)£0且0.(3〇81:((1&匕61,,¥,父,))+(3〇81:<^681:时,计算0.(3〇8七 ((label ',v,X'))+cost并赋值给best。
[0072] -种基于A星策略的最优多会合点路径搜索装置,适用于移动终端,包括:
[0073] 搜索信息输入单元:用于获取路径搜索预设信息,包括:图G=(V,E,W),点集U,a, 出发点s,目的点t;其中,V、Ε和W分别为点集、边集和权值的集合;?/ ?Ξ F为顶点的子集;参 数a e (〇,1 ),用于平衡路径Pst和U中的点到Pst之间的距离和的比重;
[0074]路径搜索单元:用于根据所述路径搜索预设信息,通过如上任一所述方法,搜索在 所述图G中从出发点s到目的点t的最优路径;
[0075] 搜索结果输出单元:用于输出显示所述路径搜索单元所搜索到的最优路径。
[0076] 其中,所述移动终端包括:移动电话、智能电话、笔记本电脑、个人数字助理、平板 电脑。
[0077] 本发明实施例与现有技术相比,本发明具有以下优点:
[0078] 本发明提出的基于A星策略的最优多会合点路径搜索方法相比之前的方法,能够 更加高效地解决实时合乘应用中技术难点2,即,在匹配好了驾驶者和乘客之后,如何快速 地确定最优的路径让驾驶者可以接上所有的匹配的乘客。大大提升了该算法的高效性与实 用性。
【附图说明】
[0079]图1是一个公路网络的示意图;
[0080]图2是对状态(v,X)采用边增长的扩展方式示意图;
[0081]图3是对状态(v,X)采用点增长的扩展方式示意图。
【具体实施方式】
[0082]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0083] 为了解决所述【背景技术】的缺陷,本发明采用的技术方案是使用双向搜索和A星策 略优化0MMPR算法。
[0084] 首先我们考虑双向搜索优化。在0MMPR算法中,我们从出发点s起始,向着目的点t 做增长操作。事实上我们也可以从目的点t出发,向着出发点s做增长操作。由此受到双向搜 索算法的启发,我们对0MMPR算法进行双向搜索优化。
[0085]我们将双向搜索优化过后的算法称为双向增长算法(bidirectional grow),它由 两部分组成,分别为前向增长(forward grow)和反向增长(backward grow)。在改算法中, 前向增长从s点出发,反向增长从t点出发,两者交互进行。在算法扩展状态的过程中,我们 维持一个已经计算过的最优路径的花费,记为best。算法开始,我们将best设为+~,并且将 0,0)和(?,0)压入优先队列Q。随后算法从优先队列中选取最前面的状态( V,X)作为当前状 态,并且应用0MMPR算法中的方法来扩展当前状态。假设前向增长和反向增长的当前最优花 费的状态分别为(v,X)和(u,U-X)。当前向增长扫描边(v,u)时,我们可以获得一条候选路 径,它的花费为c = f (V,X)+f (11,1]-?〇+€[\?(>,11)。当匕681:>(3的时候,表明我们得到了一条 更优的路径,此时,将best更新为c。对于反向增长,我们进行相类似的操作。双向增长算法 的终止条件是:当一个方向弹出状态(v,X)的时候,状态(v,U-X)的最优花费已经在另一个 方向被计算过了。
[0086]双向增长算法的正确性可以由双向搜索理论来证明,参阅文献[5 ] (I. Pohl,Bi-directional search.IBM TJ Watson Research Center,1970.)、文献[6](A.V.Goldberg and C.Harrelson, -Computing the shortest path:A search meets graph theory, || in Proceedings of the sixteenth annual ACM-SIAM symposium on Discret
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1