CN103324748A - 查询最大竞争力位置的动态监控方法及系统 - Google Patents

查询最大竞争力位置的动态监控方法及系统 Download PDF

Info

Publication number
CN103324748A
CN103324748A CN201310280206XA CN201310280206A CN103324748A CN 103324748 A CN103324748 A CN 103324748A CN 201310280206X A CN201310280206X A CN 201310280206XA CN 201310280206 A CN201310280206 A CN 201310280206A CN 103324748 A CN103324748 A CN 103324748A
Authority
CN
China
Prior art keywords
subgraph
customer
limit
location
calculate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310280206XA
Other languages
English (en)
Other versions
CN103324748B (zh
Inventor
姚斌
吴亦凡
李飞飞
肖小奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201310280206.XA priority Critical patent/CN103324748B/zh
Publication of CN103324748A publication Critical patent/CN103324748A/zh
Application granted granted Critical
Publication of CN103324748B publication Critical patent/CN103324748B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供了一种查询最大竞争力位置的动态监控方法及系统,包括:给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;根据G中初始的设施点集合F和客户点集合C获取p;根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。本发明能够快速和动态地查询最大竞争力位置。

Description

查询最大竞争力位置的动态监控方法及系统
技术领域
本发明涉及一种查询最大竞争力位置的动态监控及系统。
背景技术
在过去几年中,有很多工作研究一类在存在客户点集合的情况下的“设施放置问题”(参见文献8:Farahani,R.Z.,Hekmatfar,M.:Facility Location:Concepts,Models,Algorithms and Case Studies,1st edn.Physica-Verlag HD(2009),文献15:Nickel,S.,Puerto,J.:Location Theory:A Unified Approach,1st edn.Springer(2005))。在最普遍的情况下,问题包含:(1)一个客户点的集合C和一个设施点候选集合P,并(2)在P中查询k个新设施点的位置从而满足一个事先定义的最佳条件。这类问题在k是常数的情况下存在多项式时间内的算法,在k是一般变量的情况下是NP-hard问题(参见文献8和15),已经存在的工作主要研究其近似算法。
最佳位置查询问题可以被看做设施放置问题的一个变种,首先P是一个无限集合;然后通常k=1,也就是说只需要为新建一个设施点来选取位置;最后通常事先已经拥有了一个设施点集合F。以上这些是最佳位置查询问题相对于一般的“设施放置问题”的不同点。
之前的最佳位置查询问题的研究工作(参见文献2:Cabello,S.,
Figure BDA00003463576300021
J.M.,Langerman,S.,Seara,C.,Ventura,I.:Reverse facility location problems.In:CCCG,pp.68–71(2005),文献6:Du,Y.,Zhang,D.,Xia,T.:The optimal-locationquery.In:SSTD,pp.163–180(2005),文献21:Wong,R.C.W.,¨Ozsu,T.,Yu,P.S.,Fu,A.W.C.,Liu,L.:Efficient method for maximizing bichromatic reverse nearestneighbor.PVLDB2(1),1126–1137(2009),文献24:Zhang,D.,Du,Y.,Xia,T.,Tao,Y.:Progressive computation of the min-dist optimal-location query.In:VLDB,pp.643–654(2006))中考虑的是设施点和客户点之间在Lp空间中的距离。其中Cabello等人(参见文献2)和Wong等人(参见文献21)的研究是基于L2空间的,而Du等人(参见文献6)和Zhang等人(参见文献24)的研究是基于L1空间的。这些工作并没有研究最佳位置查询问题在路网中的情况。
现有的研究工作中包括另外两种与设施点的位置选取有关的问题:单设施点查询问题(参见文献8和15)以及设施点实时建立问题(参见文献9:Fotakis,D.:Incremental algorithms for facility location and kmedian.Theor.Comput.Sci.361(2-3),275–313(2006),文献13:Meyerson,A.:Online facility location.In:FOCS,pp.426–431(2001)),这两种问题研究内容与最佳位置查询问题类似但是有所不同。单设施点查询问题研究的是,给定一个客户点的集合,寻找一个设施建立点从而满足一个最佳条件,在这个问题里,输入数据中没有已经建立的设施点集合,然而在最佳位置查询问题里,需要考虑一个已有的设施点的集合。设施点实时建立问题研究的是,随着客户点的不断增加,实时选取位置建立新的设施点来满足一个给定的优化条件,与最佳位置查询问题相似的是,这类问题在寻找新的设施点时,也考虑已有的设施点集合,然而[9]和[13]所采用的方法并不能解决最佳位置查询问题,这是因为在设施点实时建立问题中,建立新设施点的候选地点是一个有限的集合,但是在最佳位置查询问题中,建立新设施点的候选地点是一个无限的集合,例如Lp空间中的所有地点或是路网中的所有边上的所有地点的集合。在我们之前的研究工作中我们提出了静态一次查询路网中最佳位置的方法(参见文献22:Xiao,X.,Yao,B.,Li,F.:Optimal locationqueries in road network databases.In:ICDE,pp.804–815(2011)),与那篇文章相比,我们的发明提出了新的动态维护路网中最佳位置的解决方案,并为三个不同的最佳位置查询问题设计了具体的实现方法。
最后,现有的研究工作中存在着很多关于路网数据库中查询方法的研究(参见3:Chen,Z.,Shen,H.T.,Zhou,X.,Yu,J.X.:Monitoring path nearest neighbor inroad networks.In:SIGMOD,pp.591–602(2009),文献4:Deng,K.,Zhou,X.,Shen,H.T.,Sadiq,S.,Li,X.:Instance optimal query processing in spatial networks.VLDBJ18(3),675–693(2009),文献11:Jensen,C.S.,Kol′aˇrvr,J.,Pedersen,T.B.,Timko,I.:Nearest neighbor queries in road networks.In:GIS,pp.1–8(2003),文献12:Kolahdouzan,M.R.,Shahabi,C.:Voronoi-based k-nearest neighbor search for spatialnetwork databases.In:VLDB,pp.840–851(2004),文献14:Mouratidis,K.,Yiu,M.L.,Papadias,D.,Mamoulis,N.:Continuous nearest neighbor monitoring in roadnetworks.In:VLDB,pp.43–54(2006),文献16:Papadias,D.,Zhang,J.,Mamoulis,N.,Tao,Y.:Query processing in spatial network databases.In:VLDB,pp.802–813(2003),文献17:Samet,H.,Sankaranarayanan,J.,Alborzi,H.:Scalable networkdistance browsing in spatial databases.In:SIGMOD,pp.43–54(2008),文献18:Sankaranarayanan,J.,Samet,H.:Distance oracles for spatial networks.In:ICDE,pp.652–663(2009),文献19:Sankaranarayanan,J.,Samet,H.,Alborzi,H.:Path oraclesfor spatial networks.PVLDB2(1),1210–1221(2009),文献23:Yiu,M.L.,Mamoulis,N.,Papadias,D.:Aggregate nearest neighbor queries in road networks.TKDE17(6),820–833(2005))。然而这些研究工作都是关注路网数据库中最近点的查询(参见文献12、16和17)及其变种:最近点近似查询(参见文献18和19)、聚合查询(参见文献23),连续最近点查询(参见文献14),路径最近点查询(参见文献3)等等。这些研究工作中的技术并不能解决最佳位置查询问题,因为最近点查询问题与最佳位置查询问题在本质上是有所不同的。
另外,本发明相关的参考文献还包括如下:
文献1:de Berg,M.,Cheong,O.,van Kreveld,M.,Overmars,M.:ComputationalGeometry:Algorithms and Applications,3rd edn.Springer-Verlag(2008);
文献5:Dijkstra,E.W.:A note on two problems in connexion with graphs.Numerische Mathematik1,269–271(1959);
文献7:Erwig,M.,Hagen,F.:The graph voronoi diagram with applications.Networks36,156–163(2000);
文献10:Hershberger,J.:Finding the upper envelope of n line segments in o(nlog n)time.Inf.Process.Lett.33(4),169–174(1989);
文献20:Shekhar,S.,Liu,D.R.:CCAM:A connectivity-clustered accessmethod for networks and network computations.TKDE9(1),102–119(1997)。
发明内容
本发明的目的在于提供一种查询最大竞争力位置的动态监控方法及系统,能够快速和动态地查询最大竞争力位置。
为解决上述问题,本发明提供一种查询最大竞争力位置的动态监控方法,包括:
给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为
Figure BDA00003463576300051
其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
Figure BDA00003463576300052
通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;
把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;
根据G中初始的设施点集合F和客户点集合C获取p;
根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。
进一步的,在上述方法中,把G按照边划分为n个子图G1...Gn的步骤包括:
从V中随机选取n个顶点作为顶点集合VΔ
建立n个空的子图G1...Gn,将顶点集合VΔ中的点分别设为每个子图的中心;
把G和VΔ作为Erwig和Hagen算法的输入,计算出对于G中每一个v,VΔ中距离v最近的v′和两者的距离d(v,v′);
对于G中的每一条边e,如果e的两个端点到VΔ中最近的点是同一个,则把e加入到对应的子图里,否则把e加入到其任意一个端点到VΔ中最近的点对应的子图里。
进一步的,在上述方法中,根据G中初始的设施点集合F和客户点集合C获取p的步骤包括:
为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure BDA00003463576300061
其中,某个位置的收益值为该位置能够吸引到的所有客户点的权重之和,Ci是Gi中的所有点可能吸引到的客户点的集合;
然后根据这个上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值,其中某个子图的局部最佳位置I为该子图上所有具有最大收益值的点集合;如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p。
进一步的,在上述方法中,为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure BDA00003463576300071
的步骤包括:
在G中加入一个虚拟的顶点v0,从v0到Gi中的每一个顶点连接一条长度为0的边;
计算v0的吸引集合A(v0),其中,给定一个顶点v,A(v)是包含v能吸引到的所有客户点c以及对应距离d(c,v)的集合;
令Ci为A(v0)中出现的所有客户点的集合;
根据Ci计算出Gi的收益值上限
Figure BDA00003463576300072
进一步的,在上述方法中,已知一个顶点v,A(v)通过如下步骤获取:
通过Erwig和Hagen的算法来计算G中每一个顶点v的最近设施点f以及距离d(v,f);
初始化A(v)为空集;
用Dijkstra算法按照到v的距离升序遍历G中所有顶点;
对于每一个遍历到的顶点v′,令a(v′)为v′到其最近的设施点f的距离,如果d(v,v′)≤a(v′),并且v′是一个客户点,则将把<v′,d(v′,v)>加入顶点v吸引集合A(v)后;如果d(v,v′)>a(v′),则忽略所有以v′为端点的边。
进一步的,在上述方法中,对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值的步骤包括:
对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m,其中,某一条边e上的局部最佳位置I为e上所有具有最大收益值的点集合;
将子图的有最大收益值的边的局部最佳位置作为该子图的局部最佳位置,所述最大收益值作为该子图的对应收益值。
进一步的,在上述方法中,对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m的步骤包括:
分别计算e的两个端点vl和vr的吸引集合A(vl)和A(vr);
根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m。
进一步的,在上述方法中,根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m的步骤包括:
建立一个一维平面R;
对于每个在A(vl)中出现但是没有在A(vr)中出现的客户点c,在R中创建一条线段[0,a(c)-d(c,vl)],对这条线段赋予权重w(c);
对于每个在A(vr)中出现但是没有在A(vl)中出现的客户点c,在R中创建一条线段[l-a(c)+d(c,vr),l],并赋予权重w(c),l表示待计算的边e的长度;
对于每个在A(vl)和A(vr)中都出现的客户点c,如果l≤2·a(c)-d(c,vl)-d(c,vr),则在R中创建一条线段[0,l],并赋予权重w(c);否则,在R中创建两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l],并赋予权重w(c);
计算点集合I,I是整条边[0,l]的子集,使得R中所有覆盖I的线段的权重之和最大化;
返回点集合I为边e上的局部最佳位置,对应的收益值m为R中所有覆盖I的线段的权重之和。
进一步的,在上述方法中,根据路网中设施点集合F或客户点集合C发生的更新随时动态监控p的步骤包括:
路网中设施点和客户点的更新可以归结为增加一个客户点AddC(c),减少一个客户点DelC(c),增加一个设施点AddF(f),减少一个设施点DelF(f)共四种基本操作;
当一个更新操作到来的时候,首先计算吸引距离会被更新所影响的客户点的集合Vc,如果操作是AddC(c)或DelC(c),则Vc={c};如果操作是AddF(f)或DelF(f),则Vc={c|<c,d(c,v)>∈A(f)};
对于每一个客户点c∈Vc,找出该客户点之前的吸引距离a0(c)和新的吸引距离a′(c),并建立两个集合
Figure BDA00003463576300091
U c - = { < v , d ( c , v ) > | d ( c , v ) < a 0 ( c ) } ;
对于每一个客户点c∈Vc,根据a0(c),a′(c),来更新所有已经被计算的子图中的每一条边e的局部最佳位置I以及对应的收益值m,令更新前的局部最佳位置以及对应的收益值分别为I0和m0
更新所有子图的收益值上限;
根据新的上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:
对于被访问的子图,如果该子图未被计算,则初始计算该子图的局部最佳位置并获取对应收益值,如果该子图已被计算,则直接读取该子图的局部最佳位置和对应收益值;
如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p;
对于未遍历到的子图,把其中已经计算的子图改为未计算,以为下一次更新做准备。
进一步的,在上述方法中,已知更新前的局部最佳位置以及对应的收益值分别为I0和m0,根据a0(c),a′(c),
Figure BDA00003463576300101
来更新每一条边e的局部最佳位置I以及对应的收益值m的步骤包括:
步骤一:初始化一个空的边集E1
步骤二:对于E中的每条边e(vl,vr),如果<vl,d(c,vl)>和<vr,d(c,vr)>者至少有一个存在于UC+和UC-的并集中,则把e加入边集E1
步骤三:对于边集E1中的每一条边e(vl,vr)执行如下步骤:
初始化两个空的点集I+和I-,如果<vl,d(c,vl)>存在于
Figure BDA00003463576300102
中,但是<vr,d(c,vr)>不存在于
Figure BDA00003463576300103
中,则向I-中加入一条线段[0,a0(c)-d(c,vl)];如果<vl,d(c,vl)>不存在于
Figure BDA00003463576300104
中,但是<vr,d(c,vr)>存在于
Figure BDA00003463576300105
中,则向I-中加入一条线段[l-a0(c)-d(c,vr),l];如果<vl,d(c,vl)>和<vr,d(c,vr)>都存在于
Figure BDA00003463576300111
中,则如果l≤2a0(c)-d(c,vl)-d(c,vr),则向I-中加入一条线段[0,l],l>2a0(c)-d(c,vl)-d(c,vr),向I-中加入两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l];
与获取I-一样的方式,将
Figure BDA00003463576300112
换成
Figure BDA00003463576300113
a0(c)换成a′(c),类似地计算出I+
如果a0(c)<a′(c),则将一个临时的flag设为ADD,计算I′=I+-I-,否则,将flag设为DEL,计算I′=I--I+
如果I′为空集,则跳出本循环,访问边集E1中的下一条边e;
如果flag为ADD,则计算I=I0∩I′,如果I是空集,则重新初始化计算e上的I和m;否则,令m=m0+w(c);
如果flag为DEL,则如果I′=[0,l],则I=I0,m=m0-w(c);否则,计算I=I0-I′,如果I是空集,则重新初始化计算e上的I和m,如果I不是空集,令m=m0
令I和m为边e上新的局部最佳位置和对应的收益值。
根据本发明的另一面,提供一种查询最大竞争力位置的动态监控系统,包括:
第一定义模块,用于给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
Figure BDA00003463576300121
无向连通图,用于通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;
划分模块,用于把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;
获取模块,用于根据G中初始的设施点集合F和客户点集合C获取p;
更新模块,用于根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。
进一步的,在上述系统中,所述划分模块用于:
从V中随机选取n个顶点作为顶点集合VΔ
建立n个空的子图G1...Gn,将顶点集合VΔ中的点分别设为每个子图的中心;
把G和VΔ作为Erwig和Hagen算法的输入,计算出对于G中每一个v,VΔ中距离v最近的v′和两者的距离d(v,v′);
对于G中的每一条边e,如果e的两个端点到VΔ中最近的点是同一个,则把e加入到对应的子图里,否则把e加入到其任意一个端点到VΔ中最近的点对应的子图里。
进一步的,在上述系统中,所述获取模块用于:
为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure BDA00003463576300131
其中,某个位置的收益值为该位置能够吸引到的所有客户点的权重之和,Ci是Gi中的所有点可能吸引到的客户点的集合;
然后根据这个上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值,其中,某个子图的局部最佳位置I为该子图上所有具有最大收益值的点集合;如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p。
进一步的,在上述系统中,所述获取模块用于:
在G中加入一个虚拟的顶点v0,从v0到Gi中的每一个顶点连接一条长度为0的边;
计算v0的吸引集合A(v0),其中,给定一个顶点v,A(v)是包含v能吸引到的所有客户点c以及对应距离d(c,v)的集合;
令Ci为A(v0)中出现的所有客户点的集合;
根据Ci计算出Gi的收益值上限
Figure BDA00003463576300132
进一步的,在上述系统中,已知一个顶点v,所述获取模块用于获取A(v),具体包括:
通过Erwig和Hagen的算法来计算G中每一个顶点v的最近设施点f以及距离d(v,f);
初始化A(v)为空集;
用Dijkstra算法按照到v的距离升序遍历G中所有顶点;
对于每一个遍历到的顶点v′,令a(v′)为v′到其最近的设施点f的距离,如果d(v,v′)≤a(v′),并且v′是一个客户点,则将把<v′,d(v′,v)>加入顶点v吸引集合A(v)后;如果d(v,v′)>a(v′),则忽略所有以v′为端点的边。
进一步的,在上述系统中,所述获取模块用于:
对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m,其中,某一条边e上的局部最佳位置I为e上所有具有最大收益值的点集合;
将子图的有最大收益值的边的局部最佳位置作为该子图的局部最佳位置,所述最大收益值作为该子图的对应收益值。
进一步的,在上述系统中,所述获取模块用于:
分别计算e的两个端点vl和vr的吸引集合A(vl)和A(vr);
根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m。
进一步的,在上述系统中,所述获取模块用于:
建立一个一维平面R;
对于每个在A(vl)中出现但是没有在A(vr)中出现的客户点c,在R中创建一条线段[0,a(c)-d(c,vl)],对这条线段赋予权重w(c);
对于每个在A(vr)中出现但是没有在A(vl)中出现的客户点c,在R中创建一条线段[l-a(c)+d(c,vr),l],并赋予权重w(c),l表示待计算的边e的长度;
对于每个在A(vl)和A(vr)中都出现的客户点c,如果l≤2·a(c)-d(c,vl)-d(c,vr),则在R中创建一条线段[0,l],并赋予权重w(c);否则,在R中创建两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l],并赋予权重w(c);
计算点集合I,I是整条边[0,l]的子集,使得R中所有覆盖I的线段的权重之和最大化;
返回点集合I为边e上的局部最佳位置,对应的收益值m为R中所有覆盖I的线段的权重之和。
进一步的,在上述系统中,所述更新模块用于:
路网中设施点和客户点的更新可以归结为增加一个客户点(AddC(c)),减少一个客户点DelC(c),增加一个设施点AddF(f),减少一个设施点DelF(f)共四种基本操作;
当一个更新操作到来的时候,首先计算吸引距离会被更新所影响的客户点的集合Vc,如果操作是AddC(c)或DelC(c),则Vc={c};如果操作是AddF(f)或DelF(f),则Vc={c|<c,d(c,v)>∈A(f)};
对于每一个客户点c∈Vc,找出该客户点之前的吸引距离a0(c)和新的吸引距离a′(c),并建立两个集合
Figure BDA00003463576300151
U c - = { < v , d ( c , v ) > | d ( c , v ) < a 0 ( c ) } ;
对于每一个客户点c∈Vc,根据a0(c),a′(c),
Figure BDA00003463576300162
来更新所有已经被计算的子图中的每一条边e的局部最佳位置I以及对应的收益值m,令更新前的局部最佳位置以及对应的收益值分别为I0和m0
更新所有子图的收益值上限;
根据新的上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:
对于被访问的子图,如果该子图未被计算,则初始计算该子图的局部最佳位置并获取对应收益值,如果该子图已被计算,则直接读取该子图的局部最佳位置和对应收益值;
如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p;
对于未遍历到的子图,把其中已经计算的子图改为未计算,以为下一次更新做准备。
进一步的,在上述系统中,已知更新前的局部最佳位置以及对应的收益值分别为I0和m0,所述更新模块用于:
初始化一个空的边集E1
对于E中的每条边e(vl,vr),如果<vl,d(c,vl)>和<vr,d(c,vr)>者至少有一个存在于UC+和UC-的并集中,则把e加入边集E1
对于边集E1中的每一条边e(vl,vr)执行如下过程:
初始化两个空的点集I+和I-,如果<vl,d(c,vl)>存在于
Figure BDA00003463576300171
中,但是<vr,d(c,vr)>不存在于
Figure BDA00003463576300172
中,则向I-中加入一条线段[0,a0(c)-d(c,vl)];如果<vl,d(c,vl)>不存在于
Figure BDA00003463576300173
中,但是<vr,d(c,vr)>存在于
Figure BDA00003463576300174
中,则向I-中加入一条线段[l-a0(c)-d(c,vr),l];如果<vl,d(c,vl)>和<vr,d(c,vr)>都存在于
Figure BDA00003463576300175
中,则如果l≤2a0(c)-d(c,vl)-d(c,vr),则向I-中加入一条线段[0,l],l>2a0(c)-d(c,vl)-d(c,vr),向I-中加入两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l];
与获取I-一样的方式,将换成
Figure BDA00003463576300177
a0(c)换成a′(c),类似地计算出I+
如果a0(c)<a′(c),则将一个临时的flag设为ADD,计算I′=I+-I-,否则,将flag设为DEL,计算I′=I--I+
如果I′为空集,则跳出本循环,访问边集E1中的下一条边e;
如果flag为ADD,则计算I=I0∩I′,如果I是空集,则重新初始化计算e上的I和m;否则,令m=m0+w(c);
如果flag为DEL,则如果I′=[0,l],则I=I0,m=m0-w(c);否则,计算I=I0-I′,如果I是空集,则重新初始化计算e上的I和m,如果I不是空集,令m=m0
令I和m为边e上新的局部最佳位置和对应的收益值。
与现有技术相比,本发明通过给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为
Figure BDA00003463576300178
其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;根据G中初始的设施点集合F和客户点集合C获取p;根据G中设施点集合F或客户点集合C发生的更新随时动态监控p,能够快速和动态地查询最大竞争力位置。
附图说明
图1是本发明一实施例的查询最大竞争力位置的动态监控方法的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1所示,本发明提供一种查询最大竞争力位置的动态监控方法,包括步骤S1至步骤S4。
步骤S1,给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为
Figure BDA00003463576300191
其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
Figure BDA00003463576300192
步骤S2,通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;
步骤S3,把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;
优选的,步骤S3包括:
从V中随机选取n个顶点作为顶点集合VΔ
建立n个空的子图G1...Gn,将顶点集合VΔ中的点分别设为每个子图的中心;
把G和VΔ作为Erwig和Hagen算法的输入,计算出对于G中每一个v,VΔ中距离v最近的v′和两者的距离d(v,v′);
对于G中的每一条边e,如果e的两个端点到VΔ中最近的点是同一个,则把e加入到对应的子图里,否则把e加入到其任意一个端点到VΔ中最近的点对应的子图里。
步骤S4,根据G中初始的设施点集合F和客户点集合C获取p;
优选的,步骤S4包括:
为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure BDA00003463576300201
其中,某个位置的收益值为该位置能够吸引到的所有客户点的权重之和,Ci是Gi中的所有点可能吸引到的客户点的集合;
然后根据这个上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值,其中某个子图的局部最佳位置I为该子图上所有具有最大收益值的点集合;如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p。
优选的,为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure BDA00003463576300202
的步骤包括:
在G中加入一个虚拟的顶点v0,从v0到Gi中的每一个顶点连接一条长度为0的边;
计算v0的吸引集合A(v0),其中,给定一个顶点v,A(v)是包含v能吸引到的所有客户点c以及对应距离d(c,v)的集合;
令Ci为A(v0)中出现的所有客户点的集合;
根据Ci计算出Gi的收益值上限
Figure BDA00003463576300211
较佳的,已知一个顶点v,A(v)通过如下步骤获取:
通过Erwig和Hagen的算法来计算G中每一个顶点v的最近设施点f以及距离d(v,f);
初始化A(v)为空集;
用Dijkstra算法按照到v的距离升序遍历G中所有顶点;
对于每一个遍历到的顶点v′,令a(v′)为v′到其最近的设施点f的距离,如果d(v,v′)≤a(v′),并且v′是一个客户点,则将把<v′,d(v′,v)>加入顶点v吸引集合A(v)后;如果d(v,v′)>a(v′),则忽略所有以v′为端点的边。
较佳的,对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值的步骤包括:
对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m,其中,某一条边e上的局部最佳位置I为e上所有具有最大收益值的点集合;
将子图的有最大收益值的边的局部最佳位置作为该子图的局部最佳位置,所述最大收益值作为该子图的对应收益值。
进一步的,对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m的步骤包括:
分别计算e的两个端点vl和vr的吸引集合A(vl)和A(vr);
根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m。
较佳的,根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m的步骤包括:
建立一个一维平面R;
对于每个在A(vl)中出现但是没有在A(vr)中出现的客户点c,在R中创建一条线段[0,a(c)-d(c,vl)],对这条线段赋予权重w(c);
对于每个在A(vr)中出现但是没有在A(vl)中出现的客户点c,在R中创建一条线段[l-a(c)+d(c,vr),l],并赋予权重w(c),l表示待计算的边e的长度;
对于每个在A(vl)和A(vr)中都出现的客户点c,如果l≤2·a(c)-d(c,vl)-d(c,vr),则在R中创建一条线段[0,l],并赋予权重w(c);否则,在R中创建两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l],并赋予权重w(c);
计算点集合I,I是整条边[0,l]的子集,使得R中所有覆盖I的线段的权重之和最大化;
返回点集合I为边e上的局部最佳位置,对应的收益值m为R中所有覆盖I的线段的权重之和。
步骤S5,根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。
优选的,步骤S5包括:
路网中设施点和客户点的更新可以归结为增加一个客户点AddC(c),减少一个客户点DelC(c),增加一个设施点AddF(f),减少一个设施点DelF(f)共四种基本操作;
当一个更新操作到来的时候,首先计算吸引距离会被更新所影响的客户点的集合Vc,如果操作是AddC(c)或DelC(c),则Vc={c};如果操作是AddF(f)或DelF(f),则Vc={c|<c,d(c,v)>∈A(f)};
对于每一个客户点c∈Vc,找出该客户点之前的吸引距离a0(c)和新的吸引距离a′(c),并建立两个集合
Figure BDA00003463576300231
U c - = { < v , d ( c , v ) > | d ( c , v ) < a 0 ( c ) } ;
对于每一个客户点c∈Vc,根据a0(c),a′(c),
Figure BDA00003463576300233
来更新所有已经被计算的子图中的每一条边e的局部最佳位置I以及对应的收益值m,令更新前的局部最佳位置以及对应的收益值分别为I0和m0
更新所有子图的收益值上限;
根据新的上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:
对于被访问的子图,如果该子图未被计算,则初始计算该子图的局部最佳位置并获取对应收益值,如果该子图已被计算,则直接读取该子图的局部最佳位置和对应收益值;
如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p;
对于未遍历到的子图,把其中已经计算的子图改为未计算,以为下一次更新做准备。
较佳的,已知更新前的局部最佳位置以及对应的收益值分别为I0和m0,根据a0(c),a′(c),
Figure BDA00003463576300241
来更新每一条边e的局部最佳位置I以及对应的收益值m的步骤包括:
步骤一:初始化一个空的边集E1
步骤二:对于E中的每条边e(vl,vr),如果<vl,d(c,vl)>和<vr,d(c,vr)>者至少有一个存在于UC+和UC-的并集中,则把e加入边集E1
步骤三:对于边集E1中的每一条边e(vl,vr)执行如下步骤:
初始化两个空的点集I+和I-,如果<vl,d(c,vl)>存在于中,但是<vr,d(c,vr)>不存在于
Figure BDA00003463576300243
中,则向I-中加入一条线段[0,a0(c)-d(c,vl)];如果<vl,d(c,vl)>不存在于中,但是<vr,d(c,vr)>存在于
Figure BDA00003463576300245
中,则向I-中加入一条线段[l-a0(c)-d(c,vr),l];如果<vl,d(c,vl)>和<vr,d(c,vr)>都存在于
Figure BDA00003463576300246
中,则如果l≤2a0(c)-d(c,vl)-d(c,vr),则向I-中加入一条线段[0,l],l>2a0(c)-d(c,vl)-d(c,vr),向I-中加入两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l];
与获取I-一样的方式,将
Figure BDA00003463576300247
换成
Figure BDA00003463576300248
a0(c)换成a′(c),类似地计算出I+
如果a0(c)<a′(c),则将一个临时的flag设为ADD,计算I′=I+-I-,否则,将flag设为DEL,计算I′=I--I+
如果I′为空集,则跳出本循环,访问边集E1中的下一条边e;
如果flag为ADD,则计算I=I0∩I′,如果I是空集,则重新初始化计算e上的I和m;否则,令m=m0+w(c);
如果flag为DEL,则如果I′=[0,l],则I=I0,m=m0-w(c);否则,计算I=I0-I′,如果I是空集,则重新初始化计算e上的I和m,如果I不是空集,令m=m0
令I和m为边e上新的局部最佳位置和对应的收益值。
实施例二
本发明还提供另一种查询最大竞争力位置的动态监控系统,包括:
进一步的,在上述系统中,第一定义模块,用于给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为
Figure BDA00003463576300251
其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
无向连通图,用于通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;
划分模块,用于把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;
获取模块,用于根据G中初始的设施点集合F和客户点集合C获取p;
更新模块,用于根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。
进一步的,在上述系统中,所述划分模块用于:
从V中随机选取n个顶点作为顶点集合VΔ
建立n个空的子图G1...Gn,将顶点集合VΔ中的点分别设为每个子图的中心;
把G和VΔ作为Erwig和Hagen算法的输入,计算出对于G中每一个v,VΔ中距离v最近的v′和两者的距离d(v,v′);
对于G中的每一条边e,如果e的两个端点到VΔ中最近的点是同一个,则把e加入到对应的子图里,否则把e加入到其任意一个端点到VΔ中最近的点对应的子图里。
进一步的,在上述系统中,所述获取模块用于:
为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure BDA00003463576300261
其中,某个位置的收益值为该位置能够吸引到的所有客户点的权重之和,Ci是Gi中的所有点可能吸引到的客户点的集合;
然后根据这个上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值,其中,某个子图的局部最佳位置I为该子图上所有具有最大收益值的点集合;如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p。
进一步的,在上述系统中,所述获取模块用于:
在G中加入一个虚拟的顶点v0,从v0到Gi中的每一个顶点连接一条长度为0的边;
计算v0的吸引集合A(v0),其中,给定一个顶点v,A(v)是包含v能吸引到的所有客户点c以及对应距离d(c,v)的集合;
令Ci为A(v0)中出现的所有客户点的集合;
根据Ci计算出Gi的收益值上限
Figure BDA00003463576300271
进一步的,在上述系统中,已知一个顶点v,所述获取模块用于获取A(v),具体包括:
通过Erwig和Hagen的算法来计算G中每一个顶点v的最近设施点f以及距离d(v,f);
初始化A(v)为空集;
用Dijkstra算法按照到v的距离升序遍历G中所有顶点;
对于每一个遍历到的顶点v′,令a(v′)为v′到其最近的设施点f的距离,如果d(v,v′)≤a(v′),并且v′是一个客户点,则将把<v′,d(v′,v)>加入顶点v吸引集合A(v)后;如果d(v,v′)>a(v′),则忽略所有以v′为端点的边。
进一步的,在上述系统中,所述获取模块用于:
对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m,其中,某一条边e上的局部最佳位置I为e上所有具有最大收益值的点集合;
将子图的有最大收益值的边的局部最佳位置作为该子图的局部最佳位置,所述最大收益值作为该子图的对应收益值。
进一步的,在上述系统中,所述获取模块用于:
分别计算e的两个端点vl和vr的吸引集合A(vl)和A(vr);
根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m。
进一步的,在上述系统中,所述获取模块用于:
建立一个一维平面R;
对于每个在A(vl)中出现但是没有在A(vr)中出现的客户点c,在R中创建一条线段[0,a(c)-d(c,vl)],对这条线段赋予权重w(c);
对于每个在A(vr)中出现但是没有在A(vl)中出现的客户点c,在R中创建一条线段[l-a(c)+d(c,vr),l],并赋予权重w(c),l表示待计算的边e的长度;
对于每个在A(vl)和A(vr)中都出现的客户点c,如果l≤2·a(c)-d(c,vl)-d(c,vr),则在R中创建一条线段[0,l],并赋予权重w(c);否则,在R中创建两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l],并赋予权重w(c);
计算点集合I,I是整条边[0,l]的子集,使得R中所有覆盖I的线段的权重之和最大化;
返回点集合I为边e上的局部最佳位置,对应的收益值m为R中所有覆盖I的线段的权重之和。
进一步的,在上述系统中,所述更新模块用于:
路网中设施点和客户点的更新可以归结为增加一个客户点(AddC(c)),减少一个客户点DelC(c),增加一个设施点AddF(f),减少一个设施点DelF(f)共四种基本操作;
当一个更新操作到来的时候,首先计算吸引距离会被更新所影响的客户点的集合Vc,如果操作是AddC(c)或DelC(c),则Vc={c};如果操作是AddF(f)或DelF(f),则Vc={c|<c,d(c,v)>∈A(f)};
对于每一个客户点c∈Vc,找出该客户点之前的吸引距离a0(c)和新的吸引距离a′(c),并建立两个集合
Figure BDA00003463576300291
U c - = { < v , d ( c , v ) > | d ( c , v ) < a 0 ( c ) } ;
对于每一个客户点c∈Vc,根据a0(c),a′(c),
Figure BDA00003463576300293
来更新所有已经被计算的子图中的每一条边e的局部最佳位置I以及对应的收益值m,令更新前的局部最佳位置以及对应的收益值分别为I0和m0
更新所有子图的收益值上限;
根据新的上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:
对于被访问的子图,如果该子图未被计算,则初始计算该子图的局部最佳位置并获取对应收益值,如果该子图已被计算,则直接读取该子图的局部最佳位置和对应收益值;
如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p;
对于未遍历到的子图,把其中已经计算的子图改为未计算,以为下一次更新做准备。
已知更新前的局部最佳位置以及对应的收益值分别为I0和m0,所述更新模块用于:
初始化一个空的边集E1
对于E中的每条边e(vl,vr),如果<vl,d(c,vl)>和<vr,d(c,vr)>者至少有一个存在于UC+和UC-的并集中,则把e加入边集E1
对于边集E1中的每一条边e(vl,vr)执行如下过程:
初始化两个空的点集I+和I-,如果<vl,d(c,vl)>存在于
Figure BDA00003463576300301
中,但是<vr,d(c,vr)>不存在于中,则向I-中加入一条线段[0,a0(c)-d(c,vl)];如果<vl,d(c,vl)>不存在于
Figure BDA00003463576300303
中,但是<vr,d(c,vr)>存在于中,则向I-中加入一条线段[l-a0(c)-d(c,vr),l];如果<vl,d(c,vl)>和<vr,d(c,vr)>都存在于
Figure BDA00003463576300305
中,则如果l≤2a0(c)-d(c,vl)-d(c,vr),则向I-中加入一条线段[0,l],l>2a0(c)-d(c,vl)-d(c,vr),向I-中加入两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l];
与获取I-一样的方式,将
Figure BDA00003463576300311
换成
Figure BDA00003463576300312
a0(c)换成a′(c),类似地计算出I+
如果a0(c)<a′(c),则将一个临时的flag设为ADD,计算I′=I+-I-,否则,将flag设为DEL,计算I′=I--I+
如果I′为空集,则跳出本循环,访问边集E1中的下一条边e;
如果flag为ADD,则计算I=I0∩I′,如果I是空集,则重新初始化计算e上的I和m;否则,令m=m0+w(c);
如果flag为DEL,则如果I′=[0,l],则I=I0,m=m0-w(c);否则,计算I=I0-I′,如果I是空集,则重新初始化计算e上的I和m,如果I不是空集,令m=m0
令I和m为边e上新的局部最佳位置和对应的收益值。
实施例二的其它详细内容具体可参见实施例一,在此不再赘述。
本发明通过给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
Figure BDA00003463576300314
通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;根据G中初始的设施点集合F和客户点集合C获取p;根据G中设施点集合F或客户点集合C发生的更新随时动态监控p,能够快速和动态地查询最大竞争力位置。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (20)

