动态分区管理

2024-11-02

动态分区管理(共6篇)

动态分区管理 篇1

1 问题的提出

操作系统内存动态分区管理中,分配内存时先按一定分配算法(如首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法)找到符合条件的空闲分区,再将此分区全部分配给申请的进程或按需从中划分出一块区域给申请进程,从而导致空闲分区越分越小,在后期的分配过程中越来越难以满足新进程的要求。为此,在回收时就需将物理上相邻的空闲分区合并成较大分区,以便能更好地满足进程对内存的要求。

动态分区管理中,几种分配算法各有优缺点,可根据实际需要进行选择。其中最佳适应算法是指每次为新任务分配内存时,总是把能满足要求的、最小的空闲分区分配给新任务,以避免“大材小用”,从而提高内存利用率。为加快分配时的查找速度,该算法要求将所有空闲分区按其容量的大小从小到大排列,这样,第一次找到的能满足要求的空闲分区即为所需最佳分区。另外,对空闲分区的管理通常可采用空闲分区表或空闲分区链实现,空闲分区表是一种顺序存储结构,可以实现随机存取,但需要占用额外的内存空间,而空闲分区链则可以利用空闲分区本身的空间存放分区信息,实现对空闲分区的管理,不占用额外内存空间。

采用空闲分区链,分配算法用最佳适应算法,则意味着物理上相邻的空闲分区在空闲分区链中的对应结点出现不相邻的情况。在系统回收分区时,如何通过空闲分区链找到物理上相邻的空闲分区以及如何进行合并呢?

2 问题的分析

动态分区管理中,对相邻空闲分区进行合并的时机通常在回收某分区时进行,这样,每次最多只有3个空闲分区相邻,少则两个相邻,也可能没有相邻空闲分区。空闲分区相邻共有3种情况,分别如图1中的a、b、c所示。

图1(a)中回收的分区同时与其前、后空闲分区F1和F2相邻,合并后分区的起始地址为F1的始址,而分区长度为3个分区长度之和。

图1(b)中回收的分区只与其前一个分区F1相邻,合并后分区的起始地址为F1的始址,而分区长度为F1和此分区本身长度之和。

图(c)中回收的分区只与其后一个空闲分区F2相邻,合并后分区的起始地址为回收分区的始址,而分区长度为F2和此分区本身长度之和。

由于每次回收时都对相邻空闲分区进行合并,所以每次回收分区时最多只能找到一个前相邻空闲分区和一个后相邻空闲分区,也就是说,如果已经找到了一个前相邻空闲分区或后相邻空闲分区,则没必要继续查找前或后相邻空闲分区。

于是,算法基本思想如下:

(1)从空闲分区链最前面开始向后扫描查找回收分区的前及后相邻空闲分区,直至找到或找完为止。

(2)若有相邻空闲分区存在则分3种情况分别进行合并,由于合并后的分区容量扩大,而最佳适应算法要求按分区容量大小从小到大排列,故应将其位置向后移动,使合并后的空闲分区链中的结点所对应的分区仍保持按容量大小升序排列。

(3)若无相邻空闲分区存在则将回收的空闲区直接插入到链表中合适位置即可。

3 算法设计

由于算法比较繁琐,细节较多,故而直接用C语言编写了一模拟程序加以描述,如下:

设链表相关数据结构如下:

以上程序在VC6.0中调试通过。

算法时间复杂度为O(n)。

4 结语

与其他算法相比较,最佳适应算法能使每次产生的碎片最小,节省了内存,保留了大的空闲区,以方便后续任务对内存的要求。但换个角度看,最佳适应算法每次切割所形成的剩余分区的容量从统计意义上来讲,也是最小的,这些分区由于太小,以后再被分配出去的可能性也很小,从而会出现大量的碎片问题,导致内存利用率降低。

参考文献

[1]汤小丹,染红兵,哲凤屏,等.计算机操作系统[M].3版.西安:西安电子科技大学出版社,2007.

