首页 > 其他分享 >2023-04-29 动态规划介绍

2023-04-29 动态规划介绍

时间:2023-04-29 19:55:06浏览次数:48  
标签:04 规划 决策 29 阶段 2023 动态 优化 DP

2023-04-29 动态规划介绍

动态规划是运筹学课程的一部分

多阶段决策问题

有一类活动的过程,可以分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果

当然,每个阶段的决策的选取不是任意确定的,它依赖于当前的状态,又会影响以后的发展

如下图,①、②...n这些长条代表整体过程按指定条件划分的阶段,\(s、t、t_1\)代表阶段中对象的状态,\(s--> t\)或\(s-->t_1\)的箭头线代表阶段的转移即决策,可以看出一个阶段到下一个阶段的决策是可能有多种的,所以称为多阶段决策问题
多阶段决策问题图示

当各个阶段决策决定以后,就组成一个决策序列,因而也就确定了整个过程的一个活动路线。
决策序列

这种把一个问题看做事一个前后关联、具有链状结构的多阶段过程就称为多阶段决策过程,这种问题就称为多阶段决策问题

动态规划问题

寻找上述多阶段决策过程中最优策略(即最优链路)的过程就是动态规划

各个阶段采取的决策,一般来说是与阶段有关的。

决策依赖于当前的状态,又随即引起状态的转移。

一个决策序列就是在变化的状态中产生出来的。

称这种解决多阶段决策最优化的过程为动态规划(Dynamic Programming,即DP)

动态规划是对解最优化问题的一种途径、一种方法,而不是一种特殊方法

由于各种问题的性质不同,确定最优解的条件也各不相同,因此不存在一种万能的动态规划算法可以解决各类最优化问题

在学习动态规划问题时,除了要对基本概念和方法正确理解之外,还必须要对具体问题具体分析,以丰富的想象力去建立模型,用创造性的技巧去求解

我们将通过对若干有代表性的问题的动态规划算法进行分析、讨论,逐渐学会并掌握这一设计方法

进一步地,还会介绍一些常见的优化动态规划的时空复杂度的做法,从而冲刺高分,希望他同学们最好能够掌握

常见的DP问题类型

参考博客:基本DP模型总结

  • 线性DP:在一个序列上划分n个阶段求最佳策略
  • 区间DP:以区间为状态,即\(f[l][r]\)表示区间\([l,r]\)的答案.
  • 背包DP:固定体积的背包,如何装不同价值的物品来达到价值最大
  • 数位DP:统计满足一定条件的数的数量

    数位:把一个数字按照个、十、百、千等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 0~9,其他进制可类比十进制。

  • 状态压缩DP:记录DP中简单状态(能用0和1表示),一个最简单的方法是记录n个0/1,但这样子太麻烦了,可以把这n个0/1压成一个数,进而利用计算机中方便的二进制操作进行转移.
  • 树状DP:简单的树形DP通常是设f[i]表示以i为根的子树,然后直接把所有儿子合并到父亲身上.

常见的DP优化方法

  • 节省时间的优化方法
    • 矩阵乘法优化
    • 斜率优化
    • 四边形不等式优化
    • 决策单调性优化
  • 节省空间的优化方法
    • 滚动数组优化

      滚动数组实际就是滑动窗口

  • 同时优化时间和空间的方法
    • 数据结构优化

标签:04,规划,决策,29,阶段,2023,动态,优化,DP
From: https://www.cnblogs.com/lsgwr/p/17364417.html

相关文章

  • 2023.4.29
    1//课本习题8-52#include<iostream>3#include<string>4usingnamespacestd;5classMammal6{7public:8virtualvoidspeak()9{10cout<<"动物正在说话"<<endl;11}12};13classDog:publicMam......
  • (04)FastReport一张纸上标签打印
    先按 (03)FastReport6.8.11在Delphi10.3上的边框问题 设置好数据源 ......
  • cf-typedb2023-C
    题目链接:https://codeforces.com/problemset/problem/1787/C我是sb,这种dp都没想到。。。思路:首先得发现一个性质(贪心),每个数拆成的两个数一定是一个最大的(尽可能),另一个最小(尽可能)。这点不难证明,随便写写式子可得证。由于每个数只会影响相邻的两个数,所以我们可以dp算答案。......
  • HZNUCTF2023
    前言还是要向大师傅们orz,本人太菜了。希望大师傅们可以来指点本菜鸡,让本坤能快点理解wp,QAQ。easy_rw查保护,和禁用系统调用静态分析程序漏洞。程序功能很简单,就是一个栈溢出。但是仅溢出0x28字节,本人思路是先泄露libc,再打一个栈迁移。expfrompwncyimport*context(arch......
  • 04 Real-time Global Illumination(GI)
    1.ReflectiveShadowMap(RSM)在RTR中,全局光照是想要得到比直接光照多一次bounce的间接光照。一切被直接光照照亮的物体都可以作为onebounce间接光照的光源(indirectionlight)。所以,全局光照就是direction+indirection。需要知道次级光源有哪些:shadowmap;需要计算次级光源在sh......
  • 力扣---1004. 最大连续1的个数 III
    给定一个二进制数组 nums 和一个整数k,如果可以翻转最多k个0,则返回数组中连续1的最大个数。 示例1:输入:nums=[1,1,1,0,0,0,1,1,1,1,0],K=2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从0翻转到1,最长的子数组长度为6。示例2:输入:nums=[0,0,1,1,0,0,1,1,1,......
  • 2023.4.29——软件工程日报
    所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,数学建模比赛中。。。我了解到的知识点:数学建模的相关知识 ......
  • SequoiaDB分布式数据库2023.4月刊
    本月看点速览赋能产业升级,荣获新睿之星聚焦金融,进一步探索非结构化数据价值释放再获肯定,入选2023年中国最佳信创厂商入围名单青杉计划2023已开启,一起攀登更高的“杉” 赋能产业升级,荣获新睿之星4月18日,2023年第九届广州国际投资年会在广州白云国际会议中心成功举办。会中......
  • (2023)iOS17开放侧载的网友观点调研
    前言因为欧盟方面的强制措施,不出意外的话,iOS17开始苹果将被迫开放侧载。虽然具体如何开放的细节还不确定,但是这毕竟对苹果,开发者,以及用户都是不小的事情。整理了下网友们(主要是开发者们),对侧载的一系列看法和猜测。因为很多意见是相左的,所以整理成了反面观点和正面观点。反面......
  • DASCTF Apr.2023 X SU战队2023开局之战 pwn
    DASCTFApr.2023XSU战队2023开局之战pwnfour漏洞是2.23的sspleak和未初始化漏洞主要的难点就是分析程序而且题中有一些干扰选项保护程序分析主函数有4个选项1:是干扰的选项(因为会关闭标准错位流,那就没法打sspleak)2:这个函数中有一个未初始化漏洞3:就是在这个函数......