1.一种查询最大竞争力位置的动态监控方法,其特征在于,包括:
给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为
Figure FDA00003463576200011
其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
Figure FDA00003463576200012
通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;
把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;
根据G中初始的设施点集合F和客户点集合C获取p;
根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。
2.如权利要求1所述的查询最大竞争力位置的动态监控方法,其特征在于,把G按照边划分为n个子图G1...Gn的步骤包括:
从V中随机选取n个顶点作为顶点集合VΔ
建立n个空的子图G1...Gn,将顶点集合VΔ中的点分别设为每个子图的中心;
把G和VΔ作为Erwig和Hagen算法的输入,计算出对于G中每一个v,VΔ中距离v最近的v′和两者的距离d(v,v′);
对于G中的每一条边e,如果e的两个端点到VΔ中最近的点是同一个,则把e加入到对应的子图里,否则把e加入到其任意一个端点到VΔ中最近的点对应的子图里。
3.如权利要求2所述的查询最大竞争力位置的动态监控方法,其特征在于,根据G中初始的设施点集合F和客户点集合C获取p的步骤包括:
为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure FDA00003463576200021
其中,某个位置的收益值为该位置能够吸引到的所有客户点的权重之和,Ci是Gi中的所有点可能吸引到的客户点的集合;
然后根据这个上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值,其中某个子图的局部最佳位置I为该子图上所有具有最大收益值的点集合;如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p。
4.如权利要求3所述的查询最大竞争力位置的动态监控方法,其特征在于,为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure FDA00003463576200022
的步骤包括:
在G中加入一个虚拟的顶点v0,从v0到Gi中的每一个顶点连接一条长度为0的边;
计算v0的吸引集合A(v0),其中,给定一个顶点v,A(v)是包含v能吸引到的所有客户点c以及对应距离d(c,v)的集合;
令Ci为A(v0)中出现的所有客户点的集合;
根据Ci计算出Gi的收益值上限
Figure FDA00003463576200031
5.如权利要求4所述的查询最大竞争力位置的动态监控方法,其特征在于,已知一个顶点v,A(v)通过如下步骤获取:
通过Erwig和Hagen的算法来计算G中每一个顶点v的最近设施点f以及距离d(v,f);
初始化A(v)为空集;
用Dijkstra算法按照到v的距离升序遍历G中所有顶点;
对于每一个遍历到的顶点v′,令a(v′)为v′到其最近的设施点f的距离,如果d(v,v′)≤a(v′),并且v′是一个客户点,则将把<v′,d(v′,v)>加入顶点v吸引集合A(v)后;如果d(v,v′)>a(v′),则忽略所有以v′为端点的边。
6.如权利要求5所述的查询最大竞争力位置的动态监控方法,其特征在于,对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值的步骤包括:
对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m,其中,某一条边e上的局部最佳位置I为e上所有具有最大收益值的点集合;
将子图的有最大收益值的边的局部最佳位置作为该子图的局部最佳位置,所述最大收益值作为该子图的对应收益值。
7.如权利要求6所述的查询最大竞争力位置的动态监控方法,其特征在于,对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m的步骤包括:
分别计算e的两个端点vl和vr的吸引集合A(vl)和A(vr);
根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m。
8.如权利要求7所述的查询最大竞争力位置的动态监控方法,其特征在于,根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m的步骤包括:
建立一个一维平面R;
对于每个在A(vl)中出现但是没有在A(vr)中出现的客户点c,在R中创建一条线段[0,a(c)-d(c,vl)],对这条线段赋予权重w(c);
对于每个在A(vr)中出现但是没有在A(vl)中出现的客户点c,在R中创建一条线段[l-a(c)+d(c,vr),l],并赋予权重w(c),l表示待计算的边e的长度;
对于每个在A(vl)和A(vr)中都出现的客户点c,如果l≤2·a(c)-d(c,vl)-d(c,vr),则在R中创建一条线段[0,l],并赋予权重w(c);否则,在R中创建两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l],并赋予权重w(c);
计算点集合I,I是整条边[0,l]的子集,使得R中所有覆盖I的线段的权重之和最大化;
返回点集合I为边e上的局部最佳位置,对应的收益值m为R中所有覆盖I的线段的权重之和。
9.如权利要求1至8任一项所述的查询最大竞争力位置的动态监控方法,其特征在于,根据路网中设施点集合F或客户点集合C发生的更新随时动态监控p的步骤包括:
路网中设施点和客户点的更新可以归结为增加一个客户点AddC(c),减少一个客户点DelC(c),增加一个设施点AddF(f),减少一个设施点DelF(f)共四种基本操作;
当一个更新操作到来的时候,首先计算吸引距离会被更新所影响的客户点的集合Vc,如果操作是AddC(c)或DelC(c),则Vc={c};如果操作是AddF(f)或DelF(f),则Vc={c|<c,d(c,v)>∈A(f)};
对于每一个客户点c∈Vc,找出该客户点之前的吸引距离a0(c)和新的吸引距离a′(c),并建立两个集合
Figure FDA00003463576200051
U c - = { < v , d ( c , v ) > | d ( c , v ) < a 0 ( c ) } ;
对于每一个客户点c∈Vc,根据a0(c),a′(c),
Figure FDA00003463576200053
来更新所有已经被计算的子图中的每一条边e的局部最佳位置I以及对应的收益值m,令更新前的局部最佳位置以及对应的收益值分别为I0和m0
更新所有子图的收益值上限;
根据新的上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:
对于被访问的子图,如果该子图未被计算,则初始计算该子图的局部最佳位置并获取对应收益值,如果该子图已被计算,则直接读取该子图的局部最佳位置和对应收益值;
如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p;
对于未遍历到的子图,把其中已经计算的子图改为未计算,以为下一次更新做准备。
10.如权利要求9所述的查询最大竞争力位置的动态监控方法,其特征在于,已知更新前的局部最佳位置以及对应的收益值分别为I0和m0,根据a0(c),a′(c),来更新每一条边e的局部最佳位置I以及对应的收益值m的步骤包括:
步骤一:初始化一个空的边集E1
步骤二:对于E中的每条边e(vl,vr),如果<vl,d(c,vl)>和<vr,d(c,vr)>者至少有一个存在于UC+和UC-的并集中,则把e加入边集E1
步骤三:对于边集E1中的每一条边e(vl,vr)执行如下步骤:
初始化两个空的点集I+和I-,如果<vl,d(c,vl)>存在于中,但是<vr,d(c,vr)>不存在于
Figure FDA00003463576200062
中,则向I-中加入一条线段[0,a0(c)-d(c,vl)];如果<vl,d(c,vl)>不存在于
Figure FDA00003463576200063
中,但是<vr,d(c,vr)>存在于
Figure FDA00003463576200064
中,则向I-中加入一条线段[l-a0(c)-d(c,vr),l];如果<vl,d(c,vl)>和<vr,d(c,vr)>都存在于
Figure FDA00003463576200071
中,则如果l≤2a0(c)-d(c,vl)-d(c,vr),则向I-中加入一条线段[0,l],l>2a0(c)-d(c,vl)-d(c,vr),向I-中加入两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l];
与获取I-一样的方式,将
Figure FDA00003463576200072
换成
Figure FDA00003463576200073
a0(c)换成a′(c),类似地计算出I+
如果a0(c)<a′(c),则将一个临时的flag设为ADD,计算I′=I+-I-,否则,将flag设为DEL,计算I′=I--I+
如果I′为空集,则跳出本循环,访问边集E1中的下一条边e;
如果flag为ADD,则计算I=I0∩I′,如果I是空集,则重新初始化计算e上的I和m;否则,令m=m0+w(c);
如果flag为DEL,则如果I′=[0,l],则I=I0,m=m0-w(c);否则,计算I=I0-I′,如果I是空集,则重新初始化计算e上的I和m,如果I不是空集,令m=m0
令I和m为边e上新的局部最佳位置和对应的收益值。
11.一种查询最大竞争力位置的动态监控系统,其特征在于,包括:
第一定义模块,用于给定一个客户点的集合C和一个设施点的集合F,以及一个候选位置集合P,最大竞争力位置为其中w(c)是客户点c的权重,如果客户点c和设施点f在道路网络中的距离d(c,f)是c和F中的点的极小值,则定义f是c的吸引者,c被f吸引,a(c)=d(c,f)为c的吸引距离,Cp是所有能被p吸引的客户点,即
Figure FDA00003463576200075
无向连通图,用于通过向表示路网的无向连通图Go=(Vo,Eo)插入所有的设施点f和客户点c来将Eo中的边划分成新的边,对于每一个点ρ∈C∪F,先考虑ρ所在的边e∈Eo,令e的两个端点为vl和vr,然后将e分为两部分即从vl到ρ和从ρ到vr,以使ρ成为无向连通图的一个新顶点,加入所有的新顶点以生成了一个新的无向连通图G=(V,E),且V=Vo∪C∪F;
划分模块,用于把G按照边划分为n个子图G1...Gn,其中,n的值根据用户的需要设置;
获取模块,用于根据G中初始的设施点集合F和客户点集合C获取p;
更新模块,用于根据G中设施点集合F或客户点集合C发生的更新随时动态监控p。
12.如权利要求11所述的查询最大竞争力位置的动态监控系统,其特征在于,所述划分模块用于:
从V中随机选取n个顶点作为顶点集合VΔ
建立n个空的子图G1...Gn,将顶点集合VΔ中的点分别设为每个子图的中心;
把G和VΔ作为Erwig和Hagen算法的输入,计算出对于G中每一个v,VΔ中距离v最近的v′和两者的距离d(v,v′);
对于G中的每一条边e,如果e的两个端点到VΔ中最近的点是同一个,则把e加入到对应的子图里,否则把e加入到其任意一个端点到VΔ中最近的点对应的子图里。
13.如权利要求12所述的查询最大竞争力位置的动态监控系统,其特征在于,所述获取模块用于:
为每个子图Gi计算这个子图中位置所能达到的收益值上限
Figure FDA00003463576200091
其中,某个位置的收益值为该位置能够吸引到的所有客户点的权重之和,Ci是Gi中的所有点可能吸引到的客户点的集合;
然后根据这个上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:对于被访问的子图,计算该子图的局部最佳位置并获取对应收益值,其中,某个子图的局部最佳位置I为该子图上所有具有最大收益值的点集合;如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p。
14.如权利要求13所述的查询最大竞争力位置的动态监控系统,其特征在于,所述获取模块用于:
在G中加入一个虚拟的顶点v0,从v0到Gi中的每一个顶点连接一条长度为0的边;
计算v0的吸引集合A(v0),其中,给定一个顶点v,A(v)是包含v能吸引到的所有客户点c以及对应距离d(c,v)的集合;
令Ci为A(v0)中出现的所有客户点的集合;
根据Ci计算出Gi的收益值上限
15.如权利要求14所述的查询最大竞争力位置的动态监控系统,其特征在于,已知一个顶点v,所述获取模块用于获取A(v),具体包括:
通过Erwig和Hagen的算法来计算G中每一个顶点v的最近设施点f以及距离d(v,f);
初始化A(v)为空集;
用Dijkstra算法按照到v的距离升序遍历G中所有顶点;
对于每一个遍历到的顶点v′,令a(v′)为v′到其最近的设施点f的距离,如果d(v,v′)≤a(v′),并且v′是一个客户点,则将把<v′,d(v′,v)>加入顶点v吸引集合A(v)后;如果d(v,v′)>a(v′),则忽略所有以v′为端点的边。
16.如权利要求15所述的查询最大竞争力位置的动态监控系统,其特征在于,所述获取模块用于:
对于子图中的每一条边e初始化计算其局部最佳位置I以及对应的收益值m,其中,某一条边e上的局部最佳位置I为e上所有具有最大收益值的点集合;
将子图的有最大收益值的边的局部最佳位置作为该子图的局部最佳位置,所述最大收益值作为该子图的对应收益值。
17.如权利要求16所述的查询最大竞争力位置的动态监控系统,其特征在于,所述获取模块用于:
分别计算e的两个端点vl和vr的吸引集合A(vl)和A(vr);
根据已经计算出的A(vl)和A(vr)计算e的局部最佳位置I以及对应的收益值m。
18.如权利要求17所述的查询最大竞争力位置的动态监控系统,其特征在于,所述获取模块用于:
建立一个一维平面R;
对于每个在A(vl)中出现但是没有在A(vr)中出现的客户点c,在R中创建一条线段[0,a(c)-d(c,vl)],对这条线段赋予权重w(c);
对于每个在A(vr)中出现但是没有在A(vl)中出现的客户点c,在R中创建一条线段[l-a(c)+d(c,vr),l],并赋予权重w(c),l表示待计算的边e的长度;
对于每个在A(vl)和A(vr)中都出现的客户点c,如果l≤2·a(c)-d(c,vl)-d(c,vr),则在R中创建一条线段[0,l],并赋予权重w(c);否则,在R中创建两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l],并赋予权重w(c);
计算点集合I,I是整条边[0,l]的子集,使得R中所有覆盖I的线段的权重之和最大化;
返回点集合I为边e上的局部最佳位置,对应的收益值m为R中所有覆盖I的线段的权重之和。
19.如权利要求11至18任一项所述的查询最大竞争力位置的动态监控系统,其特征在于,所述更新模块用于:
路网中设施点和客户点的更新可以归结为增加一个客户点(AddC(c)),减少一个客户点DelC(c),增加一个设施点AddF(f),减少一个设施点DelF(f)共四种基本操作;
当一个更新操作到来的时候,首先计算吸引距离会被更新所影响的客户点的集合Vc,如果操作是AddC(c)或DelC(c),则Vc={c};如果操作是AddF(f)或DelF(f),则Vc={c|<c,d(c,v)>∈A(f)};
对于每一个客户点c∈Vc,找出该客户点之前的吸引距离a0(c)和新的吸引距离a′(c),并建立两个集合
Figure FDA00003463576200121
U c - = { < v , d ( c , v ) > | d ( c , v ) < a 0 ( c ) } ;
对于每一个客户点c∈Vc,根据a0(c),a′(c),
Figure FDA00003463576200123
来更新所有已经被计算的子图中的每一条边e的局部最佳位置I以及对应的收益值m,令更新前的局部最佳位置以及对应的收益值分别为I0和m0
更新所有子图的收益值上限;
根据新的上限对所有子图进行从高到低排序,之后按这个顺序遍历所有子图:
对于被访问的子图,如果该子图未被计算,则初始计算该子图的局部最佳位置并获取对应收益值,如果该子图已被计算,则直接读取该子图的局部最佳位置和对应收益值;
如果在某一时刻当前获得的最大收益值已经大于下一个待访问子图的收益值上限,则停止遍历,将这个最大收益值对应的位置作为最大竞争力位置p;
对于未遍历到的子图,把其中已经计算的子图改为未计算,以为下一次更新做准备。
20.如权利要求9所述的查询最大竞争力位置的动态监控系统,其特征在于,已知更新前的局部最佳位置以及对应的收益值分别为I0和m0,所述更新模块用于:
初始化一个空的边集E1
对于E中的每条边e(vl,vr),如果<vl,d(c,vl)>和<vr,d(c,vr)>者至少有一个存在于UC+和UC-的并集中,则把e加入边集E1
对于边集E1中的每一条边e(vl,vr)执行如下过程:
初始化两个空的点集I+和I-,如果<vl,d(c,vl)>存在于
Figure FDA00003463576200137
中,但是<vr,d(c,vr)>不存在于
Figure FDA00003463576200131
中,则向I-中加入一条线段[0,a0(c)-d(c,vl)];如果<vl,d(c,vl)>不存在于
Figure FDA00003463576200132
中,但是<vr,d(c,vr)>存在于
Figure FDA00003463576200133
中,则向I-中加入一条线段[l-a0(c)-d(c,vr),l];如果<vl,d(c,vl)>和<vr,d(c,vr)>都存在于
Figure FDA00003463576200134
中,则如果l≤2a0(c)-d(c,vl)-d(c,vr),则向I-中加入一条线段[0,l],l>2a0(c)-d(c,vl)-d(c,vr),向I-中加入两条线段[0,a(c)-d(c,vl)]和[l-a(c)+d(c,vr),l];
与获取I-一样的方式,将
Figure FDA00003463576200135
换成
Figure FDA00003463576200136
a0(c)换成a′(c),类似地计算出I+
如果a0(c)<a′(c),则将一个临时的flag设为ADD,计算I′=I+-I-,否则,将flag设为DEL,计算I′=I--I+
如果I′为空集,则跳出本循环,访问边集E1中的下一条边e;
如果flag为ADD,则计算I=I0∩I′,如果I是空集,则重新初始化计算e上的I和m;否则,令m=m0+w(c);
如果flag为DEL,则如果I′=[0,l],则I=I0,m=m0-w(c);否则,计算I=I0-I′,如果I是空集,则重新初始化计算e上的I和m,如果I不是空集,令m=m0
令I和m为边e上新的局部最佳位置和对应的收益值。
CN201310280206.XA 2013-07-04 2013-07-04 查询最大竞争力位置的动态监控方法及系统 Expired - Fee Related CN103324748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310280206.XA CN103324748B (zh) 2013-07-04 2013-07-04 查询最大竞争力位置的动态监控方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310280206.XA CN103324748B (zh) 2013-07-04 2013-07-04 查询最大竞争力位置的动态监控方法及系统