[2]耿国华.数据结构(C语言版)[M].西安:西安电子科技大学出版社,2002.

[3]傅清祥,王晓东.算法与数据结构[M].北京:电子工业出版社,1998.

[4]谭浩强.C程序设计[M].北京:清华大学出版社,1996.

[5]祁建宏,朱正平,岳秋菊,等.基于多条件的单链表快速排序算法研究[J].自动化与仪器仪表,2012,(3):37-39.

动态分区管理 篇2

店铺实际陈列的操作过程中,第一步就是了解店铺空间,并做店铺空间与人流动线的设计。好的空间与人流动线设计能引导和方便消费者购物,能让消费者在店铺停留适当的时间,能让消费者体验一种品牌所倡导的购物感觉。

那么店铺空间与人流动线设计有什么关系了。

首先许多店铺空间是没法改变的,是固定的。

因此人流动线的设计是在固定的空间里设计人流走动的主体方向,让消费者按照设计者事先设计好的路线流动。

所以说,人流动线是为店铺空间规划良好的、事先预定的人员流动路线,延长消费者在店铺的停留时间,从而带动品牌人流量和购买率的提升。

那么什么样的人流动线能帮助品牌人流量和购买率的提升了?

一、首先了解店铺流向

店铺流向是指:因店铺固定空间而形成的人员流动方向。

店铺流向可分为:直流动线和环流动线

1.什么是直流动线?

直流动线:是指店铺入口和出口在不同的两侧,多数人进店铺从一边的入口进,从另一边的出口出,即穿越式流动的线路。

直流动线的店铺多数为商场店。

2.什么是环流动线?

环流动线:是指在三面合围的空间里,店铺出口和入口在同一侧。多数街道专卖店和部分商场边厅就是这样的店铺。

二、如何根据店铺流向(直流和环流)设计良好的人流动线?

良好的人流动线能延长消费者在店铺的停留时间,带动品牌人流量和购买率的提升。那么针对不同的店铺流向,我们又如何设计良好的店铺人流动线呢?

1.对于直流动线的店铺,一般多数店铺的服饰都有男女装。因此对于直流动线的店铺,在做男女分区时,采用一边男一边女的做法是错误的,显然由于店铺产品特性的原因,店铺的人流动线只有一条,这样会缩短顾客在店铺的停流时间。

所以根据直流动线的特点应当将人流动线按前后(主、次入口区)分为男、女装区,这样无论顾客从主入口还是次入口进入店铺,其动线会长许多,顾客接触产品和停留店铺的时间也就长许多。

2.对于环流动向型的店铺,由于出口和入口只有一个或出入口相距较近,因此要避免直线走动,特别是狭长、弯曲的路线,使人流来回直线流动,造成不必要的麻烦。

动态分区管理 篇3

关键词:机器人足球仿真,重叠式分区,11VS11,兴字形围球

机器人足球 (FIRA) 比赛现已逐步成为人工智能领域研究的热点之一。自策略设计中分区思想被首次提出以来, 分区方式越来越多, 分区策略的研究取得了较大突破。但现行的分区策略均采用将场地分为若干静态区域的算法, 不能很好的解决球员冲突问题, 无法迅速应对突发事件。相对以往常用的静态的呆板的分区方式, 本文提出了动静结合的重叠式分区策略, 结合兴字形围球、人墙式射门、布袋式防守策略, 在攻防两端上体现了其实用性。

1、分区策略及兴字阵型

机器人足球仿真比赛是一种对单人作战、多人合作、临场应变等能力要求较高的动态环境下的比赛。为了使策略设计的更为有效, 策略中采用场地分区的方法将机器人进行详细的角色分配和阵型部署, 使得每个机器人能够做到近似完美的团队配合。相对以往常用的静态分区方式存在的不足, 本文首次采用动静结合的方法对场地进行重叠式分区:8个静态区域和11个动态区。

根据攻防策略, 首先将场地分为不同的8个静态区域, 整个球场的划分如图1所示。

