確率的ペアワイズスワップからランダム順列を生成する最も効率的な方法は何ですか?


48

私が興味を持っている質問は、ランダムな順列の生成に関するものです。基本的な構成要素として確率的なペアワイズスワップゲートを考えると、要素の一様にランダムな順列を生成する最も効率的な方法は何ですか?ここでは、「確率的ペアワイズスワップゲート」を、各ゲートに対して自由に選択できる確率で選択された要素と間でスワップゲートを実装し、それ以外の場合はアイデンティティを実行する操作とします。nijp

これは通常、ランダム順列を生成する方法ではないことを理解しています。通常、Fisher-Yatesシャッフルのようなものを使用する可能性がありますが、許可された操作が異なるため、これは私が念頭に置いているアプリケーションでは機能しません。

明らかにこれを行うことができます、問題はどれくらい効率的かです。この目標を達成するために必要な確率的スワップの最小数は何ですか?

更新:

Anthony Leverrierは、ゲートを使用して正しい分布を実際に生成する以下のメソッドを提供します。伊藤剛は、コメントで同じスケーリングを使用する別のアプローチを提供します。ただし、これまでに見た中で最も良い下限は、これはとしてスケーリングされ。だから、問題はまだ開いたままです:ができる最善のことです(つまり、より良い下限がありますか?)または、より効率的な回路ファミリはありますか?O(n2)log2(n!)O(nlogn)O(n2)

更新:

いくつかの回答とコメントは、確率が固定されている確率的スワップのみで構成される回路を提案しています。このような回路では、次の理由でこの問題を解決できません(コメントから解除)。12

