天真的改组在渐近性上有多糟糕?


33

众所周知,这种“天真的”算法通过将每个项目与另一个随机选择的项目交换来改组数组,无法正常工作:

for (i=0..n-1)
  swap(A[i], A[random(n)]);

具体来说,由于在次迭代中的每一次迭代中,都会做出选择之一(概率均等),因此通过计算存在可能的“路径”。因为可能的排列数为不能均匀地将路径数目划分为,该算法不可能产生路径中的每一个等概率排列。(相反,应该使用所谓的Fischer-Yates随机播放,这实际上改变了从[0..n]中选择随机数的调用与从[i..n]中选择随机数的调用;不过,这很无聊。)n nn nn nnn n !n!n nnn n !n!

我想知道的是,天真洗牌有多“糟糕”?更具体地说,令为所有置换的集合,令为通过朴素算法生成的最终置换的路径数,则的渐近行为是什么。功能P (Ñ )P(n)Ç (ρ )C(ρ)ρ ∈ P (Ñ )ρ∈P(n)

M(n)=n!nnmaxρ∈P(n)C(ρ)M(n)=n!nnmaxρ∈P(n)C(ρ)

和

m(n)=n!nnminρ∈P(n)C(ρ)m(n)=n!nnminρ∈P(n)C(ρ)吗?

首要因素是“标准化”这些值:如果幼稚的随机播放“渐近良好”,则

limn→∞M(n)=limn→∞m(n)=1limn→∞M(n)=limn→∞m(n)=1。

我怀疑(基于我见过的一些计算机模拟)实际值的界线是1,但是甚至知道limM(n)limM(n)是有限的,还是limm(n)limm(n)是界线的呢? 0?关于这些数量的行为了解什么?


8
好问题。我不知道这个问题最好的地方在哪里。除非很明显另一个论坛对此有所帮助,否则我认为您应该在这里呆一个星期左右,如果没有满意的答案,请在另一个论坛中提问(并在两个问题中都添加链接) )。
— 彼得·索尔

4
@vzn“为什么要对已知的有缺陷的算法进行严格分析?” 因为数学很有趣,而且您永远也不知道其他应用程序可能会出现在哪里-例如,请参阅Knuth对Bubble Sort的分析。Atwood的图表对不均匀性进行了粗略的定性分析,但这与数学上的定量分析相去甚远。(而且有几种不同的菲舍尔-耶茨混洗等效公式,我提到的方法效果很好。)
— 史蒂文·斯塔德尼基

4
作为记录,OEIS序列A192053为max,并且未列出闭合形式。另外,该条目的注释还建议min可能是,这意味着。C (ρ )C (ρ )2 n - 1 m (n )→ 0C(ρ)C(ρ)2n−1m(n)→0
— mhum 2012年

2
@vzn开放式问题怎么了?
— Yuval Filmus 2012年

1
@vzn对于您的最后一句话不同意,有很多关于“不完美”混洗的分析。例如,如果我们进行随机转置,则已知随机性的阈值大约为。当前的问题可能很难,但是先验地很难说它是否“非常困难”。诸如mhum的答案已经非常令人满意,表明该问题适合该论坛,并且没有提出无法克服的障碍(已保留正式证明)。(1 / 2 )Ñ 日志Ñ(1/2)nlogn
— Yuval Filmus 2012年

Answers:


13