相对以往常用的分区方式, 上述静态分区策略不仅在攻防两端进行了详细划分, 而且将场地中央简单的划分成4, 5两个区域有效地减少区与区之间场地变换时队员行动迟缓甚至相滞的现象, 显著加快了球员的执行速度。在静态分区的基础上, 以球为中心将场地动态地分为11个区域, 详细的分区方式将在下文结合兴字阵型围球策略具体论述。

兴字阵型进攻防守策略主要是针对4、5两个区域, 以动静结合的重叠式分区为基础, 兼顾进攻和防守两方面提出的新策略。贯穿于整个策略的主要思想有三个:多层防守, 多人进攻, 注重效率。

队员防守贯穿于整个比赛过程, 防守策略的优劣直接关系到比赛的成败。防守的策略中最重要的是尽量将足球限制在己方队员的前方, 一般将球压制在边线或是将球限制在中路采用兴字多层梯次防守阵型的方式将球向前推进, 实践证明此方法效率较高且实用性较好。

在做好多层防守的基础上, 兴字阵型多人进攻的方式加强了进攻力度。与防守队员对球的控制相结合, 使得前锋队员强而有力地将球向前推进, 从边路或中路将球推进对方禁区, 并结合一字射门策略完成进球。

兴字阵型进攻防守策略的精华在于“攻中兼守, 守中带攻”, 场地的动态分区和球员的具体配合如图3所示。

最好的进攻即是防守。当球位于静态区域4、5时, 考虑到中场开球时1、2、3号球员的排布, 将这三个队员作为主攻手, 可以强而有力地将球向前推进。部分程序如下:

9 (x-40, y-20) ;7 (x-100, y-37) ;10 (x-100, y+37) 。利用平台机器周期获取足球场地数据来排布我方球员阵型。阵型中, 球员4、2、3、6构成第一道防线, 8、5、9号球员构成第二道防线, 球员7、10构成第三道防线。

三道防线的球员针对不同的突发事件进行默契配合。例如, 当球被踢过第一道防线进入2号动态区域时, 4、8、5号球员会迅速控球阻击, 并将球踢回1号动态区域。当球被踢入7号动态区域时5、7、10号队员以最快速度控球并采取阻击行动, 被踢入8号区域时4、8、10号球员进行阻击。除球在11、12号动态区域只有一个球员能够率先控球组织反攻外, 其他区域都有多个球员共同阻击。正常情况下, 球能冲破三道防线进入11、12号区域的几率很小, 即便突破了己方7号或10号球员也会先于对方控球并组织反攻。实践证明, 兴字形进攻防守阵型能够利用严密的防守和强而有力的进攻将球控制在对方半场。

2、射门策略

在整套FIRA进攻防守策略中, 射门策略又是我方的一亮点。当球被压制于前场的6、7、8三个静态区域时, 队员以一字阵型排布为基本阵型, 球员针对不同区域采取相应部署变换。图4为球在6号和8号静态区时, 我方球员成一字型排布阵型将球推向对方禁区。

详细进攻的策略较为复杂, 此处仅论述球被压制在对方禁区时的典型攻防策略:以2号球员为主攻手, 1和3—10号球员位于禁区外一字排布做为防守, 其中4、6、8、9号为辅助射门球员, 7号球员做为第二道防线。当球在对方球门处时, 对方的防守必定非常严密, 主攻手常因对方阻挡而错失射门良机。例如图5所示2号球员受阻的情况下, 4、8、9、6号球员便可以抓住时机进行有效射门。因反应速度等各种因素的影响, 4个辅助射门球员不可能在同一时间执行射门程序, 所以不会出现违规现象。此外, 禁区外一字排布第一道防线和7号球员的第二道防线有效地阻挡了球被踢出禁区。与不同参赛队比赛时, 这种射门策略都起到了很好的射门效果。

3、防守策略