そのようなゲートを使用する回路を想像してください。次に、確率の計算パスが存在するため、順列は整数kに対して確率で発生する必要があります。ただし、均一な分布の場合、が必要これは書き換えることができます。これは明らかにの整数値のために満たすことができないのためいるので、(場合、ただし。m2mk2mk2m=1n!kn!=2mkn33|n!n332m

更新(賞金を提供しているmjqxxxxから):

提供される賞金は、(1)ゲートが必要であることの証明、または(2)ゲート未満を使用する動作回路です。ω(nlogn)nn(n1)/2


8
@Anthony:明らかではないかもしれませんが、次のことができます。回路が最初の要素の順列の均一な分布を作成すると想像してください。その後、位置と(確率0.5を有する)確率スワップ続くと位置位置のために一様にランダム選択を生成する。これに続いて、最初の要素に再度適用すると、一様にランダムな分布が得られます。Cn1Cn1nnCn1
ジョーフィッツシモンズ

4
わかりました、説明ありがとう!確率的スワップでは、位置と位置間に確率が必要です。n 1 n(n1)/nn1n
アンソニーレベリアー

5
必要なエントロピーに関して、アルゴリズムにはランダムビットはバイナリエントロピー関数です。私はその合計を正確に計算することはできませんが、数学によればです...最適値は少なくともです。h O n log 2n(n1)h(1/2)+(n2)h(1/3)++(nk)h(1/(k+1))++h(1/n)h(.)O n log 2n O(nlog2(n)2)O(nlog2(n))
アンソニーレベリアー

8
これはあなたが望むものとは異なりますが、いくつかの多項式pに対して少なくとも1 / p(n!)の確率ですべての順列を生成するサイズO(n log n)の回路ファミリがあります:サイズOのソーティングネットワークを考えます(n log n)各コンパレータを確率1/2スワップゲートに置き換えます。並べ替えネットワークの正確さのために、すべての順列はゼロ以外の確率で発生する必要があり、これは少なくとも1/2 ^ {O(n log n)} = 1 / poly(n!)です。
伊藤剛

3
元の問題に戻ります。Anthonyが説明したO(n ^ 2)ソリューションは、選択ソートを表すソートネットワーク内の各コンパレータを適切な確率の確率的スワップゲートに置き換えるものと見なすことができます。(詳細)
伊藤剛

回答:


17

上記のコメントで説明した動作アルゴリズムは次のとおりです。

  • 最初に位置確率ランダム要素を持ち込むことから始めます:位置1と2をproba、次に2と3をproba、...とをproba。N 1 / 2 2 / 3 N - 1 N N - 1 / N1/nn1/22/3n1n(n1)/n
  • 同じ手順を適用して、位置ランダム要素を配置します。位置1と2をprobと交換し、次に位置とをprobaと交換します。1 / 2 N - 2 N - 1 N - 2 /N - 1 n11/2n2n1(n2)/(n1)

このアルゴリズムに必要なゲートの数はです。(n1)+(n2)++2+1=n(n1)/2=O(n2)


3
このアルゴリズムは、バブルソートに関連しています。特に、サイズnのすべての順列の状態空間を考慮します。2番目より大きい1番目の要素が1/2である確率は、その確率でスワップします。最初の2つの要素がソートされると仮定します。proba2番目の要素> 3番目の要素2/3などです。したがって、ソートアルゴリズムをスワップゲート回路に変換することが可能です。ステップ。ある意味で、そのような回路を構築するための明示的な非効率的な方法を示唆しています。
mkatkov

16

これは答えでも新しい情報でもありません。ここで、この問題と分類ネットワークの関係についてのコメントで発生した議論を要約しようとします。この投稿では、すべての時間はUTCであり、「コメント」は、特に明記しない限り、質問に対するコメントを意味します。

確率的スワップゲート(2つの値をランダムにスワップする)で構成される回路は、自然にソートネットワークを思い起こさせます。これは、コンパレータ(その間の順序に応じて2つの値をスワップする)で構成される回路に他なりません。実際、現在の問題と分類ネットワークの回路は、次のように互いに関連しています。

  • アンソニーLeverrierによって溶液nがN -1)/ 2の確率スワップゲートは、比較器は、適切な確率を有する確率スワップゲートによって置き換えソートとバブルのソートネットワークとして理解することができます。詳細については、その回答に関する3月10日4:53のmkatkovのコメントを参照してください。選択ソートのソートネットワークも同じ方法で使用できます。(3月7日23:04のコメントで、Anthonyの回路を選択ソートとして説明しましたが、それは正しくありませんでした。)
  • ゼロ以外の確率ですべての順列が必要であり、分布が均一であることを気にしない場合、すべてのコンパレータが確率1/2スワップゲートで置き換えられると、すべてのソートネットワークが機能します。O(n log n)コンパレータで並べ替えネットワークを使用する場合、結果の回路は、3月のコメントで見られるように、少なくとも1/2 O(n log n = 1 / poly(n!)の確率ですべての順列を生成します 7 22:59。
  • この問題では、確率的スワップゲートが独立して起動する必要があります。この制限を取り除けば、3月7日23:08のコメントと3月8日14:07に詳しく説明したuser1749で述べたように、すべてのソートネットワークを均一な分布を生成する回路に変換できます。

これらの事実は、この問題がネットワークのソートに密接に関連していることを明らかに示唆しています。しかし、ピーター・テイラーは、関係があまり近くないかもしれないという証拠を見つけました。すなわち、コンパレータを適切な確率を持つ確率的スワップゲートに置き換えることにより、すべてのソーティングネットワークを所望の回路に変換できるわけではありません。n = 4 の5コンパレータソートネットワークは反例です。3月10日11:08および3月10日14:01の​​コメントを参照してください。


3
@mkatkov:3つまたは4つの削除された回答を見ましたが、どっちが誰だったか覚えていません。n(n-1)/ 2ゲート未満のソリューションを見つけた場合、全体の構造を知りたいと思います(mjqxxxxの恩恵をあなたから盗むことではありません:))。
伊藤剛

2
@mkatkov:私はまだ懐疑的です。この投稿の最後の段落で書いたように、ピーターテイラーは、コンパレータを確率的スワップゲートに置き換えることで、n = 4の5コンパレータソーティングネットワークを現在の問題の解に変換できないことを発見しました。これは、ロジックがすべてのソートネットワークで機能するわけではないことを意味しますが、たとえば奇数偶数マージソートで何らかの形で機能する可能性を排除するものではありません。
伊藤剛

