Video: Alt tæller i kampen for klimaet - RealMæglerne 2025
At lære at tælle objekter i en strøm kan hjælpe dig med at finde de hyppigste emner eller rangordne sædvanlige og usædvanlige begivenheder. Denne algoritme udnytter hashfunktioner og omtrentlige skitser. Det gør det efter at have filtreret duplikerede objekter og tæller forskellige elementer, der er optaget i datastrømmen.
Du bruger denne teknik til at løse problemer som at finde de hyppigste forespørgsler i en søgemaskine, de mest solgte varer fra en onlineforhandler, de meget populære sider på et websted eller de mest volatile aktier (ved at tælle de gange, hvor et lager er solgt og købt).
Du bruger løsningen på dette problem, Count-Min Sketch, til en datastrøm. Det kræver kun et dataport og gemmer så lidt information som muligt. Denne algoritme anvendes i mange virkelige situationer (såsom analyse af netværkstrafik eller styring af distribuerede datastrømme). Opskriften kræver brug af en flok hashfunktioner, der hver især er forbundet med en smule vektor på en måde, der ligner et blomstfilter, som vist i figuren:
- Initialiser alle bitvektorer til nuller i alle positioner.
- Anvend hash-funktionen for hver bitvektor, når du modtager et objekt fra en strøm. Brug den resulterende numeriske adresse til at øge værdien på den pågældende position.
- Anvend hash-funktionen til en objekt og hent værdien i den tilknyttede position, når du bliver bedt om at estimere en objekts frekvens. Af alle de værdier, der modtages fra bitvektorer, tager du det mindste som frekvensen af strømmen.
Fordi kollisioner altid er mulige, når der anvendes en hash-funktion, især hvis den tilhørende bitvektor har få pladser, har flere bitsvektorer ved hånden sikret dig, at mindst en af dem holder den korrekte værdi. Værdien af valget bør være den mindste, fordi den ikke blandes med falske positive tællinger på grund af kollisioner.