找回密码
 注册
关于网站域名变更的通知
查看: 549|回复: 1
打印 上一主题 下一主题

基于matlab免疫算法的数值逼近优化分析

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-12 17:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

" F! n: I, v+ _3 W一、简介7 R4 j: P, Q: Y2 N) K/ q+ J' ?
任何一个优化问题可以转化为一个函数问题,因此生物智能算法广泛应用,同样生物免疫算法(AIA)也是一种模拟达尔文生物进化的一个新型智能算法,生物免疫算法(AIA)根据生物系统抗体处理抗原机制,抗体进化以及最终消灭抗原,这一过程为生物免疫算法(AIA)全局寻优解的过程。: g, \/ N8 h- M
考虑到函数优化问题的普遍性,近些年来,很多学者应用新型算法对不同函数进行测试,例如算法的稳定性、泛华能力、有效性以及全局、局部寻优能力等,因此最优化函数问题(单目标和多目标函数优化问题)一直成为广大科研人员的研究热点。根据测试函数得到的可能解,智能算法得到不断的改进,理论基础逐渐深入,使得散发本身更加稳健,能够快速为工程所用。! y6 x& P* s3 l& o: C
人工免疫系统正引起人们的极大重视,基于免疫系统原理开发了各类算法,遗传算法GA、差分进化算法DE、蜂群算法ABC、鱼群算法FSA等,在工程实际问题中,应用越来越广泛,也取得越来越多的成果。2 U% w$ i# L3 f; l# J
' J5 _6 V% T2 {7 z* D, K' M2 l
/ E4 G! w/ j2 T6 H
) J& I( l% }2 Z

3 L  i* |/ L. W& `5 l% S' X # g  w  ?- T' [  Q- F- d: V. Q- g

( a  O3 ~% U0 g( |1 Y3 k; F- Q
. b+ |$ Q) y) B' o) z' ^; W- v; j* l( e3 x* [0 M, ]
三、源代码
7 G* M0 N0 K/ B$ E
  • clc,clear,close all;
  • warning off
  • global popsize length min max N code;
  • N=12;                % 每个染色体段数(十进制编码位数)
  • M=100;               % 进化代数
  • popsize=30;          % 设置初始参数,群体大小
  • length=10;           % length为每段基因的二进制编码位数
  • chromlength=N*length;  % 字符串长度(个体长度),染色体的二进制编码长度
  • pc=0.7;                % 设置交叉概率,本例中交叉概率是定值,若想设置变化的交叉概率可用表达式表示,或从写一个交叉概率函数,例如用神经网络训练得到的值作为交叉概率
  • pm=0.3;                % 设置变异概率,同理也可设置为变化的
  • bound={-100*ones(popsize,1),zeros(popsize,1)};
  • min=bound{1};max=bound{2};
  • pop=initpop(popsize,chromlength);                     %运行初始化函数,随机产生初始群体
  • ymax=500;   % 适应度值初始化
  • ysw_x = zeros(3,12);
  • %电容C2:故障类型编码,每一行为一种!code(1,:),正常;code(2,:),50%;code(3,:),150%
  • code =[-0.8180   -1.6201  -14.8590  -17.9706  -24.0737  -33.4498  -43.3949  -53.3849  -63.3451  -73.0295  -79.6806  -74.3230
  •        -0.7791   -1.2697  -14.8682  -26.2274  -30.2779  -39.4852  -49.4172  -59.4058  -69.3676  -79.0657  -85.8789  -81.0905
  •        -0.8571   -1.9871  -13.4385  -13.8463  -20.4918  -29.9230  -39.8724  -49.8629  -59.8215  -69.4926  -75.9868  -70.6706];
  •        function [bestindividual,bestfit]=best(pop,fitvalue)
  • global popsize N length;
  • bestindividual=pop(1,:);
  • bestfit=fitvalue(1);
  • %实现个体的解码的计算
  • function [objx]=calx(pop)
  • % global N length  % 默认染色体的二进制长度length=10
  • N=12; length=10;
  • for j=1:N  %译码!
  •    temp(:,j)=decodechrom(pop,1+(j-1)*length,length);
  •    x(:,j)=temp(:,j)/(2^length-1)*(max(j)-min(j))+min(j);
  • end
  • fitvalue=calfitvalue(objvalue); favg(k)=sum(fitvalue)/popsize;  %
  •        newpop=selection(pop,fitvalue); objvalue=calobjvalue(newpop,i); %
  •        newpop=crossover(newpop,pc,k);  objvalue=calobjvalue(newpop,i); %
  •        newpop=mutation(newpop,pm);     objvalue=calobjvalue(newpop,i); %
  •        [bestindividual,bestfit]=best(newpop,fitvalue);
  •        if bestfit<ymax
  •           ymax=bestfit;
  •           end  P! j& S; h; y6 h1 V. ]+ ~( x

. Q8 f2 Z9 }, Z5 o
* v; O: C5 V. G+ s( b3 f  K4 r三、运行结果
' Y0 g+ N5 A; Q% ]! u/ C$ a2 z0 W$ J
' F8 N# v3 n4 g' H4 c: e7 {
) w3 ^/ V' E! T' y: B% V1 C1 z- q

该用户从未签到

2#
发表于 2021-4-13 18:45 | 只看该作者
理论基础逐渐深入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 21:16 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表