1
@mkatkov:このタイプのソリューションが動作しないように見える(または少なくとも動作例が示されていない)理由は、ペアワイズソートネットワークのスワップゲートが高度に相関した方法で起動するためです。この問題では、すべてのゲートが独立して発火し、可能性のある回路のスペースが大きく異なります。
mjqxxxx

1
@ mkatbov、Anthonyのネットワークの各ステップは、m入力(mはnから2までの範囲)の1つを選択します。m-1ゲートより少ないm入力から1つを選択することはできません。したがって、特にlog mゲートでは選択できません。鼓動、おそらく分割統治アプローチのいくつかの種類を必要とする予定です。O(n2)
ピーターテイラー

3
@ Tsuyoshi、Yuval、および私は、すべての可能な5ゲートソリューションを分析し、それらをすべて排除しました。最適な均一順列ネットワークには、最適なソートネットワークよりも多くのゲートが必要です。n=4
ピーターテイラー

15

これは決して完全な答えではありませんが、有用な結果が含まれており、の場合にいくつかの制約を取得するために適用できます。n=4

まず、一般的な結果:オブジェクトを並べ替えるソリューションでは、確率を持つ少なくともスワップが必要です。n 1 1nn112

証明:次数順列の順列表現を考えます。これらは、を満たす行列です。確率と間のスワップを考えてみましょう:これはを表現します(順列を表現するためにサイクル表記を使用)。表現理論またはマルコフ項でこの行列による乗算は、確率を確率適用し、確率変化しないものと考えることができます。N × N A πA π I J = [ I = π J ] I jは、P 1 - P I + P A I 、J I 、J P 1 - Pnn×nAπ(Aπ)i,j=[i=π(j)]ijp(1p)I+pA(ij)(ij)p1p

したがって、順列ネットワークは、このような行列乗算のチェーンです。恒等行列から始めて、最終結果は行列で、ここでなので、乗算によりランクの行列からランク行列になります。-つまり、ランクはずつ減少しています。U i j = 1U n1n1Ui,j=1nn1n1

行列のランクを考慮すると、それらは、本質的にマイナーな除いた単位行列であることがわかります。であるため、でない限りフルランクになります。この場合、ランクはです。1 p p p 1 p p = 1(1p)I+pA(ij)(1ppp1p) n1p=12n1

したがって、Sylvesterの行列の不等式を適用すると、場合にのみ各スワップがランクを下げ、この条件が満たされたときに1以下に減少することがわかります。したがって、少なくともスワップが必要です確率。 n11p=12n112

Anthony Leverrierのネットワークがこの限界を達成しているため、この限界を厳しくすることはできません。


ケースへの適用。すでに6ゲートのソリューションがあるため、5ゲートのソリューションが可能かどうかが問題です。現在、少なくとも3つのゲートが50/50スワップでなければならないことがわかっているため、2つの「無料」確率とます。32の可能なイベント(それぞれ2つの結果を持つ5つの独立したイベント)とつのイベントがありますそれぞれが少なくとも1つのイベントを含む必要があるバケット。イベントは、確率で8、確率で8、確率 8に分割されます、および8確率で。p q 4 = 24 p qn=4pq4!=24¯ P Qpq8のp ¯ Qp¯q8¯ P ¯ Qpq¯8p¯q¯8

空のバケットのない24個のバケットへの32個のイベントは、少なくとも16個のバケットに正確に1つのイベントが含まれるため、上記の4つの確率のうち少なくとも2つが等しいことを意味します 対称性を考慮すると、または 2つのケースがあります。 P、Q= ¯ P、Q=1124 P、Q= ¯ P ¯ Q =1pq=p¯q=13pq=p¯q¯=13

