√nをパラメーターとして使用して再帰関係を解く


18

再発を考慮する

T(n)=n⋅T(n)+cn

以下のための、いくつかの正の定数を有する、および。c T (2 )= 1n>2cT(2)=1

再発を解決するためのマスター定理は知っていますが、それを使用してこの関係をどのように解決できるかはわかりません。平方根パラメーターにどのようにアプローチしますか?


5
ここでは、マスター定理は適用されません。はとして記述できません。他に何を試しましたか? nnnb
— ラファエル

@Raphael:置換メソッドを試しましたが、どの値を代入するかを選択する必要があります。
— シーカー

1
「繰り返しを数回展開し、パターンを観察し、解決策を推測し、それを証明する」のはどうですか。
— ラファエル

さて、これはこのタイプの最初のアイブです。おそらくここでいくつかの助けがあれば、自然の将来の問題を簡単に解決するのに役立つでしょう。
— シーカー

マスター定理について言及しているので、漸近境界についてこの関係を解く必要があり、閉じた形の式は実際には必要ないと仮定します。以下に示すように、閉じた形式の式を見つけるには、漸近的な複雑さを与える優れたソリューションがいくつかあります。ただし、漸近的な複雑さのみが必要な場合、分析はより簡単です。あなたの問題のインスタンスのための素敵な直感的な解決策で、漸近的な複雑さを見つけることについての良い説明のためにここを見てください。
— Paresh

回答:


9

ラファエルの提案を使用して、再発を展開します。以下では、すべての対数は底2です。

β(n)β(n)=loglognn

T(n)=n1/2T(n1/2)+cn=n3/4T(n1/4)+n1/2cn1/2+cn=n7/8T(n1/8)+n3/4cn1/4+2cn=n15/16T(n1/16)+n7/8cn1/8+3cn…=n2T(2)+cnβ(n).
ここで、は、nで始まり2に達するまでに平方根を取る必要がある回数です。これは、ことがわかり。どうやってそれを見ることができますか?考えてみましょう: したがって、2に到達するために平方根を取る必要がある回数が解です。、β(n)β(n)=log⁡log⁡n1
n=2log⁡nn1/2=212log⁡nn1/4=214log⁡n…
ログログNCNログログのn+112tlog⁡n≈1log⁡log⁡n。したがって、再帰の解決策はです。これを完全に厳密にするには、置換メソッドを使用し、四捨五入の方法に非常に注意する必要があります。時間があれば、この計算を答えに追加しようとします。cnlog⁡log⁡n+12n

「平方根回取得する必要があり」-初心者が見ることができるものですか?また、結果はYuvalに適合しません。漸近的にのみ意図されていますか?log⁡log⁡n
— ラファエル

@Raphael:Yuvalはエラーを犯しましたが、現在は修正しています。答えで平方根を説明します。
— ピーターショー

3
もう一つのアイデアは、再帰がかかることを確認します以下の通りである:の平方根を取ることによってあなたはのバイナリ表現に必要な桁数半減。したがって、入力にはビットが必要であり、再帰のすべてのレベルでワードサイズを2で除算します。したがって、ステップ後に停止します。n n w = log n log w = log log nO(log⁡log⁡n)nnw=log⁡nlog⁡w=log⁡log⁡n
— A.シュルツ

10

あなたのコメントの中で、あなたは置換を試みたが動けなくなったと述べました。これが機能する派生です。動機は、右側の乗数を取り除き、ようなものを残したいということ。この場合、物事は非常にうまく機能します: U(n)=U( √nU(n)=U(n)+something

、LG√

T(n)=n T(n)+nso, dividing by n we getT(n)n=T(n)n+1and letting n=2m we haveT(2m)2m=T(2m/2)2m/2+1
では、ログへの変更()。ましょう ああ!これは、解よく知られている再帰です に 戻ると、(および)で、 したがって S (M )lg⁡n=(1/2)lg⁡n S(m)=Θ(lgm)T(
S(m)=T(2m)2mso our original recurrence becomesS(m)=S(m/2)+1
S(m)=Θ(lg⁡m)
n = 2 m m = lg n T (n )T()n=2mm=lg⁡nT (n )= Θ (n
T(n)n=Θ(lglg⁡n)
T(n)=Θ(nlglg⁡n)。

6

と書くと、ます。T (m )= mm=log⁡n T(m)=m2⋅T(m2)+c⋅2m 

これで、再帰ツリーの順序がさであることがわかり。各レベルでを確認するのは難しくないため、合計実行時間は終了、のため。O(log⁡m)O(2m) O((log⁡m)⋅2m) O(n⋅log⁡log⁡n) n

結局、またはが表示されている場合は、対数をチェックするのに適しています。nnab,a<b 

PS:確かな証拠には、それらをスキップして詳細を含めるべきです。


2

に対するRaphaelの提案に従いましょう: n=22k

T(n)=T(22k)=22k−1T(22k−1)+c22k=22k−1+2k−2T(22k−2)+c(22k+22k)=⋯=22k−1+2k−2+⋯+20T(220)+c(22k+22k+⋯+22k)=22k−1+ck22k=(clog⁡log⁡n+1/2)n.

編集:ピーター・ショーに訂正してくれてありがとう!


22k…

22k

22knT(2)

1
この繰り返しが実際にアルゴリズムに由来する場合、おそらく ます。T(n)=⌈n⌉T(⌈n⌉)+cn
— ピーターショー

1

次のように繰り返しを1回解きます:

T(n)=n T(n)+n=n1/2(n1/4 T(n1/4)+n1/2)+n=n1−1/4 T(n1/4)+2n.

ステップの続けると、次の。 k

T(n)=n1−1/2kT(n1/2k)+kn.

これらのステップは、の基本ケースまで続きます。を解くと:n1/2k=2k

n1/2k=2⟹log⁡n=2k⟹k=log⁡log⁡n.

解かれていない再帰にを代入すると、 T (n )= nk=log⁡log⁡n

T(n)=n2T(2)+nlog⁡log⁡n.

2
画像をMathJaxに書き換えてもらえますか?答えとしてテキストを使用した画像はお勧めしません。
— 悪

1
@PKGでは、編集内容が若干異なるようで、手順を説明している場合もありますが、おそらく自分で答えることができます。
— 悪
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.