基于免疫优化算法在物流配送多中心选址的matlab仿真
目录
1.算法描述
2.仿真效果预览
3.MATLAB核心程序
4.完整MATLAB
1.算法描述
人工免疫算法(Immune Algorithm)是一种具有生成+检测 (generate and test)的迭代过程的群智能搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,免疫算法是全局收敛的。算法主要包含以下几大模块:
1.抗原识别与初始抗体产生。根据待优化问题的特点设计合适的抗体编码规则,并在此编码规则下利用问题的先验知识产生初始抗体种群。
2.抗体评价。对抗体的质量进行评价,评价准则主要为抗体亲和度和个体浓度,评价得出的优质抗体将进行进化免疫操作,劣质抗体将会被更新。
3.免疫操作。利用免疫选择、克隆、变异、克隆抑制、种群刷新等算子模拟生物免疫应答中的各种免疫操作,形成基于生物免疫系统克隆选择原理的进化规则和方法,实现对各种最优化问题的寻优搜索。
免疫算法的算子包括:亲和度评价算子、抗体浓度评价算子、激励度计算算子、免疫选择算子、克隆算子、变异算子、克隆抑制算子和种群刷新算子等。由于算法的编码方式可能为实数编码、离散编码等,不同编码方式下的算法算子也会有所不同。
抗原:在生命科学中,是指能够刺激和诱导机体的免疫系统使其产生免疫应答,并能与相应的免疫应答产物在体内或体外发生特异性反应的物质。在我们的算法中,是指所有可能错误的基因,即非最佳个体的基因。
抗体:在生命科学中,是指免疫系统受抗原刺激后,免疫细胞转化为浆细胞并产生能与抗原发生特异性结合的免疫球蛋白,该免疫球蛋白即为抗体。在本文中是指根据疫苗修正某个个体的基因所得到的新个体。其中,根据疫苗修正某个个体基因的过程即为接种疫苗,其目的是消除抗原在新个体产生时所带来的负面影响。
免疫疫苗:根据进化环境或待求问题,所得到的对最佳个体基因的估计。
免疫算子:同生命科学中的免疫理论类似,免疫算子也分两种类型:全免疫和目标免疫,二者分别对应于生命科学中的非特异性免疫和特异性免疫。其中,全免疫是指群体中每个个体在变异操作后,对其每一环节都进行一次免疫操作的免疫类型;目标免疫则指个体在进行变异操作后,经过一定判断,个体仅在作用点处发生免疫反应的一种类型。前者主要应用于个体进化的初始阶段,而在进化过程中基本上不发生作用,否则将很有可能产生通常意义上所说的“同化现象”;后者一般而言将伴随群体进化的全部过程,也是免疫操作的一个常用算子。
免疫调节:在免疫反应过程中,大量的抗体的产生降低了抗原对免疫细胞的刺激,从而抑制抗体的分化和增殖,同时产生的抗体之间也存在着相互刺激和抑制的关系,这种抗原与抗体、抗体与抗体之间的相互制约关系使抗体免疫反应维持一定的强度,保证机体的免疫平衡。
免疫记忆:指免疫系统将能与抗原发生反应的抗体作为记忆细胞保存记忆下来,当同类抗原再次侵入时,相应的记忆细胞被激活而产生大量的抗体,缩短免疫反应时间。
抗原识别:通过表达在抗原表面的表位和抗体分子表面的对位的化学基进行相互匹配选择完成识别,这种匹配过程也是一个不断对抗原学习的过程,最终能选择产生最适当的抗体与抗原结合而排除抗原。
2.仿真效果预览
matlab2022a仿真结果如下:
3.MATLAB核心程序
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:MAXGENiii%% 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
A96
4.完整MATLAB
V
基于免疫优化算法在物流配送多中心选址的matlab仿真相关推荐
- 【优化布局】基于免疫优化算法求解物流配送中心选址matlab源码
1 简介 影响物流配送中心选址的因素有很多,精确选址优化问题亟待解决.通过充分考虑货物的配送时间,将免疫算法加入其中,介绍了物流配送选址模型的构建以及免疫算法实现的相关步骤,最后利用matlab软件进 ...
- 基于免疫优化算法的物流配送中心选址规划研究(Matlab实现)
- 《MATLAB智能算法30个案例》:第12章 免疫优化算法在物流配送中心选址中的应用
<MATLAB智能算法30个案例>:第12章 免疫优化算法在物流配送中心选址中的应用 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案 ...
- 【VRP问题】基于企鹅优化算法求解冷链配送物流车辆调度优化研究
目录 1 概述 2 帝国企优化算法 3 运行结果 4 参考文献 5 Matlab代码实现 1 概述 在互联网的带动下,农产品冷链物流需求越来越大,而成本一直是制约冷链牧流发展的关键因素,如何有效降低冷 ...
- 免疫优化算法在物流配送中心选址中的应用(Matlab代码实现)
目录 1 概述 2 免疫算法简介 3 原理分析 4 运行结果 5 结果分析 6 Matlab代码实现 7 参考文献 8 写在最后 1 概述 随着经济的迅速发展,电子商务平台蓬勃兴起,越来越多的消费 ...
- 基于智能优化算法PSO/GWO/AFO+柔性车间生产调度(Matlab代码实现)
目录 1 柔性车间生产调度 2 运行结果 3 参考文献 4 Matlab代码实现 1 柔性车间生产调度 随着经济全球化的不断加深和市场竞争的日益严峻,传统的单一车间制造模式已经无法满足我国制造业的生产 ...
- 【VRP问题】基于帝国企鹅优化算法求解冷链配送物流车辆调度优化研究
目录 1 概述 2 帝国企优化算法 3 运行结果 4 Matlab代码及文章讲解 5 参考文献 6 写在最后 1 概述 在互联网的带动下,农产品冷链物流需求越来越大,而成本一直是制约冷链牧流发展的 ...
- 免疫优化算法 matlab,基于人工免疫克隆选择算法的调度优化MATLAB源码
人工免疫克隆选择算法是一种比较新型的智能算法,其基本算法结构与遗传算法是类似的,以下源码是为网络节点分组调度问题而设计的算法. function [BestX,BestY,AllABfarm,LC1, ...
- 粒子群算法求解物流配送路线问题(python)
粒子群算法求解物流配送路线问题(python) 1.查找论文文献 找一篇物流配送路径优化+粒子群算法求解的论文 参考文献:基于混沌粒子群算法的物流配送路径优化 2.了解粒子群算法的原理 讲解通俗易懂, ...
最新文章
- LVS DR模型配置示例
- 【转】 Ubuntu 11.04 下安装配置 JDK 7
- vim 指定plugin 安装位置
- python pip安装指定版本unittest_你们想要的unittest用例失败重运行,解决方案来啦!...
- 过 DNF TP 驱动保护(一)
- Ubuntu14.04-LAMP环境搭建
- Scrapy 爬虫框架初体验三 —— 工程优化及其完善
- 自动驾驶路径规划论文解析(4)
- 杂谈---2013年,总结?吐槽?灌水?
- netty 使用阻塞发送_大数据、分布式都用到了的Netty,这几大核心知识你一定要看看!...
- think in java 读书笔记 1 ——移位
- reverse函数中的begin和end迭代器
- axure数据报表元件库_axure图表元件库 axure自制的组件库(包括数据组件)
- 2019 年我是怎么熬过来的?
- 经纬度格式转换-(互转 度转度分秒 度分秒转度……)
- 苹果12系统链接到服务器超时,苹果iphone12无法连接wifi怎么回事 解决方法分享
- 今日头条文章评论内容爬取
- 黄金周未来景区游客涨6倍 阿里巴巴数字经济体引领体验式消费升级
- 《倾城·魅影——CG奇幻插画及技法赏析》—神咒
- c语言指针化简带分数,自动生成四则运算题目(C语言)