算法设计与分析其他算法天津城市建设学院电子与信息工程系主讲:唐国峰2免疫算法生物免疫的启示在生物自然界中,免疫现象普遍存在,并对物种的生存与繁衍发挥着重要的作用;生物的免疫功能主要是由参与免疫反应的细胞或由其构成的器官来完成的;生物免疫主要有两种类型:特异性免疫(SpecificImmunity),非特异性免疫反应(NonspecificImmunity);生物免疫系统是通过自我识别、相互刺激与制约而构成了一个动态平衡的网络结构。3免疫算法抗原是指能够刺激和诱导机体的免疫系统使其产生免疫应答,并能与相应的免疫应答产物在体内或体外发生特异性反应的物质。抗体是指免疫系统受抗原刺激后,免疫细胞转化为浆细胞并产生能与抗原发生特异性结合的免疫球蛋白,该免疫球蛋白即为抗体。4免疫算法免疫防御即机体防御病原微生物的感染;免疫(自身)稳定即机体通过免疫功能经常消除那些损伤和衰老的细胞以维持机体的生理平衡;免疫监视即机体通过免疫功能防止或消除体内细胞在新陈代谢过程中发生突变的和异常的细胞5免疫算法大于阈值spam记忆细胞检测器亲和力计算不大于阈值大于阈值不大于阈值亲和力计算正文特征提取用户反馈未成熟细胞检测器hamspam特征库随机特征项检测到spam?删除该未成熟检测器克隆记忆YN用户反馈更新检测器、spam特征库6免疫算法1.免疫识别2.免疫学习3.免疫记忆4.克隆选择基本免疫方法7免疫算法免疫识别是免疫系统的主要功能,同时也是AIS的核心之一,而识别的本质是区分“自我”和“非我”。核心机制是根据识别的对象特征进行编码,定义一个自我集合并随机产生一系列检测器,用于检测自我集合的变化。根据阴性选择原理,若检测集合与自我集合匹配,则完成匹配任务,机体发现病变。8免疫算法(1)定义自己(self)为一个字符串集合S,每个字符串由n个字母组成,字符串可以是一个网络数据包,电子邮件特征向量或程序的一般行为模式。(2)产生一个初始监测器集合R。(3)监测器集合中每个监测器经历阴性选择过程。其中每一个监测器都不能与集合S中的任何一个字符串相匹配,否则就从监测器集合中删去对应的检测器。(4)通过与R集合的匹配不断监测S的变化,一旦发生任何匹配,则说明S集发生了变化,即有外来抗原侵入。9免疫算法在最初的算法描述中,候选的监测器是随机产生的,然后测试以删除与自身字串相匹配的监测器,算法中采用的匹配规则是r-连续位匹配,即当两个字符串至少存在连续r位相同是才发生匹配。该过程重复进行,直到所需数量的监测器被产生出来。通常用概率分析方法来估算为了满足一定的可靠性所应有的监测器的数目。10免疫算法免疫识别过程同时也是一个学习的过程,学习的结果是免疫细胞的个体亲和度提高、群体规模扩大,并且最优个体以免疫记忆的形式得到保存。当机体重复遇到同一抗原时,由于免疫记忆机制的作用,免疫系统对该抗原的应答速度大大提高,并且产生高亲和度的抗体去除病原,这个过程是一个增强式学习过程。而且可以对结构类似的抗原进行识别。11免疫算法当免疫系统初次遇到一种抗原时,淋巴细胞需要一定的时间进行调整以更好地识别抗原,并在识别结束后以最优抗体的形式保留对该抗原的记忆信息。而当免疫系统再次遇到相同或者结构相似的抗原时,在联想记忆的作用下,其应答速度将大大提高。免疫记忆主要体现在再次免疫应答和交叉免疫应答时,可以大大加速优化搜索过程,加快学习进程并提高学习质量。12免疫算法免疫学习一般有以下几种途径:(a)对同一抗原进行重复学习,属于增强式学习。(b)亲合度成熟,对应于AIS中的个体经遗传操作后其亲合度逐步提高的过程,属于遗传学习。(c)低度的重复感染,对应于AIS的重复训练过程。(d)对内生和外生抗原的交叉应答,属于联想式学习,对应于联想记忆机制。13免疫算法克隆选择克隆选择原理最先由Jerne提出,后由Burnet给予完整阐述。其大致内容为:当淋巴细胞实现对抗原的识别(即抗体和抗原的亲和度超过一定阈值)后,B细胞被激活并增殖复制产生B细胞克隆,随后克隆细胞经历变异过程,产生对抗原具有特异性的抗体。克隆选择理论描述了获得性免疫的基本特性,并且声明只有成功识别抗原的免疫细胞才得以增殖。经历变异后的免疫细胞分化为效应细胞(抗体)和记忆细胞两种。14免疫算法克隆选择克隆选择的主要特征是免疫细胞在抗原刺激下产生克隆增殖,随后通过遗传变异分化为多样性抗体细胞和记忆细胞。克隆选择对应着一个亲和度成熟的过程,即对抗原亲和度较低的个体在克隆选择机制的作用下,经历增殖复制和变异操作后,其亲和度逐步提高而“成熟”的过程。因此亲和度成熟本质上是一个达尔文式的选择和变异的过程,克隆选择原理通过采用交叉、变异等遗传算子和相应的群体控制机制实现。15免疫算法免疫算法一般的免疫算法可分为三种情况:模仿免疫系统抗体与抗原识别,结合抗体产生过程而抽象出来的免疫算法;基于免疫系统中的其他特殊机制抽象出的算法,例如克隆选择算法;与遗传算法等其他计算智能融合产生的新算法,例如免疫遗传算法。16免疫算法免疫算法的一般步骤初始抗体生成抗原识别抗体促进和抑制满足终止条件?群体更新结束亲和力计算记忆细胞分化YN免疫算法17免疫算法(1)识别抗原:免疫系统确认抗原入侵。(2)产生初始抗体群体:激活记忆细胞产生抗体,清除以前出现过的抗原,从包含最优抗体(最优解)的数据库中选择出来一些抗体。(3)计算亲和力:计算抗体和抗原之间的亲和力。(4)记忆细胞分化:与抗原有最大亲和力的抗体加给记忆细胞。由于记忆细胞数目有限,新产生的与抗原具有更高亲和力的抗体替换较低亲和力的抗体。(5)抗体促进和抑制:高亲和力抗体受到促进,高密度抗体受到抑制。通常通过计算抗体存活的期望值来实施。(6)抗体产生:对未知抗原的响应,产生新淋巴细胞18免疫算法ProcedureBegin随机生成大量的候选检测器(即免疫细胞)/*初始化*/While一个给定大小的检测器集合还没有被产生do/*耐受*/Begin计算出每一个自体元素和一个候选检测器之间的亲和力;If这个候选的检测器识别出了自体集合中的任何一个元素Then这个检测器就要被消除掉;Else把这个检测器放入检测器集合里面;/*该检测器成熟*/利用经过耐受的检测器集合,检测系统以找出变种;End;End.阴性选择算法19免疫算法克隆选择算法Begin随机生成一个属性串(免疫细胞)的群体While收敛标准没有满足doBeginWhilenot所有抗原搜索完毕do;*/初始化*/Begin选择那些与抗原具有更高亲和力的细胞;*/选择*/生成免疫细胞的副本:越高亲和力的细胞拥有更多的副本;*/再生*/根据它们的亲和力进行变异:亲和力越高,变异越小;*/遗传变异*/End.End.End.20免疫算法免疫遗传算法①随机创建抗体和抗原的群体;②抗体和抗原匹配;③根据抗体的亲和力对抗体做评价;④用标准遗传算法进化抗体。这个模型使免疫系统能够通过学习,知道哪些抗体对抗原的识别有帮助。21免疫算法免疫算法中的亲和力计算方法免疫算法中最复杂的计算是亲和力计算。由于产生于确定克隆类型的抗体分子独特型是一样的,抗原与抗体的亲和力也是抗体与抗体的亲和力的测量。一般计算亲和力的公式:其中,tk是抗原和抗体k的结合强度。22免疫算法抗体抗原的编码方式目前一般免疫算法种抗体抗原,即解和问题的编码方式主要有二进制编码、实数编码和字符编码三种。其中,二进制编码因简单而得到广泛使用。编码后亲和力的计算一般是比较抗体抗原字符串之间的异同,根据上述亲和力计算方法计算。23扩展:人工免疫系统人工免疫系统作为人工智能领域的重要分支,同神经网络及遗传算法一样也是智能信息处理的重要手段,已经受到越来越多的关注。它通过类似于生物免疫系统的机能,构造具有动态性和自适应性的信息防御体系,以此来抵制外部无用、有害信息的侵入,从而保证接受信息的有效性与无害性。24扩展:人工免疫系统在生物科学领域,人们对进化、遗传和免疫等自然现象已经进行了广泛而深入的研究;进化算法是建立在模仿生物遗传与自然选择基础上的一种并行优化算法,其性能优异、应用广泛;进化算子在为每个个体提供了进化机会的同时,也无可避免地产生了退化的可能;大多数待求问题有可以利用的先验知识或特征信息,故可以利用这些信息来抑制进化过程中的退化现象;生物免疫理论为改进原有算法的性能,建立集进化与免疫机制于一体的新型全局并行算法奠定了基础。25扩展:人工免疫系统Farmer等人在1986年首先在工程领域提出免疫概念;Varela等人受免疫网络学说的启发,提出并进而完善免疫网络模型。26扩展:人工免疫系统独特型免疫网络(Jerne);互联耦合免疫网络(Ishiguro);免疫反应网络(Mitsumoto);对称网络(Hoffmann);多值免疫网络(Tang).人工免疫网络模型27扩展:人工免疫系统反面选择算法(Forrest);免疫学习算法(Hunt&Cooke);免疫遗传算法(Chun);免疫Agent算法(Ishida);免疫网络调节算法(Wang&Cao);免疫进化算法(Jiao&Wang)免疫学习算法28扩展:人工免疫系统国际研究1996年,日本,基于免疫性系统的国际专题讨论会,提出并确认人工免疫系统(AIS)的概念;1997年,IEEE的SMC组织专门成立了人工免疫系统及应用的分会组织;目前,几乎所有有关人工智能领域的学术会议都收录AIS方面的论文。29扩展:人工免疫系统应用自动控制故障诊断模式识别图象识别优化设计机器学习网络安全30扩展:人工免疫系统AIS在控制领域中的应用PID型免疫反馈控制器(Takahashi);机器人控制(Mitsumoto,Ishiguro,Lee);控制系统的设计(Ishida);复杂动态行为建模和自适应控制(Kumak);倒摆的控制(Bersini)。31扩展:人工免疫系统AIS在故障诊断中的应用基于相关识别特性的免疫网络模型用于故障诊断的方法(Ishida);通过构造大规模独特型免疫网络来建立用于在线服务的故障诊断系统(Ishiguru)。32扩展:人工免疫系统AIS在优化设计中的应用永磁同步电动机的参数修正的优化设计;电磁设备的外形优化;VLSI印刷线路板的布线优化设计;函数测试;旅行商问题的求解;约束搜索优化问题和多判据设计问题;33扩展:人工免疫系统AIS在网络安全的应用数据检测(Forrest);病毒检测(Kephart);UNIX过程监控(Forrest)。34扩展:人工免疫系统国际研究新动向之一以开发新型的智能系统方法为背景,研究基于生物免疫系统机理的智能系统理论和技术,同时将AIS与模糊系统、神经网络和遗传算法等软计算技术进行集成,并给出其应用方法。35扩展:人工免疫系统国际研究新动向之二基于最新发展的免疫网络学说进一步建立并完善模糊、神经和其它一些专有类型的人工免疫网络模型及其应用方法。36扩展:人工免疫系统国际研究新动向之三将人工免疫系统与遗传系统的机理相互结合,并归纳出各种免疫学习算法。比如:免疫系统的多样性遗传机理和细胞选择机理可用于改善原遗传算法中对局部搜索问题不是很有效的情况;独特型网络机理可用于免疫系统中的遗传部分以避免系统出现早熟现象;发展用于处理受约束的遗传搜索和多准则问题的免疫学习算法等。37扩展:人工免疫系统国际研究新动向之四基于免疫反馈和学习机理,设计自调整、自组织和自学习的免疫反馈控制器。展开对基于免疫反馈机理的控制系统的设计方法和应用研究,这有可能成为工程领域中种新型的智能控制系统,具有重要的理论意义与广泛的应用前景。38扩展:人工免疫系统国际研究新动向之五发展基于DNA编码的人工免疫系统以及基于DNA计算的免疫算法。尝试将DNA计算模型引入人工免疫系统中,研究一种基于DNA计算与AIS相结合的,有较强抗干扰能