一种时序图下多约束路径查询方法与流程

文档序号:16628964发布日期:2019-01-16 06:23阅读:252来源:国知局

本发明涉及图算法和数据挖掘的领域,尤其涉及一种时序图下多约束路径查询方法。



背景技术:

路径查询问题存在于现实生活中的许多应用里,比如交通网络上的路径规划,社交关系网络里的信任路径查找,这些都可以被抽象为图上的路径问题。现有的路径查询大多数是基于静态图的,但是现实生活中的很多图都是具有时序信息的。比如在电话网络中,某两个人之间的通信可能在一天当中的某些时刻发生,在公共交通网络里,车辆的出发时间是根据已有的时刻表来安排的,传统的静态图上的路径查询方法无法用于时序图,因此,一些文献已经在时序图上研究相关的路径查询问题[1][2],比较广泛研究的几种路径包括最早到达路径,最晚出发路径,最快路径和最短路径。

此外,除了时刻信息外,很多图上会具有属性信息,可以形成多属性时序图,比如在公共交通网络里,每个车辆除了具有固定的出发时刻外,从出发地到目的地之间会有运行距离,运行费用等属性,在通信网络中,两个通信者之间会有通话时长等属性。通常人们在考虑路径时也会对这些属性提出一些相应的约束来表明他们对路径的要求,如果某人想在下午5点之后出发去餐厅,那么在他愿意承受的运行时间和费用里,他最早能够几点到达?如果某人想找一条从苏州到上海的最快路径,并且希望在周六的9点之后苏州出发,最晚在12点之前到达上海,运行距离不超过120公里,费用不超过100元,那么他应该怎么选择一条既符合距离和收费的约束,又符合最快这个目标的路径呢?类似的,我们会考虑这样的四种多约束路径问题:多约束下的最早到达路径,多约束下的最晚出发路径,多约束下的最快路径,多约束下的“最短”路径。因此,我们的目的就是为了解决多属性时序图上的这样一类多约束路径问题,这对现实生活中的路径应用有着重要的意义。

目前有很多文献研究时序图上的路径问题,主要分为两类,一类是连续时间模型下的路径问题,一类是离散时刻模型下的路径问题。

在连续时间模型里,两个节点之间的边是一直存在的,并且每条边上存在着一个和时间相关的函数,该函数可能是运行时间随着时间的变化函数,可能是运行费用等属性随着时间等变化函数。ding[3]等人研究连续时间模型下的最快路径问题,即在给定时间区间里,选择一个合适的出发时间,使得从起点到终点的运行时间最短,他们的方法分为两步骤,第一步专注于时间的细化,采用基于迪杰斯特拉的算法计算出从起点到每个节点的所有可能出发时间下的最早到达时间,可以得到相应的最快运行时间,第二步则根据这些时间选择一条最快路径。kanoulas[4]等人对a*算法进行扩展然后求解时序图上的最快路径,采用一个优先队列维护当前已知的部分路径,并且对这些路径进行扩展。orda[5]等人采用了基于贝尔曼-福特的方法来计算最快路径。

在离散时间模型里,时序图里每条边的出发时间是离散的。最早xuan[6]等人提出了在离散时序图里研究最早,最快和“最短”路径问题。wu[7]等人提出了一步算法来计算最早到达,最晚出发,最快和“最短”路径,采用的一步算法基于迪杰斯特拉,并且加上一些剪枝策略。此外,为了高效快速计算这些路径,wu[8]等人提出了索引策略来加速查询,通过把时序图转化为一个包含全部有效时序信息的有向非循环图,并且在该有向非循环图上,计算出每个节点的前k个可能到达的节点,以及前k个可以到达该节点的节点,然后进行路径计算。

此外,我们还关注了静态图上可达性的一些常用的索引结构,常用的索引结构包括2hop[9][10]索引和区间标记索引[11][12]。2hop索引的主要思想是在每个节点v上存储该节点可以到达的节点集合lout(v),和可以到该节点的节点集合lin(v),那么两个节点u,v之间的可达性查询可以通过lout(u)和lin(v)之间是否有交集来判断。区间标签索引最初是被应用在树结构中,通过对树进行后序遍历,后序遍历对次序从1开始,在每个节点v上保留一个区间[a,b],其中b是节点v的后序遍历次序,a是以节点v为根节点的子树里的节点的后序次序的最小值,通过给每个节点保留这样一个区间,如果节点v的后序次序属于节点u的标签,那么就表明节点u能够到达节点v。后来,区间标签方法也被修改用于有向非循环图上,衍生出很多种变体。

