背包问题与动态规划

本文通过背包问题探讨动态规划的运用,解释如何在背包容量和商品重量的约束下,通过动态规划策略找到最优解,以实现最大价值。介绍了动态规划的基本原则和表格填充方法,并总结了动态规划适用的情况。
摘要由CSDN通过智能技术生成

我们在介绍贪婪算法时,曾提到过背包问题,并且我们也使用了贪婪算法找到了一个近似解。那么,我们能不能找到最优解呢?让我们先来看看这个问题:

小偷有一个4公斤重的背包,他可盗窃的商品有

商品 价格 重量
音响 3000元 4公斤
笔记本电脑 2000元 3公斤
吉他 1500元 1公斤

如何让盗窃的商品价值最高?

为了寻找最优解,我们当然可以使用列出所有的商品组合,然后找出最高价值的方法。在我们的问题中,有2^3 = 8中组合方式。但是我们知道这种方法并不好——每增加一件商品,需要计算的组合数量都要增加一倍。如果这个小偷的力气更大、能偷的东西更多,那么这种算法是绝对行不通的。

我们还可以用其他办法找到最优解吗?


1. 背包问题的最优解

简单的说,动态规划的原则是先解决子问题,再逐步解决大问题。我们来看看如何在背包问题中使用动态规划策略:

首先我们来画一个表格:

1公斤 2公斤 3公斤 4公斤
吉他
音响
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值