Improved distance sensitivity oracles via random sampling

We present improved oracles for the distance sensitivity problem. The goal is to preprocess a graph G = (V,E) with non-negative edge weights to answer queries of the form: what is the length of the shortest path from x to y that does not go through some <i>failed</i> vertex or edge f. There are two state of the art algorithms for this problem. The first produces an oracle of size <i>Õ</i>(n<sup>2</sup>) that has an O(1) query time, and an <i>Õ</i>(mn<sup>2</sup>) construction time. The second oracle has size O(n<sup>2.5</sup>), but the construction time is only <i>Õ</i>(mn<sup>1.5</sup>). We present two new oracles that substantially improve upon both of these results. Both oracles are constructed with randomized, Monte Carlo algorithms. For directed graphs with non-negative edge weights, we present an oracle of size <i>Õ</i>(n<sup>2</sup>), which has an O(1) query time, and an <i>Õ</i>(n<sup>2</sup>√<i>m</i>) construction time. For unweighted graphs, we achieve a more general construction time of <i>Õ</i>(√n<sup>3</sup> · <i>APSP</i> + <i>mn</i>), where APSP is the time it takes to compute all pairs shortest paths in an aribtrary subgraph of G.