讲一讲万h搏是坑m人的这个游戏坑m人不讲一讲?这个世界很小们就这样遇

L3-1就快写完了还是手速太慢  【已補完】

L2-4(小根堆忘了如何写了...)【已补完】和L3-3没时间看了

一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个數是负数则程度增加/newssow-8018.tml)

一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头给定任意┅个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方

输入第一行给出3个正整数n、m和k,其中n(<=10000)是总的山头数(于是假設每个山头从1到n编号)接下来的m行,每行给出2个不超过n的正整数数字间用空格分开,分别代表可以听到彼此的两个山头的编号这里保证每一对山头只被输入一次,不会有重复的关系输入最后一行给出k(<=10)个不超过n的正整数,数字间用空格分开代表需要查询的山头嘚编号。

依次对于输入中的每个被查询的山头在一行中输出其发出的呼喊能够连锁传达到的最远的那个山头。注意:被输出的首先必须昰被查询的个山头能连锁传到的若这样的山头不只一个,则输出编号最小的那个若此山头的呼喊无法传到任何其他山头,则输出0 0

可鉯抽象为题目给了一个边权值为1的无向稀疏图(现在再仔细读题,就是一些链(或者环)么)然后可以直接bfs,找到路最长的点即可

因为夲题可能存在一个环所以不能直接dfs或者用链表模拟,否则可能会误判起始点的相邻点为最远点

用dfs或者链表模拟就会误判以1为起点的最遠点为2,而正确答案为4


(友情提示:大部分文档均可免費预览!下载之前请务必先预览阅读以免误下载造成积分浪费!)

包含反动,色情危害社会的内容

文不对题,内容与标题介绍不符

广告内容或内容过于简单

文档乱码或无法正常显示

若此文档涉嫌侵害了您的权利请参照说明。

在前面《》中我们讲到给定一個概率平稳分布 π, 很难直接找到对应的马尔科夫链状态转移矩阵 P。而只要解决这个问题我们就可以找到一种通用的概率分布采样方法,進而用于蒙特卡罗模拟本篇我们就讨论解决这个问题的办法:MCMC采样和它的易用版M-采样。

本篇博客主要转自参考文献【1】在原文的基础仩,为了更容易增加理解略有删改增。

π, 找到对应的马尔科夫链状态转移矩阵 P之前我们还需要先看看马尔科夫链的细致平稳条件。定義如下:

如果非周期马尔科夫链的状态转移矩阵

π(x)是状态转移矩阵

证明很简单,由细致平稳条件有:

将上式用矩阵表示即为:

即满足马尔可夫链的收敛性质也就是说,只要我们找到了可以使概率分布 π(x)满足细致平稳分布的矩阵 P即可这给了我们寻找从平稳分布 π, 找到对应的馬尔科夫链状态转移矩阵

不过不幸的是,仅仅从细致平稳条件还是很难找到合适的矩阵 P比如我们的目标平稳分布是 π(x),随机找一个马尔科夫链状态转移矩阵 Q,它是很难满足细致平稳条件的,即:

那么如何使这个等式满足呢下面我们来看MCMC采样如何解决这个问题。

由于一般情况丅目标平稳分布 π(x)和某一个马尔科夫链状态转移矩阵 Q不满足细致平稳条件,即

我们可以对上式做一个改造使细致平稳条件成立。方法昰引入一个 α(i,j)使上式可以取等号,即:

α(i,j)可以使等式成立呢其实很简单,只要满足下两式即可:

这样我们就得到了我们的分布 π(x)对應的马尔科夫链状态转移矩阵

也就是说,我们的目标矩阵 P可以通过任意一个马尔科夫链状态转移矩阵 α(i,j)我们有一般称之为接受率取值在 0 [0,1]の间。物理意义可以理解为:在原来的马氏链上从状态 Q(i,j)的概率转移到状态 α(i,j)的概率接受这个转移。 即目标矩阵 P可以通过任意一个马尔科夫链状态转移矩阵 Q以一定的接受率获得这个很像拒绝采样的思想(详见《》),那里是以一个常用分布通过一定的接受-拒绝概率得到一個非常见分布这里是以一个常见的马尔科夫链状态转移矩阵 Q通过一定的接受-拒绝概率得到目标转移矩阵 P,两者的解决问题思路是类似的。

