Message Board

Dear readers, authors and reviewers,you can add a message on this page. We will reply to you as soon as possible!

2022 Volume 47 Issue 11
Article Contents

LIN Hong, DENG Yan. Improved Greedy Algorithm to Solve Extended Simplified Discounted {0-1} Knapsack Problem[J]. Journal of Southwest China Normal University(Natural Science Edition), 2022, 47(11): 63-71. doi: 10.13718/j.cnki.xsxb.2022.11.009
Citation: LIN Hong, DENG Yan. Improved Greedy Algorithm to Solve Extended Simplified Discounted {0-1} Knapsack Problem[J]. Journal of Southwest China Normal University(Natural Science Edition), 2022, 47(11): 63-71. doi: 10.13718/j.cnki.xsxb.2022.11.009

Improved Greedy Algorithm to Solve Extended Simplified Discounted {0-1} Knapsack Problem

More Information
  • Received Date: 30/10/2021
    Available Online: 20/11/2022
  • MSC: TP18

  • The Extended Simplified Discount {0-1} Knapsack Problem (ESD{0-1}KP) is an extension of the Discounted {0-1} Knapsack Problem (D{0-1}KP). The ESD{0-1}KP increases the number of items in each item set in D{0-1}KP, which makes it more difficult to solve, and the existing Greedy Strategy Operator (GSOR) algorithm is not effective. Based on the ESD{0-1}KP model, a virtual item that value and weight of 0 is added to each item set, and the constraints in the ESD{0-1}KP model is relaxed. Moreover, we prove that the ESD{0-1}KP is equivalent to the Multiple Choice Knapsack Problem (MCKP) theoretically. A New Greedy Strategy Operator (NGSOR) is proposed by combining with the Improved Pareto Algorithm (IPA). NGSOR firstly expresses the selection of multiple items in the same item set by adding items, and then selects items in order of value density from highest to lowest. If the value of the selected item is more than the value of the selected item in the item set where the item is located, the item set is iterated. The simulation results show that, compared with GSOR, the NGSOR has an average improvement of 24.56% in solution accuracy and 44.95% in solution speed.
  • 加载中
  • [1] GUDER J. Discounted Knapsack Problem for Pairs of Items[D]. Nuremberg: University of Erlangen-Nurnberg, 2005.

    Google Scholar

    [2] GULDAN B. Heuristic and Exact Algorithms for Discounted Knapsack Problems[D]. Nuremberg: University of Erlangen-Nurnberg, 2007.

    Google Scholar

    [3] 贺毅朝, 王熙照, 李文斌, 等. 基于遗传算法求解折扣{0-1}背包问题的研究[J]. 计算机学报, 2016, 39(12): 2614-2630. doi: 10.11897/SP.J.1016.2016.02614

    CrossRef Google Scholar

    [4] 杨洋, 潘大志, 刘益, 等. 折扣{0-1}背包问题的简化新模型及遗传算法求解[J]. 计算机应用, 2019, 39(3): 656-662.

    Google Scholar

    [5] RONG A Y, FIGUEIRA J R, KLAMROTH K. Dynamic Programming Based Algorithms for the Discounted {0-1} Knapsack Problem[J]. Applied Mathematics and Computation, 2012, 218(12): 6921-6933. doi: 10.1016/j.amc.2011.12.068

    CrossRef Google Scholar

    [6] HE Y C, WANG X Z, HE Y L, et al. Exact and Approximate Algorithms for Discounted {0-1} Knapsack Problem[J]. Information Sciences, 2016, 369: 634-647. doi: 10.1016/j.ins.2016.07.037

    CrossRef Google Scholar

    [7] 杨洋, 潘大志, 贺毅朝. 改进修复策略遗传算法求解折扣{0-1}背包问题[J]. 计算机工程与应用, 2018, 54(21): 37-42, 132. doi: 10.3778/j.issn.1002-8331.1711-0255

    CrossRef Google Scholar

    [8] 冯艳红, 杨娟, 贺毅朝, 等. 差分进化帝王蝶优化算法求解折扣{0-1}背包问题[J]. 电子学报, 2018, 46(6): 1343-1350. doi: 10.3969/j.issn.0372-2112.2018.06.010

    CrossRef Google Scholar

    [9] 张琴, 潘大志. 扩展SD{0-1}KP背包问题的建模及其遗传算法求解[J]. 西华师范大学学报(自然科学版), 2020, 41(2): 214-220.

    Google Scholar

    [10] NAUSS R M. The 0-1 Knapsack Problem with Multiple Choice Constraints[J]. European Journal of Operational Research, 1978, 2(2): 125-131. doi: 10.1016/0377-2217(78)90108-X

    CrossRef Google Scholar

    [11] PISINGER D. A Minimal Algorithm for the Multiple-Choice Knapsack Problem[J]. European Journal of Operational Research, 1995, 83(2): 394-410. doi: 10.1016/0377-2217(95)00015-I

    CrossRef Google Scholar

    [12] NAUSS R M. The 0-1 Knapsack Problem with Multiple Choice Constraints[J]. European Journal of Operational Research, 1978, 2(2): 125-131. doi: 10.1016/0377-2217(78)90108-X

    CrossRef Google Scholar

    [13] BALINTFY J L, ROSS G T, SINHA P, et al. A Mathematical Programming System for Preference and Compatibility Maximized Menu Planning and Scheduling[J]. Mathematical Programming, 1978, 15(1): 63-76. doi: 10.1007/BF01609000

    CrossRef Google Scholar

    [14] SINHA P, ZOLTNERS A A. The Multiple-Choice Knapsack Problem[J]. Operations Research, 1979, 27(3): 503-515. doi: 10.1287/opre.27.3.503

    CrossRef Google Scholar

    [15] 杨洋. 改进帕累托算法求解超大规模多选择背包问题[J]. 电子学报, 2020, 48(6): 1205-1212. doi: 10.3969/j.issn.0372-2112.2020.06.023

    CrossRef Google Scholar

  • 加载中
通讯作者: 陈斌, bchen63@163.com
  • 1. 

    沈阳化工大学材料科学与工程学院 沈阳 110142

  1. 本站搜索
  2. 百度学术搜索
  3. 万方数据库搜索
  4. CNKI搜索

Figures(2)  /  Tables(1)

Article Metrics

Article views(701) PDF downloads(94) Cited by(0)

Access History

Other Articles By Authors

Improved Greedy Algorithm to Solve Extended Simplified Discounted {0-1} Knapsack Problem

Abstract: The Extended Simplified Discount {0-1} Knapsack Problem (ESD{0-1}KP) is an extension of the Discounted {0-1} Knapsack Problem (D{0-1}KP). The ESD{0-1}KP increases the number of items in each item set in D{0-1}KP, which makes it more difficult to solve, and the existing Greedy Strategy Operator (GSOR) algorithm is not effective. Based on the ESD{0-1}KP model, a virtual item that value and weight of 0 is added to each item set, and the constraints in the ESD{0-1}KP model is relaxed. Moreover, we prove that the ESD{0-1}KP is equivalent to the Multiple Choice Knapsack Problem (MCKP) theoretically. A New Greedy Strategy Operator (NGSOR) is proposed by combining with the Improved Pareto Algorithm (IPA). NGSOR firstly expresses the selection of multiple items in the same item set by adding items, and then selects items in order of value density from highest to lowest. If the value of the selected item is more than the value of the selected item in the item set where the item is located, the item set is iterated. The simulation results show that, compared with GSOR, the NGSOR has an average improvement of 24.56% in solution accuracy and 44.95% in solution speed.

  • 折扣{0-1}背包问题(discounted {0-1} knapsack problem,D{0-1}KP)作为{0-1}背包问题的拓展[1-7],因其能刻画物品选择与否对其他物品的影响关系而受到广泛关注. D{0-1}KP在项目决策、投资与预算控制等方面具有广阔的应用背景[5, 7].

    传统D{0-1}KP模型每个项集中物品仅有两个物品,通过在项集中增加一个物品来表示项集中两个物品同时被选择的情况. 当同一项集中物品个数较多时,传统D{0-1}KP较难投入应用.

    扩展简化折扣{0-1}背包问题(extended simplified discounted {0-1} knapsack problem,ESD{0-1}KP)作为D{0-1}KP的拓展,相对于D{0-1}KP,ESD{0-1}KP增加了每个项集中物品的数量,且折扣关系也更加贴合实际情况.

    ESD{0-1}KP利用遗传算法[3-4, 7]、粒子群算法[6]、帝王蝶算法[8]等对问题进行求解,但随着单个项集中物品数量的增加,贪心修复操作难度加大,现有贪心策略算子[9](greedy strategy operator,GSOR)效果值得改进.

    文章基于GSOR,通过在每个项集中增加一个价值质量均为0的虚拟物品,将ESD{0-1}KP转化为多选择背包问题[10-11](multiple-choice knapsack problem,MCKP),结合改进帕累托算法(improved pareto algorithm,IPA)[12],提出新型贪心策略算子(new greedy strategy operator,NGSOR). 利用4类ESD{0-1}KP大规模实例进行仿真,分析NGSOR性能.

    同时通过数学转化,从理论上证明ESD{0-1}KP与MCKP是完全等价的,意味着传统上求解MCKP的算法均可通过NGSOR的操作进行转化求解,为D{0-1}KP和ESD{0-1}KP的后续研究奠定了基础.

    当前对于ESD{0-1}KP问题的研究较少,且仅考虑了每个项集中存在3个元素,合计8种情况的约束. 随着项集规模的不断增加,相比传统D{0-1}KP,ESD{0-1}KP模型与算法得到进一步泛化. 同时,考虑到当前ESD{0-1}KP仅有项集内3个物品的数据集和已有算法结果,为了便于讨论和对比,模型与算法均考虑项集3个物品的情况.