Publications (2)

Publication Number Publication Date
CN103324748A true CN103324748A (zh) 2013-09-25
CN103324748B CN103324748B (zh) 2017-03-01

Family

ID=49193491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310280206.XA Expired - Fee Related CN103324748B (zh) 2013-07-04 2013-07-04 查询最大竞争力位置的动态监控方法及系统

Country Status (1)

Country Link
CN (1) CN103324748B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112308597A (zh) * 2020-08-14 2021-02-02 西安工程大学 一种在竞争环境中根据影响运动用户选择设施地址的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778184A (en) * 1996-06-28 1998-07-07 Mci Communications Corporation System method and computer program product for processing faults in a hierarchial network
CN101777049A (zh) * 2009-01-12 2010-07-14 联发科技(合肥)有限公司 在数据库中搜索位置数据集的方法及数据搜索系统
CN103106280A (zh) * 2013-02-22 2013-05-15 浙江大学 一种道路网络环境下不确定时空轨迹数据的范围查询方法
CN103336826A (zh) * 2013-07-04 2013-10-02 上海交通大学 查询最大竞争力位置的动态监控方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778184A (en) * 1996-06-28 1998-07-07 Mci Communications Corporation System method and computer program product for processing faults in a hierarchial network
CN101777049A (zh) * 2009-01-12 2010-07-14 联发科技(合肥)有限公司 在数据库中搜索位置数据集的方法及数据搜索系统
CN103106280A (zh) * 2013-02-22 2013-05-15 浙江大学 一种道路网络环境下不确定时空轨迹数据的范围查询方法
CN103336826A (zh) * 2013-07-04 2013-10-02 上海交通大学 查询最大竞争力位置的动态监控方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XIAOKUI XIAO 等: "Optimal Location Queries in Road Network Databases", 《DATA ENGINEERING(ICDE) CONFERENCE 2011》, 16 April 2011 (2011-04-16), pages 804 - 815, XP031868439, DOI: doi:10.1109/ICDE.2011.5767845 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112308597A (zh) * 2020-08-14 2021-02-02 西安工程大学 一种在竞争环境中根据影响运动用户选择设施地址的方法
CN112308597B (zh) * 2020-08-14 2023-07-18 西安工程大学 一种在竞争环境中根据影响运动用户选择设施地址的方法

