动态改进

2024-06-28

动态改进(精选九篇)

动态改进 篇1

1 动态数据聚集算法

动态数据聚集算法中,聚类是数据挖掘中一类重要的问题,在许多领域有其应用之处。聚类的定义就是给定一个有诸多数据元素组成的集合,文中将其分为不同的组(类、簇),使得组内的元素尽可能相似,不同组之间的元素尽可能不同[1]。在动态数据聚集算法中,其数据流具有以下特点:数据实时达到,数据到达次序独立,不受系统控制;数据量较大,不能预知其大小;单次扫描,数据一经处理,除非特意保存,否则不能再次被处理。由于计算机数据中心数据流的特点,要求数据压缩表达;并可迅速、增量地处理新到达的数据,要求该算法可快速、清晰地识别离群点。

2 应用动态数据聚集算法的优势

计算机数据中心应用的动态聚类算法,应该具备可伸缩性,动态聚类算法还要具有处理不同类型的数据属性的能力,能够发现数据中心数据分配中的任意形状聚类,对于输入参数的领域知识具备弱依赖性,且对于动态聚类算法中或数据中心的输入记录顺序也不敏感,具有处理计算数据中心高维数据能力,具备处理数据中心数据噪声能力[2]。对计算数据中心可能的各种数据组合,均可满足其估算聚类结果质量。同时,对于一个对象Oi,也可被另外的对象代替;对于在数据中心一次迭代中产生的最佳对象集合,也可成为下次数据迭代中的中心点。且在计算数据中心数据聚集以及节点聚集后,可动态分配计算数据中心数据,降低部分区域的工作负荷及能耗。在计算数据中心数据动态聚集后,可提高计算数据中心资源的利用率,提升计算数据中心硬件设备运行稳定性。

3 应用动态数据聚集算法实现

对动态聚类算法中的数据流,在每一个时刻,动态聚类算法的在线部分连续第读入一个新的记录,将多维的数据放置到对应多维空间中的离散密度网格,在第一个gap时间内产生了初始簇[3]。然后,算法周期性地移除松散的网格及调整簇。由于不可能保留原始数据,D-Stream将多维数据空间分为较多密度网格,然后由这些网格形成簇。如图1所示。

文本中,假设输入的数据有d维。并在计算机数据中心空间中定义数据

在动态数据聚集中,可将d维的空间S划分成密度网格。假设对于每一维,其空间是Si,i=1,…,d被分为pi个部分。

这样数据空间S被分成了个密度网格。每个密度网格g是由Si,j1×Si,j2×…×Sd,jd,ji=1,2,…,Pi组成,将其表示为

一个数据记录X=(x1,x2,…,xd)可映射到下面一个密度网格

根据网格密度变动,更新网格密度,当一个新的计算机中心数据到网格,接收记录数据记录,设一个网格g在时刻tn接收到一个新的数据记录,假设g接收到最后的数据记录是在时刻tl(tn>tl),则g的密度可按下面的方式更新。

计算数据中心动态数据聚集算法的实现中,其最基本的计算思想是,在聚集数据的最中心对象,对n个对象给予k个划分区域;并且此代表对象也可以被称为是中心点,而其他的对象为非代表对象[4],反复使用非代表对象替换代表对象,从而动态找出数据中心更好的中心点,改进数据中心聚类质量。

4 动态数据聚集算法仿真

4.1 仿真试验环境搭建

对于计算数据中心动态数据聚集算法,针对动态数据聚集算法实施仿真试验,在一个台PC上进行,用VC++6.0以及Matlab图形接口实现了动态聚类算法仿真[5]。研究其算法性能及结果准确性,数据中心将10个节点存放于一个机架上。环境参数如表1所示。

在动态数据聚集算法仿真试验中,可设置Cm=3.0,Cl=0.8,λ=0.998,以及β=0.3。使用两个测试集[6]。第一个就是测试数据集,也是一个真实的数据集合KDD CUP-99,其包含由MIT林肯实验室收集的网络入侵数据流。也使用人工数据集测试动态聚类算法的伸缩性。这个人工数据集包含的数据数量从35~85 k B不等,簇的数目设定为4,维度的数目范围从2~40[7]。在动态数据聚集算法仿真试验中,将数据集的所有属性规格化为[0,1]。每个维度被均匀地分为多个数据段,每个段的长度为len。

4.2 仿真结果评估

评估计算数据中心的动态聚类质量与效率,其与传统计算数据中心的算法进行比较。提高算法时间、空间效率,对于计算中心高速的数据流不损失聚类质量,有独特的优势,准确地识别实时数据流,并实施演化行为。计算数据中心动态聚类算法与传统数据分配算法相比,数据准确性得到提升,为98.2%,常规数据分配准确率83.6%,有明显优势(P<0.05)。计算数据中心动态聚类算法的应用,可提升计算数据中心系统稳定性。

5 结束语

综上所述,在目前计算数据中心,设计动态数据聚集算法,通过仿真实验进行验证分析,表明动态数据聚集算法,能够保障计算数据中心的服务质量,提高计算机设备稳定性,还可以提升计算机数据中心服务质量,可在不同时段动态分配数据使用,实现有效的聚集数据分配模式,从而确保系统计算存储节点可以轮流运转,提升计算机数据中心区域温控设备精度,充分利用计算数据中心资源,满足用户的实际服务需求,降低计算数据中心系统动态数据分配能耗。

摘要:针对当前计算数据中心中的动态数据分配方法中存在局限性强、公式复杂、算法运行效率低等问题,提出了动态数据聚集算法,结合计算数据中心实际情况进行改进,分析了动态数据聚集算法在计算数据中心的应用。仿真结果表明,与常规数据分配方法相比,改进后的基于动态数据聚集算法的数据分配方法,数据分配准确率可达到98.2%,相比常规方法有效地提升了结果的准确率。

关键词:动态数据聚集算法,数据分配,计算数据中心,仿真研究

参考文献

[1]亓开元,韩燕波,赵卓峰,等.支持高并发数据流处理的MapReduce中间结果缓存[J].计算机研究与发展,2013,50(1):111-121.

[2]王立,乐嘉锦.基于度量波动时间框架的流立方体研究[J].计算机应用与软件,2011(3):169-172.

[3]侯东风,刘青宝,张维明,等.一种适应性的流式数据聚集计算方法[J].计算机科学,2010,37(3):152-155,169.

[4]刘青宝,侯东风.基于查询索引树的多维连续查询计算方法[J].信息工程大学学报,2012,13(1):100-104,114.

[5]陈伟,陈璟,孙俊,等.一种量子行为粒子群优化动态聚类算法[J].计算机应用研究,2011(7):2432-2435.

[6]侯东风.流式数据多维建模与查询关键技术研究[D].长沙:国防科学技术大学,2010.

动态改进 篇2

工作浅谈

世界潮流浩浩荡荡,风起云涌,日新月异。国际上,政治多元化,经济全球化,科技信息化迅速发展;在国内,改革开发进一步深化,竞争加剧,企业面临的挑战日益严峻。电力体制改革并未因电荒而停滞,自厂分开之后,主辅分离的工作也已摆上了议事日程。处在这样一个大环境之中的二十一世纪的电力职工,必然会出现一些新的思想动态。而我们九江县供电有限责任公司由于种种历史和体制的原因,又具有自身的特殊性,在职工的身份结构上就存在大职工和农电工的体制性差异,而大职工之

中又有原沙河供电分局的职工和九江锁江楼电厂分流职工的历史性差异。这种种先天性差异的就决定了我县公司职工思想动态的复杂性和多样性,具体而论大约有以下几种:

1、面对厂分开等一系列重大电力体制改革措施的出台,我公司职工既喜且忧,喜的是改革以后将给电力部门带来新的机遇,但同时也表现出深深的忧虑。因为作为电公司的职工,感到厂分开以后,竞争加剧,担心企业经受不起挑战,从而影响自己的岗位和收入。因此,职工对厂分开后将会给企业带来的挑战十分关注。免费公文版权所有

2、由于大职工中有相当一部分是从九江锁江楼电厂分流到九江县公司来工作的,总想调回市区。原来沙河分局的职工也想到条件较好的市区工作。因而,大职工中不同程度的存在着不安心基层工作的思想。

3、经过农改造,我公司收编了八个乡供电所的二百多名农电工。他们从地方

政府进入电力系统,无论从思想上,还是工作方式、管理模式上都很不适应。另外,由于体制的原因,农电工的工资薪酬与大职工还存在着一定的差距,使得他们心理上不平衡,对于自己被收编以后的身份问题、工资福利问题、退休养老问题、医疗保健问题等等还心存疑虑。

针对以上种种职工的思想新动态,如何做好他们思想政治工作是摆在我公司党支部面前的一个主要课题,我们主要从以下几个方面改进工作:

一、坚持职工思想动态分析

职工思想动态来自职工真实的所思所想,反映企业职工的精神面貌和思想追求,职工关心关注的热点、难点、焦点问题。坚持职工思想动态分析,不仅能看到企业干部职工爱岗敬业的一面,而且能看到职工关心企业发展和自身利益的一面,进而更好的开展各项工作。职工思想动态分析分两极进行,每季度末由各党小组、各部室、班组召开

职工座谈会,平时各党小组长和部室主任、班组长经常与职工谈心,对职工思想情况进行搜集、整理、分析,按照基本情况、思想反映、原因分析、措施对策四个方面,真实详尽地反映本季度职工在生产、管理、安全、质量、生活等方面产生的思想动态状况,客观地分析职工思想动态产生的内因和外因,提出有针对性、时效性、可行性的教育意见和解决问题的办法及建议。党群部门根据各单位上报的职工思想动态分析书面报告,归纳汇总上报公司党支部。为了保证职工思想动态分析的真实性和分析的科学性,公司着重抓好三个环节:抓好思想调查环节,抓好研究分析环节,抓好评分考核环节,实践表明,坚持职工思想动态分析,既能实现上下沟通,职工参政议政,又能体现主人翁地位,维护企业职工思想稳定,促进企业发展。免费公文版权所有

二、不断丰富深化思想教育内容

1、找准主导点,增强主动性。就

是使职工与企业结合得更加紧密,让职工在奋斗中实现人生目标的同时实现企业的发展壮大。近年来,县公司结合企业各个阶段的生产工作任务,充分利用《沙供之声》、页传媒,先后在干部职工中深入开展以弘扬企业主导精神为主题的思想教育活动,多方面灌输,多渠道渗透,多角度说理,唱响主旋律,引导职工树立主人翁意识,把个人人生价值的实现和企业的发展前途联系在一起。

2、抓住闪光点,增强导向性。在思想政治工作中,善于发现、培养和宣传先进典型,抓住闪光点,增强导向性,激励教育职工,就能起到春风化雨,润物无声的作用,提高思想政治工作说服力、感召力、渗透力。在日常工作中,企业涌现出了一批廉政勤政、成绩突出的管理人员,勇于创新、做出成果的技术人员,立足岗位,为企业发展做出贡献的一线工人。公司抓住这些闪光点,利用多种形式,大力宣传推广,全公司上下形成了学先进,比干劲,多奉献的

良好风气。

3、瞄准切入点,增强针对性。就是积极探索以人为本的企业文化管理模式,注重培育职工的政治素质、文化素质、道德水准和团队精神,调动职工的生产工作积极性。近年来,公司紧紧抓住企业理念这个切入点,提炼了团结真诚,规范创新的企业精神,树立人民电业为人民的企业思想,与时俱进,争创一流的企业目标等企业理念。

4、围绕中心点,增强时效性。要增强思想政治工作的时效性,就要求我们必须把思想政治工作有机地渗透到企业改革发展、生产经营、管理服务、利益分配等各个环节中去,努力在服从和服务的方式上探索创新。近年来,公司编发《沙供之声》下发到班组,及时向干部职工传达公司会议精神和公司的生产、安全、质量、管理方面的重要活动。增强了思想政治工作、企业管理、技术创新的指导性和感染力。

5、把握兴趣点,增强实效性。企

