【智能优化算法】基于免疫算法求解单目标优化问题附matlab代码

1 简介

自Farmer在1986年提出免疫机理可以在机器学习等工程问题中得到应用之后,相关人员就一直在探索免疫机理在工程实际中的应用技术。而De Castro等完善了算法结构和算法模型后,更为人工免疫算法的应用研究提供了有力的支撑。ENDOH等将人工免疫算法应用于旅行商问题(TSP),验证了算法的有效性。Watkins利用人工免疫算法实现了一个资源受限的分类器,得到令人满意的结果。Sasaki等提出了一种基于免疫系统反馈机理的自适应学习神经网络控制器],避免了神经网络学习在最小值附近的摆动,提高了收敛速度。蒋加伏等提出一种人工免疫算法和蚁群算法综合应用的混合优化算法,并应用提出的算法成功地应用于Qos路由选择问题。梁勤欧等应用人工免疫算法进行布局分配问题的研究,并与其他优化算法应用于此问题的结果进行对比,证明人工免疫算法具有更好的优化质量。刘英等利用人工免疫算法设计分类器,将分类器的性能与基于遗传算法等其他方法的分类器性能进行了对比,结果表明基于人工免疫算法的分类算法具有更高的平均预测精度,并且可以产生更小的规则集合,是一种有效的机器学习方法.

2 部分代码

```

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];

for i=1:3   % 3种故障模式,每种模式应该产生 popsize 种监测器(抗体),每种监测器的长度和故障编码的长度相同

   pop=initpop(popsize,chromlength);                     %运行初始化函数,随机产生初始群体

   for k=1:M

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

      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;

          for j=1:N %译码!

              temp(:,j)=decodechrom(bestindividual,1+(j-1)*length,length);      %将newpop每行(个体)每列(每段基因)转化成十进制数

              x(:,j)=temp(:,j)/(2^length-1)*(max(j)-min(j))+min(j);     % popsize×N 将二值域中的数转化为变量域的数       

          end

        ysw_x(i,:) = x;  %译码!

      end

      y(i,k)=ymax;

      if ymax<10     % 如果最大值小于设定阀值,停止进化

          break

      end

      pop=newpop;

  end  

end

ysw_x   % 结果为(i*popsie)个监测器(抗体)

plot(1:M,favg)

```

3 仿真结果

4 参考文献

[1]郑涛, 潘玉美, 郭昆亚, 王增平, & 孙洁. (2014). 基于免疫算法的配电网故障定位方法研究. 电力系统保护与控制, 000(001), 77-83.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

**完整代码获取关注微信公众号天天matlab**

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容