مسئله **توپ-و-جعبه** یک مسئله کلاسیک در نظریه احتمال است که کاربردهای بسیاری در علوم کامپیوتر دارد. این مسئله شامل *m* توپ و *n* جعبه (یا "سطل") است. هر بار یک توپ در یک جعبه قرار داده می‌شود. پس از آنکه همه توپ‌ها در جعبه‌ها قرار گرفت، تعداد هر جعبه را **بار** (load) آن جعبه می‌نامیم. در این مسئله یافتن مقدار یا یک کران برای **بیشینه (ماکزیمم) بار** حائز اهمیت است.

بدیهی است که می‌توان با قرار دادن توپ در جعبه با کمترین بار به بار m/n رسید. در انتخاب جعبه‌ها مسئله وقتی در حوزه احتمالات قرار می‌گیرد که جعبه‌ها کاملاً (تخصیص تصادفی کامل) یا بعضاً (تخصیص تصادفی جزئی) به صورت تصادفی انتخاب شوند.

تخصیص تصادفی کامل
-----------------

زمانی که برای هر توپ، جعبه به‌طور تصادفی و مستقل از دیگر انتخاب‌ها، انتخاب می‌شود، بیشینه بار ممکن است به بزرگی m. هرچند می‌توان یک کران محدود برای «حداکثر بار» که با احتمال بالا صادق است، به‌دست آورد. یک «احتمال بالا» یک احتمال {\displaystyle 1-o(1)} یعنی زمانی که n به سمت بینهایت میل می‌کند، احتمال به 1 میل خواهد کرد.

برای مورد {\displaystyle m=n} با احتمال بالا حداکثر بار:

{\displaystyle {\frac {\log n}{\log \log n}}\cdot (1+o(1))}.

Gonnet یک کران محدود برای امید ریاضی بیشینه بار به‌دست آورد که برای {\displaystyle m=n} برابر {\displaystyle \Gamma ^{(-1)}(n)-{\frac {3}{2}}+o(1)}. {\displaystyle \Gamma ^{(-1)}} معکوس تابع گاماست و برابراست با {\displaystyle \Gamma ^{(-1)}(n)={\frac {\log n}{\log \log n}}(1+o(1))}

بیشینه بار همچنین می‌تواند برای {\displaystyle m\neq n} محاسبه شود. به عنوان مثال برای {\displaystyle m>n\log n} مقدار بیشینه بار با احتمال بالا برابر است با {\displaystyle {\frac {m}{n}}+\Theta ({\sqrt {\frac {m\log n}{n}}})}و برای {\displaystyle m<n/\log n} با احتمال بالا برابر است با {\displaystyle \Theta ({\frac {\log n}{\log(n/m)}})}.

تخصیص تصادفی جزئی
-----------------

به‌جای انتخاب تصادفی جعبه برای هر توپ، می‌توان دو جعبه یا بیشتر به صورت تصادفی انتخاب کرد و توپ را در جعبه با بار کمتر قرار داد. تخصیص تصادفی جزئی، بین حالت تخصیص قطعی که در آن جعبهٔ با بار کمتر انتخاب می‌شود و حالت کاملاً تصادفی قرار دارد که در آن جعبه به صورت کاملاً تصادفی بدون توجه به بار جاری آن انتخاب می‌شود.

در این حالت اگر m توپ و n جعبه داشته باشیم (که m=n) و برای هر توپ {\displaystyle d\geq 2} جعبه به صورت تصادفی در هر مرحله انتخاب شود و سپس توپ در جعبه با بار کمتر از بین d جعبه قرار داده شود، آنگاه با احتمال بالا بیشینه بار برابر است با:
{\displaystyle {\frac {\log \log n}{\log d}}+\Theta (1)}

که به صورت نمایی کمتر از تخصیص تصادفی کلی است.

می‌توان برای {\displaystyle m\geq n} (که {\displaystyle d\geq 2}) نیز این نتیجه را تعمیم داد، که با احتمال بالا بیشینه بار برابر است با:

{\displaystyle {\frac {\log \log n}{\log d}}+{\frac {m}{n}}+\Theta (1)}

توجه شود که برای {\displaystyle m>n\log n} {\displaystyle {\frac {m}{n}}+\Theta ({\sqrt {\frac {m\log n}{n}}})} را به‌دست می‌دهد. بهبود بین این دو فرایند به ویژه برای m.