当球被踢入己方大禁区时, 主要采用布袋式防守策略, 具体阵型如图8所示。策略中, 在大禁区内只安排守门员和5号球员, 而其他球员在大禁区外呈布袋形部署, 其开口朝向足球, 如图6a所示。

这种阵型主要有三方面作用:其一, 减少禁区内球员数, 避免乌龙球并防止犯规;其二, 将球至于布袋口处, 便于将球踢进布袋;其三, 形成对方球员的真空区, 减少对方射门机会。守门员采取灵活守门的方式在对方进球的前提下, 配合5号球员将球踢入布袋并由5号球员负责封口, 同时1、2、3号球员迅速控球并建立兴字阵型组织反攻, 如图6b。

4、结语

FIRA机器人足球仿真组11vs11比赛以机器人的整体配合为中心, 进攻防守策略最为重要, 本文创造性地提出的动静结合分区、兴字型围球、一字型射门、布袋式防守等进攻防守策略, 提升了防守和进攻的效率, 经实验测试及一些大型比赛验证, 该策略具有高效性, 2011中国机器人大赛暨RoboCup公开赛也证明了其实用性。

参考文献

[1]张毅, 杨伟, 徐晓东, 李敏.机器人足球仿真组进攻策略研究[J].机器人技术与应用, 2010 (4) :52-53.

[2]戴皓, 李小坚.机器人足球比赛策略仿真系统的设计与建模[J].北方工业大学学报, 2004:25-29.

[3]FIRA中国分会网站:www.firachina.net.

厂区管廊分区管理规定 篇4

所属公共管廊按现有专业厂所属区域划分,实行按属地管理。具体要求如下:

1、各专业厂根据公司要求明确所属区域内管廊的范围,制定本专业厂的管理办法。

2、3、各专业厂负责属地范围内的内管架、管廊的检查、维修管理。按属地划分各专业厂要定期对所属区域内的管架、管廊进行检查,专业厂至少每季检查一次,车间每月检查一次,并形成记录。

4、各专业厂、车间检查时发现管廊支架有变形、裂纹、破损等情况应及时上报、并制定具体整改措施,及计划并尽快实施。

5、各专业厂负责所属区域内管廊地面的卫生清理、场地平整及管架、管排上杂物的清理。管线泄漏所致的由管线所属单位进行处理。

6、各专业厂检查时如发现所属区域内管廊上有不属于自己的管线保温破损、泄露、吊架、变形等异常现象应及时通知相关单位,如无法确定管线所属单位应及时上报机动设备处,机动设备处对管线所属单位进行考核,如不上报对属地单位和所属单位同时考核。

7、为维护管廊的安全运行,防止管廊、管线安全受到危害,对可能危害管廊安全的有关活动,规定应事先向主管部门报告,提供管廊管理单位认可的施工保护方案,并在施工中按照该方案采取保护措施。

动态分区管理 篇5

基于内容的网络安全审计系统, 为了进行事后统计分析和提供证据, 需要将用户指定范围内所有采集到的数据信息存入数据库以及相对应的文件中。能够保存较长时间范围内的历史数据信息对于网络安全审计系统来说是非常重要的, 通常情况下需要保存最近三个月的历史数据信息。

经过前期需求和数据测试分析, 1G的电信网络中每天大约会增加6 000万个数据文件和数据记录, 这样其存储的数据库规模非常大。数据库规模的不断变大, 将会导致数据库系统性能的急剧下降, 使得数据库维护的成本不断上升, 甚至造成周期性的停机。

1 表分区

表分区技术就是当数据库中的某个表变得特别大时, 可以根据一定的条件或者规则, 将一个大表划分为多个包含少量数据的分区, 每个分区都是一个逻辑实体, 是表的一个子集。通过将一个大表拆分成为多个更小的单个表, 使得只访问一小部分数据的查询执行得更快。另外, 对于这些小表可以更快地执行维护任务 (如重建索引、数据备份或导入导出等) 。

