タグ付けされた質問 「randomized-algorithms」

入力だけでなく乱数のソースによっても動作が決定されるアルゴリズムに関する質問。

1
ランダム分割による選択のための鋭い集中?
アレイ内のメジアン要素を発見するための通常の単純なアルゴリズムの数です。nAAAnnn から要素を置き換えてサンプルする A Bn3/4n3/4n^{3/4}AAABBB ソートとランクを見つける要素との| B | ± √BBB lrB|B|±n−−√|B|±n|B|\pm \sqrt{n}lllrrrBBB そのチェックと中央値の反対側にあるとせいぜいがあることの要素との間のといくつかの適切な定数を。これが起こらない場合は失敗します。R A C √lllrrrAAA AlrC>0Cn−−√CnC\sqrt{n}AAAlllrrrC>0C>0C > 0 それ以外の場合は、の要素をと間で並べ替えて中央値を求めます。L個のRAAAlllrrr これが線形時間で実行され、高い確率で成功することを確認するのは難しくありません。(すべての悪いイベントは、二項式の期待から大きく逸脱しています。) クイックソートを見た生徒に教えるのがより自然な同じ問題の代替アルゴリズムは、ここで説明するものです。ランダム化された選択 これが線形の予想実行時間を持っていることも簡単にわかります。「ラウンド」は、1/4から3/4の分割が行われたときに終了する再帰呼び出しのシーケンスであり、予想される長さがラウンドの最大数は2です(ラウンドの最初のドローでは、アルゴリズムが説明されているように、ラウンドの長さが幾何ランダム変数によって支配されるため、ラウンドが適切に分割される確率は1/2になり、その後実際に増加します。) だから今の質問: ランダム化された選択が高い確率で線形時間で実行されることを示すことは可能ですか? 我々はラウンドを、各ラウンドは少なくとも長有する確率で最大で結合した組合が実行時間であることを与えるので、確率。k 2 − k + 1 O (n log log n )1 − 1 / O (log n )O(logn)O(log⁡n)O(\log n)kkk2−k+12−k+12^{-k+1}O(nloglogn)O(nlog⁡log⁡n)O(n\log\log n)1−1/O(logn)1−1/O(log⁡n)1-1/O(\log n) これはちょっと物足りないですが、本当ですか?

1
ランダム化された溶融可能なヒープ-期待される高さ
ランダム化された融合可能なヒープには操作「meld」があり、それを使用して、挿入を含む他のすべての操作を定義します。 問題は、ノードを持つツリーの予想される高さは何ですか?nnn Gambin and Malinkowskiの定理1、ランダム化された融合可能な優先キュー(Proceedings of SOFSEM 1998、Lecture Notes in Computer Science vol。1521、pp。344–349、1998; PDF)は、この質問に対する答えを証明とともに示しています。しかし、なぜ書き込めるかはわかりません: E[hQ]=12((1+E[hQL])+(1+E[hQR])).E[hQ]=12((1+E[hQL])+(1+E[hQR])).\mathbb{E} [ h_Q] = \frac{1}{2} ((1 + \mathbb{E}[h_{Q_L}]) + (1 + \mathbb{E}[h_{Q_R}]))\,. 私にとって木の高さは hQ=1+max{hQL,hQR},hQ=1+max{hQL,hQR},h_Q = 1 + \max\, \{ h_{Q_L}, h_{Q_R}\}\,, これは次のように拡張できます。 E[hQ]=1+E[max{hQL,hQR}]=1+∑kP[max{hQL,hQR}=k].E[hQ]=1+E[max{hQL,hQR}]=1+∑kP[max{hQL,hQR}=k].\mathbb{E} [ h_Q] = 1 + \mathbb{E}[\max \,\{ h_{Q_L}, h_{Q_R}\}] = 1 + \sum …

2
コインフリップコンパレーターを使用するときにランダムな順列を返す「並べ替え」アルゴリズムはありますか?
標準の検索アルゴリズムで使用されるコンパレーターが公平なコインフリップで置き換えられたときに実行時間が変更されるかどうかを質問者が知りたいというこの質問と、Microsoftの均一な順列ジェネレーターの書き込みの顕著な失敗に触発されて、私の質問はこうです: コンパレータの実装に応じて、比較に基づく並べ替えアルゴリズムはありますか? 真のコンパレータを使用する場合、要素を並べ替えられた順序で返します(つまり、比較は、標準の並べ替えアルゴリズムで期待されることを行います) コンパレーターが公正なコインフリップで置き換えられたときに、要素の一様にランダムな順列を返します(つまりx < y = true、xとyの値に関係なく、確率1/2で返します)。 並べ替えアルゴリズムのコードは同じでなければなりません。変更が許可されるのは、比較「ブラックボックス」内のコードのみです。

