动态规划
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.不同路径 | 问题分析 | 自顶向下的动态规划 | 自底向上的动态规划 )