参考资料
看到期望经过次数的说法:https://blog.csdn.net/bzjr_Log_x/article/details/100007360
你谷题解:https://www.luogu.com.cn/blog/Kelin/solution-p3706
期望经过次数和概率在无向图之间的联系
是不是看到这个头都要爆炸了。
前言
也许许多时候你总是会看到一些题目,问你最终概率,但是其转移过程是无向图的,这个时候,高斯消元大爷肯定是不二之选。(至少我现在还没有看到哪个无向图概率题是不用高斯消元的)
正片
现在给你一个这样的无向图:
我们从 0 0 0号点出发,走到 1 1 1的概率是多少(走到 1 1 1就停), 50 % 50\% 50%停留在原地,也许你会直接说,这不就是 1 1 1吗。
但是如果要你列出概率方程,额。。。。
设 f [ i ] f[i] f[i]为到达这个点的概率,然后 f [ 1 ] = 1 2 f [ 0 ] f[1]=\frac{1}{2}f[0] f[1]=21f[0]?
但是 f [ 0 ] f[0] f[0]的概率为 0 0 0,总么可能转移的了啊。
这个时候,我们终于发现了一个事情,因为概率这个东西更加反映的是结果,即各个随机事件之间所发生样本个数和总样本个数间的比例,其对于中间过程十分不友好,因为中间过程也许根本连样本个数都没有。
于是统计其概率就成了一个十分玄乎的事情。不就是1吗
事实上,当然对于这个图也存在微积分的方法,但是当点数很多,终点很多,微积分也许就不是一个好主意了。
但是,这个时候,我们引入一个新的东西,点的期望经过次数,这个就对于中间点十分的友好,因为其中间点也可以有确定的数值,那么如何统计呢?对于一个点 x x x,如果存在一条路径可以到 x x x(假设这个时候突然停下来等一等,毕竟 x x x不是终点,后面还会继续跑),那么就把这条路径现在的概率乘 1 1 1加到 e [ x ] e[x] e[x]中( e [ x ] e[x] e[x]表示期望经过次数),当然,一条路径可能经过 x x x多次,因此当一条路径经过 x x x时,其可能已经经过 x x x好几次了。
当然,这也是个无限的东西,他是否是收敛的,我并不会证,但是用高斯消元一样可以求得,后面会讲。
最神奇的一件事情是, e [ e d ] e[ed] e[ed]就等于 e d ed ed的概率。( e d ed ed可能有多个)
仔细观察就会发现, e [ e d ] e[ed] e[ed]的定义刚好就是 e d ed ed的概率的定义(或者说是经典求法),此时我们前文括号里说停下来等一等就是永远停下来了,因为到了 e d ed ed就停下来。
发现了这个美妙的性质,无向图的概率题基本上都可以用期望经过次数来搞了。
无向图的期望问题
本文无法保证正确性
事实上,期望无非是列个式子,高斯消元。
期望经过次数
本文先讲如何求期望经过次数。
需要严重注意的事情是:实际上,期望的转移过程不能但看几个变量间存在概率关系就直接乘上概率转移,因为期望在无向图上之所以有最终答案是因为无限是可以通过求极限得到确值的,比如:期望次数,其只是一坨式子的结果,你不能单单把这个当成次数来耍除非你是老手。在后文,就会举一个错误示范。当然,许多用法都是可以证明是对的,比如下文提到的把边的期望经过次数转换为两端点的期望经过次数。
好,扯了这么多,关键是次数怎么求你是一句话也没讲啊。这不就来讲了吗。
首先,设 E ( x ) E(x) E(x)为到 x x x的期望经过次数, E d g e Edge Edge为边集, p ( x , y ) p(x,y) p(x,y)为经过这条边的概率(当然,有时候 x , y x,y x,y走这条边的概率可能不相同,因此 p ( x , y ) ≠ p ( y , x ) p(x,y)≠p(y,x) p(x,y)=p(y,x)),那么 E ( y ) = ∑ ( x , y ) ∈ E d g e , x ≠ e d E ( x ) p ( x , y ) E(y)=\sum\limits_{(x,y)∈Edge,x≠ed}E(x)p(x,y) E(y)=(x,y)∈Edge,x=ed∑E(x)p(x,y)。
现在证明在期望具体式子中也是对的。
设存在一条从起点到 x x x并且停下来一下的路径 T T T,其目前的概率为 S S S,然后其转移到 y y y的概率为 p ( x , y ) p(x,y) p(x,y),那么显然 T + y T+y T+y(就是路径又多了个 y y y)的概率就是 S ∗ p ( x , y ) S*p(x,y) S∗p(x,y),因为 T T T不重复,所以 T + y T+y T+y也不重复,概率就是所有加起来,也就是 E ( x ) ∗ p ( x , y ) E(x)*p(x,y) E(x)∗p(x,y)。
但是,比较特殊的, E ( 1 ) + = 1 E(1)+=1 E(1)+=1,因为从起点出发,必须经过。
而这个统计期望经过次数的,在我的另外一篇期望博客有进行实践。应该
期望经过长度
这种题目一般就是边还有长度,求到达终点的期望经过长度。
这个一般就两种求法,一种是边的期望经过次数,可以转换为两端点的期望经过次数,还有一种是直接霸王硬上弓。
第一种不讲了。
第二种我们考虑像期望经过次数一样,设 f ( x ) f(x) f(x)表示从起点到达 f ( x ) f(x) f(x)的期望长度。
那么 f ( y ) = ∑ ( x , y ) ∈ E d g e , x ≠ e d ( f ( x ) + w ( x , y ) ) p ( x , y ) = ∑ ( x , y ) ∈ E d g e , x ≠ e d f ( x ) p ( x , y ) + w ( x , y ) p ( x , y ) f(y)=\sum\limits_{(x,y)∈Edge,x≠ed}(f(x)+w(x,y))p(x,y)=\sum\limits_{(x,y)∈Edge,x≠ed}f(x)p(x,y)+w(x,y)p(x,y) f(y)=(x,y)∈Edge,x=ed∑(f(x)+w(x,y))p(x,y)=(x,y)∈Edge,x=ed∑f(x)p(x,y)+w(x,y)p(x,y)( w w w为边权)。
但是从期望的角度来看,这是错的。
这里假设边权都是 1 1 1,也就是 f ( y ) = ∑ ( x , y ) ∈ E d g e , x ≠ e d f ( x ) p ( x , y ) + p ( x , y ) f(y)=\sum\limits_{(x,y)∈Edge,x≠ed}f(x)p(x,y)+p(x,y) f(y)=(x,y)∈Edge,x=ed∑f(x)p(x