更全的杂志信息网

基于并行kNN的公路地理数据查询优化方法

更新时间:2016-07-05

公路作为交通管理中最重要的地物,也是交管系统数据组织的核心[1]。在勘察设计、施工设计、运营养护等各阶段公路都将产生大量信息,因此空间数据检索技术对公路建设和公路应用系统具有重要支撑作用。如何高效地从海量公路地理空间数据中查询有用信息以指导公路建设运营管理成为研究的热点[2]

在空间数据处理分析中,搜索一定空间范围内距离给定点最近的空间对象,称为空间近邻查询问题 [3]。最近邻的空间对象可以是一个或多个,即空间查询中经典的kNN问题。kNN算法是一种理论上较成熟的查询算法。近年来,学者们从提高分类速度、降低算法对样本库容量的依赖性以及k值选定对算法的影响等方面入手,提出了许多有效的改进方法。PAN J S[4]等提出了快速算法(KWENNS);Cheema M A[5]等提出了一种基于CircularTrip的kNN算法;宋晓宇[6]等提出了针对空间数据库的组反k最近邻概念,设计了基于R树的剪枝方法,通过提炼获取最终的GRkNN结果;Kim Y[7]等研究了通过MapReduce框架对top-k相似性算法进行改进的方法,实现了divide-and-conquer和 branch-and-bound算法,提出了all pair partitioning和 essential pair partitioning方法,用于最小化map和reduce函数之间的数据传送量;刘义[8]等在索引构建过程中,提出了一种采样算法,可快速确立空间划分函数,再利用R树索引进行k近邻连接查询,提高了查询效率;杜钦生[9]使用Hilbert曲线将多维空间中的点映射到一维空间,并通过块嵌套循环的方法解决了k近邻的连接;王飞[10]等提出了一种基于数据流的计算框架,利用空间填充曲线将多维数据映射为一维数据,从而将k近邻连接查询转化为一维范围查询。

1.2.5 Western blot 取100 μL外泌体裂解液加入25 μL 5×Loadingbuffer,100 ℃煮沸10 min,冷却,经8%SDSPAGE 150 V恒压电泳2 h,15 V恒压转至PVDF膜,5%脱脂牛奶室温封闭1 h后,加入CD9、CD63、Piwil2抗体(均1∶1000稀释)4℃孵育过夜。二抗(1∶5000稀释)室温孵育1 h,ECL法显色并拍照。

常规索引往往是通过记录的存储地址来确定属性值,而倒排索引[11]则是根据属性值来寻找记录位置。在MapReduce框架[12]下,有些学者提出通过可并行的倒排索引结构处理海量文本数据的方法。基于此,在海量空间数据处理的过程中,也可有效利用数据的空间特性划分空间区域网格,并通过相应的映射函数处理空间对象坐标属性值,从而得到空间对象在网格单元中的具体位置。为了进一步管理空间对象和维护其与网格单元的位置关系,本文将空间网格索引与倒排索引相结合,提出了一种新的倒排网格索引;并针对海量公路空间数据,在倒排网格索引的基础上,重点探讨了基于轮圈的kNN算法在处理大规模公路空间数据集方面的应用。

1 基于轮圈的kNN算法

基于空间k最近邻查询方法,本文通过两个步骤来实现可并行的kNN算法:①初步查找,根据给定的查询点由近及远访问空间网格;②精细查找,通过网格索引查询距离给定点最近的k个空间对象。为了方便说明,本文均针对二维空间的点状数据。空间kNN查询的形式化定义为:

实验数据集包括真实数据和模拟数据两种:真实数据为海南公路基础数据库中描述公路空间实体地理位置的公路控制点,模拟数据为通过数据生成器在横、纵坐标为0~1 000的范围内随机均匀产生的空间对象点(表2)。

1)采用倒排网格索引。网格索引的建立过程与空间kNN查询过程是相对独立的,且倒排网格索引本身具有可并行性,索引建立一次,可完成多次查询。

表1 符号定义表

