Максимальное пересечение кардинальности каждой пары множеств равных размеров
У нас есть N наборов, каждый из которых имеет N целых чисел.
Мы берем каждую пару множеств и находим их множество пересечений S.
Теперь нам интересно найти мощность множества пересечений S, имеющего максимальную мощность.
пример
Например, пусть N будет 4, и у нас будет 4 набора каждый из 4 элементов:
A = {1,2,5,6}, B = {2,5,7,6}, C = {3,4,2,6}, D = {1,4,7,8}
Теперь возьмем попарно пересечение этих множеств и множество пересечений, имеющее максимальную мощность = {2,5,6}
Итак, мы возвращаемся 3.
Решение о грубой силе может быть выполнено за время Θ (N3). Можем ли мы сделать это более эффективно с помощью другого метода?
1 ответ
Следующее может сократить время работы, если:
Существует некоторое α > 0 такое, что (для фиксированного α и увеличения n) существует два множества с по меньшей мере α- долей перекрытия.
Многие пары не пересекаются или почти не пересекаются (уточняется позже).
Вы готовы использовать алгоритм Монте-Карло с высокой вероятностью (вероятность ошибки уменьшается с n).
Предположим, вы сначала преобразовали каждый набор в хеш-таблицу. Это займет (ожидается) Θ (n 2) время. Теперь для каждой пары наборов (т. Е. Петли n 2) выберите √n случайных элементов из первого набора и посчитайте количество совпадений во втором наборе (ожидаемое время O(√ n)).
Комбинируя мультипликативную границу Черноффа и границу объединения, вы можете сохранить только пары, для которых число попаданий было не менее 1/2 α √ n.
Таким образом, с высокой вероятностью вы можете сузить n 2 пар до некоторого β n 2 пар со временем только O (n 2,5). С этого момента продолжайте с грубой силой. Это либо полезно, либо не зависит от того, как β растет как функция от n.