Jump to content

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

(Перенаправлено из Частотных моментов )

В информатике , потоковые алгоритмы — это алгоритмы обработки потоков данных в которых входные данные представлены как последовательность элементов и могут быть проверены всего за несколько проходов, обычно за один . Эти алгоритмы предназначены для работы с ограниченной памятью, обычно логарифмической по размеру потока и/или максимальному значению в потоке, а также могут иметь ограниченное время обработки каждого элемента.

В результате этих ограничений алгоритмы потоковой передачи часто выдают приблизительные ответы на основе сводки или «эскиза» потока данных.

Хотя алгоритмы потоковой передачи уже изучались Манро и Патерсоном. [ 1 ] еще в 1978 году, а также Филипп Флажоле и Дж. Найджел Мартин в 1982/83 году, [ 2 ] Область потоковых алгоритмов была впервые формализована и популяризирована в статье 1996 года Ноги Алона , Йосси Матиаса и Марио Сегеди . [ 3 ] За эту статью авторы позже получили премию Гёделя в 2005 году «за основополагающий вклад в алгоритмы потоковой передачи». С тех пор был проведен большой объем работ, посвященных алгоритмам потоковой передачи данных, которые охватывают широкий спектр областей информатики, таких как теория, базы данных, сети и обработка естественного языка.

Полупотоковые алгоритмы были представлены в 2005 году как упрощенная версия потоковых алгоритмов для графов. [ 4 ] в котором разрешенное пространство линейно по числу вершин n , но только логарифмично по числу ребер m . Это расслабление все еще имеет смысл для плотных графов и может решить интересные проблемы (например, связность), которые неразрешимы в космос.

Модель потока данных

[ редактировать ]

В модели потока данных некоторые или все входные данные представлены как конечная последовательность целых чисел (из некоторой конечной области), которая обычно недоступна для произвольного доступа , а вместо этого поступает по одному в «потоке». [ 5 ] Если поток имеет длину n и размер домена m , алгоритмы обычно ограничены использованием пространства, логарифмического по m и n . Обычно они могут совершить лишь небольшое постоянное число проходов над потоком, иногда только один . [ 6 ]

Модели турникетов и кассовых аппаратов

[ редактировать ]

Большая часть потоковой литературы посвящена вычислению статистики по распределения частот, которые слишком велики для сохранения. Для этого класса проблемы, есть вектор (инициализируется нулевым вектором ), для которого обновления представлены в потоке. Целью этих алгоритмов является вычисление функции занимает значительно меньше места, чем он взял бы представлять именно так. Есть два распространенные модели обновления таких потоков, называемые «кассовым аппаратом» и модели «турникеты». [ 7 ]

В модели кассового аппарата каждое обновление имеет вид , так что увеличивается на некоторое положительное целое число . Примечательным частным случаем является случай, когда (разрешены только вставки единиц).

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

Модель с раздвижным окном

[ редактировать ]

В нескольких статьях также рассматривается модель «скользящего окна». [ нужна ссылка ] В этой модели интересующая функция — вычисления в окне фиксированного размера в транслировать. По мере продвижения потока элементы из конца окна сняты с рассмотрения, пока новинки из потока займут свое место место.

Помимо вышеперечисленных проблем, связанных с частотой, существуют и другие типы проблем. также были изучены. Многие графические задачи решаются в настройке где матрица смежности или список смежности графа передаются в потоковом режиме какой-то неизвестный порядок. Есть также некоторые проблемы, которые очень зависят по порядку потока (т. е. асимметричные функции), такие как подсчет количество инверсий в потоке и нахождение самой длинной возрастающей подпоследовательность. [ нужна ссылка ]

Производительность алгоритма, работающего с потоками данных, измеряется тремя основными факторами:

  • Число проходов, которые алгоритм должен выполнить над потоком.
  • Доступная память.
  • Время работы алгоритма.

Эти алгоритмы имеют много общего с онлайн-алгоритмами, поскольку оба требуют принятия решений до того, как будут доступны все данные, но они не идентичны. Алгоритмы потоков данных имеют ограниченную доступную память, но они могут иметь возможность откладывать действие до прибытия группы точек, в то время как онлайн-алгоритмы должны предпринимать действия сразу после прибытия каждой точки.

Если алгоритм является аппроксимационным, то точность ответа является еще одним ключевым фактором. Точность часто определяют как аппроксимация означает, что алгоритм достигает ошибки менее с вероятностью .

Приложения

[ редактировать ]

Алгоритмы потоковой передачи имеют несколько приложений в сети, например мониторинг сетевых соединений на предмет потоков слонов , подсчет количества отдельные потоки, оценивая распределение размеров потоков и т. д. на. [ 8 ] У них также есть приложения в базы данных, такие как оценка размера соединения [ нужна ссылка ] .

Некоторые проблемы с потоковой передачей

[ редактировать ]

Частотные моменты

[ редактировать ]

k - й частотный момент набора частот определяется как .

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

Фундаментальная статья Алона, Матиаса и Сегеди посвящена проблеме оценки частотных моментов. [ нужна ссылка ]

Расчет частотных моментов

[ редактировать ]

Прямой подход к нахождению частотных моментов требует ведения регистра m i для всех различных элементов a i ∈ (1,2,3,4,..., N ), что требует как минимум памяти порядка . [ 3 ] Но у нас есть ограничения по пространству, и нам нужен алгоритм, который выполняет вычисления в гораздо меньшем объеме памяти. Этого можно достичь, используя приближения вместо точных значений. Алгоритм, который вычисляет ( δ )-аппроксимацию Fk ε , где F’k , — ( ε,δ )- приблизительное значение F k . [ 9 ] Где ε — параметр аппроксимации, а δ — доверительный параметр. [ 10 ]

Вычисление F 0 (отдельные элементы в потоке данных)
[ редактировать ]
Алгоритм FM-эскиза
[ редактировать ]

Флажоле и др. в [ 2 ] представил вероятностный метод подсчета, вдохновленный статьей Роберта Морриса . [ 11 ] Моррис в своей статье говорит, что если отбросить требование точности, счетчик n можно заменить счетчиком log n, который может храниться в log log n бит. [ 12 ] Флажоле и др. в [ 2 ] улучшил этот метод, используя хеш-функцию h, которая, как предполагается, равномерно распределяет элемент в хеш-пространстве (двоичная строка длины L ).

Пусть bit( y,k ) представляет k-й бит в двоичном представлении y

Позволять представляет позицию наименьшего двоичном представлении y значащий 1-бит в с подходящим соглашением для .

Пусть A — последовательность потока данных длиной M , мощность которой необходимо определить. Пусть BITMAP [0... L − 1] —

хеш-пространство, в котором ρ ( хеш-значения записываются ). Приведенный ниже алгоритм затем определяет приблизительную мощность A .

Procedure FM-Sketch:

    for i in 0 to L − 1 do
        BITMAP[i] := 0 
    end for
    for x in A: do
        Index := ρ(hash(x))
        if BITMAP[index] = 0 then
            BITMAP[index] := 1
        end if
    end for
    B := Position of left most 0 bit of BITMAP[] 
    return 2 ^ B

есть N Если в потоке данных различных элементов.

  • Для тогда BITMAP [ i ] заведомо равен 0
  • Для тогда BITMAP [ i ] заведомо равен 1
  • Для тогда BITMAP [ i ] представляет собой набор из 0 и 1
K -алгоритм минимального значения
[ редактировать ]

Предыдущий алгоритм описывает первую попытку аппроксимировать F 0 в потоке данных Флажоле и Мартина. Их алгоритм выбирает случайную хеш-функцию , которая, по их предположению, равномерно распределяет хэш-значения в хеш-пространстве.

Бар-Йосеф и др. в [ 10 ] представил алгоритм k-минимального значения для определения количества различных элементов в потоке данных. Они использовали аналогичную хэш-функцию h , которую можно нормализовать к [0,1] как . Но они установили ограничение на количество значений в хеш-пространстве. Значение t принимается порядка (т.е. меньшее значение аппроксимации ε требует большего t ). Алгоритм KMV сохраняет только t в хэш-пространстве наименьших значений хеш-функции. После того, как все m значений потока прибыли, используется для расчета . То есть в почти однородном хэш-пространстве они ожидают, что по крайней мере t элементов будут меньше .

