论文部分内容阅读
多维背包问题(Multidimensional knapsack problem,MKP)作为0-1背包问题的拓展,是一种典型的NP难问题,在日常生活中有着大量的应用场景,比如货物装载,资源分配,投资决策等等。因此,无论是理论上,还是实际应用中,对多维背包问题进行求解都具有重要意义。随着问题规模的逐渐增大,传统的精确求解算法和启发式算法逐渐显得力不从心,而群智能算法的发展,为这类问题的求解开辟了新的道路。群智能算法是通过模拟生物种群之间的信息交流以达到求解目的的一类新型算法。烟花算法是通过模拟夜空中烟花爆炸的过程而实现的。作为群智能算法的一种,烟花算法具有参数较少、执行过程简单、实现容易,鲁棒性强等特点,在解决大型复杂优化问题上具有一定优势,目前已经得到了学术界的广泛关注。本文介绍了用于求解多维背包问题的各类精确求解算法,启发式算法和群智能算法,深入分析了多维背包问题及烟花算法的特点,针对多维背包问题中,物品选择策略表现为二进制字符串的特点,以及烟花算法前期搜索速度快,后期收敛速度慢的优劣性,引入了二进制烟花算法和精英反向学习机制,设计了二进制精英反向学习烟花算法(Binary Elite Opposition-based learning Firework Algorithm,BEOFA),以略微降低算法前期搜索速度为代价,有效地加快了算法后期的收敛速度。BEOFA首先针对多维背包问题解集的特点,引用了将烟花算法进行二进制编码的方式,即二进制烟花算法;其次,在二进制的环境下,引入了二进制变异算子机制,用于替换传统烟花算法的高斯变异机制,提高了算法的全局搜索能力和跳出局部最优值的能力;然后针对传统烟花算法后期收敛速度慢的缺陷,引入了精英反向学习机制,设计了二进制环境下精英反向学习机制的运行流程,提高了算法的后期收敛速度。最后,选取了共4种8个经典的多维背包问题函数对BEOFA的快速寻优性能,挖掘能力,全局搜索能力以及综合能力等各方面性能进行仿真测试,并与其他4种群智能算法进行对比,以及对结果进行分析。仿真实验结果表明,BEOFA在求解小型问题时的各方面性能都不弱于其他算法,并在求解大型复杂问题时的综合性能优于其他4种算法,达到了优化算法的目的。