Approximate Counting Algorithm Ariel Rosenfeld Counter ranges from

  • Slides: 10
Download presentation
Approximate Counting Algorithm Ariel Rosenfeld

Approximate Counting Algorithm Ariel Rosenfeld

Counter ranges from 0 to M requiers log 2 M bits. For large data

Counter ranges from 0 to M requiers log 2 M bits. For large data log 2 M is still a lot. Using probability to reduce to log 2 M bits. ◦ Small probability of errors.

The Idea • Counting of a large number of events using a small amount

The Idea • Counting of a large number of events using a small amount of memory, while incorporating some probability. 1977 by Robert Morris. • 1982 analyzed by Philippe Flajolet. •

Applications Gathering statistics on a large number of events Streaming data frequency Data compression

Applications Gathering statistics on a large number of events Streaming data frequency Data compression Etc. .

Counting • Because we give up accuracy, we use 2 k approximation and only

Counting • Because we give up accuracy, we use 2 k approximation and only keep the exponent. • Representing if the approximate number is M, we only keep 2 k =M in binary form. • Log 2 log 2 M • How do we know when to increase k?

Probability! Generate "c" pseudo-random bits ◦ "c" = current value of the counter If

Probability! Generate "c" pseudo-random bits ◦ "c" = current value of the counter If all are 1 ◦ What is the probability? ◦ How to check it efficiently? Simply add the result to the counter.

Example

Example

Another view

Another view

Analysis What is the probability of increment? ◦ 2 -C After N increments (probabilistic

Analysis What is the probability of increment? ◦ 2 -C After N increments (probabilistic explanation in article) ◦ E(2 C) = n+2 ◦ Var(2 C) = n(n+ 1)/2 ◦ Small chance to be “far off”.

Example Increase was called 1024 times. ◦ Correct value should be 10. ◦ Chance

Example Increase was called 1024 times. ◦ Correct value should be 10. ◦ Chance of being more than 1 off is ~8%.