在超大型数据库中, 通常不使用单个分区中的大数据集, 而采用经过优化设计的本地分区和访问策略, 能够使查询性能提高一倍以上, 甚至几十倍。采用表分区技术的优点:

1) 可以极大地缩短查询时间;

2) 减少数据加载时间, 改善数据库的可维护性;

3) 解决从活动数据库中删除历史数据时出现的数据修剪问题。

2 动态表分区

表分区按照实现的方式不同可以分为静态和动态两种。所谓静态表分区就是在数据库初始化的时候按照预定格式一次性生成所有分区。而动态表分区则是应用程序根据一定的规则动态创建所需分区, 并对这些分区进行动态管理和维护。采用静态表分区技术的应用程序实现比较简单, 但是可扩展性较差。采用动态表分区技术的应用程序实现要复杂一些, 但是开发出来的应用程序可扩展性较好, 能够根据不同的需求进行扩展。

静态表分区是目前超大型数据库系统解决方案中普遍采用的一种技术, 到目前为止, 还未见一种比较完善的基于动态分区的解决方案。另外, 将基于动态分区的超大型数据库系统性能问题的解决方案应用到网络安全领域是一个需要特别研究的问题。

设计开发的网络安全审计系统产品定位于100M~1000M以上的高端网络用户 (兼容中低端用户) , 其数据存储和处理规模非常巨大, 为了使得产品具有更好的扩展性能, 该系统采用动态表分区技术。

3 多表查询

在采用分区视图技术实现多表联合查询之前必须动态创建一个包含多个成员表的分区视图。对于超大型数据库来说, 动态创建几个表的分区索引视图需要大量的时间。另外, 分区视图技术是通过使用联合查询运算符来实现的, 很多个大数据量表的联合查询性能是比较低的, 这将在下面的性能测试中进行说明。

采用临时表技术则没有多表联合查询的那些限制, 实现也比较简单, 性能比执行联合查询要好得多, 但是产生的事务日志信息比较多。另外, 采用临时表技术的时候还可以利用多表分页查询机制来控制每次数据查询时需要访问的数据范围以及返回的记录数, 以提高数据查询的速度。对于性能要求比较高的超大型数据库应用程序来说, 建议采用临时表技术来满足动态分区的数据库查询统计的性能要求。

在相同的环境下, 对采用临时表 (temp table) 和执行联合查询 (union) 两种不同方案的应用程序进行大数据量的测试, 获得如图1所示的测试结果。

在图1中, 横坐标表示多表查询需要访问表分区的数目, 每个表中记录数为2000万。纵坐标表示执行完成此多表查询需要耗费的时间, 单位为15毫秒 (从单表查询一条数据记录的平均时间) , 即纵坐标10表示10×15毫秒, 依次类推。100records with temp table表示采用临时表技术查询100条数据记录, 100 records with union表示采用执行联合查询 (union) 获取100条数据记录。

从图1中时间的增长曲线可以看出, 在相同环境下, 采用临时表技术可以获得较好的查询性能。

4 解决方案

本文采用一种如图2所示的解决方案, 来解决基于动态表分区的网络安全审计系统超大型数据库的性能问题, 并为开发人员提供独立于数据库设计的基于动态表分区的数据库通用访问接口。

此方案在普通数据库应用程序的基础上增加一个的基于动态表分区的访问接口的模块, 并对该模块进行优化。

5 结论

由于采取了动态表分区技术并对相关接口进行优化, 使得网络安全审计系统的性能得到了很大提高。

在千兆环境压力测试中每秒能提交9000条左右的数据记录, 各种数据库查询统计操作都能够得到快速响应, 经相同环境下的压力测试其性能比同类产品都要响应迅速。

参考文献

[1]求是科技著.SQL Server2000数据库管理与开发技术大全[M].北京:人民邮件出版社, 2004

[2]张长富, 孙兵, 史炬, 等.SQL Server2000数据库编程[M].北京:北京希望电子出版社, 2002.

动态分区管理 篇6

