《MATLAB智能算法30个案例》:第12章 免疫优化算法在物流配送中心选址中的应用

  • 1. 前言
  • 2. MATLAB 仿真示例
  • 3. 小结

1. 前言

《MATLAB智能算法30个案例分析》是2011年7月1日由北京航空航天大学出版社出版的图书,作者是郁磊、史峰、王辉、胡斐。本书案例是各位作者多年从事算法研究的经验总结。书中所有案例均因国内各大MATLAB技术论坛网友的切身需求而精心设计,其中不少案例所涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。《MATLAB智能算法30个案例分析》采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。

本书共给出30个案例,每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力。《MATLAB智能算法30个案例分析》可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。

《MATLAB智能算法30个案例分析》与《MATLAB 神经网络43个案例分析》一样,都是由北京航空航天大学出版社出版,其中的智能算法应该是属于神经网络兴起之前的智能预测分类算法的热门领域,在数字信号处理,如图像和语音相关方面应用较为广泛。本系列文章结合MATLAB与实际案例进行仿真复现,有不少自己在研究生期间与工作后的学习中有过相关学习应用,这次复现仿真示例进行学习,希望可以温故知新,加强并提升自己在智能算法方面的理解与实践。下面开始进行仿真示例,主要以介绍各章节中源码应用示例为主,本文主要基于MATLAB2015b(32位)平台仿真实现,这是本书第十二章免疫优化算法在物流配送中心选址中的应用实例,话不多说,开始!

2. MATLAB 仿真示例

打开MATLAB,点击“主页”,点击“打开”,找到示例文件

选中main.m,点击“打开”

