大师定理不适用?


11

给定以下递归方程

我们要应用主定理并注意

T(n)=2T(n2)+nlogn

nlog2(2)=n.

现在我们检查的前两种情况,即是否ε>0

  • nlognO(n1ε)
  • nlognΘ(n)

这两种情况都不令人满意。因此,我们必须检查第三种情况,即是否

  • nlognΩ(n1+ε)

我认为第三个条件也不满足。但为什么?对于为什么不能在这种情况下应用Master定理,有什么好的解释?



4
不满足情况三,因为对于任何ϵ > 0,都不是Ω n ϵ。在极限对数n上使用l'Hôpital规则lognΩ(nϵ)ϵ>0lognnϵ
sdcvvc 2012年

1
一旦证明两种情况都不适用,就证明您不能按照所述方式应用主定理。
拉斐尔

谁需要掌握定理?使用递归树。
JeffE 2012年

Answers:


7

Thomas H. Cormen,Charles E. Leiserson,Ronald L.Rivest和Clifford Stein(第二版,2001年)在《算法介绍》中证明了您所引用的Master定理的三种情况。

可以正确地观察到,所讨论的递归介于案例2和案例3之间。对于任何ε > 0,增长快于n,但慢于n 1 + εf(n)=nlognnn1+εε>0

但是,该定理可以推广到覆盖这种重复。考虑

f(n)=Θ(nlogbalogbkn)k0

k=0f(x)Θ(logbn)

T(n)=Θ(nlogbalogbk+1n)

算法导论中,此语句保留为练习。

T(n)=Θ(nlog2n).

有关主定理的更多详细信息,请参见出色的(imho)Wikipedia页面

limxcf(x)g(x)=limxcf(x)g(x)
f(x)g(x)cf(n)=nlogng(n)=n1+εlognΘ(n1+ε).

案例2A的主定理证明草图。

这是对算法介绍中的证明部分的复制,并进行了必要的修改

首先我们证明以下引理。

引理A:

考虑一个函数 其中然后

g(n)=j=0logbn1ajh(n/bj)
h(n)=nlogbalogbkn.g(n)=nlogbalogbk+1n.

证明: 将入的表达式可以得到 h(n)g(n)

g(n)=nlogbalogbknj=0logbn1(ablogba)j=nlogbalogbk+1n.

QED

如果给定递归 是的精确幂 可以将其重写为 用 代替,将移到外面并应用引理Anb

T(n)=aT(n/b)+f(n),T(1)=Θ(1)
T(n)=Θ(nlogba)+j=0logbn1ajT(n/bj).
f(n)Θ(nlogbalogbkn)Θ

T(n)=Θ(nlogbalogbk+1n).

将其推广为不是的幂的任意整数超出了本文的范围。bnb


1

Akra-Bazzi定理是主定理的严格推广。作为奖励,它的证明是积分飞雪,它将使您的头部旋转;-)

在任何情况下,Sedgewick在他的“算法分析导论”中都令人信服地指出,应该努力证明类型的渐近性。T(n)g(n)

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.