جریان بی‌نهایت از توپ‌ها
------------------------

به جای قرار دادن m توپ، می‌توان حالتی را در نظر گرفت که در آن در یک فرایند نامحدود، یک توپ قرار داده شود و یک توپ برداشته شود به نحوی که تعداد توپ‌ها همواره ثابت بماند. برای m=n، پس از یک زمان طولانی، با احتمالاً بالا بار بیشینه شبیه نسخه نامتناهی مسئله، هم برای تخصیص تصادفی کلی و هم برای تخصیص تصادفی جزئی می‌شود.

کاربردها
--------

**تخصیص پویای منابع:** تعداد n دستگاه کامپیوتر یکسان را در نظر بگیرید. n کاربر هم وجود دارند. کاربران با یکدیگر هماهنگ نیستند و هر کاربر کامپیوتری را که می‌خواهد انتخاب می‌کند. هر کاربر منطقا کامپیوتر با بار کمینه را انتخاب خواهد کرد، که البته لازمه آن این است که بار روی هر کامپیوتر محاسبه شود و این خود ممکن است زمان طولانی ای نیاز داشته باشد. راه دیگر این است که هر کاربر کامپیوتری را به صورت تصادفی انتخاب کند، که در این حالت با احتمال بالا بار بیشینه {\displaystyle {\frac {\log n}{\log \log n}}}{\displaystyle {\frac {\log \log n}{\log 2}}}

**درهم سازی (Hashing):** یک جدول درهم سازی را در نظر بگیرید که در آن همه کلیدهایی که به یک محل نگاشت شده‌اند در یک لیست پیوندی ذخیره می‌شوند. بازدهی دسترسی به کلید به طول لیست بستگی دارد. اگر از *یک* تابع درهم سازی استفاده کنیم که که مکان‌ها را با احتمال یکنوا انتخاب می‌کند، با احتمال بالا طولانی‌ترین زنجیره (لیست) {\displaystyle O\left({\frac {\log n}{\log \log n}}\right)} کلید دارد. یک بهبود برای این وضعیت استفاده از دو تابع درهم سازی و قرار دادن کلید در لیست کوتاه‌تر است. در این حالت با احتمال بالا طولانی‌ترین زنجیره فقط {\displaystyle O(\log \log n)} عنصر دارد.

**Proportional division**.

منابع
-----

1. ↑  Kolchin, Valentin F. (1978). *Random allocations*. Washington: Winston [usw.] ISBN 978-0-470-99394-1.
2. ↑  Kotz, Samuel; Johnson, Norman Lloyd (1977). *Urn models and their applications*. New York, NY: John Wiley & Sons. ISBN 978-0-471-44630-9.
3. ↑  Gonnet, Gaston H. (1981). "Expected Length of the Longest Probe Sequence in Hash Code Searching". *Journal of the Association for Computing Machinery*. **28** (2): 289–304. doi:10.1145/322248.322254.
4. ↑  Raab, Martin (1998). ""Balls into Bins" — A Simple and Tight Analysis". *Lecture Notes in Computer Science*: 159–170. doi:10.1007/3-540-49543-6\_13.
5. 1 2  Azar, Yossi; Broder, Andrei Z.; Karlin, Anna R.; Upfal, Eli (1999). "Balanced Allocations". *SIAM Journal on Computing*. **29** (1): 180–200. doi:10.1137/s0097539795288490.
6. ↑  Berenbrink, Petra; Czumaj, Artur; Steger, Angelika; Vöcking, Berthold (2006). "Balanced Allocations: The Heavily Loaded Case". *SIAM Journal on Computing*. **35** (6): 180–200. doi:10.1137/S009753970444435X.
7. ↑  Karp, R. M. (1996). "Efficient PRAM simulation on a distributed memory machine". *Algorithmica*. **16** (4–5): 517–542. doi:10.1007/bf01940878.
8. ↑  Jeff Edmonds and Kirk Pruhs (2006). "Balanced Allocations of Cake". *2006 47th Annual IEEE Symposium on Foundations of Computer Science (FOCS'06)*: 623. doi:10.1109/focs.2006.17. ISBN 0-7695-2720-5.