I. Introduction
A distance oracle is a replacement for the all-pairs shortest paths matrix of a graph. Given a graph with vertices and edges, the goal is to construct a data structure of small (subquadratic) space, such that the distance between any two vertices can be computed efficiently (say, in constant time). Since subquadratic space is believed to be unattainable in the exact case, we allow approximation. Say the query asks about the distance between vertices and , and let . Then, a -approximate distance oracle might return a distance of . The oracle should also be able to list a path of length in constant time per hop.