浅谈期望DP
浅谈期望DP
本篇随笔简单说一下算法竞赛中期望DP的相关内容。
一、数学期望的概念和性质
对于一组离散型随机变量,出现其中某一变量的概率乘以这一变量值,再求和,就是数学期望。
也就是:
通过这个定义,我们可以感知到,所谓期望,其实表示的是一组离散型随机变量的平均水平。 也可认为是进行某件事能得到的平均结果,或者理想代价。所以它也可以叫做一组离散型随机变量的均值。这也是期望这个概念的实际意义。
关于期望的一些性质:
其中,当\(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面的骰子,要算掷多少次才能都掷完各面的期望,那么就把这个掷骰子的过程拆成:掷到已经处理的面和掷到未处理的面。
这样的话,就可以通过两种过程的概率以及上面所讲述的期望的性质进行转移。
对于填表、刷表法的选择
一般来讲,初始状态确定时用顺推填表,终止状态确定时可用逆推刷表。