具有单连续变量的背包问题(Knapsack Problem with a single Continuous variable,KPC)是标准0-1背包问题的一个新颖扩展形式,它既是一个NP完全问题,又是一个带有连续变量S的新颖组合优化问题,求解难度非常大.为了快速高效地求解KPC问题...具有单连续变量的背包问题(Knapsack Problem with a single Continuous variable,KPC)是标准0-1背包问题的一个新颖扩展形式,它既是一个NP完全问题,又是一个带有连续变量S的新颖组合优化问题,求解难度非常大.为了快速高效地求解KPC问题,该文提出了利用演化算法求解KPC的新思路,并给出了基于离散差分演化算法求解KPC的两个有效方法.首先,介绍了基本差分演化算法和具有混合编码的二进制差分演化算法(HBDE)的原理,给出了HBDE的算法伪代码描述,并分析了KPC的基本数学模型KPCM1的计算复杂度.然后,在基于降维法消除KPCM1中连续变量S的基础上,建立了KPC的一个新离散数学模型KPCM2;随后在基于贪心策略提出处理不可行解的有效算法基础上,基于单种群HBDE给出了求解KPC的第一个离散演化算法S-HBDE.第三,通过把连续变量S的取值范围划分为两个子区间将KPC分解为两个子问题,并基于降维法建立了KPC的适于并行求解的第二个数学模型KPCM3;在利用贪心策略给出处理子问题不可行解的两个有效算法基础上,基于双种群HBDE提出了求解KPC的第二个离散演化算法B-HBDE.最后,在给出四类大规模KPC实例的基础上,利用S-HBDE和B-HBDE分别求解这些实例,并与近似算法AP-KPC、遗传算法和离散粒子群优化算法的计算结果、耗费时间和稳定性等指标进行比较,比较结果表明S-HBDE和B-HBDE不仅在求解精度和稳定性方面均优于其它3个算法,而且求解速度很快,非常适于在实际应用中快速高效地求解大规模KPC实例.展开更多
文摘具有单连续变量的背包问题(Knapsack Problem with a single Continuous variable,KPC)是标准0-1背包问题的一个新颖扩展形式,它既是一个NP完全问题,又是一个带有连续变量S的新颖组合优化问题,求解难度非常大.为了快速高效地求解KPC问题,该文提出了利用演化算法求解KPC的新思路,并给出了基于离散差分演化算法求解KPC的两个有效方法.首先,介绍了基本差分演化算法和具有混合编码的二进制差分演化算法(HBDE)的原理,给出了HBDE的算法伪代码描述,并分析了KPC的基本数学模型KPCM1的计算复杂度.然后,在基于降维法消除KPCM1中连续变量S的基础上,建立了KPC的一个新离散数学模型KPCM2;随后在基于贪心策略提出处理不可行解的有效算法基础上,基于单种群HBDE给出了求解KPC的第一个离散演化算法S-HBDE.第三,通过把连续变量S的取值范围划分为两个子区间将KPC分解为两个子问题,并基于降维法建立了KPC的适于并行求解的第二个数学模型KPCM3;在利用贪心策略给出处理子问题不可行解的两个有效算法基础上,基于双种群HBDE提出了求解KPC的第二个离散演化算法B-HBDE.最后,在给出四类大规模KPC实例的基础上,利用S-HBDE和B-HBDE分别求解这些实例,并与近似算法AP-KPC、遗传算法和离散粒子群优化算法的计算结果、耗费时间和稳定性等指标进行比较,比较结果表明S-HBDE和B-HBDE不仅在求解精度和稳定性方面均优于其它3个算法,而且求解速度很快,非常适于在实际应用中快速高效地求解大规模KPC实例.