符号形式 含义说明O,p 空间对象、空间点p.x,p.y 空间点横、纵坐标(二维)C,C[i,j] 网格单元、第i行第j列的网格d(p,q) p点和q点的欧氏距离q.kNN q点的k个最近邻集a空间网格的边长Cp 包含点p的网格单元q.dk q点与其第k个最近邻的欧氏距离min d(C,q) q点与网格单元C之间的最小距离max d(C,q) q点与网格单元C之间的最大距离

图1 轮圈算法解析图

2 改进的可并行kNN算法

基于轮圈的kNN算法是一种串行执行算法,执行过程中需根据每次轮圈访问的结果确定下一次轮圈的画圆半径。本文结合并行计算、分布式存储等技术,对基于轮圈的kNN算法进行了适当改进,实现了可并行化,从整体上提升了算法查询性能,使其在大规模空间数据查询中具有更强的适应性。对基于轮圈的kNN算法的改进思路为:

轮圈算法是一种非常有效的访问空间网格的算法,其返回的结果是经过一次轮圈后与圆弧相交的所有网格单元。如图1所示,执行一次轮圈算法会依次遍历图中所有阴影表示的网格,并将其加载到一个堆栈H中;再遍历堆栈中的网格单元CH,找到与查询点q最近邻的k个空间点。图1中C_start为起始网格,C为当前访问网格,C_uC_r为当前访问网格的邻居,需通过计算距离并与当前画圆半径r进行比较来确定下一个将要访问的网格,如通过计算得到min d(C_u,q) max d(C_u,q),则下一个将要访问的网格为C_u。同理,可按照圆弧的走向计算得到其他所有需要访问的网格,直到返回起始网格为止。

改进算法的具体执行过程如图2所示。假设算法可并行的最大线程数为2,则q点的两个最近邻,k=2。如图2a所示,第一次有两个轮圈并行执行,在半径为r0r0+a的轮圈访问中分别收集到p1p2,此时集合P={ p1,p2},满足|P|≥k=2,根据改进算法的终止条件,需再进行一次轮圈;如图2b所示,在半径为r0+2a的轮圈访问中又收集到p4,加入到集合P中后P={ p1,p2,p4},再通过距离计算最终确定q点的两个最近邻(2NN)为{ p1,p4},查询结束。

采用NSGA-II优化算法对混合储能设备的容量配比进行选型,首先要确定优化设备参数量。表 4和表 5分别是磷酸铁锂电池和超级电容的备选参数,遗传算法中优化变量的相关参数见表6。

图2 改进算法执行实例图

2)原有算法中轮圈半径r的初始化为r0<max d (Cq,q),以保证q点所在网格能被访问到,而下一轮圈的半径更新为r=min{ r+a,q.dk}。本文将轮圈半径更新方法修改为r=r0+i×ai从0开始取值),这样每次轮圈半径均根据网格边长a进行递增,不必依赖上一轮圈的查询结果。结合多线程机制,可实现多个轮圈并行地对网格进行遍历,达到可并行化的效果。

3 可并行kNN算法的验证与分析

3.2.2 网格边长的设置对算法的影响

当年,爸爸从老家搬过来,经过亲戚介绍,在这里找了份环卫工人的工作。我只知道他工作辛苦,碰上雨雪天气常常整夜不回家,但并不知道这份辛苦背后,还藏着这样的心酸。此时此刻,我们一家人南北相隔。我在海南飞扬裙角,他们在家里裹着棉袄;我在欣赏人间美景,他们在含辛茹苦地劳作;我在享受着高档消费,他们在一分一分地赚血汗钱;我捧着大椰子喝新鲜的椰汁,而我的爸爸,很有可能空着肚子干了大半宿,连一口热水都没喝上。

3.1 实验数据

P为二维空间的一个数据点集合,q为给定查询点,k为正整数,那么kNN查询就是在范围空间中找寻一个包含k个数据点的集合kNN,且满足任意点p'∈kNN 和任意点 pp-kNN,始终有 d(p',q)≤d(p,q)。符号表示含义如表1所示。

表2 实验空间数据集说明

