人工免疫算法与物流中心选址问题

  • 人工免疫算法
  • 问题
  • 代码
  • 结果与分析

人工免疫算法

免疫算法是模仿生物免疫机制,结合基因的进化机理,人工构造出的一种新型智能优化算法。采用群体搜索策略,通过迭代计算,最终以较大的概率得到问题的最优解。相比于其他算法,免疫算法利用自身产生多样性和维持机制的特点,保证了群体多样性,克服了‘早熟’问题,可以得到全局最优解。具有自适应性,随机性并行性,全局收敛性,种群多样性等特点。

免疫算法具体实现步骤如下:
(1)分析问题。对问题及其解的特性进行分析,设计解的合适表达形式。
(2)产生初始抗体群。随机产生N个个体并从记忆库中提取m个个体构成初始种群,其中m为记忆库中个体的数量。
(3)对上述群体中个体抗体进行评价。在本算法中对个体的评价是以个体的期望繁殖率P为标准的。
(4)形成父代种群。将初始群体按期望繁殖率P进行降序排列,并提取前N个个体构成父代群体;同时取前m个个体存入记忆库中。
(5)判断是否满足结束条件,是则结束,不是则进行下一步操作。
(6)新种群的产生。基于步骤(4)的计算结果对抗体种群进行选择、交叉、变异操作得到新群体,再从记忆库中取出记忆的个体,共同构成新一代的群体。
(7)转去执行步骤(3).

问题

物流配送中心的选址问题。我们有如下的假设:1.配送中心的规模容量总可以满足需求点,并由配送辐射范围内的需求量确定。2.一个需求点仅有一个配送中心供应。3。不考虑工厂到配送中心的运输费用。数据源如下,其中city是城市的坐标,cargo是该城市物资的需求量。
city = [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];
crago = [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];

代码

% 免疫优化算法
clear
clc
% 初始参数设定
popsize = 30;
overbest = 10;
maxgen = 300;
pc = 0.5;
pm = 0.4;
ps = 0.95;      % 多样性评价参数
len = 6;
M = popsize + overbest;
individuals = struct('fitness',zeros(1,M),'concentration',zeros(1,M),'excellence',zeros(1,M),'chrom',[]);
individuals.chrom = popinit2(M,len);     %种群初始化
trace = [];
% 开始迭代
for iii = 1:maxgen[row,~] = size(individuals.chrom);M = row;for i = 1:Mindividuals.fitness(i) = fitness6(individuals.chrom(i,:));individuals.concentration(i) = concentration6(i,M,individuals);end% 计算期望繁殖概率individuals.excellence = excellence6(individuals,M,ps);% 记录当代最优个体和种群平均适应度[best,index] = min(individuals.fitness);bestchrom = individuals.chrom(index,:);average = mean(individuals.fitness);trace = [trace;best,average];% 形成父代种群,更新记忆库bestindividuals = bestselect6(individuals,M,overbest);% 选择、交叉、变异,再加入记忆库中的抗体,产生新种群individuals = select6(individuals,popsize);individuals.chrom = cross6(pc,individuals.chrom,popsize,len);individuals.chrom = mutate6(pm,individuals.chrom,popsize,len);individuals = incorporate6(individuals,popsize,bestindividuals,overbest);
end
plot([1:maxgen],trace)
xlabel('代数')
ylabel('平均值和最小值')
title('优化过程')
disp(['最优选址为',num2str(bestchrom)])

结果与分析



可以看到在150代的时候,结果已基本上收敛了。上面是我们最优选址的物流中心的序号。

人工免疫算法与物流中心选址问题相关推荐

  1. 粒子群算法在物流中心选址中的应用

    一.实验目的 粒子群算法在物流中心选址中的应用 二.实验要求 设有一系列点分别代表供应地和需求地 等 n 个物流节点,各自有一定量货物需要以一定的运输费率 运入或运出物流中心,选择物流中心使得总运输成 ...

  2. 基于最短路径的物流中心选址(含Dijksra和Floyd算法)

    题目:基于最短路径算法的物流中心选址 要求:包含迪杰斯特拉(Dijkstra)算法和弗洛德(Floyd)算法 最短路算法包含Dijkstra算法和Flody算法,也就是顶点对间的最短路的算法和全部顶点 ...

  3. 关于低碳物流中心选址问题的MATLAB遗传算法

    目录 1.物流中心选址问题说明 2.模型构建 3.遗传算法 3.1.染色体编码方式 3.2.选择算子 3.3.交叉算子和变异算子 4.部分代码展示 1.物流中心选址问题说明 如图所示,物流网络主要由生 ...

  4. 潍坊学院计算机系崔玲玲,人工免疫算法在引水工程中的应用.pdf

    人工免疫算法在引水工程中的应用.pdf 第 14卷第2期 潍坊学院学报 Vo1.14No.2 2014年 4月 JournalofWeifangUniversity Apr.2014 人工免疫算法在引 ...

  5. 人工免疫算法c语言程序,基于人工免疫算法的模拟电路故障诊断

    摘要: 模拟电路故障诊断一直以来都是十分必要和有意义的,目前已成为热门的研究课题.现代电子技术和计算机技术的迅速发展促进了片上系统和混合集成电路的大量涌现,这也对模拟电路的测试和故障诊断提出了更高的要 ...

  6. 货物配送问题的matlab,免疫算法求解配送中心选址问题matlab代码

    免疫算法求解配送中心选址问题matlab代码 所属分类:matlab例程 开发工具:matlab 文件大小:31KB 下载次数:3 上传日期:2020-12-01 16:11:00 上 传 者:代码大 ...

  7. 人工免疫算法c语言实例,毕业设计_蚁群算法模拟系统的设计与实现.doc

    J I A N G S U U N I V E R S I T Y 本 科 毕 业 论 文 蚁群算法模拟系统的设计与实现 Ant Colony Simulation System Design and ...

  8. 基于Matlab遗传算法工具箱解决物流中心选址

    目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...

  9. 【老生谈算法】matlab实现人工免疫算法——人工免疫算法

    人工免疫算法matlab程序 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]人工免疫算法+matlab代码.docx 2.算 ...

  10. 模糊综合评判之物流中心选址问题

    作业题目 物流中心作为商品周转.分拣.保管.在库管理和流通加工的据点,其促进商品能够按照顾客的要求完成附加价值,克服在其运动过程中所发生的时间和空间障碍.在物流系统中,物流中心的选址是物流系统优化中一 ...

最新文章

  1. SBB:南土所梁玉婷、孙波等跨气候带土壤移置揭示了气候变暖及施肥对土壤固氮微生物递增的环境过滤作用...
  2. kdevelop安装完成后如何启动
  3. oracle中create table with as和insert into with as语句
  4. 《系统集成项目管理工程师》必背100个知识点-65采购合同的支付方式
  5. 2018年蓝桥杯B组题E题+快排
  6. Elasticsearch 6.3.2 安装 search-guard
  7. linux套接字端口,多端口监听套接字linux(multiport listening socket linux)
  8. TLB的作用及工作原理,如何查看TLB miss?
  9. matlab非线性系统频域标识,基于MATLAB的最小二乘法系统辨识与仿真
  10. 记录一下----关于设计模式和面向对象设计原则
  11. Docker Get Started VI
  12. html5在线预览附件,干货-基于html5的本地多图上传并可在线预览
  13. 前端开发常用网站整理
  14. DB2数据库v10.5安装过程
  15. 网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明
  16. 视频mov如何转换成mp4?
  17. 关于openssl 的几个key的生成方式
  18. Maxima 的基本微积分操作(链接)
  19. 在线直播|是事实还是贩卖焦虑?IT行业也偏爱“小鲜肉”
  20. antd提交表单_antd快速开发(Form篇)

热门文章

  1. Android -- proxy
  2. 专为Oracle数据库恢复而生 - PRM
  3. 一个免费功能强大的谷歌翻译api
  4. maven项目中引用jave
  5. 某度文库付费文档下载,实测可用~
  6. 用 Python 写一个经典微信飞机大战
  7. 计算机用户注册表修改,WindowsServer2012 注册表修改用户的连接数
  8. 计算机二级通关宝典-C语言篇
  9. JSP的九种内置对象
  10. python JEP安装