ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

动态规划dynamic programming

2022-04-26 21:04:43  阅读:200  来源: 互联网

标签:dynamic programming 决策 DP 动态 就是


 

概念理解

摘自:如何理解动态规划?

英文dynamic programming,中文动态规划,给人一种很宏大的感觉。但其实对所谓动态和规划都没有那么深的体现,可以简单得理解为是对传统递归的一种优化。

Bellman,也就是”发明"了DP的人,自己说这个名字是他“编的”,主要为了规避军方的厌恶,否则就要用什么decision research这种名字了。

Bellman是个数学家,这里programming不是编程的意思,而是决策。但这种决策不是一下就出来的,而是一步步(multistage)积累出来。换句话说我们需要一个决策,但这个决策太大了,我们做不了,所以需要把他递归到我们可以简单做出决策的状态,然后从这些状态开始,慢慢的“动态地”演进到最终的决策。

比如说用最少的硬币换零钱,突然和你说要换78分钱,你怎么就能迅速给出答案呢,你不能。但是如果是1分的话,你就可以,2分的话呢,就是在1分的基础上再加1分,你也可以。于是你就慢慢地从1分开始一直算到78就有答案了。从另一个角度说,如果你用DP算出了怎么换78分,那如果我问你76分怎么换,你也应该有答案了。

所以在DP的实践中很重要的就是递推关系和边界条件。所谓边界条件就是最简单的情况,所谓递推关系就是如果你已经知道这么多,再多给你一个,你怎么得到。

说一个最最最简单的例子,找出一个数组中的最大值。这个问题边界条件是什么呢,就是如果只有一个元素,那最大值就是他;递推关系是什么,就是你已经知道当下最大的数,再多给你一个数你怎么办。你会拿这个数和当下最大的数去比,其中较大的那个就是新的最大的数。这就是典型dp的思想。



 

参考二

动态规划算法-dynamic programming

 

 

 

 

标签:dynamic,programming,决策,DP,动态,就是
来源: https://www.cnblogs.com/picassooo/p/16196412.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有