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


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(ρ)吗?

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

limnM(n)=limnm(n)=1limnM(n)=limnm(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(ρ)2n1m(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)=2n1nm(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 nii1in1i1jij1ji<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)ρn12nC(ρn1)=2n21

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

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


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

10

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

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

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

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