首页 > 其他分享 >期望动态规划

期望动态规划

时间:2024-11-02 17:00:54浏览次数:3  
标签:概率 期望 小鸟 frac 动态 规划 displaystyle DP

概率与期望

定义

期望:对于一个离散随机变量\(X\),自变量的取值范围为\(\{x_1,x_2,x_3,... \,,x_n\}\),\(P(x_i)\)为\(X=x_i\)的概率。其期望被定义为:

\[E(X)=\sum^n_{i=1}x_iP(x_i) \]

简单理解就是加权平均。

公式

贝叶斯公式:

全概率公式:

应用

1、有 \(k\) 只小鸟,每只都只能活一天,但是每只都可以生出一些新的小鸟,生出 \(i\) 个小鸟的概率是 \(P_i\),最多生出\(n\)只小鸟。问 \(m\) 天所有的小鸟都死亡的概率是多少。

先考虑一只小鸟:设\(f_i\)为第\(i\)天小鸟全部死亡的概率。

对于一只小鸟:\(f_i=\sum^n_{i=0}P_i*f^i_{i-1}\)

解释:一只小鸟,可能第一天就嗝屁了,概率为\(P_0\),也有\(P_k\)的概率生了\(k\)只鸟,这\(k\)只鸟会经历和它们父亲相同的命运,但是它们只需要挺过\(i-1\)天就不会被计进\(f_i\)中,故为\(f_{i-1}\),又因为\(k\)只鸟相互独立,故全部死亡概率为\(f^k_{i-1}\)

则答案为\(f_m^k\)

2、假设一台抽奖机中有红、蓝两色的球,任意时刻按下抽奖按钮,都会等概率获得红球或蓝球之一。有足够多的人每人都用这台抽奖机抽奖,假如他们的策略均为:抽中蓝球则继续抽球,抽中红球则停止。最后每个人都把自己获得的所有球放到一个大箱子里,最终大箱子里的红球与蓝球的比例接近于多少?

考虑用期望计算

对于红球,\(E(X)=1\),因为所有抽完的人都有且仅有1个红球

对于蓝球,有\(E(X)=\frac{1}{2}*0+\frac{1}{2}(1+E(X))\),解得\(E(X)=1\)

解释:一次抽奖,抽到了红球结束,抽到蓝球继续抽,此时,注意到“继续抽”这个行动和原行动等价,则期望相同,带入求即可

总结

观察可得,两道题通过分类讨论找到全部情况,从而求出答案,这是概率与期望的常见做法

上面两题给我们启发:对于有限数量状况的事件(\(X\)取值有限),列举全部情况,找出等价的子问题,进行递推;对于无限的情况,找出的等价子问题相当于原问题(类比生成函数的推导),通过解方程得到答案

期望DP

期望DP中,常用逆推的方法求解,具体理解见例题

模型

基于DP的转移,可以发现几种模型

首先我们知道,DP的转移构成DAG,而在期望DP设计状态方程时,常有环出现,这是根据DP状态定义而出现的

最大环为自环

移项,做DAG DP即可

最大环不为自环

一般换定义、解方程(高斯消元)

P4316 绿豆蛙的归宿

正推

按顺势思路,设\(f[i]\)为从1到\(i\)的期望路径长

递推方程:

\[f[x]=\sum^V_{i \to x}\frac{1}{d_i}(f[i]+p[i]*dis_{i \to x}) \]

其中\(p[i]\)为从1到\(i\)的概率

于是引出一个问题:为什么\(dis_{i \to x}\)要乘\(p[i]\)呢?

我们回归定义:\(E(X)=\sum^n_{i=1}x_iP(x_i)\)

根据定义,我们要求的是每条路径的加权平均值,即该路径出现的概率乘路径长

由于路径不好做,我们拆开成若干条边,对边进行统计

当我们将边\(i \to x\)的贡献加入时,必须想到,边是路径的子集,因此概率也要按占有该边的路径计算

逆推

逆推思路没有正推直观

设\(f[i]\)为从\(i\)到\(n\)的期望路径长

递推方程:

\[f[x]=\sum^V_{x \to i}\frac{1}{d_x}(f[i]+dis_{x \to i}) \]

于是又引出一个问题:为什么这时候又不用乘了呢?

因为概率是正确的

仔细想想逆推回去,\(dis_{x \to i}\)会发生什么

会乘上各种\(\frac{1}{d_i}\),然后各种累加

然后就会发现,它乘上的概率刚好就是路径的概率,即前面的\(p[i]\)

感觉不出来可以手画一下

p.s.概率DP常用正推,期望DP常用逆推

P4562 [JXOI2018] 游戏

这是一道可以用期望做的统计题

用埃筛求出所有不为别的数的倍数的数——该数集取完才能结束(注意这里时间复杂度是\(O(n\log\log n)\))

统计法枚举长度+排列组合即可

期望法:(待办)

P3750 [六省联考 2017] 分手是祝愿

先考虑\(k=n\)部分,即求一个贪心策略,容易发现最大的数只能被自己更新,从大到小贪心做即可,时间复杂度\(O(n\sqrt n)\)或\(O(n\log n)\)

再考虑满分做法,由于上面贪心策略中,每个数都不可替代,所以必须取到上面的全部数才可结束,而取不到该数集又会使必须数增加\(1\)(因为要按回来),考虑枚举取数个数进行DP

设\(f[i]\)为必须数还有\(i\)个数没取,想要达到结束态的期望操作数