1.   ESD{0-1}KP模型
  • 为了更加贴合实际商业模型,假设每个项集包含3个物品. 对于项集中的物品,若仅购买一个物品,则物品质量乘d3i-2;若购买两个物品,则对两个物品质量之和乘d3i-1;若项集中物品均被购买,则对其质量之和乘d3i. 折扣系数满足:

    为便于讨论,记

    记问题的决策变量为X=[x1x2,…,x3n]∈{0,1}3n. 将决策变量中已选择的物品记为集合K. 对于∀iN,若

    iK,且Kj={i|iK,3j-2≤i≤3j}.

    将项集中物品所有选择情况记为矩阵A. 则

    定义1[9]  假设问题包含n个项集,每个项集3个物品,则共包含3n个物品,每个项集对应的3个物品的价值系数为P=[P1P2,…,Pn],质量系数为W=[W1W2,…,Wn],每个项集对应的折扣率为D=[D1D2,…,Dn]. 其中,Pi=[p3i-2p3i-1p3i],Wi=[w3i-2w3i-1w3i],Di=[d3i-2d3i-1d3i].

    给定背包的最大载重为C,为了避免所有解均为可行解,因此

    则ESD{0-1}KP模型可描述如下:

    决策变量xi(1≤i≤3n)表示第i个物品是否被装入背包. 式(7)表示目标函数,即满足约束条件下获得收益最大. 式(8)通过先求解第j个项集中物品经过折扣之后的值,再对所有项集的值进行求和. 式(9)表示0-1约束.

2.   传统贪心策略算子
  • 与D{0-1}KP类似,ESD{0-1}KP通过在项集中增加物品以表示项集中多个物品同时被选择的情况. 因此,对于n个项集,且每个项集中有且仅有3个物品而言,一共有(23-1)n=7n种情况存在物品被选择. 记所有的物品选择情况为矩阵R7n,3n={rij}7n,3n,且有

    Ri(1≤i≤7n)表示矩阵R的第i行,则第i行选择情况的价值密度为

    将物品序号按照计算完成后的价值密度从高到低的顺序存储在向量H中. 也即对于∀1≤i < j≤7n,必然有eHieHj.

    结合公式(10),(11)以及文献[9]提出GSOR,算法伪代码描述见算法1.

    算法1  GSOR

    输入:X

    输出:X

    1. T1=X×PTT2=0

    2. FOR i=1:n

    3.    $T_2=T_2+\sum\limits_{j=3 i-2}^{3 i} x_j w_j d_{3 i-3+} \sum\limits_{j=3 i-2}^{3 i} x_j$

    4. END

    5. FOR i=1:7n

    6.    X′=sgn(X+RHi)

    7.    T3=X′×PTT4=0

    8.    FOR j=1:n

    9.    $T_4=T_4+\sum\limits_{k=3 j-2}^{3 j} x_k w_k d_{3 j-3+} \sum\limits_{k=3 j-2}^{3 j} x_k$

    10.    END

    11.    IF T4C

    12.        IF T3>T2

    13.        X=X

    14.        END

    15.    END

    16.END

    在算法GSOR中,步1计算原有决策变量的质量,时间复杂度为O(n). 步2-4计算决策变量的质量,时间复杂度为O(n). 步5-16进行GSOR贪心操作,时间复杂度为O(n2). 其中,步6计算价值密度,步7计算贪心选择的新决策变量的价值,步8-10计算新决策变量的质量,步11-15选择满足约束且价值更大的决策变量进行迭代. GSOR总的时间复杂度为O(n2).

    当同一项集中两种选择情况冲突时,GSOR直接对两种物品选择情况取并集.

    针对MCKP同一项集中多个物品同时被选择的常见情况,IPA算法有非常良好的求解性能,且理论证明完善. 与ESD{0-1}KP中“每个项集中至多选择一项物品”约束不同,MCKP的约束为“每个项集中选择且仅选择一项物品”. 显然直接使用IPA并不可行,需要建立ESD{0-1}KP与MCKP的等价关系,再将IPA引入到ESD{0-1}KP的求解算法中,达到改进算法的目的.

