Questions tagged «probability-theory»

有关与建模和分析随机现象有关的数学分支的问题。

2
天真的改组在渐近性上有多糟糕?
众所周知,这种“天真的”算法通过将每个项目与另一个随机选择的项目交换来改组数组,无法正常工作: for (i=0..n-1) swap(A[i], A[random(n)]); 具体来说,由于在次迭代中的每一次迭代中,都会做出选择之一(概率均等),因此通过计算存在可能的“路径”。因为可能的排列数为不能均匀地将路径数目划分为,该算法不可能产生路径中的每一个等概率排列。(相反,应该使用所谓的Fischer-Yates随机播放,这实际上改变了从[0..n]中选择随机数的调用与从[i..n]中选择随机数的调用;不过,这很无聊。)n nnn nnn nnnn^n n !n!n!n nnnn^n n !n!n! 我想知道的是,天真洗牌有多“糟糕”?更具体地说,令为所有置换的集合,令为通过朴素算法生成的最终置换的路径数,则的渐近行为是什么。功能P (Ñ )P(n)P(n)Ç (ρ )C(ρ)C(\rho)ρ ∈ P (Ñ )ρ∈P(n)\rho\in P(n) M(n)=n!nnmaxρ∈P(n)C(ρ)M(n)=n!nnmaxρ∈P(n)C(ρ)\qquad \displaystyle M(n) = \frac{n!}{n^n}\max_{\rho\in P(n)} C(\rho) 和 m(n)=n!nnminρ∈P(n)C(ρ)m(n)=n!nnminρ∈P(n)C(ρ)\qquad \displaystyle m(n) = \frac{n!}{n^n}\min_{\rho\in P(n)} C(\rho)吗? 首要因素是“标准化”这些值:如果幼稚的随机播放“渐近良好”,则 limn→∞M(n)=limn→∞m(n)=1limn→∞M(n)=limn→∞m(n)=1\qquad \displaystyle \lim_{n\to\infty}M(n) = \lim_{n\to\infty}m(n) = 1。 我怀疑(基于我见过的一些计算机模拟)实际值的界线是1,但是甚至知道limM(n)limM(n)\lim M(n)是有限的,还是limm(n)limm(n)\lim m(n)是界线的呢? …

9
使用硬币生成均匀分布的随机数
你有一枚硬币。您可以根据需要翻转它多次。 要生成的随机数[R[Rr,使得a≤r&lt;ba≤r&lt;ba \leq r < b,其中。r,a,b∈Z+r,a,b∈Z+r,a,b\in \mathbb{Z}^+ 数字的分配应统一。 如果很容易b − a = 2ñb−a=2ñb -a = 2^n: r = a + binary2dec(flip n times write 0 for heads and 1 for tails) 如果b − a ≠ 2ñb−a≠2ñb-a \neq 2^n怎么办?

5
如何应对立式棍棒挑战
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 这个问题来自于viewstreet.com 我们给出一个整数数组表示线段,使得段的端点是和(I,Y_I) 。想象一下,从每个线段的顶部向左发射水平射线,当该射线接触另一个线段或撞击y轴时,该射线停止。我们构造了一个由n个整数组成的数组v_1,...,v_n,其中v_i等于从段i顶部射出的射线的长度。我们定义V(y_1,...,y_n)= v_1 + ... + v_n。Y={y1,...,yn}Y={y1,...,yn}Y=\{y_1,...,y_n\}(我,0 )(我,ÿ 我)v 1,。。。,v Ñ v 我我V (Ý 1,。。。,ÿ Ñ)= v 1 + 。。。+ v nnnniii(i,0)(i,0)(i, 0)(i,yi)(i,yi)(i, y_i)v1,...,vnv1,...,vnv_1, ..., v_nviviv_iiiiV(y1,...,yn)=v1+...+vnV(y1,...,yn)=v1+...+vnV(y_1, ..., y_n) = v_1 + ... + v_n 例如,如果我们有Y=[3,2,5,3,3,4,1,2]Y=[3,2,5,3,3,4,1,2]Y=[3,2,5,3,3,4,1,2],则[v1,...,v8]=[1,1,3,1,1,3,1,2][v1,...,v8]=[1,1,3,1,1,3,1,2][v_1, ..., v_8] = [1,1,3,1,1,3,1,2],如下图所示: 对于每个排列的,我们可以计算。如果我们选择一个均匀随机排列的什么是预期值?[ 1 ,。。。,Ñ ] V (Ý p …

2
为什么增加对数概率比相乘概率快?
为了解决这个问题,在计算机科学中,我们经常要计算以下几种概率的乘积: P(A,B,C) = P(A) * P(B) * P(C) 最简单的方法就是将这些数字相乘,这就是我要做的。但是,老板说最好添加概率的日志: log(P(A,B,C)) = log(P(A)) + log(P(B)) + log(P(C)) 这给出了对数概率,但是如果需要,我们可以在以后获得概率: P(A,B,C) = e^log(P(A,B,C)) 日志添加被认为更好,原因有两个: 它防止“下溢”,因为下溢的概率乘积如此之小,以至于四舍五入为零。由于概率通常很小,因此这通常是一种风险。 它之所以快,是因为许多计算机体系结构执行加法的速度比乘法快。 我的问题是关于第二点。这就是我所看到的描述方式,但是没有考虑获取日志的额外费用!我们应该将“原木成本+加成成本”与“乘法成本”进行比较。考虑到这一点,它还会变小吗? 同样,Wikipedia页面(对数概率)在这方面令人困惑,指出“转换为对数格式很昂贵,但是只发生一次。” 我不明白这一点,因为我认为您需要在添加之前独立记录每个术语的日志。我想念什么? 最后,“计算机执行加法的速度比乘法快”的说法有点含糊。这是特定于x86指令集的,还是处理器体系结构的一些更基本的特征?

9
在给定公平硬币的情况下如何模拟骰子
假设给了您一个公平的硬币,并且您想模拟重复翻转一个公平的(六面)骰子的概率分布。我最初的想法是,我们需要选择适当的整数,使2 k = 6 m。所以翻转硬币后ķ倍,我们通过将范围映射由第k比特串长度到管芯的输出编码数[ 0 ,2 ķ - 1 ]每个的长度为6个的间隔米。但是,这是不可能的,因为2 k仅有两个素数,但2 k的素数ķ ,米k,mk,m2ķ= 6 米2k=6m2^k = 6mķkk[ 0 ,2ķ− 1 ][0,2k−1][0,2^k-1]米mm2ķ2k2^k包括3。应该有其他简单的方法来执行此操作,对吗?6 米6m6m

3
拒绝采样是获得真正均匀的随机数分布的唯一方法吗?
假设我们有一个随机发生器,在输出范围数[0..R−1][0..R−1][0..R-1]与均匀分布,我们需要的范围内生成随机数[0..N−1][0..N−1][0..N-1] 与均匀分布。 假设N&lt;RN&lt;RN < R并且NNN不能均匀地除以RRR ; 为了获得真正均匀的分布,我们可以使用 拒绝采样方法: 如果kkk是最大整数,则kN&lt;RkN&lt;Rk N < R 在[ 0 .. R − 1 ]中选择一个随机数rrr[0..R−1][0..R−1][0..R-1] 如果r&lt;kNr&lt;kNr < k N则输出,否则继续尝试其他随机数r',r“,...直到满足条件rmodNrmodNr \mod N 拒绝采样是获得真正均匀的离散分布的唯一方法吗? 如果答案是肯定的,为什么? 注意:如果N&gt;RN&gt;RN > R则想法是相同的:在[0..R ^ m-1]中生成随机数r' ,R ^ m&gt; = N,例如r'= R(... R(R r_1 + r_2)...)+ r_m,其中r_i是[0..R-1]范围内的随机数r′r′r'[0..Rm−1],Rm&gt;=N[0..Rm−1],Rm&gt;=N[0..R^m-1], R^m >= Nr′=R(...R(Rr1+r2)...)+rmr′=R(...R(Rr1+r2)...)+rmr' = R(...R(R r_1 + …

1
追踪运动目标的算法
假设我们有一个黑匣子,我们可以查询和重置它。当我们复位,状态的被设定为在从所述一组随机选择的均匀的元素其中是固定的并且已知的用于给定。为了查询,提供了的元素(猜测),返回的值为(f_S-x)\ mod n。另外,该状态F_S的˚F被设定为值F_S” = F_S \ PMķ,其中ķ从均匀地选择随机fffffffSfSf_Sfff{0,1,...,n−1}{0,1,...,n−1}\{0, 1, ..., n - 1\}nnnffffffxxx{0,1,...,n−1}{0,1,...,n−1}\{0, 1, ..., n - 1\}˚F 小号 ˚F ˚F ' 小号 = ˚F 小号 ± ķ ķ { 0 ,1 ,2 ,。。。,⌊ Ñ / 2 ⌋ - (( ˚F 小号 - X )(fS−x)modn(fS−x)modn(f_S - x) \mod nfSfSf_Sffff′S=fS±kfS′=fS±kf_S' = f_S …

4
用有偏向的模子模拟公平的模子
给定一个偏向芯片,如何均匀地生成范围内的随机数?模子面的概率分布是未知的,所知道的是每个面的概率都为非零,并且所有抛出的概率分布都是相同的(特别是,抛出是独立的)。这是带有不公平死亡的公平结果的明显概括。NNN[1,N][1,N][1,N] 用计算机科学的术语来说,我们有一个代表死角的预言片:使得为非零且独立于。我们正在寻找一个确定性算法其通过参数化(即可向呼叫),使得。该算法必须以概率1终止,即概率使得多于到呼叫必须收敛到作为。D:N→[1,N]D:N→[1,N]D : \mathbb{N} \to [1,N]pi=P(D(k)=i)pi=P(D(k)=i)p_i = P(D(k)=i)kkkAAADDDAAADDDP(A()=i)=1/NP(A()=i)=1/NP(A()=i) = 1/N一种一种AññnddD000n → ∞ñ→∞n\to\infty 对于(使用有偏差的硬币模拟硬币翻转产生的公平硬币),有一种众所周知的算法:ñ= 2ñ=2N=2 重复“翻转两次”,直到两次掷出的结果不同((头,尾)或(尾,头))。换句话说,循环直到k = 0 ..∞ķ=0 ..∞k = 0..\inftyd (2 ķ + 1 )≠ d (2 ķ )d(2ķ+1个)≠d(2ķ)D(2k+1) \ne D(2k) 如果最后一对翻转是(头,尾),则返回0,如果是(尾,头),则返回1。换句话说,返回,其中是终止循环的索引。D(2k)D(2k)D(2k)kkk 从有偏的模型制作无偏的骰子的一种简单方法是使用硬币翻转无偏方法来构建一个公平的硬币,并通过拒绝采样来构建一个公平的骰子,如序列无偏中所述。但是,这是否最优(对于概率分布的通用值)? 具体来说,我的问题是:什么是需要的算法最小预期呼叫到Oracle的数量?如果一组可达到的期望值是开放的,那么下界是什么?向该下界收敛的一类算法是什么? 如果不同的算法家族对于不同的概率分布是最优的,那么我们将重点放在几乎公平的骰子上:我正在寻找一种算法或一种算法家族,对于表示。∀i,∣∣pi−1/N∣∣&lt;ϵ∀i,|pi−1/N|&lt;ϵ\forall i, \bigl|p_i - 1/N\bigr| \lt \epsilonϵ&gt;0ϵ&gt;0\epsilon \gt 0

1
将期望最大化应用于抛硬币示例
最近,我一直在自学“期望最大化”,并在过程中掌握了一些简单的示例: 从这里开始:三个硬币,和带有,和c 1 c 2 p 0 p 1c0c0c_0c1c1c_1c2c2c_2p0p0p_0p1p1p_1p2p2p_2分别是被抛掷时落在头上的概率。投掷c0c0c_0。如果结果是Head,则将掷c1c1c_1三遍,否则将掷c2c2c_2三遍。c1c1c_1和产生的观测数据c2c2c_2如下:HHH,TTT,HHH,TTT,HHH。隐藏数据是的结果c0c0c_0。估计p0p0p_0,p1p1p_1和p2p2p_2。 从这里开始:有两个硬币cAcAc_A和cBcBc_B其中pApAp_A和pBpBp_B分别是被抛掷落在Head上的概率。每回合随机选择一枚硬币,掷十次;记录结果。观察到的数据是这两个硬币提供的抛掷结果。但是,我们不知道为特定回合选择了哪个硬币。估计pApAp_A和pBpBp_B。 虽然我可以得到计算结果,但是我无法将它们的求解方式与原始的EM理论联系起来。具体来说,在两个示例的M-Step中,我都看不到它们如何使任何东西最大化。似乎他们正在重新计算参数,并且以某种方式,新参数比旧参数要好。而且,这两个电子步骤看上去甚至都不相似,更不用说原始理论的电子步骤了。 那么这些示例如何工作?

2
任务完成时间的变化如何影响制造跨度?
比方说,我们有大量的任务τ 1,τ 2,。。。,τ Ñ和的相同集合(在性能方面)处理器ρ 1,ρ 2,。。。,ρ 米其完全并行操作。对于感兴趣的场景,我们可以假定米≤ ñ。每个τ 我需要时间/周期的一定量来完成,一旦它被分配给一个处理器ρ Ĵτ1,τ2,...,τn\tau_1, \tau_2, ..., \tau_nρ1,ρ2,...,ρm\rho_1, \rho_2, ..., \rho_mm≤nm \leq nτi\tau_iρj\rho_j,并且一旦分配,就无法重新分配,直到完成(处理器总是最终完成分配的任务)。让我们假定每个τ 我需要的时间量/周期X 我,在事先不知道,从一些离散的随机分布截取。对于这个问题,我们甚至可以假设一个简单的分布:P (X 我 = 1 )= P (X 我 = 5 )= 1 / 2,并且所有X 我是两两独立的。因此μ 我 = 3和στi\tau_iXiX_iP(Xi=1)=P(Xi=5)=1/2P(X_i = 1) = P(X_i = 5) = 1/2XiX_iμi=3\mu_i = 3 2= 4σ2=4\sigma^2 …

1
随机选择
随机选择算法如下: 输入:一个数组,其中包含(为简单起见,是不同的)数字和一个Ñ ķ ∈ [ Ñ ]AAAnnnk∈[n]k∈[n]k\in [n] 输出:该“等级的元素”(即,一个在位置如果进行了排序)甲ķ 甲kkkAAAkkkAAA 方法: 如果有一个元素,则将其返回AAA 随机均匀地选择一个元素(“枢轴”)ppp 计算集合和- [R = { 一个∈ 甲:一&gt; p }L={a∈A:a&lt;p}L={a∈A:a&lt;p}L = \{a\in A : a < p\}R={a∈A:a&gt;p}R={a∈A:a&gt;p}R = \{a\in A : a > p\} 如果,返回的等级元素。ķ 大号|L|≥k|L|≥k|L| \ge kkkkLLL 否则,返回等级元素[Rk−|L|k−|L|k - |L|RRR 我被问到以下问题: 假设,那么您正在寻找中位数,并将 设为常数。在第一次递归调用中,包含中位数的集合的大小最大为的概率是多少?α &Element; (1 / 2 ,1 …

2
高效算法,可随机生成一个多集的两个分散,无序排列
背景 \newcommand\ms[1]{\mathsf #1}\def\msD{\ms D}\def\msS{\ms S}\def\mfS{\mathfrak S}\newcommand\mfm[1]{#1}\def\po{\color{#f63}{\mfm{1}}}\def\pc{\color{#6c0}{\mfm{c}}}\def\pt{\color{#08d}{\mfm{2}}}\def\pth{\color{#6c0}{\mfm{3}}}\def\pf{4}\def\pv{\color{#999}5}\def\gr{\color{#ccc}}\let\ss\gr假设我有两个相同批次的nnn大理石。每个大理石可以是ccc种颜色之一,其中c≤nc≤nc≤n。令ninin_i表示每批中颜色为i的大理石的数量iii。 令SS\msS为多集{1,…,1n1,2,…,2n2,…,1c,…,cnc}{1,…,1⏞n1,2,…,2⏞n2,…,1c,…,c⏞nc}\small\{\overbrace{\po,…,\po}^{n_1},\;\overbrace{\pt,…,\pt}^{n_2},\;…,\;\overbrace{\vphantom 1\pc,…,\pc}^{n_c}\}代表一批。在频率表示中,SS\msS也可以写为(1n12n2…cnc)(1n12n2…cnc)(\po^{n_1} \;\pt^{n_2}\; … \;\pc^{n_c})。 \ msS的不同置换数SS\msS由多项式给出: |SS|=(nn1,n2,…,nc)=n!n1!n2!⋯nc!=n!∏i=1c1ni!.|SS|=(nn1,n2,…,nc)=n!n1!n2!⋯nc!=n!∏i=1c1ni!.\left|\mfS_{\msS}\right|=\binom{n}{n_1,n_2,\dots,n_c}=\frac{n!}{n_1!\,n_2!\cdots n_c!}=n! \prod_{i=1}^c \frac1{n_i!}. 题 是否有一个有效的算法来生成两个弥漫,错乱排列PPP和QQQ的SS\msS随意?(分布应均匀。) 甲置换PPP是漫如果对于每个不同的元件iii的PPP,的实例iii在大致均匀间隔的出PPP。 例如,假设S=(1424)={1,1,1,1,2,2,2,2}S=(1424)={1,1,1,1,2,2,2,2}\msS=(\po^4\;\pt^4)=\{\po,\po,\po,\po,\pt,\pt,\pt,\pt\}。 {1,1,1,2,2,2,2,1}{1,1,1,2,2,2,2,1}\{\po, \po, \po, \pt, \pt, \pt, \pt, \po\}不扩散 {1,2,1,2,1,2,1,2}{1,2,1,2,1,2,1,2}\{\po, \pt, \po, \pt, \po, \pt, \po, \pt\}是分散的 更严格地: 如果,则只有一个实例要在 “间隔” ,所以让。ni=1ni=1n_i=1iiiPPPΔ(i)=0Δ(i)=0\Delta(i)=0 否则,令是实例之间的距离 和实例 的在。从中减去期望的实例之间的距离,定义以下内容: 如果在均匀分布,则应该为零,或者如果为非常接近零。d(i,j)d(i,j)d(i,j)jjjj+1j+1j+1iiiPPPiiiδ(i,j)=d(i,j)−nniΔ(i)=∑j=1ni−1δ(i,j)2δ(i,j)=d(i,j)−nniΔ(i)=∑j=1ni−1δ(i,j)2\delta(i,j)=d(i,j)-\frac n{n_i}\qquad\qquad\Delta(i)=\sum_{j=1}^{n_i-1} \delta(i,j)^2iiiPPPΔ(i)Δ(i)\Delta(i)ni∤nni∤nn_i\nmid n 现在定义统计量来衡量每个在均匀间隔的数量。如果接近零,或大致,我们称弥散。(可以选择特定于的阈值,以便在使扩散。)s(P)=∑ci=1Δ(i)s(P)=∑i=1cΔ(i)s(P)=\sum_{i=1}^c\Delta(i)iiiPPPPPPs(P)s(P)s(P)s(P)≪n2s(P)≪n2s(P)\ll n^2k≪1k≪1k\ll1SS\msSPPPs(P)&lt;kn2s(P)&lt;kn2s(P)<kn^2 …

1
朴素贝叶斯模型中的平滑
朴素贝叶斯预测器使用以下公式进行预测: P(Y=y|X=x)=αP(Y=y)∏iP(Xi=xi|Y=y)P(Y=y|X=x)=αP(Y=y)∏iP(Xi=xi|Y=y)P(Y=y|X=x) = \alpha P(Y=y)\prod_i P(X_i=x_i|Y=y) 其中是归一化因子。这需要从数据中估计参数。如果我们使用平滑进行此操作,则可以得到估计值αα\alphaP(Xi=xi|Y=y)P(Xi=xi|Y=y)P(X_i=x_i|Y=y)kkk P^(Xi=xi|Y=y)=#{Xi=xi,Y=y}+k#{Y=y}+nikP^(Xi=xi|Y=y)=#{Xi=xi,Y=y}+k#{Y=y}+nik\hat{P}(X_i=x_i|Y=y) = \frac{\#\{X_i=x_i,Y=y\} + k}{\#\{Y=y\}+n_ik} 可能有值。我对此很好。但是,以前,我们有ninin_iXiXiX_i P^(Y=y)=#{Y=y}NP^(Y=y)=#{Y=y}N\hat{P}(Y=y) = \frac{\#\{Y=y\}}{N} 数据集中有示例。为什么我们也不能简化先验?或者说,做我们顺利前?如果是这样,我们选择什么平滑参数?也选择似乎有点愚蠢,因为我们正在做不同的计算。有共识吗?还是没有太大关系?NNNkkk

3
头尾之间的差异
考虑无偏硬币的nnn翻转序列。令HiHiH_i表示在第一个iii翻转中看到的超过头的数量的绝对值。定义H=maxiHiH=maxiHiH=\text{max}_i H_i。证明E[Hi]=Θ(i√)E[Hi]=Θ(i)E[H_i]=\Theta ( \sqrt{i} )和E[H]=Θ(n−−√)E[H]=Θ(n)E[H]=\Theta( \sqrt{n} )。 这个问题出现在Raghavan和Motwani撰写的“随机化算法”的第一章中,因此上面的陈述也许有基本的证明。我无法解决它,所以我将不胜感激。

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z =&gt; x var x; Z =&gt; let x = undefined in Z x = y; Z =&gt; let x = y in Z if x then T else F; Z =&gt; if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.