实验数据集 空间对象点数据 说明真实数据集 10 000 000(500 M) 海南公路基础数据库数据模拟数据集 2 500 000(120 M) 数据生成器生成的随机数据

3.2 实验结果与分析

3.2.1 算法效率对比

案例每次讨论结束后,教师都应及时总结讨论,解析案例的思路、分析案例的重、难点并评价学生分析讨论中存在的不足和长处,对讨论中学生普遍存在的问题进行有针对性的点拨,最终使学生明了如何将理论知识与实际案例相结合。此外,更应帮助学生学会包容地寻找、接受更多不同解决问题的方法,综合评价后确定最佳解决方案,培养学生分析和解决实际问题的能力[21]。

可并行kNN算法采用网格边长逐步递增的方式选择轮圈半径,并不依赖于上次轮圈访问的结果,且结合多线程并行技术,每次可实现多个轮圈的并行访问。图3反映的是在不同数据规模下,原有算法与改进算法的空间数据查询效率对比结果。

图3 不同数据规模算法执行效率

实验中设置网格边长为1,k=4,可并行kNN算法设置的最大并行执行线程数为2。从图3中曲线的变化趋势来看,当数据集规模不断增大时,两种算法查询空间4个最近邻点的响应时间都在增加;当数据集规模相同时,改进算法的查询时间明显比原有算法短。从图3中曲线的走向来看,随着数据集规模的增大,改进算法的查询时间增长速度变慢,查询效率变得稳定,所以改进算法更能适应较大规模空间数据的查询。

不同于学习任务繁重的中学,高校不少学生骨干对大学生活充满了新鲜感。为了凸显自身能力,赢得老师同学的认同和信任,在工作上往往投入了大量精力和时间,并因时间分配欠妥和自控力不强等原因,导致专业学习投入低,出现挂科、违纪等情形。学生骨干缺乏对自己的合理定位,没有平衡好学习与工作的关系,以学生工作量过多为借口,减少乃至无视专业学习的做法有悖于大学求学的初衷。因学习成绩不好,学生骨干的先进性得不到彰显,更无法发挥引领其他学生的榜样作用。部分学生骨干疲于应付各种工作任务,较少深入思考工作开展的周延性和创新性,导致工作能力原地踏步。

在公路实际建设过程中,往往会涉及许多空间查询问题,这些问题均与空间最近邻查询相关。通过真实和模拟数据,本文从效率、网格边长、k值3个方面对可并行kNN算法进行验证。

3)原有算法终止条件为min d(c,q)≥q.dk,即要找到第k个最近邻,且q点到第k个最近邻的距离不大于q点当前要访问网格的最小距离,算法结束。本文改进算法的终止条件为并行轮圈访问网格所收集的对象点之和|P|不小于k,并再进行一次轮圈访问,收集网格内的对象点到集合P中。

由于公路地理数据的空间线性分布性,在建立倒排网格索引时,网格边长的设置将影响网格内空间对象点的密度。对于同一个空间分布,当网格边长设置为较大值时,网格内空间对象点的平均密度就较大,单个轮圈执行时间较长;当网格边长设置为较小值时,轮圈次数可能随之增加,同时创建网格索引的代价也可能相应增大。在两个数据集上的算法执行效率如图4、5所示。

图4 海南公路基础数据库数据集的算法执行效率

图5 模拟随机均匀分布数据集的算法执行效率

实验中数据集规模为100 M,当k=4时,同等情况下改进算法的效率比原有算法高。由图4可知,当网格边长为0.01时,算法的执行效率最高,这是因为该数据集具有公路空间分布特性,数据经纬度坐标分布在18~110之间,此时网格中数据点分布适中,从而算法执行效率最高;而对于模拟随机均匀分布数据集,数据点分布没有规律,只要保证网格中数据点的密度适中,算法就会有较高的执行效率。因此,网格边长的设定对算法的执行效率会产生较大影响,在实际运用中要根据空间对象的具体分布来设定网格边长,一方面有利于提高算法效率,另一方面可节约网格索引的存储空间。

