ランダム化された再帰アルゴリズムを分析する方法は?


8

次のアルゴリズムを考えます。ここで、は固定定数です。c

void partition(A[1..m], B[1..n])
{
   if m=1 or n=1
      return

   k = random(min(c,m,n));
   partition A into k sublists Asub[1..k] at k-1 distinct random indices
   partition B into k sublists Bsub[1..k] at k-1 distinct random indices

   for i = 1 to k
     for j = 1 to k
        partition(Asub[i], Bsub[j])

   Do something that takes O(n+m) time.
}

このアルゴリズムの予想実行時間はどれくらいですか?実行時間はO(mn)ですが、その証拠は見つかりません。

代わりに、入力リストを等しい長さの異なる部分に分割した場合、次のようにして、繰り返しなります。基本ケース ; あることを証明することは難しくありません。しかし、アルゴリズムは入力 をランダムなサイズのランダムな数の部分に分割します。(いつものように、「ランダム」は「一様にランダムに」の省略形です。)そのようなアルゴリズムをどのように分析しますか?T n m = k 2kT 1 n = T m 1 = O 1 T n m = O m n T(n,m)=k2T(n/k,m/k)+O(n+m)T(1,n)=T(m,1)=O(1)T(n,m)=O(mn)


パーティションと呼ばれるアルゴリズムのタイプは リスト- >aリストは- >のボイドが、アルゴリズムのあなたの最後の呼び出しで、それはタイプを持っているように私には思えますa - >a - >ボイド?私は何かを誤解していますか?a
Gopi

8
質問の記述は不十分ですが、その下には、ランダム化された再発の分析に関する真の質問があります。
Suresh Venkat

5
主な編集。うまくいけば、私は質問の意味を保存できました。
Jeffε

1
@Jɛff E今すぐ回答してください:)
Suresh Venkat

1
確率的な再発に関するChaudhuri-Dubhashiの論文(これにより、この問題に関するKarpのオリジナルの研究がさらに発展しました)をご覧になりましたか
Suresh Venkat

回答:


9

このアルゴリズムが予想される時間と高い確率。O(nm)

最初のアルゴリズムを検討するように改変に選択され、{ 2 3 C N }に代えて、ランダムに{ 1 2 min c n }k{2,3,..,min(c,n)}{1,2,...,min(c,n)}

補題1. この変更されたアルゴリズムでは、アルゴリズムのランダムな選択に関係なく、時間は常にO(nm)

証明。 入力およびB [ 1 .. m ]を修正し、アルゴリズムのランダムな選択を任意に修正します。partition()への(再帰的な)呼び出しごとに、2つの引数はそれぞれ2つのサブ配列に対応しますサブ配列A [ i 1I 2 ]A及びサブアレイ B [ J 1J 2 ]B。長方形でそのような呼び出しを識別します [ i 1 1A[1..n]B[1..m]A[i1..i2]AB[j1..j2]B。したがって、最上位の呼び出しは [ 0 n ] × [ 0 m ]であり、各再帰呼び出しはこの n × mの長方形内のサブ長方形に対応します。これらの長方形はツリーを形成し、1つの呼び出しに対応する長方形は、その呼び出しによって直接行われた呼び出しに対応する長方形を子として持っています。各親長方形はその子長方形で分割され、 k × kを形成します[i11,i2]×[j11,j2][0,n]×[0,m]n×mk×kが少なくとも2の(不均一な四角形の)グリッド。もちろん、各四角形の角には整数座標しかありません。k

アルゴリズムの実行時間は、これらのすべての長方形の外周の長方形の合計の定数倍に制限されます。(これは、各呼び出し内の時間がO(n + m)であり、対応する四角形の境界がです。)2(n+m)

上記の長方形のセットでは、周囲の長さの合計は最大で。真であれば、これは補題を証明します。12nm

ので、主張を証明するために、最初にその観察、任意の親矩形の、親の周囲は子供たちのほとんど2/3回総周囲長です。(親の周長は2 n + m です。子の周長の合計は1 + k n + m であり、k > = 2k22(n+m)(1+k)(n+m)k>=2です。)

すべての矩形の合計perimiterが最大であることを標準充電引数で、次のだけの回perimiter 葉の長方形を。(観察があることを意味P Nは2 / 3 P TP Nは非リーフ矩形の総周囲長であり、P Tは全矩形の全周長である。これが意味するPを(1+2/3+(2/3)2+)=3PN(2/3)PTPNPTリーフ矩形の総周囲長です)。、及び P T - P NPT3(PTPN)PTPN

次に、葉の長方形が元の長方形を分割していることを確認します。葉の最大可能周長は、葉が整数の端点を持つ単位正方形に対応する場合に得られます。この場合、葉の総周長はn×m。このように、周囲の合計が最大である 3 4nm、つまり最大 1234nm12nm

これは補題1を証明します。

結果: 元のアルゴリズムは予想される時間。O(nm)

証明。パーティションが選択した場合、長方形を複製するだけです。以来、N > 1、確率K = 1が最も1/2です。したがって、各長方形が複製されると予想される回数は最大で1回です(各長方形のコピーの予想される回数は最大で2回です)。したがって、元のアルゴリズムの場合、すべての長方形の境界線の予想合計は、修正されたアルゴリズムの最大2倍、つまり最大24 nk=1n>1k=1。そのアルゴリズムの分析と同様に、実行時間はこの合計に比例し、 O n24nm。QEDO(nm)

当然です。 上限も高い確率で保持されます(mの両方が無限大になる傾向があると仮定)。nm

証明スケッチ。各矩形の複製の数を除いてすべてのランダムな選択を固定時間はに比例し、 ここで、Rは生成された長方形のセット、X rrが複製された回数(つまり、その長方形に対してk = 1のときの回数)、| r | rの周長

rR(1+Xr)|r|
RXrrk=1|r|r

変数は、独立しており、それぞれ| r | O n + m = o n m なので、標準のチャーノフの境界により、合計が期待値の2倍を超える確率はo 1 です。(より具体的には、Y r = 1 + X r| r | / 2 n +{Xr:rR}|r|O(n+m)=o(nm)o(1)、次に Y rの合計にChernoffを適用します。)QEDYr=(1+Xr)|r|/2(n+m)Yr


余談として:アルゴリズムが選択した場合ランダムにまでN M の代わりにC N 、次に行うO M N (代わりに、各コールで作業OをM + N ) 、合計時間は予想でまだO m n です。kmin(n,m)min(c,n)O(mn)O(m+n)O(mn)

証明。最初に、合計時間はすべての長方形の面積の合計に比例することに注意してください。この和は、整数座標上に、合計に等しいこと矩形の数、I jはで発生する。これはO N M 、期待に任意に与えられたので、期待してI J 元の長方形ではO 1 )の長方形で発生します。 (i,j)(i,j)O(nm)(i,j)O(1)

