專利名稱:基于空間密度聚類的并行式虛擬角色劃分方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種虛擬角色劃分方法,特別是一種基于空間密度聚類的虛擬角色劃分方法。
背景技術(shù):
分布式虛擬環(huán)境(DVE)系統(tǒng)是由不同地點的虛擬現(xiàn)實終端通過網(wǎng)絡(luò)共同生成一個逼真的虛擬世界。它可以讓這些不同地點的用戶參與到同一個虛擬環(huán)境中進行交互,即生成的虛擬角色(avatar)在虛擬環(huán)境中進行自由移動,并相互“交流”,獲取彼此間的狀態(tài)信息。關(guān)于DVE系統(tǒng)的架構(gòu)設(shè)計已日漸成熟,通常采用的是兩級層次架構(gòu)模型用來管理海量虛擬用戶的信息。其中一層架構(gòu)是,服務(wù)器端與服務(wù)器端之間進行通信,其目的是共享每個客戶端處的虛擬角色狀態(tài)信息的副本,使其他客戶端方便獲取其信息。另一層架構(gòu)是每個服務(wù)器分配有一定數(shù)量的用戶,并且負責管理這些用戶的虛擬角色,即:I響應(yīng)本地請求,將某一虛擬角色的狀態(tài)更新信息直接發(fā)送給本地其他用戶;II響應(yīng)其他服務(wù)器請求,將本地虛擬角色的狀態(tài)更新信息發(fā)送給其他服務(wù)器JII接收并轉(zhuǎn)發(fā)其他服務(wù)器傳送的虛擬角色狀態(tài)更新信息。由于網(wǎng)絡(luò)帶寬和服務(wù)器的負載能力有限,當分配到某一服務(wù)器端的用戶數(shù)量超過其閾值時,虛擬角色的狀態(tài)更新數(shù)據(jù)包的丟包率將大大增加。這將導致每個客戶端處虛擬環(huán)境的視圖不一致,從而影響了用戶的真實體驗。關(guān)聯(lián)過濾方法有效的緩解了這一狀況,即DVE系統(tǒng)中的每個虛擬角色都負責維護一個感興趣區(qū)(Α0Ι)。只有在同一個AOI區(qū)域內(nèi)的虛擬角色才進行“通信”,即服務(wù)器僅僅將虛擬角色的狀態(tài)更新數(shù)據(jù)包發(fā)送給該區(qū)域內(nèi)的用戶。這種方法有效的減少了服務(wù)器端的負載,并且相對提高了 DVE系統(tǒng)的運行效率。但是,在網(wǎng)絡(luò)背景下,通信延遲無法避免,再加上參與虛擬環(huán)境中的用戶數(shù)量瞬間增加,服務(wù)器超負荷工作,這就使得虛擬角色的狀態(tài)更新信息不能及時到達其他用戶那里,也就無法及時更新虛擬環(huán)境中的視圖,這與設(shè)計DVE系統(tǒng)的初衷是相背的。因此必須提出有效的機制來維持每個服務(wù)器的負載均衡,并且減少虛擬角色的位置移動而發(fā)生的不一致性事件。在此背景下,提出一種有效劃分動態(tài)虛擬角色的方法,即基于空間密度聚類的思想實現(xiàn)DVE系統(tǒng)中虛擬角色間的聚 類,然后根據(jù)聚類的大小和服務(wù)器的負載能力選取優(yōu)化的分配策略,從而實現(xiàn)保持服務(wù)器負載均衡以及減少視圖不一致性的目標。
發(fā)明內(nèi)容
本發(fā)明針對目前的技術(shù)的不足,提出一種基于空間密度聚類的優(yōu)化分配虛擬角色給服務(wù)器的劃分方法。本發(fā)明方法的大體思想是:
在初始化DVE系統(tǒng)環(huán)境階段,任何客戶端用戶都具有虛擬空間的初始化位置,此時采用基于空間距離的靜態(tài)多服務(wù)器劃分方法,即四叉樹劃分方法(Quadtree PartitionAlgorithm,簡稱QPA),將空間距離較近的用戶劃分到同一個服務(wù)器內(nèi)。由于初始化階段有大量的系統(tǒng)數(shù)據(jù)需要初始化,包含有環(huán)境參數(shù)資料錄入、用戶數(shù)據(jù)加入服務(wù)器、服務(wù)器參數(shù)初始化等等。因此,采用QPA方法能夠使得虛擬空間中歐幾里得距離較近的用戶盡可能的聚類到一起,并且把同一聚類中的用戶盡可能的分配到同一個服務(wù)器內(nèi)。這樣就盡可能的保證了這些虛擬角色間的通訊延遲較小,使整個虛擬現(xiàn)實系統(tǒng)的網(wǎng)絡(luò)質(zhì)量得以保證。QPA方法還具有的優(yōu)點是速度較快,能夠在定量時間復(fù)雜度的數(shù)量級下完成算法的執(zhí)行過程,這也就提高了 DVE系統(tǒng)的運行速度。在DVE系統(tǒng)運行階段,每時每刻系統(tǒng)的實時數(shù)據(jù)都可能會發(fā)生變化,即虛擬角色加入、退出系統(tǒng)、在線虛擬角色的移動和通信等等。此時采用基于密度聚類的動態(tài)多服務(wù)器劃分方法(Dynamic Cluster Algorithm,簡稱DCA)。此方法是對傳統(tǒng)的密度聚類算法DBSCAN和虛擬空間距離角度的區(qū)域劃分方法的進一步改進,即改進了 DBSCAN算法中關(guān)于虛擬角色的鄰域半徑閾值Eps和鄰近虛擬角色的數(shù)量閾值MinPts,并提出一種裁剪步的操作使待處理用戶規(guī)模大小降低。結(jié)合密度聚類的虛擬現(xiàn)實區(qū)域劃分方法(User ClusterAlgorithm,簡稱UCA),把虛擬現(xiàn)實環(huán)境中的所有虛擬角色通過聚類方法劃分為不同的多個聚類中。然后為解決服務(wù)器負載平衡問題,采用動態(tài)分配服務(wù)器方法(Dynamic AssignServer,簡稱DAS)將每個聚類中的用戶分配到同一個服務(wù)器中。當聚類中用戶個數(shù)大于對應(yīng)服務(wù)器負載能力時,判定哪些用戶為多余用戶,并將這些多余用戶再分配給其他“空閑”服務(wù)器。這樣合理和有效的解決了虛擬環(huán)境中運行階段應(yīng)用系統(tǒng)所期待的特點要求,同時縮短了用戶與服務(wù)器通信或與其他用戶通信時所需的等待時間。本發(fā)明方法的具體步驟是:
步驟(I)初始化DVE系統(tǒng)虛擬環(huán)境,包括2D空間區(qū)域的規(guī)格、虛擬角色的初始位置狀態(tài)、用戶的視窗范圍等。步驟(2)采用靜態(tài)多服務(wù)器劃分方法(即QPA方法)進行區(qū)域劃分,得到的一個四叉樹結(jié)構(gòu)模型,使每個四叉樹葉節(jié)點含有合適數(shù)量的虛擬角色。步驟(3)根據(jù)步驟(2)區(qū)域劃分得到的四叉樹模型結(jié)果,把已經(jīng)聚類好的用戶分配給多個服務(wù)器。步驟(4)系統(tǒng)運行階段,采用動態(tài)區(qū)域劃分方法(DCA)進行密度聚類;
步驟(5)采用動態(tài)分配服務(wù)器方法(DAS)將每個聚類中的用戶分配到相應(yīng)服務(wù)器中,并處理不滿足負載平衡條件的服務(wù)器,將多余用戶分配到最大剩余負載服務(wù)器中;
步驟(6)在系統(tǒng)的刷新周期T內(nèi),處理某一用戶進入、移動、離開所在服務(wù)器的情況,SP執(zhí)行步驟(4)和(5)。本發(fā)明的有益效果:該發(fā)明用于具有大規(guī)模用戶、基于多服務(wù)器架構(gòu)下的分布式虛擬環(huán)境中,比如大型商業(yè)在線游戲、軍事訓練及遠程教育等領(lǐng)域,用于維護其虛擬角色之間視圖的一致性。該發(fā)明采用空間密度聚類方法將適量的虛擬角色劃分給服務(wù)器,從而及時響應(yīng)客戶端的各類請求信息,有效地減少虛擬角色之間的視圖不一致性事件,并使服務(wù)器端的負載達到均衡。
具體實施例方式相關(guān)概念定義及符號說明 O1:表示第i個虛擬角色,包含自身信息和服務(wù)器信息;s1:表不第i個服務(wù)器,包含自身信息和虛擬角色的信息;
Γ:表示系統(tǒng)刷新周期;
。麗:表示空間數(shù)據(jù)庫DB的虛擬角色集合;
Sm:表示空間數(shù)據(jù)庫DB的服務(wù)器集合;
過LC1:表不服務(wù)器的負載能力;
柳:表示時間戳t時的虛擬角色i的移動速度信息;
AOI ()表示虛擬角色Oi的視窗信息;
AOM( Oi ):表示虛擬角色A移動可見興趣區(qū)域;
Q:表示第i個聚類,包含聚類中所有的虛擬角色信息;
C(Pi):表示虛擬角色A的聚類數(shù)據(jù);
InE ( Oi ):表示虛擬角色4發(fā)生不一致性事件的次數(shù);
本發(fā)明所提供的基于空間密度聚類的優(yōu)化分配用戶給服務(wù)器的劃分方法的具體實施步驟如下:
(1)初始化DVE系統(tǒng)虛擬環(huán)境,具體工作如下:
(1.1)初始化虛擬環(huán)境2D空間區(qū)域的大小為η*η (η為事先設(shè)定的值);
(1.2)根據(jù)空間虛擬角色集合初始化虛擬角色的初始位置狀態(tài)o(x,y);
(1.3)初始化虛擬角色AOI區(qū)域半徑R的值,并計算虛擬角色A的視窗范圍大小,即
AOI ()=戒2 ;
(2)采用靜態(tài)多服務(wù)器劃分方法(即QPA方法)進行區(qū)域劃分,具體工作如下:
(2.1)根據(jù)虛擬環(huán)境2D空間區(qū)域中虛擬角色的位置信息均勻劃分(長與寬對半折)該區(qū)域,過程如下:
(2.2)統(tǒng)計四叉樹根節(jié)點i (原空間區(qū)域視為根節(jié)點)包含的用戶個數(shù)% ;
(2.3)判斷劃分終止條件為虛擬區(qū)域中包含的虛擬角色數(shù)為O、或虛擬區(qū)域的直徑大小為R ;如果不滿足此條件,將原空間區(qū)域劃分為四個面積相同的區(qū)域,此時,該四叉樹節(jié)點對應(yīng)四個子節(jié)點;
(2.4)遞歸操作步驟(2.3),直至滿足終止條件。(3)根據(jù)步驟(2)區(qū)域劃分得到的虛擬區(qū)域四叉樹模型結(jié)果,把相應(yīng)的虛擬角色分配給多個服務(wù)器,過程如下:
(3.1)掃描四叉樹模型的葉子節(jié)點并由左到右的順序鏈接,保存掃描得到的葉子節(jié)點,直到四叉樹所有葉子節(jié)點均已掃描完畢;
(3.2)將葉子節(jié)點所代表的虛擬區(qū)域、及其相鄰區(qū)域中的虛擬角色劃分給同一個聚
類:劃分過程中判斷是否滿足負載平衡的條件h,如果滿足此條件,那么就繼續(xù)針
對當前服務(wù)器的虛擬角色分配;如果不滿足此條件,需要把虛擬角色分配給新的空閑服務(wù)器。
(3.4)循環(huán)執(zhí)行以上兩步,直至所有用戶分配完成。然后標識這些虛擬角色所在的聚類號;
(4)系統(tǒng)運行階段,采用動態(tài)區(qū)域劃分方法(DCA)進行密度聚類,具體工作如下:
(4.1)系統(tǒng)計算并設(shè)置虛擬角色的鄰域面積閾值和鄰近虛擬角色的數(shù)量閾值MinPts,
即用戶q移動可見域為
權(quán)利要求
1.基于空間密度聚類的并行式虛擬角色劃分方法,其特征在于該方法的具體步驟:步驟(I)初始化DVE系統(tǒng)虛擬環(huán)境,包括2D空間區(qū)域的規(guī)格、虛擬角色的初始位置狀態(tài)、虛擬角色的視窗范圍; 步驟(2)采用靜態(tài)多服務(wù)器劃分方法進行區(qū)域劃分,得到的一個四叉樹結(jié)構(gòu)模型,使每個四叉樹葉節(jié)點含有合適數(shù)量的虛擬角色; 步驟(3)根據(jù)步驟(2)區(qū)域劃分得到的四叉樹結(jié)構(gòu)模型結(jié)果,把位于同一虛擬區(qū)域或鄰近虛擬區(qū)域的虛擬角色劃分給同一個服務(wù)器; 步驟(4)處理服務(wù)器負載均衡,即當前服務(wù)器已經(jīng)達到負載能力范圍后,將其它虛擬角色分配給新的、空閑服務(wù)器; 步驟(5)系統(tǒng)運行階段,根據(jù)系統(tǒng)計算并設(shè)置的虛擬角色鄰域范圍閾值和鄰近虛擬角色的數(shù)量閾值MinPts以及裁剪步操作,采用動態(tài)區(qū)域劃分方法進行密度聚類; 步驟(6)采用動態(tài)分配服務(wù)器方法將每個聚類中的用戶分配到相應(yīng)服務(wù)器中,并處理不滿足負載平衡條件的服務(wù)器,將多余用戶分配到空閑服務(wù)器中; 步驟(7)在系統(tǒng)的刷新周期T內(nèi),當某虛擬角色進入、移動、離開所在服務(wù)器時,執(zhí)行步驟(4)和步驟(5) 。
全文摘要
本發(fā)明公開了基于空間密度聚類的并行式虛擬角色劃分方法。本發(fā)明首先初始化DVE系統(tǒng)虛擬環(huán)境,采用靜態(tài)多服務(wù)器劃分方法進行區(qū)域劃分,得到的一個四叉樹結(jié)構(gòu)模型。其次把已經(jīng)聚類好的用戶分配給多個服務(wù)器。然后在系統(tǒng)運行階段,采用動態(tài)區(qū)域劃分方法進行密度聚類;最后采用動態(tài)分配服務(wù)器方法將每個聚類中的用戶分配到相應(yīng)服務(wù)器中,并處理不滿足負載平衡條件的服務(wù)器,將多余用戶分配到最大剩余負載服務(wù)器中。該發(fā)明采用空間密度聚類方法將適量的虛擬角色劃分給服務(wù)器,從而及時響應(yīng)客戶端的各類請求信息,有效地減少虛擬角色之間的視圖不一致性事件,并使服務(wù)器端的負載達到均衡。
文檔編號G06F9/50GK103218265SQ20131016186
公開日2013年7月24日 申請日期2013年5月6日 優(yōu)先權(quán)日2013年5月6日
發(fā)明者胡海洋, 許旭, 胡華, 李濤 申請人:杭州電子科技大學