Procedure 2 K-Minimum Value

Initialize first t values of KMV 
for a in a1 to an do
    if h(a) < Max(KMV) then
        Remove Max(KMV) from KMV set
        Insert h(a) to KMV 
    end if
end for 
return t/Max(KMV)
Анализ сложности КМВ
[ редактировать ]

Алгоритм KMV может быть реализован в пространство битов памяти. Каждое значение хеш-функции требует пространства порядка биты памяти. Есть хэш-значения заказа . Время доступа можно сократить, если хранить значения хэша t в двоичном дереве. Таким образом, временная сложность будет уменьшена до .

Расчет F k
[ редактировать ]

Алон и др. оценивает F k путем определения случайных величин, которые можно вычислить в заданном пространстве и времени. [ 3 ] Ожидаемое значение случайных величин дает приблизительное значение F k .

Предположим, что длина последовательности m известна заранее. Затем создайте случайную величину X следующим образом:

  • Выберите p как случайный член последовательности A с индексом p ,
  • Позволять , представляет количество вхождений l в члены последовательности A, за p следующие .
  • Случайная величина .

Предположим, что S 1 имеет порядок и S 2 имеют порядок . Алгоритм принимает S 2 случайную величину и выводит медиану . Где Y i — среднее значение X ij , где 1 ≤ j S 1 .

Теперь вычислим математическое ожидание случайной величины E ( X ) .

Сложность F k
[ редактировать ]

Из алгоритма расчета F k, обсуждавшегося выше, мы видим, что каждая случайная величина X хранит значения a p и r . Итак, для вычисления X нам нужно сохранить только биты log( n ) для хранения и p биты ( n ) log для хранения r . Общее количество случайной величины X будет равно .

Следовательно, общая пространственная сложность алгоритма имеет порядок

Упрощенный подход к расчету F 2
[ редактировать ]

Предыдущий алгоритм вычисляет в порядке биты памяти. Алон и др. в [ 3 ] упростил этот алгоритм, используя четырехкратную независимую случайную величину со значениями, сопоставленными с .

Это еще больше снижает сложность расчета. к

Частые элементы

[ редактировать ]

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

Более формально, зафиксируйте некоторую положительную константу c > 1, пусть длина потока равна m и пусть f i обозначает частоту значения i в потоке. Проблема с частыми элементами состоит в том, чтобы вывести набор { i | f i > m/c }. [ 13 ]

Некоторые известные алгоритмы:

Обнаружение событий

[ редактировать ]

Обнаружение событий в потоках данных часто выполняется с использованием алгоритма с сильными нападающими, как указано выше: наиболее частые элементы и их частота определяются с помощью одного из этих алгоритмов, затем наибольшее увеличение по сравнению с предыдущим моментом времени сообщается как тенденция. Этот подход можно усовершенствовать, используя для нормализации экспоненциально взвешенные скользящие средние и дисперсию. [ 14 ]

Подсчет отдельных элементов

[ редактировать ]

Подсчет количества различных элементов в потоке (иногда называемый F 0 момент) — еще одна хорошо изученная проблема. Первый алгоритм для него был предложен Флажоле и Мартином. В 2010 году Дэниел Кейн , Джелани Нельсон и Дэвид Вудрафф нашли асимптотически оптимальный алгоритм для этой задачи. [ 15 ] Он использует O ( ε 2 + log d ) пространство с O (1) наихудшим временем обновления и отчета, а также универсальными хэш-функциями и r -независимым хэш-семейством, где r = Ω(log(1/ ε ) / log log(1/ ε )) .

Энтропия

[ редактировать ]

(Эмпирическая) энтропия набора частот является определяется как , где .

Онлайн обучение

[ редактировать ]

Изучите модель (например, классификатор ) за один проход по обучающему набору.


Нижние границы

[ редактировать ]