[1]h.wu,j.cheng,s.huang,y.ke,y.lu,andy.xu.pathproblemsintemporalgraphs.vldb,7(9):721–732,2014.

[2]s.wang,w.lin,y.yang,x.xiao,ands.zhou.efficientrouteplanningonpublictransportationnetworks:alabellingapproach.insigmod,pages967–982,2015.

[3]b.ding,j.x.yu,andl.qin.findingtime-dependentshortestpathsoverlargegraphs.inedbt,pages205–216,2008.

[4]e.kanoulas,y.du,t.xia,andd.zhang.findingfastestpathsonaroadnetworkwithspeedpatterns.inicde,2006.

[5]a.ordaandr.rom.shortest-pathandminimum-delayalgo-rithmsinnetworkswithtime-dependentedge-length.jacm,37(3):607–625,1990.

[6]b.xuan,a.ferreira,anda.jarry.computingshortest,fastest,andforemostjourneysindynamicnetworks.internationaljournaloffoundationsofcomputerscience,14(02):267–285,2003.

[7]h.wu,j.cheng,s.huang,y.ke,y.lu,andy.xu.pathproblemsintemporalgraphs.vldb,7(9):721–732,2014.

[8]h.wu,j.cheng,y.ke,s.huang,y.huang,andh.wu.ef-ficientalgorithmsfortemporalpathcomputation.ieeetkde,28(11):2927–2942,2016.

[9]e.cohen,e.halperin,h.kaplan,andu.zwick.reachabilityanddistancequeriesvia2-hoplabels.ieeetransactionsoncommunications,27(3):542–556,2002.

[10]r.jinandg.wang.simple,fast,andscalablereachabilityoracle.vldb,6(14):1978–1989,2014.

[11]r.agrawal,a.borgida,andh.v.jagadish.efficientmanagementoftransitiverelationshipsinlargedataandknowledgebases.sigmod,18(2):253–262,1989.

[12]s.feng,x.ning,d.r.shen,n.li,k.yue,andy.ge.ailabel:afastintervallabelingapproachforreachabilityqueryonverylargegraphs.inapweb,pages560–572,2015。

现有技术中还存在以下缺陷:

(1)传统的静态图上的方法未考虑时序信息:相比于静态图来说,现实生活中的场景更趋向于时序图,包括不同时间段交通道路的拥挤程度不一样,不同时间段航班的价格不一样等等,而传统的方法只是考虑了静态图上的情况,因此不能很好地拟合真实世界的情况;

(2)只是单纯考虑路径上的一个约束:就目前的研究来看,绝大多数研究都是只考虑一个约束条件,比如经典的dijkstra算法,它只考虑了路径长度这一个约束,然而,现实生活中,人们在出行等活动中往往会考虑多个因素,比如某条路径的行驶时间,汽油燃费,行驶总距离等等,因此,仅考虑一个因素的话还远远不能解决生活中的实际问题;

(3)传统做法准确率不高,运行时间长:在就目前而言,还没有专门的研究来处理时序图上的多约束路经查询问题,如果将传统方法应用到这方面的话,则需要对每个属性算出满足该属性约束的路径集,如果有k个属性,则需算出k个路径集,再从这k个路径集中筛选出交集,由此可见,这种方法无论是效率还是准确率方面都不是很高。



技术实现要素:

本发明主要解决的技术问题是提供一种时序图下多约束路径查询方法,考虑时序图的特点,而不同于传统的静态图;提出一个目标方程,对路径上多属性进行评估,从而判断这条路径是否可行;提出正反向结合的方法来综合考虑约束值以及目标值,从而求出符合用户需求的最佳路径,能够高效且有效地查询路径。

为解决上述技术问题,本发明采用的一个技术方案是:提供了一种时序图下多约束路径查询方法,包括以下具体步骤:通过定义一个目标方程,对一条路径的多属性进行聚合,然后根据用户给定的起点和终点,约束值以及时间区间,从终点向起点进行反向搜索,计算出起点到终点的路径以及中间节点到终点的路径的最小目标方程值和最晚时刻下的目标方程值,然后从起点开始正向扩展路径,以最早、最晚、最快和最“短”分别为目标向后扩展,在扩展过程中结合反向求得的两个目标方程值进行剪枝来加快查询速度。

在本发明一个较佳实施例中,所述的路径包括最早到达路径、最晚出发路径、最快到达路径和最“短”路径。

在本发明一个较佳实施例中,所述的目标方程是由路径的多个属性值和相应的约束值组成。

