一种改进的正弦余弦算法求解0-1背包问题
2021-09-22刘小娟封成智王联国
刘小娟,封成智,王联国
(甘肃农业大学信息科学技术学院,甘肃 兰州 730070)
背包问题(knapsack problem,KP)[1]是20世纪50年代末期由Dantzing首次提出.它既是计算机科学领域中的经典NP-complete问题,也是组合优化问题之一.截止目前,背包问题的理论价值和应用价值已在整数规划、资源配置、项目选择、货物装载和决策投资等诸多领域应用中得到了很好地体现.传统求解0-1背包问题(0-1 Knapsack Problem,0-1KP)的方法有回溯法、动态规划法和分支界定法等,这类方法往往存在某种难以克服的缺陷,如随着问题规模的增大会导致算法的运行时间明显变长.近年来兴起的群体智能优化算法能快速、高效、精确地求解0-1KP,如粒子群算法[2]、混合蛙跳算法[3]、人工蜂群算法[4]、遗传算法[5]、狮群算法[6]、烟花算法[7]、混合蝙蝠算法[8-9]等.
2016年,澳大利亚格里菲斯大学教授Seyedali Mirjalili提出了一种基于正弦余弦函数模型的群体智能优化算法—正弦余弦算法(sine cosine algorithm,SCA)[10].区别于以模拟自然界生物行为协同工作机理为核心的其它元启发式智能优化算法,SCA是一种独有的群体智能优化算法,它的显著特点是利用三角函数Sine和Cosine模型的周期震荡性特征实现算法的搜索寻优.与其它智能优化算法一样,SCA在迭代后期仍易出现一系列问题,如收敛速度慢、求解精度低和局部开发能力差.
迄今为止,关于SCA及其诸多改进算法已被成功应用于函数优化、电网故障、图像处理、特征选择等领域中[11~15].因SCA提出时间较短,对该算法的研究正处于中前期探索阶段,并且鲜有关于利用SCA的改进……
