美文网首页
动态规划的问题

动态规划的问题

作者: 最困惑的时候就是能成长的时候 | 来源:发表于2019-05-21 13:02 被阅读0次

一.基本的解题思路

首先要求,子问题的性质和原问题相同,不论降低某个维度的条件数量,都属于子问题,且子问题的性质和原问题相同,例如背包问题,无论是降低背包的重量还是降低放入背包的物品种类都属于降低维度,但是其维度降低后的问题性质是没有发生改变的

1.建模

①解:一般是一个一维向量例如背包问题中的每种物品的放入数量<x1,x2....xn>
②目标函数:根据不同的问题规约成不同的目标函数例如背包问题是max \Sigma ^n _{i=1}vixi
③约束条件,就是一个问题的限制条件,例如背包为题就是 \Sigma^n_{i=1}wixi<=b

2.子问题优化

子问题在相同性质的情况下,对子问题进行处理然后得到最终的解
例如背包问题可以简化为 k为物品数,y为总重量.
当k=m,y=b时就是原问题
⑴:如果k>0,y>0,且w_k<y
F_k(y)代表了k中物品放入总重量为y的背包的最大价值
如果放入第k种物品,那么最大价值需要从F_k(y-w_k)+v_k与F_{k-1}(y)中挑选
当k=0或者y=0时F_k(y)=0
w_k>y, F_{k-1}(y)
如果F_1(y)时,w_1>y,那么F_1(y)=-∞

然后规约出算式:
F_k(y) \begin{cases} max\{ F_{k-1}(y),F_k(y-w_k)+v_k \}, &y>vk,k>0,y>0;\\ 0, &k=0或y=0;\\ F_{k-1}(y),&y<w_k;\\ -∞,&k=1,y<w_1 \end{cases}

二.具体题目

1.零钱兑换

相关文章

  • 浅层理解动态规划及利用动态规划解决最长公共子串等问题

    动态规划基本思想 动态规划的工作原理是先解决子问题,再逐步解决大问题。 用动态规划解决旅游规划问题 目前面对的问题...

  • 什么是动态规划

    目录 动态规划解决了什么 什么是动态规划 典型的动态规划 1. 动态规划解决了什么 的思想就是将大问题拆分成小问题...

  • 算法学习收藏

    动态规划问题 动态规划(最优子结构和重叠子问题的比较) 动态规划解决01背包问题 01背包问题 最优二叉查找树 《...

  • 其他来源:数据结构/算法学习笔记

    动态规划问题(Dynamic Programming) 首先,动态规划问题的一般形式就是求最值。动态规划其实是运筹...

  • 2022-02-19 动态规划高频题专题【1】

    动态规划基本类型 dp基础 背包问题 打家劫舍 股票问题 子序列问题 进阶动态规划 深入理解动态规划过程 定义dp...

  • 337. House Robber III

    key tips 动态规划返回两个状态 algorithm 1 尝试动态规划问题存在子问题结构,首先考虑动态规划在...

  • 动态规划(1)

    什么动态规划 动态规划是一种解决棘手问题的方法,它将问题分成小问题,并着手先解决这些小问题 动态规划的使用场景 g...

  • 算法3:动态规划

    5.动态规划5.1 什么是动态规划?5.2 自底向上的动态规划:5.3 自顶向下的动态规划5.4 0-1背包问题:...

  • LeetCode基础算法-动态规划

    LeetCode基础算法-动态规划 LeetCode 动态规划 动态规划的核心步骤: 查看大问题的最优解能否使用小...

  • 算法笔记(二)-动态规划问题

    引言:动态规划介绍 什么时候可以使用动态规划:求最优解问题的时候动态规划的两个主要问题:最优子结构和重叠子问题,一...

网友评论

      本文标题:动态规划的问题

      本文链接:https://www.haomeiwen.com/subject/qngdzqtx.html