本发明的有益效果是:本发明的时序图下多约束路径查询方法,考虑时序图的特点,而不同于传统的静态图;提出一个目标方程,对路径上多属性进行评估,从而判断这条路径是否可行;提出正反向结合的方法来综合考虑约束值以及目标值,从而求出符合用户需求的最佳路径,能够高效且有效地查询路径。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例包括:

一种时序图下多约束路径查询方法,包括以下具体步骤:通过定义一个目标方程,对一条路径的多属性进行聚合,然后根据用户给定的起点和终点,约束值以及时间区间,从终点向起点进行反向搜索,计算出起点到终点的路径以及中间节点到终点的路径的最小目标方程值和最晚时刻下的目标方程值,然后从起点开始正向扩展路径,以最早、最晚、最快和最“短”分别为目标向后扩展,在扩展过程中结合反向求得的两个目标方程值进行剪枝来加快查询速度。

上述中,所述的路径包括最早到达路径、最晚出发路径、最快到达路径和最“短”路径;所述的目标方程是由路径的多个属性值和相应的约束值组成。

具体实施方法:

(1)定义目标方程

首先提出了一个目标方程,这个目标方程是由路径的多个属性值以及相应的约束值组成的,该目标方程用来判断路径上的每个属性是否满足相应的约束。给定k个约束,λ1,λ2,…λk,在t时刻从起点vs到终点vt的路径的目标方程被定义为:

其中,其中1≤k≤k,f1(e(vi,vj)),…,fk(e(vi,vj))是边e(vi,vj)上的k个属性值,θ>1是一个参数,该参数用来增加找到可行路径的可能性,随着θ的增大,寻找到一条可行路径的可能性也在增加,因此我们把θ设置为正无穷。

(2)算法概述

然后,基于目标方程提出了一个两步算法,该算法对多属性时序图进行双向搜索,第一次搜索从终点vd到起点vs,第二次搜索从起点vs到终点vd。在该算法中,第一步的反向过程首先计算反向搜索路径(btp)的目标方程值,然后通过目标方程的值来判断btp是否满足相应的k个约束,在这个过程中,路径的目标方程值存储在节点vi中,可以用来加速第二次正向过程的搜索。如果表明从起点vs到终点vd有一条可行路径。然后,接下来的正向搜索过程就可以从起点vs向终点vd进行搜索,从而寻找满足约束的最早,最晚,最快和最“短”路径。

(3)反向搜索

这个过程从终点vd向起点vs进行搜索,主要计算两个值:(1)中间节点vi到vd的所有出发时刻下的路径的最小δ值,用δmin来表示,以及(2)中间节点vi到vd的具有最晚出发时刻的路径的最小δ值,用来表示。因此,在每个节点vi上,存储了以及相应的路径的出发时间tmin(vi)和在节点上存储的这些信息能够在正向搜索过程中帮助预测路径的可行性。在反向搜索过程中,如果节点vi到节点vd有两条路径p1和p2,如果p1的出发时间比p2的出发时间早,并且δ(p1)值比δ(p2)大,那么就说p2支配p1,那么就可以把路径p1移除,因为该路径出发时间越早,先前的路径就越难以和该路径连接,当前δ值越大,最终的δ值就越有可能不满足约束。

把时序图里的边按照出发时间降序排序,反向搜索的主要过程如下:(1)对排好序对边进行遍历,判断当前的边是否在用户给定的时间区间内,如果不在,则算法终止,如果在,则跳到第二步;(2)当前边为e=(vi,vi+1,ti,fk(e)),其中,vi为这条边的起点,vi+1为这条边的终点,ti为这条边的出发时间,fk(e)为这条边上的k个=属性值的集合,并且这条边的运行时间ri也包含在这个集合里。如果vi+1=vd,那么把从vd到vd的路径的目标方程值为0,则把(0,ti+ri)存在节点vd,同时,把存到节点vi上,并且每次根据当前的边,利用节点vi+1上的目标方程值来向前求取节点vi上的目标方程值,并且利用前面讲到的支配原则来移除那些被支配路径所对应的值;(3)最后,我们可以得到从终点到起点的中间节点的最小目标方程值,最晚时刻下的目标方程值,以及它们相应的时间。

(4)正向过程

正向过程首先把图中的所有时序边按照出发时间从小到大到排序,然后对这些边进行遍历来求目标路径,在求取最早到达,最晚出发,最快,最“短”路径的过程中,结合反向求得的最小目标方程值和最晚时刻的最小目标方程值来对路径对可行性进行预测。下面分别对这四种路径的求解进行详细描述:

