“在 insertion only 流和 $\ell 1$ 频率阈值下,Misra–Gries 摘要用至多 $k 1$ 个计数器生成所有频率超过 $m/k$ 的候选,并给出确定性的加性欠估界。…”
形式陈述 ​
更新规则 ​
Misra–Gries 为频繁项与重项问题处理insertion-only 流
误差证明 ​
设共执行
若
直觉
候选表满时的全体减一,可以解释为把当前新元素与
例子与边界
可跟踪例子 ​
网络流依次出现 A、B、A、C,取
输出与边界 ​
候选可能是假阳性,且计数是下界;若需精确报告超过阈值者,可对候选做第二遍真实计数。一般 turnstile 流含负更新,消去解释不再成立。参数是
推论与应用
“全部计数器同时减一”可看作删除一组互异元素,整个流中发生次数受总长度限制;摊还分析据此说明朴素更新或批量实现的总减计数工作。
合并与加权更新 ​
两个分片摘要不能简单逐键相加后保留前
正整数权重更新可一次增加计数并批量执行共同减量,而不逐个展开;证明要把每次消去的总权重计入
计数误差从消去组得到 ​
设一共执行
这给出确定性一侧误差;频率严格大于
流 a,b,a,c,a,b、c 会把 a,b,c 各消去一次,而后续 a,b 再建立计数。摘要最后可能低估实际次数,但不会制造不存在的重频元素。
候选身份和精确频率是两个问题。若要输出所有超过阈值的元素,可在可重读数据上第二遍精确计数;单遍且不能保存原流时,只能给候选与误差界,不能把摘要计数当真实频率。
参考资料
- Jayadev Misra, David Gries, Finding Repeated Elements, Science of Computer Programming, 1982.
- Erik Demaine, Alejandro López-Ortiz, J. Ian Munro, Frequency Estimation of Internet Packet Streams, ESA, 2002.