- 4
- 0
- 约2.02千字
- 约 5页
- 2019-06-17 发布于山东
- 举报
01背包动态规划法
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
0—1背包问题
一、实验目的
学习掌握动态规划法思想。
二、实验内容
用动态规划法求解0—1背包问题,并输出问题的最优解。0—1背包问题描述如下: 给定n种物品和一背包。物品i的重量是Wi,其价值为Vi,背包的容量是c,问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。
三、实验条件
Jdk1.5以上
四、需求分析
对于给定n种物品和一背包。在容量最大值固定的情况下,要求装入的物品价值最大化。 五、基本思想:
动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干个子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的,若用分治法解这类问题,则分解得到的子问题数目太多,以至于最后解决原问题需要耗费过多的时间。动态规划法又和贪婪算法有些一样,在动态规划中,可将一个问题的解决方案视为一系列决策的结果。不同的是,在贪婪算法中,每采用一次贪婪准则便做出一个不可撤回的决策,而在动态规划中,还要考察每个最优决策序列中是否包含一个最优子序列。
六、详细设计
/*
* Dynamic_Programming.java
*
* Created on 2007年6月3日, 下午4:13
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package sunfa;
/**
*
* @author Administrator
*/
public class Dynamic_Programming {
public static void knapsack(int[] v, int[] w, int c, int[][] m)
{
/** v[] w[] c 分别是价值、重量、和背包容量数组
m[i][j]表示有i~n个物品,背包容量为j的最大价值。*/
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
int n = v.length-1;
int jMax = Math.min(w[n]-1, c);
for(int j = 0; j = jMax; j++)
m[n][j] = 0; //当w[n]j 有 m[n][j]=0
//m[n][j] 表示只有n物品,背包的容量为j时的最大价值
for (int l = w[n]; l = c; l++)
m[n][l] = v[n]; //当w[n]=j 有m[n][j]=v[n]
//递规调用求出m[][]其它值,直到求出m[0][c]
for(int i = n-1; i =1; i--)
{
jMax = Math.min(w[i]-1,c);
for(int k = 0; k =jMax; k++)
m[i][k] = m[i+1][k];
for(int h = w[i]; h = c; h++)
m[i][h] = Math.max(m[i+1][h],m[i+1][h-w[i]]+v[i]);
}
m[0][c] = m[1][c];
if(c = w[0])
m[0][c] = Math.max(m[0][c],m[1][c-w[0]]+v[0]);
}
public static void traceback(int[][] m, int[] w, int c, int[] x)
{// 根据最优值求出最优解
int n = w.length-1;
for(int i = 0; in;i++)
if(m[i][c] == m[i+1][c])
x[i] = 0
您可能关注的文档
- 毕业典礼校长讲话稿.doc
- 六年级毕业典礼校长讲话稿 (1).doc
- 六年级毕业典礼校长讲话稿.doc
- 六年级毕业典礼周校长讲话.docx
- 小升初毕业典礼校长致辞.doc
- (最新)单位、分部、分项工程划分案例.doc
- [笔记]大学生人人SNS社交网络使用现状调查.doc
- [工作]2010年新昌科普月活动方案.doc
- [汇编]中国石油润滑油公司电梯、升降机安全管理制定.doc
- [计划]工人生活区厕所技术交底.doc
- 《GB/T 46962-2026印刷技术 安全印刷过程管理》.pdf
- 中国国家标准 GB/T 46962-2026印刷技术 安全印刷过程管理.pdf
- GB/T 46962-2026印刷技术 安全印刷过程管理.pdf
- 中国国家标准 GB/T 32580.5-2026轨道交通 地面装置 高压交流开关设备及互感器 第5部分:27.5 kV和2×27.5 kV金属封闭开关设备和控制设备.pdf
- 《GB/T 32580.5-2026轨道交通 地面装置 高压交流开关设备及互感器 第5部分:27.5 kV和2×27.5 kV金属封闭开关设备和控制设备》.pdf
- GB/T 33248-2026印刷技术 胶印橡皮布.pdf
- GB/T 18282.6-2026医疗产品灭菌 化学指示物 第6部分:用于小型蒸汽灭菌器性能测试的二类指示物和过程挑战装置.pdf
- 中国国家标准 GB/T 18282.6-2026医疗产品灭菌 化学指示物 第6部分:用于小型蒸汽灭菌器性能测试的二类指示物和过程挑战装置.pdf
- 中国国家标准 GB/T 31308.1-2026行政、商业和行业中的数据元、过程和文档 长效签名 第1部分:CMS高级电子签名(CAdES)规范.pdf
- GB/T 31308.1-2026行政、商业和行业中的数据元、过程和文档 长效签名 第1部分:CMS高级电子签名(CAdES)规范.pdf
原创力文档

文档评论(0)