通过归纳,我们将证明置换是一个示例。如果这是最坏的情况(如前几个(请参阅OEIS序列A192053的注释),则。因此,归一化的最小值(与归一化的最大值一样)是“指数级的”。ρ Ñ = (2 ,3 ,4 ,... ,Ñ ,1 )Ç (ρ Ñ)= 2 ñ - 1 ñ 米(Ñ )≈ (2 / ë )Ñρn=(2,3,4,…,n,1)C(ρn)=2n−1nm(n)≈(2/e)n

基本情况很容易。对于归纳步​​骤,我们需要一个引理:

引理:在从到任何路径中,第一个动作会交换位置和,或者最后一个动作会交换位置和。(2 ,3 ,4 ,... ,Ñ ,1 )(1 ,2 ,3 ,... ,Ñ )1 ñ 1 Ñ(2,3,4,…,n,1)(1,2,3,…,n)1n1n

证明草图:假设不。考虑涉及第个位置的第一步。假设这是第个动作,和。此移动必须将项目放置在第个位置。现在考虑触及项目的下一步。假设此举是第个举动。此移动必须交换和,将项移到第个位置,且。一个类似的论点说,项目只能随后向右移动。但是项目Ñ 我我≠ 1 我≠ Ñ 1 我1 Ĵ 我Ĵ 1 Ĵ 我< Ĵ 1 1 ◻nii≠1i≠n1i1jij1ji<j11首先需要矛盾。□

现在,如果第一个动作将位置和交换,其余的动作必须将置换为。如果其余移动没有碰到第一个位置,则这是位置的排列,并且通过归纳我们知道存在条路径可以做到这一点。类似于引理证明的论点说,没有路径可以碰到第一个位置,因为第项必须以不正确的位置结束。1 Ñ (1 ,3 ,4 ,5 ,... ,Ñ ,2 )(1 ,2 ,3 ,4 ,... ,Ñ )ρ ñ - 1 2 ... Ñ Ç (ρ ñ - 1)= 2 ñ - 2 11n(1,3,4,5,…,n,2)(1,2,3,4,…,n)ρn−12…nC(ρn−1)=2n−21

如果最后一次移动将位置和交换,则前移动必须将置换转换为置换。同样,如果这些移动没有碰到最后一个位置,那么这就是排列,并且通过归纳法得出路径做到这一点。再说一次,如果前移动中的一个移动到最后一个位置,则项目永远不会以正确的位置结束。1 ñ ñ - 1 (2 ,3 ,4 ,... ,Ñ ,1 )(Ñ ,2 ,3 ,4 ,... ,Ñ - 1 ,1 )ρ ñ - 1 c ^ (ρ ñ - 1)= 2 Ñ - 2 n - 1 11nn−1(2,3,4,…,n,1)(n,2,3,4,…,n−1,1)ρn−1C(ρn−1)=2n−2n−11

因此,。Ç (ρ Ñ)= 2 Ç (ρ ñ - 1)= 2 Ñ - 1C(ρn)=2C(ρn−1)=2n−1


完美-引理背后的论点看起来很像我对内卷进行的论证,这是获得身份置换的唯一方法,但是我错过了显式交换中的递归结构。谢谢!
— 史蒂文·斯塔德尼基

10

经过mhum指向OEIS的指导,进行了一些深入的研究之后,我终于找到了一个出色的分析和一个很好的(相对)基本的论证(据我所知,对Goldstein和Moews [1]而言),在超指数的速度增长:M (n )nM(n)n

任何对合都对应于“天真的”改组算法的运行,该算法会产生身份置换作为结果,因为该算法会将与交换,随后将交换与保持不变。这意味着产生身份置换的算法的运行次数至少是对合的数量(实际上,稍加思考就表明对应关系为1-1,因此恰好是) ,因此的最大值从下方受。ι { 1 ... Ñ } ķ ι (ķ )ι (ķ )ķ Q (Ñ )Q (Ñ )中号(Ñ )Q (Ñ )ι{1…n}kι(k)ι(k)kQ(n)Q(n)M(n)Q(n)

Q (n )Q(n)显然有许多名称,包括电话号码:请参阅http://oeis.org/A000085和http://en.wikipedia.org/wiki/Telephone_number_%28mathematics%29。渐近是众所周知的,结果证明 ; 从递归关系可以归纳地显示出比率满足,从那里基本分析得到渐近式中的前项,而另一个术语需要更仔细的努力。由于“比例因子”Q (Ñ )≈ Ç (Ñë)ñ/2ë√n Q(n)=Q(n-1)+(n-1)Q(n-2)R(n)=Q(n)Q(n)≈C(ne)n/2en√Q(n)=Q(n−1)+(n−1)Q(n−2)Q (n − 1 ) √R(n)=Q(n)Q(n−1)n <R(n)< √n + 1 n n / 2 n !n−−√<R(n)<n+1−−−−−√nn/2ñ ñn!nn的定义中的仅约,占主导地位,并且(渐近地)产生。中号(Ñ )Ç √M(n)ñ ë - ñ Q(Ñ)中号(Ñ)≥ÇÑ(Ñ + 1 )/ 2 ë - 3 ñ / 2 + √Cn−−√e−nQ(n)ñM(n)≥Cn(n+1)/2e−3n/2+n√

实际上,Goldstein和Moews继续在[1]中证明,对于大的,身份置换最可能发生,因此实际上是并且的行为完全稳定。这仍然使的行为问题悬而未决。如果这也能影响他们论文中的分析,我不会感到惊讶,但是我还没有机会仔细阅读它,但仍无法真正掌握他们的方法,只足以了解基本结果。Ñ ≥ 听,说:中号(Ñ )米(Ñ )n≥≈M(n)m(n)

[1] D. Goldstein和D. Moews:“身份是大n最有可能的交换洗牌”,http://arxiv.org/abs/math/0010066


1
不难证明排列是。如果这是最坏的情况,例如前,则。(2,3,4,…,n,1)(2,3,4,…,n,1)C(ρ)=2n−1C(ρ)=2n−1nnm(n)≈(2/e)nm(n)≈(2/e)n
— 彼得·索尔

@PeterShor你能给出基本的论点吗?我感觉好像缺少了可以使用的简单的卷入式论证,但是我不太理解。我认为,即使这不是很小,也足够了。最小值似乎不太可能在不成指数,并且仅知道标准化的max和min都“呈指数级”是一个非常令人满意的答案。nn
— Steven Stadnicki 2012年

我在参数中添加了答案...评论太久了。
— 彼得·索尔
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.