【技术实现步骤摘要】
确定最短路径的方法、装置、设备和计算机可读存储介质
本公开的实施例一般涉及数据处理领域,并且更具体地,涉及用于确定最短路径的方法和装置、设备和计算机可读存储介质。
技术介绍
最短路径问题是指在源对象和目标对象已经确定的情况下,如何确定从源对象到目标对象的最小距离的问题。最短路径可以被广泛应用于各个领域,例如,在地图导航中确定起点到终点之间的最短路径、在社交领域中确定两个用户之间的社交关系、在网络通信领域中确定两个网络设备的最短路由等。随着信息时代的发展,需要处理的对象的集合越来越庞大,对象之间的关系越来越复杂。因此,确定两个对象之间最短路径也越来越耗时,如何提高确定最短路径的计算效率已经成为一个关注的热点。
技术实现思路
根据本公开的实施例,提供了一种确定层级结构中源对象到目标对象的最短路径的方案。在本公开的第一方面,提供了一种确定层级结构中源对象到目标对象的最短路径的方法。该方法包括:从该层级结构的多个对象集合中确定待处理对象集合,该多个对象集合中的每个对象集合的对象分别处于同一层级;迭代地执行以下至少一次:确定该待处理对象集合中该对象的数目是否超过预定阈值;响应于该数目超过该预定阈值,将该待处理对象集合划分成多个子集合;利用多个线程来分别处理该多个子集合,该处理至少包括:针对相应子集合中的第一对象,确定与该第一对象相关联的子对象,该子对象处于该第一对象所处层级的下一层级,以及记录从该子对象经由该第一对象到该源对象的距离;从该层级结构的该多个对象集合中确定与该子对象所处层级相对应的对象集合,以作为该待处理对象集合;以及基于所记录的距离,确定从该源对象到该目标 ...
【技术保护点】
1.一种确定层级结构中的源对象到目标对象的最短路径的方法,包括:从所述层级结构的多个对象集合中确定待处理对象集合,所述多个对象集合中的每个对象集合的对象分别处于同一层级;迭代地执行以下至少一次:确定所述待处理对象集合中所述对象的数目是否超过预定阈值;响应于所述数目超过所述预定阈值,将所述待处理对象集合划分成多个子集合;利用多个线程来分别处理所述多个子集合,所述处理至少包括:针对相应子集合中的第一对象,确定与所述第一对象相关联的子对象,所述子对象处于所述第一对象所处层级的下一层级,以及记录从所述子对象经由所述第一对象到所述源对象的距离;从所述层级结构的所述多个对象集合中确定与所述子对象所处层级相对应的对象集合,以作为所述待处理对象集合;以及基于所记录的距离,确定从所述源对象到所述目标对象的最短路径。
【技术特征摘要】
1.一种确定层级结构中的源对象到目标对象的最短路径的方法,包括:从所述层级结构的多个对象集合中确定待处理对象集合,所述多个对象集合中的每个对象集合的对象分别处于同一层级;迭代地执行以下至少一次:确定所述待处理对象集合中所述对象的数目是否超过预定阈值;响应于所述数目超过所述预定阈值,将所述待处理对象集合划分成多个子集合;利用多个线程来分别处理所述多个子集合,所述处理至少包括:针对相应子集合中的第一对象,确定与所述第一对象相关联的子对象,所述子对象处于所述第一对象所处层级的下一层级,以及记录从所述子对象经由所述第一对象到所述源对象的距离;从所述层级结构的所述多个对象集合中确定与所述子对象所处层级相对应的对象集合,以作为所述待处理对象集合;以及基于所记录的距离,确定从所述源对象到所述目标对象的最短路径。2.根据权利要求1所述的方法,其中记录从所述子对象经由所述第一对象到所述源对象的距离包括:对所述第一对象进行标记,以避免所述第一对象被重复处理。3.根据权利要求1所述的方法,其中记录从所述子对象经由所述第一对象到所述源对象的距离包括:基于在所述第一对象处所记录的距离,确定从所述第一对象到所述源对象的第一最短距离;获取所述子对象到所述第一对象的第二距离;以及记录所述第一最短距离与所述第二距离的总和。4.根据权利要求1所述的方法,其中利用多个线程来分别处理所述多个子集合包括:在与所述多个线程相关联的多个缓存区处记录所述距离;以及响应于所述多个线程执行完成,将所述多个缓存区中所记录的所述距离合并到预分配的存储区中。5.根据权利要求4所述的方法,还包括:释放与所述多个线程相关联的所述多个缓存区。6.根据权利要求1所述的方法,其中确定与所述子对象所处层级相对应的对象集合包括:获取与所述多个子集合中的对象相关联的至少一个子对象;以及对所述至少一个子对象进行合并,以作为与所述子对象所处层级相对应的对象集合。7.根据权利要求1所述的方法,其中确定从所述源对象到所述目标对象的所述最短路径包括:基于在所述目标对象处所记录的距离,从所述多个对象集合中确定与所述目标对象相关联的父对象,所述目标对象经由所述父对象具有到所述目标对象的最小距离;以及基于所述父对象,生成所述最短路径。8.一种用于确定层级结构中的源对象到目标对象的最短路径的装置,包括:待处理对象确定模块,被配置为从所述层级结构的多个对象集合中确定待处理对象集合,所述多个对象集合中的每个对象集合的对象分别处于同一层级;迭代执行模块,被配置为迭代地执行以下至少一次:确定所述待处理对象集...
【专利技术属性】
技术研发人员:汪洋,袁鹏程,陈曦,李方明,杨仁凯,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。