main.m源码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:免疫优化算法在物流配送中心选址中的应用示例
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-07-5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 清空环境
clc
clear all
close alltic
%% 算法基本参数
sizepop=50;           % 种群规模
overbest=10;          % 记忆库容量
MAXGEN=100;            % 迭代次数
pcross=0.5;           % 交叉概率
pmutation=0.4;        % 变异概率
ps=0.95;              % 多样性评价参数
length=6;             % 配送中心数
M=sizepop+overbest;%% step1 识别抗原,将种群信息定义为一个结构体
individuals = struct('fitness',zeros(1,M), 'concentration',zeros(1,M),'excellence',zeros(1,M),'chrom',[]);
%% step2 产生初始抗体群
individuals.chrom = popinit(M,length);
trace=[]; %记录每代最个体优适应度和平均适应度%% 迭代寻优
for iii=1:MAXGEN%% step3 抗体群多样性评价for i=1:Mindividuals.fitness(i) = fitness(individuals.chrom(i,:));      % 抗体与抗原亲和度(适应度值)计算individuals.concentration(i) = concentration(i,M,individuals); % 抗体浓度计算end% 综合亲和度和浓度评价抗体优秀程度,得出繁殖概率individuals.excellence = excellence(individuals,M,ps);% 记录当代最佳个体和种群平均适应度[best,index] = min(individuals.fitness);   % 找出最优适应度 bestchrom = individuals.chrom(index,:);    % 找出最优个体average = mean(individuals.fitness);       % 计算平均适应度trace = [trace;best,average];              % 记录%% step4 根据excellence,形成父代群,更新记忆库(加入精英保留策略,可由s控制)bestindividuals = bestselect(individuals,M,overbest);   % 更新记忆库individuals = bestselect(individuals,M,sizepop);        % 形成父代群%% step5 选择,交叉,变异操作,再加入记忆库中抗体,产生新种群individuals = Select(individuals,sizepop);                                                             % 选择individuals.chrom = Cross(pcross,individuals.chrom,sizepop,length);                                    % 交叉individuals.chrom = Mutation(pmutation,individuals.chrom,sizepop,length);   % 变异individuals = incorporate(individuals,sizepop,bestindividuals,overbest);                               % 加入记忆库中抗体      end%% 画出免疫算法收敛曲线
figure(1)
plot(trace(:,1));
hold on
plot(trace(:,2),'--');
legend('最优适应度值','平均适应度值')
title('免疫算法收敛曲线','fontsize',12)
xlabel('迭代次数','fontsize',12)
ylabel('适应度值','fontsize',12)%% 画出配送中心选址图
%城市坐标
city_coordinate=[1304,2312;3639,1315;4177,2244;3712,1399;3488,1535;3326,1556;3238,1229;4196,1044;4312,790;4386,570;3007,1970;2562,1756;2788,1491;2381,1676;1332,695;3715,1678;3918,2179;4061,2370;3780,2212;3676,2578;4029,2838;4263,2931;3429,1908;3507,2376;3394,2643;3439,3201;2935,3240;3140,3550;2545,2357;2778,2826;2370,2975];
carge=[20,90,90,60,70,70,40,90,90,70,60,40,40,40,20,80,90,70,100,50,50,50,80,70,80,40,40,60,70,50,30];
%找出最近配送点
for i=1:31distance(i,:)=dist(city_coordinate(i,:),city_coordinate(bestchrom,:)');
end
[a,b]=min(distance');index=cell(1,length);for i=1:length
%计算各个派送点的地址
index{i}=find(b==i);
end
figure(2)
title('最优规划派送路线')
cargox=city_coordinate(bestchrom,1);
cargoy=city_coordinate(bestchrom,2);
plot(cargox,cargoy,'rs','LineWidth',2,...'MarkerEdgeColor','r',...'MarkerFaceColor','b',...'MarkerSize',20)
hold onplot(city_coordinate(:,1),city_coordinate(:,2),'o','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',...'MarkerSize',10)for i=1:31x=[city_coordinate(i,1),city_coordinate(bestchrom(b(i)),1)];y=[city_coordinate(i,2),city_coordinate(bestchrom(b(i)),2)];plot(x,y,'c');hold on
end
toc

添加完毕,点击“运行”,开始仿真,输出仿真结果如下:

时间已过 7.990591 秒。


3. 小结

生物免疫系统的多样性,适应性及免疫记忆等特性越来越引起人们的关注。目前已提出的一些基于免疫概念的优化算法,主要是免疫信息机理与遗传算法(GA)相结合的产物,最后融合提出免疫优化算法。对本章内容感兴趣或者想充分学习了解的,建议去研习书中第十二章节的内容。后期会对其中一些知识点在自己理解的基础上进行补充,欢迎大家一起学习交流。

《MATLAB智能算法30个案例》:第12章 免疫优化算法在物流配送中心选址中的应用相关推荐

  1. 免疫优化算法在物流配送中心选址中的应用(Matlab代码实现)

    目录 1 概述 2 免疫算法简介 3 原理分析 4 运行结果 5 结果分析  6 Matlab代码实现  7 参考文献 8 写在最后 1 概述 随着经济的迅速发展,电子商务平台蓬勃兴起,越来越多的消费 ...

  2. ​【优化布局】基于免疫优化算法求解物流配送中心选址matlab源码

    1 简介 影响物流配送中心选址的因素有很多,精确选址优化问题亟待解决.通过充分考虑货物的配送时间,将免疫算法加入其中,介绍了物流配送选址模型的构建以及免疫算法实现的相关步骤,最后利用matlab软件进 ...

  3. 《MATLAB智能算法30个案例》:第19章 基于模拟退火算法的TSP算法

    <MATLAB智能算法30个案例>:第19章 基于模拟退火算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

  4. 《MATLAB智能算法30个案例》:第20章 基于遗传模拟退火算法的聚类算法

    <MATLAB智能算法30个案例>:第20章 基于遗传模拟退火算法的聚类算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  5. MATLAB智能算法30个案例分析.史峰等

    <MATLAB智能算法30个案例分析>是2011年由北京航空航天大学出版社出版的图书,作者是郁磊.史峰.王辉.胡斐- <MATLAB智能算法30个案例分析>是作者多年从事算法研 ...

  6. 《MATLAB智能算法30个案例》:第4章 基于遗传算法的TSP算法

    <MATLAB智能算法30个案例>:第4章 基于遗传算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析>是 ...

  7. 《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法

    <MATLAB智能算法30个案例>:第2章 基于遗传算法和非线性规划的函数寻优算法 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. MATLAB 仿真示例 ...

  8. 《MATLAB智能算法30个案例》:第17章 基于PSO工具箱的函数寻优算法

    <MATLAB智能算法30个案例>:第17章 基于PSO工具箱的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  9. 《MATLAB智能算法30个案例》:第8章 基于量子遗传算法的函数寻优算法

    <MATLAB智能算法30个案例>:第8章 基于量子遗传算法的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

最新文章

  1. 安装numpy/scipy/scikit-learn的方法
  2. 对IOC,AOP的理解
  3. 自动化测试(二) 单元测试junit的Test注解突然不能使用原因以及解决方案
  4. nginx A/B 灰色发布
  5. 一个例子让你了解Java反射机制
  6. c语言自增自减5运算符详解,巧用C语言中的自增自减运算符
  7. 正确理解hibernate的inverse属性
  8. 《漫画线性代数》读书笔记 用矩阵解方程组
  9. 【RippleNet】(一)preprocessor.py【未完】
  10. 京东发布“下一代智能协同开放平台”战略 助力政企数字化转型
  11. C/C++混淆点-strcat和strcpy区别
  12. 【目标检测】IoU、GIoU、DIoU、CIoU Loss详解及代码实现
  13. [Java] 变量里存的到底是什么
  14. POJ3581 后缀数组
  15. SQL 格式化输出 千分位 ¥货币格式
  16. java velocity 语法_Velocity初探小结--velocity使用语法详解
  17. 保镖机器人作文_【保镖的作文】_玛雅作文网
  18. 《计算之魂》Task3:关于排序的讨论
  19. 网络工程师必备技术汇总
  20. 2020年雅思机考考点将覆盖全国14城

热门文章

  1. npm-查看依赖库最新版本及历史版本指令记录
  2. 2的2.8次方用计算机怎么算,2.8 计算器的使用(含答案)
  3. CCF A期刊和会议列表
  4. LE5010蓝牙芯片(凌思微)开发总结
  5. SQL 函数总结说明
  6. 【译】40 个为开发者提供的免费工具
  7. 22年低分上岸成都电子科技大学计算机经验贴
  8. python中if not x: 和 if x is not None: 和 if not x is None的使用和区别(这里面有一个坑)
  9. 如何与教授用电子邮件联系
  10. 总在“被卖身”的ofo:不卖!我能养活自己!