3.   新型贪心策略算子
  • 为便于表述GSOR,将定义1中的ESD{0-1}KP模型转化为传统的D{0-1}KP模型,模型可表述为

    其中:

    针对D{0-1}KP模型,每个项集中增加一个虚拟物品,其质量与价值均为0,价值密度为0. 则模型可进一步转化如下:

    显然,公式(20)要求在每个项集中选择且仅选择一个方案,这类约束为多选择约束. 此时问题为MCKP模型,则使用IPA对同一项集中多个物体同时被选择的情况进行求解. 下面证明ESD{0-1}KP模型与MCKP模型等价.

    值得注意的是,MCKP作为一个经典的NP问题,若项集中的物品价值与质量均相同,则问题退化为KP,因此,在MCKP的假设中任意项集不存在两个物品的价值和质量均相等.

    定理1  若Y1满足f1g1h1约束,Y2满足f2g2h2约束. 则Y1Y2必然一一对应.

      对于Y1=[y11y12,…,y1,7n],新增序号7n+1到8n共计n个物品,其物品价值与质量均为0,则有

    因此,对于∀Y1,必然存在Y2,使得

    下证唯一性,利用反证法,假设∃Y2Y3,且

    显然,若h1-1h2(Y2)=h1-1h2(Y3),则必然存在某一项集中有两个质量与价值相等的物品,与假设不符. 故原命题成立.

    综上,结论成立.

    MCKP的相关内容可参考文献[10-14].

    通过增加一个虚拟物品使得ESD{0-1}KP和MCKP在数学模型上完全一致,即传统意义上求解MCKP的算法都能够通过类似增加虚拟物品的操作,对ESD{0-1}KP和D{0-1}KP进行求解,丰富了ESD{0-1}KP和D{0-1}KP求解算法.

    从定理1中不难发现,ESD{0-1}KP与MCKP是完全等价的,因此,对于求解MCKP问题的优秀算法也可以用于求解ESD{0-1}KP.

    ESD{0-1}KP可采用MCKP的贪心策略进行处理. 同时,公式(18)-(21)模型仍存在传统D{0-1}KP模型缺陷,即非正常个体编码较多,可将MCKP中的贪心策略应用到ESD{0-1}KP模型中.

    因IPA拥有计算速度快、求解精度高和算法结构简单等特点,因此基于IPA提出适用于ESD{0-1}KP的NGSOR.

    记第i个项集的所有物品为Ni,个数为n. 第i个项集中所有的线性非支配(linear programming undominated,LP-undominated)物品集合称线性非支配子集,并记为Li. 由文献[15]可知:

    定理2[10]  对于∀stNiwis>wirwit>wirpit>pir,若eit>eis,且pitpis,则sLi.

    在式(18)-(21)模型中,结合定理2可知,wis>wir=0,wit>wir=0,pit>pir=0. 对于同一项集中两个物品st同时被选择时,若eit>eis,且pitpis,则选择物品t而不选择物品s.

    即对于ESD{0-1}KP,当按照选择方案的价值密度从高到低选择时,若同一项集中两个选择方案同时被选择,应当选择价值更大的选择方案. 由此得到NGSOR算法,算法伪代码如下:

    算法2  NGSOR

    输入:X

    输出:X

    1. FOR i=1:n

    2. Ps=[p3i-2p3i-1p3i-2+p3i-1p3ip3i-2+p3ip3i-1+p3ip3i-2+p3i-1+p3i]

    3. Ws=[d3i-2w3i-2d3i-2w3i-1d3i-1(w3i-2+w3i-1),d3i-2w3id3i-1(w3i-2+w3i),d3i-1(w3i-1+w3i),d3i-2(w3i-2+w3i-1+w3i)]

    4. P′=[P′,Ps];W′=[W′,Ws]

    5. END

    6. E=P′. /W′;E=[E;1:7n]

    7. E=-sortrows(-E′,1)′;H=E2

    8. X=zeros(1,n)

    9. FOR i=1:7n

    10. $t_1=\left\lfloor\frac{\boldsymbol{H}_i-1}{7}\right\rfloor+1$

    11. t2=X3t1-2:3t1×PT3t1-2:3t1

    12. IF t2=0

    13.     e1=0

    14. ELSE

    15. t3=wX3t1-2:3t1×[1, 2, 4]′+3t1-3e1=t2/t3

    16. END

    17. t4=pHit5=wHie2=t4/t5

    18. T=XT3t1-2:3t1=AHi-7t1+7Q=0

    19. FOR j=1:n

    20.     IF sum(T3j-2:3j)>0

    21.     Q=Q+wT3j-2:3j×[1, 2, 4]′+7j-7

    22.     END

    23. END

    24. IF QC

    25.     IFt2 < t4

    26.         X=T

    27.     END

    28. END

    29. END

    NGSOR与GSOR在时间复杂度上无数量级差异,但在GSOR中的步3与步9都需要重新计算每个项集选择情况所对应的质量,而在NGSOR中则通过存储后直接调用,因此NGSOR算法求解速度更快.

