17
Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo Waterloo On Canada

Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Embed Size (px)

Citation preview

Page 1: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Integer Representations and Counting in the Bit Probe Model

M. Zaiur Rahman and J. Ian MunroCheriton School of Computer Science

University of WaterlooWaterloo On

Canada

Page 2: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Integer Representations

• Standard: n bits representing {0..2n}

• # bits … optimal

• Increment: – Θ(n) bit inspections/changes worst case– O(1) amortized, but not if we include

decrement

Page 3: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Redundant Binary Numbers

• Use “digits” 0,1,2 but representation is in binary, 2 is a delayed carrye.g. 01220 = 10100

• Space 2n bits (or reduce to about (lg 3) n)– Increment O(1), as we de-amortize the scan

to release the rightmost carry– Decrement is tricky, easiest to use digit “-1”– Note the extra lg n bits for the scan pointer

Page 4: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Gray Codes .. Due to Gray ..of course

Binary Reflected Gray Code (BRGC)– Of dimension n (i.e. n bits, numbers [0..2n]– A sequence of 2n strings each of length n

G(n) = 0.G(n-1), 1.G(n-1)R

(reversal is on the sequence order, not the individual codes)

Page 5: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Increment on a Gray Code

• Even parity: flip rightmost 1 bit

Page 6: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Increment on a Gray Code

• Even parity: flip rightmost bit

00110000 → 00110001

Page 7: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Increment on a Gray Code

• Even parity: flip rightmost bit

00110000 → 00110001

• Odd parity: flip the bit to left of rightmost 1

01110000 → 01010000

Page 8: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Increment on a Gray Code

• Even parity: flip rightmost bit

00110000 → 00110001

• Odd parity: flip the bit to left of rightmost 1

01110000 → 01010000• Costs:1 bit changed, n inspections (worst case)

• Or: add parity bit, O(1) amortized insert, 2 bits changed

• Integrate parity bit with code (no extra bit [Lucal])

Page 9: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Our First Result: Lower Bound

Theorem: Any representation of [0..2n] using exactly n bits requires Ω(√n) bit inspections in the worst case.

Proof: Model, apply Sunflower Lemma and manipulate

Page 10: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Sunflower Lemma [Ёrdos & Rado]

• Sunflower with p petals– Sets S1, …, Sp so SiSj is same for all i,j

Lemma: S1, …, Sp is a system of sets each of size at most q. If m>(p-1)q+1q!, then it contains a subcollection with p petals

Use the lemma with m as small as possible

Page 11: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Back to Algorithms

• We want a scheme that balances (as well as possible)– Bit changes– Bit inspections– Extra bits

Lower bound says no extra bits lots of inspections

Page 12: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

The increment in BRGC

• Key issue … that rightmost 1

Lemma: On increment or decrement, the position of rightmost 1 in any segment of the leftmost bits changes only when that bit is flipped, except for the case of leftmost bit going 1→0 on increment (or 0 → 1 on decrement)

Page 13: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

De-amortizing

• The lemma lets us de-amortize: as with redundant binary representation.

With some details:

Theorem: There is a representation using n + lg n + 3 bits (a pointer is in there), requiring 2 lg n +4 bit inspections and 4 bit changes for increment or decrement.

Page 14: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Moving Along

• Complicating issue:Mixing increments and decrements forces us to add flags – (for {inc, dec} and {done yet , not done}

• Idea: use the lower order lg n bits to give the pointer into the leftmost n - lg n bits– This would seem to require a table (or model

issue) to translate

Page 15: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

But

• Permute the code of the leading n – lg n bits and use trailing bits directly to walk through them in “code order”

• Indeed, we don’t need n – lg n to be a power of 2

Theorem: There is a representation using n + 3 bits, requiring lg n + 6 bit inspections and 7 bit changes for increment or decrement.

Page 16: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Addition and Subtraction

• Adding or subtracting and m digit (standard notation) integer to update an n digit integer (n > m): – n + O(lg2n) bits, – O(m + lg n) inspections/changes

Page 17: Integer Representations and Counting in the Bit Probe Model M. Zaiur Rahman and J. Ian Munro Cheriton School of Computer Science University of Waterloo

Open Issues

• Improve the lower bound to n bits inspected in no extra bits

• Lower bound trading off bits changed with space and bits inspected

• Tweaking upper bounds