Проблема с подсчетом


Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В информатике проблема подсчета различных [1] (также известная в прикладной математике как проблема оценки мощности ) - это проблема нахождения количества различных элементов в потоке данных с повторяющимися элементами. Это хорошо известная проблема для множества приложений. Элементы могут представлять IP-адреса пакетов, проходящих через маршрутизатор , уникальных посетителей веб-сайта, элементы в большой базе данных, мотивы в последовательности ДНК или элементы сетей RFID / датчиков .

Формальное определение

Экземпляр : поток элементов с повторениями и целое число . Позвольте быть количество различных элементов, а именно , и пусть эти элементы будут .
Цель : Найти оценку от использования только единицы хранения, где .

Пример экземпляра для задачи оценки мощности представляет собой поток: . В этом случае .

Наивное решение

Наивное решение проблемы таково:

Инициализировать счетчик c нулевым значением .  Инициализируйте эффективную структуру данных словаря, D , такую ​​как хеш-таблица или дерево поиска, в которые можно быстро выполнить вставку и членство. Для каждого элемента выдается запрос о членстве. Если не является членом D ( ) Добавить в D Увеличить c на единицу, В противном случае ( ) ничего не делает. Выход .  

Пока количество отдельных элементов не слишком велико, D умещается в основной памяти, и можно получить точный ответ. Однако этот подход не масштабируется для ограниченного хранилища, или если вычисления, выполняемые для каждого элемента, должны быть минимизированы. В таком случае было предложено несколько алгоритмов потоковой передачи , которые используют фиксированное количество единиц хранения.

Алгоритм HyperLogLog

Алгоритмы потоковой передачи

Для того, чтобы обрабатывать ограниченное ограничение хранения, потоковые алгоритмы используют рандомизации , чтобы произвести без точной оценки отчетливого числа элементов, . Современные оценщики хэшируют каждый элемент в низкоразмерный эскиз данных с помощью хэш-функции . Различные методы можно классифицировать по наброскам данных, которые они хранят.

Эскизы мин / макс

В эскизах мин. / Макс. [2] [3] хранятся только минимальные / максимальные хешированные значения. Примеры известных минимальных / максимальных оценок эскизов: Chassaing et al. В [4] представлен эскиз максимума, который представляет собой несмещенную оценку с минимальной дисперсией для задачи. Оценщик непрерывных максимальных скетчей [5] является оценщиком максимального правдоподобия . На практике предпочтительным оценщиком является алгоритм HyperLogLog . [6]

Интуиция, лежащая в основе таких оценщиков, заключается в том, что каждый эскиз несет информацию о желаемом количестве. Например, когда каждый элемент связан с однородным RV , ожидаемое минимальное значение составляет . Хеш-функция гарантирует, что она идентична для всех видов . Таким образом, наличие дубликатов не влияет на значение статистики крайнего порядка.

Существуют и другие методы оценки, кроме эскизов минимума / максимума. Первая статья Flajolet et al. [7] описывает набросок битового массива. В этом случае элементы хешируются в битовый вектор, и скетч содержит логическое ИЛИ всех хешированных значений. Первый асимптотически оптимальный по пространству и времени алгоритм для этой задачи был предложен Дэниелом М. Кейном , Джелани Нельсон и Дэвидом П. Вудраффом. [8]

Внизу- м эскизы

Нижние m скетчи [9] являются обобщением min скетчей, которые поддерживают минимальные значения, где . См. Cosma et al. [2] для теоретического обзора алгоритмов оценки с раздельным подсчетом и Metwally [10] для практического обзора со сравнительными результатами моделирования.

Взвешенная проблема с подсчетом различий

В его взвешенной версии каждый элемент связан с весом, и цель состоит в том, чтобы оценить общую сумму весов. Формально,

Экземпляр : поток взвешенных элементов с повторениями и целое число . Позвольте быть количество различных элементов, а именно , и пусть эти элементы будут . Наконец, пусть будет вес .
Цель : Найти оценку от использования только единицы хранения, где .

Пример экземпляра для взвешенной задачи: . В этом случае веса равны и .

