华南理工大学学报(自然科学版) ›› 2009, Vol. 37 ›› Issue (4): 42-45.

• 计算机科学与技术 • 上一篇    下一篇

多选择背包问题的快速求解算法

鲍江宏 杨启贵   

  1. 华南理工大学 数学系, 广东 广州 510640
  • 收稿日期:2008-03-18 修回日期:2008-08-27 出版日期:2009-04-25 发布日期:2009-04-25
  • 通信作者: 鲍江宏(1971-),女,博士生,讲师,主要从事最优化算法、微分方程与动力系统研究. E-mail:majhbao@scut.edu.cn
  • 作者简介:鲍江宏(1971-),女,博士生,讲师,主要从事最优化算法、微分方程与动力系统研究.
  • 基金资助:

    国家自然科学基金资助项目(10871074)

Fast Solution Algorithm of Multiple-Choice Knapsack Problem

Bao Jiang-hong  Yang Qi-gui   

  1. Department of Mathematics, South China University of Technology, Guangzhou 510640, Guangdong, China
  • Received:2008-03-18 Revised:2008-08-27 Online:2009-04-25 Published:2009-04-25
  • Contact: 鲍江宏(1971-),女,博士生,讲师,主要从事最优化算法、微分方程与动力系统研究. E-mail:majhbao@scut.edu.cn
  • About author:鲍江宏(1971-),女,博士生,讲师,主要从事最优化算法、微分方程与动力系统研究.
  • Supported by:

    国家自然科学基金资助项目(10871074)

摘要: 背包问题属于组合优化中的经典问题,它有许多重要的变形,其中以多选择背包问题最为复杂.为更快地求解多选择背包问题,文中首先对该问题进行了理论分析,然后基于动态规划提出了一种新的求解算法,并对一个复杂的案例进行了测试.结果表明,这种新算法比遗传算法快9.4倍,比传统的0-1整数规划求解法快78倍.通过对数学模型的改进可大大降低问题的规模.更重要的是,所用方法可避免求解任何线性规划问题.

关键词: 背包问题, 组合优化, 动态规划

Abstract:

Knapsack problem is a classical combinatorial optimization problem. There are many important variations of the knapsack problem, among which the Multiple-Choice Knapsack Problem (MCKP) is the most complicated. In order to fast solve the MCKP, a theoretical analysis is performed in this paper, and a novel solution algorithm is proposed based on dynamic programming. Then, a complicated case is tested using the proposed algorithm. The re- sults indicate that ( 1 ) the proposed algorithm is 9.4 times faster than the genetic algorithm and 78 times faster than the conventional 0-1 integer programming method ; (2) the improvement of the mathematical model greatly reduces the solving scale of the knapsack problem ; and ( 3 ) the proposed algorithm makes it unnecessary to solve any linear programming problem.

Key words: knapsack problem, combinatorial optimization, dynamic programming