Streaming algoritmus - Streaming algorithm
A számítástechnika , a streaming algoritmusok algoritmusokat feldolgozására adatfolyamok , amelyben a bemenő kerül bemutatásra, mint a szekvencia elemek és lehet vizsgálni csak néhány menetben (általában csak egy ). A legtöbb modellben ezek az algoritmusok korlátozott memóriához férnek hozzá (általában logaritmikusak az adatfolyam méretében és/vagy maximális értékében). Előfordulhat, hogy az egyes tételek feldolgozási ideje is korlátozott.
Ezek a korlátozások azt jelenthetik, hogy egy algoritmus hozzávetőleges választ ad az adatfolyam összegzése vagy "vázlata" alapján.
Történelem
Bár a streaming algoritmusokat Munro és Paterson már 1978 -ban, valamint Philippe Flajolet és G. Nigel Martin 1982/83 -ban tanulmányozta, a streaming algoritmusok területét először Noga Alon , Yossi 1996 -os dokumentumában formalizálta és népszerűsítette. Matias , és Szegedy Mario . Ehhez a cikkhez a szerzők később 2005 -ben elnyerték a Gödel -díjat "a streaming algoritmusokhoz nyújtott alapvető hozzájárulásukért". Azóta nagy mennyiségű munka folyik az adatfolyam -algoritmusok köré, amelyek számítástechnikai területek széles skáláját ölelik fel, mint például az elmélet, az adatbázisok, a hálózatépítés és a természetes nyelvfeldolgozás.
A féláramú algoritmusokat 2005-ben vezették be a gráfok streamelési algoritmusainak lazításaként, amelyekben a megengedett tér lineáris az n csúcsok számában , de csak logaritmikus az m élek számában . Ez a lazítás még mindig jelentős a sűrű gráfok számára, és megoldhat olyan érdekes problémákat (például a kapcsolódást), amelyek térben oldhatatlanok .
Modellek
Adatfolyam modell
Az adatfolyam -modellben a bemenet egy része vagy egésze egész számok véges szekvenciájaként jelenik meg (valamilyen véges tartományból), amely általában nem érhető el véletlenszerű hozzáféréshez , hanem egyenként érkezik egy "folyamban". Ha az adatfolyamnak hossza n , és a domain van mérete m , algoritmusok általában korlátozott hely használni, amely logaritmikus a m és n . Általában csak kis számú állandó áthaladást tudnak végrehajtani a patakon, néha csak egyet .
Forgatókapu és pénztárgép modellek
A streaming szakirodalom nagy része statisztikai számításokkal foglalkozik a tárolásra túl nagy frekvenciaeloszlásokról. Ennek a problémakörnek van egy vektora (inicializálva a nulla vektorra ), amely frissítéseket mutat be a folyamban. Ezen algoritmusok célja olyan funkciók kiszámítása, amelyek lényegesen kevesebb helyet foglalnak el, mint amennyi a pontos ábrázoláshoz szükséges . Az ilyen folyamok frissítésére két általános modell létezik, az úgynevezett "pénztárgép" és a "turnstile" modell.
A pénztárgép -modellben minden frissítés formájú , tehát néhány pozitív egész számmal növekszik . Figyelemre méltó különleges eset, amikor (csak az egység behelyezése megengedett).
A forgószárnyas modellben minden frissítés formájú , tehát néhány (esetleg negatív) egész számmal növelhető . A "szigorú turnstile" modellben egyetlen esetben sem lehet kevesebb nullánál.
Tolóablakos modell
Számos cikk figyelembe veszi a "csúszó ablak" modellt is. Ebben a modellben az érdekes funkció az adatfolyam rögzített méretű ablakán keresztül történő számítás. A folyam előrehaladtával az ablak végén lévő elemek eltávolításra kerülnek, míg az adatfolyamból származó új elemek a helyükre kerülnek.
A fenti frekvenciaalapú problémák mellett néhány más típusú problémát is tanulmányoztak. Sok gráfprobléma megoldódik abban a beállításban, ahol a grafikon szomszédsági mátrixát vagy szomszédsági listáját valamilyen ismeretlen sorrendben közvetítik. Vannak olyan problémák is, amelyek nagymértékben függenek az adatfolyam sorrendjétől (azaz aszimmetrikus függvények), például a folyam inverzióinak számolása és a leghosszabban növekvő alsorozat megtalálása.
Értékelés
Az adatfolyamokon működő algoritmus teljesítményét három alapvető tényező határozza meg:
- Az algoritmus által a folyamon végrehajtott passzok száma.
- A rendelkezésre álló memória.
- Az algoritmus futási ideje.
Ezek az algoritmusok sok hasonlóságot mutatnak az online algoritmusokkal, mivel mindkettő megköveteli a döntést, mielőtt minden adat rendelkezésre áll, de nem azonosak. Az adatfolyam -algoritmusoknak csak korlátozott memóriája áll rendelkezésre, de képesek lehetnek elhalasztani a műveletet, amíg egy pontcsoport meg nem érkezik, míg az online algoritmusoknak lépéseket kell tenniük, amint minden pont megérkezik.
Ha az algoritmus közelítő algoritmus, akkor a válasz pontossága egy másik kulcsfontosságú tényező. A pontosságot gyakran közelítésként határozzák meg, ami azt jelenti, hogy az algoritmus kisebb hibát ér el, mint valószínűséggel .
Alkalmazások
A streamelési algoritmusoknak számos alkalmazása van a hálózatépítésben, mint például az elefántáramlás hálózati kapcsolatainak figyelése , a különálló folyamok számának számítása, az áramlási méretek megoszlásának becslése stb. Alkalmazásaik vannak adatbázisokban is, például becsülik a csatlakozás méretét .
Néhány streaming probléma
Frekvencia pillanatok
A frekvenciahalmaz k -edik frekvenciamomentuma a következő .
Az első pillanat egyszerűen a frekvenciák összege (azaz a teljes szám). A második pillanat hasznos az adatok statisztikai tulajdonságainak, például a Gini variációs együttható kiszámításához . a leggyakrabban előforduló tételek gyakorisága.
Alon, Matias és Szegedy alapvető dolgozata a gyakorisági pillanatok becslésének problémájával foglalkozott.
Frekvenciamomentumok kiszámítása
A frekvenciamomentumok megkeresésének közvetlen megközelítése megköveteli a m i regiszter fenntartását minden különálló a i ∈ (1,2,3,4, ..., N ) elemhez , amely legalább a rend memóriáját igényli . De vannak helykorlátaink, és olyan algoritmust igényelünk, amely sokkal alacsonyabb memóriában számol. Ezt úgy érhetjük el, hogy közelítéseket használunk a pontos értékek helyett. Egy algoritmust, amely kiszámít egy ( ε, δ ) közelítése F k , ahol F” k a ( ε, δ ) - közelítő értéke az F k . Ahol ε a közelítő paraméter, és δ a megbízhatósági paraméter.
F 0 kiszámítása (különálló elemek egy adatfolyamban)
FM-Sketch algoritmus
Flajolet és mtsai. bevezette a valószínűségi számítási módszert, amelyet Robert Morris dolgozata ihletett . Morris tanulmányában azt mondja, hogy ha a pontosság követelménye leesett, egy számláló n lehet helyettesíteni egy számláló log n tárolható a log log n bit. Flajolet és mtsai. továbbfejlesztve ezt a módszert egy h hash függvény használatával, amely feltételezi, hogy egyenletesen osztja el az elemet a hash térben ( L hosszúságú bináris karakterlánc ).
Jelölje a bit ( y, k ) az y bináris ábrázolásának k -edik bitjét
A Let a legkevésbé szignifikáns 1 bites pozíciót jelöli y i bináris ábrázolásában, megfelelő konvencióval .
Legyen A az M hosszúságú adatfolyam sorozata, amelynek számosságát meg kell határozni. Legyen BITMAP [0 ... L - 1] a
hash tér, ahol a ρ ( kivonatolt értékek ) van rögzítve. Az alábbi algoritmus ezután meghatározza hozzávetőleges számossága 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
Ha egy adatfolyamban N különálló elem található.
- Mert akkor a BITMAP [ i ] minden bizonnyal 0
- Mert akkor a BITMAP [ i ] minden bizonnyal 1
- Az ezután BITMAP [ i ] egy peremén a 0 és 1-es
K -minimális értékű algoritmus
Az előző algoritmus leírja Flajolet és Martin első kísérletét az F 0 közelítésére az adatfolyamban. Algoritmusuk kiválaszt egy véletlenszerű hash függvényt, amely feltételezi, hogy egyenletesen osztja el a hash értékeket a hash térben.
Bar-Yossef és mtsai. bevezetett k-minimum értékű algoritmus az adatfolyamban lévő különböző elemek számának meghatározására. Ők használt egy hasonló hash függvény H , amelyek normalizálni lehet, hogy a [0,1], mint . De rögzítettek egy t korlátot a hash térben lévő értékek számára. A t értékét a sorrend feltételezi (azaz a kisebb közelítési érték ε több t-t igényel ). A KMV algoritmus csak a t -legkisebb hash -értékeket tartja a hash térben. Miután a patak összes m értéke megérkezett, kiszámításra kerül . Vagyis egy közel egységes hash-térben legalább t elemre számítanak, mint a .
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)
A KMV komplexitás elemzése
A KMV algoritmus memóriabites térben valósítható meg . Mindegyik kivonatolási értékhez rendelt memóriabitek szükségesek . A sorrend hash értékei vannak . A hozzáférési idő csökkenthető, ha a t hash értékeket egy bináris fában tároljuk . Így az idő bonyolultsága lecsökken .
F k számítása
Alon és mtsai. becsli az F k -t az adott térben és időben kiszámítható véletlen változók meghatározásával. A véletlen változók várható értéke F k hozzávetőleges értékét adja .
Tegyük fel, hogy az m sorozat hossza előre ismert. Ezután készítsen X véletlenszerű változót az alábbiak szerint:
- Jelölje egy p lehet véletlenszerű tagja szekvencia egy index a p ,
- Let , képviseli az előfordulások számát az L belül a tagok a szekvencia A következő egy p .
- Véletlen változó .
Tegyük fel, hogy S 1 rendű és S 2 rendű . Az algoritmus S 2 véletlen változót vesz fel és adja ki a mediánt . Ahol Y i X ij átlaga, ahol 1 ≤ j ≤ S 1 .
Most számítsa ki az E ( X ) véletlen változó elvárását .
F k bonyolultsága
A fentiekben tárgyalt F k kiszámítási algoritmusból láthatjuk, hogy minden X véletlen változó tárolja a p és r értékét . Tehát az X kiszámításához csak log ( n ) biteket kell fenntartanunk a p tárolására és log ( n ) biteket az r tárolására . Az X véletlenszerű változó teljes száma a .
Ezért az algoritmus teljes térbonyolultsága nagyságrendű
Egyszerűbb módszer az F 2 kiszámítására
Az előző algoritmus memóriabitek sorrendjében számol . Alon és mtsai. leegyszerűsítve ezt az algoritmust négy bölcs független független véletlen változó használatával, amelynek értékei leképezve .
Ez tovább csökkenti a komplexitást számítani , hogy
Gyakori elemek
Az adatfolyam -modellben a gyakori elemekkel kapcsolatos probléma az, hogy olyan elemhalmazt ad ki, amely több mint a folyam bizonyos rögzített töredéke. Különleges eset a többségi probléma , amelynek során meg kell határozni, hogy bármely érték a folyam többségét alkotja -e vagy sem.
Formálisabban rögzítsen valamilyen pozitív c > 1 konstansot , legyen az áram hossza m , és f i jelölje az i érték gyakoriságát a folyamban. A gyakori elemek probléma a kimeneti halmaz { i | f i > m/c}.
Néhány figyelemre méltó algoritmus:
- Boyer – Moore többségi szavazati algoritmus
- Count-Min vázlat
- Vesztes számolás
- Többlépcsős Bloom szűrők
- Misra – Gries összefoglaló
Eseményérzékelés
Az adatfolyamokban az események észlelése gyakran a fent felsorolt nehéz ütő algoritmus segítségével történik: a leggyakoribb tételeket és azok gyakoriságát ezen algoritmusok egyikével határozzák meg, majd az előző időponthoz képest a legnagyobb növekedést jelentik trendként. Ez a megközelítés finomítható exponenciálisan súlyozott mozgóátlagok és variancia használatával a normalizáláshoz.
Különálló elemek számolása
A folyamban lévő különböző elemek számának (néha F 0 pillanatnak) számolása egy másik jól tanulmányozott probléma. Az első algoritmust Flajolet és Martin javasolta. 2010 -ben Daniel Kane , Jelani Nelson és David Woodruff aszimptotikusan optimális algoritmust talált erre a problémára. Ez használ O ( ε 2 + log d ) térben, O (1) legrosszabb frissítés és jelentési szer, valamint az univerzális hash függvények, és egy R -wise független hash család, ahol r = Ω (log (1 / ε ) / log log (1/ ε )) .
Entrópia
A (empirikus) entrópiája frekvenciák készletéhez definiáljuk , ahol .
Online tanulás
Tanuljon meg egy modellt (pl. Osztályozó ) egyetlen passz segítségével egy edzéssorozaton.
Alsó határok
Sok vizsgált adatfolyam -probléma esetében alacsonyabb határokat számítottak ki. Az alsó határok kiszámításának leggyakoribb technikája messze a kommunikáció bonyolultsága volt .
Lásd még
- Adatfolyam bányászat
- Adatfolyam csoportosítás
- Online algoritmus
- Adatfolyam feldolgozás
- Szekvenciális algoritmus
Megjegyzések
- ^ Munro, J. Ian; Paterson, Mike (1978). "Kiválasztás és rendezés korlátozott tárhellyel". 19. éves szimpózium a számítástechnika alapjairól, Ann Arbor, Michigan, USA, 1978. október 16–18 . IEEE Számítógépes Társaság. 253–258. doi : 10.1109/SFCS.1978.32 .
- ^ a b c Flajolet & Martin (1985)
- ^ a b c d Alon, Matias & Szegedy (1996)
- ^ Feigenbaum, Joan; Sampath, Kannan (2005). "A gráfproblémákról egy féláramú modellben" . Elméleti számítástechnika . 348 (2): 207–216. doi : 10.1016/j.tcs.2005.09.013 .
- ^ Babcock, Brian; Babu, Shivnath; Datar, Mayur; Motwani, Rajeev; Widom, Jennifer (2002). Modellek és problémák az adatfolyam -rendszerekben . A huszonegyedik ACM SIGMOD-SIGACT-SIGART szimpózium folyóirata az adatbázis-rendszerek elveiről . PODS '02. New York, NY, USA: ACM. 1–16. CiteSeerX 10.1.1.138.190 . doi : 10.1145/543613.543615 . ISBN 978-1581135077. S2CID 2071130 .
- ^ Bar-Yossef, Ziv; Jayram, TS; Kumar, Ravi; Sivakumar, D .; Trevisan, Luca (2002-09-13). Különálló elemek számlálása egy adatfolyamban . Randomizációs és közelítési technikák a számítástechnikában . Előadás jegyzetek a számítástechnikában. Springer, Berlin, Heidelberg. 1–10. CiteSeerX 10.1.1.12.6276 . doi : 10.1007/3-540-45726-7_1 . ISBN 978-3540457268.
- ^ Gilbert és mtsai. (2001)
- ^ Xu (2007)
- ^ Indyk, Piotr; Woodruff, David (2005-01-01). Az adatfolyamok gyakorisági pillanatainak optimális közelítése . A számítástechnika elméletéről szóló harminchetedik éves ACM szimpózium folyóirata . STOC '05. New York, NY, USA: ACM. 202–208. doi : 10.1145/1060590.1060621 . ISBN 978-1-58113-960-0. S2CID 7911758 .
- ^ a b Bar-Yossef, Ziv; Jayram, TS; Kumar, Ravi; Sivakumar, D .; Trevisan, Luca (2002-09-13). Rolim, José DP; Vadhan, Salil (szerk.). Különálló elemek számlálása az adatfolyamban . Előadás jegyzetek a számítástechnikában. Springer Berlin Heidelberg. 1–10. CiteSeerX 10.1.1.12.6276 . doi : 10.1007/3-540-45726-7_1 . ISBN 978-3-540-44147-2.
- ^ Morris (1978)
- ^ Flajolet, Philippe (1985-03-01). "Hozzávetőleges számolás: Részletes elemzés". BIT numerikus matematika . 25. (1): 113–134. CiteSeerX 10.1.1.64.5320 . doi : 10.1007/BF01934993 . ISSN 0006-3835 . S2CID 2809103 .
- ^ Cormode, Graham (2014). "Misra-Gries összefoglalók". In Kao, Ming-Yang (szerk.). Algoritmusok enciklopédiája . Springer USA. 1–5. doi : 10.1007/978-3-642-27848-8_572-1 . ISBN 9783642278488.
- ^ Schubert, E .; Weiler, M .; Kriegel, HP (2014). SigniTrend: a szöveges folyamokban felmerülő témák skálázható észlelése a kivonatolt szignifikanciaküszöbök szerint . A 20. ACM SIGKDD nemzetközi konferencia előadásai a tudásfeltárásról és az adatbányászatról - KDD '14. 871–880. doi : 10.1145/2623330.2623740 . ISBN 9781450329569.
- ^ Kane, Nelson és Woodruff (2010)
Hivatkozások
- Alon, Noga ; Matias, Yossi ; Szegedy, Mario (1999), "A frekvenciamomentumok közelítésének térbeli összetettsége", Journal of Computer and System Sciences , 58 (1): 137–147, doi : 10.1006/jcss.1997.1545 , ISSN 0022-0000. Először Alon, Noga néven jelent meg; Matias, Yossi; Szegedy, Mario (1996), "A frekvenciamomentumok közelítésének térbeli összetettsége", Proceedings of the 28.th ACM Symposium on Theory of Computing (STOC 1996) , 20–29. O. , 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; Motwani, Rajeev ; Widom, Jennifer (2002), "Modellek és problémák az adatfolyam rendszerekben", Proceedings of the 21.st ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS 2002) (PDF) , 1–16. O. , CiteSeerX 10.1. 1.138.190 , doi : 10.1145/543613.543615 , ISBN 978-1581135077, S2CID 2071130.
- Gilbert, AC ; Kotidis, Y .; Muthukrishnan, S .; Strauss, MJ (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). "Optimális algoritmus a különböző elemek problémájához". Az adatbázis-rendszerek elveiről szóló ACM SIGMOD-SIGACT-SIGART szimpózium huszonkilencedik alkalommal folytatott munkája . PODS '10. New York, NY, USA: ACM. 41–52. CiteSeerX 10.1.1.164.142 . doi : 10.1145/1807085.1807094 . ISBN 978-1-4503-0033-9. S2CID 10006932 ..
- Karp, RM ; Papadimitriou, CH ; Shenker, S. (2003), "Egy egyszerű algoritmus a gyakori elemek megtalálására a folyamokban és zsákokban", ACM Transactions on Database Systems , 28 (1): 51–55, CiteSeerX 10.1.1.116.8530 , doi : 10.1145/762471.762473 , S2CID 952840.
- Lall, Ashwin; Sekar, Vyas; Ogihara, Mitsunori; Xu, június; Zhang, Hui (2006), "Adatfolyam -algoritmusok a hálózati forgalom entrópiájának becsléséhez", A Számítógépes rendszerek méréséről és modellezéséről szóló közös nemzetközi konferencia (ACM SIGMETRICS 2006) (PDF) , o. 145, doi : 10.1145/1140277.1140295 , hdl : 1802/2537 , ISBN 978-1595933195, S2CID 240982.
- Xu, június (Jim) (2007), A hálózati adatfolyamok bemutatója (PDF).
- Heath, D., Kasif, S., Kosaraju, R., Salzberg, S., Sullivan, G., "Learning Nested Concepts With Limited Storage", Proceeding IJCAI'91 Proceedings of the 12th international international conference on Artificial Intelligence - Volume 2, 777-782. Oldal, Morgan Kaufmann Publishers Inc. San Francisco, CA, USA © 1991
- Morris, Robert (1978), "Nagyszámú esemény számolása kis regiszterekben", Communications of the ACM , 21 (10): 840–842, doi : 10.1145/359619.359627 , S2CID 36226357.