背包问题实习报告讲述.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
背包问题实习报告讲述

背包问题 摘要:背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、嘲络信息安全等应用中具有重要的价值。从计算复杂性理论看,背包问题是一个经典NP难解问题。半个多世纪以来,该问题一直是算法与复杂性研究的热点问题之一。论文研究了背包问题的实用求解算法,提出了改进的新算法,并利用Maltab对几种算法进行了仿真实验,测试的结果显示出新算法在解决0/1背包问题时表现出了良好的性能。 关键字:蚁群算法,背包问题,遗传算法,MATLAB 引言 背包问题(knapsackproblem,简称KP)是运筹学中一个典型的优化难题,在预算控制、项目选择、材料切割、货物装载等实践中有重要应用,并且还常常作为其他问题的子问题加以研究。随着网络技术的不断发展,背包公钥密码在电子商务中的公钥设计中也起着重要的作用。背包问题的数学模型为:     Max?(…)=  …n               … 式中,n为物品的编号:m为资源的编号;为第j个物品的受益量;成为第i种资源的预算:为第j个物品占用第i种资源的量:为o-1决策变量(当物品j被选择时=1否贝=0)。   KP的语言描述可以这样:现有j(j=1,2,?,n)个物品,每个物品将会消耗m种资源啦=(1,2,?,m),如果将物品j装人背包将会获益q,与此同时,要求所有装入背包的物品消耗的资源I不能超过。   背包问题可以衍生出一系列与之相关的优化问题,如有限背包问题(物体可具有相同价值和重量但数量是有限的),无限背包问题(具有相同价值和重量的物体数量可以是无限的),多背包问题(将物体装入多个容量不同的背包)等。本文中所指背包问题如无特殊说明,均指Fl的简单0/1背包问题。   背包问题在实践中有广泛的应用背景。许多简单结构的有机组合构成了复杂结构,对简单问题的深入探索也使复杂问题的解决变得相对容易。在设计解决大量的复杂组合优化问题算法时,背包问题往往作为子问题出现。背包问题的算法改进,对复杂组合优化问题算法的改良是十分有益的。   上面提到的各种类型的背包问题均属于NP难解问题类,意味着基于P≠NP的,无法找到多项式时间算法求得该类问题最优解。但大多数背包问题有拟多项式的时间算法,这意味着若系数规模有所界定,在可接受的时间内能够得到最优解。背包问题的应用背景促使人们对该问题计算方法进行了深入研究,背包问题的特有计算性质又使其应用领域不断得到拓展。   KP属于组合最优化问题。一般的,最优化问题(optimizationpmblem)由目标函数(objective function)N约束条件(constraints)两部分构成:      ??(…)       将满足所有约束条件的解空间S称为可行域(feasible region),可行域中的解称为可行解(feasible solution);将可行域中使目标函数最小的解称为最优解(optimal s01ution)。对于最大化问题,可将目标函数乘以(-1),转化为最小化问题求解。当X或S为离散集合构成的解空间时,这类最优化问题称为组合最优化问题(combinatorial optimization problem)。严格意义上的最优解求取非常困难,研究高速近似的算法是一个重要的发展方向。对全局优化问题,目前存在确定 性和非确定性两类方法。前者以Brianin的下降轨线法、Levy的隧道法和R.Ge的填充函数法为代表。该类方法虽然收敛快、计算效率高,但算法复杂,求得全局极值的概率不大。非确定性方法以Monte-Carlo。随机试验法、Hartman的多始点法、Solis和Wets的结合梯度信息的搜索方法、模拟退火法(simulated annealing)等为代表。该类方法对目标函数要求低、容易实现、稳定性好,但收敛速度 慢、求得全局极值的概率较低。 对于背包问题。已有的求解方法可分为精确算法(盘日枚举法,动态规划法,分支定界法,图论法等指数级方法)和近似算法(如贪心算法,蚂蚁算法,遗传算法等)两大类。 1.1背包问题的基本原理 递归算法 作为研究的基础,这里采用普通的递归算法对0/I背包问题进行求解。这种方法本身是一种深度优先的穷举算法,所以不适合大规模问题的求解。为了提高搜索效率,算法采用了一定的优化方法对搜索树进行剪枝,避免了一定程度的盲目搜索,提高了一些效率。算法首先对物品按照单位质量的价值大小(密度)进行排序,然后从前向后进行试探。程序运行过程中保存有当前找到的最优解。下次搜索时,若当前密度小于最优解的密度则程序退出当前循环,返回上一层循环继续搜索。利用这种方法,使得程序运行速度获得很大提高。 本算法由两个程序组成: knaps主程序,用来进行参数的初始化。结果的显

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档