基于免疫算法的石家庄地区物流中心选址研究
2024-01-11于世鑫徐文君李安昌张冰清袁明阳YUShixinXUWenjunLIAnchangZHANGBingqingYUANMingyang
于世鑫,徐文君,李安昌,张冰清,袁明阳 YU Shixin, XU Wenjun, LI Anchang, ZHANG Bingqing, YUAN Mingyang
(1.河北农业大学 理学院,河北 保定 071001;2.西北大学 数学学院,陕西 西安 710100;3.国网河北省电力有限公司电力科学研究院,河北 石家庄 050000)
0 引 言
现如今,国内外对物流选址的研究主要在影响物流中心选址的因素以及采用何种方法选择最佳的物流中心等方面。针对物流中心的选址问题,国内外已经有很多研究方法:黄建新等[1]考虑了物流节点选址的影响因素主要为交通运输条件、物流响应能力、基础设施,分别以零陵区各乡镇作为物流节点。胡桔州[2]考虑建立某城市物流配送网络,将各需求点之间的物流费用作为边权,通过Floyd 算法计算,并将物流费用总和最小的需求点作为最佳的配送中心。王凯成等[3]分析了影响某药品集团物流选址的指标因素,并分别建立了对应的二级指标,采用AHP 计算它们的权重,通过TOPSIS 模型进行评分,并选择得分最高的地点作为最佳配送中心。张迎迎等[4]将欧氏距离改为马氏距离,改进了传统的TOPSIS 模型,为云南的物流节点选择提供了合理建议。詹斌等[5]首先对农村物流站点选址的影响因素进行了分析,其中包括一级指标和二级指标,并通过AHP-熵权法求出指标权重,基于Minkowaki 距离取代欧氏距离的TOPSIS 模型得出最终得分。除此以外,由于免疫算法的众多优势,有很多学者应用该方法进行物流配送中心选址的问题。胡朝阳[6]先是考虑了影响因素,而后将免疫优化算法与聚类分析结合起来,分析解决全国的物流中心选址问题。王涵等[7]为了降低配送成本、提高配送效率,使用免疫算法运用MATLAB 对卷烟物流选址问题进行计算,为烟草公司提供了合理建议。徐超等[8]分析研究煤炭仓储中心选址的问题,根据免疫算法建立模型并进行求解。万波等[9]以距离最短为目标函数建立选址优化模型,通过免疫算法与遗传算法进行求解,得到结果为免疫算法的效果更好。程玉龙等[10]通过免疫优化算法研究林果业物流中心的选址问题,并验证了免疫算法的有效性,为林果业物流发展提供建议。
本文以河北省石家庄市21 个区(县) 为研究对象,利用免疫算法研究石家庄地区物流中心的选址问题,建立模型并进行求解。
1 构建数学模型
1.1 物流中心选址问题模型。目标函数为物流中心到各备选点之间的距离与需求量乘积之和最小,据此,建立物流配送中心的选址模型:
约束条件为:
其中:wi代表各点的需求量;dij表示各备选点之间的距离;N 表示所有备选点的集合;D 表示配送中心到其他点之间距离的上限;Mi表示满足式(5) 的备选点集合;p 为所选物流中心的个数。另外,当是备选点i 与物流中心j 时,bij=1,其他情况为0;当j 为物流中心时,hj=1,其他情况为0。
1.2 免疫算法模型描述。免疫算法中“免疫”这个概念来源于生物学的免疫系统,由于人体免疫系统的强大,越来越多的学者研究并提出了免疫算法这一新型搜索算法。免疫算法与免疫系统之间概念的对应关系如表1 所示。
表1 概念对应表
免疫算法是在遗传算法的基础上加入了免疫的相关概念,当然,其中存在很多差别,免疫算法在保持遗传算法优点的同时,也做了一些改进。
1.2.1 产生初始抗体群。若记忆库中有元素,则从记忆库中提取初代的抗体群。若记忆库中无元素,则随机产生n 个编码长度为L 的抗体,在免疫算法中即代表选择了L 个备选点作为物流中心。
1.2.2 亲和度计算。免疫优化算法中的亲和度一般使用优化目标函数或对函数进行简单处理(取倒数、相反数等),本文采用取倒数的方式,则亲和度计算公式为:
其中:f (xi)表示抗体xi对应可行解的目标函数值。目标函数值越小,它所对应的亲和度就越大,其所代表的抗体就越优。
1.2.3 抗体浓度计算。抗体浓度计算公式为:
其中:N 为种群规模,S (xi, xj)为抗体间的相似度,表示为:
其中:δS表示相似度阈值,人为设定。
1.2.4 期望繁殖概率计算。每个样本的期望繁殖概率p 值计算公式为:
其中:α 为多样性评价参数,人为设定。aff (xi)为抗体亲和度,den (xi)为抗体浓度。
1.2.5 免疫操作。免疫操作分为选择、交叉、变异三种形式。抗体的选择根据亲和度来判断,亲和度越高的抗体越容易被选择用来进行下一步操作,本文选择轮盘赌法进行选择操作。在免疫算法中的交叉操作为:交换已经得到的两个可行解中部分需求点,产生两个新的可行解,以此获得更多可行解进行计算,本文选择简单的单点交叉。变异操作将个体的部分基因用其他基因来替换,即用其它需求点替换某一个可行解中的部分需求点,本文采用高斯变异法。
2 算法实例
为了用免疫算法探究物流选址的问题,本文选择石家庄市8 个区13 个县(市) 共21 个备选点来进行研究分析,分别记:1 桥西区、2 井陉矿区、3 裕华区、4 井陉县、5 新华区、6 长安区、7 正定县、8 栾城区、9 行唐县、10 灵寿县、11 高邑县、12深泽县、13 赞皇县、14 无极县、15 平山县、16 元氏县、17 赵县、18 藁城区、19 晋州市、20 新乐市、21 鹿泉区。从中选择三个地点作为石家庄全市的最终物流配送中心。
为简化模型且方便计算,本文将石家庄市各区(县) 的人口数作为备选点的需求量,不考虑其它影响因素。首先从地图上查询获得这21 个备选点的坐标,各点的位置坐标如表2 所示。
表2 各备选点坐标
经过研究与试验,将参数设置为表3。
表3 参数设置
其次按照免疫算法的步骤通过MATLAB 计算,得到最终的配送中心为:3 裕华区、18 藁城区、21 鹿泉区。同时可以得到这三个配送中心与其对应的需求点如表4 所示。
表4 物流中心选址结果
由表4 可以得出结论:以裕华区为配送中心的区县有:1 桥西区、5 新华区、6 长安区、7 正定县、8 栾城区、9 行唐县、11 高邑县、13 赞皇县、16 元氏县;以藁城区为配送中心的区县有:12 深泽县、14 无极县、17 赵县、19 晋州市、20 新乐市;以鹿泉区为配送中心的有:2 井陉矿区、4 井陉县、10 灵寿县、15 平山县。为方便直接观察,将其画成图,如图1 所示。
图1 物流中心选址方案
除此以外,由上述方法也可以得出免疫算法的收敛性如图2 所示,从图2 中已知,该算法设置的迭代次数为100,但是当迭代数为大约5 或6 时,免疫算法最优适应度的值就不再发生变化。因此可以得出结论:该算法在本文中的收敛速度非常快,时间复杂度较低。
图2 免疫算法收敛曲线
3 总 结
免疫算法具有对多峰值函数进行多峰值搜索和全局寻优的优点,对解决物流中心选址问题有很大帮助。本文通过免疫算法,将石家庄市21 个区县全部作为备选点,从中寻找三个物流配送中心,计算结果显示三个地点分别为:裕华区、藁城区、鹿泉区,并分别得到了每个物流中心所对应的区县。为石家庄市物流中心选址提供了借鉴思路,提高物流企业、消费者的便利程度。