Core Concepts
n個の球をn個のビンにランダムに配置する際の、各ビンの個数を最適な時間で生成するアルゴリズムを提示する。
Abstract
本論文では、n個の球をn個のビンにランダムに配置する際の、各ビンの個数を生成するための最適なアルゴリズムを提案する。
まず、単純にビンへの配置をシミュレーションすると、Θ(n)の時間がかかる。しかし、各ビンの個数は高確率でΘ(log n/log log n)となることが知られている。そこで、本論文では、RAM モデルにおいて、期待時間とハイ確率でΘ(log n/log log n)の時間で各ビンの個数を生成するアルゴリズムを提案する。
このアルゴリズムは、n個の球をm個(n≦m≦n log n)のビンに配置する場合でも最適な性能を発揮する。さらに、より複雑な負荷分散アルゴリズム、特に2つのビンからランダムに選んで負荷の小さいほうに配置するTwo-Choiceアルゴリズムの シミュレーションにも応用できる。これにより、ナイーブなシミュレーションと比べて、ほぼ2乗の高速化が実現できる。
Stats
n個の球をn個のビンにランダムに配置した際の、各ビンの個数の最大値Knは、高確率でΘ(log n/log log n)となる。
E[Kα
n] ∼ (log n)/(log log n)α for all α≧1.