Core Concepts
Wir präsentieren einen Algorithmus im RAM-Modell, der die Behälterzählungen für das Bälle-in-Behälter-Problem in optimaler erwarteter Zeit und mit hoher Wahrscheinlichkeit erzeugt.
Abstract
Der Algorithmus generiert die Behälterzählungen (X0, X1, ..., XKn), wobei Xj die Anzahl der Behälter mit j Bällen angibt und Kn die maximale Belegung ist.
Der Algorithmus funktioniert wie folgt:
Für kleine Werte von m ≤ K* (definiert in Gleichung (3.1)) wird die naive Simulation verwendet.
Für größere Werte von m wird eine Poissonisierung des Prozesses verwendet, um die Behälterzählungen effizient zu generieren.
Wenn die Anzahl der generierten Bälle N von m abweicht, werden entweder Bälle hinzugefügt oder entfernt, um die korrekte Verteilung zu erhalten.
Für den Fall, dass N nahe an m liegt, wird der Algorithmus rekursiv aufgerufen, um die verbleibenden Bälle zu allozieren, und die Ergebnisse werden dann kombiniert.
Der Algorithmus hat eine erwartete Laufzeit von O(log n / log log n) und eine Laufzeit mit hoher Wahrscheinlichkeit von O(log n / log log n). Dies ist asymptotisch optimal, da die Ausgabe eine Größe von Ω(log n / log log n) hat.
Darüber hinaus kann der Algorithmus auch für den Fall m ∈ [n, n log n] Bälle eingesetzt werden und liefert dann optimale Leistungsgarantien.
Stats
Die Anzahl der Bälle N ist Poisson-verteilt mit Parameter λ = m - m^{3/5}.
Die Wahrscheinlichkeit, dass der Überschuss (N - m)+ größer als 1 ist, ist höchstens e^{-1/2 m^{1/5}}.
Die Wahrscheinlichkeit, dass das Defizit (m - 2m^{3/5} - N)+ größer als 1 ist, ist höchstens e^{-1/2 m^{1/5}}.
Der maximale Füllstand Kn ist mit hoher Wahrscheinlichkeit beschränkt durch K* = 10 * log n / log(4n / (m log n)).
Quotes
"Der Algorithmus generiert die Behälterzählungen für die Multinomial(m; 1/n, ..., 1/n)-Verteilung in erwarteter Zeit O(log n / log log n) und mit hoher Wahrscheinlichkeit."
"Der Algorithmus hat optimale Leistungsgarantien für den Fall m ∈ [n, n log n] Bälle."