split-ratioが


20

フォームの再発を解決する一般的な方法はありますか:

T(n)=T(n−nc)+T(nc)+f(n)

以下のためのc<1、又はより一般的に

T(n)=T(n−g(n))+T(r(n))+f(n)

ここで、g(n),r(n)の一部のサブ線形関数であるn。

更新:以下に提供されているリンクを確認し、Jeff Ericksonのメモに記載されているすべての再発関係を確認しました。この形式の再発については、どこでも説明していません。Akkra-Bazi法は、分割が分数の場合にのみ適用されます。痛烈な参照は評価されます。


2
関数を生成してみてください。
— saadtaame

1
んAkra-Bazziの方法が適用されますか?O(⋅)見積もりのみを提供しますが、それで十分かもしれません。
— フォンブランド

4
あなた自身で問題を解決しようとする試みの多くを含めなかったので、私たちは協力する準備ができています。あなたの問題と同様の問題を詳細に網羅した参考質問にご案内します。そこにリストされている関連する質問を処理し、問題をもう一度解決して、発生した特定の問題とともに試行を含めるように編集してください。
— ラファエル

1
「分割統治再発のためのより良いマスター定理に関する注意事項」に関するトム・レイトンの配布資料をチェックしてください。それらは「ネット」で入手できます。おそらく、そこにあるAkra-Bazziの証拠をあなたのケースに適合させることができます。
— フォンブランド

1
@EngrStudent生成関数は、最初のコメントで提案されました。:)
— ラファエル

回答:


6

繰り返しがあるとしましょう

