本发明属于室内定位技术,具体涉及一种基于邻域粗糙集约简的室内区域定位方法。
背景技术
由于无线网络和智能终端使用的日益普及,基于位置服务lbs(locationbasedservice)的应用也越来越广泛。而在室内定位领域,基于位置指纹的室内定位算法,作为基于rss的wlan定位经典算法,也受到了广泛的欢迎。位置指纹的室内定位算法大体上可以分为离线阶段和在线阶段。在离线阶段需要在待定位区域内标记若干参考点rp(referencepoint),在每个rp处采集来自不同接入点ap(accesspoint)的rss值,以此构建位置指纹数据库;而在线阶段,用户需要实时采集来自不同ap的rss信号,与位置指纹数据库进行匹配,以此实现对用户的定位。
然而wlan的不断发展,直接导致了室内环境中的ap会大量增加,可能有十几个增加到数以百计,如果离线阶段构建位置指纹数据库时,采用如此大量的ap,会导致存储开销大量增加,也会在线阶段的定位匹配效率降低。针对此问题,本发明提出了一种基于邻域粗糙集约简的室内区域定位方法,通过计算得到不同ap的重要度,从而对位置指纹数据库进行约简,大大降低了位置指纹数据的存储开销。
技术实现要素:
本发明的目的是提供一种基于邻域粗糙集约简的室内区域定位方法,它通过对位置指纹数据库的约简,大大减少了对位置指纹数据库的存储开销,提高了在线阶段位置指纹的匹配效率,解决了传统位置指纹定位中的数据库存储开销大以及在线匹配效率不高的问题。
本发明所述的一种基于邻域粗糙集约简的室内区域定位方法,包括以下步骤:
步骤一、在待定位区域中部署k个无线接入点api(i=1,…,k),且此k个ap位置固定。将待定位区域划分成a个子区域areaj(j=1,…,a)。
步骤二、在待定位区域均匀设置n个参考点rpr(r=1,…,n),m个测试点tpt(t=1,…,m)。
步骤三、将构建离线阶段的位置指纹数据库。首先,在参考点rpr(r=1,…,n)上采集来自api(i=1,…,k)的接收信号强度
步骤四、首先,计算全部n个参考点上来自api(i=1,…,k)接收信号强度的标准差
步骤五、计算全部条件属性相对于决策属性的正域。
步骤六、计算全体条件属性ap的依赖度θ=n/n。
步骤七、去掉条件属性api(i=1,…,k),应用步骤五的计算方法,计算除去api的剩余条件属性相对于决策属性的正域,得到正域posi,并记posi中的元素个数为ni。
步骤八、计算条件属性api的依赖度θi=ni/n。
步骤九、计算条件属性api的重要度γi=θ-θi。
步骤十、重复步骤七~步骤九,得到每个条件属性api(i=1,…,k)的依赖度θi(i=1,…,k)和重要度γi(i=1,…,k)。
步骤十一、计算每个条件属性api(i=1,…,k)的权重
步骤十二、设置条件属性重要性控制参数α,遍历每个条件属性api(i=1,…,k)的重要度γi(i=1,…,k),如果γi>α,则条件属性api被保留;如果γi≤α,则条件属性api被删除。
步骤十三、去除位置指纹数据库d中来自被删除的ap的数据,将位置指纹数据库d进行约简,得到约简后的数据库为
其中k'为剩余ap的个数。
步骤十四、应用约简后的位置指纹数据库d'进行区域定位。
所述步骤五包括以下步骤:
步骤五(一)、计算全部参考点来自api(i=1,…,k)接收信号强度与rpr(r=1,…,n)来自api接收信号强度之差,即
其中
步骤五(二)、选出参考点
步骤五(三)、重复步骤五(一)和步骤五(二),得到全部参考在全部条件属性下的邻域,即
其中
步骤五(四)、计算参考点rpv(v=1,…,n)在所有条件属性下的邻域,即
步骤五(五)、用决策属性将全部参考点划分成a个等价类
步骤五(六)、计算每个等价类
步骤五(七)、计算得到全部条件属性相对于决策属性的正域
统计pos中的元素个数为n。
所述步骤十四包括以下步骤:
步骤十四(一)、在测试点tpt(t=1,…,m)上采集来自剩余的api(i=1,…,k')的接收信号强度
步骤十四(二)、计算测试点tpt(t=1,…,m)与参考点rpr(r=1,…,n)上来自
api(i=1,…,k')接收信号强度之间的欧式距离,得到如下距离矩阵
其中
步骤十四(三)、计算测试点tpt(t=1,…,m)邻域半径δ't=σ't/λ',其中
步骤十四(四)、对于测试点tpt(t=1,…,m),寻找测试点邻域半径内的参考点,即
步骤十四(五)、在约简后的位置指纹数据库d'找到
步骤十四(六)、重复步骤十四(三)~步骤十四(五),得到每个测试点tpt(t=1,…,m)所在的子区域。
附图说明
图1为本发明流程图;
图2条件属性约简前后区域定位准确率对比图。
具体实施方式
下面结合附图对本发明作进一步说明。
本发明提供的一种基于邻域粗糙集约简的室内区域定位方法,该方法能够有效判断ap的重要度,从而剔除重要度较低的ap,减少离线阶段位置指纹数据库的数据存储开销以及在线定位阶段的计算开销。具体步骤如下:
步骤一、在待定位区域中部署k个无线接入点api(i=1,…,k),且此k个ap位置固定。将待定位区域划分成a个子区域areaj(j=1,…,a)。本专利设置k=9,a=8。
步骤二、在待定位区域均匀设置n个参考点rpr(r=1,…,n),m个测试点tpt(t=1,…,m)。本专利设置n=88,m=25。
步骤三、将构建离线阶段的位置指纹数据库。首先,在参考点rpr(r=1,…,n)上采集来自api(i=1,…,k)的接收信号强度
步骤四、首先,计算全部n个参考点上来自api(i=1,…,k)接收信号强度的标准差
步骤五、计算全部条件属性相对于决策属性的正域,具体包括以下步骤:
5a、计算全部参考点来自api(i=1,…,k)接收信号强度与rpr(r=1,…,n)来自api接收信号强度之差,即
其中
5b、选出参考点
5c、重复5a~5b,得到全部参考点在全部条件属性下的邻域,即
其中
5d、计算参考点rpv(v=1,…,n)在所有条件属性下的邻域,即
5e、用决策属性将全部参考点划分成a个等价类
5f、计算每个等价类
5g、计算得到全部条件属性相对于决策属性的正域
统计pos中的元素个数为n。
步骤六、计算全体条件属性ap的依赖度θ=n/n。
步骤七、去掉条件属性api(i=1,…,k),应用步骤五的计算方法,计算除去api的剩余条件属性相对于决策属性的正域,得到正域posi,并记posi中的元素个数为ni。
步骤八、计算条件属性api的依赖度θi=ni/n。
步骤九、计算条件属性api的重要度γi=θ-θi。
步骤十、重复步骤七~步骤九,得到每个条件属性api(i=1,…,k)的依赖度θi(i=1,…,k)和重要度γi(i=1,…,k)。
步骤十一、计算每个条件属性api(i=1,…,k)的权重
步骤十二、设置条件属性重要性控制参数α,遍历每个条件属性api(i=1,…,k)的重要度γi(i=1,…,k),如果γi>α,则条件属性api被保留;如果γi≤α,则条件属性api被删除。
步骤十三、去除位置指纹数据库d中来自被删除的ap的数据,将位置指纹数据库d进行约简,得到约简后的数据库为
其中k'为剩余ap的个数。
步骤十四、应用约简后的位置指纹数据库d'进行区域定位。具体包括以下步骤。
14a、在测试点tpt(t=1,…,m)上采集来自剩余的api(i=1,…,k')的接收信号强度
14b、计算测试点tpt(t=1,…,m)与参考点rpr(r=1,…,n)上来自api(i=1,…,k')接收信号强度之间的欧式距离,得到如下距离矩阵
其中
14c、计算测试点tpt(t=1,…,m)邻域半径δ't=σ't/λ',其中
14d、对于测试点tpt(t=1,…,m),寻找测试点邻域半径内的参考点,即
14e、在约简后的位置指纹数据库d'找到
14f、重复步骤14c~14e,得到每个测试点tpt(t=1,…,m)所在的子区域。