动态规划

Posted the WORLD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划相关的知识,希望对你有一定的参考价值。

多阶段决策过程最优

问题由交叠的子问题构成

子问题:一次求解,永久保存

函数幂等

动态规划不但可以作为特殊的空间换时间权衡技术,

也可以经改进避免使用额外的空间

 

经典自底向上:需要求解所有子问题

试图避免不必要的子问题求解:递归

共同点:递推式

 

最优化法则:问题最优——子问题最优

反例:最长简单路径

 

例子:

一排硬币,选不相邻,总金额最大

前 i 枚最大+是否选i+1

 

问题描述

无限硬币,最少数目找零

总金额为n的最少的硬币数=某个面值d+总金额为(n-d)的最少的硬币数

 

左上角到右下角爬格子收集硬币

当前位置=max(左一格,上一格)

 

背包

n个物品,重量wi,价值vi,总承重W,最大化价值

是否包含物品i

 

记忆化功能:

自顶向下求解,记录已求解子问题

 

问题分解(递归思想)

问题构造(迭代思想)

问题分解为子问题的第一步:分解出最小可执行子问题

或分解为两个子问题

 

最优二叉查找树

满足左<父<右

元素查找概率已知  

 最优=左子树最优+右子树最优+父节点

C(i,j)=min(C(i,k-1)+C(i,k+1))+all(p(i-j))

 

 

 

Warshall:有向图传递闭包

Flody:全部最短路径

 

有向图传递闭包:两点是否存在路径

深搜广搜得到:路径重复

n阶布尔矩阵

R0——Rn

自身可达——最大长度路径n-1!

不是矩阵乘法

 

完全最短路径

最短路径:距离矩阵

不包含负回路,包含?

 

矩阵中任意元素可由直接前驱计算得到

斐波那契

问题转换为斐波那契形式:内存优化

 

矩阵k:中间节点编号不大于k

 

适当初始化完成减枝?

 

以上是关于动态规划的主要内容,如果未能解决你的问题,请参考以下文章

算法动态规划 ② ( 动态规划四要素 | 动态规划状态 State | 动态规划初始化 Initialize | 动态规划方程 Function | 动态规划答案 Answer )

算法动态规划 ② ( 动态规划四要素 | 动态规划状态 State | 动态规划初始化 Initialize | 动态规划方程 Function | 动态规划答案 Answer )

算法动态规划 ① ( 动态规划简介 | 自底向上的动态规划示例 | 自顶向下的动态规划示例 )

算法动态规划 ① ( 动态规划简介 | 自底向上的动态规划示例 | 自顶向下的动态规划示例 )

算法动态规划 ③ ( LeetCode 62.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )

算法动态规划 ③ ( LeetCode 62.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )