罗兰在MATLAB的艺术

把想法变成MATLAB

请注意

罗兰在MATLAB的艺术已经存档,不会被更新。

象征性的端口传递问题的分析

内容

介绍

希望你记得最近的帖子我们使用一个蒙特卡罗方法模拟一个infinitely-stocked端口滗析器传递一个表N人总是在位置0开始),移动的概率p左边和向右,只有停止当表的每个人都收到了一些港口。这些模拟似乎表明,简单的分析解决方案预期路径长度可能和今天,我将向您展示我设法证明什么。金宝搏官方网站

在上一期,我们决定,我们想找到的函数

  1. 美元p_k k (N)美元地位的概率是最后接收端口
  2. 美元E_k (N)预期数量的美元通过时需要k是最后一个
  3. E_N预期数量的美元通过所需大小为N的表

赌徒的毁灭

感谢我的同事瑞克阿摩司,我们有一个起点思考分析解决方案。他指出,我们的端口传递问题非常类似于随机游走过程赌徒的毁灭与一些股份,赌徒开始(k)和赢得另一个单位,股份的概率p(或损失的概率1 - p)。游戏还在继续,直到赌徒失去了所有的钱,或者共有N。的主要区别在于,赌徒的破坏有两种不同的条件(胜利结束N或失去0)。

为了使我们能够攻击端口传递问题,我需要引用两个结果从赌徒的毁灭。你可以找到这些结果的推导相关文件在文件交换(见文件BiasedGamblersRuinUnbiasedGamblersRuin)。第一个结果让我们回答这个问题:”的概率是多少,因为我们目前在位置,到达的位置到达前一个位置B ?”。赌徒的毁灭这是一样从k = sb美元股份,与N = a - b美元完成。做一些方程的简单我将使用q = 1 - p,美元和注意我们假设$ < S < B \ mbox{或}B < S <美元。

$ $ pSAB左= \ \ lbrace \开始{数组}{cc} \压裂{k} {N} & p = = \压裂{1}{2}\ \ \压裂{第一轮^ k}{第一轮^ N} & p \ ne \ mbox{和}r = \压裂{q} {p} \结束数组{}\ $ $

同样,我们也需要回答:“什么是预期的程数(从S)到达位置到达前一个位置B ?”。

$ $左伊萨= \ \ lbrace \开始{数组}{cc} \压裂{N ^ 2 k ^ 2} {3} & p = = \压裂{1}{2}\ \ \压裂{1 + r}{第一轮}(N(\压裂{2}{第一轮^ N} 1) - k(\压裂{2}{{第一轮}^ k} 1)) & p \ ne \结束数组{}\ $ $

注意每个结果都有不同的表达式的偏见和公正的情况?下面我们将通过偏见的情况下运行(更复杂)。完全相同的代码可以运行和公正的情况下正确的结果——如果你简单地改变感兴趣pToUse下面的回0.5和执行。

信谊pSAB (S, A, B)伊萨(S, A, B)pkNpToUse = 0.55;假设(p = = pToUse);%定义函数k和N的年代,A和B。k (S, A, B) = sb;N (S, A, B) = A - B;如果pToUse = = 0.5 pSAB (S, A, B) = k / N;伊萨(S, A, B) = (N ^ 2) ^ 2 - k / 3;其他的%有偏见的情况下,我们将使用r而不是p方程信谊r假设(r ~ = 1);pSAB (S, A, B) =(第一轮^ k) /(第一轮^ N);伊萨(S, A, B) = (1 + r) /(第一轮)* (N *(2 /(第一轮^ N) 1) - k *(2 /(第一轮^ k) 1));结束

让我们谈论一般情况下的位置k是最后一个接受港口大约一个表的尺寸吗N我们将使用位置l指一个右边的位置kR左边的k(注模运算,以确保美元的使用k - n < le L R \ le 0 \ < k美元,左方向被定义为位置数量的增加,和正确的位置数量)下降。

信谊lRNkL = k - 1;R = k +其它;

计算位置的概率k是最后一次

对的位置k去年我们要么需要港口从起始位置0 L和R,或移动从0到R L .这个概率是由

$ $ p_k = pSAB (0 L R) * pSAB (L R k) + pSAB (0, R, L) * pSAB (R, L, k) $ $

p0L = pSAB (0 L R);p0R = pSAB (0, R, L);pLR = pSAB (L R k);pRL = pSAB (R, L, k - n);p0LR = p0L * pLR;p0RL = p0R *光杆载荷;pk =简化(p0LR + p0RL)
pk = - (r ^ N * (r - 1)) / (r ^ k * (r - r ^ N))

在前面的博文,我们表明,公正的情况下,这个结果是独立的位置k,但有偏见的情况下,围着桌子的位置会影响最后的概率。让我们来看看一些模拟的残差检查。如果这是正确的portPassingSimulation代码是可用的在这里)。

p = pToUse;N = 17;k = 1: n - 1;nSims = 1 e5;残差=南(10、n - 1);预期=双(潜艇(pk, {“r”“N”“k”},{(1 - p) / p, N, k}));%模拟传递一个表17的10倍parfor2 = 1:10去年= portPassingSimulation (nSims, N, p);%组织模拟成k (1: n - 1)垃圾箱和规范化的数量模拟lastProb =嘘(最后,k) / nSims;残差(ii):) = lastProb——预期;结束%是残差正态分布?probplot (“正常”残差(:))网格

我们可以看到仿真大致的残差正态分布(有些尾点不是很正常),但没有任何偏见的预期结果(因为残差的均值接近零)。

meanR =意味着(残差(:))
meanR = 7.5894 e-20

我们需要考虑什么路线计算期望的路径长度?

计算预期的路径长度,我们将不得不考虑所有可能的路径,最后位置k,计算出每条路径的概率发生的预期长度乘以这条道路。幸运的是,虽然有无限多的可能的路径,我们可以把问题分解成2直接相关的赌徒的毁灭。这些是我指定的路线和R路线

  1. 从0开始,搬到L(但不是R)E0L
  2. 从L R(但不是k)ELR
  3. 然后要么(一)从R k - n(但不是k)的兵
  4. (b)从R k(但L不是k - n)ERLk

替代路线R(这是基本路线L)的倒数

  1. 从0开始,搬到R(但不是我)E0R
  2. 从R L(但不是k - n)话务量
  3. 然后要么(一)从L k(但不是k - n)麋鹿
  4. (b)从L R k - n(但不是k)ELRk

预期的长度的路径的每一个部分

信谊kNE0L =伊萨(0 L R);E0R =伊萨(0,R, L);ELR =伊萨(L R k);ERL =伊萨(R, L, k - n);ERk =伊萨(R、k - n、k);麋鹿=伊萨的(L, k, k - n);ERLk =伊萨(R, k, k - n);ELRk =伊萨的(L, k - n, k);

有趣的是,预期的路径长度伊萨对交换变量是对称的吗p。我们可以看到这个在上面的方程ELR = =话务量,ERk = =麋鹿ERLk = = ELRk

简化(ELR = =话务量)简化(ERk = =麋鹿)简化(ELRk = = ERLk)
ans = TRUE ans = TRUE ans = TRUE

结合的部分路线L和R路由选择我们需要包括概率3和4部分进行L和R的3和4部分这些只是这些路径的概率在赌徒的毁灭。

pRk = pSAB (R、k - n、k);pLk = pSAB (L, k, k - n);pRLk = pSAB (R, k, k - n);pLRk = pSAB的(L, k - n, k);

最后我们可以把这部分两个路线。埃尔路线L和预期的路径吗期望路径长度为R。

EL = E0L + ELR + pRk。* ERk + pRLk。* ERLk;呃= E0R +话务量+ pLk。*麋鹿+ pLRk。* ELRk
呃= ((1 / r - 1) * (r + 1) * (2 / (1 / r - 1) - N * (2 / (1 / r ^ N - 1) + 1) + 1) / ((r - 1) * (1 / r ^ N - 1)) ((((2 / (r ^ 2 - N) (- 1) + 1) * (N - 2) (2 / (r ^ (1 - k) - 1) + 1) * (k - 1)) * (r + 1)) / (r - 1) - ((r + 1) * (2 / (r - 1) - (N - 1) * (2 / (r ^ (N - 1) - 1) + 1) + 1) / (r - 1) - (((N - 1) * (2 / (r ^ (N - 1) - 1) + 1) - N * (2 / (r ^ N - 1) + 1) * (r + 1) * (r ^ (N - 1) - 1)) / ((r ^ N - 1) * (r - 1))

我只简单地打印一个结果显示,目前这个看起来很复杂!希望这将会变得简单一些的!

概率港口需要左或右

能够计算出总体预期路径的概率我们也需要知道港口需要路线左或右,

$ $ E_k = p_L E_L + p_R E_R $ $

幸运的是,我们已经拥有的组件来计算概率的分析完成位置概率。我们采取的路线L只是概率的概率从0到L R除以k是最后的概率。同样,对R的路线。

pL =简化(p0L * pLR / pk)公关=简化(p0R * pRL / pk)
pL = (^ N - r ^ (k + 1) / (r ^ N - r ^ 2)公关= - (r * (r - r ^ k)) / (r ^ N - r ^ 2)

计算预期的路径长度时k是最后一次

与所有这些结果我们可以计算出预期长度增加的两种可能的路径长度乘以他们的概率。

埃克=简化(pL。* EL +公关。*呃,400)
Ek = (2 * (2 * N - k - 3 * r ^ N + N * r ^ N - N * ^ k + k * r ^ N + 1)) / ((r ^ N - 1) * (r - 1))——(k - 2 * N + N * r ^ N + N * r ^ k - k * r ^ N) / (r ^ N - 1) - 4 / (r - 1) ^ 2 - (2 * r ^ N * (r ^ N + 1) * (N - 1) / ((r - r ^ N) * (r ^ N - 1))

这是否同意模拟吗?

我们可以看看埃克同意通过运行仿真和模拟数据计算的平均数量通过为每一个完成的位置。正如我们在前面的博客,看到一个简单的方式来看待的平均数量为每个最后的位置是通过传递varfun一个表,一个分组变量。

p = pToUse;N = 17;k = 1: n - 1;[最后,nPass] = portPassingSimulation (1 e6, N, p);t = varfun (@mean表(最后,nPass),“GroupingVariable”,“最后一次”)
t =最后GroupCount mean_nPass ____ __________ __________ 9291 95.262 11379 111.75 13888 123.74 17016 130.06 20845 135.69 25541 136.47 31030 136.05 46659 130.33 56701 125.85 38271 133.8 84602 112.84 69383 119.94 12 13 1.04 e + 05年106.39 14 1.2629 e + 05年98.765 15 1.5536 e + 05年82.086 90.384 16 1.8975 e + 05

策划对分析结果给出了这些

cMean =双(潜艇(Ek, {“r”“N”“k”},{(1 - p) / p N k}));情节(t。最后,t.mean_nPass,“罗”);持有情节(k, cMean,“。”网格)持有标题“模拟与预期意味着程数”包含的立场端口收到去年的表ylabel平均数的传递到最后一个位置在表传奇(的仿真结果,“预期结果”)

最后均值的差异和预期意味着几乎为零

意思是(cMean (:)——t.mean_nPass (:))
ans = -0.041108

残差的平均值接近于零显示模拟数据在赞同的表情。

是什么意思的传递所需大小为N的表吗?

在推导出预期的时程数需要最后的位置k最后,,我们现在可以计算的预期路径长度为表的大小N因为我们可以简单的和预期的路径为每个可能的k位置乘以k位置是最后的概率。

$ $ E_N = \ sum_ {k = 1} ^ {n} p_k E_k $ $

信谊kNrEN =简化(symsum (pk * Ek, k, 1, n - 1), 1000)
EN = (N ^ 2 * (r + 1) / ((r ^ N - 1) * (r - 1)) (((r + 1) * (N + r - N * r)) / (r - 1) ^ 2 + (r * (N - 1) ^ 2 * (r + 1) / ((r - r ^ N) * (r - 1))

值得庆幸的是这个看起来很简单比其他的一些结果。

检查一个已知的解析解

在继续之前,我们可以检查这个结果在几个方面。首先,让我们检查针对N = = 3情况我们已经知道解析解(见SymbolicAnalysisFor3People.mlx)

$ $ E_3 = \压裂{3}{问^ 2 - q + 1} 1 $ $

用r值N和方程

E3 =简化(潜艇(EN, {N, r}, {3 q / (1 q)}), 400)
E3 = 3 / (q ^ 2 - q + 1) - 1

或者,我们可以检查结果对一些不同的N值的模拟

p = pToUse;tableSize = 5:3:37;sim =南(大小(tableSize));parfor2 = 1:元素个数(tableSize) N = tableSize (ii);[~,nPass] = portPassingSimulation (1 e5, N, p);sim (ii) =意味着(nPass);结束情节(tableSize sim卡,“罗”网格)持有N =最小(tableSize):最大(tableSize);预期=双(潜艇(EN, {“r”“N”},{(1 - p) / p N}));情节(N,预期);持有标题预期通过完成随机漫步的包含许多人在餐桌上的ylabel“程数”传奇(的仿真结果,“预期结果”,“位置”,“N”)

写的偏见和公正的结果,我们得到了

$ $ E_N左= \ \ lbrace \开始{数组}{cc} \压裂{N (N - 1)} {2} & p = = \压裂{1}{2}\ \ \压裂{r + 1} {r 1}(\压裂{N ^ 2} {r ^ N 1} - \压裂{{(N - 1)} ^ 2} {r ^ {N} 1} + \压裂{Nr-N-r} {r 1}) & p \ ne \结束数组{}\ $ $

这种方式编写的,很复杂,但有一个对称。一个术语在N, N - 1和另一个术语相同的术语。总的来说明显简单的比进一步,我打印出来的页面。和我们生产的所有值的我们想调查分析解决方案,也许现在是时候通过港口!金宝搏官方网站

最后

操作相当复杂的代数表达式,从加入所有预期路径概率在一起我认为很难由手工完成。但我认为你会同意使用符号数学工具箱使它容易处理。我也留下了深刻的印象的能力解决递归关系(参见相关文件证明初始的定义pSAB伊萨)。

从这篇文章,它的样子我自己所做的所有的工作在这里,所以我要感谢瑞克阿摩司(MathWorks)和巴纳比·马丁(英国杜伦大学)帮助的许多细节。

看到这些相关的博客文章,可能你现在什么问题攻击使用模拟来指导你的数学方法?你能看到机会将统计数据和符号一起处理吗?请让我知道在这里




发表与MATLAB®R2016b


  • 打印
  • 发送电子邮件

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그인하거나계정을새로만드십시오。