漸近表記の使用におけるエラー


10

次の再発の証拠で何が問題なのかを理解しようとしています

TN2CN

T(n)=2T(n2)+n
T(n)2(cn2)+ncn+n=n(c+1)=O(n)

という帰納的仮説があるため、ドキュメントには間違っていると記載されてい ます。

T(n)cn

2
この形式の繰り返しは、マスター定理を使用して解決することもできます。
Juho

2
@蘭:マスター定理はこの質問にふさわしいタグではないと思います。問題はそれをどのように解決するかではなく、特定の議論の誤りを指摘することです。その上、マスター定理はおそらく具体的すぎて、おそらく独自のタグを持つに値しません。一般的に、可能な答えではなく質問に基づいてタグ付けする必要があります。たとえば、このakra-bazziにタグを付けますか?
Aryabhata

「次の証明の何が問題になっていますか」-証明が表示されません。間違いを見つけるために、完全な証明を書き留める(つまり、帰納法を明示する)ことがしばしば役立ちます。
ラファエル

回答:


12

最終的な目標がを証明することであるとしましょう。導入仮説から始めます。T(n)=O(n)

I < NT(i)ci for all。i<n

証明を完了するには、も示す必要があります。T(n)cn

ただし、推定できるのはであり、証明を完了するのに役立ちません。(ほぼ)すべてに対して1つの定数が必要です。したがって、結論を出すことはできず、は証明されません。c n T n = On T(n)(c+1)ncnT(n)=O(n)

結果と証明プロセスの間で混乱していることに注意してください。そしてもう1つ、は実際にはこの場合のなので、適切な帰納法の仮説を検討してそれを証明することができます。Θ n log n T(n)Θ(nlogn)


c '= c + 1を置き換えると、変更されますか?
Erb

@erb:いいえ、ありません。選択した定数について証明する必要があります。置き換えると、最終的に (または)が得られ、結果は同じになります。T n c + 1 n T n c + 2 nc=c+1T(n)(c+1)nT(n)(c+2)n
パッド

8

いくつかの手順を省略しました。であることを帰納法で証明しようとしているようで、証明は次のようになります。T(n)=O(n)

に対してと仮定します。これは、一部のを意味し。その後、なので、。K < N T K CT(k)=O(k)k<nC T N = 2 T N / 2 + N 2 C N / 2 + N C + 1 T(k)ckcT n = O n T(n)=2T(n/2)+n2cn/2+n(c+1)nT(n)=O(n)

この証明は最初から正しくありません。「 for」は意味がありません。ビッグオーは漸近的な概念です:は、定数としきい値Nが存在することを意味し、ます。そして最後に、「」と結論付けることはできません。これは、関数全体についての何かを示しており、特定の値についてのみ証明したためです。K < N T K = O K C K N T K CT(k)=O(k)k<nT(k)=O(k)c T n = O n T T n kN,T(k)ckT(n)=O(n)TT(n)

意味を明確にする必要があります。おそらくあなたの証明は行くでしょう:O

すべてのと仮定します。次に、です。K < N T N = 2 T N / 2 + N 2 C N / 2 + N C + 1 T(k)ckk<nT(n)=2T(n/2)+n2cn/2+n(c+1)n

これは帰納的なステップを証明していませんから始め、、ことを証明しました。これは弱い境界です。これが何を意味するか見てください:はがの成長率の限界であることを意味し。しかし、が大きくなると、速度も大きくなります。それは直線的な成長ではありません!k = n T k c + 1 T(k)ckk=nT K CT(k)(c+1)kc T c kT(k)ckcTck

よく見ると、 2倍になるたびに、レートがずつ増加します。したがって、非公式に、場合、です。つまり、です。c1km=2pkcm=ck+pck=c0log2k

これは正確にすることができます。そのための誘導により証明、。k1T(k)clog2(k)

回帰関係は、データを線形時間で2つの等しい部分に分割する分割統治アルゴリズムの典型です。そのようなアルゴリズムは、時間で動作します(はありません)。Θ(nlog(n))O(n)

期待される結果が何であるかを確認するには、マスター定理に対して反復関係をチェックします。除算はあり、実行される追加の作業はです。なので、これは増加がである2番目のケースです。2T(n/2)nlog2(2)=1Θ(nlog(n))


7

おそらく私のコメントをより詳細に説明することによってのみ、すでに与えられた答えを拡張しています。

推測は明らかに困難で面倒な場合があるため、より良い方法が存在する場合があります。そのような方法の1つがマスター定理です。繰り返しはの形式になりました。ここでとは定数で、は関数です。この場合、はを意味すると解釈できることに注意してください。厳密に言うと、ため、反復は明確に定義されていない可能性があります。T(n)=aT(n/b)+f(n)a1b>1f(n)n/2n/2n/2整数ではない可能性があります。ただし、再発の漸近的な振る舞いには影響しないため、これは許可されています。したがって、床や天井を落とすと便利なことがよくあります。これの正式な証明は少々退屈ですが、興味のある読者は、例えばCormenらからそれを見つけることができます

この場合、、、ます。これは、ます。マスター定理の2番目のケースは、から適用され、解ます。b = 2 f n = Θ n n log b a = n log 2 2 = n f n = Θ n T n = Θ n log n a=2b=2f(n)=Θ(n)nlogba=nlog22=nf(n)=Θ(n)T(n)=Θ(nlogn)


ありがとう!「床と天井を落とすこと」は、一般的に行われると仮定することに対応することに留意されたい。基本的な観察は、非減少関数の場合、サブシーケンスの漸近的成長はシーケンス全体の漸近的成長に等しいということです。n=2k
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.