T(n)={T(n−nc)+T(nc)+f(n)n> 21さもないと
正の実数を超える範囲にあること。

この関数で何ができますか?確かに、特定の構造を重ねない限り、多くはありません。私は数値分析のバックグラウンドから来ました。それは、根本的な問題が十分に滑らかでない場合でも問題なく機能する数値レシピで舗装されています(問題ではありません、ニュートンの方法を分割された違いで投げましょう)または分析するには複雑すぎます(ソートこの問題のような)。これらの問題に対する私の直感的な反応は、いくつかの手を振って仮定し、指を交差させ、最善を望むことです。この場合、それは比較的良い境界を与えるようです。

特に、2つの大きな仮定をしたいと思います。これらの仮定の1つは多かれ少なかれ根拠がありませんが、それなしではそれほど遠くはありません。もう1つは、見た目がいいと思う多少直感的な直感を持っていますが、それは他の何よりもまだ手間がかかります。

  1. は「滑らかな」と仮定します。T (n )はどこでも微分可能ではないことを見るのはかなり簡単です。実際、f (n )= log (n )およびc = 1の場合、連続的ではありません。T(n)T(n)f(n)=ログ⁡(n)、limn→2−T(n)=1およびlimn→2+T(n)=2+ln2c=12リムn→2−T(n)=1リムn→2+T(n)=2+ln⁡2。したがって、によって生成された反復マップ所与またはnn↦n、T(n)はnある不連続性を含みn↦n−nT(n)n、その反復ツリーが軌跡のどこかに含む場合、。それは多くの不連続点であり、それはディリクレの機能をそのお金のために走らせるかもしれません。関数の振る舞いを、どこにも連続しない関数の典型的な例の振る舞いと比較するところまで来たら、それが「滑らかな」と主張しようとするのは笑わないでしょうか?実際には、これらの不連続性の効果は漸近的に減少し、n2n無限に向かう傾向があります!したがって、私は、私たちが熊手を置いて、この状況で逆方向を見るだけであることを提案します。特に、原点から十分に離れた関心点で、T (n )は微分可能、または少なくとも近傍の周囲で少なくともほぼ微分可能であると仮定します。nT(n)
  2. また、が十分に離れている場合、滑らかさのさらに強いスタンスを想定します。その仮定α (nは)ように、いくつかのサブリニア関数であり、N > α (N )(例えば、N 、C)、次いで誘導体T '(ξ ∈ (N - α (N )、nは)とき顕著に変化しませんα (nが)遅い十分です。直感的に、としてのnnα(n)n>α(n)ncT′(ξ∈(n−α(n)、n)α(n)n大きくなり、近傍の相対的な大きさ減少します(そのサイズは α (n )であるため、 nよりもはるかに遅く成長します)。最終的に、この近傍のサイズは( nに対して)あまり重要ではなくなるため、 Tの変化率((n−α(n)、n)α(n)nn内の n )の劇的には変化しません。T(n)

現在、これらのプロパティは両方とも想定されており、いずれかの厳密な方法で実際に証明する方法はまったくわかりません。しかし、私が前に言ったように、私たちの指を交差させて、最善を期待しましょう。

再帰関係から始めましょう: ここで、Tはn−ncとnの間の区間で十分に滑らかであると仮定します。古典的な分析ツールの1つである平均値定理に注目すると、 T(n)−T(n− n c)

T(n)=T(n−nc)+T(nc)+f(n)T(n)−T(n−nc)=T(nc)+f(n)ncT(n)−T(n−nc)nc=T(nc)+f(n)
Tn−ncn さらに、nが十分に大きい場合、T'(ξ)はこの区間全体でほぼ同じであるため、この区間内の有限差分の値も取ります。この次に手段は、 T'(ξ)≈T(N)-T(N-ε)
T(n)−T(n−nc)nc=T′(ξ∈(n−nc、n))。
nT′(ξ) 特に、ϵ=1を使用して、1ステップの差分差分近似 n c(T (n )− T (n − 1 ))を取得します。
T′(ξ)≈T(n)−T(n−ϵ)ϵ    ϵ<nc
ϵ=1 我々が得るために、このアウトをはめ込むことができます T(N)≈NΣkのT(k個のCを)
nc(T(n)−T(n−1))≈T(nc)+f(n)T(n)−T(n−1)≈T(nc)+f(n)nc
T(n)≈∑knT(kc)kc+∑knf(k)kc

摂動すると、f (z )の漸近的性質に応じて、T (n )に2つの漸近相があることがわかります。T(n)T(n)f(z)

f(n)=o(nc)fncT(n)=Θ(∑knf(k)kc)∫nf(x)xcdx

f(n)=ω(nc)

(∑knT(kc)kc)+Fc(n)
Fc(n)=∫nf(x)xcdx

滑らかさの引数により、これをもう一度、整数に近い左アンカーリーマン和として見ることができます。∫nT(xc)xcdx

∑kT(kc)kc≈∫nf(xc)xcdx=nT(ξ<nc)ξc
nT(nc)nc, which gives the approximation
T(n)≤nMT(nc)nc+Fc(n)
for some constant M that bounds the series.

Now, suppose that we have the iterated sequence (n,nc,nc2,nc3,…,nck) where nck<2, then we can use this sequence to telescope the above inequality to get:

(*)T(n)≤n(∑ik−1MinciFc(nci)+Mknck)
Once again, we can bound the Fc(nci) term by some constant to find that
T(n)=O(Fc(n)+nFc(nc)(Mn−c+M2n−c2+⋯+Mkn−ck))
where k=logc⁡(log⁡(2)log⁡(n)). Simplifying a bit and coalescing some of the Mn−c terms together (in particular, we know that n−ck is a constant), we get
T(n)=O(nkFc(n)Mk)

However, this bound is relatively loose, and you should refer to (*) whenever possible.

Be aware that in no way is this rigorous. I have not provided any support that this ought to work beyond some clumsy approximations. Nevertheless, if you just need a quick asymptotic guess for the sake of informal analysis, then you can actually see that this scheme works well (for large enough values of n, usually n>10 suffices) in practice.

Anyways, for all of the choices of c and f that I've tried, the following computation

T^(n)=n∑klogc⁡logn⁡2MknckF(nck)F(n)=∑knf(k)kc
where
M≈∑kT(kc)kcnT(nc)nc
seems to give good approximations. This technique also generalizes to recurrences of the form
T(n)=T(n−α(n))+T(β(n))+f(n)
which can be approximated with
T^(n)=n∑k#β(n)Mkαk(n)F(βk(n))F(n)=∑knf(k)α(k)
where αk(n)=α(⋯k(α(n))) そして #β(n) シーケンスの要素数を示します n、β(n)、β(β(n))、…、β#β(n)(n) そのような最後の用語は 1 そして 2。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.