マスター定理に規則性条件があるのはなぜですか?


15

Cormenらによるアルゴリズムの紹介を読んでいます。そして、私は73ページから始まるマスター定理の声明を読んでいます。ケース3では、定理を使用するために満たす必要がある規則性条件もあります。

... 3.場合

f(n)=Ω(nlogb⁡a+ε)

いくつかの定数場合、およびε>0

af(n/b)≤cf(n)      [ これは規則性条件です ]

いくつかの定数および十分に大きい場合、..c<1n

規則性条件が必要な理由を誰かに教えてもらえますか?条件が満たされない場合、定理はどのように失敗しますか?


ケースが何であり、規制条件は何であるかを書くことができますか?

3
明確な答えはありませんが、規則性の条件が成り立たない場合、サブ問題が小さいほどますます時間がかかるため、無限の複雑さが得られます。

定理の結論を保持するために規則性条件が必要かどうかはわかりませんが、使用された証明には必要だと思います。規則性の条件を使用すると、かなり単純な証拠が得られますが、少なくとも毛深いことはありません。

回答:


10

厳密な証拠ではなく、「頭の上から」の説明です。

繰り返しをツリーとして想像してください。3番目のケースは、ルートノードが実行時間を漸近的に支配する場合のシナリオを対象としています。つまり、ほとんどの作業は、再帰ツリーの上のmeaslyノードで行われます。次に、実行時間はΘ (f (n ))です。aT(n/b)+f(n)Θ(f(n))

ルートが実際により多くの作業を行うことを確認するには、

。af(n/b)≤cf(n)

これは、(ルートで行われた作業量)が少なくとも下位レベルで行われた作業の合計と同じくらい大きい必要があることを示しています。(再発が呼び出される上回N / B入力の。)f(n)an/b

たとえば、、ルートの下のレベルでの作業は4分の1であり、2回(n / 4 + n / 4 )対nであるため、ルートが優位になります。 。T(n)=2T(n/4)+n(n/4+n/4)n

しかし、関数が規則性の条件を満たさなかった場合はどうでしょうか?例えば、nの代わりに?その場合、下位レベルで実行される作業は、ルートで実行される作業よりも大きくなる可能性があるため、ルートが優位であるかどうかはわかりません。cos⁡(n)n


3
私はあなたの数学のテキストにより良いフォーマットを使用しました。「編集済み」リンクをクリックして、私がしたことを確認できます。
— 十宝

7

a=1b=2

T(2n)=∑k=0nf(2k).
f(n)=Ω(nϵ)ϵ>0f(n/2)≤(1−δ)f(n)δ>0f(n)=n(2−cos⁡n)
f(2n)=22⌊log2⁡n⌋>22log2⁡n−1=2n/2.
Let n=2m+1−1. Then
T(2n)=∑k=0m∑t=2k2k+1−122k=∑k=0m22k+k=Θ(22m+m),f(2n)=22m.
So it's not true that T(2n)=Θ(f(2n)).

There is a more general theorem, Akra-Bazzi, in which the regularity condition is replaced by an explicit quantity that comes into the result.


Sorry for resuming this old answer. Could you clarify why your function f violates the regularity condition?
— Maiaux

Sometimes f(n/2)=f(n).
— Yuval Filmus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.