- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求解0―1背包问题算法研究
摘要:本文主要概述了求解0-1背包问题的两大类算法:精确算法和近似算法,并分析了这些算法的优缺点,并提出了求解该问题的算法发展趋势。
关键词:0-1背包问题;精确算法;近似算法
中图分类号:TP312 文献识别码:A 文章编号:1001-828X(2017)010-0-03
The Study of the 0-1 Knapsack Problem Algorithm
Abstract: This paper mainly summarizes the solving 0-1 knapsack problem algorithm of two categories: accurate and approximate algorithms, and analyzes the advantages and disadvantages of these algorithms, and put forward the development trend of algorithms to solve the problem.
Keywords: 0-1 knapsack problem, precise algorithm, approximate algorithm
Dantzig[1]在20世纪50年代首次提出了背包问题(Knapsack problem,简称KP),在文献[2]中,阐述了该问题是一个NP-难问题,在背包问题中,我们很难设计出多项式时间算法,除非P=NP。0-1背包问题就是,给定一个容量为的背包和件具有价值的物品,在不超过背包容量的前提下,选择若干物品放入背包,使得装入背包的物品总价值最大。同时给出一种放置物品的方案。
背包问题就有普遍的应用背景,在日常的许多实践中如:材料切割、资源有效分配问题、资金估算的问题、运输过程的货仓装载等起着很大的作用,许多的组合优化问题都可以简化为背包问题,背包问题的各种解法也可用来解决组合优化问题,因此对0-1背包问题的解法进行深入的研究具有重大的意义。
一、0-1背包问题数学模型
在组合优化领域中,背包问题是一个典型的NP-难问题。在材料切割、资源有效分配问题、资金估算的问题、运输过程的货仓装载等领域有重大的作用。0-1背包问题可以描述为:给定一个容量为C的背包和n件物品,物品i的重量为wi,价值为pi,0-1背包问题的数学模型可以转化为:
模型中,xi为0-1变量,当物品被选入背包时,xi=1,否则,物品没被选如背包,xi=0。
背包问题引起了很多学者的不断探究,目前,求解0-1背包问题的算法大致上可以分为精确算法和近似算法两大类,其中枚举法、分支定界法、回溯法、图论法、动态规划法等属于精确算法,这些算法的时间复杂度都偏大,导致其实用性受到限制。近似算法有贪婪算法、模拟退火算法、遗传算法、蚂蚁算法等,虽然近似算法在时间上占有优势,但是该算法只能够得到问题的近似解,解的质量大幅度下降。本文将针对?字殖S玫?0-1背包问题的解法进行阐述。
二、求解0-1背包问题常用算法研究
(一)求解0-1背包问题的精确算法
1.枚举法
枚举法也称为穷举法,该算法的基本思路是,针对具体问题特性,首先将该问题的所有可行解一一列举出来,同时在穷举的过程中,验证每个可行解是否为问题的最优解,若是,我们就保留该解,否则遗弃它。
用枚举法解决0-1背包问题,首先,我们必须一一列举出件物品全部的子集,再寻找全部可行的子集(物品总重量不超出背包本身所能承受重量的子集),然后对这些子集进行验证,计算出各个可行子集的总重量以及对应的价值和,分析比较求出价值最大的子集。用枚举法求解0-1背包问题,首先需要穷举出所有可行解,然后在判断是否为最优解,算法最后一定可以得到全局最优解。对于有n件物品的背包问题,不管产生子集的计算方法的效率有多高,枚举法始终会造成一个O(2n)的算法,当n很大时,显然该方法的时间复杂度太大。
2.回溯法
回溯法又称为试探法,它是一种按照深度优先策略进行系统地搜索问题最优解的方法。回溯法的基本思想是,对于给定问题,先定义解空间以及解空间的结构(典型的结构是树或图),然后解空间状态树中从根节点出发按照深度优先策略进行搜索。在搜索至任意结点时,总是先进行判断,该结点是否包含问题的可行解,若包含问题的可行解就继续进入该子树搜索,否则,进行相应的剪枝。按照此方法逐层向上回溯,直到搜索完整个解空间,找到问题的最优解。
用回溯法求解0-1背包问题的一般步骤:
(1)定义解空间:0-1背包问题的解可以用n维的向量X={(x1,x2,…,xn)|xi=0或1,i
您可能关注的文档
最近下载
- 高考专题复习数列模板题.doc VIP
- 弹塑性力学习题解答.pdf VIP
- 太阳能路灯安装工程合同范本(4篇).doc VIP
- 专题06 万有引力及航天(真题汇编)-2024年浙江省学业水平考试.docx VIP
- 2022年高考地理一轮复习:常考必背考点实用答题模板.docx VIP
- 2025年(全国一卷)高考英语阅读理解D篇 真题解读+答题技巧+变式练习(学生版+解析版).pdf VIP
- 《GB/T 22080-2025网络安全技术 信息安全管理体系 要求》.pdf
- 儿童慢性病的健康照护题库答案-2025年华医网继续教育.docx VIP
- 办公设备维保服务项目总体实施方案.doc VIP
- 专题05 曲线运动(真题汇编)-2024年浙江省学业水平考试.docx VIP
原创力文档


文档评论(0)