Earth 1

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

A number with m bits can be found by deciding its bits one at a time (a balanced tree) or by splitting it into a high half and a low half and recursing on just one half (van Emde Boas).

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

  1. size 256, x = 100: cluster 6 has nothing after 4: ask the summary
  2. size 16, x = 6: cluster 1 has nothing after 2: ask the summary
  3. size 4, x = 1: cluster 0 has nothing after 1: ask the summary
  4. size 2, x = 0: found 1
Each row is a cluster of 16; the dot on the left is the summary, lit when its row holds anything. To find the next number the tree either looks inside one row or asks the summary which later row is non-empty, never both deeply.

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

Every dot is a whole-number mix of the two arrows. Both bases make exactly the same dots; the skewed one just hides the short vector. Reduction swaps and subtracts until the arrows are as short and square as they can be. In two dimensions that is easy; in hundreds it is believed to be hard, even for quantum computers.

Timeline

  1. 3 Apr 1945

    Born in Amsterdam.

  2. 1974

    Doctorate at the University of Amsterdam under Adriaan van Wijngaarden, the father of Dutch computing and a chief designer of ALGOL 68.

  3. 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.

  4. 1977

    With R. Kaas and E. Zijlstra, “Design and implementation of an efficient priority queue”, and a linear-space version in Information Processing Letters.

  5. 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.

  6. 1982

    Lenstra, Lenstra and Lovász publish the LLL algorithm, which finds short-enough lattice vectors fast. Lattices become a field.

  7. 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.

  8. 1998

    Miklós Ajtai proves van Emde Boas's conjecture, for randomized reductions: the shortest vector in ordinary length is NP-hard.

  9. 2009

    The third edition of Cormen, Leiserson, Rivest and Stein's Introduction to Algorithms gives the van Emde Boas tree its own chapter.

  10. Aug 2024

    NIST publishes ML-KEM (FIPS 203), a post-quantum encryption standard whose security rests on hard lattice problems.

Sources

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.