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代码相关推荐

  1. 【配电网】基于遗传算法实现三相单目标配电网重构附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  2. 【蚁狮算法】基于具有自适应边界与最优引导的莱维飞行蚁狮优化算法(ABLALO)求解单目标优化问题matlab代码

    1 简介 针对蚁狮算法存在探索与开发能力不平衡的缺点,提出了具有自适应边界与最优引导的莱维飞行改进算法.首先蚁狮调整边界范围,蚂蚁做莱维飞行,以此平衡探索与开发能力;其次较差蚁狮做高斯变异,并通过自适 ...

  3. 基于深度学习的YOLO目标检测研究-附Matlab代码

    目录 ✳️ 一.引言 ✳️ 二.YOLO的基本思想 ✳️ 三.实验验证 ✳️ 四.参考文献 ✳️ 五.Matlab代码获取 ✳️ 一.引言 目标检测是计算机视觉中的一个研究热点,在很多领域都有应用需求 ...

  4. 【闪电搜索算法】基于闪电搜索算法求解单目标优化问题matlab代码

    1 简介 2015 年,Hussain Shareef 等基于闪电的机理提出了一种新型的启发式优化算法---闪电搜索算法( lightning search algorithm,LSA) ,该算法具有 ...

  5. 【智能优化算法】基于矮猫鼬优化算法求解单目标优化问题附matlab代码

    1 简介 基于矮猫鼬优化算法求解单目标优化问题​ 2 部分代码 %___________________________________________________________________ ...

  6. 【单目标优化求解】基于matlab增强型黑猩猩优化器算法求解单目标优化问题【含Matlab源码 2013期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab增强型黑猩猩优化器算法求解单目标优化问题[含Matlab源码 2013期] 点击上面蓝色字体,直接付费下 ...

  7. 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  8. 【优化算法】基于matlab量子粒子群算法求解单目标优化问题【含Matlab源码 2203期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]基于matlab量子粒子群算法求解单目标优化问题[含Matlab源码 2203期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  9. 【智能优化算法-灰狼算法】基于贪婪非分级灰狼优化器求解单目标优化问题附matlab代码

    1 内容介绍 灰狼优化(GWO)算法是一种新兴的算法,它基于灰狼的社会等级以及它们的狩猎和合作策略. 该算法于 2014 年推出,已被大量研究人员和设计人员使用,原始论文的引用次数超过了许多其他算法. ...

最新文章

  1. mfc 开启指定服务器,用MFC实现消息的发送和接收(含服务器)
  2. markdown转word
  3. yml语法规则 (5.spring boot配置文件注入@ConfigurationProperties)、配置文件处理器...
  4. 安卓实训项目:音乐播放器2.0——实训报告2
  5. js调用c语言程序设计,HTML页面,测试JS对C函数的调用简单实例
  6. git 命令操作总结
  7. 面向对象三大核心特点,封装、继承和多态
  8. android 自定义特效,Android自定义FloatingText仿点赞+1特效
  9. Windows10下安装Tensorflow
  10. android javamail获取邮件太多太慢_「Java」 - SpringBoot amp; 邮件发送
  11. asp人脸识别,asp刷脸识别接口代码,微信公众号人脸识别代码
  12. 喜大普奔,润乾全功能中文开源BI来了
  13. 魔兽世界模型文件.m2 在D3D下的渲染
  14. 解决steam无法启动gta5报错msvcp140.dll丢失
  15. 海胆状金纳米颗粒,粒径:150-200nm|银包金纳米颗粒 粒径:5-200nm|碳包金纳米颗粒 粒径:可定制
  16. 内存分为几个部分?堆与栈的区别
  17. dos2unix 安装
  18. caffe不支持relu6_caffe cudaSuccess (4 vs. 0) unspecified launch failure
  19. android+usb+摄像头+app+开源,Android 使用摄像头拍照
  20. 2018年网络安全大事记

热门文章

  1. MMU内存管理单元之TLB快表
  2. 轻松帮你清理重复文件的工具:Cisdem Duplicate Finder mac版
  3. LOJ #3144 [APIO2019]奇怪装置 数学推导+线段合并qwq
  4. 基于Bayer的数字图像还原
  5. Yubikey硬件密钥 与 SSH认证
  6. 【已开源】Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds
  7. 杨桃电子P17-STM32F103最小系统电路图
  8. VB做的程序的代码是放在哪里了呢?
  9. c++小病毒(无限弹窗)
  10. 缓存(一)——浏览器缓存