マスター定理を使用する場合の仮定


20

マスター定理は、特定の種類の再発を解決するための美しいツールです。しかし、私たちはそれを適用するとき、しばしば不可欠な部分に光沢をつけます。たとえば、Mergesortの分析中は、

T(n)=T(⌊n2⌋)+T(⌈n2⌉)+f(n)

に

T′(n)=2T′(n2)+f(n)

のみを考慮します。Tは「うまく」動作するので、このステップが有効であること、つまりことを保証します。一般に、bを共通分母としてn = b kと仮定します。n=2kT∈Θ(T′)Tn=bkb

悪質なを使用すると、この単純化を許可しない繰り返しを簡単に作成できfます。たとえば、上記のTの繰り返しT/T′と

f(n)={1、n=2kn、他に

マスター定理を通常の方法で使用してを生成しΘ(n)ますが、明らかにように成長するサブシーケンスがありますΘ(nログ⁡n)。より工夫された別の例については、こちらをご覧ください。

どうすればこの「きちんと」厳密にすることができますか?単調性で十分であると確信していますが、単純なマージソートの繰り返しでさえ単調ではありません。周期的な要素があります(漸近的に支配されます)。を調査するだけで十分ですか?また、マスター定理が機能することを保証するfのf必要十分条件は何ですか?f


同じ結果に対する別の考え方は、Akra-Bazziの定理「線形回帰方程式の解法」、計算の最適化と応用、10(2)、195-210(1998)、またはDrmotaとSzpankowskiの「離散除算のマスター定理」です。 and Concurrences」、SODA'11 < dl.acm.org/citation.cfm?id=2133036.2133064 >。
— フォンブランド

2
ここに、ペイウォールの背後にない上記の論文へのリンクがあります。
— Paresh

1
IIRCこれはCLRS第4章で説明されています。
— Kaveh

@Kavehポインタをありがとう。ほとんどの場合、彼らはそれを「許容できるずさんな」と呼んでいます。彼らはあなたが仮説を導き出すだけで、後で帰納法によって正しいことが証明されると仮定しているので、これは彼らの文脈では問題ありません。彼らは危険について言及している(4.6)。4.6.2では、それらは証明を提供しますが、それは高レベルであり、どのような制限を設ける必要があるかを明示的に述べていません。だから、それは「数学が通過するようなT」のようなもののようで、私は主にfが「素敵な」Θクラスを持つことを必要とすると思う。TTfΘ
— ラファエル

一般的な場合、同様のサイズを持っていない場合、マスター定理の一般化であるAkra–Bazziメソッドを使用できます。特定の関数をこの定理で機能するものに変更するには、ちょっとしたトリックが必要です。これは通常、時間の複雑さを証明するために人々が使用しているものです。

回答:


10

この答えを通して、とTは負でないと仮定します。証明は、単調なgに対してf = Θ (g )のときはいつでも機能します。これには、f = Θ (n )であるMergesortの例と、多項式成長率(またはΘ (n a log b n )でさえある関数)が含まれます。fTf=Θ(g)gf=Θ(n)Θ(naログb⁡n)

最初に、が単調な非減少である場合を考えてみましょう(この仮定は後で緩和します)。私たちはあなたのサンプル再発に集中 T (N )= T (⌊ N / 2 ⌋ )+ T (⌈ N / 2 ⌉ )+ F (N )。 この繰り返しには、T (0 )とT (1 )の 2つの基本ケースが必要です。私たちは、その仮定を作るT (0 )f

T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+f(n)。
T(0)T(1)私たちも後にリラックスし、。T(0)≤T(1)

は単調な非減少であると主張します。我々はそれを完全な誘導によって証明T (N + 1 )≥ T (N )。これがために与えられ、N = 0、そうしましょうN ≥ 1。我々は持っている T (N + 1 )T(n)T(n+1)≥T(n)n=0n≥1 これはことを意味 T(2⌊ログ2 N⌋)≤T(N)≤T(2⌈ログ2 Nを⌋)。 その場合はT(2

T(n+1)=T(⌊(n+1)/2⌋)+T(⌈(n+1)/2⌉)+f(n+1)≥T(⌊n/2⌋)+T(⌈n/2⌉)+f(n)=T(n).
T(2⌊log2⁡n⌋)≤T(n)≤T(2⌈log2⁡n⌋).
、完了です。2のべき乗の解の形式が T (n )= Θ (n a log b n )の場合、これは常に当てはまります。T(2m)=Θ(T(2m+1))T(n)=Θ(nalogb⁡n)

それでは、という仮定をリラックスさせて。T '(0 )= T '(1 )= min (T (0 )、T (1 ))のみとまったく同じ方法で定義された新しい再発T 'を考えます。私たちは、その誘導によって証明することができますT "(N )≤ T (N )T(0)≤T(1)T′T′(0)=T′(1)=min(T(0),T(1))T′(n)≤T(n)。同様に、我々は、新しい再発定義することができるを満足Tの"(0 )= T "(1 )= 最大値(T (0 )、T (1 ))、その後、T (N )≤ T "(nは)。マスター定理を呼び出すと、T ′ = Θ (h )およびT ″ = Θ (T″T″(0)=T″(1)=max(T(0),T(1))T(n)≤T″(n)T′=Θ(h)のために同じ関数 Hなど T = Θ (H )も同様。T″=Θ(h)hT=Θ(h)

ここで、が単調であるという仮定を緩和しましょう。ある単調関数gについてf = Θ (g )と仮定します。したがって、C G (N )≤ F (N )≤ C G (N )いくつかのために、C 、C > 0およびnは十分な大きさ。簡単にするために、n = 0と仮定します。一般的なケースは、前の段落のように処理できます。ここでも、2つの繰り返しT ′を定義しますff=Θ(g)gcg(n)≤f(n)≤Cg(n)c、C>0nn=0(それぞれ f)を c g 、C gに置き換えます。もう一度、マスター定理は同じ結果(定数倍まで)を与えます。これは、2のべき乗のみで元の再帰を解くことによって得られるものと同じ(定数倍まで)です。T′、T″fcg、Cg


1
T(2m)∈Θ(T(2m+1))T

cgfCgc<1

f=Θ(nα)gf=Θ(nαログβ⁡n)gfgf=Θ(g)
— ユヴァルフィルマス

gf:n↦2ngcgCg

まだ技術的だと思います。あなたが心配している状態は技術的な状態です。実際に表示されるほとんどの機能では、条件が保持されます。上記の証明スケッチが通過する最も一般的な条件を求めています。それは私が答えるのが面倒だという興味深い質問です。
— ユヴァルフィルマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.