最初のケースでは、、(修正または、対称性の巻き戻し)が与えられます。2番目のケースはを与えるため、であり、実際の解はありません。 q=2p=p¯=12 q=1q=23 pq=1pq+pqpq=p1p=1q=13pq=1pq+pqpq=p(1p)=13

したがって、5ゲートソリューションがある場合、確率つのゲートと、確率または 1つのゲートがあります。最初のスワップはで、2番目はまたはいずれかです。他の3つはそれぞれ5つ以上の可能性があります。同じスワップを2回続けて行う意味がないためです。そのため、考慮すべきスワップシーケンスと確率を割り当てる10の方法があり、機械的に列挙およびテストできる2500のケースにつながります。 112 213 0102232×53230102232×53

更新:Yuval Filmusと私はケースの列挙とテストを行ったが、解決策を見つけられなかったため、最適な解決策は6ゲートを含み、6ゲート解決策の例は他の回答にあります。n=4


2
私の症例列挙は、より短い例の作成に失敗しました。
ユヴァルフィルマス

...修正後でも。
ユヴァルフィルマス

1
素晴らしい、それはとてもいい観察です。
ジョーフィッツシモンズ

1
@mjqxxxx、私は 9ゲートソリューションを検索する際に約1億400万のケースを考慮する必要があると計算します(ただし、これは巧妙に少し減らすことができます)が、各ケースでは120の方程式を計算しますクロスタームを持つ5つの変数と、ソリューションのチェック。おそらく標準のデスクトップコンピューターで実行できますが、可能性のある確率の値をそれほど簡単に制約できないため、もう少し手間がかかります。n=5
ピーターテイラー

4
私はここで賞金を授与していますが、答えは下限の漸近的改善も上限の改善も提供しませんは、単一の非自明な場合に最適です。n n 1 / 2 n n 1 / 2Ω(nlogn)n(n1)/2n(n1)/2
mjqxxxx

14

以下は、新しい関連情報のようです。

論文[CKKL99]は、深さO(log n)のスイッチングネットワークと合計O(n log n)コンパレーターを使用して、n個の要素の一様な順列に1 / nを近づける方法を示しています。

この構造は明示的ではありませんが、深さをpolylog(n)に増やすと明示的にできます。ペーパー[CKKL01]のポインターを参照してください。これには詳細情報も含まれています。

以前のコメントでは、O(n log n)スイッチで十分であるという結果がすでに指摘されていましたが、違いは、スイッチングネットワークでは比較される要素が固定されていることです。


