专利名称:基于空间密度聚类的并行式虚拟角色划分方法
技术领域:
本发明涉及一种虚拟角色划分方法,特别是一种基于空间密度聚类的虚拟角色划分方法。
背景技术:
分布式虚拟环境(DVE)系统是由不同地点的虚拟现实终端通过网络共同生成一个逼真的虚拟世界。它可以让这些不同地点的用户参与到同一个虚拟环境中进行交互,即生成的虚拟角色(avatar)在虚拟环境中进行自由移动,并相互“交流”,获取彼此间的状态信息。关于DVE系统的架构设计已日渐成熟,通常采用的是两级层次架构模型用来管理海量虚拟用户的信息。其中一层架构是,服务器端与服务器端之间进行通信,其目的是共享每个客户端处的虚拟角色状态信息的副本,使其他客户端方便获取其信息。另一层架构是每个服务器分配有一定数量的用户,并且负责管理这些用户的虚拟角色,即:I响应本地请求,将某一虚拟角色的状态更新信息直接发送给本地其他用户;II响应其他服务器请求,将本地虚拟角色的状态更新信息发送给其他服务器JII接收并转发其他服务器传送的虚拟角色状态更新信息。由于网络带宽和服务器的负载能力有限,当分配到某一服务器端的用户数量超过其阈值时,虚拟角色的状态更新数据包的丢包率将大大增加。这将导致每个客户端处虚拟环境的视图不一致,从而影响了用户的真实体验。关联过滤方法有效的缓解了这一状况,即DVE系统中的每个虚拟角色都负责维护一个感兴趣区(Α0Ι)。只有在同一个AOI区域内的虚拟角色才进行“通信”,即服务器仅仅将虚拟角色的状态更新数据包发送给该区域内的用户。这种方法有效的减少了服务器端的负载,并且相对提高了 DVE系统的运行效率。但是,在网络背景下,通信延迟无法避免,再加上参与虚拟环境中的用户数量瞬间增加,服务器超负荷工作,这就使得虚拟角色的状态更新信息不能及时到达其他用户那里,也就无法及时更新虚拟环境中的视图,这与设计DVE系统的初衷是相背的。因此必须提出有效的机制来维持每个服务器的负载均衡,并且减少虚拟角色的位置移动而发生的不一致性事件。在此背景下,提出一种有效划分动态虚拟角色的方法,即基于空间密度聚类的思想实现DVE系统中虚拟角色间的聚 类,然后根据聚类的大小和服务器的负载能力选取优化的分配策略,从而实现保持服务器负载均衡以及减少视图不一致性的目标。
发明内容
本发明针对目前的技术的不足,提出一种基于空间密度聚类的优化分配虚拟角色给服务器的划分方法。本发明方法的大体思想是:
在初始化DVE系统环境阶段,任何客户端用户都具有虚拟空间的初始化位置,此时采用基于空间距离的静态多服务器划分方法,即四叉树划分方法(Quadtree PartitionAlgorithm,简称QPA),将空间距离较近的用户划分到同一个服务器内。由于初始化阶段有大量的系统数据需要初始化,包含有环境参数资料录入、用户数据加入服务器、服务器参数初始化等等。因此,采用QPA方法能够使得虚拟空间中欧几里得距离较近的用户尽可能的聚类到一起,并且把同一聚类中的用户尽可能的分配到同一个服务器内。这样就尽可能的保证了这些虚拟角色间的通讯延迟较小,使整个虚拟现实系统的网络质量得以保证。QPA方法还具有的优点是速度较快,能够在定量时间复杂度的数量级下完成算法的执行过程,这也就提高了 DVE系统的运行速度。在DVE系统运行阶段,每时每刻系统的实时数据都可能会发生变化,即虚拟角色加入、退出系统、在线虚拟角色的移动和通信等等。此时采用基于密度聚类的动态多服务器划分方法(Dynamic Cluster Algorithm,简称DCA)。此方法是对传统的密度聚类算法DBSCAN和虚拟空间距离角度的区域划分方法的进一步改进,即改进了 DBSCAN算法中关于虚拟角色的邻域半径阈值Eps和邻近虚拟角色的数量阈值MinPts,并提出一种裁剪步的操作使待处理用户规模大小降低。结合密度聚类的虚拟现实区域划分方法(User ClusterAlgorithm,简称UCA),把虚拟现实环境中的所有虚拟角色通过聚类方法划分为不同的多个聚类中。然后为解决服务器负载平衡问题,采用动态分配服务器方法(Dynamic AssignServer,简称DAS)将每个聚类中的用户分配到同一个服务器中。当聚类中用户个数大于对应服务器负载能力时,判定哪些用户为多余用户,并将这些多余用户再分配给其他“空闲”服务器。这样合理和有效的解决了虚拟环境中运行阶段应用系统所期待的特点要求,同时缩短了用户与服务器通信或与其他用户通信时所需的等待时间。本发明方法的具体步骤是:
步骤(I)初始化DVE系统虚拟环境,包括2D空间区域的规格、虚拟角色的初始位置状态、用户的视窗范围等。步骤(2)采用静态多服务器划分方法(即QPA方法)进行区域划分,得到的一个四叉树结构模型,使每个四叉树叶节点含有合适数量的虚拟角色。步骤(3)根据步骤(2)区域划分得到的四叉树模型结果,把已经聚类好的用户分配给多个服务器。步骤(4)系统运行阶段,采用动态区域划分方法(DCA)进行密度聚类;
步骤(5)采用动态分配服务器方法(DAS)将每个聚类中的用户分配到相应服务器中,并处理不满足负载平衡条件的服务器,将多余用户分配到最大剩余负载服务器中;
步骤(6)在系统的刷新周期T内,处理某一用户进入、移动、离开所在服务器的情况,SP执行步骤(4)和(5)。本发明的有益效果:该发明用于具有大规模用户、基于多服务器架构下的分布式虚拟环境中,比如大型商业在线游戏、军事训练及远程教育等领域,用于维护其虚拟角色之间视图的一致性。该发明采用空间密度聚类方法将适量的虚拟角色划分给服务器,从而及时响应客户端的各类请求信息,有效地减少虚拟角色之间的视图不一致性事件,并使服务器端的负载达到均衡。
具体实施例方式相关概念定义及符号说明 O1:表示第i个虚拟角色,包含自身信息和服务器信息;s1:表不第i个服务器,包含自身信息和虚拟角色的信息;
Γ:表示系统刷新周期;
。麗:表示空间数据库DB的虚拟角色集合;
Sm:表示空间数据库DB的服务器集合;
过LC1:表不服务器的负载能力;
柳:表示时间戳t时的虚拟角色i的移动速度信息;
AOI ()表示虚拟角色Oi的视窗信息;
AOM( Oi ):表示虚拟角色A移动可见兴趣区域;
Q:表示第i个聚类,包含聚类中所有的虚拟角色信息;
C(Pi):表示虚拟角色A的聚类数据;
InE ( Oi ):表示虚拟角色4发生不一致性事件的次数;
本发明所提供的基于空间密度聚类的优化分配用户给服务器的划分方法的具体实施步骤如下:
(1)初始化DVE系统虚拟环境,具体工作如下:
(1.1)初始化虚拟环境2D空间区域的大小为η*η (η为事先设定的值);
(1.2)根据空间虚拟角色集合初始化虚拟角色的初始位置状态o(x,y);
(1.3)初始化虚拟角色AOI区域半径R的值,并计算虚拟角色A的视窗范围大小,即
AOI ()=戒2 ;
(2)采用静态多服务器划分方法(即QPA方法)进行区域划分,具体工作如下:
(2.1)根据虚拟环境2D空间区域中虚拟角色的位置信息均匀划分(长与宽对半折)该区域,过程如下:
(2.2)统计四叉树根节点i (原空间区域视为根节点)包含的用户个数% ;
(2.3)判断划分终止条件为虚拟区域中包含的虚拟角色数为O、或虚拟区域的直径大小为R ;如果不满足此条件,将原空间区域划分为四个面积相同的区域,此时,该四叉树节点对应四个子节点;
(2.4)递归操作步骤(2.3),直至满足终止条件。(3)根据步骤(2)区域划分得到的虚拟区域四叉树模型结果,把相应的虚拟角色分配给多个服务器,过程如下:
(3.1)扫描四叉树模型的叶子节点并由左到右的顺序链接,保存扫描得到的叶子节点,直到四叉树所有叶子节点均已扫描完毕;
(3.2)将叶子节点所代表的虚拟区域、及其相邻区域中的虚拟角色划分给同一个聚
类:划分过程中判断是否满足负载平衡的条件h,如果满足此条件,那么就继续针
对当前服务器的虚拟角色分配;如果不满足此条件,需要把虚拟角色分配给新的空闲服务器。
(3.4)循环执行以上两步,直至所有用户分配完成。然后标识这些虚拟角色所在的聚类号;
(4)系统运行阶段,采用动态区域划分方法(DCA)进行密度聚类,具体工作如下:
(4.1)系统计算并设置虚拟角色的邻域面积阈值和邻近虚拟角色的数量阈值MinPts,
即用户q移动可见域为
权利要求
1.基于空间密度聚类的并行式虚拟角色划分方法,其特征在于该方法的具体步骤:步骤(I)初始化DVE系统虚拟环境,包括2D空间区域的规格、虚拟角色的初始位置状态、虚拟角色的视窗范围; 步骤(2)采用静态多服务器划分方法进行区域划分,得到的一个四叉树结构模型,使每个四叉树叶节点含有合适数量的虚拟角色; 步骤(3)根据步骤(2)区域划分得到的四叉树结构模型结果,把位于同一虚拟区域或邻近虚拟区域的虚拟角色划分给同一个服务器; 步骤(4)处理服务器负载均衡,即当前服务器已经达到负载能力范围后,将其它虚拟角色分配给新的、空闲服务器; 步骤(5)系统运行阶段,根据系统计算并设置的虚拟角色邻域范围阈值和邻近虚拟角色的数量阈值MinPts以及裁剪步操作,采用动态区域划分方法进行密度聚类; 步骤(6)采用动态分配服务器方法将每个聚类中的用户分配到相应服务器中,并处理不满足负载平衡条件的服务器,将多余用户分配到空闲服务器中; 步骤(7)在系统的刷新周期T内,当某虚拟角色进入、移动、离开所在服务器时,执行步骤(4)和步骤(5) 。
全文摘要
本发明公开了基于空间密度聚类的并行式虚拟角色划分方法。本发明首先初始化DVE系统虚拟环境,采用静态多服务器划分方法进行区域划分,得到的一个四叉树结构模型。其次把已经聚类好的用户分配给多个服务器。然后在系统运行阶段,采用动态区域划分方法进行密度聚类;最后采用动态分配服务器方法将每个聚类中的用户分配到相应服务器中,并处理不满足负载平衡条件的服务器,将多余用户分配到最大剩余负载服务器中。该发明采用空间密度聚类方法将适量的虚拟角色划分给服务器,从而及时响应客户端的各类请求信息,有效地减少虚拟角色之间的视图不一致性事件,并使服务器端的负载达到均衡。
文档编号G06F9/50GK103218265SQ20131016186
公开日2013年7月24日 申请日期2013年5月6日 优先权日2013年5月6日
发明者胡海洋, 许旭, 胡华, 李涛 申请人:杭州电子科技大学