[发明专利]路网上的弹性聚合最近邻查询G树的优化方法在审
申请号: | 201810342316.7 | 申请日: | 2018-04-17 |
公开(公告)号: | CN108829694A | 公开(公告)日: | 2018-11-16 |
发明(设计)人: | 姚斌;过敏意;陈中普;沈耀;陈全 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海市汇业律师事务所 31325 | 代理人: | 唐嘉伟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 最近邻查询 初始化 遍历 出队 聚合 优化 孩子节点 叶子节点 最小距离 最终结果 树索引 子节点 入队 队列 查询 更新 | ||
1.一种路网上的弹性聚合最近邻查询G树的优化方法,其特征在于,包括如下步骤:
第一步,对整个路网建立G树索引;
第二步,定义和初始化:
定义路网G=(V,E,W),其中V表示顶点,E表示边,W表示边的权重,δ(vi,vj)表示vi到vj的路网距离;Q是查询集合(query objects),大小为M;FANN查询定义为:一个FANN查询是一个五元组返回一个三元组使得:
其中p*是V中使得弹性聚合距离最小的点,是Q的最优的弹性子集,r*就是此时的弹性聚合距离;
定义为弹性聚合函数,它接受一个属于V的点p,一个V的子集Q作为输入,返回一个对作为结果,满足:
其中是Q的一个子集且
初始化:将r*初始化为无穷大;构建一个优先级队列,将G树的根节点入队;
第三步,判断队列是否为空;如果队列为空,则结束;否则出队得到x;
第四步,判断x是否是叶子节点;如果x是叶子节点,对于x里面所有的v,计算如有必要更新最终结果,遍历之后回到第三步;否则,进入第五步;所述计算采用包括如下步骤的优化方法:
1)初始化变量,距离列表D为空;维护一个最小优先级队列,存储q到G树结点或者路网点的距离,按距离排序,将<0,G树的根结点>入队;计算关于Q的查询点列表;
2)如果D的大小小于且队列不为空,进入步骤3);否则计算D的最大值max或者和sum,即为r*;
3)出队得到<dis,e>,如果e是路网上的点,将dis放入D,再回到步骤2);否则,e是G树上的点,遍历e的查询点列表中的点v,计算p到v的距离,并将v入队,再回到步骤2);
第五步,遍历x的子节点c,计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max或和sum,记为τ;
第六步,判断τ是否大于或等于r*;如果τ小于r*,将c的孩子节点入队,回到第三步;如果τ大于或等于r*,则结束。
2.如权利要求1所述的方法,其特征在于,第一步中,所述对整个路网建立G树索引具体为:首先原图进行子图划分,每个子图互不相交,然后对子图进行类似的划分,通过这种递归的方式直到子图里面包含数据点的个数小于设置的阈值;计算每个G树子图的边界点的距离矩阵。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810342316.7/1.html,转载请声明来源钻瓜专利网。