Also Published As

Publication number Publication date
CN103324748B (zh) 2017-03-01

Similar Documents

Publication Publication Date Title
Luo et al. Finding time period-based most frequent path in big trajectory data
Fu et al. Continuous range-based skyline queries in road networks
Tiakas et al. Skyline queries: An introduction
CN105574541A (zh) 一种基于紧密度排序的网络社区发现方法
Nutanong et al. Memory-efficient algorithms for spatial network queries
Abeywickrama et al. Efficient Landmark-Based Candidate Generation for k NN Queries on Road Networks
Hershberger et al. Adaptive sampling for geometric problems over data streams
Cao et al. SHAREK*: A scalable matching method for dynamic ride sharing
Yi et al. View field nearest neighbor: A novel type of spatial queries
Hidayat et al. Continuous monitoring of moving skyline and top-k queries
CN103324748A (zh) 查询最大竞争力位置的动态监控方法及系统
Dong et al. Continuous search on dynamic spatial keyword objects
CN106372127B (zh) 基于Spark的大规模图数据的多样性图排序方法
CN103336826A (zh) 查询最大竞争力位置的动态监控方法及系统
CN103336823A (zh) 查询最小化最大距离位置的动态监控方法及系统
CN103345510A (zh) 查询最小距离和位置的动态监控方法及系统
CN103324747A (zh) 最小化最大距离位置的动态监控方法及系统
García-García et al. Efficient distributed algorithms for distance join queries in spark-based spatial analytics systems
CN103336824B (zh) 查询最小距离和位置的动态监控方法及系统
He et al. A Novel DBSCAN Based on Binary Local Sensitive Hashing and Binary‐KNN Representation
Xuan et al. Time constrained range search queries over moving objects in road networks
Wang et al. An efficient algorithm for spatio-textual location matching
Jiang et al. Efficient computation of continuous range skyline queries in road networks
Zhang et al. Mining related information of traffic flows on lanes by k-medoids
Xu et al. A heuristic approach to effective and efficient clustering on uncertain objects

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170301

Termination date: 20190704