3
PP定義とBPP定義の違いの具体的な理解
PPとBPPの定義方法について混乱しています 。が言語の特性関数であると仮定します。Mは確率的チューリングマシンです。次の定義は正しいですか:BPP = \ {\ mathcal {L}:Pr [\ chi(x)\ ne M(x)] \ geq \ frac {1} {2} + \ epsilon \ quad \ forall x \ in \ mathcal {L}、\ \ epsilon> 0 \} PP = \ {\ mathcal {L}:Pr [\ chi(x)\ ne M(x)]> \ frac {1} {2} \}Lχχ\chiLL\mathcal{L} P …

1
3SATのランダム化アルゴリズム
3SATを指定すると、(期待どおりに)句の少なくとも7/8を満たす割り当てを生成する非常に単純なランダム化アルゴリズムがあります。ランダム割り当てを選択します。ランダム割り当ては、各句を確率7/8で満たします。したがって、期待値の線形性は、ランダム割り当てによって満たされる句の期待される割合が7/8であることを示します。 これは決定論的な方法で行うことができますか?もしそうなら、なぜランダム化アルゴリズムに興味があるのですか?

3
算術*式*の多項式同一性テストは簡単ではありませんか?
多項式同一性テストは、co-RPにあることがわかっているがPにはないことがわかっている問題の標準的な例です。算術回路では、二乗を繰り返すことで多項式の次数を指数関数的に大きくできるため、実際には難しいように見えます。この質問は、これを回避し、問題をランダム化された多項式時間に保つ方法の問題に対処します。 一方、問題が最初に提示されたとき(例:ここ)は、定数、変数、加算、乗算のみを含む算術式でよく示されます。そのような多項式は、入力式の長さで最大でも多項式であり、そのような多項式の場合、出力値のサイズは入力値のサイズの多項式です。しかし、次数多項式は最大で根を持つので、これは簡単なことではありませんか?任意の有理数に対して多項式を評価するだけですdddddd d+1d+1d + 1点を区別し、各点で結果がゼロかどうかを確認します。これには多項式の時間しかかかりません。これは正しいです?もしそうなら、なぜ問題の難しさを共有することが不可欠なのに、共有部分式のない算術式が例としてよく使われるのですか?

