蚁群算法参数设置、解空间构建、信息素更新和终止条件
(一) 初始化参数 在计算开始前,需要对各个参数进行初始化,例如蚂蚁数量、信息素因子、启发函数因子、信息素挥发因子、信息素常数、最大迭代次数等。 蚁群算法的参数选择需要一些经验或者试错,在参数设置方面,需要注意:
- 蚂蚁数量如果设置过大,将会使每条路径上信息素迫于平均,使正反馈作用减弱,从而使收敛速度减慢;如果蚂蚁数量设置过小,可能会导致一些从来没有被搜索过的路径信息素浓度减少为0,从而使算法过早收敛,解的全局最优性降低。一般将蚂蚁数量设置为目标数的1.5倍。
- 信息素常量如果设置过大会导致蚁群的搜索范围减小,造成算法过早收敛,使种群陷入局部最优;如果设置过小会使每条路径上信息含量差别较小,容易陷入混沌状态。信息素常量根据经验一般取值在[10, 100]。
- 最大迭代次数如果设置过大会导致算法运行时间过长;设置过小会导致可选路径较少,使种群陷入局部最优。最大迭代次数一般取值[100, 500],建议取值为200。
- 信息素因子表示蚂蚁运动过程中路径上积累的信息素的量在指导蚁群搜索中的相对重要程度。如果参数设置过大,蚂蚁选择之前走过的路径的可能性较大,容易使算法的随机性减弱;如果该参数设置过小,会导致蚁群的搜索范围过小,进而使算法过早收敛,使种群陷入局部最优。一般取值在[1, 4]之间。
- 启发函数因子表示启发式信息在指导蚁群搜索过程中的相对重要程度。如果该参数设置过大,会使收敛速度加快,但是容易陷入局部最优;如果该参数设置过小,会导致蚁群搜索随机性变大,很难找到最优解。根据经验该参数的取值范围一般在[0, 5]之间。
- 信息素挥发因子表示信息素的消失水平。该参数设置过大会使信息素发挥较快,容易导致较优路径被排除;该参数设置过小导致各路径上信息素含量差别较少,使收敛速度降低。取值范围通常在[0.2, 0.5]之间。
(二) 构建解空间 将各个蚂蚁随即放置在不同的出发地,对于每个蚂蚁,计算下一个待访问城市,直至每个蚂蚁都访问完所有城市。 蚂蚁在构建路径的每一步中,采用轮盘赌法选择下一要到达的城市。选择每一个路径的概率表示为: 根据当前路径上的信息素浓度以及启发式函数便可确定从起点选择终点的概率。对公式进行分析可知,两地的距离越短,信息素浓度越大的路径被选择的概率应该越大。
(三) 更新信息素 计算各个蚂蚁经过的路径长度,记录当前迭代次数中的历史最优解,即最短路径;同时,对各个城市所连接的路径的信息素浓度进行更新。 根据信息素更新方法不同,Dorigo M 提出了三种不同的基本蚁群算法模型,分别称之为蚂蚁周期(Ant-Cycle)模型、蚂蚁数量(Ant-Quantity) 模型及蚂蚁密度(Ant-Density) 模型。但伴随着算法的开展,信息素不断增加,使得全部蚂蚁都集中在某一路径中,最后全部蚂蚁所获得的解全部相同,无法对空间开展深入搜索,极易出现局部收敛的现象。基于解决上述问题的目的,经过各方的研究,提出了蚁群系统、精英蚁群系统、最大最小蚁群系统等一系列算法。文章通过对多种群改进的蚁群算法、自适应蚁群算法以及与其他算法的融合这三方面的介绍来说明蚁群算法在改进方面的一些研究成果:
- 种群改进的蚁群算法 针对传统蚁群算法容易陷入局部最优解的现状,进一步加大全局搜索,避免过早陷入局部最优解。多种群蚁群算法将蚁群随机放入不同区域,每只蚂蚁按照自身概率进行搜索,搜索一段时间后,信息素进行交换。这使得蚁群能对路径做出更多选择,以便挑选出最优解。
- 自适应蚁群算法 传统算法搜索到一定程度后会造成某条路径上信息素越积越多且由于下一条路径越短则该路径被选中的概率越大,但是下一路径较短,并不意味整条路径是最短的,这会造成转移概率基本不变,使得蚂蚁总是选择转移系数最大的路径,造成选择的结果具有一定的确定性。而自适应蚁群算法,在搜索过程中采用确定性选择和随机选择相结合的选择策略,动态地对挥发因子进行变动,使得在初期搜索时,最优解路径上的信息素浓度较高,挥发因子较小,造成蚁群容易聚集搜索。而到达一定搜索之后,信息素挥发因子变大,保证了全局的搜索。同时,设置信息素的浓度在一个合理区间内,使得信息素浓度不可能过大,也不可过小。
- 与其他算法的融合 由于蚁群算法具有强大的正反馈机制,在这种反馈机制的引导下,使其具有了较强的局部搜索能力。遗传算法具有交叉和突变的属性,使得遗传算法具有强大的全局搜索能力,能够全面对解进行搜索,但同时交叉和突变会对原有解产生较大的变化,不能对最优解进行继承和发展,使得效率减低。 由此可以看出,遗传算法具有全局性,蚁群算法具有局部搜索性,两者可以很好结合。此外,粒子群算法的整体搜索能力也十分强大,其可以在显示随机性、全面性的基础上,利用迭代次数来获得次优解。再通过问题的次优解来对蚁群算法中信息素的分布进行调整,并且使用蚁群算法中的正反馈机制,利用其正反馈特点等优势来获得问题的精确解,进而全面提升求解的效率与精准度。经验证,以上三种算法在解决全局收敛性方面都取得了不错的效果。前两种算法,都是在传统蚁群算法的基础上,进行了部分修改,增加算法在选择方面的不确定性,而第三种算法是借鉴了其他算法中全局搜索性较强的属性,来弥补自身不足。这两个方面将是以后研究的重要方面。
(四) 判断是否达到终止条件 蚁群算法的终止条件是:判断是否达到最大迭代次数或者是否达到了预设的最优解精度。当满足其中一个条件时,算法停止运行并输出最优解。在实际应用中,为了避免算法过早停止,通常设置一个容忍度,即当连续若干次迭代后最优解都没有改善时,算法停止运行。
原文地址: https://www.cveoy.top/t/topic/nLVm 著作权归作者所有。请勿转载和采集!