算法---动态规划

边学边记


基本概念

动态规划(MatrixChain)
 基本思想:将待求解的问题分解成若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解。创建记录子问题的表格,避免重复计算子问题

  在解某一问题的直接递归算法所产生的递归树中,相同子问题反复出现,并且不同子问题相对较少

使用条件
    1.原问题可以划分为子问题
    2.拥有最优子结构(原问题最优解包含子问题最优解)
    3.拥有重叠子问题(子问题的解可以重复利用)


动态规划2个基本要素

 最优子结构:原问题的最优解由子问题的最优解组合而成,子问题可以独立求解。

 重叠子问题:子问题的重叠性质。避免重复计算,记录算过的子问题从而避开。


动态规划法变形—备忘录方法(MemoizedMatrixChain)

区别:递归方法不同
 动态规划法 自向上递归
 备忘录方法 自向上递归
其余相同
 这个方法回为每个子问题建立一个记录项,初始化时存入一个特殊的值,表示该问题尚未求解。所以是动态规划的变形方法,都有记录子问题的表格


动态规划解题步骤:
  1.找出最优解的性质,并刻画其结构特征
  2.递归的定义最优值
  3.以自底向上的方式计算最优值
  4.根据计算的最优值时得到的信息,构造最优解

1-3步 ------ 找最优解   4步------ 构造最优解
在这里插入图片描述




案例

矩阵连乘问题

问题描述

定义
在这里插入图片描述
例如
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上式即为最优递推公式,完成了第二步
在这里插入图片描述例题
在这里插入图片描述


最长公共子序列

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
考点:写出C数组和rec数组,注意怎么写出最大公共子序列。从右下角开始找起


最大字段和问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:这里的起始位置,可以设置为 -1 或者是 0
在这里插入图片描述
从后往前找


凸多边形最优三角形剖分问题

在这里插入图片描述在这里插入图片描述
这里题目要给出各边的权值后,便可找出权值之和的各个三角形
这个问题不常见


0-1背包问题

重点问题!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
考点,给物品, 怎么装
有个相似问题,背包问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tancy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值