Нижние границы были вычислены для многих задач потоковой передачи данных. которые были изучены. На сегодняшний день наиболее распространенный метод вычислений эти нижние границы используют сложность связи . [ нужна ссылка ]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Манро, Дж. Ян; Патерсон, Майк (1978). «Отбор и сортировка при ограниченном хранении». 19-й ежегодный симпозиум по основам информатики, Анн-Арбор, Мичиган, США, 16–18 октября 1978 г. Компьютерное общество IEEE. стр. 253–258. дои : 10.1109/SFCS.1978.32 .
  2. ^ Перейти обратно: а б с Flajolet & Martin (1985)
  3. ^ Перейти обратно: а б с д Алон, Матиас и Сегеди (1996)
  4. ^ Фейгенбаум, Джоан; Сампат, Каннан (2005). «О задачах на графах в полупотоковой модели» . Теоретическая информатика . 348 (2): 207–216. дои : 10.1016/j.tcs.2005.09.013 .
  5. ^ Бэбкок, Брайан; Бабу, Шивнатх; Датар, Маюр; Мотвани, Раджив; Видом, Дженнифер (2002). «Модели и проблемы в системах потоков данных». Материалы двадцать первого симпозиума ACM SIGMOD-SIGACT-SIGART по принципам систем баз данных . ПОДС '02. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 1–16. CiteSeerX   10.1.1.138.190 . дои : 10.1145/543613.543615 . ISBN  978-1581135077 . S2CID   2071130 .
  6. ^ Бар-Йосеф, Зив; Джайрам, Т.С.; Кумар, Рави; Сивакумар, Д.; Тревизан, Лука (13 сентября 2002 г.). «Подсчет различных элементов в потоке данных». Методы рандомизации и аппроксимации в информатике . Конспекты лекций по информатике. Том. 2483. Шпрингер, Берлин, Гейдельберг. стр. 1–10. CiteSeerX   10.1.1.12.6276 . дои : 10.1007/3-540-45726-7_1 . ISBN  978-3540457268 . S2CID   4684185 .
  7. ^ Гилберт и др. (2001)
  8. ^ Сюй (2007)
  9. ^ Индик, Петр; Вудрафф, Дэвид (1 января 2005 г.). «Оптимальные аппроксимации частотных моментов потоков данных». Материалы тридцать седьмого ежегодного симпозиума ACM по теории вычислений . СТОК '05. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 202–208. дои : 10.1145/1060590.1060621 . ISBN  978-1-58113-960-0 . S2CID   7911758 .
  10. ^ Перейти обратно: а б Бар-Йосеф, Зив; Джайрам, Т.С.; Кумар, Рави; Сивакумар, Д.; Тревизан, Лука (13 сентября 2002 г.). Ролим, Хосе ДП; Вадхан, Салил (ред.). Подсчет различных элементов в потоке данных . Конспекты лекций по информатике. Шпрингер Берлин Гейдельберг. стр. 1–10. CiteSeerX   10.1.1.12.6276 . дои : 10.1007/3-540-45726-7_1 . ISBN  978-3-540-44147-2 . S2CID   4684185 .
  11. ^ Моррис (1978)
  12. ^ Флажоле, Филипп (1 марта 1985 г.). «Приблизительный подсчет: подробный анализ». БИТ Численная математика . 25 (1): 113–134. CiteSeerX   10.1.1.64.5320 . дои : 10.1007/BF01934993 . ISSN   0006-3835 . S2CID   2809103 .
  13. ^ Кормод, Грэм (2014). «Сводки Мисры-Гриса». В Као, Мин-Ян (ред.). Энциклопедия алгоритмов . Спрингер США. стр. 1–5. дои : 10.1007/978-3-642-27848-8_572-1 . ISBN  9783642278488 .
  14. ^ Шуберт, Э.; Вейлер, М.; Кригель, HP (2014). SigniTrend: масштабируемое обнаружение возникающих тем в текстовых потоках с помощью хэшированных порогов значимости . Материалы 20-й международной конференции ACM SIGKDD по обнаружению знаний и интеллектуальному анализу данных - KDD '14. стр. 871–880. дои : 10.1145/2623330.2623740 . ISBN  9781450329569 .
  15. ^ Кейн, Нельсон и Вудрафф (2010)
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 57908f41509321e1d16ce7352d7255d0__1718011260
URL1:https://arc.ask3.ru/arc/aa/57/d0/57908f41509321e1d16ce7352d7255d0.html
Заголовок, (Title) документа по адресу, URL1:
Streaming algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)