有趣的动态规划实例——博物馆大盗问题

这篇博客探讨了一个有趣的动态规划应用实例——博物馆大盗问题。大盗面临5件不同重量和价值的宝物,需要在不超过20公斤的背包里选择总价值最高的组合。博主详细介绍了动态规划的解题思路,包括如何建立动态规划表格,以及状态转移方程的推导。同时还提供了动态规划的实现代码,展示了解决问题的具体步骤。
摘要由CSDN通过智能技术生成

问题描述

大盗潜入博物馆,面前有5件宝物,分别有重量和价值,大盜的背包仅能负重20公
斤,请问如何选择宝物,总价值最高?

物品 重量 价值
1 2 3
2 3 4
3 4 8
4 5 8
5 9 10

动态规划解法

明确问题以后,我们需要建立动态规划表格
m[(i, w)]
其中 i i i 是装物品的数量 ( 0 ≤ i ≤ 5 0\le i\le 5 0i5 )
w w w 是物品的载重 ( 0 ≤ w ≤ 20 0\le w\le 20 0w20 )
m m m 则是这些物品的总价值, 也即是我们需要存入的值。
在这里插入图片描述
如何填写动态规划表格呢?
1.i=0(即没有拿宝物)和w=0(最大载重为20)这两种情况下,总价值都为0
2.用循环对每次拿宝物数量和最大载重值进行查找填表

  • 当本次i下物品的重量>当前最大载重时,m的值就等于第i-1次总重为w的价值。
  • 否则返回 装或者不装该次物品这两种情况下的最大值
    算 法 公 式 如 下 : \color {red} {算法公式如下:} :
    m ( i , W ) = { 0  if  i = 0 0  if  W = 0 m ( i −
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值