本文提出了一种基于能量和密度的动态非均匀分区成簇路由算法。首先根据节点到基站的距离进行动态的非均匀区域划分,使得靠近基站的区域具有较小的规模,减少需要承担数据转发任务的区内通信开销,为簇间的数据转发节省更多的能量;综合考虑节点自身的剩余能量、邻居节点数等因素构成节点的竞争值,选取竞争值大的节点作为簇首;在数据传输阶段,簇首间的数据传输采取数据聚合优先的多跳传输,减少过远传输带来的巨大能量消耗;该算法的动态区域划分能均衡网络的能耗,有效的解决能量空洞问题,簇首的选举采用由节点剩余能量、邻居节点数目、距离等因素构成的竞争值比较方法,分簇比较合理,在数据传输阶段采用的簇首间基于数据聚合的多跳传输机制则节省了网络的能耗和带宽,实验结果表明,该算法可有效均衡整个网络的能耗、延长网络的生命周期。

1 算法模型

1.1 网络模型

本文中对无线传感器网络作如下假设:(1)节点随机分布,Sink节点及普通节点位置均固定;(2)Sink节点能量供应持续,具有较强的计算和存储能力,并可向全网发送数据;(3)普通节点能量有限,同质同构,具有相同的初始能量E0;(4)每个节点都有一个唯一的ID标识,能够检查自己的剩余能量Er;(5)节点间的通信链路是对称的,节点可自由调整发射功率,可根据接收信号的强度计算发送者到自身的近似距离;(6)节点之间有冗余性,采用数据聚合模型计算数据聚合度。

1.2 数据聚合模型

传感器网络节点部署密集,信息冗余性大,大量的数据传输会过多消耗网络能量,所以采用数据聚合非常有必要。文献[6]提出一种数据聚合模型,节点i与j之间的距离为dij,簇内节点j采集的数据为Dj,节点j将数据发送至所在簇Ch的簇首,那么在簇首h与本簇所有节点进行数据聚合之后节点j采集的数据Dj变为

数据聚合之后簇首h收集到的数据为

1.3 能量模型

传感器节点的能耗集中在感知数据、处理数据、发送数据和接收数据方面,所有节点感知并产生1 bit数据能耗一般均等,记为Es,节点处理1 bit数据耗能为ED,本文采用与文献[7]相似的一阶无线电模型来模拟传感器节点的数据收发。由一个节点发送至另一个节点的能耗包括在电路上的消耗和传输路径上的消耗

其中,Eelec是节点的发送和接收所消耗的能量;εfs,εmp分别为自由空间传输和多径衰落传输时的通信能耗系数;d0为一临界距离,运用连续性原理求得。当距离d<d0时,采用自由空间模型,反之则采用多径衰落模型。

2 算法路由协议

协议的执行过程是周期性的,将一个执行周期定义为一轮,在每一轮中,分为3个阶段:动态非均匀分区阶段、簇的形成阶段和数据传输阶段。协议执行过程如下:首先根据节点到基站的距离将传感器节点以基站为圆心划分为大小不等的非均匀圆环区域,不同轮数之间的相邻圆环间隔之差受上一轮剩余能量系数的影响而动态变化,通过引入剩余能量系数在每轮算法周期之前对网络进行合理的动态非均匀分区,使得距离基站较近的区域面积较小;然后在区域内成簇,由Sink节点根据节点的密度和能量选取簇首,选择剩余能量高、邻居节点多、该节点做为簇首本簇整体能耗低的节点为簇首;最后进入稳定的数据传输阶段,簇首间采取基于数据聚合的分组转发机制进行多跳传输,使得距离基站较远的簇首减少能量消耗。

2.1 动态非均匀区域的划分

本协议将整个区域以基站为圆心划分为多个不同间隔的同心圆环区域,由内到外依次记为1环,2环,…,n环,随着环数i的增加,圆环间隔Ri依次递增,在每一轮中Ri-Ri-1的值是固定的,将第r轮中相邻同心圆间隔的差值Ri-Ri-1记为d(r),如图3所示为同心圆网络拓扑。

