A generalization of the 0-1 knapsack problem that is hard-to-solve both theoretically (NP-hard) and in practice is the multi-demand multidimensional knapsack problem (MDMKP). Solving an MDMKP can be difficult because of its conflicting knapsack and demand constraints. Approximate solution approaches provide no guarantees on solution quality. Recently, with the use of classification trees, MDMKPs were partitioned into three general categories based on their expected performance using the integer programming option of the CPLEX® software package on a standard PC: Category A—relatively easy to solve, Category B—somewhat difficult to solve, and Category C—difficult to solve. However, no solution methods were associated with these categories. The primary contribution of this article is that it demonstrates, customized to each category, how general-purpose integer programming software (CPLEX in this case) can be iteratively used to efficiently generate bounded solutions for MDMKPs. Specifically, the simple sequential increasing tolerance (SSIT) methodology will iteratively use CPLEX with loosening tolerances to efficiently generate these bounded solutions. The real strength of this approach is that the SSIT methodology is customized based on the particular category (A, B, or C) of the MDMKP instance being solved. This methodology is easy for practitioners to use because it requires no time-consuming effort of coding problem specific-algorithms. Statistical analyses will compare the SSIT results to a single-pass execution of CPLEX in terms of execution time and solution quality.
理论上(NP难)和实际上都难以解决的0-1背包问题的推广是多需求多维背包问题(MDMKP)。求解MDMKP可能很困难,因为它的背包和需求约束相互冲突。近似解方法不能保证解的质量。最近,通过使用分类树,使用标准PC上CPLEX®软件包的整数编程选项,根据MDMKP的预期性能,将其划分为三个一般类别:A类-相对容易求解,B类-有点难解决,C类-难以解决。然而,没有解决方法与这些类别相关联。本文的主要贡献是,它演示了,定制的每一个类别,如何通用的整数规划软件(CPLEX在这种情况下)可以迭代地用于有效地生成有界的解决方案MDMKP。具体来说,简单的顺序增加公差(SSIT)方法将迭代使用CPLEX与松动公差,以有效地产生这些有界的解决方案。这种方法的真实的优势在于,SSIT方法是基于所解决的MDMKP实例的特定类别(A、B或C)定制的。这种方法很容易为从业者使用,因为它不需要编码问题的具体算法的耗时的努力。统计分析将在执行时间和解决方案质量方面将SSIT结果与CPLEX的单程执行进行比较。