最早到达路径:(i)首先,判定当前扫描到的边的出发时刻是否在用户给定的时间区间内,如果不在,则算法结束,如果符合时间要求,并且到达时间也在给定时间范围内,那么接下来就对当前求取的前半部分路径和反向过程求取的后半部分路径的属性值求聚合,(ii)主要过程如下:首先对前半部分路径的最小目标方程值和反向过程中求取的后半部分路径的最小目标方程值进行聚合,判定前半部分路径到达节点vi的时间能否和后半部分路径从节点vi出发时间衔接,即是否满足如果满足,则继续判定的聚合值是否满足约束,如果满足,则可以继续扩展节点vi,如果不满足,继续判定前半部分路径的最早到达时刻的目标方程值和后半部分路径的最小目标方程值的时间上是否衔接以及聚合值是否满足要求,如果不满足,则继续判定前半部分路径的最小目标方程值,最早到达时刻下的目标方程值和后半部分路径的最晚时刻下的最小目标方程值的聚合值是否满足约束,只要有一个满足约束,就可以继续扩展节点vi。(iii)接下来,对遍历到的边e=(vi,vi+1,ti,fk(e)),我们计算节点vi+1的到达时间ti+ri,如果比保存在节点vi+1上的到达时间更早,则对节点vi+1的到达时间进行更新。(iv)重复以上操作,直至算法被终止或者所有边被遍历完,返回求得的从起点到终点的最早到达路径。

最晚出发路径:最晚出发的路径的两步算法和最早到达路径的类似,区别在于最晚出发路径的第一次搜索是从vs向vd搜索,并且求取所经过节点的最小目标方程值和最早到达时刻的最小目标方程值;第二次搜索从vd向vs,首先判定两部分路径时间上是否衔接以及聚合值是否符合约束,如果满足,则对遍历到的边e=(vi,vi+1,ti,fk(e)),计算节点vi+1的到达时间ti+ri,如果比保存在节点vi+1上的最晚出发时间早,并且ti大于保存在节点vi上的最晚出发时间,则对节点vi的最晚出发时间进行更新。

最快路径:最快路径的两步算法,其中第一步和最早到达路径的反向过程一样,这里我们就不再赘述,第二步是正向搜索,过程如下:(i)(ii)和最早路径的(i),(ii)步骤相同;接下来(iii)我们在每个节点上存储从起点vs到该节点vi的路径的(出发时间,到达时间)对,表示为(si,di),并且利用如下的支配原则对路径进行剪枝:从起点vs到某节点vi有两条时序路径p1,p2,如果p1的出发时间比p2的出发时间早,且p1的到达时间比p2的晚,那么就说路径p2支配p1,那么就可以把路径p1安全剪枝掉。此外,如果接下来遍历到的边为e=(vi,vi+1,ti,fk(e)),我们选取存储在节点vi上到达时间小于ti的具有最大到达时间的(出发时间,到达时间)对,即(sj,dj),其中dj≤ti,并且dj=max{di},这么做的原因在于根据支配原则,到达时间di越大,其对应的出发时间也就越大,又因为边e=(vi,vi+1,ti,fk(e))到达节点vi+1的时间是固定的,所以出发时间越大,那么整体的运行时间就越快;(iv)对从起点vs到节点vi+1的路径的最快运行时间进行更新(v)重复以上过程直到所有边被遍历完,返回求得的从起点到终点的最快路径。

最“短”路径:此处的最“短”路径是指在路径所经过的边上的实际运行时间最短(不包括等待时间),它的两步算法和最快路径类似,主要区别在于正向过程里,在每个节点vi上存储的是从起点vs到节点vi的路径的边上的累计运行时间,以及路径的到达时间对,即(ri,di),并且利用如下的支配原则对路径进行剪枝:从起点vs到某节点vi有两条时序路径p1,p2,如果p1的与运行时间比p2的运行时间长,且p1的到达时间比p2的晚,那么就说路径p2支配p1,即p1可被移除。此外,如果接下来遍历到的边为e=(vi,vi+1,ti,fk(e)),选取存储在节点vi上到达时间小于ti的具有最大到达时间的(出发时间,到达时间)对,即(sj,dj),其中dj≤ti,并且dj=max{di},这么做的原因在于根据支配原则,到达时间di越大,其对应的累计运行时间也就越小,也就满足最终目标路径,其余步骤同最快路径算法。

综上所述,本发明的时序图下多约束路径查询方法,考虑时序图的特点,而不同于传统的静态图;提出一个目标方程,对路径上多属性进行评估,从而判断这条路径是否可行;提出正反向结合的方法来综合考虑约束值以及目标值,从而求出符合用户需求的最佳路径,能够高效且有效地查询路径。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1