论文部分内容阅读
随着智能手机的普及和移动互联网浪潮的来临,室内定位服务因其在为用户提供便捷的定位导航的同时,也能从收集的定位数据中挖掘出有价值的商业信息,进而在智能家居、智慧商城和公共安全应急响应等领域中扮演着日益重要的角色。然而当其应用在高铁站、购物中心或会展中心等大型室内环境中时,较多的无线接入热点和移动终端用户会给定位服务带来很大的计算和存储压力,比如规模大维度高的训练样本和数据量大并发性强的数据吞吐,传统的定位算法和单机架构都难以支撑这样的业务场景。因此针对这些不足,本文分别从计算密集和10密集两个角度,对大型环境下室内定位服务的定位算法性能和数据存储模型的IO性能进行了研究和改进,具体的工作如下:1)提出了一种基于二次聚类的子空间划分算法。该算法通过将位置指纹相似度高的样本数据聚类到同一个较小规模的子空间中,降低了 kNN分类器在位置指纹最近邻发现过程中的样本搜索范围,初步提高了定位算法的性能。为了得到高质量的类簇,本文根据室内定位数据样本的特点对kmeans算法做了初始化质心的改进,实验结果表明相较于随机质心的kmeans算法,本文提出的二次聚类算法得到的类簇在总凝聚度上要高出18.7%。2)提出了一种降维改进的位置指纹定位算法。该算法首先对AP热点的扫描频数建立对数正态分布模型,通过去除RSSI特征向量中对定位结果影响较小的弱无关项实现降维,在低维向量空间上采用kNN分类器得到定位坐标,进一步提高了算法的性能。与其它定位算法的对比实验结果表明,本文的改进算法在保障定位精度的前提下,RSSI特征向量的平均维度只有原始样本的13%,具有显著的性能优势。3)提出了 Redis-MySQL混合存储模型。对于读写频繁、热点性强的实时定位数据,选用读写更快、基于内存的Redis作为存储介质,相较于传统的关系数据库能够实现更快的数据查询;同时对于非热点数据,根据生产者消费者模型,设计了基于分布式消息队列RabbitMQ的异步机制,有效地将定位数据持久化任务从定位引擎上解耦,提高后者对于大规模数据量的定位业务支撑能力。实验结果表明,本文提出的存储模型在实时位置查询的响应时间上的加速比达到1.48,而且定位引擎在异步持久化过程中的IO阻塞时间上只有同步方式的10%,在短时间内数据量爆发的情况下能够对MySQL起到一定的缓冲作用。4)设计了基于水平分片策略的Redis集群方案。该方案对Redis进行分布式扩展,通过哈希映射的方式将不同移动终端、不同地图环境的定位数据路由到不同的Redis节点上,实现并行的数据查询。实验结果表明,Redis集群方案在高并发的业务场景中对于前端请求的响应时间具有良好的加速比。