• [笔记]《算法图解》第九章 动态规划


    动态规划

    动态规划先解决子问题,再逐步解决大问题。

    启示

    1. 动态规划可帮助你在给定约束条件下找到最优解。
    2. 在问题可分解为彼此独立且离散的子问题时,就可使用动态规划来解决。
    3. 每种动态规划解决方案都涉及网格。
    4. 单元格中的值通常就是你要优化的值。
    5. 每个单元格都是一个子问题,因此你应考虑如何将问题分成子问题,这有助于你找出网格的坐标轴。

    动态规划实际应用

    1. 生物学家根据最长公共序列来确定DNA链的相似性,进而判断度两种动物或疾病有多相似。最长公共序列还被用来寻找多发性硬化症治疗方案。
    2. 你使用过诸如git diff等命令吗?它们指出两个文件的差异,也是使用动态规划实现的。
    3. 前面讨论了字符串的相似程度。编辑距离(levenshtein distance)指出了两个字符串的相似程度,也是使用动态规划计算得到的。编辑距离算法的用途很多,从拼写检查到判断用户上传的资料是否是盗版,都在其中。
    4. 你使用过诸如Microsoft Word等具有断字功能的应用程序吗?它们如何确定在什么地方断字以确保行长一致呢?使用动态规划!

    小结

    • 需要在给定约束条件下优化某种指标时,动态规划很有用。
    • 问题可分解为离散子问题时,可使用动态规划来解决。
    • 每种动态规划解决方案都涉及网格。
    • 单元格中的值通常就是你要优化的值。
    • 每个单元格都是一个子问题,因此你需要考虑如何将问题分解为子问题。
    • 没有放之四海皆准的计算动态规划解决方案的公式。
  • 相关阅读:
    [转]微服务架构
    [转]认识JWT
    [转]win10中安装JDK8以及环境配置
    [转]PHP开发者必须了解的工具—Composer
    [转]php,使用Slim和Medoo搭建简单restful服务
    [转]分别使用Node.js Express 和 Koa 做简单的登录页
    [转]Node.js框架对比:Express/Koa/Hapi
    centos rancher 通过本机 docker images 新增container
    [转]Ubuntu18.04下使用Docker Registry快速搭建私有镜像仓库
    [转]rancher 初步
  • 原文地址:https://www.cnblogs.com/everfight/p/grokking_algorithms_note_9.html
Copyright © 2020-2023  润新知