浅谈期望DP

浅谈期望DP

本篇随笔简单说一下算法竞赛中期望DP的相关内容。


一、数学期望的概念和性质

对于一组离散型随机变量,出现其中某一变量的概率乘以这一变量值,再求和,就是数学期望。

也就是:

\[E=\sum_{i=1}^n (p_i\times v_i) \]

通过这个定义,我们可以感知到,所谓期望,其实表示的是一组离散型随机变量的平均水平。 也可认为是进行某件事能得到的平均结果,或者理想代价。所以它也可以叫做一组离散型随机变量的均值。这也是期望这个概念的实际意义。

关于期望的一些性质:

\[E(X+Y)=E(X)+E(Y)\\E(XY)=E(X)E(Y)\\E(aX+b)=aE(X)+b \\E(c)=c \]

其中,当\(E(XY)=E(X)E(Y)\)的成立条件是X,Y相互独立。

以上是高中数学内容。在此重新提一下。

进行期望DP的时候,这些性质有时显得至关重要,可以帮助我们理解很多递推的转移。


二、期望DP的概念

所谓期望DP,其实我觉得算是递推。并不符合DP最优化的定义。但是大家既然都这么叫,那我也这么叫吧。

所谓期望DP,就是根据概率分析,递推求出每个状态的期望的算法。


三、期望DP常见的状态设法及其转移

1、设成\(dp[i]\)表示已经完成i个,要达到目标状态的期望。也就是由i状态变成目标状态的期望。

对于这种方法,转移的时候要选择刷表法倒序枚举。(根据这个状态本身就可以理解)

2、设成\(dp[i]\)表示已经完成i个的期望。

对于这种方法,转移的时候要选择填表法正序枚举。

对于以上两种方法,很多时候可以互换。但是有些时候不能互换。需要经过具体情况灵活判断。

3、设成\(dp[i][j]\)表示i种物品选择了j个的期望。

4、设成\(dp[i][j]\)表示有i个第一种物品,j个第二种物品的期望。

对于以上两种方法,就是二维的状态转移。

概率分析

然后就是转移的具体过程。

对于状态转移,一般我们要把整个过程拆解成两种情况:已处理和未处理,也就是符合需要和不符合需要。比如抛硬币,要算正面朝上的期望,那么就把抛硬币的过程拆成:朝上和不朝上。或者掷一个有N面的骰子,要算掷多少次才能都掷完各面的期望,那么就把这个掷骰子的过程拆成:掷到已经处理的面和掷到未处理的面。

这样的话,就可以通过两种过程的概率以及上面所讲述的期望的性质进行转移。

对于填表、刷表法的选择

一般来讲,初始状态确定时用顺推填表,终止状态确定时可用逆推刷表。

posted @ 2019-10-26 14:29  Seaway-Fu  阅读(3173)  评论(3编辑  收藏  举报