- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
算法报告
班级:140710班
组员:魏泽琳
田恬
黄婧婧
宋蕊
于婷雯
指导老师:徐旭东
广义背包问题
一、问题描述
广义背包问题的描述如下:给定载重量为M的背包和n种物品,每种物品有一定的重量和价值,现在需要设计算法,在不超过背包载重量的前提下,巧妙选择物品,使得装入背包的物品的总价值最大化。规则是,每种物品均可装入背包多次或不装入(但不能仅装入物品的一部分)。请用数学语言对上述背包问题加以抽象,在此基础上给出动态规划求解该问题的递归公式。要求对所给公式中的符号意义加以详细说明,并简述算法的求解步骤。用一种你熟悉的程序设计语言加以实现。
二、基本思路
1、01背包问题
在讨论广义背包问题前应该先讨论最基础的01背包问题。
这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。
用子问题定义状态:即F[i][m]表示前i件物品恰放入一个重量为m的背包可以获得的最大价值。其状态转移方程是:
F[i][m]=max{F[i?1][m],F[i?1][m?wi]+Ci}}
这个方程是解决背包问题的关键点,基本上所有跟背包相关的问题的方程都是由它衍生出来的。所以有必要解释一下:“将前i件物品放入容量为m的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只和前i?1件物品相关的问题。如果不放第i件物品,那么问题就转化为“前i?1件物品放入容量为v的背包中”,价值为F[i?1][m];如果放第i件物品,那么问题就转化为“前i?1件物品放入剩下的容量为m?wi的背包中”,此时能获得的最大价值就是F[i?1][m?wi]再加上通过放入第i件物品获得的价值Ci。
最优解的函数从方程中能得出:
F[i][m]=F[i-1][m](当第i个物品不装入)
F[i][m]F[i-1][m](当第i个物品装入)
以上是有关01背包的讨论,现在讨论广义背包的问题。
2、广义背包问题
与01背包的区别:每种物品都有无限件,能放多少就放多少。
问题:在不超过背包重量的情况下,能获得的最大价值。
举例:物品个数N=3,背包重量为M=5,则背包可以装下的最大价值为40.如下表:
基本思路(直接扩展01背包的方程)
直接扩展01背包的方程:
由于本问题类似于01背包问题,在01背包问题中,物品要么取,要么不取,而在广义背包中,物品可以取0件、取1件、取2件...直到背包放不下位置。因此,可以直接在01背包的递推式中扩展得到:
F[i][m]:表示前i件物品放入重量为m的背包中时的最大价值
递推式:
F[i][m]=max(F[i–1][m],F[i-1][m-K*wi]+K*Ci);
其中1=K=m/wi(m指此时背包重量)
//初始条件
f[0][m]=0;
f[i][0]=0;
Value[i]为第i件物品的价值;
矩阵图如下:f[i][m]第i件物品是否装入,此时容量为M的背包的最大价值
0123456
0
0
0
0
0
0
0
0
1
0
5
10
15
25
25
30
2
0
0
10
15
20
30
35
3
0
0
0
15
20
25
30
4
0
0
0
0
20
25
30
此程序运行结果为35。
复杂度分析:
程序需要求解N*M个状态,每一个状态需要的时间为O(m/Weight[i]),所以总的复杂度为O(NM*Σ(M/Weight[i]))。
思考:完全背包问题有一个很简单有效的优化,是这样的:若两件物品i、j满足c[i]=c[j]且w[i]=w[j],则将物品j去掉,不用考虑。(c=Cost价格,w=Weight重量)
即,如果一个物品A是占的地少且价值高,而物品B是占地多,但是价值不怎么高,那么肯定是优先考虑A物品的。
TSP问题
一、问题描述
所谓TSP问题是指旅行商要去n个城市推销商品,其中每个城市到达且仅到达一次,并且要求所走的路程最短(该问题又称货郎担问题、邮递员问题、售货员问题等)。TSP问题最容易想到、也肯定能得到最优解的算法是穷举法,即考察所有可能的行走线路,从中选出最佳的一条。但是用穷举法求解TSP问题的时间复杂性为O(n!),属于NP问题。请用数学语言对该TSP问题加以抽象,在此基础上给出动态规划求解该问题的递推公式。要求对所给公式中的符号意义加以详细说明,并简述算法求解步骤。用一种
您可能关注的文档
最近下载
- 2019年领导班子对照检查材料 [--镇领导班子对照检查材料].docx VIP
- 党课讲稿含PPT课件:二十届三中全会提出的新概念新观点新论断.pptx VIP
- 对照检查材料六个方面.docx VIP
- 加快建设现代化产业体系的具体内容 .pdf VIP
- 《变电站安全培训》.pptx VIP
- 2024新人教版生物学七年级下册《第三单元 植物的生活》大单元整体教学设计.pdf
- SBJ 17-2009 室外装配冷库设计规范及条文说明(高清版).pdf
- 本事詩(唐)孟啓新格式.pdf
- 推进现代化产业体系建设实施方案.pdf VIP
- AWS D1.1-D1.1M-2015(2016)结构钢焊接规范(中文版).doc
文档评论(0)