美文网首页
2021-06-26动规相关算法

2021-06-26动规相关算法

作者: 竹blue | 来源:发表于2021-06-28 11:00 被阅读0次

回溯算法

概念

  1. 类似枚举搜索,枚举所有解,找到满足期望的解。
  2. 把问题求解的过程分为多个阶段。每个阶段都会面对一个岔路口,先随机选一条路走。
  3. 当发现此路不通(不符合期望解),就回退到上一个岔路口,另选一条走法继续走。

实现

递归

和深度优先的区别

  1. 深度优先遍历的目的是“遍历”,本质是无序的。
  2. 回溯法的目的是 “求解”,本质是有序的。

应用

  1. 深度优先搜索(DFS)。
  2. 八皇后
  3. 0-1背包问题
  4. 图的着色
  5. 旅行商问题
  6. 数独
  7. 全排列
  8. 正则表达式匹配。

动态规划

概念

一个模型(多阶段决策最优解模型)

  1. 解决问题的过程,需要经历多个决策阶段。
  2. 每个阶段都对应着一组状态。
  3. 寻找一组决策序列,经过这组决策序列,能够产生最终期望求解的最优值

三个特征

  • 最优子结构
    • 通过子问题的最优解,推导出问题的最优解。
  • 无后效性
    1. 再推到后面阶段的状态的时候,只关心前面阶段的状态值,不关心是怎么一步步推导出来的。
    2. 某个阶段一旦确定,就不受之后阶段决策的影响。
  • 重复字问题
    • 不同的决策序列,到达某个相同的阶段时,可能会产生重复的状态。

特点

  1. 从最简单的问题开始,一点点的把问题复杂起来,在这个过程中找寻复杂问题是如何依赖简单问题的。
  2. 需要记忆前面问题的解,然后用简单问题的解来求解复杂问题的解。

和分治的区别

  1. 分治是自上向下解决问题。
  2. 动规是自下向上解决问题。

解题思路

  1. 状态转移表法:
    • 回溯算法实现 --定义状态 -- 画递归树 -- 找重复子问题 -- 画状态转移表 -- 根据对推关系填表 -- 将填表过程翻译成代码
  2. 状态转移方程法
    • 找最优子结构 -- 写状态转移方程 -- 将状态转移方程翻译成代码

贪心算法

概念

每一步选择都采取当前状态下最有利的选择,从而希望结果是最优的。[无后效性]

应用

  1. 适用场景比较有限,更多的是指导设计基础算法。
  2. 经典应用有:
    • 霍夫曼编码、
    • Prim和Kruskal最小生成树算法、
    • Dijkstra单源最短路径算法。

解题步骤

  1. 当遇到问题的时候,首先要联想到贪心算法。
  2. 尝试看看问题是否可以用贪心算法解决。
  3. 举几个例子看看贪心算法产生的结果是否是最优解。

分治算法

概念

  1. 原问题划分成n个规模较小,结构与原问题相似的子问题
  2. 递归的解决这些子问题,然后在合并其结果,就得到原问题的解。

和递归的区别

  1. 分治算法是一种处理问题的思想
  2. 递归是一种编程技巧
  3. 分治算法一般比较适合用递归来实现

实现

  1. 分解
    • 将原问题分解为子问题
  2. 解决
    • 递归的求解各个子问题,若子问题足够小,就直接求解。
  3. 合并
    • 将子问题的结果合并成原问题。

应用条件

  1. 原问题与子问题模式相同。
  2. 原问题分解成的子问题可以独立求解子问题之间没有相关性
  3. 具有分解终止条件
  4. 可以将子问题合并成原问题。

相关文章

  • 2021-06-26动规相关算法

    回溯算法 概念 类似枚举搜索,枚举所有解,找到满足期望的解。把问题求解的过程分为多个阶段。每个阶段都会面对一个岔路...

  • 动态规划

    动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。 举例:线性动规:拦截导弹,合唱队形,挖地雷,建学校...

  • 【dp笔记】动态规划解题一般思路

    课程笔记:程序设计与算法(二)算法基础:dp 递归到动规的一般转化方法 递归函数有n个参数就定义n维的数组 数组的...

  • 算法之动规:将树形结构瓦解

    树形结构解斐波那契: 动规解斐波那契: 动态规划把原本需要递归的大量数据按照顺序记录下来, 需要使用的时候可以直接...

  • 2018校招小米笔试-序列模式匹配

    动规解法:

  • 树形动规

    顾名思义, 树形动态规划就是在“树”的数据结构上的动态规划. 在树上面做动态规划是很常见的, 因为树上的一些问题是...

  • 算法

    十大经典排序算法(动图演示) 【数据结构】链表的原理及与其相关的常见面试题总结 一、排序算法 交换排序冒泡排序快速...

  • 5DP

    刷题: form 《tzcxsjjs》-p64-p66 说明-动规 动规也被称为迭代。听说dp很难理解,又很重要。...

  • 关于以太坊费用(Gas)的介绍

    本周木有算法题,因为小伙伴又去搞之前的动规题目了,我也就跟着休一周。 网上关于区块链及各Token的资料很多,但对...

  • AI相关思维导图

    学习的AI相关算法的分类结构:(因为是支付、电商相关行业,所以推荐相关算法在此图层级较高)

网友评论

      本文标题:2021-06-26动规相关算法

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