Проблема с мячами в контейнерах
« шары в корзины » (или сбалансированное распределение ) Задача — классическая задача теории вероятностей , имеющая множество приложений в информатике . В задаче участвуют m шаров и n коробок (или «корзин»). Каждый раз в одну из корзин помещается один мяч. После того, как все шары оказались в ящиках, мы смотрим на количество шаров в каждом ящике; мы называем это число нагрузкой на бункер. Задачу можно смоделировать с помощью полиномиального распределения и включить в нее такой вопрос, как: каково ожидаемое количество ящиков с мячом в них? [ 1 ]
Очевидно, что можно сделать загрузку минимальной, равной m / n , поместив каждый шар в наименее загруженный контейнер. Интересен случай, когда бин выбирается случайным образом или, по крайней мере, частично случайным образом. Мощная парадигма «шары в мусорные ведра» — это «сила двух случайных выборов». [ 2 ] «где каждый шар выбирает две (или более) случайные ячейки и помещается в менее загруженную корзину. Эта парадигма нашла широкое практическое применение в эмуляции общей памяти, эффективных схемах хеширования, рандомизированной балансировке нагрузки задач на серверах и маршрутизации пакеты внутри параллельных сетей и центров обработки данных. [ 2 ]
Случайное распределение
[ редактировать ]Когда контейнер для каждого шара выбирается случайным образом, независимо от других вариантов, максимальная загрузка может достигать . Однако можно вычислить более точную оценку, которая выполняется с высокой вероятностью . «Высокая вероятность» — это вероятность , т.е. вероятность стремится к когда растет до бесконечности.
Для случая , с вероятностью максимальная нагрузка составляет: [ 3 ] [ 4 ]
.
Гонне [ 5 ] дал точную оценку ожидаемого значения максимальной нагрузки, которая для является , где является обратной гамма -функцией , и она известна [ 6 ] что .
Максимальная нагрузка также может быть рассчитана для и, например, для это и для это , с большой вероятностью. [ 7 ]
Точные вероятности для малых может быть вычислено как для определено в OEIS A208250.
Частично случайное распределение
[ редактировать ]Вместо того, чтобы просто выбирать случайную корзину для каждого шара, можно выбрать две или более корзины для каждого шара, а затем поместить мяч в наименее загруженную корзину. Это компромисс между детерминированным распределением, при котором проверяются все ячейки и выбирается наименее загруженная ячейка, и полностью случайным распределением, при котором выбирается одна ячейка без проверки других ячеек. Эта парадигма, которую часто называют «силой двух случайных выборов», изучалась в ряде случаев, описанных ниже. [ 2 ]
В простейшем случае, если выделить шары в контейнеры (с ) последовательно по одному и для каждого шара выбирают случайные ячейки на каждом шаге, а затем распределяет шар в наименее загруженную из выбранных ячеек (связи разрываются произвольно), тогда с высокой вероятностью максимальная загрузка составит: [ 8 ]
что почти экспоненциально меньше, чем при полностью случайном распределении.
Этот результат можно обобщить на случай (с ), когда с большой вероятностью максимальная нагрузка составит: [ 9 ]
которая точна с точностью до аддитивной константы. (Все оценки выполняются с вероятностью не менее для любой константы .) Обратите внимание, что для , процесс случайного распределения дает только максимальную нагрузку с высокой вероятностью, поэтому улучшение между этими двумя процессами особенно заметно при больших значениях .
Другими ключевыми вариантами парадигмы являются «параллельные шары в контейнеры», где шары выбирают случайные ячейки параллельно, [ 10 ] «взвешенные шары в контейнеры», когда шары имеют неединичный вес, [ 11 ] [ 12 ] [ 13 ] и «шары в контейнеры с удалениями», где мячи можно как добавлять, так и удалять. [ 2 ] [ 14 ]
Бесконечный поток шариков
[ редактировать ]Вместо того, чтобы просто класть m шаров, можно рассмотреть бесконечный процесс, в котором на каждом временном шаге добавляется один шар и берется один шар, так что количество шаров остается постоянным. При m = n через достаточно долгое время с высокой вероятностью максимальная нагрузка аналогична конечному варианту, как при случайном распределении, так и при частично случайном распределении. [ 8 ]
Повторные попадания мячей в контейнеры
[ редактировать ]При повторном варианте процесса шары первоначально распределяются в ячейками произвольным образом, а затем на каждом последующем шаге процесса с дискретным временем из каждой непустой ячейки выбирается один шар и переназначается в одну из ячеек. контейнеры равномерно в случайном порядке. Когда , показано, что с большой вероятностью процесс сходится к конфигурации с максимальной нагрузкой после шаги. [ 15 ]
Приложения
[ редактировать ]Онлайн-балансировка нагрузки : [ 16 ] Рассмотрим набор из n одинаковых компьютеров. Имеется n пользователей, которым необходимы вычислительные услуги. Пользователи не скоординированы - каждый пользователь приходит сам и выбирает, какой компьютер ему использовать. Каждому пользователю, конечно, хотелось бы выбрать наименее загруженный компьютер, но для этого необходимо проверять загрузку каждого компьютера, что может занять много времени. Другой вариант — выбрать компьютер наугад; это приводит с большой вероятностью к максимальной нагрузке в . Возможный компромисс заключается в том, что пользователь будет проверять только два компьютера и использовать менее загруженный из двух. Это приводит, с высокой вероятностью, к гораздо меньшей максимальной нагрузке .
Хеширование : рассмотрим хеш-таблицу , в которой все ключи, сопоставленные с одним и тем же местоположением, хранятся в связанном списке. Эффективность доступа к ключу зависит от длины его списка. Если мы используем одну хэш-функцию, которая выбирает местоположения с одинаковой вероятностью, с высокой вероятностью самая длинная цепочка будет иметь ключи. Возможным улучшением является использование двух хэш-функций и помещение каждого нового ключа в более короткий из двух списков. В этом случае с большой вероятностью самая длинная цепочка имеет только элементы. [ 17 ]
Справедливое разрезание торта : рассмотрим задачу создания частично пропорционального разделения разнородного ресурса между людей, так что каждый человек получает часть ресурса, который этот человек ценит как минимум от общей суммы, где — некоторая достаточно большая константа. Протокол Эдмондса-Пруса представляет собой рандомизированный алгоритм , в анализе которого используются аргументы «шары в ячейки». [ 18 ]
Ссылки
[ редактировать ]- ^ Оливейра, Рафаэль (20 мая 2021 г.). «Лекция 4: Шары и контейнеры» (PDF) .
- ^ Перейти обратно: а б с д Митценмахер, Михаэль ; Рича, Андреа ; Ситараман, Рамеш (июль 2001 г.). «Сила двух случайных выборов: обзор методов и результатов». Справочник по рандомизированным вычислениям . 1 . Клювер Пресс: 255–305. CiteSeerX 10.1.1.62.6677 .
- ^ Колчин, Валентин Федорович (1978). Случайные распределения . Вашингтон: Уинстон [и т. д.] ISBN 978-0470993941 .
- ^ Коц, Сэмюэл; Джонсон, Норман Ллойд (1977). Модели урн и их применение . Нью-Йорк, штат Нью-Йорк: Джон Уайли и сыновья. ISBN 978-0471446309 .
- ^ Гонне, Гастон Х. (1981). «Ожидаемая длина самой длинной пробной последовательности при поиске хэш-кода» . Журнал Ассоциации вычислительной техники . 28 (2): 289–304. дои : 10.1145/322248.322254 . S2CID 15483311 .
- ^ Деврой, Люк (1985). «Ожидаемая длина самой длинной пробной последовательности для поиска по сегментам, когда распределение неравномерно». Журнал алгоритмов . 6 (1): 1–9. дои : 10.1016/0196-6774(85)90015-X .
- ^ Рааб, Мартин (1998). « Шарики в корзины» — простой и точный анализ». Методы рандомизации и аппроксимации в информатике . Конспекты лекций по информатике. Том. 1518. стр. 159–170. дои : 10.1007/3-540-49543-6_13 . ISBN 978-3-540-65142-0 .
- ^ Перейти обратно: а б Азар, Йоси; Бродер, Андрей З.; Карлин, Анна Р.; Упфал, Эли (1999). «Сбалансированное распределение». SIAM Journal по вычислительной технике . 29 (1): 180–200. дои : 10.1137/s0097539795288490 .
- ^ Беренбринк, Петра; Чумай, Артур; Стегер, Анжелика; Фёкинг, Бертольд (2006). «Сбалансированное распределение: сильно загруженный случай». SIAM Journal по вычислительной технике . 35 (6): 180–200. дои : 10.1137/S009753970444435X .
- ^ Беренбринк, Петра; Чумай, Артур; Энглерт, Матиас; Фридецкий, Том; Нагель, Ларс (2012). Сбалансированное распределение с множественным выбором (почти) параллельно . ПРИБЛИЗИТЕЛЬНО 2012 Г., СЛУЧАЙНЫЙ 2012 Г.: Аппроксимация, рандомизация и комбинаторная оптимизация. Алгоритмы и методы. стр. 411–422. CiteSeerX 10.1.1.297.6120 . дои : 10.1007/978-3-642-32512-0_35 .
- ^ Талвар, Кунал; Уди, Видер (2007). Сбалансированное распределение: взвешенный случай . Труды 39-го ежегодного симпозиума ACM по теории вычислений (STOC). стр. 256–265. дои : 10.1145/1250790.1250829 .
- ^ Беренбринк, Петра; Фридецкий, Том; Цзэнцзянь, Ху; Рассел, Мартин (2005). Об играх «шарики в урны» с взвешиванием . СТАКС. стр. 231–243. дои : 10.1007/978-3-540-31856-9_19 .
- ^ Перес, Юваль; Талвар, Кунал; Видер, Уди (2015). Графическое сбалансированное распределение и -процесс выбора . Алгоритмы случайных структур . стр. 760–775. дои : 10.1002/rsa.20558 .
- ^ Коул, Ричард; Фриз, Алан; Мэггс, Брюс М.; Митценмахер, Майкл; Рича, Андреа; Ситараман, Рамеш; Упфал, Эли (1998). О шарах и урнах с удалениями . Методы рандомизации и аппроксимации в информатике (Барселона, 1998). стр. 145–158. дои : 10.1007/3-540-49543-6_12 .
- ^ Беккетти, Лука Беккетти; Клементи, Андреа; Натале, Эмануэле; Паскуале, Франческо; Поста, Густаво (13 июня 2015 г.). «Самостабилизирующиеся повторяющиеся шары в контейнеры» . Материалы 27-го симпозиума ACM по параллелизму в алгоритмах и архитектурах . СПАА '15. Портленд, Орегон, США: Ассоциация вычислительной техники. стр. 332–339. дои : 10.1145/2755573.2755584 . hdl : 11573/780594 . ISBN 978-1-4503-3588-1 .
- ^ Рааб, Мартин; Стегер, Анжелика (1998). « Шарики в корзины» — простой и точный анализ» . В Луби, Майкл; Ролим, Хосе ДП; Серна, Мария (ред.). Методы рандомизации и аппроксимации в информатике . Конспекты лекций по информатике. Том. 1518. Берлин, Гейдельберг: Springer. стр. 159–170. дои : 10.1007/3-540-49543-6_13 . ISBN 978-3-540-49543-7 .
- ^ Карп, Р.М. (1996). «Эффективное моделирование PRAM на машине с распределенной памятью». Алгоритмика . 16 (4–5): 517–542. дои : 10.1007/bf01940878 . S2CID 2535727 .
- ^ Эдмондс, Джефф; Прус, Кирк (2006). «Сбалансированное распределение торта» (PDF) . 2006 г. 47-й ежегодный симпозиум IEEE по основам информатики (FOCS'06) . стр. 623–634. дои : 10.1109/FOCS.2006.17 . ISBN 0-7695-2720-5 . S2CID 2091887 .