实验报告:动态规划---0-1背包问题)范文.docx

上传人:啊飒飒 文档编号:13207007 上传时间:2021-12-18 格式:DOCX 页数:6 大小:12.88KB
返回 下载 相关 举报
实验报告:动态规划---0-1背包问题)范文.docx_第1页
第1页 / 共6页
实验报告:动态规划---0-1背包问题)范文.docx_第2页
第2页 / 共6页
实验报告:动态规划---0-1背包问题)范文.docx_第3页
第3页 / 共6页
实验报告:动态规划---0-1背包问题)范文.docx_第4页
第4页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《实验报告:动态规划---0-1背包问题)范文.docx》由会员分享,可在线阅读,更多相关《实验报告:动态规划---0-1背包问题)范文.docx(6页珍藏版)》请在三一文库上搜索。

1、实验报告:动态规划-0-1背包问题)范文 XXXX 大 学 计 算 机 学 院 实 验 报 告 计算机学院 2021 级 软件工程 专业 5 班 指导教师 学号 姓名 2021 年 10 月 21 日 成绩 课程名称 算法分析与设计 实验名称 动态规划 -0-1 背包问题理解递归算法的概念 实验目的 通过模仿 0-1 背包问题,了解算法的思想练习 0-1 背包问题算法 实验仪器 电脑、 jdk 、 eclipse 和器材 实验: 0-1 背包算法:给定 N 种物品,每种物品都有对应的重量 weight 和价值 value ,一个容 量为 maxWeight 的背包,问:应该如何选择装入背包的物

2、品,使得装入背包的物品的总价值 最大。(面对每个物品,我们只有拿或者不拿两种选择,不能选择装入物品的某一部分,也 实 验 不能把同一个物品装入多次)代码如下所示: 内 public class KnapsackProblem 容 /* 、 上 * paramweight 物品重量 机 * paramvalue 物品价值 调 * parammaxweight 背包最大重量 试 程 * return maxvalueij 中, i 表示的是前 i 个物品数量, j 表示的是重量 序 */ 、 public static int knapsack( int weight , int value ,

3、int maxweight ) 程 序 运 行 结 果 实 验 内 int n = ; 包问题的算法思想:将前 i 个物品放入容量 容 为 w 的背包中的最大价值。有如下两种情况: 、 若当前物品的重量小于当前可放入的重量,便可考虑是 上 否要将本件物品放入背包中或者将背包中的某些物品拿出 机 来再将当前物品放进去;放进去前需要比较(不放这个物 调 品的价值)和(这个物品的价值放进去加上当前能放的总 试 重量减去当前物品重量时取 i-1 个物品是的对应重量时候 程 的最高价值),如果超过之前的价值,可以直接放进去,反 序 之不放。 、 若当前物品的重量大于当前可放入的重量,则不放入 程 背包问

4、题利用动态规划的思路可以这样理解:阶段是"物 序 品的件数',状态就是"背包剩下的容量' ,fi,v 表示设 运 从前 i 件物品中选择放入容量为 V 的背包的最大价值。那 行 么状态转移的方法为 : 结 fiv=maxfi-1v,fi-1v-wi+ci 果 这个方程可以理解为:只考虑子问题"将前 i 个物品放入 容量为 v 的背包中的最大价值' 那么可以考虑不放入 i ,最 大价值就和 i 无关,就是 fi-1v, 如果放入第 i 个物品, 价值就是 fi-1v-wi+valuei, 只取最大值即可。 实 验 内 容 、 上 机 调 试 程 序 、 程 序 运 行 结 果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1