4.   实例计算与结果对比
  • 为充分展示NGSOR的算法性能,不仅与现有GSOR进行对比,同时与将文献[9]贪心遗传算法(greedy genetic algorithm,GGA)中的GSOR替换成NGSOR后得到的新型贪心遗传算法(new greedy genetic algorithm,NGGA)进行对比. 关于遗传算法的相关内容可参考文献[16-18].

    因NGGA仅将GGA中的贪心策略进行了修改,因此沿用文献[9]中的参数算法设种群为50,最大迭代次数为100次,交叉概率pc=0.8,变异概率pm=0.01. 此外,ESD{0-1}KP中,折扣系数为d3i-2=1,d3i-1=0.8,d3i=0.7.

    测试数据集沿用文献[9]中4类大规模实例,具体测试数据参数可参考文献[9]. 其中,数据规模为300≤n≤3 000,且

    1) EUDKP1-EUDKP10,参数设置wjz[2,1 000],pjz[2,1 000].

    2) EWDKP1-EWDKP10,参数设置wjz[101,1 000],pjz[wj-100,wj+100].

    3) ESDKP1-ESDKP10,参数设置wjz[2,1 000],pjwj+100.

    4) EIDKP1-EIDKP10,参数设置pjz[2,1 000],wjpj+100.

    其中z[ab]表示在整数a到整数b之间的整数集.

    文章使用计算机基本配置为:Intel Core i7-8700 CPU@3.2GHz(12核),16GB DDR4L,Microsoft Windows 10家庭版. 利用MATLAB R2016a对问题进行求解及绘图.

  • 利用NGSOR,GSOR,GGA和NGGA对4类数据进行求解. 因NGSOR和GSOR算法为非随机算法,因此仅参考最优值和求解时长指标. 对于GGA和NGGA,因其为随机算法,因此除了最优值和求解时长以外,还需要增加平均值和最差值指标.

    为避免单次计算的偶然因素干扰,所有算法的求解时长为30次独立求解均值. 同时,为检验NGSOR的算法效果,对GGA重新进行测试.

    算法计算结果见表 1,其中折扣背包问题的动态规划算法(dynamic programming of discounted knapsack problem,DPDKP)计算得到的结果为精确解.

  • 表 1知,基于EUDKP算例,相比于GSOR的算法精度,NGSOR的误差范围从40.23%~50.54%缩小至3.97%~6.09%,对所有算例的提升精确度进行平均计算得到算法精度平均提升41.42%,同理得到算法速度平均提升40.68%. 应用到遗传算法中,NGGA相比于GGA,最优解精度平均提升33.22%,平均值精度平均提升34.42%.

    基于EWDKP算例,相比于GSOR的算法精度,NGSOR的误差范围从10.32%~35.04%缩小至0.01%~0.22%,算法精度平均提升19.82%,同时算法速度平均提升45.85%. 应用到遗传算法中,NGGA相比于GGA,最优解精度平均提升15.18%,平均值精度平均提升16.07%.

    基于ESDKP算例,相比于GSOR的算法精度,NGSOR的误差范围从12.98%~17.55%缩小至0.12%~0.41%,算法精度平均提升15.07%,同时算法速度平均提升44.31%. 应用到遗传算法中,NGGA相比于GGA,最优解精度平均提升15.08%,平均值精度平均提升15.07%.

    基于EIDKP算例,相比于GSOR的算法精度,NGSOR的误差范围从18.70%~29.38%缩小至0.00%~0.06%,算法精度平均提升21.97%,同时算法速度平均提升48.94%. 应用到遗传算法中,NGGA相比于GGA,最优解精度平均提升14.56%,平均值精度平均提升15.96%.

    整体分析,就算法精度讨论,NGSOR平均误差为1.31%,GSOR平均误差为25.87%,平均提升24.56%. 就算法速度而言,平均提升44.95%. 总体上,NGSOR相对于GSOR具有明显优势,更加适应用于ESD{0-1}KP的求解,效果理想.

    为了更好展示NGSOR性能,将表 1数据绘制成图 1图 2. 从图 1中不难发现,NGSOR与NGGA求解效果均比GSOR和GGA效果更好. 从图 2中可以知道,在求解时长方面,NGGA比GGA更快,且NGSOR也比GSOR更快.

5.   结束语
  • 文章基于GSOR,通过改进模型,将ESD{0-1}KP与D{0-1}KP转化为MCKP,再引入IPA对问题进行处理,算法性能提升明显. 值得注意的是,当ESD{0-1}KP的项集中物品数量继续增加时,无论是NGSOR还是GSOR都需要指数级储存空间,NGSOR虽然能够提供更好的贪心结果,但其内存需求与GSOR并无特别大的改进. 下一步工作,不妨思考新的支配关系与剪枝策略,提出更加优秀的贪心算法.

Figure (2)  Table (1) Reference (15)

Catalog

    /

    DownLoad:  Full-Size Img  PowerPoint
    Return
    Return