Cormenらによるアルゴリズムの紹介を読んでいます。そして、私は73ページから始まるマスター定理の声明を読んでいます。ケース3では、定理を使用するために満たす必要がある規則性条件もあります。
... 3.場合
いくつかの定数場合、および
[ これは規則性条件です ]
いくつかの定数および十分に大きい場合、..
規則性条件が必要な理由を誰かに教えてもらえますか?条件が満たされない場合、定理はどのように失敗しますか?
Cormenらによるアルゴリズムの紹介を読んでいます。そして、私は73ページから始まるマスター定理の声明を読んでいます。ケース3では、定理を使用するために満たす必要がある規則性条件もあります。
... 3.場合
いくつかの定数場合、および
[ これは規則性条件です ]
いくつかの定数および十分に大きい場合、..
規則性条件が必要な理由を誰かに教えてもらえますか?条件が満たされない場合、定理はどのように失敗しますか?
回答:
厳密な証拠ではなく、「頭の上から」の説明です。
繰り返しをツリーとして想像してください。3番目のケースは、ルートノードが実行時間を漸近的に支配する場合のシナリオを対象としています。つまり、ほとんどの作業は、再帰ツリーの上のmeaslyノードで行われます。次に、実行時間はΘ (f (n ))です。
ルートが実際により多くの作業を行うことを確認するには、
。
これは、(ルートで行われた作業量)が少なくとも下位レベルで行われた作業の合計と同じくらい大きい必要があることを示しています。(再発が呼び出される上回N / B入力の。)
たとえば、、ルートの下のレベルでの作業は4分の1であり、2回(n / 4 + n / 4 )対nであるため、ルートが優位になります。 。
しかし、関数が規則性の条件を満たさなかった場合はどうでしょうか?例えば、nの代わりに?その場合、下位レベルで実行される作業は、ルートで実行される作業よりも大きくなる可能性があるため、ルートが優位であるかどうかはわかりません。
There is a more general theorem, Akra-Bazzi, in which the regularity condition is replaced by an explicit quantity that comes into the result.