我需要一个基于免疫遗传算法的matlab程序,关于函数寻优的,最好在附有讲解

我需要一个基于免疫遗传算法的matlab程序,关于函数寻优的,最好在附有讲解,第1张

% 主程序

%遗传算法主程序

%Name:genmain.m

%author:杨幂

clear

clf

%%初始化

popsize=50%群体大小

chromlength=30%字符串长度(个体长度)

pc=0.6%交叉概率

pm=0.1%变异概率

pop=initpop(popsize,chromlength)%随机产生初始群庆漏销体

%%开始迭代

for i=1:20 %20为迭代次数

[objvalue]=calobjvalue(pop)%计算目标函数

fitvalue=calfitvalue(objvalue)%计算群体中每个个体的适应度

[newpop]=selection(pop,fitvalue)%复制

[newpop]=crossover(pop,pc)%交叉

[newpop]=mutation(pop,pm)%变异

[bestindividual,bestfit]=best(pop,fitvalue)%求出群体中适应值最大的个搜态体及其适应值

y(i)=max(bestfit)%储存最优个体适应值

n(i)=i

pop5=bestindividual%储存最优个体

%解码

x1(i)=decodechrom(pop5,1,chromlength/2)*2/32767

x2(i)=10+decodechrom(pop5,chromlength/2+1,chromlength/2)*10/32767

pop=newpop%将新产生的种群作为当前种群

end

%%绘图

figure(1)%最优点变化趋势图

i=1:20

plot(y(i),'-r*')

xlabel('迭代次数')

ylabel('最优个体适应值')

title('最优点变化趋势')

legend('最优点'誉游)

grid on

figure(2)%最优点分布图

[X1,X2]=meshgrid(0:0.1:2,10:0.1:20)

Z=X1.^2+X2.^2

mesh(X1,X2,Z)

xlabel('自变量x1'),ylabel('自变量x2'),zlabel('函数值f(x1,x2)')

hold on

plot3(x1,x2,y,'ro','MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5)

title('最优点分布')

legend('最优点')

hold off

[z index]=max(y)%计算最大值及其位置

x5=[x1(index),x2(index)]%计算最大值对应的x值

z

在生命科学领域中,人们已经对遗传(Heredity)与免疫(Immunity)等自然现象进行了广泛深入的研究。六十年代Bagley和Rosenberg等先驱在对这些研究成果进行分析与理解的基础上,借鉴其相关内容和知识,特别是遗传学方面的理论与概念,并将其成功应用于工程科学的某些领域,收到了良好的效果。时至八十年代中期,美国Michigan大学的Hollan教授不仅对以前的学者们提出的遗传概念进行了总结与推广,而且给出了简明清晰的算法描述,并由此形成目前一般意义上的遗传算法(GeneticAlgorithm)GA。由于遗传算法较以往传统的搜索算法具有使用方便、鲁棒性强、便于并行处理等特点,因而广泛应用于组合优化、结构设计、人工智能等领域。另一方面,Farmer和Bersini等人也先后在不同时期、不同程度地涉及到了有关免疫的概念。遗传算法是一种具有生成+检测 (generate and test)的迭代过程的搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,遗传算法是全局收敛的。然而,在对算法的实施过程中不难发现两个主要遗传算子都是在一定发生概率的条件下,随机地、没有指导地迭代搜索,因此它们在为群体中的个体提供了进化机会的同时,也无可避免地产生了退化的可能。在某些情况下,这种退化现象还相当明显。另外,每一个待求的实际问题都会有自身差肆一些基本的、显而易见的特征信息或知识。然而遗传算法的交叉和变异算子却相对固定,在求解问题时,可变的灵活程度较小。这无疑对算法的通用性是有益的,但却忽视了问题的特征信息对求解问题时的辅助作用,特别是在求解一些复杂问题时,这种忽视所带来的损失往往就比较明显了。实践也表明,仅仅使用遗传算法或者以其为代表的进化算法,在模仿人类智能处理事物的能力方面还远远不足,还必须更加深层次地挖掘与利用人类的智能资源。从这一点讲,学习生物智能、开发、进而利用生物智能是进化算法乃至智能计算的一个永恒的话题。所以,研究者力图将生命科学中的免疫概念引入到工程实践领域,借助其中的有关知识与理论并将其与已有尺神的一些智能算法有机地结合起来,以建立新的进化理论与算法,来提高算法的整体性能。基于这一思想,将免疫概念及其理论应用于遗传算法,虚困轿在保留原算法优良特性的前提下,力图有选择、有目的地利用待求问题中的一些特征信息或知识来抑制其优化过程中出现的退化现象,这种算法称为免疫算法(ImmuneAlgorithm)IA。下面将会给出算法的具体步骤,证明其全局收敛性,提出免疫疫苗的选择策略和免疫算子的构造方法,理论分析和对TSP问题的仿真结果表明免疫算法不仅是有效的而且也是可行的,并较好地解决了遗传算法中的退化问题。

现代密码学将算法分为具有不同功能的几种常用的主要有三种:1.对称密码算法DES算法——二十世纪七十年代提出,曾经称霸对称加密领域30年AES算法——二十一世纪初提出用以取代DES算法IDEA算法——二十世纪九十年代初提出,也是一种流行算法RC4算法——经扒数典的流密码算法2.公钥密码算法D-H算法——用于密态首钥协商,是第一种使用的公钥算法,基于离散对数难解问题RSA算法——最常用的公钥算法,功能强大3.哈希函数(杂凑函数)MD5——常用算法,用于产生80比特的输出SHA-1——也是常用算法,用于产生128比特输帆此数出---这是最经典的若干种算法说的不对之处请指正------个人意见仅供参考


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8263392.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存