业的思想政治工作,应积极探索运用亲新活泼的形式,让职工在喜闻乐见的活动中,在参与、互动中自己教育自己,以增强思想政治工作的实效性。近年来,公司适应职工对精神生活的追求,适应新时代的特点,组织开展了多领域、多层次、多形式,寓教于乐、寓教于文、寓教于情的各种活动,使职工的思想感情得到熏陶,精神生活得到充实,道德意识得到增强。

三、抓好双文明建设工作

各基层部室、班组是企业思想政治工作的前沿阵地。各部室、班组对职工的思想状况和工作生活情况了解最直接、最具体、最及时、最经常。因此要做好企业的思想政治工作,就要注重抓好双文明建设,用现代化管理理念、方法和手段建设好各个基层部室、班组。今年来,在 双文明建设中,公司把双文明单位的创建重心放在强化各部室、班组建设上,先后制订了《部室管理工作考核细则》、《班组管理标准》,建立了部

室、班组管理组织络,加大了部室管理的检查考核力度。在创建双文明活动中,公司把专业管理的要求和考核指标分解到各个部室,为部室创新管理创造条件,提供服务,分类指导,提高部室、班组的管理意识和思想工作效能,使思想教育与行政管理,思想引导与行为规范有机结合起来,做到教育中有管理,管理中有教育,教育落实到管理中,管理上升为教育。

四、增强思想政治工作的感染力和吸引力

1、要敢于和勇于回答人们普遍关注的现实思想问题。如人们普遍对分配不公的看法,分配不公形成的原因主要是现实生活与人们想象的反差大,导致一部分人的心理不平衡。那么我们就要从理论和实际的结合上引导人们懂得:社会公平是一种目标、一个过程,市场经济就是要破除平均主义,才能促进社会的发展,但社会主义制度最终要消灭社会的不公平现象,以达到共同富裕的

目的。

2、要敢于和善于讲大道理。有的同志以为现在没有人愿听大道理,事实上并不是人们不愿听,而是我们的干部和思想政治工作者不愿讲,不会讲,讲不好。因为大道理是我们一切工作的基础和前提,是管一切小道理的,关键是我们讲大道理,讲的方法要得当,要通俗化,要和人们的学习、工作、生活联系起来。比如,公司在改革发展中职工关心切身利益多一点,这也是正常的心态,如果我们只讲正确对待的空道理,职工们就难以接受,即便一时接受也解决不了解思想问题,你让他正确对待,他还是想不通。我们首先要认可人们对个人利益的关注和追求是正常的,在这个基础上要向职工逐步讲清,我们的个人利益必须放在全局范围内加以考虑,脱离全局的个人利益追求是不实际的,搞不好会使自己走入歧途。另外在实际工作中讲大道理必须和解决具体问题结合起来,使两者相互渗透。如当前职工

普遍关心的就业、医疗保险、离退休人员的生活保障、住房制度的改革以及社会治安等生活中一些具体问题,我们既要宣传党的方针政策,又要帮助他们解决一些企业能够解决的问题,特别是一些带普遍性的实际问题。

3、领导干部和思想政治工作者必须以身作则、率先垂范。思想政治工作要有效果,一靠真理,二靠人格。特别是在新的形势下,更要注重身教重于言教的原则,想要别人理解,自己首先要理解;要求别人做到的,自己首先要做到;要求别人不做的,自己首先不做,特别在公与私、廉与贪、法与情等问题上更要做出表率。职工们讲:板着面孔训人,我们不怕。不联系实际的大道理我们不信。说一套,做一套的人,我们不服。自己做好了再要求我们做,我们不得不服。这就是说,群众要求干部必须言行一致,说到做到,否则就没有资格去做群众的工作。

做思想政治工作实际上就是做人 的工作,一个优秀的思想政治工作者丝毫不亚于一个高级心理医生。只要做好了人的思想政治工作,那么就等于从根本上解决了问题,可以唤醒沉睡在人体内巨大的潜能,为企业的发展、社会的进步做出贡献。因而,我们每一个思想政治工作者都应当把自己有限的生命和精力投入到这项工作中去,使之焕发出无限的力量!

动态改进 篇3

关键词:射线追踪;线性走时插值;向后追踪方法;计算效率;初至波射线追踪

中图分类号:P631 文献标识码:A

文章编号:1674-2974(2016)05-0106-07

Abstract:The backward tracing method of the shortest path ray tracing algorithm with dynamic networks can solve the unstability problem in the backward tracing procedure of the LTI (Linear Travel-time Interpolation) algorithm, but the computational efficiency of the method is low. This study presented an improved method on backward tracing. According to the location information of the secondary sources for the nodes and the law of wave propagation, a large number of redundancy calculation are excluded in the backward tracing of the dynamic networks tracing algorithm. The numerical examples show that the improved method exhibits the higher computational efficiency. The calculation efficiency of the improved method is several times that of the backward tracing method of the dynamic networks tracing algorithm. When the improved method is applied to the improved algorithm of the shortest path ray tracing with dynamic networks, the computational efficiency of the algorithm can be increased by about 100 %.

Key words:ray tracing; linear traveltime interpolation; improved algorithm; backward tracing; computational efficiency;first arrival ray tracing