不同轮数r之间的圆环间隔之差d(r)受上一轮剩余能量系数的影响动态变化,剩余能量系数代表着本轮中区域平均剩余能量和区域原始平均能量的关系,第r轮中剩余能量系数记为λ(r),由剩余能量系数的定义得到λ(r)的计算公式为

其中,E0为网络的初始化平均能量;N(r-1)为r-1轮中网络存活节点的个数;Ejr-1为节点j在r-1轮中的剩余能量。当网络剩余能量降低时,簇首因能量耗尽而失效的概率也越大,为避免这种现象,算法希望随着剩余能量的降低,区域大小以及簇的大小也随之减小,从而降低簇首的负担和开销,延长网络寿命。所以随着剩余能量系数λ(r)的降低,d(r)也随之减小,d(r)的计算公式如下

其中,dini为第一轮中的圆环间隔初始化差值;dini以及第1环的半径R1由基站确定。在算法初始化时,由基站感知网络所有节点,并向全网广播初始化分区信息,网络中节点根据接收信号的强度RSSI计算出节点到基站的距离l,节点根据距离l判定自身所在的区域。同时,网络中节点以广播的方式将自己的ID信息发送出去,节点通过收到的广播得到周围节点信息,从而得知网络中节点的密度。

2.2 簇的划分

簇首的数目对传感器网络的整体能耗和性能有很大影响,文献[8]的研究结果表明,将簇首的个数控制在整个网络节点的50%时,可使得整个网络的能量消耗最低,所以在区内成簇时,每个区域选择区内存活节点数的5%作为簇首的数目。

2.3 簇首的竞争

节点的密度越大则在此区域成簇的可能性越大,节点的剩余能量越高则数据的采集转发有效性越大,节点作为簇首时整个簇的能耗越低则网络的能耗越小,所以在簇首的竞争过程中,需要综合考虑候选簇首节点的密度、剩余能量以及节点作为簇首时整个簇的能耗等因素,节点的密度越大、剩余能量越高、作为簇首时整个簇的能耗越低,节点成功竞选簇首的可能性越大。

估算节点i假设自身作为簇首时簇的整体能耗为

则簇的平均能量为

其中,Eri为第r轮中节点i的剩余能量;Nc是簇内节点的数目。

簇的平均能耗为

节点i成为簇首的竞争值为

其中,c1,c2和c3为比例系数;Nneigh(i)为节点i的邻居节点个数;Nalive为当前网络的存活节点个数。节点根据收到的候选簇首的信息计算出竞争值,选举竞争值大的作为簇首,在选择出簇首节点以后,簇首向自己所在的区域内进行广播,普通节点根据收到的簇首广播信息选择合适的簇首加入,并向所在簇的簇首发送加入信息,簇首接收普通节点发送的信息,最终在各个区域内形成簇。

2.4 数据传输

本协议采用簇内单跳通信、簇首间多跳通信的数据传输方式。对于簇内通信,成功选举出簇首之后,簇首向所在簇发送成员消息Cluster_Message,Cluster_Message中包括簇内节点的ID、节点的状态及节点的邻居节点信息表,簇内普通节点收到Cluster_Message后向簇首发送回复消息Re_Message,包括节点到簇首的能耗、发送数据的长度、节点的状态等。簇首节点根据收到的Re_Message给需要发送数据的节点分配发送时隙表。数据采集完成后,由簇首将收到的所有数据进行聚合。对于簇首间通信,首先,簇首发送广播信息告知周围簇首自身的剩余能量、到基站的距离及所在簇的节点个数,簇首根据收到的广播,将邻居簇首中相比自身到基站距离较近的簇首信息保存并且为之建立邻居簇首节点信息表,簇首将在邻居簇首节点信息表中选取下一跳节点,综合考虑剩余能量和所在簇节点个数,选择剩余能量较大、簇内节点个数较少的邻居簇首作为下一跳节点。由于本协议的动态划分区域,使得靠近基站的簇的范围减小,为簇首间的数据转发预留了更多的能量,均衡了网络的整体能耗,从而有效延长网络寿命。

