实践工程中,有许多问题都可转化为函数优化问题,而依据梯度的算法一般不能有用地处理高维且有多部分极值点的函数优化问题。免疫体系是一种集进化机制和免疫机制于一体的大局并行体系,能自适应地坚持集体多样性,其具有的自我调节才能,能使免疫算法具有全体、部分查找才能强的特色。这类算法在函数优化、数据发掘等方面得到有用运用。
1 SoPC技能[1]
嵌入式体系用于一些特定专用设备,一般这些设备的硬件资源(如处理器、存储器)十分有限,而且对本钱很灵敏,有时对实时呼应要求高。跟着消费家电的智能化,嵌入式体系更显重要,手机、电子字典、交换机、路由器等都归于典型的嵌入式体系。
片上体系SoC(System on a Chip)指在单片集成体系级多元化的大规划功用模块,然后构成一个能够处理各种信息的集成电路。这个别系一般由一个主控单元和一些功用模块构成,主控单元是一个处理器,在这个主控单元的周围,依据体系功用装备功用模块,完结信号的接纳、预处理、转化及执行任务,并将硬件逻辑和智能算法集成在一起。
可编程片上体系SoPC(System on Programmable Chip)技能供给了另一种完结SoC的途径,即用大规划可编程器材的FPGA完结SoC的功用。
2 SoPC软硬件开发
Quartus II软件是Altera公司的归纳开发工具,经过运用此开发工具,规划者能够创立、安排和办理自己的规划[2]。
2.1 硬件开发
硬件开发环境是在Quartus II工程中增加NiosII体系、锁相环模块、引脚等元件编译完结的。NiosII体系由CPU、存储器接口、规范外围设备和用户自定义的外围设备等组件组成。如图1所示。SoPC Builder将这些组件组合起来,生成对这些组件实例化的单个别系模块,并主动生成必要的总线逻辑,以将这些组件链接起来。uart_usb用于接纳试验板的数据,4个7段数码管用于显现运转的代数。
2.2 软件开发
软件规划和运用程序开发是在上述已建立硬件环境上进行的,其开发环境是Nios II IDE。SoPC软件开发流程如图2。
3 免疫算法原理
免疫算法的创意来自生物取得性免疫克隆挑选原理[3]。依据该原理,在生物免疫体系中,一旦病原侵入机体,B淋巴细胞能够为发生相应的抗体和抗原的结合,一起活化、增殖和分解发生浆细胞,经过中和、溶解和调度等效果,最终使抗原从体内铲除。一些B细胞成为长时刻存活的回忆细胞,它经过血液、淋巴和安排液循环,为下一次快速、高效地铲除相同或许相似抗原引起的感染奠定了根底[5]。
文本选用依据克隆挑选原理的免疫优化算法[4]。克隆挑选学说的中心思想是:抗体是天然产品,以受体的方式存在于细胞外表,抗原可与之挑选性地反响。抗原与相应抗体受体的反响可导致细胞克隆性增殖,该集体具有相同的抗体特异性,其间某些细胞克隆分解为抗体生成细胞,另一些构成免疫回忆细胞,以参与之后的二次免疫反响。
本文的算法是依据规范克隆挑选算法改善而来的,规范克隆挑选算法流程如图3。
(1)生成候选计划的一个调集(P)。它由回忆细胞(M)的子集加上剩下集体(Pr)(P=Pr+M)组成。
(2)挑选n个具有较高亲和力的个别。
(3)克隆这n个最好的个别,组成一个暂时的克隆集体(C)。与抗原亲和力越高,个别在克隆时规划也就越大。
(4)把克隆躯体提交到高频变异,依据亲和力的巨细决议变异,发生一个老练的抗体种群C*。
(5)对C*进行从头挑选,组成回忆细胞调集M。P中的一些成员能够被C*的其他一些改善的成员替换掉。
(6)生成d个新的抗体替代P中d个低亲和力的抗体,坚持多样性。
本文提出一种改善克隆挑选算法,用于求解函数优化问题。本文选用二进制编码,将该函数的值空间映射到位串空间中,然后在位串空间进行免疫克隆挑选操作,成果经过解码进程还原成数值解,再进行亲和力评价。因为对函数的精度要求是6位小数,(1/222≈2×10-6),所以本文的编码长度为6位。改善后的算法的完结过程如下:
(1)初始化:随机发生N个长度为22的二进制编码的抗体,组成初始抗体P。
(2)克隆:对抗体群P中的抗体进行扩增操作得到集体C,每个抗体的克隆数目与亲和力(函数值)成正比。
(3)高频变异:对抗体群C中的抗体进行高频变异得到种群C*。
(4)挑选:从抗体群中挑选d个亲和力高的抗体替换P中的d个亲和力低的抗体,d与抗体群P的均匀亲和力成反比。
(5)判别停止条件,不然转(2)。
(6)到达停止条件,程序完毕。
4 仿真试验
本文算法的参数设置[6]如下:受体修改系数Pc=0.2;高频变异概率Pm=0.01;种群规划Popsize=50;算法迭50代完毕。仿真选取f=x+10×sin(5x)+7×cos(4x),x∈[0,10]:一个单变量、多极值点的函数,用来测验优化算法是否能查找到函数的最优解。
在PC上别离运用规范和改善后的克隆挑选算法处理函数优化问题,从图4(a)、图4(b)不难看出,改善后算法在第6代就能敏捷到达大局最优,而规范算法需求13代。改善后算法在处理函数优化问题时提高了收敛速度。
运用改善的克隆挑选算法处理函数优化问题,从图4(b)、图4(c)不难看出,在SoPC上运转了4代就得到了大局最优而每一代处理时刻约0.35 s,到达最优所需时刻约为1.4 s。而在PC机上运转6代后得到的最优成果,其每一代处理时刻约为0.27 s,运转6代所需时刻约为1.62 s。
不论在SoPC仍是PC上,免疫克隆算法处理函数优化问题在进入部分最小的时分,总能跳出这个部分最小,然后到达另一最小,从而到达大局最小。这表现了算法的抗退化才能。
本文将改善免疫克隆挑选算法运用在SoPC上,在试验开发板上建立了硬件渠道,在此根底上进行软件开发。试验标明,在PC机和SoPC上都能有用求解函数优化问题和防止堕入部分最小并到达大局最优。当资源显着不如PC机的情况下,在SoPC上处理到第4代就能敏捷到达大局最优,而在PC机上则需求6代。取得这样的成果足以标明,SoPC有较强的优化和实时处理问题的才能。