В качестве примера приложения могут быть IP- пакеты, полученные сервером. Каждый пакет принадлежит одному из IP-потоков . Вес может быть нагрузкой, накладываемой потоком на сервер. Таким образом, представляет собой общую нагрузку на сервер всеми потоками, которым принадлежат пакеты .

Решение взвешенной задачи, связанной с подсчетом различий

Любую статистическую оценку экстремального порядка (минимальные / максимальные эскизы) для невзвешенной задачи можно обобщить до оценки для взвешенной задачи. [11] Например, взвешенная оценка, предложенная Коэном и др. [5] может быть получено, когда оценщик непрерывных максимальных скетчей расширен для решения взвешенной задачи. В частности, алгоритм HyperLogLog [6] может быть расширен для решения взвешенной задачи. Расширенный алгоритм HyperLogLog предлагает лучшую производительность с точки зрения статистической точности и использования памяти среди всех других известных алгоритмов для взвешенной задачи.

Смотрите также

  • Счетчик мин. Эскиз
  • Алгоритм потоковой передачи
  • Максимальная вероятность
  • Несмещенная оценка минимальной дисперсии

использованная литература

  1. ^ Ульман, Джефф ; Раджараман, Ананд; Лесковец, Юре . «Потоки данных майнинга» (PDF) . Цитировать журнал требует |journal=( помощь )
  2. ^ a b Cosma, Ioana A .; Клиффорд, Питер (2011). «Статистический анализ вероятностных алгоритмов подсчета». Скандинавский статистический журнал . arXiv : 0801.3552 .
  3. ^ Джироар, Фредерик; Фуси, Эрик (2007). 2007 Труды Четвертого семинара по аналитической алгоритмике и комбинаторике (ANALCO) . С. 223–231. CiteSeerX 10.1.1.214.270 . DOI : 10.1137 / 1.9781611972979.9 . ISBN  978-1-61197-297-9.
  4. ^ Chassaing, Филипп; Герин, Лукас (2006). «Эффективная оценка мощности больших наборов данных». Материалы 4-го Коллоквиума по математике и информатике . arXiv : math / 0701347 . Bibcode : 2007math ...... 1347C .
  5. ^ a b Коэн, Эдит (1997). «Структура оценки размера с приложениями к транзитивному замыканию и достижимости». J. Comput. Syst. Sci . 55 (3): 441–453. DOI : 10.1006 / jcss.1997.1534 .
  6. ^ a b Флажоле, Филипп ; Фуси, Эрик; Гандуэ, Оливье; Менье, Фредерик (2007). «HyperLoglog: анализ алгоритма оценки мощности, близкого к оптимальному» (PDF) . Анализ алгоритмов .
  7. ^ Flajolet, Филипп ; Мартин, Дж. Найджел (1985). «Вероятностные алгоритмы подсчета для приложений баз данных» (PDF) . J. Comput. Syst. Sci . 31 (2): 182–209. DOI : 10.1016 / 0022-0000 (85) 90041-8 .
  8. ^ Кейн, Дэниел М .; Нельсон, Джелани; Вудрафф, Дэвид П. (2010). «Оптимальный алгоритм для задачи об отдельных элементах» . Материалы 29-го ежегодного симпозиума ACM по принципам систем баз данных (PODS) .
  9. ^ Коэн, Эдит ; Каплан, Хаим (2008). «Более точная оценка с использованием нижних k эскизов» (PDF) . PVLDB .
  10. ^ Метвалли, Ахмед; Агравал, Дивьякант; Аббади, Амр Эль (2008), Зачем идти логарифмически, если мы можем идти линейно?: К эффективному отдельному подсчету поискового трафика , Труды 11-й международной конференции по расширению технологии баз данных: достижения в технологии баз данных, CiteSeerX 10.1.1.377.4771 
  11. ^ Коэн, Реувен ; Кацир, Лиран; Ехезкель, Авив (2014). «Унифицированная схема для обобщения оценок мощности для суммирования». Письма об обработке информации . 115 (2): 336–342. DOI : 10.1016 / j.ipl.2014.10.009 .
Источник « https://en.wikipedia.org/w/index.php?title=Count-distinct_problem&oldid=1032348949 »