射线追踪技术在地震层析成像以及混凝土超声波射线层析成像等领域具有重要作用.目前常用射线追踪方法主要有两点射线追踪算法(包括试射法以及弯曲法)[[1-3]、有限差分解程函方程法[[4-6]、最短路径法[[7-10]以及LTI(Linear Travel-time Interpolation)射线追踪算法[[11-22]等.其中,LTI射线追踪算法因其计算精度较高、计算速度较快且适用于任意复杂的速度介质模型,在地震层析成像等领域得到了广泛应用.但是LTI原算法[[11]存在两个问题:在向前计算节点最小走时时,不能正确追踪逆向传播的射线,相关节点不能得到正确的最小走时[[16-22];在向后追踪接收点射线路径时,存在不能正确追踪接收点射线路径的可能,算法的稳定性存在不足.

文献[17-18]将波前扩展方式与LTI算法基本方程相结合,提出了动态网络最短路径射线追踪算法,该算法在向前计算各节点的最小走时时,从震源点开始,采用波前扩展的方式逐点计算各个节点上的最小走时,改变了LTI原算法的计算方式,确保各节点能得到最小走时;在向后追踪接收点射线路径时,基于互换原理考虑了接收点所有可能的射线路径,确保算法能正确追踪接收点的射线路径.

动态网络最短路径射线追踪算法虽然能够解决LTI原算法存在的两个问题,但是其计算效率偏低.文献[22]基于波的传播规律提出了动态网络最短路径射线追踪改进算法,改进并提高了动态网络最短路径射线追踪算法向前计算节点最小走时这一步骤的计算效率,但是,该改进方法的向后追踪方法仍然采用动态网络最短路径射线追踪算法中的方法,计算效率依然偏低.

针对动态网络最短路径射线追踪算法中的向后追踪方法存在计算效率低的问题,本文提出了改进方法.首先,在向前计算节点最小走时这一步骤中,不仅计算各节点的最小走时,而且还记录各节点次级源的位置;然后,在向后追踪接收点的射线路径时,利用各节点次级源的位置信息以及波的传播规律对算法进行改进,降低算法的计算量,提高算法的计算效率.

1 LTI算法基本方程的推导及接收点

文献[8]给出了最短路径射线追踪算法中次级源的确定方法,考虑到LTI算法中的射线可通过单元边界上任意点进行传播,这与最短路径射线追踪算法中射线只能通过节点进行传播不同,因此最短路径射线追踪算法中次级源的确定方法不完全适合LTI算法.为了更好地描述本文提出的改进方法,将LTI算法中次级源的确定方法规定如下:通过接收点所在单元各节段(不包括接收点所在节段)可得到多个接收点走时,其中走时最小值对应的点即为接收点的次级源,如果走时最小值对应多个点,取距离接收点最近的点作为接收点的次级源.如图1所示,若接收点C通过AB节段D点得到的走时小于通过单元其它节段得到的走时,那么D点即为接收点C的次级源.

2 LTI原始算法向后追踪过程存在的问题及动态网络最短路径射线追踪算法存在的不足及改进

LTI原始算法在向后追踪接收点射线路径时,首先逐点计算接收点所在单元中各节点走时与节点至接收点的走时之和,然后选出最小的走时之和以及相应的节点,最后将单元中包含该节点的节段作为接收点次级源的可能区域[[11].事实上,接收点的次级源并不一定在这些节段中.此外,LTI原算法在确定接收点次级源的可能区域时,并未排除接收点所在的节段,算法可能会陷入无限循环.因为通过接收点所在节段线性插值得到的接收点走时,可能比通过单元其它节段得到的走时更小,那么接收点取最小走时对应的点可能为接收点本身,算法可能会进入无限循环.

以图2所示模型为例,模型尺寸为3 m×3 m,单元大小为1 m×1 m,单元边界划分为2个节段,模型上层、中层以及下层单元的速度分别为525 m/s,515 m/s和505 m/s,震源S的x,y坐标分别为1.5和3.0,接收点R的x,y坐标分别为2.05和0;图中虚线为采用LTI原始算法中的向后追踪方法得到的射线路径,需要说明的是,计算这条射线路径时,已经排除了接收点的次级源位于接收点所在节段的情况,实线为根据动态网络最短路径射线追踪算法中的向后追踪方法[[17-18]得到的射线路径.

从图2可以看出,在III号单元中,两种方法的计算结果一样,接收点R的次级源均为R1.在II号单元中,对于LTI原始算法的向后追踪方法,首先须确定II号单元中节点走时与节点至接收点R1走时之和最小的节点,经计算确定为d节点,然后确定cd或de节段为接收点R1次级源的可能区域;对于动态网络最短路径射线追踪算法中的向后追踪方法,接收点R1次级源所在区域为ef节段.计算结果表明:通过ef节段计算得到的R1点的走时(T=0.005 416 05 s)要小于通过cd或de节段的走时(T=0.005 422 57 s),接收点R1的次级源不在cd或de节段内.造成这一问题的根源在于:LTI算法假定射线路径可以经过单元边界的任意一点,在向后追踪过程中必须考虑所有可能的射线路径,并根据费马原理选择走时最短的那条路径[[11],而LTI原始算法的具体追踪方法却没有考虑接收点所在单元所有节段的射线,而是采用了一种“简化”方法确定接收点射线路径或次级源的可能区域,由图2所示模型可以看出,这种“简化”方法存在不足.

此外,在确定接收点次级源时,若不排除接收点所在的节段,那么在计算新接收点R1的次级源时,由于通过节段cd插值得到的走时,比通过ed节段得到的走时小,计算得到的“次级源”为R1本身,程序将陷入无限循环.

动态网络最短路径射线追踪算法中基于互换原理提出的向后追踪方法[[17-18],考虑了来自接收点所在单元中除接收点所在节段外所有节段的射线,确保了接收点能得到其次级源.但是,该方法计算量大,计算效率低.为了解决这一问题,本文首先在向前计算节点最小走时的步骤中,建立了一个数组,专门用于记录节点次级源的位置信息.然后利用各节点次级源的位置信息以及波的传播规律对动态网络最短路径射线追踪算法中的向后追踪方法进行改进.现以图3所示模型为例,对该向后追踪方法的基本步骤及计算策略进行说明,同时对向后追踪改进方法进行阐述,改进前后的向后追踪方法及计算策略分别如图3和图4所示.具体步骤和分析如下:

1)首先将接收点分为以下3种情况,然后对不同的情况采用不同的策略求解接收点的次级源:

①接收点位于单元内部,如图3(a)及图4(a)所示的R点.此时利用LTI算法的相关公式计算接收点所在单元各节段至接收点的走时,然后从中选出走时最小值对应的点,如图3(b)及图4(b)中的R1点,这个点就是接收点的次级源.

②接收点位于单元边界上,但是非单元边界上的节点.如图3(b),(d)中的R1和R3点,此时除接收点所在的节段外,单元中的其它节段均要计算从该节段至接收点的最小走时,然后从中选出走时最小值对应的点,如图3(c),(e)中的R2和S点.

事实上,对于接收点位于单元边界但非单元节点的情况,除非该接收点为原始接收点(图3和图4中的R),否则并不需要对接收点进行全方位的计算.可以采取如下两个步骤确定接收点次级源的可能区域.

首先,利用接收点所在节段端点的次级源位置信息确定两个定位点.定位点的确定方法为:若节点端点的次级源不在单元内,或者次级源在单元内但与节点端点处于同一边界,则定位点为节段端点本身,其它情况定位点为节点端点的次级源.如图4(b)所示,接收点R1所在节段的端点为A1和A2,易知接收点R1的次级源位于单元I中,现以端点A1的次级源位置信息为例说明定位点的确定方法,若A1的次级源不在单元I中,比如A1的次级源为单元II中的b点,则由A1的次级源位置信息确定的定位点为A1本身;若A1的次级源与A1处于同一边界,比如次级源位于A1A4或者A1A6边界,则定位点为A1本身;对于其它情况,比如A1的次级源为单元I中的c点,则定位点为A1的次级源c.在图4(b)中,假定A1节点的次级源为A3节点,A2节点的次级源为a1点,则由A1,A2节点的次级源位置信息可以确定两个定位点,分别为A1节点本身以及点a1.

然后沿着单元边界连接两个定位点,其中不包含接收点的那条路径即为接收点次级源的可能区域.如图4(b)所示,沿单元边界连接定位点A1和a1可以得到两条路径:A1A3A4a1和A1A6A7a1,其中路径A1A3A4a1不包含接收点R1,因此确定该路径为接收点次级源的可能区域.

得到次级源的可能区域后,再确定这个区域内的节段,图4(b)中可能区域A1A3A4a1内的节段为A1A3,A3A4,A4A5,计算从这些节段至接收点的最小走时,其中走时最小的点即为接收点的次级源,如图4(c)中的R2.

同理得到图4(d)中R3点的次级源S.

③接收点位于单元边界上,且为单元边界上的节点.如图3(c)中的R2节点,此时需要在R2节点所处的几个单元中执行情况②的计算,如图3(c).

显然,由于在向前计算节点最小走时的过程中,已经记录了各节点的次级源,因此,在改进方法中,可以直接得到接收点的次级源,如图4(c).

2)以步骤1)中获得的次级源为新的接收点,重复步骤1),直至新的接收点为震源.

3)依次连接各接收点得到R点的初至波射线路径,如图3(e)和图4(e)所示.

对比图3与图4可以看出,改进后的向后追踪方法计算量明显减少.

3 数值算例

为了对比改进前后向后追踪方法的计算效率,建立了尺寸为2 500 m×600 m的二维模型,如图5所示,其中x值在500~2 000 m之间且y值在200~400 m之间的区域为低速区,速度为500 m/s,其余速度均为4 000 m/s,震源S位于模型上表面的正中间(1 250,0),单元尺寸为5 m×5 m,单元边界划分段数为4,10,20等3种情况,模型下表面的每个单元布置一个接收点,共500个,部分接收点的射线路径如图6所示,分别记录两种向后追踪方法追踪所有接收点的射线路径所耗费的总时间.此外,为了说明向后追踪方法计算效率的提高对整个算法的影响,将改进后的向后追踪方法应用于动态网络最短路径射线追踪改进算法[[22],然后比较应用改进方法前后动态网络最短路径射线追踪改进算法的总耗时(不包括算法的前处理过程).计算机CPU主频为3.4 GHz,计算结果如表1所示.

由表1可知,向后追踪改进方法的计算效率较高,是改进前向后追踪方法的几倍至几十倍.并且能将动态网络最短路径射线追踪改进算法的计算效率提高1倍左右.

为验证向后追踪改进方法对复杂模型的有效性,采用向后追踪改进方法对Marmousi速度模型进行射线追踪,其中节点最小走时的计算采用的是动态网络最短路径射线追踪改进算法.模型尺寸为9 192 m×2 904 m,震源S位于模型左上角(0,0),单元尺寸为24 m×24 m,单元边界划分为10段,共设置5个接收点R1~R5,分别位于模型上表面的3 600,4 800 m,6 000 m,7 200 m和8 400 m,射线追踪结果如图7(a)所示,作为对照,本文给出了单元边界划分为30段时最短路径法的射线追踪结果,如图7(b)所示.两种算法下,各接收点根据射线追

踪结果计算的走时如表2所示.计算结果表明,向后追踪改进方法对于复杂的速度模型同样有效.

4 结 论

针对LTI原算法中向后追踪方法存在的无限循环以及可能不能得到正确射线路径的问题,动态网络最短路径射线追踪算法中基于互换原理提出的向后追踪方法能够予以有效的解决.但是该算法存在较多的无效计算.本文根据模型中节点次级源的位置信息以及波的传播规律,提出了改进的向后追踪方法.数值结果表明,改进后的向后追踪方法,其计算效率较之改进前的方法有较大程度的提高;此外,本文提出的向后追踪改进方法能将动态网络最短路径射线追踪改进算法的计算效率提高1倍左右.

参考文献

[1] JULIAN B R,GUBBINS D.Three-dimensional seismic ray tracing[J].J Geophys,1977,43(1/2):95-113.

[2] 田玥,陈晓非.水平层状介质中的快速两点间射线追踪方法[J]. 地震学报,2005,27(2):147-154.

[3] XU Tao,ZHANG Zhong-jie,GAO Ergen,et al. Segmentally iterative ray tracing in complex 2D and 3D heteroge-neous block models[J]. Bulletin of the Seismological Society of America, 2010,100(2): 841-850.

[4] VIDALE J.Finite-difference calculation of travel times[J].Bulletin of the Seismological Society of America, 1988,78(6): 2062-2076.

[5] QIN Fu-hao, LUO Yi, OLSENl K B, et al. Finite-difference solution of the eikonal equation along expanding wavefronts[J].Geophysics, 1992,57(3):478-487.

[6] 李振春,刘玉莲,张建磊,等.基于矩形网格的有限差分走时计算方法[J]. 地震学报, 2004,26(6):644-650.

[7] MOSER T J. Shortest path calculation of seismic rays[J]. Geophysics, 1991,56(1): 59-67.

[8] 刘洪,孟凡林,李幼铭.计算最小走时和射线路径的界面网全局方法[J].地球物理学报, 1995,38(6): 823-832.

[9] 赵爱华,徐涛.提高规则网格最短路径方法反射波走时计算精度的走时校正技术[J]. 地球物理学进展, 2012,27(5):1854-1862.

[10]BAI Chao-yin,HUANG Guo-jiao,ZHAO Rui. 2-D/3-D irregular shortest-path ray tracing for multiple arrivals and its applications[J]. Geophysical Journal International, 2010,183(3): 1596-1612.

[11]ASAKAWA E,KAWANAKA T. Seismic ray tracing using linear traveltime interpolation[J]. Geophysical Prospecting, 1993,41(1): 99-111.

[12]赵改善,郝守玲,杨尔皓,等.基于旅行时线性插值的地震射线追踪算法[J].石油物探, 1998,37(2):14-24.

[13]CARDARELLI E,CERRETO A. Ray tracing in elliptical anisotropic media using the linear traveltime interpolation (LTI) method applied to traveltime seismic tomography[J]. Geophysical Prospecting, 2002,50(1): 55-72.

[14]聂建新,杨慧珠.地震波旅行时二次/线性联合插值法[J].清华大学学报:自然科学版 , 2003,43(11):1495-1498.

NIE Jian-xin, YANG Hui-zhu.Quadratic/linear travel timeinterpolationof seismic ray tracing[J].J Tsinghua Univ :Sci&Tech, 2003,43(11):1495-1498.(In Chinese)

[15]ZHANG Jian-zhong, HUANG Yue-qin, SONG Lin-ping,et al.Fast and accurate 3-D ray tracing using bilinear traveltime interpolation and the wave front group marching[J]. Geophysical Journal International, 2011,184(3): 1327-1340.

[16]黄靓,黄政宇.线性插值射线追踪的改进方法[J]. 湘潭大学自然科学学报, 2002,24(4): 105-108.

[17]张建中,陈世军,余大祥.最短路径射线追踪方法及其改进[J].地球物理学进展, 2003,18(1):146-150.

[18]张建中,陈世军,徐初伟.动态网络最短路径射线追踪[J]. 地球物理学报, 2004,47(5): 899-904.

[19]黄靓.混凝土超声波层析成像的理论方法和试验研究[D]. 长沙: 湖南大学土木工程学院, 2008:33-36.

[20]张东,谢宝莲,杨艳,等.一种改进的线性走时插值射线追踪算法[J]. 地球物理学报, 2009,52(1): 200-205.

[21]卢江波,方志.线性走时插值射线追踪算法的改进[J].湖南大学学报:自然科学版, 2014,41(1):39-44.

脱水型动态水力旋流器结构改进研究 篇4

1 原结构及存在的问题

原有结构动态水力旋流器如图1所示,其主要是由入液口、旋转筒、出水口及出油口等组成,其中,入液管、旋转筒及出水管由电机通过皮带驱动同步旋转,入液口、出水口和出油口与支撑座相连而固定不转,转动件与固定件之间的密封通过机械密封来实现。

1.1 振动严重问题

对于动态水力旋流器来说,振动均是有害的。振动会使分离过程中形成的油核变粗、弯曲,影响收油效果,进而使分离效率降低,严重情况下甚至会使油水不能分离[2]。

分析动态水力旋流器振动的原因。首先,加工精度低造成的转筒与支承座间的同轴度难以保证。动态水力旋流器转筒与入口管及底流管组焊在一起,对于转筒长径比为12.5的动态水力旋流器来说,焊接后转动体长径比达到了15以上,这种细长轴结构加工与装配的难度较大,精度无法保证。转动体自身的直线度与圆柱度及其与支承座的同轴度无法保证,在高速旋转时就会产生较大的偏心力,激发振动产生。

其次,在动力结构布置形式上,动态水力旋流器为电机旁侧布置,通过V带传动,旋流器转筒为简支梁结构,其受力形式如图2所示,在带传动预紧力F0的作用下,转筒会发生偏心,根据带传动公式,带紧边拉力为:

式中:F1—带紧边拉力;Fe—有效拉力。

由公式可知,在设备运行的过程中,带对转筒的拉力将会增加,更会加剧转筒偏心的情况,在高速旋转中,转筒会因偏心而产生振动;而且随着转速的增加,振动的情况也会随之加剧。

1.2 带更换困难问题

动态水力旋流器采用了普通V带进行传动,带为易损件,需要频繁更换,带轮位于两支撑之间,若要对带进行更换,就必须将支撑压盖拆下,并将旋流体吊起,这样就增加了更换皮带的难度,并且在反复的吊装过程中,旋流体将会在吊装力与重力的反复作用下发生变形,影响旋转精度。

1.3 机械密封泄漏问题

动态水力旋流器采用了非平衡弹簧旋转式机械密封,依靠动环与静环之间的接触式密封,静环与静环支撑之间及动环与轴之间的静密封的共同作用实现流体的动密封。机械密封的泄漏主要为静密封点泄漏与动密封点失效,静密封点泄漏多数是由于密封圈的缺陷造成的。

在发生泄露的机械密封处,静密封密封圈工作状况良好,未出现破坏、老化等情况,在对密封弹簧压紧力进行调整后泄漏情况仍未减轻,因此判断机械密封的泄漏是由动密封点失效引起的,在安装正确的条件下,一般认为动密封点失效是由安装动环的轴振动引起的,振动会造成动环的摆振,引起动静环接触面贴合不严,产生泄漏,严重情况下更会破坏静环,导致密封失效。

1.4 轴承润滑不良问题

动态水力旋流器采用了深沟球轴承支撑转动体,其结构如图3所示。其中,静环左侧为被密封介质,轴承安装于机械密封静环支撑右侧,这样,在机械密封发生泄漏的情况下,液体很容易流入轴承座中,而现有动态水力旋流器的轴承座结构不利于液体流出与蒸发,处理介质会在轴承座中积累,积液会造成润滑脂变质失效,破坏轴承的润滑条件,轴承在长期润滑不良的情况下运行,会产生点蚀,烧伤以及过度磨损的问题,发生上述问题后,轴承运转时通常会出现较强烈的振动、噪声和发热现象,这将对动态水力旋流器的性能有很大的影响。

2 结构改进设计

根据上述问题分析的结果,对动态水力旋流器进行了有针对的改进设计。

改进动力结构布置形式。新结构动态水力旋流器采用同轴驱动方式,如图4所示,驱动旋流器转动的电机安装于旋流器前方,与转筒同轴,转筒与电机轴采用弹性联轴器相联,同轴驱动方式减少了易损件,解决了皮带更换困难的问题,而且联轴器传动不存在丢转现象,因此传动精度更高,电机功率损失小,对转速等操作参数的控制也更为精确。但同轴驱动对转筒同轴度有了较高的要求,安装时电机轴与转筒的对中精度要求也较高,所以,这一结构对加工及装配精度有了更高的要求。

改变支撑位置。转筒是旋流器主要分离段,也是振动影响的敏感区域,所以对转筒振动的消减尤为重要。新结构将支撑直接安放于转筒之上,缩短了支撑的前后跨度,限制转筒的变形,并对偏心造成的振动的幅度进行抑制,支撑跨度缩短使得转筒在支撑位置间的同轴度更易于保证,加工难度下降,精度提高,转筒与支撑座间的同轴度得以保证。

改进静环支撑结构,使轴承远离机械密封,并在轴承与机械密封二者之间设计了集液槽及排液孔结构,这样即使在机械密封泄漏的情况下,试验介质会沿着轴或孔壁流入集液槽并从排液孔排出,而不会流入轴承座中,避免了轴承座中积液的产生,改善轴承的工作环境。其改进设计方案如图5所示。

3 新结构样机的试验研究

3.1 试验条件与操作参数确定

选取含水浓度为85%含蜡原油为处理介质,采用离心泵增压,使用电磁流量计与压力表计量流量与压力。

新结构动态水力旋流器设计额定处理量为2.5m3/h,试验区间分别为转筒转速(600—1 350) r/min,试验时,由变频器调节电机频率来改变转筒转速,电机转速按每150 r/min提升,分流比3%—15%,采用全面试验法进行试验。

3.2 试验过程

在试验最初阶段,机械密封出现了泄漏的情况,少量试验介质由排液孔排出,随着设备的运行,机械密封经过磨合,泄漏逐渐减少并消失。在试验过程中,入口压力与压力降随转筒转速的增加而增加,但入口压力最大值未超过0.06 MPa,压力降也一直维持在0.03 MPa以下。整个试验过程中,设备运行平稳,噪声与振动情况较原结构得到了明显的改善。

3.3 试验结果

转筒转速与分离效率之间的关系如图6所示,在选取的转筒转速试验水平范围内,新结构样机的分离效率整体高于结构改进前动态水力旋流器,并且在(1 050-1 350)r/min的高转速区间内,分离效率也保持在较高的水平,并未出现明显下降的趋势。一般认为,转速的增加有助于提高分离效率,但随着转速的增加,设备振动加剧,影响油核形成,导致分离效率下降,所以,可以认为改进后的结构降低了设备在运行过程中的振动,设备可以在更高的转速下运行以获得更高的分离效率。

分流比与分离效率之间的关系如图7所示,可以看出,分流比对分离效率的影响并不显著,在整个试验区间内,改进前后样机的分离效率随分流比变化均比较平稳,但在分流比3—10的情况下,改进结构动态水力旋流器的分离效率明显优于原结构,同时,在分流比较大时,新结构的分离效率也保持了与原结构一样的较高的水平。因此,可以认为新结构较原结构在分离性能上有了一定的提升,这得益于改进设计对设备稳定性的改善。

4 结论

(1)根据动态水力旋流器振动、机械密封泄漏等问题分析结果分别对驱动方式、支撑座位置、静环支撑结构等进行了改进设计;

(2)试验表明,改进设计改善了动态水力旋流器的运行状态,提升了动态水力旋流器性能。

(3)新结构为进一步结构及参数的优化设计提供了保证。

摘要:分析了影响动态水力旋流器性能的结构问题,针对其振动、机械密封泄漏、轴承润滑不良等问题进行结构设计;对改进后样机试验研究的结果表明,改进设计解决了结构问题,改善了动态水力旋流器性能。

关键词:动态水力旋流器,改进设计,试验研究,分离性能

参考文献

[1]蒋明虎,赵志新,李枫,等.旋流分离技术,哈尔滨:哈尔滨工业大学出版社,2003

动态改进 篇5

1 动态帧时隙ALOHA的防碰撞算法分析

ALOHA类算法最初是从纯ALOHA算法,标签发送数据遇到碰撞则延时发送,系统效率最大能到18.4%。后来将发送时间离散化,分成若干时隙,在各时隙内发送数据也即时隙ALOHA算法,如此,因去掉了不完全碰撞,系统效率最高达到36.8%,而遇到大量标签时效率会急剧下降。之后改进得到帧时隙算法,在时隙算法的基础上将若干个时隙组成一帧,标签在与读写器通信时随机选择一个时隙发送数据,帧长度由读写器设定,该算法的理论最大效率也是36.8%,不过可以分成若干帧来识别所有标签。

1.1 动态帧时隙ALOHA算法

为使系统吞吐量达到最大,假设每一帧的时隙数目为M,还未读取的标签数为n。当一个时隙只有一个标签的应答时,读取标签成功。以概率论分布统计的构造成功率的数学模型,成功时隙的统计概率为:,

其中ps为传输同路的吞吐率,M为一帧的时隙数(帧长),n为阅读器范围内未识别的标签数。固定n对M求导:

0.386。理论情况下,当一帧的时隙数目等于当前标签数目时,吞吐量的理论最大值为0.368。从图1中可以看到ALOHA算法以及帧时隙ALOHA算法在不同帧长时的系统效率。可以发现,当标签数量远大于时隙个数时,系统吞吐量急剧下降;当标签个数小于时隙个数时,则会浪费时隙数。为解决这个问题,提出了动态帧时隙算法,即读写器在与标签通信过程中动态改变下一帧中时隙数目,动态实时地调整帧长度以保持较高的吞吐率。然而,调整帧长度的大小则成为了该算法效率的关键。由于未读标签的数目未知并且需要设置帧长度与标签数相近时效率最佳。所以只有对标签数量进行了准确的估计,并根据估计结果设定适当的帧大小,才能完全发挥出该算法的特点。

1.2 标签估计

目前已经出现了多种标签数目估计的方法,此类估计方法大都基于将各个时隙分为没有标签的空时隙,只有一个标签的独占时隙以及被两个或多个标签占用的碰撞时隙的模型设计。因为每个碰撞时隙至少有两个或两个以上的标签响应,假设前一帧检测下来有C个碰撞时隙,Lower bound method[5]则以每个碰撞时隙有最少的两个标签来估计,也即用N=2·C来估计阅读范围内未识别的标签数量。该算法的误差源于它只考虑了两个标签碰撞的有偏估计,在标签数量比较多的情况下效率很低。FRITS C.Schoute[6]在lowerbound基础上做了改进,考虑到每个时隙标签大于3个的情形。通过构造泊松过程分布函数,当标签数等于帧长的情况下得到N=2.39·C。即,用N=2.39·C来估计未识别的标签数量,该值比lowerbound算法更为准确,但只是静态估计不能动态反应当前帧碰撞情况。

Vogt[7]后来又提出一种不同的估计方法,根据切比雪夫不等式:一个涉及随机变量的随机试验过程其输出很可能在该变量的期望值附近。因此,可以用读取结果与期望值之间的取得最短距离时的数值来估计标签数目。估计模型如式(3)所示:

其中,c0、c1、ck为实际测得的成功、空闲、碰撞时隙数值。

在标签数量N取值范围[c0+2ck,…,2(c1+2ck)]内找到最小的ε值,所对应的N就是估计的标签数量。

除此之外,还有基于Bayesian理论的后验概率估计方法[5],其系统效率有所提高但计算复杂度也变得很高。ISO-18000-6C标准中使用的Q算法[8]对系统的吞吐率作了一定的改进。但是,既然是估计算法就必然会存在估计误差,估计算法的效果影响着系统效率。为改善估计误差对系统效率的影响,本文提出了改进方法。

2 FBC_DFSA算法及其仿真

时隙帧识别法都涉及到标签估计,但这些估计算法显然都存在误差。因此,本文提出FBC_DFSA算法,用估计算法得到的标签数来设置帧长,在进行一轮识别后得到的测量结果反馈到前面估计得到的标签数目,与其进行对比,检验估计算法的准确性并做出调整。本算法的原理模型如图2所示。

首先看一下基于空闲时隙、成功时隙、碰撞时隙的一系列标签估计,假设n个标签在某个帧选择了其中第i个时隙的标签数目,概率分布为:

M为一帧内时隙数。如果该时隙为碰撞时隙,x≥2。得到x标签选择识别时隙的概率分布为:

Px{x个标签|i是碰撞实习}=

可得到选择时隙i标签数目的平均值:

其实可以看到,当e=2和e=2.39时,分别为lowerbound和Schoute估计结果。Vogt方法是通过比较一个向量组中与期望值的距离来得到最佳标签数,Bayesian算法用后验概率分布来估计识别的标签数目。但是,基于向量空间的搜索法(Vogt)和基于后验概率分布法(Bayesian)尽管在系统效率上有些改进,但是计算复杂度也比较大[9]。如图3算法模型,基于lowerbound和Schoute的标签估计DFSA方法来验证FBC_DFSA算法。

基于FBC-DFSA算法模型,再结合蒙特卡洛法的思路建立了模拟标签识别的数学模型,并在MATLAB的环境下进行了仿真实验,图4给出了采用Lowerbound、Schoute以及FBC_DFSA算法时系统效率的仿真结果。

从结果可以看到,在绝大多数标签情况下,FBC方法的系统吞吐率都要好于其他算法。

FBC_DFSA在标签数接近帧长大小处还是能取得吞吐率的最大值,在标签数不等于帧长的情况下,能够对误差做出调整,从而也可以进一步提高系统效率。但是反观FBC_DFSA算法模型,可以看到一个比较关键的调整参数u,u参数决定了检测估计结果与当前检测结果之间的误差调整幅度。因此,u的大小会影响整个系统的识别效率。设定初始帧长之后,在MATLAB软件环境下进行仿真实验,实验部分结果如图5所示。可以发现,在初始帧长固定的情况下,当标签数改变时,改变参数u能够相应地影响系统效率。

但是,随着帧长的不断调整,相应的估计误差值也会随之改变,虽然已经对系统效率做出了改进,但是仅仅用固定参数u对误差进行调整还是不能更好地动态显示当前帧情况。

因此,本文尝试用一个随误差改变而自动调整的动态变量来代替u,提出了动态反馈调整动态帧时隙算法DFBC_DFSA。以下实验选择了用动态调整参数α|F1-F0来代替u进行算法的仿真,其中,F1为后来计算的测量帧长,F0为之前估计的帧长,α则是调整因子。当α=1时,得到结果如图6所示。

可以看到,此时尽管在某些标签数量情况下,DFBC方法的效率不及固定参数u的FBC效率,但是从整体效果上看,特别是当标签数目大于1 000后,DFBC方法的效率都有所提高,几乎都能围绕在0.35左右,系统的吐率表现更加稳定。

理论上讲,在识别帧长与未识别的标签数相近时,系统的效率能达到最高,但是如何得到当前阅读范围内的标签数目便成了一个极为重要的问题。本文分析了一系列的标签估计算法后,考虑到标签估计算法的估计误差问题,为有效地减小估计误差并对识别帧长做出调整,提出了一种基于上述改进思路的新方法,也即FBC和DFBC动态帧时隙防碰撞算法。通过检测后的反馈数据与之前的估计帧长作对比,可以动态地描述和调整相应的帧长。从系统效率的仿真实验中看出,改进算法在不增加过多的计算复杂度的情况下使系统效率得到了相应的提高。而且本算法的机理可以拓展到基于其他标签估计的动态帧时隙算法上去(像Vogt、Bayesian等)。基于FBC/DFBC的算法也能够较为方便地应用到具体的RFID系统通信协议中去,从而在工程上真正改善RFID系统的效率。

参考文献

[1]FINKENZELLER K.RFID Handbook[C].Radio-FrequencyIdentifications Fundamentals and Applications,2nd ed.NewYork:wiley,2003.

[2]MYUNG J,LEE W,SRIVASTAVA J,Adaptive binary spl-itting for efficient RFID tag anti-collision[J].IEEE Com-mun.Left,2006,10(3):144-146.

[3]Bai Chengsen,Zhu Jiang.Research on an RFID anti-coll-ision improved algorithm based on binary search[J].Inter-national Conference on Computer Application and SystemModelling(ICCASM),2010(6):430-432.

[4]程良伦,林伟勇.一种稳定高效的动态帧时隙ALOHA算法[J].计算机应用研究,2009,26(1):85-91.

[5]FLOERKEMEIER C.Transmission control scheme for fastRFID object identification[C].IEEE International Confer-ence on Pervasive Computing and Communications Work-shops(PERCOMW),2006.

[6]SCHOUTE F C.Dynamic frame length ALOHA[J].IEEETransactions on Communications,1983,31(4):565-568.

[7]VOGT H.Efficient object identification with passive RFID tags[C].in Proc.Int.Conf.Pervasive Computing,2002:98-113.

[8]韩振伟,宋克非.射频识别防碰撞Q算法的分析与改进[J].计算机工程与设计,2011,32(7),2313-2318.

信息素动态更新的改进蚁群算法 篇6

蚁群算法(Ant Colony Algorithm, 简称ACA)是20世纪90年代初由意大利学者Dorigo等人首先提出的一种新的启发式优化算法[1],是目前国内外启发式算法研究的热点和前沿课题,它已被成功地应用于求解TSP问题[2]、二次分配问题(QAP)[3]、车辆路径问题(VRP)[4]等NP完全问题。实验表明,蚁群算法在求解复杂优化问题方面具有很大的优越性和广阔的应用前景,但是由于蚁群算法也存在一些缺点,比如容易过早陷入局部最优、易于出现停滞等。为了克服这些缺点,不少学者提出了许多改进的蚁群算法。例如:王颖, 谢剑英[5]等指出的通过自适应地改变算法的挥发度等系数,在保证收敛速度的条件下提高解的全局性。赵宝江,李士勇[6]提出了一种基于自适应路径选择和信息素更新的蚁群算法,以求在加速收敛和防止早熟、停滞现象之间取得很好的平衡。朱立军,杨中秋[7]提出了提出一种动态调整路径上信息素的上下界,使路径上信息素永远保持在一个被允许的范围内,从而避免使算法过早陷入局部最优解等。在此基础上,本文提出了一种信息素动态更新的改进蚁群算法,通过在信息素更新策略上增加一个收敛函数和对信息素强度进行了改进,仿真实验结果表明,改进后的算法加快了收敛速度,提高了全局寻优能力。

2、基本蚁群算法模型

为了能够清楚地理解蚁群算法,以经典的TSP问题为例说明蚁群算法的基本模型。n个城市的TSP问题就是寻找通过n个城市各一次且最后回到出发点的最短路径。在模拟实际蚂蚁的行为时,为表述方便,引进如下记号:设有n个城市组成的集合C, m只蚂蚁,用dij (i, j=1, 2, …, n)表示城市i和城市j之间的距离,τij (t) 表示t时刻在城市i和城市j之间的路径上残留的信息素强度。初始时刻,各条路径上信息素强度相等,设τij (0) =const (const为常数) 。蚂蚁k (k=1, 2, …, m) 在运动过程中,根据各条路径上的信息素强度决定转移方向,同时用禁忌表tabuk (k=1, 2, …n) 来记录蚂蚁k当前已走过的城市,集合tabuk随着进化过程作动态调整。Pkij (t)表示在t时刻蚂蚁k由城市i转移到城市j的状态转移概率,表达式为:

其中, allowedk={C-tabuk}表示蚂蚁k下一步允许选择的城市;α为信息启发式因子,表示轨迹的相对重要性;β为期望启发式因子,表示能见度的相对重要性。ηij (t) 为启发函数,一般表示为:ηij (t) =1/dij。

为了避免残留信息素过多引起残留信息淹没启发信息,在每只蚂蚁走完一个循环后,要按公式(2) (3) 对残留信息进行更新处理。

公式(2)中ρ为信息素挥发系数为了防止信息的无限积累,ρ的取值范围为[0, l],Δτij (t)表示蚂蚁k在本次循环中在城市i和城市j之间的路径上留下的信息素,一般采用的是ant-cycle模型中的Δτkij (t)的求解公式(4)。

公式(4)中:Q是信息素强度,它影响算法的收敛速度;Lk是蚂蚁k在本次循环中所走路径的长度。

3、蚁群算法的改进

在基本蚁群算法中,由于信息素挥发系数的存在,使那些从未被搜索过的路径上的信息量减小到接近于0,从而降低了算法在这些路径上的搜索能力,反之,当某条路径中信息素较大时,这些路径中的信息量增大,搜索过的路径再次被选择的机会就会变得较大,这也影响了算法的全局搜索能力,在此通过改变信息素值的方法来实现,信息素值按公式(5)更新:

其中ψ (m) 是一个与收敛次数m成正比的函数,收敛次数m越多ψ (m) 的取值越大,如:

ψ (m) =连续收敛次数m/ct

这里ct为常数,这样根据解的分布情况动态地进行信息素的更新,从而动态地调整各路径上的信息素强度,使蚂蚁既不过分集中也不过分分散,从而避免了早熟和局部收敛,提高全局搜索能力。

信息素强度Q是表示蚂蚁在经过的路径上所留信息素总量的一个常数,它影响算法的全局收敛速度,其值过大,可以加强算法的正反馈,有助于快速收敛,但容易使算法收敛于局部最优;其值过小,会使全局收敛速度减慢。改进的方法是当城市较多时, 信息素强度Q由常数转化为阶梯函数:[6]

式中Q1、Q2、Q3分别对应阶梯函数不同的常数值,Q (t) 也可选择连续函数。

改进蚁群算法的步骤为:

(1)参数初始化

令时间t=0,循环次数Nc=0, 设置最大循环次数Ncmax, 将m只蚂蚁随机分配到n个城市,信息量τij (0) =const,初始时刻τij (0) =0, 其中const为常数。设置参数α、β、Q1、Q2、Q3等值。

(2)循环次数Nc=Nc+1;

(3) 蚂蚁数目k=k+1;

(4) 蚂蚁根据改进公式 (1) 计算的概率选择城市j并前进;

(5) 修改禁忌表, 将蚂蚁移动到新的城市;

(6) 若城市未遍历完, 则跳转到 (4) 继续执行;

(7) 若k<m, 则跳转到 (3) 继续执行;

(8)根据改进公式(6)选择Q;

(9)根据改进公式(5)更新每条路径上的信息量;

(10) 如果蚂蚁全部收敛到一条路径或循环次Nc>Ncmax, 则结束,并输出程序结果,否则清空禁忌表并跳转到(2)。

4、仿真实验结果

为了验证改进算法的有效性, 通过对TSP30、TSP50、TSP75问题进行实验仿真, 参数设置为α=1, β=5, Q1=2, Q2=4, Q3=6, q0=0.5, Ncmax=500, n=100, m=100, 平均运行50次作为仿真结果。本文改进的蚁群算法与基本蚁群算法比较见表1。

摘要:蚁群算法是一种优秀的启发式算法, 具有较强的鲁棒性。不过, 它也存在容易出现收敛时间过长以及容易陷入局部最优等问题。针对这些不足, 在信息素更新策略上增加一个收敛函数和对信息素强度的改进, 提出了一种信息素动态更新的改进蚁群算法, 实验结果表明, 改进后的算法加快了收敛速度, 提高了全局寻优能力。

关键词:蚁群算法,信息素,更新策略

参考文献

[1]Dorigo M, Maniezzo V, Colorni A.Ant system:optimization by acolony of cooperating agents[J].IEEE Transactions on SMC, 1996, 26 (1) :12-41.

[2]Dorigo M, Gambardella L M.Ant colony system:a cooperative learningapproach to the traveling salesman problem[J].IEEE Transactions on Evolu-tionary Computing, 1997, (1) :53-66.

[3]Talbi E G, Roux O, Fonlupt C, et al.Parallel ant colonies for thequadratic assignment problem[J].Future Generation Computer Systems, 2001, 17 (4) :441-449.

[4]Bullnheimer B, Hartl R F, Strauss C.An improved ant system algorithmfor the vehicle routing problem[J].Annals of Operations Research, 1999, 89:319-328.

[5]王颖, 谢剑英.一种自适应蚁群算法及其仿真研究[J]系统仿真学报, 2002, 1:31-33.

[6]赵宝江, 李士勇, 金俊.一种基于自适应路径选择和信息素更新的蚁群算法[J]计算机工程与应用, 2007, 43 (3) :12-15.

动态改进 篇7

关键词:电池非理想特性,自恢复效应,DVS算法,非周期性,低功耗

能量消耗问题是近几年在嵌入式系统设计中被广为关注的难点与热点,它严重制约着嵌入式系统的应用与发展[1]。降低能耗、延长电池寿命在军用或民用嵌入式系统中(如传感网络节点、微小卫星、PDA等)具有重要的现实意义。动态电压调节技术可以根据当前运行任务的需求来实时调节处理器工作电压,以达到任务完成时间和系统能耗之间的平衡,因而被广泛应用在嵌入式实时系统中。传统DVS(Dynamic Voltage Scaling)算法(Wiser and Govil[2])多是基于最优化的电池单元模型,而没有试图对电池的理化现象精确建模。实际上不同的电流负载对应的电池单元行为不同,对不同情况下电池单元行为进行精确建模能提高电池利用率,延长其寿命,故进一步研究与电池特性相关的DVS策略非常有意义。

1 基于电池特性DVS算法本质

DVS策略主要基于一个事实,即:处理器的确定性能量消耗与工作电压呈平方正比的关系[3]:

PD=CdffV2ddf+VddK0ek1Vddek2Vbs+|Vbs|Ij

C为工作电源电压,V为每周期的平均开关电容,f为时钟频率,Vbs为衬底和源极之间的电压,Ij为节点漏电,K0、K1、K2均为常数。故在保证性能前提下,可根据系统工作状态动态调整电压达到降低能耗的目的。基于电池特性的DVS算法不仅根据系统工作状态来动态调节电压,而且还以电池特性为基础设计调度策略,以对电池合理利用,进一步延长电池寿命。Luo[4]等人研究提出的DVS策略通过降低电池的峰值功率来优化能量消耗;Rakhmatov[5]提议利用电池自恢复效应增加电容以节省能量等,这些都是基于电池特性的研究成果并取得较好的节能效果。

2 已有的基于电池剩余能量的DVS算法局限性

在Sukwon Choia[6]等人提出的一种基于电池剩余能量的可选择DVS策略中,对周期性电流负载对应的电池单元行为建模,并根据自恢复效应影响因子的强弱将电池放电过程分为三个不同的阶段,在不同阶段提供不同的策略起到了降低功耗的作用。但其存在下列缺点:

(1)建立的电池单元行为模型有一定局限性,只符合周期性电流负载的特点;而更为普遍的具有非周期性电流负载对应的电池单元行为模型与之存在较大差异,故需要对电池单元行为重新建模。

(2)在rate capacity区域计算Poptirnad方法:基于过去周期段处理器利用率和当前时刻预测利用率来设定最优功率,即:

Ppptimal(i)=(1-(Wreal(i-1)/Qreal(i-1)-Wpred(i)/Qpred(i))Pi-1)

其中i≥1,P0=Pmax。而对非周期性和随机任务,简单的基于处理器以往利用率的计算模型不能提供最优的动态电压调节方法,需要考虑采取符合随机任务特点的新策略。

(3)在Alarm区域电池进入低电压报警区,调节功率为Popirned=Pmin可以降低能耗。但是如果结合动态电源管理DPM策略,对系统单元采用合理的休眠/唤醒算法,则能更好地减少不必要的消耗。

3 电池的非理想特性

大多数有关低能耗设计的研究,都将电池隐式认为是一个理想的电荷储存器,即:存储某个固定的电荷总量,而且直到电荷全部耗尽时电压才退出标称值。然而在实际情况中,电池没有任何一处接近于理想电荷存储单元。由于电池的化学特性,电池在满电荷至临界低电荷放电期间其放电率受到很多因素的影响。其中最主要的两个因素是:the rate capacity effect和the recovery effect[7]。the rate capacity effect现象反映了电流负载和电池寿命的非线性反比关系,而且电池寿命变化率比电流负载变化率要快。这主要是由于电池在生命周期中所能释放的容量总和与放电电流有关。因为从能量转换角度看,当电流越大时,电池在将内存的化学能转变成电能时的效率越低。电池的这种非线性特征可通过Peukert公式[8]来说明;the recovery effect现象反映了当电池空闲时电池电容有自恢复效应。因为电池在没有放电时,电极——电解质周围的有效物质通过扩散的方法会被重新填充,电池容量会有恢复现象。若能利用该特性,将有利于降低系统能耗,延长电池寿命。

实验在IPAQ3600 PDA上运行Linux,并修改Linux内核控制硬件来读取电池剩余电量值。系统预设5个任务,并通过随机策略调度其运行来模拟非周性任务的执行,在整个监测过程中,系统处于随机的繁忙和空闲交替状态中。实验数据显示(图1):系统工作时间与电池剩余电量值局部呈不规则曲线状,但整体上曲线变化有一定规律,可以分为三个区域:在Recovery effect段(Lhdl~LR)电容恢复现象明显,电池部分放电被恢复效应补偿,电量下降缓慢;在Rate capacity effect段(LR~Lc)恢复效应减弱补偿能力下降,电量下降加快,并与放电时间趋于线性关系;最后在Alarm段(Lc~Llow)放电行为占主导,电量急速下降。

实验结果:周期性电流负载和非周期性电流负载对应的电池电量监测曲线分别为细线条和粗线条部分。可以看到:非周期性电流负载对应的电池特性曲线仍然分为三个区域,但是其曲线波动特点很不规律。阶段1:前者曲线波动均匀,后者幅度较大;阶段2:前者呈线性下降,后者曲线围绕前者上下波动;阶段3:两者电量均迅速下降,前者下降平稳,后者有平缓部分。且由于任务的随机性,后者进入某区域的时间点相对模糊,其区域分割点与任务调度的随机过程有关。同样都是基于电池特性,但是在相同的特性区域,对应的电流负载特点不同,故在相同的特性区域应采用不同的策略以求低能耗最优。

4 基于电池非理想特性的DVS算法

4.1 DVS算法思想

根据曲线特点分析电池动态特性,从而设计合适的策略才是关键:该DVS算法根据电量余值L作出策略切换。当L∈(Lfull~LR)时,以充分利用电池恢复效应为主;L∈(LR~Lc)时,因L值持续减少,故在保证系统性能前提下尽量减少放电量;L∈(Lc~Llow)时,电池电量进入低报警区,系统单元采取关闭/唤醒的PM策略,需要牺牲部分性能以尽量延长电池寿命(Lfull、LR、Lc、Llow均为电池在某时刻的电量余值)。

4.2 确定电池状态

要根据电池剩余电量进行策略切换,首先要判断电池状态区间分割点。非周期电流负载对应的电池行为模型不像周期性电流负载对应的电池行为那么有规律,所以判断起来相对复杂。但共同之处在于:在相同的特性区域,同时间片能耗与补偿能量的大小关系类似。所以可以将处理器工作时间划分成若干时间段(如图2),task期间在单位时间段内任务的平均能耗量AH(式(3))和随后相邻的Idle期间单位时间段内平均能量补偿量ΔB(式(4)),设ΔM=AH+ΔB,若有ΔM≤0现象出现,则电池处于recovery effect区;若在一定时间内持续ΔM>0,则认为恢复效应开始模糊,电池进入rate capacity区;若ΔM>0并且数值明显增大,则认为电池进入alrm区。Lmax为电池最大放电量,Li为I时间片时电池剩余电量,两个值都可通过监测获得。B(Qk)为Qk时能耗量为:

可推得Qi时能耗量:

在连续任务时间段内,单位时间片的平均能耗量:

相邻空闲时间段内,单位时间片平均补偿能量:

4.3 DVS算法设计

若电池状态为系统所知,则系统就可以根据电池当前状态选择合理的DVS策略。在Recovery effect区域,应考虑充分利用电池的自恢复效应,故可以使处理器Ppower=Pmax,用以缩短任务执行时间,使处理器更多地处于空闲状态以最大化恢复效应。在Rate capacity区,应在保证系统性能的同时,以降低任务执行时的电池负载为主。这个求解过程可以转化为一个在相关限制条件下求目标函数最值的非线性规划问题来解决,最优化对象是每个任务所对应的工作电压,分析过程如下。

(1)时序可行性检测(SFC)

假设在时刻t,任务队列中已经有N个被调度器接收但是还没有执行完毕的瞬态任务,记为SQ={Ti(Si,Ei,Di),1≤i≤N},参数依次表示任务Ti的到达时间、在最高电压下(即Vmax)的执行时间和截止时间。SQ中的各个任务按照Di的上升趋势进行排序。LE(Ti,Vi,t)表示任务Ti在时刻t基于工作电压Vi所对应的剩余执行时间。另外假设Ti(1,…,N)在进入SQ之前都经过时序可行性检测。其主要作用是保证SQ中所有任务的deadline得到满足。

(2)最优化数学模型。

目标函数式(5)表示任务队列中所有任务执行完毕时所消耗的能量,其中P(Ti,Vi)表示任务Ti在Vi下所对应的功耗。三个限制条件分别从执行时间和工作电压上作出限制。由于Ti在进入任务队列之前都经过了时序可行性检测,因此该计算模型在式(6)、式(7)、式(8)限制条件下必然能够得到一组工作电压的最优解,记为OV={OVi,i=1,…,N},其中OVi代表任务Ti所对应工作电压。

(3)利用最优解

根据OV1来执行任务队列中处于起始位置的任务;一旦出现新的瞬态任务Tnew,且该任务已通过SFC检验时,系统将为SQ重新计算最优解OV;而当前任务执行完毕时,其将从任务队列中移走并在OV中执行OVi->OVi+1的平移操作(i=1,…,N-1)。

在Alarm区,为了尽可能延长电池寿命,可结合基于动态超时的DPM策略,即当电池电压下降了ΔV(ΔV>0)后进入Alarm区域时,则在原有超时时限值t0的基础上进一步降低,从而尽量延长电池的使用时间;反之则恢复原t0值。

算法实现:

5 算法性能实验分析

实验分别采取本文设计的DVS算法、简单DVS(Pi=Pmin)、无DVS三种策略进行对比,分别称为算法1、算法2、算法3。如图3可知:由于在Recovery区算法1和算法3均设定Pi=Pmax,故电池行为方式比较接近,算法2由于Pi=Pmin没有最大化恢复效应,故曲线下降快;在Rate capacity区,算法1和算法2均考虑以降低电流负载为主,故后者曲线上升靠近前者曲线,而算法3功率仍为Pmax故电量下降较快;在Alarm区,算法1、算法2均采取了省电策略,故与算法3相比电量下降缓慢,且算法1与算法2相比,采取适当休眠策略要比持续Pmin节能效果好。表1为三种策略的效能比较。

基于电池特性的动态电压调节技术是降低嵌入式实时系统能耗的有效方法,也是当前研究的热门。少量系统的任务具有周期性特点,但更多的还是具有非周期性等随机特点的任务系统。本文通过实验对非周期性电流负载对应的电池行为进行分析,并在此基础上设计了适合于非周期性任务系统的策略。结果表明该算法能有效降低能耗,与无DVS策略相比,电池寿命延长17.3%,性能提高1.2%。该算法对降低非周期性电流负载的系统能耗比较合适,而对于混合型特点任务系统的低能耗策略还需要进一步研究。DVS技术在过去十几年的时间内取得了很大的研究成果,系统低功耗设计领域的研究空间仍然非常巨大。系统层的低能耗设计以及有关能耗最优化设计和分析技术在今后几年中还将是重要的研究主题。

参考文献

[1]许海燕,卢伟,杨晨辉.等.低耗能嵌入式系统的设计[J].计算机应用研究,2002,19(6):123-124.

[2]WEISER M,WELCH B,DEMERS A,et al.Scheduling for reduced CPU energy.Proceedings of USEN/X Symposium on Operating Systems Design,Monterey,California,United States,1994.

[3]FLAUTER K,REINHARDT S.Automatic Performance Setting for Dynamic Voltage Scaling[J].Mobile.ComPutingandNet- working,2001:26.

[4]LUO J,NIRAJ J K.Battery-aware static scheduling for dis- tributed realtime embedded systems design.Proceedings of ACM/IEEE Conference on Design Automation,Las Vegas, Nevada,United States,2001:444-449.

[5]MARTIN T L,BATTERIES B.Power and performance:sys- tem issues in CPU speed-setting for mobile computing, Ph.D.thesis,Department of Electrical and Computer Engi- neering,Carnegie Mellon University,1999.

[6]SukwonChoi,HojungCha,RhanHa.A selective DVS technique based on battery residual Microprocessors and Microsystems 30,2006:33-42.

[7]BENINI L,CASTELLI G,MACII A.Extending lifetime of portable systems by battery scheduling.Proceedings of the Conference on Design,Automation and Test,Munich,Ger- many,2001:197-203.

动态改进 篇8

无线传感器网络是通过部署大量较为廉价的传感器节点, 利用这些节点的无线通信功能组成多跳的自组织网络。它在环境监控、军事防备、交通管理、智能家居等领域前景非常好, 可以有广泛的应用。在无线传感器网络中, 获得所监测区域事物的位置信息是它的基础功能。所以节点定位技术是无线传感器网络的关键性技术之一。

在现有的定位算法中大体可分为两类:基于测距的定位算法和与距离无关的定位算法。前者方法根据节点之间的测量距离或者测量角度, 利用三边定位或者三角定位法等来计算节点的坐标信息。后者由所有节点组成网络的连通性来定位节点的位置。目前, 基于测距的算法主要有TOA (Time of arrival) 、TDOA (Time different of arrival) 、RSSI (Received signal strength indicator) 、AOA (Angle of arrival) 等;与距离无关的定位方法有:质心算法、DV-Hop (Distance Vector-Hop) 算法、Euclidean算法、APTT (Approxi–mate Point-In-Triangulation Test) 算法和凸规划算法等。

与距离无关的定位算法大多是基于网络连通性, 并且很大程度上依赖于锚节点的数目和分布。当锚节点分布不均匀或数量较少时, 算法的定位精度较差。针对这个问题, 已有一些改进算法。文献[1]选择距离未知节点最近的锚节点为基准, 利用多边质心算法来对未知节点定位。文献[2]利用RSSI来得出未知节点的一系列距离值并从大到小排列, 通过前三个数值来进行加权计算。文献[3]提出基于共线度的加权算法, 利用共线度得出权值, 通过加权算法进行定位。但是在未知节点距离锚节点较远时利用该算法有可能不能得出节点的位置。

为了更好地提高定位精度, 本文算法先从能与未知节点通信的锚节点中选取3个构成三角形, 证明当三角形为等边三角形时定位误差最小, 根据该结论得出权值公式, 结合三边测量法与加权算法得出节点位置, 最后升级该节点为伪锚节点继续进行节点的定位。实验仿真结果表明改进后算法比基于共线度的加权算法定位误差更小, 节点的定位效率也得到提高。

1 相关工作

1.1 基本定义

定义1锚节点通过GPS定位等技术在刚开始能直接获取自身位置的节点。

定义2伪锚节点网络中通过计算而获取到自身定位位置的节点。

定义3信标节点在定位过程中提供自身坐标参与定位的节点, 包括锚节点和伪锚节点。

1.2 基本假设

(1) 传感器同构:即所有传感器节点都具有相同的通信、计算能力和原始能量。

(2) 每个传感器节点内部具有唯一的ID号。

(3) 每个传感器节点具有双向传输功能, 节点在最大通信范围内能自由通信。

(4) 传感器节点采用布尔感知模型, 即节点的感应范围是以该节点为圆心, 感应半径R的圆。

1.3 基本理论

选取一个未知节点, 在能与它通信的所有锚节点中任取三点构成三角形组, 假设该节点位于三角形内部。

定理1在一定的测距误差范围内, 当有三角形为等边三角形时, 未知节点的定位误差最小。

证明:定义三个锚节点位置为Ri (xi, yi) , 待定位节点的估计位置Rest (xa, ya) 到锚节点的距离为di, a。

利用三边测量法距离公式:

由式 (1) 得:

根据式 (2) 可得出:

其中:

通过式 (3) 可得到未知节点的位置Rest (xa, ya) , 若使得到的位置信息更加精确且证明过程简化, 可设:

在本文算法中主要侧重于研究节点在二维状态下的定位情况。为体现结果的一般性, 在这假设未知节点P与附近三个锚节点A、B、C组成的三角形几何拓扑图如图1所示, 其中三角形最大角定义为∠ACB。

由图1可得出:

结合式 (3) —式 (5) 可得:

由式 (6) 可求出未知节点的估计位置。设未知节点的实际位置坐标为P (xp, yp) , 则节点在X轴和Y轴的误差分别为Xerror=xa-xp, Yerror=ya-yp。

在这里我们主要是分析在X轴上的定位误差情况, Y轴的误差情况可同理得出。由三边测量法可知Xerror主要来源于节点之间的真实距离Di, p与测量距离di, a之间的误差Ei, p。在这里设Di, p=di, p+Ei, p。则误差公式表示为:

由式 (7) 可知要使得Xerror最小, 则必须满足分母2dA, CdB, C sin∠ACB最小。为方便计算在这里设参考节点即锚节点A与B的距离一定, 根据三角形正弦定理可得:

要使式 (8) 中有最小值则ctg∠CBA+ctg∠BAC取最大值即∠CBA=∠BAC, 而由于∠ACB与∠BAC又满足几何关系式y>x和y=π-2x。结合图1、图2可求出∠CBA=∠BAC=∠ACB=π3, 得出结论同文献[4]相同。

2 定义权值公式

在与未知节点通信的所有锚节点组成的三角形组中, 由于上述已经证明在一定误差范围内, 当有三角形为等边三角形时, 定位过程中的误差会最小这个结论, 因此在本文中利用该结论定义一个新的权值组公式:

其中θi代表每个三角形所对应的最大角, 取值范围为π3≤θ≤π。由式 (9) 可看出:当三个锚节点在一条直线即最大角θ为π时, 所对应的权值W为0, 此时定位效果最差;当最大角θ取π3时, 说明锚节点组成的为等边三角形, 可得权值W有最大值为1, 此时定位效果最好。

3 IWLA-DAN算法具体步骤

在由众多传感器组成的无线网络中, 可能会出现由于网络拓扑不规范而造成的锚节点分布不均匀, 在这种情况下某些未知节点由于缺乏足够能与其通信的锚节点, 造成节点无法定位。因此在基于动态锚节点的改进加权定位算法 (IWLA-DAN) 中, 当未知节点得出最终位置后, 升级为伪锚节点, 作为信标节点来参与其他未知节点的位置定位。这样可以减少初期部署在网络中锚节点的数量, 从而降低成本, 同时也能提高算法的精确度。

假设无线传感器网络中总共存在M个节点。其中有M-N个锚节点, 有N个未知节点。并且每个节点内部都有唯一ID号和用来区分信标节点和未知节点的状态指示符。当指示符为1时, 表示当前节点为信标节点 (锚节点和伪锚节点) 状态, 当其值为0时, 表示为未知节点。未知节点在默认状态下不开启广播功能, 只能接受信标节点信息, 节点内部存储与其通信的信标节点信息链表。

IWLA-DAN总体算法流程如下:

Step1所有锚节点向网络中发送自身节点信息, 包括ID号、位置坐标Rn (xn, yn) 。

Step2未知节点内部存储能接收到的锚节点信息, 并建立锚节点集合A_set= (R1, R2, R3, …, Rn) 。其中n的取值范围为n≤M-N。

Step3在集合A_set中任取三点即Cn3组成三角形, 判断该未知节点是否位于此三角形内部。如果满足条件, 建立记录集合A_set中符合的锚节点组成的三角形集合B_set={…, (Ri, Rj, Rk) , …};1≤i, j, k≤M根据余弦公式求出集合B_set中每个三角形对应的最大角θi, 再根据公式⑼可得出所对应权值Wi。当中, 由于权值选取过分接近于1 (此时组成三角形过分趋向于等边三角形) , 此时符合条件的锚节点组必然很少, 因此会影响定位精度;如果权值选取过小, 因为几乎所有形状的锚节点组都能被选中, 则相当于设置此参数无意义。经初步实验得出, 定义权值范围在0.8和1.0间。这样能保证参与定位的锚节点数目, 也能起到挑选好的锚节点组的作用。

Step4在步骤3求得符合条件的权值后, 建立链表C_set={…, (Ri, Rj, Rk;Wi) , …};1≤i, j, k≤M存储权值和它对应的三角形信息, 结合集合C_set中的一系列锚节点组利用式 (1) —式 (4) 三边测量法得出关于未知节点的所有位置估计 (Xi, Yi) , 将得到的位置估计与它对应的权值Wi相乘从而得到最终的估计位置Rest (X, Y) 。

其中Wi为权值, 且

在未知节点得出最终位置后将其内部状态指示符从0变成1, 升级自身成伪锚节点。同时开启广播功能, 等待在网络中广播信息。

Step5节点升级为伪锚节点后, 作为信标节点向网络中发送信息。未知节点接收到新信息后, 修改其内部集合A_set, 执行步骤3、4得出其估计位置。

Step6循环执行以上步骤, 直到网络中所有节点的状态指示符变为1, 表明所有未知节点都已定位完成。

4 仿真实验

4.1 仿真条件

本文采用Matlab 7.0仿真, 实验在300 m×300 m的二维正方形区域内进行。在该区域内部署300个节点, 通过Matlab里的随机函数生成所有节点的位置。为降低节点随机分布对实验结果的影响, 在上述同一区域内仿真40次, 每次都是将所有节点重新随机分布, 统计40次实验结果根据其均值来评价定位结果。

在节点定位完成后, 为评价算法的好坏, 我们采用平均定位误差ALE (Average Localization Error) 来衡量算法的性能。ALE是指未知节点的估计位置与真实位置的欧式距离的平均误差与通信半径的比值, 它能基本反映出算法的稳定性和精确性。设节点真实位置为 (Xreali, Yreali) ;得到的估计位置为 (Xesti, Yesti) , R为节点的通信半径, N为未知节点的数目。其公式为:

4.2 实验结果与分析

基于动态锚节点的改进加权定位算法 (IWLA-DAN) , 在定位过程中不断增加伪锚节点作为信标节点, 符合算法定位的有效节点组也不断增加, 因此该算法相对于共线度的加权算法定位效果更好, 性能也更高。

经过40次仿真部署并且统计结果后, 通过比较基于共线度的加权算法和IWLA-DAN算法在不同条件下的定位误差, 判断两种算法的性能。

图3为两种定位算法在原始锚节点不同的情况下的定位平均误差率。从图3中可以看出在前期锚节点数目较少的时候两种算法的误差率相差不多;随着原始锚节点数目不断的增加, 两种算法定位误差率都逐渐减小。但是在IWLA-DAN算法定位过程中, 因为成功定位的未知节点不断升级为信标节点参与定位, 所以IWLA-DAN算法较基于共线度的加权算法而言, 在定位过程中参考节点组就越多, 误差会更小些。因此在等同锚节点前提下, 本文算法的误差率更小。

图4为两种加权定位算法在节点数目相同而节点通信半径不同的情况下的平均定位误差率。图中可以看出随着节点通信半径的增大, 两种算法的精确度都得到提高。但是IWLA-DAN算法在定位过程中, 随着节点通信距离增大, 能与未知节点通信的锚节点组成的三角形组越多, 符合要求的有效节点组也就增多, 因此它相对基于共线度的加权算法, 精确度会更高。

为能更直观比较两种定位算法的定位性能, 取初始锚节点比例为20%, 节点通信距离为15 m时仿真结果图。其节点随机部署如图5所示, 其中三角图标代表初始锚节点, 未知节点用圆点表示。

图6和图7表示两种算法下节点的定位效果。其中实心圆点是未知节点的实际位置, 空心圆点代表通过算法求得的估计位置, 而细线的长度为估计位置与实际位置的误差距离。通过两图的对比可以看出:在本文提出的IWLA-DAN算法的定位图7中出现的细线数量较少, 并且长度也较短。因此仿真结果表明IWLA-DAN算法有着较好的定位效果。

5 结语

在无线传感器网络大多数的应用中, 都需要通过节点的准确位置来判断所在区域的具体情况, 所以说节点定位技术是传感器网络的关键性技术之一。本文根据参与定位未知节点的锚节点组成三角形的最大角求出权值, 利用加权算法来得到具体位置, 并把未知节点升级为伪锚节点, 通过增加信标节点的数量来增加有效的定位组, 提高节点定位精度。但是, 由于在定位过程中有得到估计位置的节点参与定位, 使得测距误差增大;同时, 由于信标节点的持续增加, 未知节点需要不断更新其通信范围内的信标节点链表, 导致对节点的能量消耗较大。如何减小伪锚节点的误差以及节点的能量消耗, 是下一步研究要解决的主要问题。

参考文献

[1]邓彬伟, 黄光明.WSN中的质心定位算法研究[J].计算机应用与软件, 2010, 27 (1) :214-282.

[2]何艳丽.无线传感器网络质心定位算法研究[J].计算机仿真, 2011, 28 (5) :163-166.

[3]吴凌飞, 孟庆虎, 梁华为.一种基于共线度的无线传感器网络定位算法[J].传感技术学报, 2009, 22 (5) :723-726.

[4]皮兴宇, 于宏毅.基于共线度的传感器网络节点定位性能分析[J].系统工程与电子技术, 2008, 30 (7) :1249-1252.

[5]谢晓松, 程良伦.传感器网络基于移动信标改进的DV-Hop定位算法[J].计算机应用与软件, 2011, 28 (4) :85-87.

[6]Wang Y, Lederer S, Gao J.Connectivity-based sensor network localization with incremental Delaunay refinement method[C]//Proc of IEEE INFOCOM.Piscataway, NJ:IEEE, 2009:789-797.

[7]Liu Y, Yang Z, Wang X, et al.Location localization and localizability[J].Journal of Computer Science and Technology, 2010, 25 (2) :274297.

[8]Feng Xiufang, Qi Huibo.Improvement and Simulation for a Localization Based on APIT[C]//International Conference on Computer Technology and Development, 2009:68-72.

[9]Madhulika Kumar A, Varma S.Iterative and Distributed Range-Free Localization Algorithm for Wireless Sensor Networks[C]//Proceedings of Multimedia, Signal Processing and Communication Technologies, 2009:102-105.

[10]Almuzaini K K, Gulliver T A.A new distributed range-free localization algorithm for wireless networks[C]//Proc of 70th VTCFall.Anchorage, AK:IEEE, 2009:1-5.

[11]Yang Zheng, Liu Yunhao.Beyond Trilateration:On the Localizability of Wireless Ad-hoc Networks[C]//IEEEINFO COM, 2009:978-987.

动态改进 篇9

移动互联网、流媒体等技术快速发展使得各种各样服务广泛应用。类似于互联网视频点播等服务应用中,大多会涉及到视频编解码转换、实时视频流化等处理,其会大量进行动态内存分配。持续大量的动态内存分配将导致服务系统出现内存碎片,最终直接影响系统性能和服务效率。目前Linux内核[1]中使用Buddy[2]内存管理算法,能有效减小系统内存碎片。与Buddy算法类似,TLSF[3,4,5]是一种二级分隔拟合内存管理算法,其通过两级位图索引实施内存块快速分配。Buddy和TLSF均为动态存储分配算法[6]( Dynamic storage allocation,DSA) ,可以在系统运行时以相对平稳的响应时间动态分配内存空间。但动态内存必然会引入内存碎片[7]问题,从而导致系统长期运行时性能越来越低。另外一个问题就是应用或服务运行过程中可能存在内存泄漏问题,有些内存泄漏特别隐蔽,只有长时间运行才能逐渐暴露出来。同时,内存泄漏对服务系统是致命的错误,其将直接导致系统无法提供服务甚至崩溃。目前,大多数内存分配算法均将内存泄漏检测推给应用或服务开发人员,而算法本身并不提供任何机制检测可能的内存泄漏问题。针对嵌入式流媒体应用,本文基于TLSF算法进行改进,并增加内存分配检测机制,及时发现可能的内存泄漏。同时实现该算法,在不同尺度的内存块分配时与Buddy算法进行对比,验证算法性能。

2 TLSF算法分析和改进

2. 1 TLSF算法分析

TLSF[3]是一种二级分隔拟合算法,使用位图与链表相结合的方式对内存池进行管理。采用空链表数组并将数组设计为二级数组,第一级数组按照2 的幂次( 16、32、64、128 等) 将空内存块分级,分级的数目称为第一级( First Level Index,FLI) 。第二级( Second Level Index,SLI) 数组将第一级的结果进一步线性划分,第二级数目可配置。每一个链表数组都有一个相关联的位图来记录内存块是否被使用及空内存块的大小和位置。

TLSF将管理内存块所需要的信息嵌入到每一个模块中( 无论模块空闲与否) ,并将联系模块的指针放入到两个链表: 带有一定大小内存块的链表和由物理地址管理的链表。这种数据结构称为“头部结构”。由于申请内存块的大小一般为4 的倍数,所以两个最低有效位表示内存的状态: 内存块是否空闲( F位) ,内存块是否是内存池中的最后一个( T位) 。利用下述公式( 1)[3]确定所申请内存处于的链表位置。

TLSF算法内部通过单链表管理从物理内存获取的不连续的多个内存区域,如图2 所示。当用户申请指定大小内存块时,TLSF首先在当前已有的内存区域中查找是否有满足要求的内存块,有则返回给用户,没有则从系统物理内存新申请一块固定大小的内存区域,并从其中分配出指定大小内存块给用户,同时将该内存区域中剩下的空闲块添加到二级索引中。同时,TLSF尝试合并新分配的内存区域到已有内存区域中,形成一个大的内存区域,从而提高内存使用效率。当新分配的内存区域与之前已分配的内存区域相邻时,合并将会成功。图2 中buf_body为分配给用户的具体内存块,每个内存区域根据用户请求划分成不同大小的内存块,相互之间通过块头的prev和next指针形成双链表。每个已分配内存块及剩余空间块信息都存放在二级索引结构中。

2. 2 TLSF算法改进和实现

媒体服务系统中的视频编解码转换及流化处理时,需要对原始YUV数据及编码后的码流进行存储。对于实时编码或解码,其需要大量动态分配内存存储产生的中间数据,例如帧率为25fps的H264 编码,每秒钟需要处理25 帧YUV数据,而这个过程又包括变换、量化、熵编码等子过程,这些子过程都需要缓冲区存在中间数据。与视频编解码类似,视频流化过程同样需要大量的内存块用于数据缓冲和平滑发送。对于编码前的原始YUV数据或编码后码流中的IBP帧数据,其所需要的内存块大小具有相对固定的特征,比如YUV420 采样的标清视频一帧的大小为720 × 576 × 1. 5 = 622080 bytes,H265 标准支持的4K极高清YUV420数据一帧大小为4096 × 2160 × 1. 5 = 13271040 bytes。本文基于此,针对内存块大小具有相对固定的特征,修改TLSF算法空闲内存区域的初始化分割过程,增加相应内存块数量的权重,当相应内存块被申请时,减少内存块的合并和拆分,从而提高分配效率,减少内存碎片率。

以申请622080 bytes大小的内存块为例,说明对TLSF算法的改进。假设TLSF算法中,最小块大小( Minimun block size,MBS) 设置为16 bytes,则SLI位图中每一位所表示的内存区间中内存块大小的范围为:

其中,

则MBS = 16 时,622080 大小的内存所属的区间为: [219+ 97792,219+ 97808]。当SLI中i = 19 所在链表中所有的空闲内存块均不满足要求时,TLSF算法将通过sbrk函数接口从系统物理内存中获取一块预设大小的新内存区域,并将自空闲区域进行分割。TLSF原算法对新内存区域的分割按照公式( 2)[3]进行,针对视频编解码应用,本文将新的内存区域分割按照公式( 3) 进行,将新内存区域尽量分割到特定大小的内存区间,从而满足这类应用对特定尺寸内存块的大量动态分配需求。

其中sizej为具有相对固定的内存块大小,可根据具体应用进行初始化。

同时,在每个内存块的TLSF头中增加申请者ID信息( 即图3 中的mid) ,以跟踪内存块的使用情况,为后续的泄漏检测服务,如图3 所示。

2. 3 内存泄漏检测机制

为了检测动态内存分配过程中可能存在的内存泄漏现象,本文在改进TLSF算法基础上,对每个应用模块的内存块分配进行统计分析。当应用模块申请新内存块时,分配算法首先检验和分析该模块的内存分配记录,如果正常则为其分配新内存块,并更新该模块记录中持续内存申请数量和大小; 当该应用模块申请的内存块被释放时,分配算法对模块的记录数据进行更新。

模块内存分配记录定义为如下数据结构,以hash表形式存储,便于快速查找和修改。

内存块的申请和释放接口分别定义如下:

内存块申请接口:tmalloc(unsigned int module Id,unsigned int size)

内存块释放接口:tfree(void*ptr)

相关实施流程具体如下:

( 1) 应用模块x申请内存块( 大小为s) 时,动态内存分配算法根据x的模块ID查询hash表: (1)如果已经存在该ID对应项,则检查该项对应的内存分配累积分配大小total Alloc Size和连续分配次数cont Alloc Count分别是否超过模块可分配内存数量上限和连续分配次数上限; 如是则拒绝其内存块分配申请,返回NULL,否则继续为其分配内存块并返回; (2)如果不存在对应键值,则为其创建新的键值,初始化并添加到hash表中,记录其分配次数和分配大小,为其分配内存块并返回。

( 2) 应用模块x分配的内存块被释放时,分配算法释放该内存块到改进TLSF内存区域,并记录其释放过程,更新累积未释放大小total Unfree Size和已释放内存块数量free Count。

( 3) 根据内存分配记录,可查询系统中当前各应用模块内存使用情况。

2. 4 Buddy算法对比分析

Linux内核底层使用Buddy[2]内存管理算法,下面简要介绍Buddy算法原理。

Buddy算法把所有的空闲页框分组为11 个块链表,每个块链表分别包含大小为1、2、4、8、16、32、64、128、256、512 和1024 个连续的页框。对1024 个页框的最大请求对应着4MB大小的连续物理内存块。每个块的第一个页框的物理地址是该块大小的整数倍。例如,大小为16 个页框的块,其起始地址是16 × 212( 212= 4096,这是一个常规页的大小) 的倍数。Linux内核的Buddy算法,free_area数组中每个元素都有一个map指针指向其链表中内存块的位图,位图中记录了每个内存块的使用情况,如图4 所示。

Buddy定义: 满足以下条件的两个内存块之间可互称为Buddy,具体要求包括: 两个块大小相同; 两个块地址连续; 两个块必须是同一个大块中分离出来的。

Buddy算法中内存块简要分配过程如下:

( 1) 当应用程序申请大小为x的内存块时,Buddy算法首先根据x大小找到对应的map,如果该map指定的内存区域中仍然有空闲块可用,则将其分配给用户,并更新块使用信息。如果该map指定的内存区域无法满足要求,则向其上级map申请一块空闲块,成功则将该空闲块平均分成2 部分,其中一部分返回给应用,另外未使用的部分挂到当前map中,更新块使用信息; 如果向上级map申请空闲块失败,则继续向上递归申请,如果直到最顶层仍然失败,则表示此次内存块分配失败,否则依次向下递归分裂空闲块,并返回可用内存空间。

( 2) 与内存块申请过程相反,块释放过程为空闲块的合并过程,该过程依次向上递归,直到无空闲块可合并。

Buddy算法在一定程度上优化了内存碎片问题,但也存在以下不足: (1)内存浪费严重; (2)合并条件过于严格,会导致碎片产生存在重复计算现象,导致效率问题; (3)释放过程中通过递归合并成一个大的内存块,但紧接着又出现一个小内存块申请,如果此时没有合适的小块可分配,之前合并的大内存块又会被分割成小块。

3 实验分析

本文在Red Hat EL 5. 6 虚拟机系统上对比测试上述改进的TLSF算法及linux内核使用的buddy算法,分别测试了不同粒度大小的内存块分配效率,测试结果如表1 所示。从表1 中可以看出,对于小尺寸的内存块,buddy算法分配效率很高。但相比于针对视频特征进行优化的TLSF算法,分配某些尺寸的内存块时,改进的TLSF算法分配效率明显高于Buddy算法。

同时,本文针对应用开发过程中可能的内存泄漏进行了测试。

当开发人员通过C语言库函数malloc分配了内存但未释放时,linux内核的内存分配管理算法并未给出任何提示。而当物理内存被测试进程大量占用后,内核将通过启发式算法找到消耗内存最多的进程,通过SIGKILL消息将其关闭,该过程可以从系统日志中找到踪迹,如图5 所示。测试过程中内核直接将该测试进程kill掉。

当使用增加有内存泄漏检测的改进动态内存分配算法时,该分配算法会记录每个应用模块的内存消耗,当某模块一直在申请内存块,而其申请的内存块未被释放过,则通过统计分析后可判定该模块存在内存泄漏现象,从而拒绝其后续的内存块申请,以保障系统安全。同时,该分配算法可统计系统中各模块内存使用情况,如图6 所示。

4 结束语

内存分配算法从出现到现在已经发展的很成熟,但相比于快速发展的计算机应用,内存动态分配和释放一直是许多学者和工程师们的研究热点。而由于不同的应用对内存的使用方式不尽相同,研究一种普适的内存分配算法显然难度很大。因此,本文针对视频编解码、流媒体服务等特定应用特征的服务研究动态内存算法,从而减少内存碎片率,同时增加内存泄漏检测机制,提高了系统运行稳定性。

摘要:针对视频媒体服务类应用中实时动态内存分配时间不确定、内存利用率低及内存泄漏检测等问题,研究基于TLSF算法改进的内存管理机制,并与linux内核中内存管理算法进行比较。实验结果表明,对于视频处理服务等具有一定计算特征且需要大量进行动态内存分配的应用环境,改进的TLSF算法相对于传统的Buddy算法,内存分配效率有进一步提升,同时通过增加校验,可以检测系统中可能存在的内存泄漏问题,提升系统稳定性。

关键词:动态内存分配,TLSF算法,分配效率,内存泄漏

参考文献

[1]Mauerer W.Professional Linux kernel architecture[M].John Wiley&Sons,2010.

[2]Shen K K,Peterson J L.A weighted buddy method for dynamic storage allocation[J].Communications of the ACM,1974,17(10):558-562

[3]Masmano M,Ripoll I,Crespo A,et al.TLSF:A new dynamic memory allocator for real-time systems[C]2004.ECRTS 2004.Proceedings.16th Euromicro Conference on.IEEE,2004:79-88

[4]王秀虎,张昕伟.基于μCOS-Ⅱ的TLSF动态内存分配算法的应用与仿真[J].微型机与应用,2013,32(5):4-7

[5]Jiang L,Jingjing M,Shenliang W,et al.Research and Application of TLSF Dynamic Memory Allocation Algorithm[J].Microcontrollers&Embedded Systems,2011,52(3):176-179

[6]Kierstead H A,Saoub K R.Generalized Dynamic Storage Allocation[J].Discrete Mathematics&Theoretical Computer Science,2014,16(3):253-262

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【动态改进】相关文章:

动态几何的解题策略——动态几何复习课的反思09-11

新动态04-14

动态成本06-24

动态交互05-01

动态观察05-01

动态逃生05-04

三农动态05-09

学会动态05-09

动态约束05-15

动态管控05-19

上一篇:背景报道运用下一篇:压力自适应