易得方程\(\displaystyle f[i]=\frac i n*f[i-1]+\frac {n-i} n*f[i+1]+1\)

发现该方程出现大于自环的环,而高斯消元又不可承受,考虑如何处理

模拟高斯消元

由于矩阵中每一行非零元只有\(3\)个,考虑直接模拟消元过程

解方程,推式子

考虑一组这样的方程:

\[\begin{cases}\displaystyle f[i]=f[i-1]+1\hspace{3.6cm},i=n\\\displaystyle f[i]=\frac i n*f[i-1]+\frac {n-i} n*f[i+1]+1\ \ ,\text{otherwise} \end{cases} \]

对其尝试回代,得\(\displaystyle f[n-1]=f[n-2]+\frac{n+1}{n-1},...\)

回代几组发现,这几个式子都满足\(f[i]=f[i-1]+C\),且几个式子的\(C\)存在递推关系,为\(\displaystyle g[i]=\frac{n-i} i*g[i+1]+\frac n i\)

最后求\(f[]\)即可,时间复杂度\(O(n\log n)\)(逆元)

换定义

设\(f[i]\)为从\(i\)转移至\(i-1\)的期望操作次数,则

相当于把贡献拆成了\(n\)份,之后再统计起来

\(\displaystyle f[i]=\frac i n+\frac{n-i}n*(f[i+1]+f[i]+1)\)

第二部分是没选到数集,必须数增加\(1\),需要\(f[i+1]\)步转回来,再\(f[i]\)走到下一步

最终贡献为\(\displaystyle \sum_{i=k+1}^{n}+k\)

总结

理解之后一身轻,关键在于找到状态,列方程就简单了

标签:概率,期望,小鸟,frac,动态,规划,displaystyle,DP
From: https://www.cnblogs.com/zhone-lb/p/18522185

相关文章

  • 状态压缩动态规划
    \(3^n\)枚举子集状压DP中相当重要的技巧(虽然后位有FWT,FMT替代,但不是都能代)for(inti=x;i;i=(i-1)&x){//i就是x的子集}题目P6622[省选联考2020A/B卷]信号传递看数据范围,\(m\le23\),且不同分数段增长很慢,表明会有\(O(2^m)\)的做法,考虑状压或搜索剪枝......
  • 共享IPAM地址池实现多账号下地址统一规划管理
    多账号体系架构中,企业网络管理员使用IPAM功能规划和管理工作中的IP地址;规划完成后,可通过资源共享功能,将创建的IPAM地址池共享给业务账号,实现企业内部网络地址的统一分配与管理,简化网络管理流程,助力企业专注于核心业务创新。功能简介资源共享多账号架构体系中,如果存在某一特......
  • 动态规划-回文串系列——1312.让字符串变成回文串的最小插入次数
    1.题目解析题目来源:1312.让字符串变成回文串的最小插入次数——力扣测试用例2.算法原理1.状态表示一维dp表无法存储任意区间内将字符串变为回文子串的最小插入次数,所以使用二维dp表存储将[i,j]区间的字符串变为回文子串的最小插入次数dp[i][j]:将[i,j]区间的字......
  • 动态规划题解报告
    [APIO2016]划艇注意到\(n\le500\)考虑\(O(n^3)\)的做法。值域小的做法比较显然,值域比较大,考虑离散化(将\(b_i+1\)然后限制变为\([a_i,b_i+1)\))。设\(f_{i,j}\)表示考虑前\(i\)个,\(i\)选择\(j\)的方案数。发现由于离散化了很难转移\(f_{k,j}\(k<i)\)的情况......
  • 编辑距离 | 动态规划
    设A和B是两个字符串,求将字符串A转换为字符串B的最少操作次数。字符操作共有如下三种:     (1)删除一个字符。     (2)插入一个字符。     (3)将一个字符改为另一个字符。 如A=“kitten”、B=“sitting“,求编辑距离。#include<iostream>#include<cstdio......
  • 动态规划 —— 路径问题-地下城游戏
    1. 地下城游戏题目链接:174.地下城游戏-力扣(LeetCode)https://leetcode.cn/problems/dungeon-game/description/ 2. 算法原理 状态表示:以莫一个位置位置为结尾或者以莫一个位置为起点  dp[i,j]表示:到达[i,j]位置的时候,骑士所需要的最低初始健康点数(X),这个状......
  • 【WCH蓝牙系列芯片】-基于CH582开发板—动态更新蓝牙广播间隔
    ------------------------------------------------------------------------------------------------------------------------------------在使用蓝牙从机的时候,从机与主机设备在建立之前一直是出于广播数据状态,在从机中广播包含有广播数据和扫描回复数据,这两个内容的总长......
  • 动态动态规划 & 全局平衡二叉树 小记
    估计这几天是正式学习ddp,所以特写笔记。DDP简介是这样一类技巧,利用广义的矩阵乘法实现单点修改权值,动态查询某个点的DP值关于矩阵乘法,广义矩阵乘法其核心思想是利用矩阵乘法具有结合律(可以使用数据结构维护)的优势序列上的Ddp先看一个例子:最大子段和,显然我们有\(f_......
  • 动态规划-回文串问题——132.分割回文串II
    1.题目解析题目来源:132.分割回文串II——力扣测试用例2.算法原理首先回文串问题一定首先需要保存每个回文子串出现的位置,即二维dp表来存储所有子字符串中符合回文子串的位置,如图1.状态表示创建一个一维dp表来存储第i个位置之前的字符串数组全部划分为回文子......