これを確認するには、仮定矩形に含まれるR、そして上のパーティションへの呼び出しを検討Rを。ましょうQ R = N RM R。してみましょうrは(含む子である長方形でI J の)R。確率で少なくとも1 / 3はkは少なくともように選択される2 / 3(i,j)rrq(r)=min(nr,mr)r(i,j)r1/3k。その上に条件付け、 E [ Q R '] 3 / 2、したがって一定の確率と Q rは'そのような場合、最も1にあり、その後、 rは'(子を持たない)の葉です。これから、i j が含まれる長方形の予想数は O 1 )になります。QED(2/3)q(r)E[q(r)]3/2q(r)r(i,j)O(1)

範囲が高い確率で成立するかどうかは興味深い質問です。確かにそうだと思います。確かにO n m log n m はwhpを保有します)O(nm)O(nmlog(nm))


どうもありがとうございました。これは本当に興味深い賢いアイデアです。補足として、d次元配列を分割するためのアイデアを使用できます。ちょうどあなたが子供たちが作っていると述べた部分については実際に彼らが親分け、グリッドをK 2彼らはグリッドを作る文句を言わないので、長方形ではなく、必要に応じて同じサイズの部品の一部を、まだあなたの2 / 3引数はの周囲について成り立ちます子全体の親。また、各実行の追加コストとしてO m + n O m n に置き換えても、O K×KK22/3O(m+n)O(mn)合計実行時間。再度、非常に賢いアイデアをありがとうございました。Oメートル
サイード

どういたしまして!私は..あなたが提起のポイントを明確にするために証拠を編集します
ニール・ヤング

最後に、明確な説明と良い質問をいただき、ありがとうございました。
サイード

4

典型的なアプローチは、アルゴリズムの実行時間の期待値を分析することです。この場合、実行時間の期待値は、の問題で、サブ問題のパーティションの予測実行時間[ A iB j ]のk 2倍のようなものです。各i jについて、副問題のサイズは確率変数です。メートルk2Ai,Bji,j

リストの長さ差であるI TH及びI + 1番目の順序統計k個の要素がからUAR描かれている{ 1 m }。これは本質的にm個のβ K M + K + 1 (すなわち、あるm個の倍延伸β 1 M + K + 1 ランダム変数)。したがって、Aiii+1k{1,...,m}mβ(k,m+k+1)mβ(1,m+k+1)

T[m,n|k]=C(m+n)+k2x,yT(mx,ny)xk1yk1(1x)m+k1(1y)n+k1β(k,n+k+1)β(k,m+k+1)dxdy

私たちは本当に持っている必要があるとして、いくつかの丸め誤差は、ここにある積分で。T(mx,ny)

残念ながら、は確率変数なので、それを積分する必要もあります。私が必要とするすべてのポイントがあると思いませんkがnは、あるかのようにK nは、あなたは単に空であってもサブリストにデータを分割します。したがって、k1 cからランダムに一様に選択されたとしましょう。次に、kknknk1,,c

T[m,n]=C(m+n)+k=1ck2cx,yT(mx,ny)xk1yk1(1x)m+k1(1y)n+k1β(k,n+k+1)β(k,m+k+1)dxdy

この繰り返しはかなり恐ろしいですが、T m n = O log m + log n m + n )の範囲について推測がある場合は、次のことができます接続して確認します。T[m,n]T(m,n)=O((logm+logn)(m+n))

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