人工免疫算法 matlab代码

人工免疫算法 matlab代码

ID:37751648

大小:17.56 KB

页数:7页

时间:2019-05-30

人工免疫算法 matlab代码_第1页
人工免疫算法 matlab代码_第2页
人工免疫算法 matlab代码_第3页
人工免疫算法 matlab代码_第4页
人工免疫算法 matlab代码_第5页
资源描述:

《人工免疫算法 matlab代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在生命科学领域中,人们已经对遗传(Heredity)与免疫(Immunity)等自然现象进行了广泛深入的研究。六十年代Bagley和Rosenberg等先驱在对这些研究成果进行分析与理解的基础上,借鉴其相关内容和知识,特别是遗传学方面的理论与概念,并将其成功应用于工程科学的某些领域,收到了良好的效果。时至八十年代中期,美国Michigan大学的Hollan教授不仅对以前的学者们提出的遗传概念进行了总结与推广,而且给出了简明清晰的算法描述,并由此形成目前一般意义上的遗传算法(GeneticAlgorithm)GA。由于遗传算法较以往传统的搜索算法具有使用方便、鲁棒性强

2、、便于并行处理等特点,因而广泛应用于组合优化、结构设计、人工智能等领域。另一方面,Farmer和Bersini等人也先后在不同时期、不同程度地涉及到了有关免疫的概念。遗传算法是一种具有生成+检测(generateandtest)的迭代过程的搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,遗传算法是全局收敛的。然而,在对算法的实施过程中不难发现两个主要遗传算子都是在一定发生概率的条件下,随机地、没有指导地迭代搜索,因此它们在为群体中的个体提供了进化机会的同时,也无可避免地产生了退化的可能。在某些情况下,这种退化现象还相当明显。另外,每一个待求的实际问

3、题都会有自身一些基本的、显而易见的特征信息或知识。然而遗传算法的交叉和变异算子却相对固定,在求解问题时,可变的灵活程度较小。这无疑对算法的通用性是有益的,但却忽视了问题的特征信息对求解问题时的辅助作用,特别是在求解一些复杂问题时,这种忽视所带来的损失往往就比较明显了。实践也表明,仅仅使用遗传算法或者以其为代表的进化算法,在模仿人类智能处理事物的能力方面还远远不足,还必须更加深层次地挖掘与利用人类的智能资源。从这一点讲,学习生物智能、开发、进而利用生物智能是进化算法乃至智能计算的一个永恒的话题。所以,研究者力图将生命科学中的免疫概念引入到工程实践领域,借助其中的有关知

4、识与理论并将其与已有的一些智能算法有机地结合起来,以建立新的进化理论与算法,来提高算法的整体性能。基于这一思想,将免疫概念及其理论应用于遗传算法,在保留原算法优良特性的前提下,力图有选择、有目的地利用待求问题中的一些特征信息或知识来抑制其优化过程中出现的退化现象,这种算法称为免疫算法(ImmuneAlgorithm)IA。下面将会给出算法的具体步骤,证明其全局收敛性,提出免疫疫苗的选择策略和免疫算子的构造方法,理论分析和对TSP问题的仿真结果表明免疫算法不仅是有效的而且也是可行的,并较好地解决了遗传算法中的退化问题。immune.m%这是免疫算法。这个算法几乎与遗传

5、算法一样,只是多用了一个免疫函数%免疫算法是遗传算法的变体,它不用杂交,而是采用注入疫苗的方法。%疫苗是优秀染色体中的一段基因,把疫苗接种到其它染色体中%注意:标准遗传算法的一个重要概念是,染色体是可能解的2进制顺序号,由这个序号在可能解的集合(解空间)中找到可能解%这是免疫算法的主程序,它需要调用的函数如下。%接种疫苗函数:%functioninoculateChromosome=immunity(chromosomeGroup,bacterinChromosome,parameter)%parameter:1,随机制取染色体接种。2,每个染色体都接种。3,每个染

6、色体都接种,但接种的位置是随机的%这个函数实现对染色体的疫苗接种%由染色体(可能解的2进制)顺序号找到可能解:%x=chromosome_x(fatherChromosomeGroup,oneDimensionSet,solutionSum);%把解代入非线性方程组计算误差函数:functionError=nonLinearSumError1(x);%判定程是否得解函数:[solution,isTrue]=isSolution(x,funtionError,solutionSumError);%选择最优染色体函数:%[bestChromosome,leastFunc

7、tionError]=best_worstChromosome(fatherChromosomeGroup,functionError);%误差比较函数:从两个染色体中,选出误差较小的染色体%[holdBestChromosome,holdLeastFunctionError]...%=compareBestChromosome(holdBestChromosome,holdLeastFunctionError,...%bestChromosome,leastFuntionError)%为染色体定义概率函数,好的染色体概率高,坏染色体概率低%p=chromoso

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。