并行检测(精选十篇)
并行检测 篇1
1 并行遗传算法
遗传算法始于一个初始群体, 群体中的个体都要进行这三种运算。运算后的结果如自然选择一样, 比初始群体具有更好的适应性。并行遗传算法就是一种很好的选择, 它能很容易的实现并得到一个很好数值解。除此之外, 并行遗传算法比遗传算法运算速度更快, 并且能得到一个更优结果[2,3,4,5]。标准的遗传算法以群体集合为运算对象, 对个体所进行的各种遗传操作都有一定的相互独立性, 所以它具有一种天然的并行结构。由于遗传算法的天然并行性, 人们认识到了对其进行并行处理的可能性, 从而基于各种并行计算机或局域网开发了多种并行遗传算法 (Parallel Genetic Algorithm, 简称PGA) 。开发并行遗传算法的主要目的是为了提高遗传算法的运算速度[7,8]。
2 目标函数
损伤由刚度减小率βi表示, 定义为减小刚度与初始刚度的比值。损伤结构的刚度矩阵[Kd]表示所有单元矩阵乘以减小因数的和[4]:
βi=0表示结构未损伤, 0<βi<1表示结构部分或全部损伤。
频率变化:
式中:下标0———初始未损伤状态;
λi———第i个特征值;
ωi———第i个频率。
模态保证标准:
式中:φiu———未损伤的第i阶模态向量;
φid———损伤后的第i阶模态向量。
MAC是一个无量纲的量, 范围从0到1, 代表了两组模态向量之间的关联程度, 1指完全关联, 0指完全不关联。
目标函数:
Fλ, 0, FMAC, 0表示结构未损伤时的值 (β=0) 。FD表示损伤补偿函数。当损伤补偿函数加到目标函数中, 还要包括最小损伤。由此, 由计算误差引起的错误损伤检测就可以避免了。罚函数如下:
此等式由Meruance和Heylen提出, 补偿了全部的损伤, 常数γ取决于计算模型的精确度。
最优问题定义如下:
3 算例
3.1 计算模型及基本假定
用一跨预应力混凝土简支梁进行数值模拟, 为了更好地观察结果, 简支梁外伸形成悬臂梁。如图1所示, 该模型有30个单元, 31个节点, 弹性模量是3.0×1010Pa, 密度是2500kg/m3, 面积是0.06m2, 惯性矩是4.5×10-4m4。
模态观测数据用结构的有限元模型模拟获得, 损伤用弹性模量折减来模拟。损伤工况设计如下[5, 7, 10]:
工况一:10号单元10%损伤, 20号单元35%损伤;
工况二:10号单元20%损伤, 20号单元35%损伤;
工况三:10号单元35%损伤, 20号单元35%损伤。
3.2 初始参数的确定
为了提高收敛速度, 避免过早收敛, 遗传算法的参数和算子取值如下:种群大小:N=75;变异概率pm=0.02;交叉概率ps=0.8。初始种群值为1[5,6,7,8,9]。
3.3 计算结果与讨论
迁移时段如图2所示, 以敏感度分析定义。得到的最优迁移时段是70。图3示出的是通过并行遗传算法收敛率的提高。
并行遗传算法 (PGA) 求解最优解的时间是500多秒钟, 而遗传算法 (GA) 则需要1000多秒。并行遗传算法运算时间是遗传算法的0.5倍。
三种工况的下的损伤探测如图4所示。
从图中可以看出, 损伤检测结果已经达到了完美的程度, 和模拟的损伤很接近, 但并不能说明实际的应用当中也有很好的应用, 所以这方面的研究工作将在以后进行讨论。
4 结论
本文提出了并行遗传算法检测结构损伤的方法。数值模拟结果表明相比于遗传算法, 并行遗传算法在表现上更进一步, 在计算结果相同的条件下, 计算速度是遗传算法的1.5倍。因此, 对于明确问题的并行遗传算法可以使结果得到改进。
本文提出的方法只是针对于预应力简支梁桥模型的损伤识别进行了研究, 对于其他结构, 如高层结构、框架结构等的损伤识别同样有很好的表现。提出的并行遗传算法定位、定量的识别了模拟的损伤, 但是没有考虑损伤发生时刻的检测。其在实际结构损伤中的应用也未做具体的分析实验。这些将在以后进行研究分析, 在损伤识别领域中, 并行遗传算法会有更好的发展。
参考文献
[1]Mares, C.and Surace, C.An application of genetic algorithms to identify damage in elastic structures[J].Journal of Sound and Vibration, 1996, (195) :195-215.
[2]袁颖.遗传算法在结构损伤识别中的应用研究[J].防灾减灾工程学报, 2005, 25 (4) :114-116.
[3]曾国荪.并行遗传算法分析[J].计算机工程, 2001, 29 (9) :96-98.
[4]Meruane, V.and Heylen, W.Damage detection with Parallel Genetic Algorithms and Operational Modes[J].Structural Health Monitoring, 2010, (9) .
由跟跑、并行向并行、领跑转变 篇2
中国纺织工业联合会会长王天凯,原会长杜钰洲,副会长兼秘书长、纺织之光科技教育基金会理事长高勇,中纺联副会长孙瑞哲、杨纪朝,副会长、纺织之光科技教育基金会副理事长夏令敏,中纺联党委副书记陈伟康,纪委书记王久新,顾问陈树津、张延恺等领导出席大会并为获奖代表颁奖。中纺联各部门、各专业协会领导,地方行业协会领导,中纺联奖励委员会委员以及本次会议表彰的科技工作者、企业家、院校教师与学生获奖代表及众多媒体代表 600 余人出席了表彰大会。会议由高勇主持,孙瑞哲在大会上作重要讲话。
会议对获得“纺织之光”2015年度中国纺织工业联合会科学技术奖、教育教学成果奖、教师奖、学生奖、针织内衣创新贡献奖、全国纺织行业技术能手、技能人才培育突出贡献奖的获奖单位和个人代表颁奖,并为全国纺织技术创新示范企业、全国纺织科技创新人才颁发证书,同时为纺织之光科技教育基金会捐款单位授牌。
并行检测 篇3
循环冗余码, 即CRC码又称 (n.k) 码, 它利用数据流通线性反馈移位寄存器产生一个基本特征量, 用这个特征量来检测调制的或讹误的串行数据流, 具有很强的检错能力, 所以, CRC码又被称为CRC校验码。
CRC校验码具有以下显著的特征:
1) CRC校验码能准确检测数据的一般性错误, 它既能检测随机信道中出现的独立数据的错误信息, 还能检测突发信道中连续相关性突发信息错误。这种特征在一位错、两位错以及奇数位数据信息错误的检测中应用较为广泛。
2) 当数据信息的编码原则为循环冗余前的原始数据前部分加冗余校验码组成时, 更有利于系统对数据错误的读取和检验。
CRC码能通常能对单位或双位错误、奇数位错误、小于等于所采用多项式级数的并发错误等完成数据信息错误检测。
2 生成CRC的方法
利用CRC校验码进行数据冗余检测时, 假设数据发送端生成一个D (X) 函数, 则数据接收端以D (X) 为目标函数进行数据检验。如果要检验的数据块的数位为N, 则由N (X) 组成的多项式的数阶一定低于D (X) 的数阶。其检验错误信息的原理为:首先由数据发送端根据既定数据块生成对应的CRC校验码, 这个校验码的表达式能被D (X) 函数整除, 将生成的CRC校验码通过信道传输到数据接收端, 当数据接收端接收到的数据信息能整除D (X) 时, 说明传输无误, 否则, 说明数据传输错误, 请求再次发送数据信息。
CRC校验码的检测过程是由将原始数据的数位以D (X) 函数的数位为目标加上冗余数位串进行补齐, 数据发送端原始数据和冗余数位串进行组装后进行发送数据接收端则将接收到的正确CRC校验码以D (X) 函数的位串进行等长数据截取, 即保留原始数据的数据位串。CRC校验码错误信息检测通过以2为模的除法运算, 将接收端接受到的CRC数据位串除以D (X) 数据位串, 如果能够整除, 说明接收数据信息无误, 否则, 请求再次发送数据。
生成原始数据的CRC校验码方法为:
1) 假设D (X) 为r阶数据, 在原始数据的尾部添加r个0, 使数据信息的数位n+r位, 生成对应的多项式为xrN (x) ;
2) 以2为模, 将D (X) 多项式的数据位串除以xrN (x) 的数据位串, 求得余数位串;
3) 以2为模, 将xrN (x) 的数据位串减去 (2) 中所求余数位串, 即生成原始数据带校验信息的CRC校验码。
3 CRC的性能分析
假设传输的多项式为T (X) , 而收到的为T1 (X) , 接收方计算T (X) /D (X) , 若结果等于0, 则认为T1 (X) =T (X) , 传输正确;否则, 传输有误, 记为T1 (X) =T (X) +E (X) 。由模2运算性质, 将E (X) 中数据信息都一一对应需要转换的数位时, 假设E (X) 中存在k个“1”位, 那么数据信息中将产生k个单个数位错误信息。当E (X) 能整除D (X) 多项式时, 这些错误信息将被漏检。
1) 假设产生单个数位信息错误, 那么E (X) =Xi, 其中i表示第i位数据信息出错。当G (X) 多项式至少包含两项, 且E (X) 除以D (X) 多项式的结果不为零时, 那么所有单个数位信息的错误将全部被检测发现。
2) 假设发生的错误信息为两个独立单一数位错误, 且E (X) =Xi+Xj, i>j, E (X) =Xj (Xi-j+1) , 当D (X) 数据信息整除X, 且D (X) 不能整除Xi-j+1表达式时, 数据错误信息将被检测发现。
3) 假设数据信息存在奇数个错误, 那么E (X) 表达式有奇数个数位项, 在模2运算过程中不会有奇数个多项式以X+1作为因子, 所以可以选用X+1做为D (X) 的因子来检测所有奇数位数据信息的错误。
4) 假设数据信息为n-k个突发性数位信息错误, 那么E (X) =Xj (Xk-i+...+1) , 其中i+k-1≤n-k-1, 当D (X) 数据信息中存在X0项, 且D (X) 数据信息是n-k次多项式, 即E (X) /D (X) ≠0, 所以, n-k次多项式能将所有长度小于等于n-k的突发性信息错误全部检测发现。
5) 假设产生的数据信息错误的集中差错长度为n-k-1, 当集中差错数据信息和D (X) 多项式相同时, 错误信息将被漏检。根据集中差错信息的定义, 数据信息的第一位和最后一位必须是“1”, 所以只有当其他n-k-1位完全与D (X) 中对应数位的信息一致时才被漏检, 其漏检概率为1/2n-k-1。
6) 当产生数据集中差错信息的数位长度大于n-k-1时, 某一坏帧数据被漏检发现的概率为1/2n-k-1*1/2=1/2n-k。
根据以上分析结果表明, (n, k) 循环冗余码可以检测发现以下错误信息: (1) 所有奇数个错误信息; (2) 所有两位错误信息; (3) 所有不超过n-k个数位的突发性错误信息; (4) 对于n-k+1位的突发性数据信息错误, 其被检测发现的概率为1-1/2n-k-1; (5) 对于长度大于n-k+1位的突发性数位信息错误, 其被检测发现的概率为1-1/2n-k。
4 用VHDL语言实现CRC
VHDL语言通常用于数字系统中结构、行为、功能和接口的描述。除了拥有自身包含的诸多具有硬件特征的语句外, VHDL语言形式和描述风格和句法与一般的计算机高级语言相当类似。和其他的硬件描述语言相比, VHDL具有更强的行为描述能力, 拥有丰富的仿真语句和库函数, 随即可对设计进行仿真模拟, 能够及时检验任何设计系统的功能可行性。
如果数据信息以位串形式表示, 通过串行方法能更好的进行功能校验。现今, 高速信号处理系统多以字、字节、双字节或更宽的字段为信息处理单位。通信系统中, 数据虽然以串行形式发送, 但在接收端仍被转换为字节形式来进行处理。下图为基于VH⁃DL语言设计实现的8位并行CRC检测仿真结果。
参考文献
[1]蒋安平.循环冗余校验码 (CRC) 的硬件并行实现[J].微电子学与计算机, 2007, 24 (2) :107-110.
[2]李晓珍, 苏建峰.循环冗余校验CRC算法分析及实现[J].中国科技信息, 2010 (13) :100-101.
福德与痛楚并行 篇4
天亮前开始下雨,雨一直下到中午还未停,眼看就到中午了,无奈之下,只好冒雨出发。下坡到江边,又走巨石滩,石头湿滑又有青苔,稍不小心就会滑倒。脚上2000多元的(CRISPI)硬底登山鞋面对湿滑的石头,一筹莫展,成了桑杰他们脚上43元军胶鞋耻笑的对象,令我尴尬不已。
下午1点30分左右,前进中,遇到一条水流湍急的山涧,它就是大名鼎鼎的所隆山涧,曾于2006年6月(因水大)让中科院科考队放弃计划原路返回。此时的山涧宽约20米左右,水流湍急,稍有不慎,就会被汹涌的山涧冲入雅鲁藏布江中,我对登山鞋已经不抱什么希望,只得把它脱下来,用手拎着,而后赤足过河。扎西站在水中为我做人体盾牌,在其协助下’我安全涉过了所隆山涧。
离开所隆山涧,前行不到10分钟,又遇到一条水流略小的山涧,还好,有前人铺设的树木,队伍通过的还算顺畅。
顺着山坡走一段,再次下到河谷中,前面一座绝壁挡住了雅江,令其拐头向北而去。而我们,必须要翻过它才能进入到雅江大峡谷无人区的核心地段。挡在眼前的大山就是康卓索朗。康卓,藏译“空行母”,意思是在空中行走;索朗,在藏文中是福德的意思。这座大山喻意着“空中行走的福德”。
为了保持体力,大家决定就此宿营,好好休整,明天过山。看下时间,正是下午3点钟。我忽然想起,有资料记载,这附近好像有个温泉。一问桑杰,果然不假,温泉就在营地西面约100多米的河滩上。在我的煽动下,大家纷纷赶到温泉。一看,原来所谓的温泉,就是仅能容纳一双脚的水坑而已,泉水呈绿色,周围的水迹和石头上呈黄色,周围的空气中散发出一股硫磺的味道。水温50℃-60℃。大家逐一过去烫烫脚,可当我看到冒出的绿色气泡和闻到刺鼻的硫磺味道后,随即放弃了尝试。
通常,温泉的形成,一般而言可分为两种:一种是地壳内部的岩浆作用所形成,或为火山喷发所伴随产生,火山活动过的死活山地形区,因地壳板块运动隆起的地表,其地底下还有未冷却的岩浆,均会不断地释放出大量的热能由于此类热源之热量集中,因此只要附近有孔隙的含水岩层,不仅会受热成为高温的热水,而且大部份会沸腾为蒸气。多为硫酸盐泉。二则是受地表水渗透循环作用所形成。也就是说当雨水降到地表向下渗透,深入到地壳深处的含水层形成地下水(砂岩、砾岩、火山岩、这些良好的含水层)。地下水受下方的地热加热成为热水,深部热水多数含有气体,这些气体以二氧化碳为主,当热水温度升高,上面若有致密、不透水的岩层阻挡去路,会使压力越来越高,以致热水、蒸气处于高压状态,一有裂缝即窜涌而上。热水上升后愈接近地表压力则逐渐减少,由于压力渐减而使所含气体逐渐膨胀,减轻热水的密度,这些膨胀的蒸气更有利于热水上升。上升的热水再与下沉较迟受热的冷水因密度不同所产生的压力(静水压力差)反复循环产生对流,在开放性裂隙阻力较小的情况下,循裂隙上升涌出地表,热水即可源源不绝涌升,终至流出地面,形成温泉。在高山深谷地形配合下,谷底地面水可能较高山中地下水位低,因此深谷谷底可能为静水压力差最大之处,而热水上涌也应以自谷底涌出的可能性最大,温泉大多发生在山谷中河床上。
我目测了一下,温泉距离河边的距离在十几米左右,高度差在2米上下,现在是枯水期,如果到了雨季,江水蔓延上来之后,到这里时涨2~3米应该是没有问题的,到那时,温泉可能会被淹没掉。
4月8日,周日,小雨-偶转多云-小雨,进入无人区第七天
从康措索朗醒来,除了外面咆哮的江水就是雨滴打在帐篷上的声音。又是下雨。还有,通过吃胃药,前几天每天早晨起来就能感受到的胃痛今天基本消失了。只不过这几天连续的爬升与穿越石阵加上几乎不间断的雨令我开始有身心疲惫的感觉,希望能尽快脱离阴霾的天气和恶劣的环境。我收拾好帐篷对桑杰说:如果天气不好,我们就尽快赶路,因为雨天也拍不成什么片子,早一天穿出无人区,大家就能早一天回家。桑杰连说“就是,就是。”
从江边出发,开始爬山,300多米的一个大岩壁,与地面呈80多度,十分陡峭。顺着岩缝,手脚并用抓着灌木或草根,“之”字型上升,上到江边的岩壁顶端,再下行。雨后到处湿湿的,几步一滑。队友扎西的手掌不小心又按在火麻草上,连声大叫。我前几天曾经领教了这草的厉害,先是刺痛,而后就是发麻。后来只要爬坡,我就带上橡胶手套,这样即便是不小心抓到火麻,也不会受伤。
岩壁上,到处是杜鹃树,每次看到她们,我心里就会有份宽慰。她们在带给你一片美丽的同时,还给予一份安全的保障。
中午到了江边休息吃午饭。头顶上难得的出现了太阳,于是大家连忙拿出潮湿的衣服、帐篷和被褥凉在江边的石头上晒。可大家刚铺好家当,硕大的雨点就在太阳的光线中落了下来,令大家哭笑不得。这就是大峡谷的气候。
休息时,我向东望去,忽然发现,在营地东面200米的地方,其对岸的绝壁上有一条数百米长的瀑布飞流直下,如玉带一般。虽然瀑布并不宽,但其纤细的身躯将千丈绝壁点缀得分外俊美。
过了白马狗熊,我们开始进入大峡谷的核心区域了。
过了一条小溪后,翻上一道山梁,就来到了当年湖南驴友“老砖”遭遇滑坡受伤的地方,那次“老转”一人雇名导西饶计划穿越大峡谷无人区,在此因滑坡造成盆骨骨折,后来西饶把其背到白马狗熊,那时寺里还有3名喇嘛修行,西饶让他们帮助照管“老转”,自己回加拉搬兵救援,最终用了整整64天才脱离险地。这件事情几乎成为所有进山导游至此必谈的一件事情。
今天是进入峡谷以来难度最高的一天,上下午加起来有超过半天的时间一直在峭壁上横切。下午在山林里穿行,迷了路,我的体力已经接近崩溃的边缘,连续摔倒,浑身是泥,水壶中的水也告急,看到这里,可能有很多朋友奇怪,水力资源如此充沛的大峡谷,怎么会缺水呢?很简单滔滔江水远在百米的绝壁之下’只能闻其声,而不能取之。恰巧这段路上没有溪水和泉眼,加上藏族兄弟没有多带水的习惯,不渴才怪。而实际上,我仍对后面路况的水源补给估计不足,以致险些在最后的阶段崩溃。
天渐渐暗下来,诸多的困难导致今晚无法按时到达原定的宿营地,不得不在一处接近水源的地方安营扎寨。营地空间狭小,而且遍布恐怖的火麻。桑杰他们四个人因营地面积太小搭不起帐篷,只能勉强的把一块雨布拉起来将就宿营。仅仅一晚上,他们4人就因这种基本是露天式的宿营付出了代价——全部中了蚂蟥,其中边布扎西身上就中了14只之多,一条臂膀上鲜血淋漓。
并行检测 篇5
关键词:虚拟手术,碰撞检测,CUDA,并行化,AABB,层次包围盒
1 引言
虚拟手术系统在医学手术排练演习、手术教学、手术技能训练等方面有着非常重要的作用, 它靠术前获得的医学影像信息, 建立三维模型, 在计算机建立的虚拟的环境中设计手术过程、进刀的部位、角度, 从而提高手术的成功率。由于在虚拟手术环境中尽可能满足沉浸感和真实感, 因而实行性要求非常高。碰撞检测作为虚拟手术中的重要一环, 承担大量复杂的计算, 是制约实时性的最主要因素。
碰撞检测是游戏、虚拟现实中重点研究的问题, 对于能否产生真实感的场景至关重要。研究学者对此进行了许多有意义的工作, 针对不同的应用场景, 采用不同的方法提出了很多实用的碰撞检测算法。这些算法主要分为以下四类:
(1) 基于层次包围盒的碰撞检测算法。
(2) 基于空间层次分割的碰撞检测算法。
(3) 基于CPU多核多线程的碰撞检测算法。
(4) 基于GPU的碰撞检测算法。
其中, 基于层次包围盒的算法根据包围盒类型的不同, 又可分为包围球、轴对齐包围盒 (AABB) 、方向包围盒 (OBB) 、离散方向凸包围盒 (k-dop) 和凸包的层次树算法。基于空间层次分割的碰撞检测是将整个虚拟空间划分为体积相等的单元格, 只对占据同一单元或领域的单元格的对象进行相交测试。常用的空间分割方法有K-D树、八叉树、BSP树等。基于CPU多核多线程和基于GPU的的算法是在这些碰撞检测算法的基础上进行的一种改进, 然而, 前者效率提升并不十分明显, 后者算法的实现较为复杂, 且有很大的提升空间。
随着虚拟系统的规模越来越大, 模型也越来越复杂, 很多算法将无法满足实时性的要求。本文在分析了已有算法的基础上, 利用GPU可以大量并行计算的优点, 对碰撞检测算法分成两个阶段进行并行处理, 同时采用CUDA平台简化算法的实现, 使之较传统的基于CPU算法, 效率提升了3-5倍, 完全满足虚拟手术中实时性的要求。
2 并行碰撞检测算法的思想
本文采用基于AABB的层次包围盒的并行碰撞检测算法。该方法是利用体积略大而形状简单的包围盒把复杂的几何对象包裹起来。在进行碰撞检测时, 首先进行包围盒之间的相交测试, 当包围盒之间相交时, 再进行几何对象之间精确的碰撞检测。基于AABB的层次包围盒的碰撞检测算法由于具有良好的计算性能, 适用于复杂环境中的碰撞检测, 因而得到了广泛的关注。具体而言, 对于虚拟场景中的两个对象, 首先分别生成层次包围盒树, 然后通过递归遍历层次包围盒树来确定发生碰撞的区域。另外, 在虚拟手术过程中, 由于要实时地对标定的干扰点或区域进行剔除, 因而在下一次进行碰撞检测前应对包围树进行更新, 实时地生成包围盒树。通过实验和分析, 生成包围盒树和遍历包围盒树执行多次重复的代码, 每次处理不同的数据, 因此, 可以采用多线程的方式, 在同一时刻同时执行相同的代码, 同时完成处理不同的数据。由于CPU处理器数量有限, 而GPU处理流非常多且每个处理流可以作为一个计算单元, 因而可以利用GPU流处理单元进行并行计算, 从而可以大幅缩减计算的时间。
2.1 并行生成包围盒树
常用的生成包围盒树有两种方法, 分别是自顶向上和自底向上两种方法。自底向上生成包围盒树的方法与霍夫曼编码类似:
(1) 对于一个含有n个基本几何图元 (一般为三角面片) 的包围盒, 将每个基本几何图元用AABB进行包围, 组成n棵二叉树的集合F={T0, T1, …, Tn}, 其中每棵二叉树Ti中只有一个根结点, 其左右子树均为空。
(2) 遍历F中的每个Ti, 在其余的二叉树中找到与Ti距离最近的Tj, 将Ti与Tj作为左右子树重新合并成一棵新的二叉树, 并更新生成后的二叉树包围盒大小。重复该过程直到F中所有的二叉树被处理完成, 该过程的时间复杂度为O (n2) 。
(3) 每合并一颗二叉树, 将从F中删除原有的二叉树, 并将新生成的树加入到F中。
(4) 重复b和c过程, 直到F中只含有一棵树为止。
上述算法的时间复杂度为O (n2log2n) 。从上述算法的描述过程中可以看出, 遍历与合并都是做着重复的工作, 只是处理的数据不同, 因此, 可以使用并行的方式进行改进:
(1) 根据n个基本几何图元的包围盒构成n棵二叉树的集合F={T0, T1, …, Tn}, 初始时, 每棵二叉树只有一个根结点, 且其左右子树均为空。
(2) 从F中取出Ti, 并行计算其余根结点到Ti的距离, 再用并行的方式找到与Ti距离最小的根结点Tj, 然后将这两个节点合并为一个节点, 并以此节点并行计算到其他节点的距离。
重复该过程直到F中只含有一棵树为止。
上述过程如图1所示。
由并行树生成过程可知, 对于有n个基本几何元素的模型, 该算法在计算根节点之间距离的时间复杂度为O (n) , 在每一次寻找最小的距离根节点采用二分查找算法, 时间复杂度为log2n, 因而整个算法的时间复杂度为O (nlog2n) 。
2.2 并行遍历包围树
原始的遍历算法可以用图2所示伪代码进行描述。
从图2中可以发现, 对于含有n个模型的复杂场景, 假设每个模型平均含有m个多边形, 则此碰撞检测算法的时间复杂度为O (n2m2) , 即使问题退化到只含有几个模型的场景, 其复杂度也为O (m2) 。这对于实时性要求高的虚拟手术场合是无法满足的。很多研究者在此算法的基础上进行了深入的研究, 在权衡精度与速度之间提出了很多改进的算法, 但只满足一定场景的情形。
经过分析, 算法在遍历的过程中, 总是将每一个多边形 (可以用AABB进行近似, 简化计算) 串行与另一个模型的每一个多边形进行计算判断, 这个过程完全可以通过多线程的方式并行计算。因此, 对于将要发生碰撞的两个模型, 我们只对其中一个进行生成AABB包围盒树, 然后用另一个模型中的每个基本图元的包围盒并行的对这个包围盒树进行遍历, 从而获取碰撞信息, 并将其结果存放在一个数组中返回。
并行遍历包围树的过程如图3所示。
算法伪代码如下图4所示。
3 测试结果与性能分析
NVIDIA公司开发了一种称为CUDA通用并行计算架构, 它是一种基于NVIDIA图形处理器的并行计算体系架构, 并使用标准的C语言作为其编程语言, 因此很容易将上述算法在CUDA平台上进行实现。采用实验室配有的PC机及配置的GTX480显卡, 它含有480个SP (Streaming Processor) 基本处理单元, 对并行算法进行测试。为了对比说明效果, 分别采用了开源的碰撞检测库coldet和CUDA进行了对比测试, 测试结果如表1所示。
通过实验结果表明, 在虚拟手术仿真的过程中, 采用CUDA的并行加速算法的帧率达到60帧以上, 完全满足实时性的要求, 而采用coldet的开源碰撞检测库, 在整个过程中有明显的滞留感。
4 总结
本文对碰撞检测进行了分析, 将算法进行了并行化处理, 并采用CUDA对算法进行实现, 最后在虚拟手术系统中进行了测试, 结果表明, 采用CUDA的并行碰撞检测算法明显缩短了系统的耗时, 完全满足虚拟手术系统实时性的要求。该算法具有很好的通用性, 因此也可以用于视频游戏, CAD等场景。
参考文献
[1]马登武, 孙隆和, 佟明安.虚拟场景中的碰撞检测算法[J].火力与指挥控制.2004, 29 (4) :45-48.
[2]芦鸿雁.基于层次包围盒的碰撞检测算法研究[J].计算机与数字工程, 2008, 36 (2) :23-25.
[3]Tang M, Manocha D, Tong R.MCCD:Multicore collision detection between deformable models using front-based decomposition[C].SIAM/ACM Joint Conference on Geometric and physical modeling, 2009:355-360.
[4]A.Greβ, M.Guthe, R.Klein.GPU-based Collision Detection for Deformable Parameterized Surfaces[J].Eurographi cs, 2006, 25 (3) :497-506.
[5]Kim D, Heo J P, et al.HPCCD:Hybrid parallet continuous collision detection using CPUs and GPUs[J].Compter Graphics Forum, 2009, 28 (7) :1791-1800.
并行检测 篇6
1 研究的意义
对并行入侵检测系统进行研究是必不可少的环节,而且也具有一定的使用价值,现在已经成为全球关注的重要话题。通过使用一台主机的方式进行检测,已经不能满足于当前的发展情况。所以,采取多台机器一起进行的方式能够较好的达到入侵检测系统所需要的技术效果。并行入侵检测系统中的流量怎样进行分配给不同的分析器是目前应该值得研究的问题。流量分配对并行入侵系统产生一定的影响,所以针对上面所述问题展开讨论,对入侵检测系统进行合理的讨论具有很重要的意义。
2 入侵检测系统的基本含义
“入侵”可以理解为是没有在使用过程中进行授权,由此导致数据遭到破坏,连合法用户都不能使用,其产生的影响是十分严重的。入侵检测是对网络安全进行主动的防御,能够在入侵时被察觉。这一检测主要是对计算机体系里面较多信息进行仔细研究,发现是否存在异常的情况发生。它不但能够检查出外部系统的入侵方式,而且也能够对内部没有正式授权的用户时刻监督。因此,由相关的软件和检测的性能进行有效组合就形成了入侵检测系统。
3 入侵检测系统的优势
入侵检车系统不但能够保护网络安全,而且还能够提高网络效率。对此,将其分成以下几种功能:
3.1 识别黑客常用入侵与攻击手段。
相关人员采取入侵检测技术能够对不同种类的攻击特点进行合理分析,能够充分的将黑客攻击的手段快速查出,并且能够对此做好恰当的解决。通常情况下,黑客在入侵过程中在收集信息时,会在第一时间被抓到。
3.2 鉴别对系统漏洞及后门的利用。
一般来说,入侵检测系统普遍都会存在有关系统漏洞的相关资料,采取网络数据包进行连接的方式,能够将指定的相关内容进行合理研究,并且能够及时的对网络通信中出现的问题及时察觉。
3.3 监控网络异常通信。
入侵系统能够识别网络中存在异常的通信情况而产生提示,确保网络通信具有一定的合法性。无论哪种网络数据只要出现不符合相关制度的情况都会在第一时间检查出来并且做出提醒。
3.4 完善网络安全管理。
入侵检测系统是对攻击或者相应的破坏予以及时的发现,能够对不法网络侵略者进行合理的预防,促进安全管理体系能够顺利的开展。通常采取入侵检测系统的方式能够对数据等相关内容进行恰当分析,从而提高网络管理的整体水平。
4 异常入侵检测方法
基于特征选择的异常检测方法基于特征选择的异常检测方法是通过从一组度量中选择出能够检测入侵的度量构成子集,从而预测或分类检测到的入侵行为。异常检测的关键在于难以区分异常行为和入侵行为,选择合适的度量也很困难。度量子集的选取依赖于入侵的类型,一个度量不可能适应于所有的入侵类型。预先定义好度量可能会造成漏报入侵行为,最理想的入侵度量集应该是能够判断和决策。假设与入侵检测相关的度量有n个,则这n个度量可构成2个子集,从中可以看出搜索的空间与度量集成指数关系,所以采用穷举搜索理想的度量子集是不实际的。MACCABE提出用遗传方法搜索整个度量子空间来寻找正确的度量子集,其方法是采用学习分类器方案来生成遗传交叉算子和基因突变算子。
5 误用入侵检测解决
基于专家系统的误用检测方法是根据安全专家对可疑行为进行分析的经验形成一套推理的规则,然后运用推理算法来检测入侵。所以基于专家系统的检测方法也称为基于规则的检测方法。Snort入侵检测系统就采用了这种方法。该方法按照其规则的组成方式可以分为向前推理规则和向后推理规则两类。向前推理规则是根据收集到的数据,规则按预定的结果进行推理直至推出结果为止。而向后推理规则是根据结果推测可能发生的原因,然后再根据收集到的信息来判断真正发生的原因。前者能比较准确的检测出入侵行为,误报率低,但无法检测未知的入侵行为,而后者虽然能够检测出未知的入侵行为,但误报率很高,所以目前大部分的IDS都采用向前推理规则。
6 基于网络的入侵检测系统
基于网络的入侵检测系统是通过监听网络中的数据包来获得必要的数据来源,并通过协议分析、特征匹配、统计分析等手段发现当前发生的攻击行为。它能够实时监控网络中的数据流量,并发现潜在的攻击行为和做出迅速的响应。但这种方式不能解析监听到的加密信息以及交换网络上的数据包,而且在高速网络上监听数据包时会大大增加系统的开销。另外,它的分析对象是网络协议,通常而言是标准化的,独立于主机的操作系统类型,因此一般不存在移植性的问题。同时,它的运行丝毫不会影响主机或服务器的自身运行。
7 入侵检测系统面临的问题
在最近几年里,尽管入侵检测系统取得了一定的进步,但是因为人们不能全面的对检测系统进行熟练的掌握,因此入侵检测手段处在发展的前期阶段,技术较生疏,从以下内容可以看出相关问题:
入侵检测系统是对网络的相关数据进行截获的方式做出合理分析,以此来对攻击行为进行判断的系统,这个阶段资源的使用会很多。但是,目前的入侵检测系统不能满足于当今网络传输的效率,因此就会出现漏掉数据的情况发生,从而发生漏报的现象。与此同时,因为特征库在组织过程中比较简便,所以不能对繁琐的攻击方式进行有效监督,也是造成漏报的一个主要因素。
8 结论
总而言之,通过上述内容可以了解到并行入侵检测系统存在较多的优势,因此相关人员应当做到合理的运用。文中也表明了并行入侵检测系统中还存在一些不足之处,这就需要相关人员通过不断的创新,从而制定出恰当的方案来完善该系统,能够造福于人类,营造一个和谐、健康的网络环境。加大相关系统的研究力度,为我国的网络信息化做出贡献,促进我国经济的不断繁荣昌盛。
摘要:随着网络时代的不断发展,以往集中入侵检测体系存在一定的不足,相关人员在检测过程中会出现数据不完整的情况,从而对准确性产生一定的影响。对此,本篇文章主要对数据分流的并行入侵检测系统进行合理分析,进而结合实际情况提出相关建议,仅供参考。
关键词:数据分流,并行入侵检测系统,研究
参考文献
[1]赖海光,黄皓,谢俊元.PABCS:一种用于并行入侵检测的流量划分算法[J].计算机学报,2007(4).
[2]陈训逊,方滨兴,李蕾.高速网络环境下入侵检测系统结构研究[J].计算机研究与发展,2004(9).
[3]刘航,戴冠中,李晖晖,慕德俊.基于FPGA的高速网络入侵检测系统[J].计算机应用,2004(5).
[4]彭蔓蔓,喻飞,李仁发.一种基于网络处理器的入侵检测系统[J].计算机应用研究,2004(4).
并行检测 篇7
接触网高度测量主要分为两大主流方向, 即接触式测量与非接触式测量[5,6]。接触式测量, 一般是在受电弓上安装角位移传感器, 受电弓弓板高度发生变化时, 主轴的角度发生变化, 根据此角度变化值即可反演出接触网的高度变化[7]。非接触式测量主要是基于光学原理, 一端由光源对准接触网发射准直光束, 另一端由探测器接收反射光束, 根据光束在探测器靶面的投影位置得出接触网高度[8]。
接触式测量一般为间接式测量, 无法真实反映出接触网高度的实际变化情况, 因而不能为受电弓提供反馈预测, 而非接触式测量则可有效规避上述问题, 同时不会对被检测受电弓的力学特性产生任何影响, 所以成为当前主流的测试手段。但是, 现有非接触式测量大多基于光学方法, 容易受到外界光线环境干扰, 特别是接触网高度测量大部分是以天空为背景, 在太阳直射的情况下, 会在一定程度上影响测量结果, 因此应在减弱非相干光源干扰等方面加以改进。本文所设计的接触网高度快速检测系统 ( 见图1) , 在现有的非接触式测量设备的基础上, 增加了GPS太阳高度角定位模块, 通过激光雷达对准角度的反向调整使其尽量避免太阳直射对测量结果的影响, 测量示意图如图2 所示。
1 系统的硬件结构
该接触网高度检测系统主要由激光雷达阵列、GPS太阳高度角定位模块、数据采集及处理模块、激光雷达对准角度调整结构、接触网高度输出模块等几部分组成 ( 见图3) , 固定在电力机车顶部受电弓装置附近。
1. 1 数据采集及处理模块
作为整个系统的数据处理及时序控制的核心部分, 采用FPGA + DSP双处理器结构。其中, FPGA用于时序信号的产生、信号采集芯片的驱动、控制命令的收发; 而DSP则主要是用于高速信号的提取与处理。
1. 2 激光雷达阵列
为了减小受电弓的单点磨损, 接触网沿导轨的水平方向呈“之”字形分布, 因此, 不同时刻接触线与受电弓接触点位置不同。要想测量其当前高度, 必须首先对其位置进行快速定位后再进行测量。在实际测量中, 接触网高度起伏在5. 3 ~ 6. 5 m, 去除车体及结构高度, 测量高度范围小于2 m。由于动车的接触网线径为12. 9 mm, 为检测出接触线高度, 要求激光雷达角分辨率不大于0. 37° 即可[9]。为此, 本系统选择UTM - 30LX - EW型2 维激光扫描雷达对机车上方接触线可能存在的位置进行快速扫描, 通过信号处理, 可计算出当前接触网位置和高度。该雷达测量范围270°, 可在100 000lx光强下工作, 且扫描角分辨率高达0. 25°。与本文数据采集及处理模块相结合, 单次扫描及高度测量时间小于30 ms。
为了进一步缩短单次测量时间, 提高检测频率, 采用了激光雷达阵列结构。该结构由若干激光雷达排列组成, 用于实现对当前接触网高度进行等间隔分时循环采样, 时序图如图4 所示, 以进一步提高测量频率。本系统采取的雷达阵列数为2。
1. 3 GPS定位模块及雷达对准角度调整结构
本系统通过GPS模块实时获取机车当前位置、时间信息, 计算出当前太阳高度角后, 根据计算的角度通过反向调整激光雷达的对准角度调整结构, 使雷达阵列背对太阳的角度进行接触网高度测量, 以避免太阳直射的影响。为了避免对准角度调整结构的频繁调整对测量速度产生影响, 仅将机车上表面以上的半球空间平分为两大部分, 如图5 所示。当太阳高度角位于空间1 范围内时, 调整雷达阵列对准1 位置;当太阳高度角位于空间2 范围内时, 调整雷达阵列对准2 位置。只有太阳高度角在空间1 和空间2 发生角度变换时, 才进行角度调整, 其他时刻雷达阵列位置保持不变, 从而避免了调整结构的频繁扰动。
1. 4 接触网高度输出模块
每次接触网高度计算结束后, 实时通过该模块的RS485 串行接口将计算结果反馈给受电弓控制器, 以便为受电弓的搭接角度提供信息参考。
2 系统的软件控制流程
结合上述硬件部分的描述, 本检测系统主要实现如下功能: GPS信息采集及太阳高度角计算、雷达阵列对准角度的调整、雷达阵列的驱动与数据采集、接触网高度的数据处理与计算、检测结果的反馈输出。系统流程图如图6 所示。
设备在运行过程中, 数据采集及处理模块首先利用GPS定位模块, 读取机车当前的位置和时间信息, 按照太阳高度角计算公式对当前位置太阳高度角进行计算。根据计算得到的太阳高度角范围, 按照图5 方式, 通过角度调整结构对激光雷达阵列的对准角度进行判断和调整。角度调整结束后, 数据采集及处理模块通过时序驱动信号, 对激光雷达阵列依次进行等间隔驱动控制, 如此循环往复。激光雷达阵列将采集到的扫描数据依次传输给数据采集及处理模块。数据处理模块将扫描数据进行提取和计算, 将计算结果实时反馈给受电弓控制器, 以实现对接触网高度的持续测量。
3 实验结果
检测精度是衡量整个系统性能的最为关键性的指标。利用该系统分别对500 mm、1 000 mm、1 500mm、2 000 mm的给定距离进行100次连续测量, 测得的误差范围分别为±14 mm、±10.5 mm、±10.5mm和±8.5 mm。
在500 ~2 000 mm测量范围内, 本系统的测量精度小于 ± 15 mm。此外, 在系统实时性方面, 通过实际测量, 平均单次采样及处理时间小于16 ms, 即测量频率小于50 Hz。
4 结论
非接触式接触网高度快速检测系统与现有常规接触网高度检测设备相比, 引入了多个激光雷达等时差并行循环测量, 大大缩短了单次扫描与测量所消耗的时间。此外, 还将太阳高度角测量模块引入系统中, 作为参考值反向调整激光雷达测量时的对准角度, 进一步降低太阳直射对测量结果造成的干扰, 增强了系统的适应性和稳定性。
参考文献
[1]占栋, 于龙, 肖建, 等.接触网几何参数高速动态视觉测量方法研究[J].仪器仪表学报, 2014, 35 (8) :1852-1859.
[2]林邓伟, 李东亮.铁路接触网导线几何参数的激光测量系统[J].电子器件, 2015, 38 (1) :174-177.
[3]王春革.铁路接触网融冰电器系统设计[J].工业控制计算机, 2015, 28 (2) :113-115.
[4]郭晓旭, 刘志刚, 张桂南, 等.角点配准与图像查分的接触网绝缘子故障检测[J].电力系统及其自动化学报, 2015, 27 (2) :8-14.
[5]马金芳, 于龙.我国地铁接触网检测现状及发展趋势[J].都市快轨交通, 2013, 26 (2) :26-29.
[6]彭朝勇.便携式接触网导线几何参数检测系统[D].四川:西南交通大学, 2005.
[7]朱德胜.德国接触网动态检测技术[J].电气化铁道, 2004 (3) :13-17.
[8]牛大鹏.非接触式接触网几何参数检测系统研究[D].四川:西南交通大学, 2004.
并行检测 篇8
死锁的问题是一个严重和复杂的并发系统。建立一些方法来自动检测并发系统中的死锁已成为一个重要的课题。至于自动死锁的并发程序的检测方法和工具, 可分为两个类别:静态检测方法和动态检测方法。
至于静态检测方法, 我们试图寻找一个潜在的死锁形式与目标程序来使实际运行。由于他们的目的是找出所有可能的死锁, 那些不能出现在实际环境, 多线程的执行时间和输入数据可以包含在结果。大部分这类工具基于形式化分析和模型检查。
至于动态检测的方法, 我们试图通过运行实际, 与一些探测器通过某种方法使其目标在实际执行中查找死锁的发生。我们打算在实际的环境中发生死锁检测时间的多线程的执行, 并输入数据。
一种理想的动态检测方法应满足以下三个基本要求: (1) 完整性:方法必须是能够检测出任何死锁。 (2) 健全性:该方法必须报告任何存在的死锁。 (3) 效率性:该方法必须能够得到执行, 以便它可以检测到死锁的位置。
至于效率, 我们是既要执行它, 要尽可能减少成本。死锁检测组件应列入目标系统本身, 为了准确地检测到死锁, 我们的想法是基于自我实现的高度可靠的测量原理并发系统。
有对java的动态死锁检测多种产品。我们坚持他们没有足够的完整性。尤其是, 大部分不是正确识别的通知等关系。通过这一原因, 其中大部分无法检测的文件不能将Java死锁的文件检测清单表达出来。
Java平台特有的问题是依赖性:现有的手段是平台依赖新生凹痕, 因为它们取决于特定的虚拟机。既然是独立于平台的Java最显著特点, 有工作的工具之Java程序也希望将平台独立, 它是重要的自我检测的测量原理。
动态检测方法是目前最好的, 从死锁检测领域的角度看, 这是非常类似Java的并发设施, 我们应对与Java特有问题时的Java程序中的死锁检测问题应用此方法。我们将在本文中介绍方法、推行工具死锁报告的一个示例。
2 在Java多线程程序中的死锁
死锁的并发Java程序这样表示:两个或多个线程互相阻塞, 而试图访问所需的同步锁继续他们的活动。在Java死锁通常被视为形成一个公正锁观点, 换句话说, 我们必须意识到我们处理这个问题时的同步等待关系不是只有中止显示器。现在我们需要更严格地定义此问题。
定义1一个线程被认为是阻止处于执行状态的并发Java程序, 如果它在一个或多个线程的同步某些同步点等待着一或多个线程等待状态, 并且将保留此等待状态, 直到出现了同步, 否则该线程已停止。
定义2死锁是一个并发Java程序同步等候在那里的一些阻塞的线程之间的执行状况形成一个周期, 因而在周期所涉及的线程被认为发生死锁。
定义3在一个并发Java程序执行状态被阻塞的线程被认为是如果正在等待同步与死锁的线程被阻止, 但不是涉及周期中的死锁涉及被死锁的线程。
请注意死锁的线程应该被认为被阻止的线程等待不能改变任何被死锁的线程的死锁状态。
定义4一个活锁是一个Java程序的每个线程组的成员一组线程都保持线程组中的沟通, 并因此可以永远不会响应任何外界线程的同步请求, 否则在小组中的任何线程被认为是死锁。
定义5如果一个并发Java程序的执行状态是它正在等待与活锁的线程同步被阻塞就被认为是死锁。
请注意, 它也是重要的区别陷入僵局的形式活锁的线程的封锁, 因为打破了一活锁, 阻塞的线程等候不能改变任何陷入僵局线程死锁状态的线程。
3 运行时死锁检测器中使用Java虚拟机分析器界面
我们开发了基于Java程序的运行时死锁检测仪。它必须能够监视某种目标Java程序运行时所发生的事件。还有其他办法, 一个是运行时环境支持的方法, 而另一种是源代码转换的做法。
Java程序运行在Java虚拟机, 它很容易得到一些运行时间环境的信息。具体地说, Java虚拟机分析器界面 (JVMPI) 是我们的工具, 是监察的Java程序的行为。该JVMPI是在Java虚拟机和一个进程分析器界面, 用于我们的死锁检测的方法过程中探查器代理之间的接口。该死锁探测器部分包括本机代码 (不是字节代码) , 它在Java虚拟机进程运行。当与死锁检测有关每个事件发生时, 有关信息通过JVMPI传递给死锁检测仪。
运行时死锁检测仪使用源代码转换
我们开发了一个运行在死锁探测器上的源代码转换的方法, 目标在Java程序P是由一个预处理器到另一个Java程序P1'中, 使得P1当前行为和执行过程中的P沟通。运行时, 实时监测每个并发事件的P和P1, 并通过有关的运行信息实时监测事件发生的有关事件的信息传递到运行时显示器。
此事件通知时, 探测器需要一个线程被创建, 开始, 结束, 只是要求事件通知和直接进入同步的方法, 只是对接后转出和前后直接等待、加入或通知的所有方法被都调用。
4 此方法的优点和缺点
此方法的优点是它的平台独立性:任何目标程序的工具只不过是一个Java程序, 可以工作更在任何Java虚拟机。从独立测试原则的角度看, 它对测量有耐久性的优势, 因为它可以在任何虚拟机上。但是, 这一问题得到解决, 才能成为我们能够使用我们的僵局探测器上使用任何虚拟机JVMPI。
缺点是运算性能降低。其监测方案使用Java编写的, 其性能降低会比在运行时环境多。
5 结束语
我们研究Java程序中的死锁问题时讨论了如何在运行时及时地发现。同时, 我们制定了两个办法同时基于Java的程序运行时死锁探测器。我们成功的探测计划, 包括从一并发同步所有类型的等待关系陷入死锁。采用哪种方法应由设备的性能和平台独立性来权衡决定。
摘要:关于并行JAVA程序的可靠性, 死锁是最为严重和复杂的问题。在这篇论文中, 我们讨论了在并行JAVA程序运行时如何动态地检测死锁, 并提出了在一个JAVA程序的执行过程中, 处于等待状态的一个同步象征, 被称为JAVA线形等待图表。我们描述了各种类型的死锁, 并提出了一种计算程序来检测死锁和执行方法。
关键词:死锁,检测器,程序
参考文献
[1]卢超, 卢炎生, 谢晓东, 等.一种基于依赖分析的并发程序潜在算法[J].小型微型计算机系统, 2007, 28 (5) :841-844.
并行的彩色 篇9
但是,个人的纠结并不妨碍他对彩色摄影的未来作出准确的判断与预言,安塞尔·亚当斯也从未掩饰他对彩色摄影的关注,一生勤奋创作的亚当斯,留下了超过200页的书信和笔记,来记录他对彩色摄影的实践和理解。他还著书阐述与彩色摄影有关的一切,尽管这部分关于彩色摄影的理论最后被归在他摄影全集中技术系列的第五部分,但里面不乏大量形而上的对彩色美学的思考。在1949年的一篇草稿中,他断言“彩色摄影将迅速地成为主流”,尽管之前他曾经将彩色比作“走调的钢琴”(亚当斯的母亲曾想培养他成为钢琴家)。在82岁,他生命的最后时刻,他依然预言彩色摄影这种“诱人的媒介”( Beguiling medium)不远的将来就会与电子成像(Electronic image)一起,完全取代他所珍爱的黑白影像。
我们现在所处的时代,举目皆是彩色影像,而这在1950年代以前是不可想象的,那时彩色摄影并没有被纳入艺术的范畴,而是作为一种手段,为商业摄影、业余摄影爱好者的快照成像或为电影剧照海报服务。老一辈的摄影领军人物对彩色摄影的态度仍然趋向保守,沃克·伊文思(Walker Evans)当时认为“彩色摄影是粗俗的”,而彼时还属前卫的罗伯特·弗兰克( Robert Frank )也坚持“黑白就是摄影的色彩”。同时,也有一些年轻摄影师开始了彩色摄影的尝试,其中包括日后著名的威廉·克里森巴瑞(William Christenberry)与威廉·埃格尔斯顿(William Eggleston)。以埃格尔斯顿为代表的新彩色主义,对色彩会更加宽容,基本上将镜头前的一切照单全收,并不回避画面色彩的驳杂,色彩与摄影的关系在这些人的作品中变得更加自然。但亚当斯显然对这些人的作品有着自己的看法。“拍不好,就把画面弄成红色的”,他甚至这样评价过埃格斯顿的代表作“红色天花板”(The Red Ceiling)。那鲜艳的、大面积的红色明显与亚当斯对色彩的理解与运用大相径庭。
综观亚当斯的彩色摄影创作以及言论,可以看出,他大半生的彩色摄影实践其实是一种“矛盾的探索”。这背后既有个人原因,也有时势使然。与他同时代的大多数的美国西部风景摄影师都有着控制每一步影像成像过程的习惯,而在亚当斯接触彩色摄影漫长的40年中,彩色的冲洗工艺还是不能完全满足这些摄影师的掌控要求。柯达克罗姆彩色正片(Kodachrome colour transparency roll film)作为首次为大众所消费的彩色胶片,诞生于1935年,这是第一个在加工过程中使用减色法和成色剂的集成三层底版彩色胶片。它的洗印过程对于即使是像亚当斯这样的“暗房巫师”(他曾经的绰号)来说,还是过于复杂了。当时的低感光度也不允许柯达克罗姆在外拍等摄影领域有更多的开拓,即使在1950年代后,彩色照片的冲洗与印制仍是一件风险极大的事情,彩色影像的复制品以及报刊书籍上面的彩照,更经常是过分鲜艳与不受控制的。而与此同时,黑白的影调却是微妙并可以充分掌控的,不是对现实的夸张,并能很好地体现摄影师的意图。不涉足彩色摄影,是当时很多摄影师自认为明智的选择。
尽管如此,亚当斯的疑虑并没有妨碍他拍摄了数以千计的彩色胶片,最开始主要是因为客户的委托。1940年代末期,美国中西部的一些加油站,作为促销手段,会送给前来加油的客户一张亚当斯拍摄的彩色风光明信片,尽管大多数人不知道摄影师是谁。这些名为《看见你的西部》系列的精美彩色卡片,是埃索(Esso)等大石油公司买下亚当斯照片的版权,鼓励泛美汽车旅行,以达到多销售油品的目的。
亚当斯采用彩色摄影为客户服务,另一个原因是因为大公司和广告商喜欢新兴的彩色广告,而他本人为了生计,也不拒绝不菲的拍摄报酬。那个年代,任何在纽约中央车站候车的乘客,可能都会记得亚当斯所摄的大型彩色摄影广告牌,这些大型柯达广告灯箱18英尺高60英尺宽,在人流如织的车站高处煜煜发光。亚当斯本人对这些他拍摄的商业广告摄影的评价,则是一句令人费解的“美学上是不合逻辑的,但是技术上是非凡的”。尽管亚当斯在很多信件及草稿中,反复提及“彩色幻灯片只用于商业,黑白才是我的私人创作”,似乎在商业与个人创作之间,泾渭分明不容混淆。在使用彩色拍摄商业摄影之余,他还经常为《生活》、《财富》等杂志拍摄彩色照片。1950年,他曾在纽约现代艺术博物馆(Museum of Modern Art)展览过他的彩色影像而并非他的黑白经典。实际情况是,无论是外出拍摄商业任务,还是古根海姆基金资助下的拍摄,亚当斯经常在拍摄黑白的同时也换上彩色胶片,并且会一再地拍摄他所感兴趣的主题,不论当时相机后背里是什么类型的胶片。最著名的兰乔斯·德-陶斯教堂(Ranchos de Taos church)就是其中之一,在1930年与玛丽·奥斯汀(Mary Austin)合作的摄影集《陶斯印第安村庄》中,他就多次拍摄了这座位于新墨西哥的教堂,并成为他黑白摄影的经典之作。而1948年的彩色照片中,我们再次发现落日中的教堂,与黑白照片的角度几乎一样,但土墙后的天空色彩美丽,就像柔和的粉笔画。endprint
很长一段时间,亚当斯还同时担任着柯达伊斯曼公司和宝丽来公司的顾问,这两大公司几十年来都致力于追求逼真和可信赖的色彩。亚当斯也为各大杂志撰稿论述彩色摄影,但并非一味推介,里面经常夹杂着他对彩色摄影的个人看法,有的甚至让人感觉悲观:“彩色胶片的测光精度和色彩的相互关系所涉及的主观情绪影响之间存在着不可避免的冲突。” 1949年,他在一篇文章中甚至这样写道。
对一位大师事后的“经典”评价往往将其“固化”,也无形中舍弃了很多的丰富性,尤其在国内,谈“黑白”更是言必称亚当斯。详细了解之下,一个真实的亚当斯渐渐浮现了:他是一个一直走在技术前沿的摄影家,在50多年的摄影生涯中,有超过40年的时间他一直在“与色共舞”。实际上,对亚当斯的误解也并非追随者们一厢情愿所形成的,他示以世人的经典黑白面孔背后显然也有自己的考量。维基百科上对此的解释有一定的可信度,据专家分析,亚当斯首选黑白,主要有两方面原因。首先是他觉得颜色可以分散注意力,因此可能会影响一个艺术家在拍摄照片时,实现他的全部潜力。第二个原因是,亚当斯是一个“控制高手”,近乎偏执。他撰写技术书籍,研究出“区域曝光法”(Zone System),与同时代的爱德华·维斯顿(Edward Weston)一样,他们都推崇“预视觉化”(previsualization)的理念,坚持认为释放快门之前摄影师就该知道最终成像效果如何,这些观念和方法要求所有的摄影因素被纳入最终的洗印过程并加以完全控制。这样看来,亚当斯对彩色摄影的“欲迎还羞”就说得通,因为彩色缺少黑白那些可控的因素。
亚当斯本人的一些言论也验证了这些猜测。在生前委托小布朗出版公司作为自己作品出版的唯一代理时,他再次强调了“也许照片的印放品质是我摄影生涯的最大亮点,将底片足够好地复制在相纸上是最重要的”。放在历史语境中仔细分析这句话,其中所说的“底片”只能是指他的黑白作品,当时的彩色摄影技术所限,尚不能如他所愿。但作为摄影家,他当时很敏锐地意识到作为底片的彩色幻灯片(Color transparency)的丰富性,非常期待着有一天彩色摄影的印制技术能达到自己的高标准(Fine print),这可能也是他拍摄了数量如此之多的彩色底片的重要原因吧。
现在的数字影像校正技术允许我们可以充分地调整亚当斯的彩色底片的细微之处,并将其印制出来,这在他生前是很难做到的。尽管亚当斯生前对彩色摄影印制技术的发展寄予厚望,但严格来说,理论上不会有复制品的印制可以精确再现这位“控制高手”当年眼中的色彩。1993年,在他去世后的第9年,一本《安塞尔·亚当斯的色彩》(Ansel Adams in Color)结集出版,这些彩色摄影作品是一次精心挑选的结果,而非他的全部,里面的照片是由另一位伟大的摄影家哈里·卡拉汉亲自挑选的。由于亚当斯生前从未将彩色摄影视作自己摄影艺术创作的一部分,因此照片的选择范围最后主要限于风景部分。作为亚当斯同时代的摄影师,卡拉汉凭自己的直觉,以一种简单直接的方法,从近千张彩色幻灯片中来挑选出50幅作品,他回忆说“我只选择那些让我愉悦的照片”。在事后谈到照片的选择时,卡拉汉说自己第一次看到这些彩色摄影作品,并且了解了亚当斯关于彩色印制的观点后,他意识到亚当斯应该是过于按照自己的审美以及能力来做照片的印制。卡拉汉并不是很顾及亚当斯的彩色摄影审美,尽管他很敬仰后者的作品,他也不关心时间所带来的色彩变化,卡拉汗就像一位当代艺术家一样,只关心视觉效果,不考虑历史的因素,也不考虑照片当时应该看起来是怎样的。我们现在所看到的,实际上是两位摄影家审美的结合体。
并行检测 篇10
随着网络信息量的爆炸式增长,网路攻击手段层出不穷,入侵检测在保护网络安全方面起着至关重要的作用,如何高效准确地对大量数据进行处理成为目前急需解决的问题。因此,先进的智能分类技术在入侵检测领域的应用研究具有重要的现实意义[1,2]。相对向量机(RVM)具有SVM良好非线性处理能力与泛化能力,能够有效解决非线性、小样本问题等优势[3]。但RVM核函数参数的选择太依赖经验性,学者们提出一种相对向量机自动优化核宽(AKO-RVM)的算法[4],它可以有效减少RVM对其内核初始参数选择的依赖,提高分类精度,但在收敛速度与计算复杂度方面的优化有明显不足之处。本文提出一种基于概率的并行粒子群优化AKO-RVM的方法[5,6],首先通过AKO-RVM算法对样本分组并进行训练,其次使用并行主辅式粒子群(PSO)算法[7]对分组后的核宽进行优化,在保证AKO-RVM算法进度的同时有效提高了其收敛速度并降低了其计算复杂度,进而探索相关向量机的快速算法,提高入侵检测的精度。
1 自动优化相关向量机核宽算法
1.1 相关向量机
相关向量机(RVM)是建立在支持向量机(SVM)上的稀疏概率学习模型。给定训练样本集D={xk,tk}Nk=1,目标值tk∈R与xk∈RN都相互独立分布,式(1)给出两者关系:
其中λk为相对独立的附加噪声,且满足期望为0、方差为σ2的高斯分布,估计函数y(xk)可由线性加权模型y(x|w)给出,通常线性加权模型y(x|w)为:
其中w=[w0,w1,…,wN]T为线性模型的权重因子,K(x,xk)为训练样本预先设定的核函数,由线性加权模型可得估计函数y(xk),虽然RVM模型对核函数的选择没有任何限制,但在RVM模型中应用最为广泛的是高斯核函数,其核函数模型定义为:
其中b为核函数核宽。而在实际应用中,由于训练数样本是随着时间动态变化的,因此固定的核宽可能会导致RVM模型性能的下降。据此根据AKO-RVM算法提出一种动态改变RVM核宽的方法。
若想求得式(1),即对样本集进行分组训练,就必须了解RVM边缘似然函数的对数模型,其模型为:
由以上可以看出对RVM样本集训练分类过程就是迭代求解α的过程,并最终通过RVM边缘似然函数的模型求得式(1),之后根据式(1)对样本进行分类。
1.2 AKO-RVM算法
AKO-RVM算法根据训练样本的不同自动改变高斯核函数的核宽,保证了RVM训练结果与RVM核宽的初始值设定无关,因此式(2)可改写为:
其中Kbk(x,xk)中的bk表示第k个训练样本xk所对应的核宽。AKO-RVM使用最大化期望值(EM)来对核宽进行优化。其算法的核心思想为求RVM最优核宽bch的最大化约束问题,由式(4)可得:
其中γ为几何平均值。为解决式(6)约束性问题,引入拉格朗日乘子λ,将约束问题变为无约束问题求解,最优核宽bch可变为式(7)所示:
之后通过将自变量bk与λ对Γ1进行微分计算,并结合式(7)来计算核宽的迭代公式。
由以上可以看出AKO-RVM算法主要是针对不同的训练样本迭代出适合的核宽,进而迭代求解α,最终求得式(1),并根据式(1)对样本进行分类。
2 基于概率的主辅式并行粒子群AKO-RVM优化算法
粒子群算法(PSO)是通过追随当前搜索到的最优值来进行全局最优值的计算,其追随速度Vi=(vi,1,vi,2,…,vi,d)与位置Si=(si,1,si,2,…,si,d)更新公式为:
其中τ1、τ2为(0,1)之间的随机数,Pbest与Gbest分别为粒子群的当前局部最优解与全局最优解。由文献[8]可知,当θ取随机数,且Lmax为最大迭代次数,C1=2.5-2l/Lmax,C2=3-C1时,可以使PSO算法性能得到增强。
标准粒子群算法采取串行比较方式,局限性较大。为获得更好的性能,本文提出一种基于概率的主辅式并行粒子群AKO-RVM模型(P2AKO-RVM)。
如图1所示,P2AKO-RVM算法首先对训练样本进行分组,分组后的样本根据式(7)分别求出核宽b,然后将其分别送入辅处理器中,辅处理器将粒子个体最优信息通过概率计算后发送给主处理器,主处理器寻找概率适应度最大的核宽粒子,将其作为新的全局最优解,辅处理器接收新的全局最优解,并使用其进行下一次的速度更新与适应度的计算。文中定义ξ为概率系数,且P2AKO-RVM的适应度值Ffitness的公式定义如下:
其中,T为当前输入的训练样本的信号长度,zt为每组中的粒子个数,Mt为训练样本分组的个数,q3为加速比。
P2AKO-RVM算法具体步骤如下:
(1)对总训练样本进行分组,每组训练样本的数目为m,文中选取m为3,若存在剩余训练样本,则舍弃。
(2)通过式(7)对分组后的训练样本分别计算RVM核宽粒子b。
(3)将核宽粒子b均分为m组,并将分组后的RVM核宽粒子b发送至对应的m个辅处理器,若存在剩余粒子,则舍弃。
(4)在m组并行辅处理器中对RVM核宽粒子群初始化,随机给出每个粒子的初始速度与位置,确定其迭代精度、加速系数等参数。
(5)在m组并行辅处理器中根据式(10)计算RVM核宽粒子b的适应度。
(6)并行辅处理器进行寻优并将其个体最优信息发送至主处理器中。
(7)主处理器寻找概率适应度最大的RVM核宽粒子b并将其作为新的全局最优解发送回m个并行辅处理器。
(8)并行辅处理器判断迭代是否满足设置的精度要求或者粒子已完成迭代,若满足则终止迭代,否则将主处理器发送的新的核宽粒子跟新为的全局最优解,重复步骤(6)。
(9)将优选出的最优RVM核宽粒子代入式(3)进行相关向量机的训练与检测。
2.1 P2AKO-RVM算法主处理器流程
(1)接收辅处理器发送的概率适应度。
(2)在接收的所有的m个粒子中找到其概率适应度最大的Ffitness。
(3)若当前全局极值的适应度值大于所选Ffitness,则将Ffitness对应的粒子位置作为新的全局极值。
(4)将新的全局极值送至辅处理器中。
2.2 P2AKO-RVM算法辅处理器流程
(1)接收主处理器发送的全局极值,并判断核宽粒子是否达到预设精度要求或者已完成迭代,若是辅处理器结束迭代,否则进行步骤(2)。
(2)由式(8)与(9)更新当前粒子的速度与位置信息,并将其发送至主处理器。
3 实际应用
本文实验样本选取kddcup_data_10precent入侵检测数据包作为实验样本,共选取4种模式进行实验验证:normal、ipsweep、neptune、smurf,分别定义为1、2、3、4。除Normal外都为异常的入侵模式。每种模式各自选取500组数据,其中选取各模式的前100组数据作为训练样本其余的为检测样本,即共计400组训练样本,以及1 600组训练样本。文章分别采用RVM、AKO-RVM、P2AKO-RVM进行入侵检测,如图2所示。
图2中P2AKO-RVM算法选用3个并行辅处理器(m=3)对400组样本进行训练,由此可知每个辅处理器最多迭代45次,每次迭代都会选取一个最优核宽,大幅缩减了AKO-RVM算法的迭代次数。
图3为AKO-RVM、P2AKO-RVM两种算法的边缘似然变量随迭代次数的变化曲线。
由图3可看出,P2AKO-RVM算法大幅度缩短训练迭代次数的同时保证了内核宽度的最大化。在一定程度上,其最大化速度快于AKO-RVM。
表1为分别基于3种算法的入侵检测性能方面的比较,文中使用了检测准确率、检测误报率以及检测用时3种种指标进行衡量。定义分别为:
由表1可看出在相同的实验条件下,相对于RVM,AKO-RVM与P2AKO-RVM算法在入侵检测上的检测精度得到较大提高,尤其是P2AKO-RVM算法,相对于AKO-RVM,在保证了较高检测精度的同时大幅度降低了训练迭代次数,并减少了一定的检测时间。
4 结论
本文提出一种基于概率的主辅式并行粒子群AKO-RVM的网络入侵检测方法(P2AKO-RVM),P2AKO-RVM可以在保证了AKO-RVM算法分类精度的同时,快速优化出适合当前训练样本集的核宽参数。通过实验验证表明,P2AKO-RVM方法不仅减少了RVM初始化值对训练与检测精度的影响,而且在保证了较高检测精度的同时大幅度降低了训练迭代次数,在入侵检测领域应用更优于RVM与AKO-RVM算法,具有较好的应用前景,后续还可以针对RVM多核函数等方向进行一定研究。
参考文献
[1]RAMAN S,HARISH K,SINGLA R K.An intrusion detection system using network traffic profiling and online sequential extreme learning machine[J].Expert Systems with Applications,2015,42(22):8609-8624.
[2]吴良海.基于粒子群优化相关向量机的网络入侵检测[J].微电子学与计算机,2010(5):181-184.
[3]TIPPING M E.Sparse Bayesian learning and the relevance vector machine[J].Journal of Machine Learning Research,2001,1(3):211-244.
[4]YALDA M,HAMID S.Gaussian kernel width optimization for sparse Bayesian[J].IEEE Transactions on Neural Networks and Learning Systems Learning,2015(4):709-719.
[5]李国栋,胡建平,夏克文.基于云PSO的RVM入侵检测[J].控制与决策,2015(4):698-702.
[6]SABAN G,HALIFE K.A novel parallel multi-swarm algorithm based on comprehensive learning particle swarm optimization[J].Engineering Applications of Artificial Intelligence,2015(10):33-45.
[7]MALIK A J,SHAHZAD W,KHAN F A.Network intrusion detection using hybrid binary PSO and random forests algorithm[J].Security and Communication Networks,2015,8(16):2646-2660.