分享

动态规划(DP)

 长沙7喜 2021-07-20

本课程是从少年编程网转载的课程,目标是向中学生详细介绍计算机比赛涉及的编程语言,数据结构和算法。编程学习最好使用计算机,请登陆 www.3dian14.org (免费注册,免费学习)。

本月7月13日上午,公安部在北京召开新闻发布会,介绍聊城1997.9.21”郭新振(电影《失孤》被拐儿童原型)被拐卖案侦破情况。破案过程中生物技术的力量功不可没。 通过DNA序列比对来确定血亲关系,是生物信息学的一个应用,而背后的算法的基础叫做动态规划(DP)。

DP是个比较难的概念。

我们从动态规划中大名鼎鼎的背包问题开始说起。。。

图片


图片对于背包问题,最简单的是暴力解法,尝试跟着可能的组合:

图片

也许你一眼看出了答案。其实是你大脑偷偷做了各种排列组合。

图片下面主角登场了——DP

动态规划的基本原则是:先接近小问题,再逐步解决类似的大问题

图片


图片我们用表格来记录小问题,先完成一个亿点点的小目标:

图片

图片我们来完成生命中第一个DP问题:

动态有点大,我裁成了4份:

图片图片图片图片

图片

图片图片图片图片   图片图片图片图片

图片

图片图片图片图片     图片图片图片图片    图片图片图片图片

图片

图片图片图片图片    图片图片图片图片    图片图片图片图片    图片图片图片图片

图片

我们完成了第一个DP问题。总结一下:表格的每一个格子代表了一个DP小问题的最优解。 在往下逐步填满小格子时, 我们不断的在重用已经解决的小问题的答案。或者说把新的问题分解为已经解决的小问题。

问题1:  如果又发现一个仙品,怎么办?

如果再来一个物品,我们只要给表格再加一行就好:

图片

问题2:如果仙品的重量不是整数,怎么办?

需要重新设计表格,因为我们需要包含更多的小问题。

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多