3 仿真结果及分析

为评估本文算法的有效性,采用Matlab对本算法和LEACH进行仿真和分析。其中假设节点在休眠和空闲时的能耗均为0,仿真环境用到的参数如表1所示。

衡量网络的最重要性能指标之一是网络生命周期,图4是对本算法及LEACH算法网络生命周期的比较,由图可知,LEACH算法的第一个节点死亡是在302轮,本算法第一个节点死亡是在847轮,最后一个节点死亡分别是在896轮和1580轮,本算法延迟了节点的死亡时间,将网络的生命周期延长了38%。观察节点死亡的趋势可看出,由于LEACH算法节点能量分布不均匀问题,导致了某些节点的过早死亡和某些节点的存活时间较长的情况。本算法中,节点能量耗尽的轮数基本相同,证明了本算法有效地提高了能量的均衡性。

图5为LEACH算法和本算法的簇数目和轮数的关系,如图所示,由于LEACH协议中簇首的选择是随机的,并且动态成簇,所以每一轮中簇首节点个数的变化范围很大,不能保证簇数目一致保持最佳,增加了网络的开销。本算法始终将簇首的数目控制在存活节点数的5%,保证网络簇数目一致维持在最佳状态,同时采用动态划分区域,然后在区域内选择簇首,使得簇的分布较为均匀。

图6对LEACH算法和本算法在每轮数据采集过后的网络剩余能量进行了对比,由图可看出,两种算法协议的网络剩余能量基本呈线性下降趋势,但本算法每轮能量的消耗明显低于LEACH,从而节省了网络的能量,延长了网络生命周期。

4 结束语

本文在分析研究无线传感器网络经典路由算法的基础上,提出了基于能量和密度的动态分区成簇路由算法本算法。首先根据节点与基站之间的距离将网络合理地进行区域划分,使靠近基站的簇规模小于距离基站较远的簇,减少靠近基站的簇头负担和能量消耗,为簇间数据转发节省能量,然后通过综合考虑节点剩余能量和节点密度等因素来优化簇的非均匀划分和簇首的选择,同时簇首间采取基于数据聚合的分组转发机制。仿真和分析结果表明,本算法能够有效的均衡节点能耗,延长网络生命周期。

参考文献

[1]Perillo M,Heinzelman W.Wireless sensor network protocols[M].Netherlands:Kluwer Acdemic Publishers,2004.

[2]Caiiaway E H.Wireless sensor networks:architectures and protocols[M].Londan:CRC Press,2004.

[3]Heinzelman W R,Chandrakasan A,Balakrishnan H.An application specific protocol architecture for wireless micro-sensor networks[J].IEEE Transactions on Wireless Communications,2002,1(4):660-670.

[4]Luan Weiping,Zhu Changhua,Su Bo.An improved routing algorithm on LEACH by combining node degree and residual energy for WSNs[C].Persi:ICSPS,2011.

[5]李芳芳,王靖.一种基于LEACH协议的无线传感器网络路由算法[J].传感技术学报,2012(10):1445-1451.

[6]Von Rickenbach P,Wattenhofer R.Gathering correlated data in Sensor networks[C].CA,USA:Discrete Algoritms and Methods for MOBILE Computing and Communications,2004.

[7]Wendi Rabiner Heinzelman,Anantha Chandrakasan,Hari Balakrishnan.Energy-efficient communication protocol for wireless microsensor networks[C].HI,USA:Proceedings of the Hawaii International Conference on System Sciences,2000.

【动态分区管理】推荐阅读:

计算分区07-16

景观分区05-13

排水分区05-14

分区治理05-27

分区机制06-12

分区原则07-06

土地分区08-09

分区控制09-13

系统分区10-03

利用分区10-07

上一篇:《推手》下一篇:汽车制造企业供应物流