本發(fā)明涉及一種查詢最小距離和位置的動態(tài)監(jiān)控方法及系統(tǒng)。
背景技術:
在過去幾年中,有很多工作研究一類在存在客戶點集合的情況下的“設施放置問題”(參見文獻8:Farahani,R.Z.,Hekmatfar,M.:FacilityLocation:Concepts,Models,AlgorithmsandCaseStudies,1stedn.Physica-VerlagHD(2009),文獻15:Nickel,S.,Puerto,J.:LocationTheory:AUnifiedApproach,1stedn.Springer(2005))。在最普遍的情況下,問題包含:(1)一個客戶點的集合C和一個設施點候選集合P,并(2)在P中查詢k個新設施點的位置從而滿足一個事先定義的最佳條件。這類問題在k是常數(shù)的情況下存在多項式時間內的算法,在k是一般變量的情況下是NP-hard問題(參見文獻8和15),已經存在的工作主要研究其近似算法。最佳位置查詢問題可以被看做設施放置問題的一個變種,首先P是一個無限集合;然后通常k=1,也就是說只需要為新建一個設施點來選取位置;最后通常事先已經擁有了一個設施點集合F。以上這些是最佳位置查詢問題相對于一般的“設施放置問題”的不同點。之前的最佳位置查詢問題的研究工作(參見文獻2:Cabello,S.,J.M.,Langerman,S.,Seara,C.,Ventura,I.:Reversefacilitylocationproblems.In:CCCG,pp.68–71(2005),文獻6:Du,Y.,Zhang,D.,Xia,T.:Theoptimal-locationquery.In:SSTD,pp.163–180(2005),文獻21:Wong,R.C.W.,¨Ozsu,T.,Yu,P.S.,Fu,A.W.C.,Liu,L.:Efficientmethodformaximizingbichromaticreversenearestneighbor.PVLDB2(1),1126–1137(2009),文獻24:Zhang,D.,Du,Y.,Xia,T.,Tao,Y.:Progressivecomputationofthemin-distoptimal-locationquery.In:VLDB,pp.643–654(2006))中考慮的是設施點和客戶點之間在Lp空間中的距離。其中Cabello等人(參見文獻2)和Wong等人(參見文獻21)的研究是基于L2空間的,而Du等人(參見文獻6)和Zhang等人(參見文獻24)的研究是基于L1空間的。這些工作并沒有研究最佳位置查詢問題在路網中的情況?,F(xiàn)有的研究工作中包括另外兩種與設施點的位置選取有關的問題:單設施點查詢問題(參見文獻8和15)以及設施點實時建立問題(參見文獻9:Fotakis,D.:Incrementalalgorithmsforfacilitylocationandkmedian.Theor.Comput.Sci.361(2-3),275–313(2006),文獻13:Meyerson,A.:Onlinefacilitylocation.In:FOCS,pp.426–431(2001)),這兩種問題研究內容與最佳位置查詢問題類似但是有所不同。單設施點查詢問題研究的是,給定一個客戶點的集合,尋找一個設施建立點從而滿足一個最佳條件,在這個問題里,輸入數(shù)據(jù)中沒有已經建立的設施點集合,然而在最佳位置查詢問題里,需要考慮一個已有的設施點的集合。設施點實時建立問題研究的是,隨著客戶點的不斷增加,實時選取位置建立新的設施點來滿足一個給定的優(yōu)化條件,與最佳位置查詢問題相似的是,這類問題在尋找新的設施點時,也考慮已有的設施點集合,然而[9]和[13]所采用的方法并不能解決最佳位置查詢問題,這是因為在設施點實時建立問題中,建立新設施點的候選地點是一個有限的集合,但是在最佳位置查詢問題中,建立新設施點的候選地點是一個無限的集合,例如Lp空間中的所有地點或是路網中的所有邊上的所有地點的集合。在我們之前的研究工作中我們提出了靜態(tài)一次查詢路網中最佳位置的方法(參見文獻22:Xiao,X.,Yao,B.,Li,F.:Optimallocationqueriesinroadnetworkdatabases.In:ICDE,pp.804–815(2011)),與那篇文章相比,我們的發(fā)明提出了新的動態(tài)維護路網中最佳位置的解決方案,并為三個不同的最佳位置查詢問題設計了具體的實現(xiàn)方法。最后,現(xiàn)有的研究工作中存在著很多關于路網數(shù)據(jù)庫中查詢方法的研究(參見3:Chen,Z.,Shen,H.T.,Zhou,X.,Yu,J.X.:Monitoringpathnearestneighborinroadnetworks.In:SIGMOD,pp.591–602(2009),文獻4:Deng,K.,Zhou,X.,Shen,H.T.,Sadiq,S.,Li,X.:Instanceoptimalqueryprocessinginspatialnetworks.VLDBJ18(3),675–693(2009),文獻11:Jensen,C.S.,Kol′aˇrvr,J.,Pedersen,T.B.,Timko,I.:Nearestneighborqueriesinroadnetworks.In:GIS,pp.1–8(2003),文獻12:Kolahdouzan,M.R.,Shahabi,C.:Voronoi-basedk-nearestneighborsearchforspatialnetworkdatabases.In:VLDB,pp.840–851(2004),文獻14:Mouratidis,K.,Yiu,M.L.,Papadias,D.,Mamoulis,N.:Continuousnearestneighbormonitoringinroadnetworks.In:VLDB,pp.43–54(2006),文獻16:Papadias,D.,Zhang,J.,Mamoulis,N.,Tao,Y.:Queryprocessinginspatialnetworkdatabases.In:VLDB,pp.802–813(2003),文獻17:Samet,H.,Sankaranarayanan,J.,Alborzi,H.:Scalablenetworkdistancebrowsinginspatialdatabases.In:SIGMOD,pp.43–54(2008),文獻18:Sankaranarayanan,J.,Samet,H.:Distanceoraclesforspatialnetworks.In:ICDE,pp.652–663(2009),文獻19:Sankaranarayanan,J.,Samet,H.,Alborzi,H.:Pathoraclesforspatialnetworks.PVLDB2(1),1210–1221(2009),文獻23:Yiu,M.L.,Mamoulis,N.,Papadias,D.:Aggregatenearestneighborqueriesinroadnetworks.TKDE17(6),820–833(2005))。然而這些研究工作都是關注路網數(shù)據(jù)庫中最近點的查詢(參見文獻12、16和17)及其變種:最近點近似查詢(參見文獻18和19)、聚合查詢(參見文獻23),連續(xù)最近點查詢(參見文獻14),路徑最近點查詢(參見文獻3)等等。這些研究工作中的技術并不能解決最佳位置查詢問題,因為最近點查詢問題與最佳位置查詢問題在本質上是有所不同的。另外,本發(fā)明相關的參考文獻還包括如下:文獻1:deBerg,M.,Cheong,O.,vanKreveld,M.,Overmars,M.:ComputationalGeometry:AlgorithmsandApplications,3rdedn.Springer-Verlag(2008);文獻5:Dijkstra,E.W.:Anoteontwoproblemsinconnexionwithgraphs.NumerischeMathematik1,269–271(1959);文獻7:Erwig,M.,Hagen,F.:Thegraphvoronoidiagramwithapplications.Networks36,156–163(2000);文獻10:Hershberger,J.:Findingtheupperenvelopeofnlinesegmentsino(nlogn)time.Inf.Process.Lett.33(4),169–174(1989);文獻20:Shekhar,S.,Liu,D.R.:CCAM:Aconnectivity-clusteredaccessmethodfornetworksandnetworkcomputations.TKDE9(1),102–119(1997)。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種查詢最小距離和位置的動態(tài)監(jiān)控方法及系統(tǒng),能夠快速和動態(tài)地查詢最小距離和位置。為解決上述問題,本發(fā)明提供一種查詢最小距離和位置的動態(tài)監(jiān)控方法,包括:給定一個客戶點的集合C和一個設施點的集合F,以及一個候選位置集合P,最小距離和位置為其中為客戶點c的加權吸引距離,w(c)是客戶點c的權重,如果客戶點c和設施點f在道路網絡中的距離d(c,f)是c和F中的點的極小值,則定義f是c的吸引者,c被f吸引,a(c)=d(c,f)為c的吸引距離;根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p;根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控p。進一步的,在上述方法中,根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p的步驟包括:通過向表示路網的無向連通圖Go=(Vo,Eo)插入所有的設施點f和客戶點c來將Eo中的邊劃分成新的邊,對于每一個點ρ∈C∪F,先考慮ρ所在的邊e∈Eo,令e的兩個端點為vl和vr,然后將e分為兩部分即從vl到ρ和從ρ到vr,以使ρ成為無向連通圖的一個新頂點,加入所有的新頂點以生成了一個新的無向連通圖G=(V,E),且V=Vo∪C∪F;對于每一條邊e∈Ec初始化計算其局部最佳位置I以及對應的收益值m,其中,Ec為包含候選位置集合P中所有點的邊的集合,某個位置σ的收益值為局部最佳位置I為邊e上所有具有最大收益值的點集合;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最大競爭力位置p。進一步的,在上述方法中,對于每一條邊e∈Ec初始化計算其局部最佳位置I以及對應的收益值m的步驟包括:通過Erwig和Hagen的算法來計算G中每一個頂點v的最近設施點f以及距離d(v,f);分別計算e的兩個端點vl和vr的吸引集合A(vl)和A(vr),其中,給定一個頂點v,A(v)是包含v能吸引到的所有客戶點c以及對應距離d(c,v)的集合;根據(jù)已經計算出的A(vl)和A(vr)計算e的局部最佳位置I以及對應的收益值m。進一步的,在上述方法中,已知一個頂點v,A(v)通過如下步驟獲?。撼跏蓟疉(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′為端點的邊。進一步的,在上述方法中,根據(jù)已經計算出的A(vl)和A(vr)計算e的局部最佳位置I以及對應的收益值m的步驟包括:計算e的兩個端點的收益值;如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。進一步的,在上述方法中,根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控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),并建立兩個集合和對于每一個客戶點c∈Vc,根據(jù)a0(c),a'(c),來更新每一條邊e的局部最佳位置I以及對應的收益值m,令更新前的局部最佳位置以及對應的收益值分別為I0和m0;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最小距離和位置p。進一步的,在上述方法中,已知更新前的局部最佳位置以及對應的收益值分別為I0和m0,根據(jù)a0(c),a'(c),來更新每一條邊e的局部最佳位置I以及對應的收益值m的步驟包括:建立一個頂點集合對于S中的每個頂點v:如果并且則設定m(v)=m(v)-w(c)(a0(c)-d(v,c));如果并且則設定m(v)=m(v)+w(c)(a′(c)-d(v,c));如果和都成立,則設定m(v)=m(v)+w(c)(a′(c)-a0(c));其中m(v)表示頂點v的收益值;對于每一條邊e,如果e的兩個端點的收益值中至少一個發(fā)生變化:讀取e的兩個端點更新后的收益值,如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。根據(jù)本發(fā)明的另一面,提供一種查詢最小距離和位置的動態(tài)監(jiān)控系統(tǒng),包括:定義模塊,用于給定一個客戶點的集合C和一個設施點的集合F,以及一個候選位置集合P,最小距離和位置為其中為客戶點c的加權吸引距離,w(c)是客戶點c的權重,如果客戶點c和設施點f在道路網絡中的距離d(c,f)是c和F中的點的極小值,則定義f是c的吸引者,c被f吸引,a(c)=d(c,f)為c的吸引距離;獲取模塊,用于根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p;更新模塊,用于根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控p。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:通過向表示路網的無向連通圖Go=(Vo,Eo)插入所有的設施點f和客戶點c來將Eo中的邊劃分成新的邊,對于每一個點ρ∈C∪F,先考慮ρ所在的邊e∈Eo,令e的兩個端點為vl和vr,然后將e分為兩部分即從vl到ρ和從ρ到vr,以使ρ成為無向連通圖的一個新頂點,加入所有的新頂點以生成了一個新的無向連通圖G=(V,E),且V=Vo∪C∪F;對于每一條邊e∈Ec初始化計算其局部最佳位置I以及對應的收益值m,其中,Ec為包含候選位置集合P中所有點的邊的集合,某個位置σ的收益值為局部最佳位置I為邊e上所有具有最大收益值的點集合;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最大競爭力位置p。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:通過Erwig和Hagen的算法來計算G中每一個頂點v的最近設施點f以及距離d(v,f);分別計算e的兩個端點vl和vr的吸引集合A(vl)和A(vr),其中,給定一個頂點v,A(v)是包含v能吸引到的所有客戶點c以及對應距離d(c,v)的集合;根據(jù)已經計算出的A(vl)和A(vr)計算e的局部最佳位置I以及對應的收益值m。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:初始化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′為端點的邊。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:計算e的兩個端點的收益值;如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。進一步的,在上述系統(tǒng)中,所述更新模塊用于:路網中設施點和客戶點的更新可以歸結為增加一個客戶點(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),并建立兩個集合和對于每一個客戶點c∈Vc,根據(jù)a0(c),a'(c),來更新每一條邊e的局部最佳位置I以及對應的收益值m,令更新前的局部最佳位置以及對應的收益值分別為I0和m0;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最小距離和位置p。進一步的,在上述系統(tǒng)中,已知更新前的局部最佳位置以及對應的收益值分別為I0和m0,所述更新模塊用于:建立一個頂點集合對于S中的每個頂點v:如果并且則設定m(v)=m(v)-w(c)(a0(c)-d(v,c));如果并且則設定m(v)=m(v)+w(c)(a′(c)-d(v,c));如果和都成立,則設定m(v)=m(v)+w(c)(a′(c)-a0(c));其中m(v)表示頂點v的收益值;對于每一條邊e,如果e的兩個端點的收益值中至少一個發(fā)生變化:讀取e的兩個端點更新后的收益值,如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。與現(xiàn)有技術相比,本發(fā)明通過給定一個客戶點的集合C和一個設施點的集合F,以及一個候選位置集合P,最小距離和位置為其中為客戶點c的加權吸引距離,w(c)是客戶點c的權重,如果客戶點c和設施點f在道路網絡中的距離d(c,f)是c和F中的點的極小值,則定義f是c的吸引者,c被f吸引,a(c)=d(c,f)為c的吸引距離;根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p;根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控p,能夠快速和動態(tài)地查詢最小距離和位置。附圖說明圖1是本發(fā)明一實施例的查詢最小距離和位置的動態(tài)監(jiān)控方法的流程圖。具體實施方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。實施例一如圖1所示,本發(fā)明提供一種查詢最小距離和位置的動態(tài)監(jiān)控方法,包括步驟S1至步驟S3。步驟S1,給定一個客戶點的集合C和一個設施點的集合F,以及一個候選位置集合P,最小距離和位置為其中為客戶點c的加權吸引距離,w(c)是客戶點c的權重,如果客戶點c和設施點f在道路網絡中的距離d(c,f)是c和F中的點的極小值,則定義f是c的吸引者,c被f吸引,a(c)=d(c,f)為c的吸引距離;步驟S2,根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p;優(yōu)選的,步驟S2包括:根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p的步驟包括:通過向表示路網的無向連通圖Go=(Vo,Eo)插入所有的設施點f和客戶點c來將Eo中的邊劃分成新的邊,對于每一個點ρ∈C∪F,先考慮ρ所在的邊e∈Eo,令e的兩個端點為vl和vr,然后將e分為兩部分即從vl到ρ和從ρ到vr,以使ρ成為無向連通圖的一個新頂點,加入所有的新頂點以生成了一個新的無向連通圖G=(V,E),且V=Vo∪C∪F;對于每一條邊e∈Ec初始化計算其局部最佳位置I以及對應的收益值m,其中,Ec為包含候選位置集合P中所有點的邊的集合,某個位置σ的收益值為局部最佳位置I為邊e上所有具有最大收益值的點集合;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最大競爭力位置p。較佳的,對于每一條邊e∈Ec初始化計算其局部最佳位置I以及對應的收益值m的步驟包括:通過Erwig和Hagen的算法來計算G中每一個頂點v的最近設施點f以及距離d(v,f);分別計算e的兩個端點vl和vr的吸引集合A(vl)和A(vr),其中,給定一個頂點v,A(v)是包含v能吸引到的所有客戶點c以及對應距離d(c,v)的集合;根據(jù)已經計算出的A(vl)和A(vr)計算e的局部最佳位置I以及對應的收益值m。較佳的,已知一個頂點v,A(v)通過如下步驟獲?。撼跏蓟疉(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′為端點的邊。較佳的,根據(jù)已經計算出的A(vl)和A(vr)計算e的局部最佳位置I以及對應的收益值m的步驟包括:計算e的兩個端點的收益值;如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。步驟S3,根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控p。優(yōu)選的,步驟S3包括:根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控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),并建立兩個集合和對于每一個客戶點c∈Vc,根據(jù)a0(c),a'(c),來更新每一條邊e的局部最佳位置I以及對應的收益值m,令更新前的局部最佳位置以及對應的收益值分別為I0和m0;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最小距離和位置p。較佳的,已知更新前的局部最佳位置以及對應的收益值分別為I0和m0,根據(jù)a0(c),a'(c),來更新每一條邊e的局部最佳位置I以及對應的收益值m的步驟包括:建立一個頂點集合對于S中的每個頂點v:如果并且則設定m(v)=m(v)-w(c)(a0(c)-d(v,c));如果并且則設定m(v)=m(v)+w(c)(a′(c)-d(v,c));如果和都成立,則設定m(v)=m(v)+w(c)(a′(c)-a0(c));其中m(v)表示頂點v的收益值;對于每一條邊e,如果e的兩個端點的收益值中至少一個發(fā)生變化:讀取e的兩個端點更新后的收益值,如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。實施例二本發(fā)明還提供另一種查詢最小距離和位置的動態(tài)監(jiān)控系統(tǒng),包括:定義模塊,用于給定一個客戶點的集合C和一個設施點的集合F,以及一個候選位置集合P,最小距離和位置為其中為客戶點c的加權吸引距離,w(c)是客戶點c的權重,如果客戶點c和設施點f在道路網絡中的距離d(c,f)是c和F中的點的極小值,則定義f是c的吸引者,c被f吸引,a(c)=d(c,f)為c的吸引距離;獲取模塊,用于根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p;更新模塊,用于根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控p。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:通過向表示路網的無向連通圖Go=(Vo,Eo)插入所有的設施點f和客戶點c來將Eo中的邊劃分成新的邊,對于每一個點ρ∈C∪F,先考慮ρ所在的邊e∈Eo,令e的兩個端點為vl和vr,然后將e分為兩部分即從vl到ρ和從ρ到vr,以使ρ成為無向連通圖的一個新頂點,加入所有的新頂點以生成了一個新的無向連通圖G=(V,E),且V=Vo∪C∪F;對于每一條邊e∈Ec初始化計算其局部最佳位置I以及對應的收益值m,其中,Ec為包含候選位置集合P中所有點的邊的集合,某個位置σ的收益值為局部最佳位置I為邊e上所有具有最大收益值的點集合;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最大競爭力位置p。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:通過Erwig和Hagen的算法來計算G中每一個頂點v的最近設施點f以及距離d(v,f);分別計算e的兩個端點vl和vr的吸引集合A(vl)和A(vr),其中,給定一個頂點v,A(v)是包含v能吸引到的所有客戶點c以及對應距離d(c,v)的集合;根據(jù)已經計算出的A(vl)和A(vr)計算e的局部最佳位置I以及對應的收益值m。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:初始化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′為端點的邊。進一步的,在上述系統(tǒng)中,所述獲取模塊用于:計算e的兩個端點的收益值;如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。進一步的,在上述系統(tǒng)中,所述更新模塊用于:路網中設施點和客戶點的更新可以歸結為增加一個客戶點(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),并建立兩個集合和對于每一個客戶點c∈Vc,根據(jù)a0(c),a'(c),來更新每一條邊e的局部最佳位置I以及對應的收益值m,令更新前的局部最佳位置以及對應的收益值分別為I0和m0;根據(jù)所有邊上的局部最佳位置I選出對應的收益值m最大的作為最小距離和位置p。進一步的,在上述系統(tǒng)中,已知更新前的局部最佳位置以及對應的收益值分別為I0和m0,所述更新模塊用于:建立一個頂點集合對于S中的每個頂點v:如果并且則設定m(v)=m(v)-w(c)(a0(c)-d(v,c));如果并且則設定m(v)=m(v)+w(c)(a′(c)-d(v,c));如果和都成立,則設定m(v)=m(v)+w(c)(a′(c)-a0(c));其中m(v)表示頂點v的收益值;對于每一條邊e,如果e的兩個端點的收益值中至少一個發(fā)生變化:讀取e的兩個端點更新后的收益值,如果兩個端點的收益值不同,則返回收益值較大的那個端點作為e的局部最佳位置I,兩個收益值中較大的作為e的對應收益值m;否則,將這兩個相等的收益值作為e的對應收益值m,并考察e的中點的收益值,如果比端點收益值小,則將兩個端點作為e的局部最佳位置I,如果e的中點的收益值與兩個端點的收益值相等,則把整條邊e都作為局部最佳位置I。實施例二的其它詳細內容具體可參見實施例一,在此不再贅述。本發(fā)明通過給定一個客戶點的集合C和一個設施點的集合F,以及一個候選位置集合P,最小距離和位置為其中為客戶點c的加權吸引距離,w(c)是客戶點c的權重,如果客戶點c和設施點f在道路網絡中的距離d(c,f)是c和F中的點的極小值,則定義f是c的吸引者,c被f吸引,a(c)=d(c,f)為c的吸引距離;根據(jù)路網中初始的設施點集合F和客戶點集合C獲取p;根據(jù)路網中設施點集合F或客戶點集合C發(fā)生的更新隨時動態(tài)監(jiān)控p,能夠快速和動態(tài)地查詢最小距離和位置。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統(tǒng)而言,由于與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。專業(yè)人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。顯然,本領域的技術人員可以對發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包括這些改動和變型在內。