Потоковий алгоритм (англ. streaming algorithm) — алгоритм для обробки послідовності даних за один або мале число проходів.
Потокові алгоритми розв'язують задачі, в яких дані надходять послідовно й у великому обсязі. Прикладом може бути аналіз мережного трафіку з боку маршрутизатора. Подібні задачі накладають на потокові алгоритми природні обмеження щодо доступної пам'яті (значно менше, ніж розмір вхідних даних) і часу обробки кожного елемента послідовності. Часто обробка даних можлива тільки за один прохід.
Суворі обмеження на час і пам'ять часто унеможливлюють точне розв'язання досліджуваної задачі. Зазвичай потокові алгоритми є ймовірнісними та дають наближення до точної відповіді.
Історія
Хоча подібні алгоритми розглянуто в працях першої половини 1980-х років, поняття потокового алгоритму вперше формалізовано в роботі Алона, [en] та [en]. 2005 року авторів відзначено премією Геделя за внесок у теорію алгоритмів (англ. for their foundational contribution to streaming algorithms).
2005 року введено поняття напівпотокового алгоритму (англ. semi-streaming algorithm) як алгоритму, що обробляє вхідний потік за стале або логарифмічне від обсягу даних число проходів.
Модель
У моделі потокових даних вважається, що до частини або всього набору вхідних даних, які слід обробити, немає довільного доступу: вхідні дані надходять послідовно і безперервно в одному або декількох потоках. Потоки даних можна подати впорядкованою послідовністю точок («оновлень»), доступ до яких може здійснюватися за порядком і лише один чи обмежене число разів.
У низці джерел додатково розглядають модель на ковзному вікні. У цій моделі функція обчислюється над вікном фіксованої довжини. У міру обробки потоку старі елементи видаляються з одного краю вікна, а нові додаються з іншого.
У «касовій» моделі кожне «оновлення» подається у формі і модифікують вектор так, що збільшується на деяке додатне ціле число . Найчастіше , що означає тривіальну інкрементну модель.
У «турнікетній» моделі кожне «оновлення» подається у формі і модифікують вектор так, що змінюється на деяке додатне чи від'ємне ціле число . У строгій турнікетній моделі в будь-який момент часу може бути від'ємним.
Багато публікацій із потокової обробки розглядають задачу обчислення статистик над частотним розподілом даних. При цьому обсяг даних дуже великий для ефективного зберігання. Прикладами нетривіальних задач є обчислення медіани, довільних (перцентилів) або кількість унікальних елементів потоку. Формально, для задач цього класу вважається, що вектор (ініціалізований нульовою послідовністю ) має певну кількість «оновлень». Кожне оновлення збільшує або зменшує значення в окремій комірці вектора. Мета алгоритму — обчислити функції від , використовуючи істотно менше місця, ніж вимагає повне як подання вектора , так і збереження обсягу оброблюваних даних. Існують дві загальні моделі оновлення таких даних: «каса» (англ. cash register) та «турнікет» (англ. turnstile).
У потокових алгоритмах розглядаються як питання, пов'язані з частотними характеристиками даних, так і низка інших. Багато задач на графах розв'язуються в умовах того, що матриця суміжності графа потоково підвантажується в деякому невідомому наперед порядку. Також є задачі, коли порядок має особливе значення. Наприклад, задача підрахунку числа інверсій або пошуку найбільшої зростальної підпослідовності.
Порівняння алгоритмів
Основні характеристики потокових алгоритмів:
- кількість допустимих проходів алгоритму над даними;
- доступна пам'ять;
- час обробки окремого елемента.
Ці алгоритми мають багато спільного з онлайновими алгоритмами, оскільки алгоритм повинен приймати рішення до того, як стануть доступними всі дані, але є й відмінності. Зокрема, потокові алгоритми мають можливість відкласти ухвалення рішення до моменту приходу групи точок послідовності даних, тоді як онлайнові алгоритми повинні приймати рішення в міру приходу кожної нової точки послідовності.
Якщо алгоритм є наближеним, то ще одним показником є точність відповіді. Точність алгоритму часто подають як величину , що означає, що алгоритм досягне помилки менше з імовірністю .
Застосування
Потокові алгоритми важливі в задачах моніторингу комп'ютерних мереж. Наприклад, відстеження потоків високої інтенсивності, оцінення загальної кількості різних потоків, наближене оцінення розподілу інтенсивності потоків тощо. Також потокові алгоритми можуть застосовуватись у базах даних, наприклад, для оцінення розміру (декартового добутку таблиць).
Приклади задач, які розв'язують потокові алгоритми
Задачі з частотним розподілом
-ий момент частоти у векторі визначають як .
Перший момент це проста сума частот (тобто, загальне число). Другий момент корисний для обчислення статистичних параметрів даних, наприклад коефіцієнта Джині. визначають як частоту елемента, що зустрічається найчастіше.
Також вивчено питання оцінення моментів частот.
Пошук важких елементів
Задача полягає в пошуку в потоці даних елемента, який зустрічається найчастіше. Тут застосовуються такі алгоритми:
- алгоритм більшості голосів Боєра — Мура
- ,
- [en] ,
- (англ. sticky sampling),
- [en],
- «вибірка та утримання» (англ. sample and hold),
- багаторівневий фільтр Блума,
- підрахунок «начерків» (англ. Count-sketch),
- вибірка на основі «начерків» (англ. Sketch-guided sampling).
Відстеження тренду
Відстеження тренду в потоці даних зазвичай проводять у такому порядку: найчастіші елементи та їхні частоти визначають на основі одного зі згаданих вище алгоритмів, а потім найбільше збільшення відносно попереднього моменту часу відзначають як тренд. Для цього застосовують експоненційне рухоме середнє і різне нормування. Алгоритм використовує O(ε² + log d) місця і O(1) для найгіршого випадку оновлення за універсальної геш-функції зі сімейства r-розумних незалежних геш-функцій з r = Ω(log(1/ε)/log log(1/ ε))).
Ентропія
Емпірична оцінка ентропії над набором частот визначається як , де .
Машинне навчання
Основна задача онлайнового машинного навчання — навчити модель (наприклад, класифікатор) за один прохід за навчальною вибіркою; для її розв'язання зазвичай використовують [en] і стохастичний градієнтний спуск.
Підрахунок числа унікальних елементів
Підрахунок кількості унікальних елементів у потоці даних (момент ) — ще одна добре вивчена задача. Перший алгоритм запропонували Флажоле та Мартен. 2010 року знайдено асимптотично оптимальний алгоритм.
Примітки
- Munro та Paterson, (1980)
- Flajolet та Martin, (1985)
- Alon, Matias та Szegedy, (1996)
- Feigenbaum, Joan; Sampath, Kannan (2005). On graph problems in a semi-streaming model. Theoretical Computer Science. 348 (2): 207—216. doi:10.1016/j.tcs.2005.09.013.
- J. Xu A Tutorial on Network Data Streaming
- Schubert, E.; Weiler, M.; (2014). SigniTrend: scalable detection of emerging topics in textual streams by hashed significance thresholds. Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining - KDD '14. с. 871—880. doi:10.1145/2623330.2623740. ISBN .
- Оцінки ентропії наведено в працях: McGregor та ін., Do Ba та ін., Lall та ін., Chakrabarti та ін.[]
- Flajolet та Martin, (1985)
- Kane, Daniel M.; Nelson, Jelani; Woodruff, David P. (2010), «An optimal algorithm for the distinct elements problem», Proceedings of the twenty-ninth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems, PODS '10, New York, NY, USA: ACM, pp. 41-52, doi:10.1145/1807085.1807094, .
Література
- Alon, Noga; Matias, Yossi; (1999), The space complexity of approximating the frequency moments, , 58 (1): 137—147, doi:10.1006/jcss.1997.1545, ISSN 0022-0000Вперше опубліковано як Alon, Noga; Matias, Yossi; Szegedy, Mario (1996), The space complexity of approximating the frequency moments, , с. 20—29, CiteSeerX 10.1.1.131.4984, doi:10.1145/237814.237823, ISBN , S2CID 1627911.
- Babcock, Brian; Babu, Shivnath; Datar, Mayur; ; (2002), Models and issues in data stream systems, Proceedings of the 21st ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS 2002) (PDF), с. 1—16, doi:10.1145/543613.543615.
- ; Kotidis, Y.; Muthukrishnan, S.; Strauss, M. J. (2001), Surfing Wavelets on Streams: One-Pass Summaries for Approximate Aggregate Queries (PDF), Proceedings of the International Conference on Very Large Data Bases: 79—88.
- Kane, Daniel M.; Nelson, Jelani; Woodruff, David P. (2010), An optimal algorithm for the distinct elements problem, PODS '10, New York, NY, USA: ACM, с. 41—52, doi:10.1145/1807085.1807094, ISBN .
- Karp, R. M.; Papadimitriou, C. H.; (2003), A simple algorithm for finding frequent elements in streams and bags, ACM Transactions on Database Systems, 28 (1): 51—55, doi:10.1145/762471.762473.
- Lall, Ashwin; Sekar, Vyas; Ogihara, Mitsunori; Xu, Jun; Zhang, Hui (2006), Data streaming algorithms for estimating entropy of network traffic, Proceedings of the Joint International Conference on Measurement and Modeling of Computer Systems (ACM SIGMETRICS 2006) (PDF), doi:10.1145/1140277.1140295.
- Xu, Jun (Jim) (2007), A Tutorial on Network Data Streaming (PDF).
Посилання
- Streaming Algorithms for Geometric Problems, Piotr Indyk, MIT
- Dagstuhl Workshop on Sublinear Algorithms
- IIT Kanpur Workshop on Data Streaming
- List of open problems in streaming (зібрав Andrew McGregor) за обговоренням на IITK Workshop on Algorithms for Data Streams, 2006.
- StreamIt — programming language and compilation infrastructure by MIT CSAIL
- IBM Spade — Stream Processing Application Declarative Engine
- IBM InfoSphere Streams
- Підручники
- Data Stream Algorithms and Applications by
- Stanford STREAM project survey
- Network Applications of Bloom filters, по Broder and Mitzenmacher
- Xu's SIGMETRICS 2007 tutorial
- Lecture notes from Data Streams курс на Barbados в 2009, Andrew McGregor and S. Muthu Muthukrishnan
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Potokovij algoritm angl streaming algorithm algoritm dlya obrobki poslidovnosti danih za odin abo male chislo prohodiv Potokovi algoritmi rozv yazuyut zadachi v yakih dani nadhodyat poslidovno j u velikomu obsyazi Prikladom mozhe buti analiz merezhnogo trafiku z boku marshrutizatora Podibni zadachi nakladayut na potokovi algoritmi prirodni obmezhennya shodo dostupnoyi pam yati znachno menshe nizh rozmir vhidnih danih i chasu obrobki kozhnogo elementa poslidovnosti Chasto obrobka danih mozhliva tilki za odin prohid Suvori obmezhennya na chas i pam yat chasto unemozhlivlyuyut tochne rozv yazannya doslidzhuvanoyi zadachi Zazvichaj potokovi algoritmi ye jmovirnisnimi ta dayut nablizhennya do tochnoyi vidpovidi IstoriyaHocha podibni algoritmi rozglyanuto v pracyah pershoyi polovini 1980 h rokiv ponyattya potokovogo algoritmu vpershe formalizovano v roboti Alona en ta en 2005 roku avtoriv vidznacheno premiyeyu Gedelya za vnesok u teoriyu algoritmiv angl for their foundational contribution to streaming algorithms 2005 roku vvedeno ponyattya napivpotokovogo algoritmu angl semi streaming algorithm yak algoritmu sho obroblyaye vhidnij potik za stale abo logarifmichne vid obsyagu danih chislo prohodiv ModelU modeli potokovih danih vvazhayetsya sho do chastini abo vsogo naboru vhidnih danih yaki slid obrobiti nemaye dovilnogo dostupu vhidni dani nadhodyat poslidovno i bezperervno v odnomu abo dekilkoh potokah Potoki danih mozhna podati vporyadkovanoyu poslidovnistyu tochok onovlen dostup do yakih mozhe zdijsnyuvatisya za poryadkom i lishe odin chi obmezhene chislo raziv U nizci dzherel dodatkovo rozglyadayut model na kovznomu vikni U cij modeli funkciya obchislyuyetsya nad viknom fiksovanoyi dovzhini U miru obrobki potoku stari elementi vidalyayutsya z odnogo krayu vikna a novi dodayutsya z inshogo U kasovij modeli kozhne onovlennya podayetsya u formi i c displaystyle langle i c rangle i modifikuyut vektor tak sho ai displaystyle a i zbilshuyetsya na deyake dodatne cile chislo c displaystyle c Najchastishe c 1 displaystyle c 1 sho oznachaye trivialnu inkrementnu model U turniketnij modeli kozhne onovlennya podayetsya u formi i c displaystyle langle i c rangle i modifikuyut vektor tak sho ai displaystyle a i zminyuyetsya na deyake dodatne chi vid yemne cile chislo c displaystyle c U strogij turniketnij modeli v bud yakij moment chasu ai displaystyle a i mozhe buti vid yemnim Bagato publikacij iz potokovoyi obrobki rozglyadayut zadachu obchislennya statistik nad chastotnim rozpodilom danih Pri comu obsyag danih duzhe velikij dlya efektivnogo zberigannya Prikladami netrivialnih zadach ye obchislennya mediani dovilnih percentiliv abo kilkist unikalnih elementiv potoku Formalno dlya zadach cogo klasu vvazhayetsya sho vektor a a1 an displaystyle mathbf a a 1 dots a n inicializovanij nulovoyu poslidovnistyu 0 displaystyle mathbf 0 maye pevnu kilkist onovlen Kozhne onovlennya zbilshuye abo zmenshuye znachennya v okremij komirci vektora Meta algoritmu obchisliti funkciyi vid a displaystyle mathbf a vikoristovuyuchi istotno menshe miscya nizh vimagaye povne yak podannya vektora a displaystyle mathbf a tak i zberezhennya obsyagu obroblyuvanih danih Isnuyut dvi zagalni modeli onovlennya takih danih kasa angl cash register ta turniket angl turnstile U potokovih algoritmah rozglyadayutsya yak pitannya pov yazani z chastotnimi harakteristikami danih tak i nizka inshih Bagato zadach na grafah rozv yazuyutsya v umovah togo sho matricya sumizhnosti grafa potokovo pidvantazhuyetsya v deyakomu nevidomomu napered poryadku Takozh ye zadachi koli poryadok maye osoblive znachennya Napriklad zadacha pidrahunku chisla inversij abo poshuku najbilshoyi zrostalnoyi pidposlidovnosti Porivnyannya algoritmivOsnovni harakteristiki potokovih algoritmiv kilkist dopustimih prohodiv algoritmu nad danimi dostupna pam yat chas obrobki okremogo elementa Ci algoritmi mayut bagato spilnogo z onlajnovimi algoritmami oskilki algoritm povinen prijmati rishennya do togo yak stanut dostupnimi vsi dani ale ye j vidminnosti Zokrema potokovi algoritmi mayut mozhlivist vidklasti uhvalennya rishennya do momentu prihodu grupi tochok poslidovnosti danih todi yak onlajnovi algoritmi povinni prijmati rishennya v miru prihodu kozhnoyi novoyi tochki poslidovnosti Yaksho algoritm ye nablizhenim to she odnim pokaznikom ye tochnist vidpovidi Tochnist algoritmu chasto podayut yak velichinu ϵ d displaystyle epsilon delta sho oznachaye sho algoritm dosyagne pomilki menshe ϵ displaystyle epsilon z imovirnistyu 1 d displaystyle 1 delta ZastosuvannyaPotokovi algoritmi vazhlivi v zadachah monitoringu komp yuternih merezh Napriklad vidstezhennya potokiv visokoyi intensivnosti ocinennya zagalnoyi kilkosti riznih potokiv nablizhene ocinennya rozpodilu intensivnosti potokiv tosho Takozh potokovi algoritmi mozhut zastosovuvatis u bazah danih napriklad dlya ocinennya rozmiru dekartovogo dobutku tablic Prikladi zadach yaki rozv yazuyut potokovi algoritmiZadachi z chastotnim rozpodilom k displaystyle k ij moment chastoti u vektori a displaystyle mathbf a viznachayut yak Fk a i 1naik displaystyle F k mathbf a sum i 1 n a i k Pershij moment F1 displaystyle F 1 ce prosta suma chastot tobto zagalne chislo Drugij moment F2 displaystyle F 2 korisnij dlya obchislennya statistichnih parametriv danih napriklad koeficiyenta Dzhini F displaystyle F infty viznachayut yak chastotu elementa sho zustrichayetsya najchastishe Takozh vivcheno pitannya ocinennya momentiv chastot Poshuk vazhkih elementiv Zadacha polyagaye v poshuku v potoci danih elementa yakij zustrichayetsya najchastishe Tut zastosovuyutsya taki algoritmi algoritm bilshosti golosiv Boyera Mura en angl sticky sampling en vibirka ta utrimannya angl sample and hold bagatorivnevij filtr Bluma pidrahunok nacherkiv angl Count sketch vibirka na osnovi nacherkiv angl Sketch guided sampling Vidstezhennya trendu Vidstezhennya trendu v potoci danih zazvichaj provodyat u takomu poryadku najchastishi elementi ta yihni chastoti viznachayut na osnovi odnogo zi zgadanih vishe algoritmiv a potim najbilshe zbilshennya vidnosno poperednogo momentu chasu vidznachayut yak trend Dlya cogo zastosovuyut eksponencijne ruhome serednye i rizne normuvannya Algoritm vikoristovuye O e log d miscya i O 1 dlya najgirshogo vipadku onovlennya za universalnoyi gesh funkciyi zi simejstva r rozumnih nezalezhnih gesh funkcij z r W log 1 e log log 1 e Entropiya Empirichna ocinka entropiyi nad naborom chastot a displaystyle mathbf a viznachayetsya yak Fk a i 1naimlog aim displaystyle F k mathbf a sum i 1 n frac a i m log frac a i m de m i 1nai displaystyle m sum i 1 n a i Mashinne navchannya Osnovna zadacha onlajnovogo mashinnogo navchannya navchiti model napriklad klasifikator za odin prohid za navchalnoyu vibirkoyu dlya yiyi rozv yazannya zazvichaj vikoristovuyut en i stohastichnij gradiyentnij spusk Pidrahunok chisla unikalnih elementiv Pidrahunok kilkosti unikalnih elementiv u potoci danih moment F0 displaystyle F 0 she odna dobre vivchena zadacha Pershij algoritm zaproponuvali Flazhole ta Marten 2010 roku znajdeno asimptotichno optimalnij algoritm PrimitkiMunro ta Paterson 1980 Flajolet ta Martin 1985 Alon Matias ta Szegedy 1996 Feigenbaum Joan Sampath Kannan 2005 On graph problems in a semi streaming model Theoretical Computer Science 348 2 207 216 doi 10 1016 j tcs 2005 09 013 J Xu A Tutorial on Network Data Streaming Schubert E Weiler M 2014 SigniTrend scalable detection of emerging topics in textual streams by hashed significance thresholds Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining KDD 14 s 871 880 doi 10 1145 2623330 2623740 ISBN 9781450329569 Ocinki entropiyi navedeno v pracyah McGregor ta in Do Ba ta in Lall ta in Chakrabarti ta in utochniti Flajolet ta Martin 1985 Kane Daniel M Nelson Jelani Woodruff David P 2010 An optimal algorithm for the distinct elements problem Proceedings of the twenty ninth ACM SIGMOD SIGACT SIGART symposium on Principles of database systems PODS 10 New York NY USA ACM pp 41 52 doi 10 1145 1807085 1807094 ISBN 978 1 4503 0033 9 LiteraturaAlon Noga Matias Yossi 1999 The space complexity of approximating the frequency moments 58 1 137 147 doi 10 1006 jcss 1997 1545 ISSN 0022 0000Vpershe opublikovano yak Alon Noga Matias Yossi Szegedy Mario 1996 The space complexity of approximating the frequency moments s 20 29 CiteSeerX 10 1 1 131 4984 doi 10 1145 237814 237823 ISBN 978 0 89791 785 8 S2CID 1627911 Babcock Brian Babu Shivnath Datar Mayur 2002 Models and issues in data stream systems Proceedings of the 21st ACM SIGMOD SIGACT SIGART Symposium on Principles of Database Systems PODS 2002 PDF s 1 16 doi 10 1145 543613 543615 Kotidis Y Muthukrishnan S Strauss M J 2001 Surfing Wavelets on Streams One Pass Summaries for Approximate Aggregate Queries PDF Proceedings of the International Conference on Very Large Data Bases 79 88 Kane Daniel M Nelson Jelani Woodruff David P 2010 An optimal algorithm for the distinct elements problem PODS 10 New York NY USA ACM s 41 52 doi 10 1145 1807085 1807094 ISBN 978 1 4503 0033 9 Karp R M Papadimitriou C H 2003 A simple algorithm for finding frequent elements in streams and bags ACM Transactions on Database Systems 28 1 51 55 doi 10 1145 762471 762473 Lall Ashwin Sekar Vyas Ogihara Mitsunori Xu Jun Zhang Hui 2006 Data streaming algorithms for estimating entropy of network traffic Proceedings of the Joint International Conference on Measurement and Modeling of Computer Systems ACM SIGMETRICS 2006 PDF doi 10 1145 1140277 1140295 Xu Jun Jim 2007 A Tutorial on Network Data Streaming PDF PosilannyaStreaming Algorithms for Geometric Problems Piotr Indyk MIT Dagstuhl Workshop on Sublinear Algorithms IIT Kanpur Workshop on Data Streaming List of open problems in streaming zibrav Andrew McGregor za obgovorennyam na IITK Workshop on Algorithms for Data Streams 2006 StreamIt programming language and compilation infrastructure by MIT CSAIL IBM Spade Stream Processing Application Declarative Engine IBM InfoSphere StreamsPidruchnikiData Stream Algorithms and Applications by Stanford STREAM project survey Network Applications of Bloom filters po Broder and Mitzenmacher Xu s SIGMETRICS 2007 tutorial Lecture notes from Data Streams kurs na Barbados v 2009 Andrew McGregor and S Muthu Muthukrishnan