[CKKL99] Artur Czumaj、Przemyslawa Kanarek、Miroslaw Kutylowski、およびKrzysztof Lorys。分散確率過程による遅延パス結合とランダム順列の生成。Symposium on Discrete Algorithms(SODA)、pages 271 {280、1999。

[CKKL01] Artur Czumaj、Przemyslawa Kanarek、Miroslaw Kutylowski、およびKrzysztof Lorys。ランダム順列を生成するためのスイッチングネットワーク、2001年。


おかげで、確かに知っておくと便利です。ただし、正確な分布を生成するためのゲート番号についてはまだ興味があります。
ジョーフィッツシモンズ

12

以下は、やや興味深い解決策です。同じ考え方がでも機能します。n = 6n=4n=6

確率のスイッチ始めます。を、をに減らすと、状況ます。スイッチを確率適用します。結果は 次の動きは、確率でなります。したがって、前の段階の結果が(ケースA)の形式であるか、(0,1),(2,3)1/20,1X2,3YXXYY(0,3),(1,2)p

XXYY w.p. (1p)2,YYXX w.p. p2,XYXY w.p. p(1p),YXYX w.p. p(1p)
(0,2),(1,3)1/2XXYY/YYXXXYXY/YXYX(ケースB)。ケースAでは、これらのスイッチは一定の確率にます。ケースBでは無効になります。したがって、は満たす必要があり そのため、結果は均一です。P P 1 - P = 1 / 6 P = 3 ± XXYY/XYYX/YXXY/YYXXp
p(1p)=1/6p=3±36.

でも同様のアイデアが機能します。最初に各半分をランダムにソートし、次に「マージ」します。ただし、場合でも、半分を適切にマージする方法がわかりません。n = 8n=6n=8

このソリューションの興味深い点は、変な確率です。p

補足として、おそらく役立つ可能性のあるのセットは、で与えられます。ここで、は、すべての転置でのすべての表現のすべての固有値をます。1 /1 - λ λ 0 S Np1/(1λ)λ0Sn


1
整数の確率を制限する場合にできる最善の方法はであるという合理的に単純な証拠があると思うので、の奇妙な値は確かに励みになります。1 / k k O n 2p1/kkO(n2)
ジョーフィッツシモンズ

5
同様の意味でまだ奇妙な2n要素の少し異なる方法は、最初のn個の要素をシャッフルし、最後のn個の要素をシャッフルし、i = 1、…、nの確率p_iで(i、i + n)を交換することです、最初のn個の要素をシャッフルし、最後のn個の要素をシャッフルします。確率p_iは、n個のスワップゲートのうち正確にk個が発火する確率がと等しく、そのような確率p_iが( 1 + x_i)/ 2ここで、x_1、…、x_nはルジャンドル多項式 P_nの根です。(詳細)(nk)2/(2nn)
伊藤剛

6
(続き)私が説明したバリエーションに関する残念なことは、nが2のべき乗、つまりバブルソートとまったく同じ数のゲートである場合、n(n-1)/ 2の確率的スワップが必要なことです。アンソニーレベリアによるソリューション。
伊藤剛

@剛、あなたの構造は明らかに正しいですが、必要以上のことをしているのではないかと思います。現時点で分析を行う時間はありませんが、もしそうなら、ようなが存在するかどうかを検討する価値があるかもしれません。 ; ; ; 次に、ルジャンドルrootの適切な順列を適用(および他の四半期に入力)することができます。p0,p101,p=1223,p=1202,p=p013,p=p1
ピーターテイラー

7

文字列をランダムにシャッフルする問題を考えてください。各ブロックの長さはで、回路は確率的なペアワイズスワップで構成されています。つまり、 sおよび sのすべての文字列は、指定された入力が与えられると、回路の同等の確率の出力でなければなりません。LETこの問題に対する最適な回路で、およびlet元の問題(ランダムにシャッフルするための最適な回路で要素)。 sと s をランダムにインターリーブするには、ランダムな順列を適用するだけで十分です。XX..XY..YYn(2n)!/(n!)2n Xn YB2nC2n2nXY|B2n||C2n|。一方、最初の要素をシャッフルし、最後の要素をシャッフルし、最後に回路適用することにより、要素をシャッフルできます。これは、ます。これらの2つの境界を組み合わせて、次の結果を導き出すことができます。2nnnB2n|C2n|2|Cn|+|B2n|

  • |B2n|とは両方ともであるか、どちらでもありません。|C2n|o(n2)

少なくともこの意味では、2つの問題は等しく難しいことがわかります。シャッフルの問題が簡単になると予想されるため、この結果は多少驚くべきものです。特に、エントロピー引数は、がであることを示しますが、がという強い結果を与え。XY|B2n|Ω(n)|C2n|Ω(nlogn)


7

Diaconis and Shahshahani 1981、「ランダムな転置によるランダムな順列の生成」は、1/2 n log nのランダムな転置(注:ここには「O」はありません)がユニフォームに近い(全変動距離で)順列になることを示しています。アプリケーションで許可されているものがこの結果を使用できるかどうかはわかりませんが、それはカットオフ現象の例であるという点で非常に高速でタイトです。同様の結果の調査については、Saloff-Costeによる有限グループのランダムウォークを参照してください。


1
そして、おそらく、ほぼランダムな2つの順列を構成して、さらにランダムな順列を生成できます。
mjqxxxx

7
...ただし、これは実際には同じ問題ではないことに注意する必要があります(厳密な解決ではなく近似を可能にする場合でも)。
mjqxxxx

5

これは本当にコメントですが、コメントとして投稿するには長すぎます。私はと思われる対称群の表現論は、より良い下界を証明するために役に立つかもしれません。私は表現理論についてほとんど何も知らず、私は調子が悪いかもしれませんが、それが現在の問題に関連する理由を説明させてください。

確率的スワップゲートで構成される回路の動作は、n要素の順列のグループであるS n上の確率分布pとして完全に指定できることに注意してください。A順列G ∈S Nた場合と考えることができ、私は番目の出力であるGI)は、すべてのために番目の入力I ∈{1、...、N }。今確率分布表すPを正式和ΣとしてG ∈S N PG、G。例えば、ワイヤーiとワイヤー間の確率的スワップJ確率を有するPは(1-として表されるPE + P τ ijの場合、E ∈S nは同一要素でありτ ijは ∈S Nとの間の転置であり、IJ

この正式な合計に関する興味深い事実は、2つの独立した回路の連結の動作が、これらの正式な合計の積として正式に記述できることです。すなわち、回路の挙動場合C 1及びC 2は、正式な和として表され、A 1G ∈S N P 1GG及びA 2G ∈S N P 2GG、それぞれ、次いで回路の動作C 1に続いてC 2Σとして表され、G 1G 2 ∈S N P 1G 1、P 2G 2G 1 、G 2 = 1 2

したがって、で所望の回路M確率スワップが正確に(1 /和を書き込む方法に対応するN!)Σ G ∈S N Gの積としてm個の和の形式でそれぞれが(1- PE + P τ IJ。因子の最小数mを知りたい。

Σフォーマル和G ∈S N FGGFは Sから関数でnは自然に定義される加算及び乗算を備えℂには、リングと呼ばれるフォーム代数群を ℂ[S N ]。グループ代数は、グループの表現理論と密接に関連しています。グループの表現理論は、私たちが知っている恐れの深い理論です:)。これは、表現理論の何かが現在の問題に当てはまるのではないかと疑っています。

それとも、これはただの大げさです。


2
これが何を減らすかです。対称群の表現の束があり、それは転置に対して明示的に計算することができ、多少の作業が必要です(通常、それらは転置に対してのみ明示的に計算されます)。各表現の初期値は、適切な単位行列です。確率的スワップを適用すると、各表現に乗算されます。ここで、は実行されたスワップでの表現の値です。(続き)(k,k+1)(1p)I+pAijAij(ij)
ユヴァルフィルマス

2
出力が均一になるためには、アイデンティティ表現以外のすべての表現がゼロである必要があります。したがって、確率は、少なくとも一部の行列が特異になるように選択する必要があります。各表現の行列は異なる固有ベクトルを持っているため、どの条件が特定の表現を強制的にゼロにするかは明確ではありません。(続き)p(1p)I+pAijAij
ユヴァルフィルマス

3
ただし、すべての転置が表現の平均ランクを最大で低下させることを証明できた場合、下限が得られます。このような限界は、各表現と各転置に対応する固有ベクトルを知っていれば証明できます。この情報は原則として解決することができますが、このアプローチが重要なものを生成するという保証はありません。1/n2n2
ユヴァルフィルマス

1
(続き)そして、この線形変換は、n×nの順列行列によるS_nの表現で生じる行列です。n-1はゲート数の下限として自明ですが(エントロピーの引数はすでにより良い下限を与えています)、私の希望は他の表現への引数を一般化してより良い下限を得ることができるかもしれないことですゲートの総数。
伊藤剛

4
@ Yuval、@ Peter:すべての表現について、p = 1/2(A_ {ij} ^ 2 = IはA_ {ijの固有値}は±1)です。したがって、ランクのカウントは、確率1/2ゲートの数の下限にのみ役立ちます。これは、ピーターによって既に最適に行われています。言い換えれば、この投稿で提案した方法で表現理論が有用であれば、行列のランクを数える以外に何かが必要です!それが現実的かどうかはわかりません。
伊藤剛

1

Anthonyのアルゴリズムは、最初の2つの確率的スワップの後にプロシージャの次の反復を開始することにより並行して実行でき、ランタイムになります。O(n2)O(n)


4
この質問に関連する複雑さの尺度は、ランタイムではなくゲートの数だと思います。
アンソニーレベリア

3
@Anthonyは、私が興味を持っているのは必要なゲートの最小数であるということです。
ジョーフィッツシモンズ

0

回路がすべての順列を生成できるようにしたい場合、私が正しく理解していれば、少なくとも確率ゲートが必要ですが、最小回路をどのように構築できるかはわかりません。log2(n!)

更新:

Mergesortアルゴリズムを使用して、すべての比較を適切な確率のランダムな選択に置き換えると、探している回路が得られると思います。


2
これを上記の確率的スワップゲートモデルにどのように変換するかは完全にはわかりません。確率的スワップがどのように比較に取って代わり、ランダムな分布を達成するかはわかりません。したがって、これが最適である理由もわかりません。
ジョーフィッツシモンズ

1
はい、が最小ですが、これはです。log2(n!)O(nlog(n))
ジョーフィッツシモンズ

1
と仮定し、帰納法に進みます。長さつのランダムな順列があります。これらをランダムにマージする(つまり、ランダムに選択したサブ順列から次の要素を取得する)場合、マージ結果は確実にランダムになります。「左」部分置換からの要素を持つ位置の確率は、対称性によって明らかに1/2です。そして、左の部分置換からの要素を持つことを条件に、そこから一様にランダムなものを持たなければなりません。このようにして、結果の順列が実際にランダムであることがわかります。n=2kk2k1i
アンドリューD.キング

1
マージソートを提案したときもそれが私の考え方でしたが、考え直してみると、出力を生成しないため、必要なタイプのゲートのみを使用してマージ操作を実装することはできないようです順列を実行したかどうか、およびそれらを調整するための制御入力がないかどうかを確認します。
アントニオヴァレリオミチェリバローネ

3
@Andrew:質問で説明されているゲートを使用して「これらをランダムにマージする」方法がわかりません。
ジョーフィッツシモンズ

0

次の答えは間違っています(@joe fitzsimonのコメントを参照)が、出発点として役立つかもしれません

スケッチの提案があり。(!)で動作することを手動で確認しましたが、結果がを超えて均一であるという証拠はまだありません。O(nlogn)n=4n=4

ビットで一様なランダム順列を生成する回路があるとします。レビットスワップ確率スワップゲートと確率1/2とし、確率で何もしない。ビットで動作する次の回路を作成します。CnnSi,j12ij1/2C2n2n

  1. 1kn、ゲートます。Sk,k+n1/2
  2. 最初のビットにを適用します。Cnn
  3. 最後のビットにを適用します。Cnn
  4. 1kn、ゲートます。Sk,k+n1/2

ステップ1はビットとが順列の同じ半分にように必要です。ステップ4は対称性に必要ですが解の場合、同様です。逆の順序でゲートを適用することによって得られるも解決策です。1n+1C2nC2n1

この回路ファミリのサイズは、次の再帰関係に従います: 、明らかにです。すると、ことが簡単に。

|C2n|=2|Cn|+2n
|C1|=0|Cn|=nlogn

それから、これらの回路は均一な順列を実行するのかという明らかな疑問が残ります。いいえ、以下の最初のコメントを参照してください


6
これらが均一な順列を実行するとは思わない。実際、確率を1/2に固定すると、このようなゲートを正確に処理することは不可能だと思います。この理由は簡単ですそのようなゲートを使用する回路を想像してください。次に、確率の計算パスが存在するため、順列は、整数に対して確率で発生する必要があります。ただし、一様分布の場合、です。明らかに、これは整数値では満たすことができません。m2mk2mkk2m=1n!kn3
ジョーフィッツシモンズ

確かに。私は、あまりにものための均一性をチェックするのを忘れ ...n=4
フレデリック・Grosshans
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.