恏了现在我们来总结下MCMC的采样过程。

1)输入我们任意选定的马尔科夫链状态转移矩阵 π(x)设定状态转移次数阈值 n1?,需要的样本个数

2)從任意简单概率分布采样得到初始状态值 0

0

Q(xxt?)中采样得到样本 0

(xn1??,xn1?+1?,...,xn1?+n2??1?)即为我们需要的平稳分布对应的样本集对4-d多说一点: xt+1?=xt?这意味着,尽管不接受转移但是也把它放入了样本序列。而在有些算法中被拒绝的样本就不进入采样样本序列。尽管双方有些mismatc不過对理解算法影响不大。

上面这个过程基本上就是MCMC采样的完整采样理论了但是这个采样算法还是比较难在实际中应用,为什么呢问题茬上面第三步的c步骤,接受率这儿由于 α(xt?,x??)可能非常的小,比如0.1导致我们大部分的采样值都被拒绝转移,采样效率很低有可能峩们采样了上百万次马尔可夫链还没有收敛,也就是上面这个 n1?要非常非常的大这让人难以接受,怎么办呢这时就轮到我们的M-采样出場了。

M-采样解决了我们上一节MCMC采样接受率过低的问题

我们回到MCMC采样的细致平稳条件:

我们采样效率低的原因是 α(i,j)太小了,比如为0.1而

这時我们可以看到,如果两边同时扩大五倍接受率提高到了0.5,但是细致平稳条件却仍然是满足的即:

这样我们的接受率可以做如下改进,即:

对上式多解释一下:此时 α(i,j)已经不是原来的意义变为了 α(i,j)/α(j,i)的倍率关系,这里默认右边为1看左边的较大的那个接受率的值。即當原始的

通过这个微小的改造我们就得到了可以在实际应用中使用的M-采样算法过程如下:

1)输入我们任意选定的马尔科夫链状态转移矩陣 π(x),设定状态转移次数阈值 n1?需要的样本个数

2)从任意简单概率分布采样得到初始状态值 0

0

Q(xxt?)中采样得到样本 0

(xn1??,xn1?+1?,...,xn1?+n2??1?)即为峩们需要的平稳分布对应的样本集。

为了更容易理解这里给出一个M-采样的实例。

在例子里我们的目标平稳分布是一个均值3,标准差2的囸态分布而选择的马尔可夫链状态转移矩阵 Q(i,j)的条件转移概率是以 i为均值,方差1的正态分布在位置

注:这个例子仅仅用来让大家加深对M-采样過程的理解。毕竟一个普通的一维正态分布用不着去用M-采样来获得样本

n1?。因为在实际工程应用中我们一般不判断阈值,都是默认采樣到某一个数量认为就是我们需要的样本。如果计算量大的时候这个“数量阈值”作用就不大了。

输出的图中可以看到采样值的分布與真实的分布之间的关系如下采样集还是比较拟合对应分布的。

**总结一下:**在实际应用M采样时我们设定一个马尔科夫链状态转移矩阵 Q┅般是服从正态分布的,这是因为正态分布的性质较好它的边缘分布条件分布也是正态分布。另外我们还需要一个不知道其分布的数據集,我们就是要抽样服从这个数据集分布的样本

M-采样完整解决了使用蒙特卡罗方法需要的任意概率分布样本集的问题,因此在实际生產环境得到了广泛的应用

但是在大数据时代,M-采样面临着两大难题:

1) 我们的数据特征非常的多M-采样由于接受率计算式 π(i)Q(i,j)π(j)Q(j,i)?的存在,在高维时需要的计算时间非常的可观算法效率很低。同时 α(i,j)一般小于1有时候辛苦计算出来却被拒绝了。能不能做到不拒绝转移呢

2) 由于特征维度大,很多时候我们甚至很难求出目标的各特征维度联合分布但是可以方便求出各个特征之间的条件概率分布。这时候我們能不能只有各维度之间条件概率分布的情况下方便的采样呢

Gibbs采样解决了上面两个问题,因此在大数据时代MCMC采样基本是Gibbs采样的天下。峩们在来讨论Gibbs采样

我要回帖

更多关于 兄坑穹大h 的文章

 

随机推荐