ランダムソートネットワークが機能する確率


14

n入力与えられると、 2つの変数x i、x jをi < jで繰り返し選択し、x i > x jの場合にそれらを交換するコンパレータゲートを追加することによりx0,…,xn−1、mゲートでランダムソートネットワークを構築します。xi,xji<jxi>xj

質問1:固定n、ネットワークが確率> 1で正しくソートされるためには、mがどれだけ大きくなければならないか>12?

少なくとも下限m=Ω(n2log⁡n)があります。これは、連続する各ペアがスワップされることを除いて正しくソートされた入力は、コンパレータとして選択される各ペアに対してΘ(n2log⁡n2)時間かかるためです。それは上限であり、おそらくより多くのlog⁡n因子を持っていますか?

質問2:コンパレータゲートの分布を達成することがありますm=O~(n)、おそらく高い確率で近くのコンパレータを選択することにより?


1
一度に1つの入力を調べ、次にユニオンの境界を調べることで、上限を取得できると思いますが、それはきついとは言えません。O(n3logO(1))
— ダニエル

2
質問2のアイデア:深さソートネットワークを選択します。各ステップで、ソートネットワークのゲートの1つをランダムに選択し、その比較を実行します。後〜O(N )の工程、第一の層内の全てのゲートが適用されているであろう。別の後〜O(N )の工程は、第2の層内の全てのゲートが適用されているであろう。あなたは、これが単調であることを示すことができる場合は、と解決策を得ています(ソーティングネットワークの途中で余分な比較を挿入傷つけることはできません)〜O(nは)O(log2⁡n)O~(n)O~(n)O~(n)平均で合計でコンパレータ。しかし、単相性が実際に成立するかどうかはわかりません。
— DW

2
@DW:単調性は必ずしも当てはまりません。考えてみましょうシーケンス一連の作品。s′はありません(入力(1、0、0)を考慮してください)。アイデアは、(x0、x2)、(x0、x1)
s=(x1,x2),(x0,x2),(x0,x1);s′=(x1,x2),(x0,x1),(x0,x2),(x0,x1).
ss′(x0,x2),(x0,x1)、それは除いて受け取る任意の入力ソート(参照ここに)。の(0,1,0)sその入力が到達できない。「それができます。(x0,x2),(x0,x1)s′
— ニールヤング

3
ネットワークが、各ステップでランダムに2つの隣接変数選択することによって選択されるバリアントを考えます。単調性が保持されるようになりました(隣接するスワップは反転を作成しないため)。DWのアイディア@適用奇偶ソーティングネットワーク持って、n個のラウンドを:奇数ラウンドでは、全ての隣接する対の比較私はそれがすべての隣接する対の比較でもラウンドで、奇数である私はさえあるし。WhpランダムネットワークはO (n 2 log n )比較で正しいです。これはこのネットワークを「含む」ためです。(または何かが足りませんか?)xi,xi+1niiO(n2log⁡n)
— ニールヤング

2
隣接ネットワークの単調:考えると、B ∈ { 0 、1 } Nため、J ∈ { 0 、1 、... 、N }を定義S J()= Σ jのiが= 1、I。言う⪯ BであればS J()≤ S J(B )(∀ Ja,b∈{0,1}nj∈{0,1,…,n}sj(a)=∑i=1jaia⪯bsj(a)≤sj(b)∀j). Fix any comparison "xi<xi+1". Let a′ and b′ come from a and b by doing that comparison. Claim 1. a′⪯a and b′⪯b. Claim 2: if a⪯b, then a′⪯b′. Then show inductively: if y is the result of comparison sequence s on input x、およびスーパシーケンスの結果であるS 'のSにX次に、Y ' ⪯ Y。したがって、yがソートされると、y ′もソートされます。y′s′sxy′⪯yyy′
— ニールヤング

回答:


3

以下は、ビット2ソートに適用されたDWのアイデアに基づいた、質問2の経験的データです。変数について、lg n − kに比例する確率でj − i = 2 kを選択し、ランダムに一様にiを選択してコンパレーター(i 、j )を取得します。これは、nが2のべき乗の場合、ビットニックソートのコンパレータの分布に一致し、そうでない場合は近似します。nj−i=2klg⁡n−ki(i,j)n

この分布から引き出されたゲートの与えられた無限シーケンスについて、多くのランダムなビットシーケンスをソートすることにより、ソートネットワークを取得するために必要なゲートの数を概算できます。ここのためにその推定だ平均引き継い100とゲートシーケンス6400数のを概算するために使用されるビット・シーケンスは: 一致するように見えるΘを(nはログ2のnを)、バイトニックソートと同様の複雑さが。その場合、各ゲートに出くわすクーポンコレクターの問題のために、余分なlog nファクターを消費しません。n<2001006400Approximate number of gatesΘ(nlog2⁡n)log⁡n

強調するために、2 nではなく、予想されるゲート数を概算するためにビットシーケンスのみを使用しています。平均必要なゲートは、その番号の上昇を行いますため、N = 199、私が使用している場合は6400、64000、および640000系列を推計は、14270 ± 1069、14353 ± 1013、および14539 ± 965。したがって、最後のいくつかのシーケンスを取得することは漸近的な複雑さを増加させる可能性がありますが、直感的にはありそうにないように感じます。64002nn=19964006400064000014270±106914353±101314539±965

編集:これはまでの同様のプロットですが、正確なゲート数(サンプリングとZ3の組み合わせで計算)を使用しています。私は2つの電源から切り替えたD = J - I任意にD ∈ [ 1 、n個n=80d=j−ilogn−logdに比例する確率d∈[1,n2]。 Θ(nlog2n)は依然としてもっともらしい。log⁡n−log⁡ddΘ(nlog2⁡n)

Exact numbers of gates


2
いい実験だ!ただし、ここでクーポンコレクターの問題が発生する可能性のある別の方法があります。すべての入力の正確性を検証するために必要なビットシーケンスのごく一部のみをサンプリングしています。このタイプとサイズのランダムネットワークがランダム順列whpをソートすると、実験から(数学的に、もちろん数学的にではなく)結論付けることができるようです。また、このようなランダムネットワークで、あなたが進んで進んでいるすべてのnについて徹底的な2 nテストを行うのを楽しみにしています。(n = 20はそれほど悪くないはずです。使用している言語とハードウェアに応じて、n = 30であってもかまいません)。2n2nnn=20n=30
— ジョシュアグロチョウ

1
正確にはまでは同じように見えますが、それを決定的なものとは見なしません。n=27
— ジェフリーアーヴィング

1
@JoshuaGrochow:までの正確な値を追加しました。n=80
— ジェフリーアーヴィング

1
いいね!ただし、正確なデータへの広がりが拡大しているように見えますが、これはおそらく、余分なファクターを持つ上限を示しています。(つまり、「スプレッド」がlog nの速度で成長している場合)log⁡nlog⁡n
— ジョシュアグロチョウ

1
ええ、余分な要因を排除することはできません。それがあった場合、私は驚かれると思いしかし、我々が持っている80のアップ以来、LG N ≈ 6を、一定のは疑いの近くにある1そう。この時点で、理論が引き継がなければならないと思います。:)log⁡nlg⁡n≈61
— ジェフリーアーヴィング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.