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