3.2.3 k值设定对算法的影响

公路空间数据的查询往往涉及多个空间对象,即对于给定的q点,要找到与其最近邻的多个空间对象点,这就需要设置算法的相关参数k。图6为当k取不同值时,两种算法查询执行效率的变化情况。

图6 不同k值时两种算法的效率对比

图6中设定的网格单元边长为1,当k取不同值时,改进算法的查询效率均比原有算法高。随着k值的增大,改进算法的查询时间增长较为缓慢,查询效率相对稳定;而原有算法的查询时间增长较快,查询效率降低。当k值增大时,需要查询的最近邻点增多,轮圈访问网格的次数相应增加,由于原有算法中轮圈半径的更新需依赖于上次的访问结果,只能一圈一圈地进行遍历,效率较低;而改进算法可实现多线程并行轮圈,每次可同时进行多圈遍历,从而表现出更高的效率。由此可见,改进算法更能适应查询多个空间对象点的情况。

4 结 语

本文针对公路地理数据分布特点提出了一种倒排网格空间索引,通过空间位置坐标将空间对象映射到网格索引中,具有更好的可并行性,且结构简单,实现与维护相对比较容易。基于此,本文对串行轮圈kNN算法做了深入分析,以网格边长递增的方式对轮圈半径进行更新,打破了轮圈半径依赖上轮访问结果的局限,并结合多线程技术提出了可并行kNN算法,有效提高了算法的查询效率。本文从数据集规模、网格边长、k值选取3个方面对比分析了两种算法的效率,验证了改进算法的高效性以及在处理大规模空间数据集方面的实用性。

大概很少有人主动找老太太说话,老人家絮絮叨叨地说了良久。小熊却不再有耐心做翻译,老太太无可奈何地在小熊屁股上一拍,由他了。

参考文献

[1] 李扬,褚春超,陈建营.我国公路交通可持续发展的模式选择[J].公路交通科技,2012,29(12):144-147

[2] Lee K C K, Lee W C, ZHENG B H, et al. Road: a New Spatial Object Search Framework for Road Networks[J].IEEE Transactions on Knowledge and Data Engineering,2012,24(3):547-560

[3] 赵亮,景宁,陈荦等.面向多核多线程的移动对象连续K近邻查询[J].软件学报,2011,22(8):1 805-1 815

[4] PAN J S, QIAO Y L, SUN S H. A Fast k Nearest Neighbors Classification Algorithm[J]. Ieice Transactions on Fundamentals of Electronics Communications and Computer,2004,E87A(4):961-963[5] Cheema M A, YUAN Y D, LIN X M. Circulartrip: an Effective Algorithm for Continuous kNN Queries[M]. Advances in Databases: Concepts, Systems and Applications, Springer Berlin Heidelberg,2007:863-869

[6] 宋晓宇,于程程,孙焕良,等.GRkNN:空间数据库中组反k最近邻查询[J].计算机学报,2010,33(12):2 229-2 238

[7] Kim Y, Shim K. Parallel Top-K Similarity Join Algorithms Using MapReduce[J]. IEEE International Conference on Data Engineering,2012,41(4):510-521

[8] 刘义,景宁,陈荦,等. MapReduce框架下基于R-树的k-近邻连接算法[J].软件学报,2013,24(8):1 836-1 851

[9] 杜钦生.高维空间的k最近邻查询及连接问题研究[D].长春:吉林大学,2015

[10] 王飞,秦小麟,刘亮,等.基于数据流的k-近邻连接算法[J].计算机科学,2015,42(5):204-210

[11] Yan H, Ding S, Suel T. Inverted Index Compression and Query Processing with Optimized Document Ordering[C].Proceedings of the18th International Conference on World Wide Web,2009,4(4):401-410

[12] Cordeiro R L F, Traina A J M, Kang U, et al. Clustering Very Large Multi-dimensional Datasets with MapReduce[C]. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2011:690-698

刘俊杰,刘士宽,上官甦,刘玲
《地理空间信息》 2018年第05期
《地理空间信息》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号