偏りのあるダイで公平なダイをシミュレートする


18

バイアスされたNダイを考えると、範囲乱数をどのよう[1,N]に均一に生成できますか?ダイス面の確率分布は不明です。既知のことは、各面がゼロ以外の確率を持ち、すべてのスローで確率分布が同じであることだけです(特に、スローは独立しています)。これは、不公平なダイによる公正な結果の明白な一般化です。

これをコンピューターサイエンスの用語で言えば、p i = P D k = i が非ゼロでkに依存しないようなダイスロールを表すオラクルがあります。私たちは、決定論的アルゴリズムを探しているAによってパラメータ化されたD(すなわちAがへの呼び出しを行うことがDを)そのようなものがあることP Aは、= Iを= 1 /D:N[1,N]pi=P(D(k)=i)kADADP(A()=i)=1/N。アルゴリズムは確率1で終了する必要があります。つまり、A Dを回以上n呼び出す確率は、 n として 0に収束する必要があります。D0n

以下のためにN=2(硬貨から公正なコインがコインバイアスと反転シミュレート)、周知のアルゴリズムが存在します。

  • 2回のスローが異なる結果((頭、尾)または(尾、頭))になるまで、「2回反転」を繰り返します。すなわち、ループのためにk=0..まで、D(2k+1)D(2k)
  • フリップの最後のペアが(heads、tails)の場合は0を返し、それが(tails、heads)の場合は1を返します。つまり、返します。D(2k)ここで、kはループが終了したインデックスです。

偏りのあるダイから偏りのないダイを作成する簡単な方法は、コインフリップの偏りのない方法を使用して公平なコインを作成し、シーケンスの偏りのないように、リジェクションサンプリングで公平なダイを作成します。しかし、これは最適です(確率分布の一般的な値に対して)?

具体的には、私の質問は次のとおりです。オラクルへの呼び出しの最小予想を必要とするアルゴリズムは何ですか?到達可能な期待値のセットが開いている場合、下限とは何か、この下限に向かって収束するアルゴリズムのクラスは何ですか?

場合にはアルゴリズムの異なるファミリーは、異なる確率分布に最適な、ほとんど-公正サイコロ上のletの焦点である:私は、アルゴリズムやアルゴリズムの家族のようディストリビューションのための最適なものを探していますi,|pi1/N|<ϵいくつかのためのϵ>0


p1=1ϵpi=ϵ/(N1)i>1maxipi1ϵ

@usulあなたのコメントがわかりません。一部の値にはより効率的なアルゴリズムがあります(たとえば、)が、依存しないアルゴリズムのみを求めています。のポイントは何ですか?pii,pi=1/N(pi)ϵ
ジル 'SO-悪であるのをやめる' 14

依存しないアルゴリズムの効率をどのように測定しますか?おそらくこのようなアルゴリズムの場合、バイアスされたダイを例に取ると、必要な呼び出しの予想数に上限はありません。これが、「最適な...の上限はおそらく無制限です」という意味です。それで、すべてのアルゴリズムが予期して多数のサイコロを必要に応じて要求できる場合、どの方法が最適かをどのように決定するのでしょうか?ϵ 0(pi)ϵ0
usul

@usulもちろん、スローの回数に上限はありませんが、期待される値(つまり、スローの平均数)について尋ねています。与えられた分布、公正なコインを作成し、それを拒否サンプリングに使用するアルゴリズムの期待値は有限ではありませんか?期待値が分布に依存することは事実であるため、異なる(家族の)アルゴリズムが異なる分布に最適である可能性があります。もしそうなら、私はほとんど公平なサイコロに興味があるとしましょう。(pi)
ジル 'SO-悪であるのをやめる' 14

正確な質問ではありませんが、均一に近い結果のみを求めますか( /総変動距離)?、保証に依存しますが、元の分布から頼むもしそうなら、これは「均一性のための改良サンプリング」の名称で、(提出で)最近の論文で研究されて-あなたがの番号を取得することができ、特にショーはとは独立して描画します distanceからdistanceに改善します。 N 1 ε ε "1N1εε
クレメントC. 14

回答:


3

次の論文は、この質問の密接な変種に答えています:不偏ランダムシーケンスの効率的な構築、エリアス1972

質問はこれのようです:このバイアスされた独立ソースへのアクセスを与えられ、に乱数のシーケンスを出力します(1つの出力シンボルのみが要求される質問との違いに注意してください)。目的の出力の長さが無限になると、論文のスキームの効率(von Neumannの自然な一般化のように見える)はになります。つまり、エントロピー入力は次のように変換されます。近づくエントロピーの出力。1 時間の時間[1,N]1hh

たとえば、サンプルを描画し、多くの情報を含む出力になる場合(たとえば、入力シンボルはすべて区別されるため)、単一の出力桁を要求するよりも、この方法で表現すると質問の動作がはるかに良くなります、その情報のすべてを使用して多くの出力シンボルを生成できますが、ここで述べた質問では、1つの出力シンボルの生成に使用された情報を超える情報はすべて無駄になります。NNN

このスキームでは、回の描画を繰り返し、シーケンスを確認し、出力または空の文字列をマッピングすると考えています。おそらく、接頭辞を見て、シンボルを出力するための「十分な」情報がある場合は停止することで、質問のスキームを改善する方法がありますか?知りません。N


私はその後の仕事や論文を引用した仕事を検索していないので、私は知らないが、誰かがスキームを改善し、別のものを提供し、あなたの質問に答えた、など
2014

2

一般的な方法を説明します。すべての順列は、バイアスがダイでも同じようになります(ロールが独立しているため)。したがって、最後のロールが並べ替えられ、最後のロールが出力されるまで、ローリングを続けることができます。[ 1 .. N ] NN=2[1..N]N

一般的な分析には注意が必要です。ただし、所定のステップで順列が発生する可能性は小さいため(また、前後のステップに依存しないため、トリッキーです)、で予想されるロール数が急速に増加することは明らかです。それはあるより大きい固定するための手順はほぼ確実に終了するように、しかし、(すなわち、確率)。0 N 1N0N1

固定場合、合計がなるパリフベクトルのセットでマルコフ連鎖を構築し、最後のロールの結果を要約し、達するまでの予想ステップ数を決定できます初めて。これは、パリフベクトルを共有するすべての順列が等しく発生する可能性があるためです。チェーンと計算はこのように簡単です。N N 1 ... 1 NNN(1,,1)

我々は状態にあると仮定しで。次に、要素(つまり、次のロールが)を獲得する確率は常にv=(v1,,vN)i=1nviNii

Pr[gain i]=pi

一方、履歴から要素を削除する可能性は、i

Prv[drop i]=viN

いつでも(およびそれ以外)パリークベクトルを持つすべての順列こそ等しく可能性があります。これらの確率は独立しているため(ロールが独立しているため)、遷移確率を次のように計算できます。i=1nvi=N0v

Pr[v(v1,,vj+1,,vN)]={Pr[gain j],v<N0, else,Pr[v(v1,,vi1,vj+1,,vN)]={0,v<Nvi=0vj=NPrv[drop i]Pr[gain j], else andPr[vv]={0,v<Nvi0Prv[drop i]Pr[gain i], else;

他のすべての遷移確率はゼロです。単一の吸収状態はで、すべての順列のベクトルです。(1,,1)[1..N]

以下のために得られたマルコフchain¹でありますN=2

N = 2のマルコフ連鎖
[ ソース ]

吸収までの予想ステップ数

Esteps=2p0p12+i3(p0i1p1+p1i1p0)i=1p0+p02p0p02,

簡略化のためにます。今、提案されているように、いくつかのに対して場合、p1=1p0p0=12±ϵϵ[0,12)

Esteps=3+4ϵ214ϵ2

以下のためにと均一分布(最良の場合)Iは、コンピュータalgebra²と計算を行いました。状態空間は急速に爆発するため、大きな値を評価するのは困難です。結果(切り上げ)はN6

NormalPlot LogPlot
プロットはを関数として示しています。左側には通常、右側には対数プロットがあります。EstepsN

成長は指数関数的であるように見えますが、値が小さすぎて適切な推定値が得られません。

摂動に対する安定性については、状況を見ることができます。piN=3

N = 3および異なる選択肢の予想されるステップ数
プロットは、をおよび関数としてています。当然、。Estepsp0p1p2=1p0p1

より大きなに対して同様の画像を仮定すると(カーネルは場合でもシンボリック結果の計算をクラッシュします)、予想されるステップ数は、最も極端な選択を除くすべてに対してかなり安定しているようです(一部のでほぼすべてまたは質量なし)。NN=4pi

比較のために、 -biasedコインのシミュレーション(たとえば、ダイスの結果をとに可能な限り均等に割り当てること)、これを使用して公正なコインをシミュレートし、最終的にビット単位の拒否サンプリングを実行するには、せいぜいϵ01

2logN3+4ϵ214ϵ2

期待してサイコロを振る-あなたはおそらくそれに固執する必要があります。


  1. でチェーンが吸収されているため、灰色で示されたエッジは走査されず、計算に影響しません。私は単に完全性と説明の目的のためにそれらを含めます。(11)
  2. Mathematica 10での実装(NotebookBare Source); 申し訳ありませんが、この種の問題について私が知っていることです。

1

の場合に関する簡単なコメント。いくつかの大きな取り、ダイの回のスローをサンプリングします。ヘッドが場合は、ビットを抽出できます。ダイであると仮定するとバイアスされ、情報の平均量は、 この推定値を取得するには、推定値とともに二項変数が集中しているという事実を使用し。以下のように大きくなる、我々は、最適な速度取得N=2mmklog(mk)p

k=0mpk(1p)mk(mk)log(mk)mh(p).
k=pmlog(mk)mh(k/m)mh(p) コイン投げごと(これは、情報理論的な理由、例えば漸近的等分配特性に最適です)。

一般的なに対して同じメソッドを使用でき、おそらく同じ取得します。これらのアルゴリズムは限界においてのみ最適であり、これらよりも早く限界に達するアルゴリズムがあるかもしれません。実際、私は収束の速度を計算することを怠っていました。これは興味深い練習になるかもしれません。NH(p)


1

次の答えは危険です。

あなたは上記の2の具体的なケースは拡大の具体的なケースである (ここで、、頭のPROBであるあなたに用語与え尾のPROB) あなたが得ることができる。この手段 1ケースには、とその他の場合は。または(head-tailまたはtail-head)が表示されるまでサンプリングを繰り返す必要があります。これらをシミュレーションとして使用すると、等しい確率が得られます。(p+q)2pq2pqpqqppqqp

場合は、あなたが拡大していあなたに長期与え。この場合、同じことを行い、3つの連続した試行で3 つの結果、、がすべて順番に表示されるまでサンプリングします。N=3(p+q+r)3pqrqpr

同じことが一般的な場合にも当てはまります。慎重に考えて、2の場合は拡張で物事を解決できる最良のケースであると言わざるを得ません。場合、には6つの異なるシーケンスがあり、展開には他の多くの項があります。もっと多くの結果がある他の用語にはかなり不快に感じます。N=3pqr

追加:

これは、私がサイコロの各結果の確率を推定するために単純にたくさんサンプリングするという考えについて考えさせます。隠れ層のない1つの層モデル(既知のモデル)のこの最も単純なケースでは、推定値が迅速に収束すると結論付けるために限界を計算することができます。実際、チェルノフ限界は、サンプリングが増加するにつれて(線形に)エラーが指数関数的に減少することを示しています。

サイコロの各面の確率の適切な推定がわかったので、多くのオプションがあります。1つのオプションは、上記の展開を再度実行できることですが、今回は、(またはベースのシーケンスとして使用します)。拡張でより多くの用語が使用されるため、これはもう少し効率的です。ただし、これにより、オラクルへの呼び出しの数が最小になり、前提条件(信頼性パラメーターなど)が与えられた場合にそれが保証されるかどうかはわかりません。i=1i=npi

それでも、このアプローチは質問のさまざまなフレーバーに対する答えです。質問は、潜在的に大規模なサンプリング(低確率)を犠牲にして、保証された完全な不偏性を求めます。このアプローチは、信頼限界パラメータを使用した有限サンプリングのみを使用します。したがって、このアプローチは非常に興味深いものですが、この質問に適しているとは思いません。

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