Balls_into_bins_problem
ボールビンに問題がで古典的な問題であり、確率論では、多くのアプリケーションがあるコンピュータサイエンスを。問題には、m個のボールとn個のボックス(または「ビン」)が含まれます。毎回、1つのボールがビンの1つに配置されます。すべてのボールがビンに入った後、各ビンのボールの数を調べます。この番号をビンの負荷と呼び、次のように尋ねます。単一のビンの最大負荷はどれくらいですか。
明らかに、各ボールを最も負荷の少ないビンに入れることで、負荷をm / nまで小さくすることができます。興味深いケースは、ビンがランダムに、または少なくとも部分的にランダムに選択された場合です。強力なボールイントゥビンパラダイムは、「2つのランダムな選択の力」であり、各ボールは2つ(またはそれ以上)のランダムなビンを選択し、負荷の少ないビンに配置されます。このパラダイムは、共有メモリエミュレーション、効率的なハッシュスキーム、サーバー上のタスクのランダム化された負荷分散、および並列ネットワークとデータセンター内のパケットのルーティングで幅広い実用的なアプリケーションを見つけました。
コンテンツ
1 ランダムな割り当て
2 部分的にランダムな割り当て
3 ボールの無限の流れ
4 繰り返されるボールイントゥビン
5 アプリケーション
6 参考文献
ランダムな割り当て
各ボールのビンがランダムに選択された場合、他の選択とは関係なく、最大負荷は次のように大きくなる可能性が {m}
。ただし、高い確率で成立するより狭い範囲を計算することは可能です。「高い確率」は確率です1 − o(( 1 )。 {1-o(1)}
、すなわち確率は 1 {1}
いつ {n}
無限に成長します。
場合のために = {m = n}
、確率で1 − o(( 1 )。 {1-o(1)}
最大負荷は次のとおりです。
ログ ログ
ログ ⋅(( 1+ o(( 1 )。 )。
{{ frac { log n} { log log n}} cdot(1 + o(1))}
。
Gonnet は、最大負荷の期待値に厳しい限界を与えました。 = {m = n}
は
Γ − 1(( )。
−3 2 o (( 1 )。 { Gamma ^ {-1}(n)-{ frac {3} {2}} + o(1)}
、 どこ
Γ − 1
{ Gamma ^ {-1}}
逆ガンマ関数は、それが知られている そのΓ − 1 (( )。 = ログ ログ
ログ (( 1+ o(( 1 )。 )。
{ Gamma ^ {-1}(n)= { frac { log n} { log log n}}(1 + o(1))}
。
最大負荷は、次のように計算することもできます。 ≠ {m neq n}
、たとえば、 >> ログ {m> n log n}
nlog n}””>
それは+ Θ (( ログ )。
{{ frac {m} {n}} + Theta left({ sqrt { frac {m log n} {n}}} right)}
、および ログ {m
それは Θ (( ログログ(( / )。 )。 { Theta left({ frac { log n} { log(n / m)}} right)}
、高い確率で。
部分的にランダムな割り当て
ボールごとにランダムなビンを選択する代わりに、ボールごとに2つ以上のビンを選択して、ボールを最も負荷の少ないビンに入れることができます。これは、すべてのビンがチェックされ、最も負荷の少ないビンが選択される決定論的割り当てと、他のビンをチェックせずに単一のビンが選択される完全にランダムな割り当てとの間の妥協点です。「2つのランダムな選択の力」と呼ばれることが多いこのパラダイムは、以下のいくつかの設定で研究されています。
最も単純なケースでは、 {m}
ボールに {n}
ビン( = {m = n}
)1つずつ順番に、ボールごとに1つ選択します ≥ 2 {d geq 2}
各ステップでランダムなビンを作成し、選択したビンの中で最も負荷の少ないビンにボールを割り当てます(任意に解除されたタイ)。最大負荷は次のようになります。
ログ
ログ ログ + Θ (( 1 )。 {{ frac { log log n} { log d}} + Theta(1)}
これは、完全にランダムな割り当ての場合よりも指数関数的に少なくなります。
この結果は、ケースに一般化することができます ≥ {m geq n}
(と ≥ 2 {d geq 2}
)、確率が高い場合、最大負荷は次のとおりです。
ログ
ログ ログ ++ Θ (( 1 )。 {{ frac { log log n} { log d}} + { frac {m} {n}} + Theta(1)}
これは、加法定数までタイトです。(すべての境界は少なくとも確率で保持されます1 − 1
/ {1-1 / n ^ {c}}
任意の定数の場合c。) >> ログ {m> n log n}
nlog n}””>
、ランダム割り当てプロセスは、の最大負荷のみを提供します+ O (( ログ
ログ
NS)。
{{ frac {m} {n}} + O left( log log n right)}
確率が高いため、これら2つのプロセス間の改善は、 {m}
。
パラダイムの他の重要な変形は、ボールが選択する「ビンへの平行ボール」です。 {d}
並列のランダムビン、ボールの重みが単位以外の「重み付きボールイントゥビン」、およびボールの追加と削除が可能な「削除付きボールイントゥビン」。
ボールの無限の流れ
m個のボールを置くだけでなく、各タイムステップで、ボールの数が一定に保たれるように、1つのボールが追加され、1つのボールが取得される無限のプロセスを検討することができます。以下のため、M = N、十分に長い時間の後に、高い確率で最大負荷は、ランダム割当てで、部分的にランダムな割り当ての両方、有限のバージョンと同様です。
繰り返されるボールイントゥビン
で繰り返されるプロセスの変形、 {m}
ボールは最初に配布されます {n}
任意の方法でビンを作成し、離散時間プロセスの後続のすべてのステップで、空でない各ビンから1つのボールを選択し、 {n}
ランダムに均一にビンします。いつ = {m = n}
、プロセスが最大負荷の構成に収束する可能性が高いことが示されていますO グ(( )。
{{ mathcal {O}} log(n)}
後 O (( )。
{{ mathcal {O}}(n)}
ステップ。
アプリケーション
オンライン負荷分散: n台の同一のコンピューターのセットを検討します。コンピューティングサービスを必要とするユーザーはn人います。ユーザーは調整され各ユーザーは自分で来て、使用するコンピューターを選択します。もちろん、各ユーザーは最も負荷の少ないコンピューターを選択したいと考えていますが、これには各コンピューターの負荷を確認する必要があり、時間がかかる場合がもう1つのオプションは、コンピューターをランダムに選択することです。これにより、高い確率で、最大負荷が約
ログ ログ
ログ {{ frac { log n} { log log n}}}
。考えられる妥協案は、ユーザーが2台のコンピューターのみをチェックし、2台のうち負荷の少ないコンピューターを使用することです。これにより、高い確率で、最大負荷が約2倍になります。
ログ
ログ ログ 2 {{ frac { log log n} { log 2}}}
。
ハッシュ:同じ場所にマップされたすべてのキーがリンクリストに格納されているハッシュテーブルについて考えてみます。キーへのアクセスの効率は、リストの長さによって異なります。均一な確率で場所を選択する単一のハッシュ関数を使用する場合、最も長いチェーンが持つ確率が高い O (( ログログ
ログ )。
{O left({ frac { log n} { log log n}} right)}
キー。考えられる改善点は、2つのハッシュ関数を使用し、新しい各キーを2つのリストの短い方に配置することです。この場合、高い確率で最長のチェーンは O (( ログ
ログ )。
{O( log log n)}
要素。
公正なケーキカット:異種リソースの部分的に比例した分割を作成する問題を検討してください {n}
人々、その人が少なくともその人が評価するリソースの一部を受け取るように 1 / {1 / an}
全体の、ここで {a}
十分に大きい定数です。エドモンズ-Pruhsプロトコルがある無作為化アルゴリズムその分析メイクボール-にビンの引数を使用します。
参考文献
^ ミッツェンマッハー、マイケル; リチャ、アンドレア; Sitaraman、Ramesh。「2つのランダムな選択の力:技術と結果の調査」。ランダム化コンピューティングのハンドブック。クルーワープレス。1:255〜305。
^ Kolchin、Valentin F.(1978)。ランダムな割り当て。ワシントン:ウィンストン ISBN
978-0470993941。
^ コッツ、サミュエル; ジョンソン、ノーマンロイド(1977)。壺モデルとそのアプリケーション。ニューヨーク州ニューヨーク:ジョン・ワイリー&サンズ。ISBN
978-0471446309。
^ Gonnet、Gaston H.(1981)。「ハッシュコード検索での最長プローブシーケンスの予想される長さ」。Journal of the Association for ComputingMachinery。28(2):289–304。土井:10.1145 /322248.322254。
^ ラーブ、マーティン(1998)。「」ビンにボール「 -シンプルでタイトな分析」。コンピュータサイエンスの講義ノート:159–170。土井:10.1007 / 3-540-49543-6_13。
^ アザール、ヨッシ; ブローダー、アンドレイZ。; カーリン、アンナR。; Upfal、Eli(1999)。「バランスの取れた割り当て」。SIAMジャーナルオンコンピューティング。29(1):180〜200。土井:10.1137 / s0097539795288490。
^ Berenbrink、Petra; Czumaj、Artur; スティーガー、アンゲリカ; Vöcking、Berthold(2006)。「バランスの取れた割り当て:重負荷の場合」。SIAMジャーナルオンコンピューティング。35(6):180〜200。土井:10.1137 / S009753970444435X。
^ Becchetti、LucaBecchetti; クレメンティ、アンドレア; ナターレ、エマヌエーレ; パスクアーレ、フランチェスコ; ポスタ、グスタボ(2015-06-13)。「自己安定化反復ボールイントゥビン」。アルゴリズムとアーキテクチャの並列処理に関する第27回ACMシンポジウムの議事録。SPAA’15。米国オレゴン州ポートランド:Association for Computing Machinery:332–339。土井:10.1145 /2755573.2755584。ISBN
978-1-4503-3588-1。
^ ラーブ、マーティン; スティーガー、アンゲリカ(1998)。ルビー、マイケル; Rolim、JoséDP; セルナ、マリア(編)。「「 BallsintoBins」—シンプルで厳密な分析」。コンピュータサイエンスにおけるランダム化と近似の手法。コンピュータサイエンスの講義ノート。ベルリン、ハイデルベルク:スプリンガー:159–170。土井:10.1007 / 3-540-49543-6_13。ISBN
978-3-540-49543-7。
^ Karp、RM(1996)。「分散メモリマシンでの効率的なPRAMシミュレーション」。Algorithmica。16(4–5):517–542。土井:10.1007 / bf01940878。”