Amsterdam · algorithms · lattices
Peter van Emde Boas
born 1945 · University of Amsterdam · ILLC
He found a way to search numbers by cutting their bits in half, again and again, and showed that one of the problems now guarding the internet against quantum computers is hard.
64 steps
balanced tree
6 steps
van Emde Boas
- 1945Amsterdam
- 1975vEB tree
- log logsearch time
- 1981short vectors
The man
Peter van Emde Boas was born in Amsterdam on 3 April 1945 and took his doctorate at the University of Amsterdam in 1974 under Adriaan van Wijngaarden, who had built the Netherlands' first computers at the Mathematical Centre. He spent his career as a professor at Amsterdam, in mathematics, computer science and the Institute for Logic, Language and Computation, working on algorithms, complexity and the models of machines that computer science reasons about.
The problem: what comes next?
A computer often keeps a set of numbers and asks: what is the next one after x? Schedulers, routers and simulations ask it millions of times a second. A sorted list or balanced tree answers by comparing, one decision at a time, and needs about as many steps as the numbers have bits: up to 64 for 64-bit numbers.
Van Emde Boas's 1975 idea was to stop comparing whole numbers and split each one into its high half and its low half:
- M: how many possible numbers there are, 2 to the power of the bit count
- √M: the size of each cluster, and also how many clusters there are
- high(x): the top half of x's bits: which cluster it lives in
- low(x): the bottom half: where inside that cluster
Every cluster is itself a smaller van Emde Boas tree, and so is a summary that records which clusters hold anything. The trick that makes it fast: each cluster remembers its own smallest and largest number. So to find the next number after x, the tree asks one question, “is there anything after x in its own cluster?”, and then recurses into only one place: the cluster, or the summary. Never both.
130
next after 100
4
vEB calls
30
plain scan
- size 256, x = 100: cluster 6 has nothing after 4: ask the summary
- size 16, x = 6: cluster 1 has nothing after 2: ask the summary
- size 4, x = 1: cluster 0 has nothing after 1: ask the summary
- size 2, x = 0: found 1
Why log log
Each call throws away half of the bits, and does a fixed amount of work before it does:
- m: the number of bits in a key
- T(m): steps to answer one query about m-bit keys
- c: the small fixed work per call: split x, check one min or max
- log₂ m: how many times you can halve m before reaching one bit
For 64-bit numbers that is 6 steps instead of up to 64. The cost is memory: the plain tree reserves room for every possible number, so later versions with hashing keep only what is stored. The van Emde Boas tree is still the standard textbook example of beating the comparison bound by using the bits of the keys themselves.
Short vectors, 1981
A lattice is a grid of points made by adding whole-number copies of a few arrows. The same lattice can be built from short, square arrows or from long, skewed ones that make it look like noise. The shortest vector problem asks: given the skewed arrows, find the shortest non-zero point.
- b₁, b₂: the two arrows you are given
- i, j: any whole numbers, not both zero
- ‖ ‖: length
- λ₁: the length of the shortest point in the lattice
In a 1981 Amsterdam report van Emde Boas proved that finding the closest lattice point to a target is NP-hard, and that finding the shortest vector is too when length is measured by the largest coordinate. He conjectured it for ordinary length; Miklós Ajtai proved that in 1998, for randomized reductions. In two dimensions a few swaps solve it. In hundreds of dimensions no one, classical or quantum, knows a fast way, which is why NIST's 2024 post-quantum standard ML-KEM is built on lattices.
8.1
start arrow
2.24
shortest
3
steps
Timeline
3 Apr 1945
Born in Amsterdam.
1974
Doctorate at the University of Amsterdam under Adriaan van Wijngaarden, the father of Dutch computing and a chief designer of ALGOL 68.
1975
“Preserving order in a forest in less than logarithmic time”, at the IEEE Symposium on Foundations of Computer Science: the van Emde Boas tree.
1977
With R. Kaas and E. Zijlstra, “Design and implementation of an efficient priority queue”, and a linear-space version in Information Processing Letters.
1981
Report MI-UvA-81-04, “Another NP-complete partition problem and the complexity of computing short vectors in a lattice”: finding the closest lattice vector is NP-hard, and so is the shortest in the maximum norm. He conjectures the same for ordinary length.
1982
Lenstra, Lenstra and Lovász publish the LLL algorithm, which finds short-enough lattice vectors fast. Lattices become a field.
1990
“Machine models and simulations”, the opening chapter of the Handbook of Theoretical Computer Science, sorts machines into a first and a second machine class.
1998
Miklós Ajtai proves van Emde Boas's conjecture, for randomized reductions: the shortest vector in ordinary length is NP-hard.
2009
The third edition of Cormen, Leiserson, Rivest and Stein's Introduction to Algorithms gives the van Emde Boas tree its own chapter.
Aug 2024
NIST publishes ML-KEM (FIPS 203), a post-quantum encryption standard whose security rests on hard lattice problems.
Sources
- P. van Emde Boas, “Preserving order in a forest in less than logarithmic time”, 16th IEEE FOCS (1975), doi:10.1109/SFCS.1975.26
- P. van Emde Boas, R. Kaas, E. Zijlstra, “Design and implementation of an efficient priority queue”, Mathematical Systems Theory 10 (1977)
- P. van Emde Boas, “Another NP-complete partition problem and the complexity of computing short vectors in a lattice”, report MI-UvA-81-04, University of Amsterdam (1981)
- M. Ajtai, “The shortest vector problem in L2 is NP-hard for randomized reductions”, STOC (1998)
- T. Cormen et al., Introduction to Algorithms, 3rd ed. (2009), chapter 20
- NIST, FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism (2024)
- P. van Emde Boas, homepage, staff.fnwi.uva.nl/p.vanemdeboas
The grid sim is a real van Emde Boas tree over 256 numbers; the lattice sim uses Lagrange–Gauss reduction, the two-dimensional ancestor of LLL. See also the ASML page for Frits van Hout.