CN113361788B - 一种城市环境下面向多类型服务需求的路径规划方法 - Google Patents

一种城市环境下面向多类型服务需求的路径规划方法 Download PDF

Info

Publication number
CN113361788B
CN113361788B CN202110668528.6A CN202110668528A CN113361788B CN 113361788 B CN113361788 B CN 113361788B CN 202110668528 A CN202110668528 A CN 202110668528A CN 113361788 B CN113361788 B CN 113361788B
Authority
CN
China
Prior art keywords
path
cur
node
mark
poi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110668528.6A
Other languages
English (en)
Other versions
CN113361788A (zh
Inventor
金嘉晖
张斌杰
安祺
罗军舟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN202110668528.6A priority Critical patent/CN113361788B/zh
Publication of CN113361788A publication Critical patent/CN113361788A/zh
Application granted granted Critical
Publication of CN113361788B publication Critical patent/CN113361788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Navigation (AREA)

Abstract

本发明公开了一种城市环境下面向多类型服务需求的路径规划方法。本发明预先按照网格划分城市区域,按照路径相通关系,将各个区域连接,建模成一张图。将路径规划问题建模成:在用户指定起点终点与所需的多种服务类型之后,在多类型节点图上的路径查找问题。路径规划求解分为两阶段:一是POI需求优先的反向标记,二是基于动态边界的正向搜索。通过正反两次搜索,快速找到一条能够满足用户按序访问指定类型地点的需求的路径。

Description

一种城市环境下面向多类型服务需求的路径规划方法
技术领域
本发明涉及城市计算及其应用领域,尤其涉及一种城市环境下面向多类型服务需求的路径规划方法。
背景技术
随着城市化进程快速推进,城市环境愈发复杂,基于位置的服务需求激增。人们出行时,通常需要按顺序享受多种类型的服务。例如,用户从起点出发,想要先去便利店,再去午餐店吃午饭,最后到达目的地。而在满足上述需求的条件下,用户往往还希望能够走一条最短的路径。
为了解决路径规划问题,许多服务商都提供了自己的寻路算法,用于解决途径多个指定地点的最短路寻路问题。然而,在城市环境中能够提供某种类型服务的地点有很多,而非只有一个具体的地点,因此现有的路径规划方法不能泛化为在起点终点间找到一条满足多类型服务需求的寻路算法。具体而言:以兴趣点(Point-Of-Interest,POI)表示用户对“多类型服务”的需求,在当前城市环境下,用户的出行需求是复杂的:用户需要按次序经过多种类型的POI,而并不关注具体是哪个POI。
面向多类型服务需求的路径规划问题具有搜索空间大,时间复杂度高的特征:在城市环境中,某一类型的POI或能够提供某种服务的POI通常不唯一(如:便利店有多家,午餐店也有很多选择),因此需要在同类型的多个POI中做出选择,这是一个多类型POI的组合问题。而在满足用户对其途径POI类型需求的前提下,找到一条较短的路径,对路径规划算法提出了更高要求。现有的各类路径规划算法不能解决按次序经过多种类型的POI的需求。因此,针对本路径规划问题的特征,如何实现高效地城市环境下面向多类型服务需求的路径规划方法,是当前学术界和工业界亟需解决的核心问题。
发明内容
发明目的:针对以上现有技术存在的问题,本发明提出了城市环境下面向多类型服务需求的路径规划方法,着重解决城市环境下路径规划功能单一、不能按类别选择途径点的问题。预先按照网格划分城市区域,按照路径相通关系,将各个区域连接,建模成一张图。这样,路径规划问题就可以看成是:给定起点、终点、必经提供某些服务类型的地点的图上路径查找问题。路径规划求解分为两阶段:一是POI需求优先的反向标记,二是基于动态边界的正向搜索。通过正反两次搜索,快速找到一条能够满足用户需求的路径。
技术方案:为实现本发明的目的,本发明所采用的技术方案是:一种城市环境下面向多类型服务需求的路径规划方法,该方法包括以下步骤:
步骤1.将城市建模成网格图Gg(V,E)。其中V代表将城市区域按同一大小划分成的网格集合,也就是Gg中的节点,
Figure BDA0003117897090000021
1≤i≤n,n=|V|;而
Figure BDA0003117897090000022
表示网格图中的边:节点vi和vj在空间中东西相邻或南北相邻,若M中存在同时穿过vi和vj路段,就在Gg中为vi和vj构建一条连接vi和vj的边,表示为(i,j)或eij,其中每个路段(i,j)上都设置一个权重w∈R+,用于表示从vi到vj的出行成本(可视为路径长度)。
步骤2.输入用户的查询,即用户的查询中包含起点、终点和用户需要按顺序途径的POI类型列表R={p1,p2,...,p|R|},
Figure BDA0003117897090000023
表示用户出行过程中需要经过的POI类型。
步骤3.执行POI需求优先的反向标记搜索。反向标记搜索时,优先考虑当前路径能否按序满足用户的POI需求。
步骤4.执行基于动态边界的正向搜索。正向搜索过程中复用反向搜索过程中标记的节点信息,获得更精确的启发式成本函数,综合考虑当前正向搜索的子路径信息和反向标记的信息,优化路径距离,不断更新动态边界,提高搜索效率。
步骤5.根据反向搜索、正向搜索的结果,将最优的结果返回给用户。
进一步的,步骤(3)中,执行POI需求优先的反向标记搜索。反向标记搜索时,优先考虑当前路径能否按序满足用户的POI需求。具体步骤为:
步骤301.初始化需要用到的变量。用到的数据结构有:记录从节点v到终点t的潜在最优子路径属性的markv(Idxv-sofar,distt→v),其中,Idxv-sofar表示从t到v的路径中能够满足用户连续POI需求的最小下标,
Figure BDA0003117897090000024
w表示路径
Figure BDA0003117897090000025
的总长度,
Figure BDA0003117897090000026
表示Gg上一条从节点v到终点t的路径,ei.w表示路径ei的路径长度;frontier是一个以Idxv-sofar为优先级的优先级队列;reverseMark是一个字典,保存v→markv的映射关系;candidateList用于保存反向搜索过程中可能搜索到的潜在路径;路径后继信息goTo,保存在反向标记搜索过程找到的路径中,当前节点的后继节点。初始化中将上述变量全部置空,然后在frontier中放入终点t。
步骤302.从frontier取出优先级最高的节点pre。若搜索到了起点s,那么将当前路径加入candidateList作为潜在路径。
步骤303.针对当前节点pre的每个邻接点cur。根据markpre计算cur可能变更的mark值,记为temp_markcur
Figure BDA0003117897090000035
根据Idxpre-sofar和cur上含有的POI类别来计算,值为路径
Figure BDA0003117897090000031
能够满足用户连续POI需求的最小下标。
Figure BDA0003117897090000036
步骤304.若cur从未被访问过,就在reverseMark中将markcur更新为temp_markcur,更新cur的后继节点goTo(cur)为pre,并将节点cur加入frontier中。否则回到步骤302.
步骤305.重复步骤302~步骤304,直到frontier为空。反向标记过程结束后,reverseMark存储了每个节点到达t的子路径满足用户POI需求序列的最小下标与距离,而goTo则用于记录子路径序列。
步骤(4)中,执行基于动态边界的正向搜索。正向搜索过程中复用反向搜索过程中标记的节点信息,获得更精确的启发式成本函数,综合考虑当前正向搜索的子路径信息和反向标记的信息,优化路径距离,不断更新动态边界,提高搜索效率。具体步骤为:
步骤401.与反向搜索过程类似,用到的数据结构有:记录从节点v到起点s的潜在最优子路径属性的markv(Idxv-satis,dists→v),其中,Idxv-satis表示当前从s到v的路径中能够满足用户连续POI需求的最大下标,
Figure BDA0003117897090000032
表示路径
Figure BDA0003117897090000033
的总长度。
Figure BDA0003117897090000034
表示Gg上一条从源点s到节点v的路径,ei.w表示路径ei的路径长度;frontier是一个以Idxv-satis为优先级的优先队列;forwardMark是一个字典,保存v→markv的映射关系;candidateList用于保存正向搜索过程中可能搜索到的潜在路径;路径前驱信息cameFrom,保存在正向搜索过程找到的路径中,当前节点的前驱节点。初始化中先将上述变量全部置空,然后在frontier中放入终点t。
步骤402.取反向搜索过程中最优的路径为curPath,若反向搜索没有得到合法的路径,则curPath置为空。
步骤403.从frontier取出优先级最高的节点pre。若搜索到了终点t,那么将当前路径加入candidateList作为潜在路径。
步骤404.针对当前节点pre的每个邻接点cur。根据markpre计算cur可能变更的mark值,记为temp_markcur。更新方式与步骤303中相同。若是Idxcur-satis不大于Idxpre-satis,则需要进行旁路搜索来满足按序访问的要求,进入步骤405。若不需要旁路搜索,则进入步骤406。
步骤405.旁路搜索的方法为:枚举包含类型编号为Idxpre-satis+1的POI的节点node,计算节点pre到其的最短路
Figure BDA0003117897090000041
和节点cur到其的最短路
Figure BDA0003117897090000042
则这条旁路路径
Figure BDA0003117897090000043
Figure BDA0003117897090000044
若不存在node联通两个节点,则当前路径不合法,剪枝。若存在,则找到旁路最短的路径,按照步骤303中的方式,据此递归更新temp-markcur,forwardMark,cameFrom,frontier。
步骤406.若cur从未被访问过或经pre更新的temp_markcur所代表的子路径属性优于已有的markcur,就在forwardMark中更新markcur为temp_markcur,更新cur的前驱节点cameFrom(cur)为pre,并将节点cur加入frontier中。
步骤407.计算当前节点cur与终点t的曼哈顿距离Manhattan。若该曼哈顿距离Manhattan加上
Figure BDA0003117897090000045
的长度大于当前最优路径curPath的长度,则当前路径无论如何也不可能更优,则剪枝。
步骤408.若是Idxcur-satis≥Idxcur-sofar-1,则表明找到一条满足用户需求的路径,即
Figure BDA0003117897090000046
Figure BDA0003117897090000047
组成的路径为一条合法路径。若该路径比当前最优路径curPath更短,则将curPath及其相关信息更新为这条新路径。
步骤409.重复步骤403~步骤408,直到frontier为空。此时,最优路径curPath即为满足用户需求的最短路径。
有益效果:与现有技术相比,本发明的技术方案具有以下有益技术效果:
(1)能够满足用户需要按序访问多种类型的服务的需求。相对于现有方法仅能进行点到点或途径指定点的路径规划,本方法能够解决“按序访问指定类别服务”的路径规划需求,弥补了该研究领域的空白。
(2)查询快速高效。本方法在时间开销方面拥有非常大的优势,这主要因为基于贪心思想的反向标记过程中快速地标记了用于满足用户需求的信息,这些信息能够有效帮助正向搜索过程的剪枝。此外,在用户需要访问的类型大量增加的情况下,本方法的时间开销仅会缓慢增加。这是因为用户POI需求数量的增加仅对节点上标记的信息产生影响,反向搜索过程的并不会因此增加遍历的节点数量。
附图说明
图1 POI需求优先的反向标记方法流程图;
图2 POI需求优先的反向标记方法实例图;
图3 基于动态边界的正向搜索方法流程图;
图4 基于动态边界的正向搜索方法实例图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明。
本发明的目标是解决城市环境下面向多类型服务需求的路径规划问题。本方法预先按照网格划分城市区域,按照路径相通关系,将各个区域连接,建模成一张图。这样,路径规划问题就可以看成是:给定起点、终点、必经某些类型点的图上路径查找问题。路径规划求解分为两阶段:一是POI需求优先的反向标记,二是基于动态边界的正向搜索。通过正反两次搜索,快速找到一条能够满足用户需求的路径。具体执行步骤如下:
步骤1.将城市建模成网格图Gg(V,E)。其中V代表将城市区域按同一大小划分成的网格集合,也就是Gg中的节点,
Figure BDA0003117897090000051
1≤i≤n,n=|V|;而
Figure BDA0003117897090000052
表示网格图中的边:节点vi和vj在空间中东西相邻或南北相邻,若M中存在同时穿过vi和vj路段,就在Gg中为vi和vj构建一条连接vi和vj的边,表示为(i,j)或eij,其中每个路段(i,j)上都设置一个权重w∈R+,用于表示从vi到vj的出行成本(可视为路径长度)。例:如图2所示,该城区被划分为15个小区域,对应15个顶点,每个顶点的属性就是该区域所包含的POI类型集合。则区域v1就包含了p3和p6两种类型(如景点类型和美食类型)的POI。
步骤2.输入用户的查询,即用户的查询中包含起点、终点和用户需要按顺序途径的POI类型列表R={p1,p2,...,p|R|},
Figure BDA0003117897090000053
表示用户出行过程中需要经过的POI类型。例如,用户当前在区域s,最终要前往的地点为t,路途中需要按次序经过的类型为R={p1,p6,p4,p3,p2},对应的下标为0、1、2、3、4,表明他要依次访问:医疗、美食、超市、景点、图书馆这五个类型。
步骤3.执行POI需求优先的反向标记搜索。反向标记搜索时,优先考虑当前路径能否按序满足用户的POI需求。具体步骤为:
步骤301.初始化需要用到的变量。用到的数据结构有:记录从节点v到终点t的潜在最优子路径属性的markv(Idxv-sofar,distt→v),其中,Idxv-sofar表示从t到v的路径中能够满足用户连续POI需求的最小下标,
Figure BDA0003117897090000061
w表示路径
Figure BDA0003117897090000062
的总长度,
Figure BDA0003117897090000063
表示Gg上一条从节点v到终点t的路径,ei.w表示路径ei的路径长度;frontier是一个以路径
Figure BDA0003117897090000064
长度
Figure BDA0003117897090000065
为优先级的优先级队列;reverseMark是一个字典,保存v→markv的映射关系;candidateList用于保存反向搜索过程中可能搜索到的潜在路径;路径后继信息goTo,保存在反向标记搜索过程找到的路径中,当前节点的后继节点。初始化中将上述变量全部置空,然后在frontier中放入终点t。
步骤302.从frontier取出优先级最高的节点pre。若搜索到了起点s,那么将当前路径加入candidateList作为潜在路径。例如,如图2,搜索开始时,取出的当前节点pre为t。
步骤303.针对当前节点pre的每个邻接点cur。根据markpre计算cur可能变更的mark值,记为temp_markcur
Figure BDA00031178970900000614
根据Idxpre-sofar和cur上含有的POI类别来计算,值为路径
Figure BDA0003117897090000066
能够满足用户连续POI需求的最小下标。
Figure BDA00031178970900000615
例:如图2所示,终点的Idxt-sofar=5。从t出发到达v10时,v10上的POI类型为{p2,p5,p7},由于R以p3、p2结尾,即包含R中的倒数后两项,且v10中不能找到R中的倒数第三项,因此
Figure BDA0003117897090000067
Figure BDA0003117897090000068
又例如:从v10搜索到达v9时,v9上的POI为{p1,p4},由于v9提供了p4,能满足用户访问POI的连续性需求,则
Figure BDA0003117897090000069
Figure BDA00031178970900000610
又例如:从v9搜索到达v5时,v5上的POI为{p3,p4},由于v5不能满足用户访问POI的连续性需求,则
Figure BDA00031178970900000611
Figure BDA00031178970900000612
步骤304.若cur从未被访问,就在reverseMark中更新markcur为temp-markcur,更新cur的后继节点goTo(cur)为pre,并将节点cur加入frontier中。否则回到步骤302。步骤303的例子中,这三个节点都没有被访问过,所以分别更新
Figure BDA00031178970900000613
及相关的goTo、frontier。
步骤305.重复步骤302~步骤304,直到frontier为空。反向标记过程结束后,reverseMark存储了每个节点到达t的子路径满足用户POI需求序列的最小下标与距离,而goTo则用于记录子路径序列。示例结果如图2所示。
步骤4.执行基于动态边界的正向搜索。正向搜索过程中复用反向搜索过程中标记的节点信息,获得更精确的启发式成本函数,综合考虑当前正向搜索的子路径信息和反向标记的信息,优化路径距离,不断更新动态边界,提高搜索效率。具体步骤为:
步骤401.与反向搜索过程类似,用到的数据结构有:记录从节点v到起点s的潜在最优子路径属性的markv(Idxv-satis,dists→v),其中,Idxv-satis表示当前从s到v的路径中能够满足用户连续POI需求的最大下标,
Figure BDA0003117897090000071
表示路径
Figure BDA0003117897090000072
的总长度。
Figure BDA0003117897090000073
表示Gg上一条从源点s到节点v的路径,ei.w表示路径ei的路径长度;frontier是一个以Idxv-satis为优先级的优先队列;forwardMark是一个字典,保存v→markv的映射关系;candidateList用于保存正向搜索过程中可能搜索到的潜在路径;路径前驱信息cameFrom,保存在正向搜索过程找到的路径中,当前节点的前驱节点。初始化中先将上述变量全部置空,然后在frontier中放入终点t。
步骤402.取反向搜索过程中最优的路径为curPath,若反向搜索没有得到合法的路径,则curPath置为空。
步骤403.从frontier取出优先级最高的节点pre。若搜索到了终点t,那么将当前路径加入candidateList作为潜在路径。例:如图4,搜索开始时,取出的当前节点pre为s。
步骤404.针对当前节点pre的每个邻接点cur。根据markpre计算cur可能变更的mark值,记为temp_markcur。更新方式与步骤303中相同。若是Idxcur-satis不大于Idxpre-satis,则需要进行旁路搜索来满足按序访问的要求,进入步骤405。若不需要旁路搜索,则进入步骤406。例:如图4所示,Idxv6-satis=0,由于v7上有满足用户访问需求的下一个属性,Idxv7-satis=1,因此不需要进行旁路搜索。再例如,Idxv4-satis=0,v5上没有满足要求的下一个属性p6,因此需要进行旁路搜索,先找到包含p6的节点,再回到v5
步骤405.旁路搜索的方法为:枚举包含类型编号为Idxpre-satis+1的POI的节点node,计算节点pre到其的最短路
Figure BDA0003117897090000074
和节点cur到其的最短路
Figure BDA0003117897090000081
则这条旁路路径
Figure BDA0003117897090000082
Figure BDA0003117897090000083
若不存在node联通两个节点,则当前路径不合法,剪枝。若存在,则找到旁路最短的路径,按照步骤303中的方式,据此递归更新temp_markcur,forwardMark,cameFrom,frontier。例:如图4,从v4到v5的过程需要进行旁路搜索。由于最小的绕路方案是v4→v1→v4→v5,因此按此方案绕路。绕路完成后,mark5=(2,5),cameFrom(5)=4。
步骤406.若cur从未被访问过或经pre更新的temp-markcur所代表的子路径属性优于已有的markcur,就在forwardMark中更新markcur为temp_markcur,更新cur的前驱节点cameFrom(cur)为pre,并将节点cur加入frontier中。
步骤407.计算当前节点cur与终点t的曼哈顿距离Manhattan。若该曼哈顿距离Manhattan加上
Figure BDA0003117897090000084
的长度大于当前最优路径curPath的长度,则当前路径无论如何也不可能更优,则剪枝。
步骤408.若是Idxcur-satis≥Idxcur-sofar-1,则表明找到一条满足用户需求的路径,即
Figure BDA0003117897090000085
Figure BDA0003117897090000086
组成的路径为一条合法路径。若该路径比当前最优路径curPath更短,则将curPath及其相关信息更新为这条新路径。例:如图4所示,可以看到v3和v7都满足reverseMark=forwardMark,因此可直接获得两条能够满足用户POI需求的路径。即
Figure BDA0003117897090000087
Figure BDA0003117897090000088
由此可得到
Figure BDA0003117897090000089
Figure BDA00031178970900000810
由于
Figure BDA00031178970900000811
最短,所以最后
Figure BDA00031178970900000812
会成为curPath。
步骤409.重复步骤403~步骤408,直到frontier为空。此时,最优路径curPath即为满足用户需求的最短路径。
步骤5.根据反向搜索、正向搜索的结果,将最优的结果返回给用户。根据上述过程,
Figure BDA00031178970900000813
即为最优路径。

Claims (3)

1.一种城市环境下面向多类型服务需求的路径规划方法,其特征在于,该方法包括以下步骤:
步骤1.将城市建模成网格图Gg(V,E),其中V代表将城市区域按同一大小划分成的网格集合,也就是Gg中的节点,
Figure FDA0003117897080000011
1≤i≤n,n=|V|;而
Figure FDA0003117897080000016
表示网格图中的边:节点vi和vj在空间中东西相邻或南北相邻,若M中存在同时穿过vi和vj路段,就在Gg中为vi和vj构建一条连接vi和vj的边,表示为(i,j)或eij,其中每个路段(i,j)上都设置一个权重w∈R+,用于表示从vi到vj的出行成本,可视为路径长度;
步骤2.输入用户的查询,即用户的查询中包含起点、终点和用户需要按顺序途径的POI类型列表R={p1,p2,...,p|R|},
Figure FDA0003117897080000012
表示用户出行过程中需要经过的POI类型;
步骤3.执行POI需求优先的反向标记搜索,反向标记搜索时,优先考虑当前路径能否按序满足用户的POI需求;
步骤4.执行基于动态边界的正向搜索,正向搜索过程中复用反向搜索过程中标记的节点信息,获得更精确的启发式成本函数,综合考虑当前正向搜索的子路径信息和反向标记的信息,优化路径距离,不断更新动态边界,提高搜索效率;
步骤5.根据反向搜索、正向搜索的结果,将最优的结果返回给用户。
2.根据权利要求1所述的一种城市环境下面向多类型服务需求的路径规划方法,其特征在于,步骤(3)中,执行POI需求优先的反向标记搜索,反向标记搜索时,优先考虑当前路径能否按序满足用户的POI需求,具体步骤为:
步骤301.初始化需要用到的变量,用到的数据结构有:记录从节点v到终点t的潜在最优子路径属性的markv(Idxv-sofar,distt→v),其中,Idxv-sofar表示从t到v的路径中能够满足用户连续POI需求的最小下标,
Figure FDA0003117897080000013
w表示路径
Figure FDA0003117897080000014
的总长度,
Figure FDA0003117897080000015
表示Gg上一条从节点v到终点t的路径,ei.w表示路径ei的路径长度;
frontier是一个以Idxv-sofar为优先级的优先级队列;reverseMark是一个字典,保存v→markv的映射关系;candidateList用于保存反向搜索过程中可能搜索到的潜在路径;路径后继信息goTo,保存在反向标记搜索过程找到的路径中,当前节点的后继节点,初始化中将上述变量全部置空,然后在frontier中放入终点t;
步骤302.从frontier取出优先级最高的节点pre,若搜索到了起点s,那么将当前路径加入candidateList作为潜在路径;
步骤303.针对当前节点pre的每个邻接点cur,根据markpre计算cur可能变更的mark值,记为temp_markcur
Figure FDA0003117897080000025
Idxcur-sofar根据Idxpre-sofar和cur上含有的POI类别来计算,值为路径
Figure FDA0003117897080000024
能够满足用户连续POI需求的最小下标,
Figure FDA0003117897080000026
步骤304.若cur从未被访问过,就在reverseMark中将markcur更新为temp_markcur,更新cur的后继节点goTo(cur)为pre,并将节点cur加入frontier中,否则回到步骤302;
步骤305.重复步骤302~步骤304,直到frontier为空,反向标记过程结束后,reverseMark存储了每个节点到达t的子路径满足用户POI需求序列的最小下标与距离,而goTo则用于记录子路径序列。
3.根据权利要求2所述的一种城市环境下面向多类型服务需求的路径规划方法,其特征在于,步骤(4)中,执行基于动态边界的正向搜索,正向搜索过程中复用反向搜索过程中标记的节点信息,获得更精确的启发式成本函数,综合考虑当前正向搜索的子路径信息和反向标记的信息,优化路径距离,不断更新动态边界,提高搜索效率,具体方法如下:
步骤401.与反向搜索过程类似,用到的数据结构有:记录从节点v到起点s的潜在最优子路径属性的markv(Idxv-satis,dists→v),其中,Idxv-satis表示当前从s到v的路径中能够满足用户连续POI需求的最大下标,
Figure FDA0003117897080000021
w表示路径
Figure FDA0003117897080000022
的总长度,
Figure FDA0003117897080000023
表示Gg上一条从源点s到节点v的路径,ei.w表示路径ei的路径长度;frontier是一个以Idxv-satis为优先级的优先队列;forwardMark是一个字典,保存v→markv的映射关系;candidateList用于保存正向搜索过程中可能搜索到的潜在路径;路径前驱信息cameFrom,保存在正向搜索过程找到的路径中,当前节点的前驱节点,初始化中先将上述变量全部置空,然后在frontier中放入终点t;
步骤402.取反向搜索过程中最优的路径为curPath,若反向搜索没有得到合法的路径,则curPath置为空;
步骤403.从frontier取出优先级最高的节点pre,若搜索到了终点t,那么将当前路径加入candidateList作为潜在路径;
步骤404.针对当前节点pre的每个邻接点cur,根据markpre计算cur可能变更的mark值,记为temp_markcur,更新方式与步骤303中相同,若是Idxcur-satis不大于Idxpre-satis,则需要进行旁路搜索来满足按序访问的要求,进入步骤405,若不需要旁路搜索,则进入步骤406;
步骤405.旁路搜索的方法为:枚举包含类型编号为Idxpre-satis+1的POI的节点node,计算节点pre到其的最短路
Figure FDA0003117897080000031
和节点cur到其的最短路
Figure FDA0003117897080000032
则这条旁路路径
Figure FDA0003117897080000033
Figure FDA0003117897080000034
若不存在node联通两个节点,则当前路径不合法,剪枝,若存在,则找到旁路最短的路径,按照步骤303中的方式,据此递归更新temp_markcur,forwardMark,cameFrom,frontier;
步骤406.若cur从未被访问过或经pre更新的temp-markcur所代表的子路径属性优于已有的markcur,就在forwardMark中更新markcur为temp_markcur,更新cur的前驱节点cameFrom(cur)为pre,并将节点cur加入frontier中;
步骤407.计算当前节点cur与终点t的曼哈顿距离Manhattan,若该曼哈顿距离Manhattan加上
Figure FDA0003117897080000037
的长度大于当前最优路径curPath的长度,则当前路径无论如何也不可能更优,则剪枝;
步骤408.若是Idxcur-satis≥Idxcur-sofar-1,则表明找到一条满足用户需求的路径,即
Figure FDA0003117897080000035
Figure FDA0003117897080000036
组成的路径为一条合法路径,若该路径比当前最优路径curPath更短,则将curPath及其相关信息更新为这条新路径;
步骤409.重复步骤403~步骤408,直到frontier为空,此时,最优路径curPath即为满足用户需求的最短路径。
CN202110668528.6A 2021-06-16 2021-06-16 一种城市环境下面向多类型服务需求的路径规划方法 Active CN113361788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110668528.6A CN113361788B (zh) 2021-06-16 2021-06-16 一种城市环境下面向多类型服务需求的路径规划方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110668528.6A CN113361788B (zh) 2021-06-16 2021-06-16 一种城市环境下面向多类型服务需求的路径规划方法

Publications (2)

Publication Number Publication Date
CN113361788A CN113361788A (zh) 2021-09-07
CN113361788B true CN113361788B (zh) 2022-11-01

Family

ID=77534470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110668528.6A Active CN113361788B (zh) 2021-06-16 2021-06-16 一种城市环境下面向多类型服务需求的路径规划方法

Country Status (1)

Country Link
CN (1) CN113361788B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109974732A (zh) * 2019-03-28 2019-07-05 东北大学 一种基于语义感知的Top-k多请求路径规划方法
CN110487293A (zh) * 2019-08-29 2019-11-22 湖南大学 一种基于大规模道路网络的高效且隐私的路径规划方法
CN112507047A (zh) * 2020-06-16 2021-03-16 中山大学 一种基于兴趣点偏好的最优有序路径查询方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109974732A (zh) * 2019-03-28 2019-07-05 东北大学 一种基于语义感知的Top-k多请求路径规划方法
CN110487293A (zh) * 2019-08-29 2019-11-22 湖南大学 一种基于大规模道路网络的高效且隐私的路径规划方法
CN112507047A (zh) * 2020-06-16 2021-03-16 中山大学 一种基于兴趣点偏好的最优有序路径查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种支持约束关系的高效的行程规划算法;鲍金玲等;《小型微型计算机系统》;20131215(第12期);全文 *
路网中基于地理位置和区域封闭性的最短路径的查询算法;顾明皓等;《计算机科学》;20160615(第06期);全文 *

Also Published As

Publication number Publication date
CN113361788A (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
US8566030B1 (en) Efficient K-nearest neighbor search in time-dependent spatial networks
US8681635B2 (en) Computer-implemented systems and methods for planning a route
US7054742B2 (en) Method and system for route calculation in a navigation application
CN108827335B (zh) 一种基于单向搜索模型的最短路径规划方法
JP2000258184A (ja) 交通ネットワーク経路探索方法および装置
JP7186092B2 (ja) ジョブ位置間の走行コストを用いたジョブスケジューリングのための方法、システム、およびコンピュータ可読媒体
CN114510056A (zh) 室内移动机器人的平稳移动全局路径规划方法
CN108362298A (zh) 区域地图中导航方法及装置
Bucher et al. A heuristic for multi-modal route planning
JP2002532693A (ja) 近道発生装置
JP2001165681A (ja) 交通ネットワーク経路探索方法
CN107659596B (zh) 一种动态导航的方法及装置、终端
CN105869512A (zh) 多信息的混杂度量地图建图方法和装置
CN113449910A (zh) 一种基于顺序存储二叉树的航线自动生成方法
CN113361788B (zh) 一种城市环境下面向多类型服务需求的路径规划方法
He et al. Exploring public transport transfer opportunities for pareto search of multicriteria journeys
CN114580796B (zh) 一种旅游属性路径规划方法及系统
JP5132694B2 (ja) データ生成装置、データ生成方法及び経路探索装置
JP2000046576A (ja) 移動体誘導装置及びその方法並びにプログラムを記録した機械読み取り可能な記録媒体
Jia et al. An improved JPS algorithm in symmetric graph
CN108731688A (zh) 导航方法和装置
US20230211692A1 (en) Automatic Routing Through Electric Vehicle Charging Stations
JP2005024374A (ja) ナビゲーション装置
JP2010217459A (ja) 路網図管理装置、路網図管理システム、路網図管理プログラムおよび路網図管理方法
JP4879803B2 (ja) 地図情報更新装置および地図情報更新方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant