论文部分内容阅读
果蝇优化算法(Fruit Fly Optimization Algorithm,FOA)是基于果蝇觅食行为演化出的一种新的寻求全局优化的进化算法。首先通过果蝇所在的位置去不断的计算其相应的味道浓度判定值。随后将这个味道浓度判定值作为适应函数的自变量,从而求得里面每只果蝇的味道浓度值,取其中味道最大的相应浓度值作为当前最优值,在不断的迭代中寻找最优值,直到最优值收敛或者将所有迭代次数用完。FOA算法的稳定性好、过程简单,同时具有收敛速度快的优点。但是FOA算法也存在一些缺点。首先,果蝇在觅食的移动过程中,位置移动的距离和方向是随机性,步长作为唯一的一个关键因素。却因为步长是固定的从而在一定程度上限制了算法的搜索能力,无法在全局性能和局部性能上做到很好的平衡。其次,在很多多峰多维的问题上,FOA算法就常常陷入局部最优,从而影响算法的整体性能。针对FOA算法的这些缺点,本文做出了一些措施:1提出了一种基于该算法在迭代过程中,根据设定的进化代数随机选取两个历史最优值,其差值加上一常数即为当代果蝇群体的步长变化大小,平衡了整个种群的全局与局部搜索的能力;在果蝇群体趋于稳定时,选择一定数量的果蝇个体进行变异,利用每次迭代所得最优值、次优值和第三优值在每一维上的中位数作为其变异的位置初始值,从而有效避免FOA易陷入局部最优的缺点,提高算法后期的收敛速度与精度。2论文用十四个常用的基准测试函数进行仿真实验的结果表明,算法的收敛速度与寻优精度以及稳定性方面均得到显著提高。3为了进一步将改进的算法用于实际问题,论文将算法用于了两个非常经典的NP-hard问题——0-1背包问题和旅行商问题(TSP)。首先,使用8个经典的0-1背包问题来测试改进算法的性能,由于这8个0-1背包问题的维度范围在10-100之间,因此能够较为全面的测试出新算法在0-1背包问题应用中的性能。其次,对新算法在旅行商问题中的应用,我们使用了 6个数据集,这六个数据集在城市数量上有很大的不同,论文将改进的算法和粒子群算法做了一个对比,在理论上分析了该应用的一些性能。最后是对本文的研究和应用工作做了一个总结,说明了整个工作的优点和不足。并且依据近年来很多科研工作者对果蝇优化算法的研究和改进实例,本文整理出四点关于FOA算法值得深入研究的方向。