- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解背包问题的动态规划算法.doc
解0/1背包问题的动态规划算法
摘要:本文通过研究动态规划原理,提出了根据该原理解决0/1背包问题的方法与算法实现,并对算法的正确性作了验证.观察程序运行结果,发现基于动态规划的算法能够得到正确的决策方案且比穷举法有效.
关键字:动态规划;0/1背包;约束条件;序偶;决策序列;支配规则
1、引 言 科学研究与工程实践中,常常会遇到许多优化问题,而有这么一类问题,它们的活动过程可以分为若干个阶段,但整个过程受到某一条件的限制。这若干个阶段的不同决策的组合就构成一个完整的决策。0/1背包问题就是一个典型的在资源有限的条件下,追求总的收益最大的资源有效分配的优化问题。
对于0/1背包问题,我们可以这样描述:设有一确定容量为C的包及两个向量C’ (S1,S2,……,Sn)和P (P1,P2,……,PN),再设X为一整数集合,即X 1,2,3,……,N,X为SI、PI的下标集,T为X的子集,那么问题就是找出满足约束条件∑Si〈 C,使∑PI获得最大的子集T。在实际运用中,S的元素可以是N个经营项目各自所消耗的资源,C可以是所能提供的资源总量,P的元素可是人们从各项项目中得到的利润。
0/1背包问题是工程问题的典型概括,怎么样高效求出最优决策,是人们关心的问题。
2、求解问题的动态规划原理与算法
2.1动态规划原理的描述
求解问题的动态规划有向前处理法向后处理法两种,这里使用向前处理法求解0/1背包问题。对于0/1背包问题,可以通过作出变量X1,X2,……,XN的一个决策序列来得到它的解。而对于变量X的决策就是决定它是取0值还是取1值。假定决策这些X的次序为Xn,XN-1,……,X0。在对X0做出决策之后,问题处于下列两种状态之一:包的剩余容量是M,没任何效益;剩余容量是M-w,效益值增长了P。显然,之后对Xn-1,Xn-2,……,X1的决策相对于决策X所产生的问题状态应该是最优的,否则Xn,……,X1就不可能是最优决策序列。如果设Fj(X)是KNAP(1,j,X)最优解的值,那么Fn(M)就可表示为 FN(M) max fn M ,fn-1 M-wn +pn (1) 对于任意的fi X ,这里i 0,则有 fi X max fi-1 X ,fi-1 X-wi +pi (2) 为了能由前向后推而最后求解出FN(M),需从F0(X)开始。对于所有的X 0,有F0(X) 0,当X 0时,有F0(X)等于负无穷。根据(2),可求出0〈X〈W1和X〉 W1情况下F1(X)的值。接着由(2)不断求出F2,F3,……,FN在X相应取值范围内的值。
2.2 0/1背包问题算法的抽象描述
初始化各个元素的重量W[i]、效益值P[i]、包的最大容量M;
初始化S0;
生成Si;
在中Si-1找满足约束条件的第R对序偶;
生成S1i ;
清除不满足条件的序偶;
将Sn-1中满足条件的序偶复制到Sn 中;
(4)对Sn+1置初值;
(5)若不满足循环次数转(3),否则转(6);
(6)用回溯法确定决策序列;终止程序。
2.3计算复杂性分析
假设Si的序偶是|Si |。在i>0的情况下,每个Si由S1i-1和S1i归并而成,并且|S1i | |Si-1 |,因此|Si | 2|Si-1 |。在最坏情况下没有序偶被清除,所以 对|Si|求和 i 0,1,2,...n-1 的结果是2n-1,也就是说DKNAP的空间复杂度为O(2n)。
由Si-1生成Si需要|Si-1||的时间,所以在计算S0,S1,S2,……,Sn-1时所消耗的总时间为(∑|Si-1|),0〈=i〈=n-1。由于|Si|〈=2n,所以计算这些Si总的时间为O(2n)。
该算法的时间复杂性为O(2n),似乎表明当N很大时它的有效性不会让人满意,但由于支配规则的引入,很好的清除了不满足约束的序偶,因而该算法在很多情况下都能在可接受的时间内求出决策序列。
2.4基于动态规划的算法源程序 由于算法源程序有一定的篇幅,将其附后。
3、性能测试
3.1测试问题
为了验证算法的正确性与有效性,用两个数组P[N]和W[N]分别存储
始记录C’和P,记录为用穷举法已求出最优决策的实例。现分别取N=3,4 ,6,10进行实验。
3.2试验结果与分析
为了便于说明问题,现将实验过程中的N取不同值的一组向量C’和P(也就
是重量与效益值)记录如下:
N 3:C’ (2,3,4);P (1,2,5);M 6;
N 4:C’ (2,4,6,7);P (6,10,12,13);M 11;
N 6:C’ (100,50,20,10,7,3);P (90,70,30,20,5,15);M 165;
N 10:C’ (2,4,5,7,10,14,19,20,25,30); P (1,3,4,5,10,15,20,25
您可能关注的文档
- 西安市家庭购房申报表(商品住房).doc
- 西安市教育科学研究“十二五”规划x年度小课题.doc
- 西安市科技计划.doc
- 西安市第一中学学x年度第二学期期中考试.doc
- 西安市阎良区青少x年活动中心.doc
- 西安广播电视大学计算机科学与技术(本科)实践课程辅助教材.doc
- 西安建筑科技大学考试试卷A (共页)评卷人填写.doc
- 西安建筑科技大学考试试卷B (共页)评卷人填写.doc
- 西安恒庆机电科技有限公司.doc
- 西安新闻网招聘启事.doc
- 语文人教统编版选择性必修下册9.1陈情表(共23张ppt).pptx
- 统编版必修下册 15.2 答司马谏议书 课件(共53张PPT).pptx
- 统编版选择性必修中册 11.2 五代史伶官传序 课件(共28张PPT).pptx
- 统编版选择性必修上册 9 复活(节选)课件(共35张PPT).pptx
- 古诗词诵读《将进酒》课件 2023-2024学年统编版高中语文选择性必修上册.pptx
- 陕西省咸阳市实验中学2024-2025学年高二上学期开学考试语文试题.pdf
- 吉林省四校联考2024-2025学年高二上学期9月月考试题 语文.docx
- 古诗词诵读《春江花月夜》课件 2024-2025学年统编版高中语文选择性必修上册.pptx
- 统编版选择性必修下册 1 欲把深情说与谁——《氓》《孔雀东南飞》对比阅读课件(共35张PPT).pptx
- 统编版高中语文必修上册(高一)第二单元《喜看稻菽千重浪》《心有一团火,温暖众人心》《探界者钟扬》群文阅读教学设计.docx
文档评论(0)