免疫算法——仓储中心选址问题(文献详解)

发布时间 2023-05-24 13:26:00作者: 不撞楠乔

  恰逢学术论文课要求做文献解读分享,选用了自己感兴趣的智能算法领域文献《基于免疫算法的煤炭生产物流仓储中心选址研究》(徐超),做了一下免疫算法的形象解释说明,其实就是遗传算法的改进算法,希望对诸君有用。

 

......

(三)模型求解

论文采用免疫算法(Immune Algorithm)对模型进行求解,免疫算法是一种受到生物免疫系统启发而设计的启发式优化算法。它模拟了生物免疫系统中的一些基本概念和机制,如抗原、抗体、免疫记忆等,用于解决优化问题和模式识别任务。免疫算法的基本思想是通过模拟生物免疫系统中的免疫反应和进化过程,寻找和优化最优解或发现潜在模式。它的优点包括对多峰和非线性问题的适应性强、全局搜索能力较好等。

对于选址问题模型的免疫算法求解,一般步骤如下所示:

(1)分析问题,设计可行解(初始抗体)的组成成分,论文选用5个仓储中心,那么列表比如[25 11 26 15 5]就代表选用了这5个仓储中心作为一个初始可行解(抗体),随机产生80个这样的解,就构成了所谓的初始种群。

 

(2)评价当前解,并将优秀解加入(更新)记忆库:

步骤一:计算解的适应度(遗传算法的概念,在免疫算法中叫做“抗体-抗原亲和度”),也就是将解的内容代入目标函数得出的值,用于评价解的效果,因为论文是求最小值,所以所得值越小,说明解越好,解的适应度越高,适应度记作fitness;

步骤二:计算解的浓度,也就是在种群中,某个解与其他解的染色体相同个数越多,那么该解的浓度越高,浓度记作concentration;

步骤三:根据多样性评价参数,记作ps,来评价解的优秀程度,记作excellence。计算公式为:

 

可以看到,多样性参数ps越高,优秀程度越取决于适应度而非浓度,解和解之间便越不相同,每个个体所含信息如下图所示:

 

需要区分的是,适应度fitness决定繁殖率,优秀度excellence决定是否入选记忆库:

 

(3)与遗传算法类似的常规步骤:

步骤一:不考虑记忆库个体,而是将选择当前种群的繁殖率高的个体,一般有轮盘赌或锦标赛等方法,适应度高的解一般获得更高可能性被选中。

步骤二:将选择的个体进行染色体交叉,一般有单点交叉、多点交叉方法,视情况而定,但是需要注意的是如果选择随机交叉,则需要进行冲突检测,否则可能碰到以下情况:

 

 

问题是:第二个个体出现重复染色体15和6,变成了不可行解,这时候就需要进行冲突检测和纠正,这里不再赘述。

步骤三:子代染色体变异,即选择交叉后的某个个体随机把某个染色体改变成其他值,如下图所示:

 

随机选择了第三个染色体“26”,改变为其他染色体“14”。

(4)将记忆库优秀个体拿出来和当前种群集合,形成总种群,记录当前总种群的解的情况,比如记录当前最优解个体和最优值(最优适应度)以及当前平均适应度。

 

四、研究结果

 

根据仓储中心位置及地点坐标可以确定各煤炭供应点与仓储中心之间的关系,如图:

 

通过免疫算法求解模型,最终得到收敛解如下:矿井[3,4,6,8,31,32,36,44]负责向5号仓储中心运送煤炭,总的运量为912万t;矿井[2,10,12,13,17,18,28]负责向11号仓储中心运送煤炭,总的运量为819万t; 矿井[14,16,19,20,41]负责向15号仓储中心运送煤炭,总的运量为465万t;矿井[21,22,23,24,29,33,34,38,39,42]负责向25号仓储中心运送煤炭,总的运量为860万t;矿井[1,7,9,27,30,35,37,40,43]负责向26号仓储中心运送煤炭,总的运量为835万t。此时,总的成本为best=56811368.01元。如下图:

 

五、研究结论

(一)结论

论文针对煤炭从井口仓库运往仓储中心的过程 进行研究,在矿井分布一定的前提下,选择最佳的 仓储中心位置。 1)提出了煤炭物流仓储中心选址问题。2)构建了仓储中心选址模型。3)在求解过程中,采用智能优化算法——免疫算法,通过Matlab7.1编程实现问题的求解。

但是文章还存在很多不足:①在研究的过程中,仓储中心的选址不仅与运输成本有关,还与所处的地理位置、环境状况等因素有关;②对免疫算法中的影响因子进行灵敏度分析。

(二)讨论

免疫算法(Immune Algorithm)是一种受免疫系统启发而发展的启发式优化算法。它模拟了生物免疫系统中的一些关键机制和原理,用于解决各种优化问题。免疫算法具有以下几个主要的效用和优点:

1. 多样性维护:免疫算法通过维护一个多样性的解集合,能够避免陷入局部最优解。它使用抗体(候选解)的多样性作为搜索空间的探索机制,以便更好地覆盖全局优化空间。

2. 自适应性:免疫算法具有自适应性能力,可以根据问题的特性自动调整其搜索策略和参数设置。它能够根据问题的复杂性和优化进程的需要,调整免疫算法中的各种操作和参数,从而提高搜索效率和准确性。

3. 鲁棒性:免疫算法能够在面对问题的不确定性、噪声和扰动时表现出一定的鲁棒性。它的搜索过程基于抗体-抗原的相互作用,使得算法对于一些问题的变化和干扰有一定的容忍度,能够适应不同的环境和条件。

4. 并行性:免疫算法天然适合并行计算,因为在搜索过程中,抗体个体之间的评估和交互是相互独立的。这种并行性使得免疫算法能够在多核或分布式计算环境中加速搜索过程,从而提高求解效率。

5. 可解释性:免疫算法的工作原理和操作可解释性较强,因为它基于生物免疫系统的原理进行设计。这使得人们能够理解算法的内部机制,分析算法的行为和性能,从而更好地调整和改进算法。

 

但是免疫算法并不适用于所有类型的优化问题,其性能受到问题的特性、参数设置和算法实现的影响。在实际应用中,对于不同的问题,需要进行适当的调整和改进,以提高免疫算法的效用和求解能力。

 

 

 

 

参考文献

【1】《MATLAB智能算法30个案例分析》(第二版)...

【2】《基于免疫算法的煤炭生产物流仓储中心选址研究》...