背包问题实习报告.doc

背包问题实习报告.doc

ID:59133968

大小:232.00 KB

页数:21页

时间:2020-09-12

背包问题实习报告.doc_第1页
背包问题实习报告.doc_第2页
背包问题实习报告.doc_第3页
背包问题实习报告.doc_第4页
背包问题实习报告.doc_第5页
资源描述:

《背包问题实习报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、背包问题摘要:背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、嘲络信息安全等应用中具有重要的价值。从计算复杂性理论看,背包问题是一个经典NP难解问题。半个多世纪以来,该问题一直是算法与复杂性研究的热点问题之一。论文研究了背包问题的实用求解算法,提出了改进的新算法,并利用Maltab对几种算法进行了仿真实验,测试的结果显示出新算法在解决0/1背包问题时表现出了良好的性能。关键字:蚁群算法,背包问题,遗传算法,MATLAB引言背包问题(knapsackproblem,简称KP)是运筹学中一个典型的优化难题,在预算控制、项目选择、材料切割、货物装载等实践中有重

2、要应用,并且还常常作为其他问题的子问题加以研究。随着网络技术的不断发展,背包公钥密码在电子商务中的公钥设计中也起着重要的作用。背包问题的数学模型为:    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不能超过。

3、  背包问题可以衍生出一系列与之相关的优化问题,如有限背包问题(物体可具有相同价值和重量但数量是有限的),无限背包问题(具有相同价值和重量的物体数量可以是无限的),多背包问题(将物体装入多个容量不同的背包)等。本文中所指背包问题如无特殊说明,均指"Fl的简单0/1背包问题。  背包问题在实践中有广泛的应用背景。许多简单结构的有机组合构成了复杂结构,对简单问题的深入探索也使复杂问题的解决变得相对容易。在设计解决大量的复杂组合优化问题算法时,背包问题往往作为子问题出现。背包问题的算法改进,对复杂组合优化问题算法的改良是十分有益的。  上面提到的各种类型的背包问题均属于N

4、P难解问题类,意味着基于P≠NP的,无法找到多项式时间算法求得该类问题最优解。但大多数背包问题有拟多项式的时间算法,这意味着若系数规模有所界定,在可接受的时间内能够得到最优解。背包问题的应用背景促使人们对该问题计算方法进行了深入研究,背包问题的特有计算性质又使其应用领域不断得到拓展。  KP属于组合最优化问题。一般的,最优化问题(optimizationpmblem)由目标函数(objectivefunction)N约束条件(constraints)两部分构成:     ƒƒ(…)     将满足所有约束条件的解空间S称为可行域(feasibleregion),可行

5、域中的解称为可行解(feasiblesolution);将可行域中使目标函数最小的解称为最优解(optimals01ution)。对于最大化问题,可将目标函数乘以(-1),转化为最小化问题求解。当X或S为离散集合构成的解空间时,这类最优化问题称为组合最优化问题(combinatorialoptimizationproblem)。严格意义上的最优解求取非常困难,研究高速近似的算法是一个重要的发展方向。对全局优化问题,目前存在确定性和非确定性两类方法。前者以Brianin的下降轨线法、Levy的隧道法和R.Ge的填充函数法为代表。该类方法虽然收敛快、计算效率高,但算法复

6、杂,求得全局极值的概率不大。非确定性方法以Monte-Carlo。随机试验法、Hartman的多始点法、Solis和Wets的结合梯度信息的搜索方法、模拟退火法(simulatedannealing)等为代表。该类方法对目标函数要求低、容易实现、稳定性好,但收敛速度慢、求得全局极值的概率较低。对于背包问题。已有的求解方法可分为精确算法(盘日枚举法,动态规划法,分支定界法,图论法等指数级方法)和近似算法(如贪心算法,蚂蚁算法,遗传算法等)两大类。1.1背包问题的基本原理递归算法作为研究的基础,这里采用普通的递归算法对0/I背包问题进行求解。这种方法本身是一种深度优先的

7、穷举算法,所以不适合大规模问题的求解。为了提高搜索效率,算法采用了一定的优化方法对搜索树进行剪枝,避免了一定程度的盲目搜索,提高了一些效率。算法首先对物品按照单位质量的价值大小(密度)进行排序,然后从前向后进行试探。程序运行过程中保存有当前找到的最优解。下次搜索时,若当前密度小于最优解的密度则程序退出当前循环,返回上一层循环继续搜索。利用这种方法,使得程序运行速度获得很大提高。本算法由两个程序组成:knaps主程序,用来进行参数的初始化。结果的显示等。search执行递归算法,求取结果。ffunction[xmax,pmax]=knaps(cl,pl,m1)%[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。