2
平方根関数を使用しての形式の素数性をテストするための効率的なアルゴリズムはありますか?
私が読んでいたCLRSを、それがあればことを示すように求めフォームの素数である及び平方剰余した後、の平方根である(一方は容易ことを示すことができますは平方根です)。p pp4 k + 3 4k+34k+3a aaa k + 1ak+1a^{k+1} a − ka−ka^{-k} 以前の事実を使用していて、(必ずしも素数である必要はない)の形式の数があることを知っているかどうか疑問に思っていたので、平方根関数を使用して(何か?)異なる素数性テストがあるかもしれません(つまり、)。N = 4 k + 3 N=4k+3N = 4k+3N NNS Q R T N(a )= a k + 1SQRTN(a)=ak+1SQRT_N(a) = a^{k+1} だから私が考えたアルゴリズムは次のとおりです: 二次残差(QR)(a ^ {\ frac {p-1} {2}} \ equiv 1 \ pmod pが成り立つかどうかを確認することでこれを簡単に行うことができます)。QRを取得したら、a ^ {k + …

1
並行して最大独立セットを見つける
グラフで、次のプロセスを実行します。G (V、E)G(V,E)G(V,E) 最初、すべてのノードは色付けされていません。VVV には色付けされていないノードがありますが、色付けされていない各ノードは次のことを行います。 VVV ランダムな実数を選択し、それを近隣のすべてに送信します。 その数を近隣の数と比較します。自分の数が厳密に最小の場合、隣人は自分自身を赤く塗りつぶし、隣人に通知します。 隣人が赤くなった場合、このノードは自分自身を黒く塗ります。 例えば: グラフがabcdeというパスであるとします。 最初のステップの数値が次のとおりであるとします:1-2-0-3-4。 ノードaとcは赤く塗られています。ノードbとdは黒く塗られています。 2番目のステップでは、ノードeのみが未着色のままです。最小限に抑えられているため、赤く塗りつぶされます。 私の質問は:すべてのノードが色付けされる前にこのプロセスが実行する平均ステップ数は何ですか? 私の現在の計算では、推定が導かれますが、これは真実であるにはあまりにも良すぎるようです。ここに計算があります:O (1 )O(1)O(1) d個の隣接ノードを持つノードを考えます。vがその近傍の中で最小になる確率は、1 /(d + 1 )です。これが発生した場合、vとそのすべての近傍が色付けされます。したがって、各ステップで色分けされる頂点の予想数は、(d + 1 )/(d + 1 )= 1ノードあたり1です。したがって、各ステップで色分けされる頂点の予想される総数はO (n )なので、O (1vvvdddvvv1 /(d+ 1 )1/(d+1)1/(d+1)vvv(d+1)/(d+1)=1(d+1)/(d+1)=1(d+1)/(d+1)=1 O(n)O(n)O(n)すべてのノードが色付けされる時間。O(1)O(1)O(1) この分析が間違っている場合(おそらくそうです)、実際のステップ数はいくつですか? 編集:@JukkaSuomelaによって指摘されているように、上記のアルゴリズムはMetivier et al、2011によるものであり、これらの講義ノートで説明および分析されています。彼らは、実行時間がことを証明します。O(logn)O(log⁡n)O(\log n) しかし、私はまだこの分析がタイトであると確信していません。チェックしたすべてのグラフで、アルゴリズムは予想時間内に完了したようです。O(1)O(1)O(1) 私の質問は今です:このアルゴリズムが実際に平均でステップを必要とする最悪の場合のグラフは何ですか?O(logn)O(log⁡n)O(\log n)

1
グラフ内のすべての2ホップ近傍リストを見つけるアルゴリズム
グラフ場合、| V | = n。Vのすべてのノードのすべての2ホップ近傍リストのコレクションを生成するための高速アルゴリズムとは何ですか。G = (V、E)G=(V,E)G = (V,E)| V| =n|V|=n|V| = nVVV 簡単に言えば、でそれを行うことができます。行列のべき乗では、Strassenアルゴリズムを使用してO (n 2.8)でそれを行うことができます。別の行列乗算アルゴリズムを使用すると、これよりも優れた処理を行うことができます。より良い方法はありますか?ラスベガスのアルゴリズムはありますか?O (n3)O(n3)O(n^3)O (n2.8)O(n2.8)O(n^{2.8})

2
ランダム化されたアルゴリズムは建設的ですか?
から、確率論的方法による証明は非建設的であるとよく言われます。 ただし、確率論的手法による証明は、実際にランダム化されたアルゴリズムを設計し、存在を証明するために使用します。Rajeev Motwani、Prabhakar Raghavanによるランダム化アルゴリズムの p103から引用: 確率的方法による証明は、ランダム化されたアルゴリズムと見なすことができます。この場合、特定の実行でアルゴリズムが適切なパーティションを見つけられない確率を制限する、さらなる分析が必要になります。確率論的方法の思考実験とランダム化アルゴリズムの主な違いは、それぞれがもたらす結果です。確率的方法を使用する場合は、組み合わせオブジェクトが存在することを示すことのみに関心があります。したがって、好ましいイベントがゼロ以外の確率で発生することを示すことに満足しています。一方、ランダム化されたアルゴリズムでは、効率は重要な考慮事項です-非常に小さな成功確率は許容できません。 したがって、ランダム化されたアルゴリズムは、建設的なものではないと見なされていますか? アルゴリズムまたは証明はどのように「建設的」に定義されていますか? ありがとう!

1
不満足なインスタンスのランダムな再起動
最悪の場合、ブール充足可能性(P!= NPと仮定)には指数関数的な時間がかかります。それにもかかわらず、DPLLのバリアントを使用する最新のSATソルバーは、実際に役立つのに十分なインスタンスを解決できます。 使用されている1つの手法は、実際に良い結果を示しており、ランダム再起動です。直感的に、ランダムに再起動するということは、適切な変数の割り当てを推測して幸運になる可能性があることを意味します。 同じ直感は、問題のインスタンスが実際に満足できる場合(したがって、ソリューションを構成する一連の変数の割り当てを推測するだけでよい場合)がそうでない場合よりもはるかに効果的であることを示唆しています(したがって、原則として可能な限りすべてをチェックする必要があります)とにかく、割り当ては、少なくとも初期の推測に明らかに影響されない、単位伝播や非時系列バックトラックなどの手法でスキップできる検索空間のモジュロセクションです。 2番目の直感は正しいですか?問題のインスタンスが実際に満足できる場合、ランダム再起動は実際には平均してはるかに効果的ですか?

3
疑似乱数ジェネレータのワンタイムパッドの問題
私はクラスで暗号化を学び始め、キー(一様に合意された)がメッセージ自体と同じ長さであるワンタイムパッドに遭遇しました。次に、メッセージをビットに変換し、を実行して暗号テキストを取得します。これによりメッセージが暗号化され、メッセージを復号化するには、暗号ビットとキービットでを実行します。XORXORXORXORXORXOR 次に、より効率的なワンタイムパッドを作成するために、元のキーがビット長である(そしてメッセージと同じ長さである必要はない)疑似乱数ジェネレータを使用します。次に、キーをジェネレーターに入れて、疑似乱数を取得します。しかし、それは疑似ランダムなので、送信者と受信者は異なるキーを取得しませんか?次に、同じ鍵がない場合、受信者はどのようにしてメッセージを復号化できますか?nnn

2
ランダム性が問題になるのはなぜですか?(つまり、なぜ無作為化を気にするのですか?)
私はP対NPに関するアーロンソンの調査を読んでおり、CS理論では、人々は P対BPPなどの非ランダム化の結果に本当に関心があることを理解するようになりました。私の質問は、ランダム性の問題は何ですか?アルゴリズムが多項式数のランダムビットのみを必要とすることがわかっている場合は、物理学者にビットを取得するよう依頼してください。これは、扱いやすい数のビットしか必要ないので問題ではありません。チューリングマシンテープとあなたは良いです!複雑性理論の目標は、この宇宙で計算できることを理解することです。さて、この宇宙にはランダム性がありますよね?では、なぜ無作為化を気にするのでしょうか?理論的および実用的な答えはどちらも歓迎です。

1
最小限の引き出しの動きで、順序付けられていないアイテムの山を引き出しに分類する
しばらく前、私は夜遅くに洗濯をしていました。洗濯物を寮に持ち帰ると、片付け始めました。 私のワードローブは次のように設定されています: 私の引き出しは、持っている衣類の種類によって分類されており、私はそのことに非常にこだわっています。これは、パンツの引き出しにTシャツを入れられないことを意味します(それ以外の場合は、毛羽立ちすぎて寝ることができません)。もちろん、私はこの分類を知っており、暗闇の中でもどの引き出しがどれであるかを知っています。 私はきれいな洗濯物を個持っており、引き出しが縦に並んでいます(引き出しの一番上が)NNNMMMD0D0D_0 引き出しは開閉可能ですが、引き出しが開いていると、衣類を引き出し入れることができません(ブロックされているため)。D私DiD_iDi + 1Di+1D_{i+1}D私DiD_i 部屋に入ると、引き出しはすべて閉じています。 終了したら、開いている引き出しをすべて閉じなければなりません。 私は思いやりのある紳士で、ルームメイトを起こしたくありません(これは大学の寮だったので、同じ部屋で寝ていました)。私はライトをオンにしないで、できるだけノイズを少なくすることにしました。 これは、以下の制約の下で洗濯物を片付けなければならないことを意味します。 洗濯物が見えないので、引っ張った瞬間に何を掴んでいるか分からない。 引き出しを開閉すると音がします。ランドリーバッグからアイテムを引き出したり、実際に引き出しに入れたりしても、そうはいきません。 一度に片方の衣類しか片付けることができません。床が汚れすぎて手が届かない家具のスペースがないので、私は服のように折りたたんで積み重ねることができません(それからそれらの積み重ねを置きません)。 衣類をバッグに入れて別のアイテムを取り出すことはできますが、次に取り出すのは、入れたばかりのアイテムである可能性があります(バッグから何を取り出すかは制御できません)。 このことから、3つの質問があります。 引き出しの開閉をできる限り少なくするために、洗濯物をどのように片付けることができますか? 他の誰かがこの問題または同様のことを考えましたか? この問題には実用的な用途がありますか?

1
ヒントが必要です!KargerのアルゴリズムとKruskalのスパニングツリー分布
G =(V、E)を、n個の頂点とm個のエッジを持つ単位容量グラフとします。 TがGのすべての全域木を表すとしましょう。 Kargerのアルゴリズムを実行すると、収縮したエッジによって形成されたTのランダムスパニングツリーが得られます。このスパニングツリーの分布をD1で表します。 一方、(0,1)のランダムな重みを各エッジに割り当て、クラスカルのアルゴリズムを使用して最小全域木を計算すると、T上の別の分布D2が得られます。 分布D1とD2が同一であることを示します。 どこから始めればいいのかわかりません。ヒントは役に立ちます!

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