New Tradeoffs for Decremental Approximate All-Pairs Shortest Paths Michal Dory, Sebastian Forster, Yasamin Nazari, Tijn de Vos Abstract We provide new tradeoffs between approximation and running time for the decremental all-pairs shortest paths (APSP) problem. For undirected graphs with m edges and n nodes undergoing edge deletions, we provide four new approximate decremental APSP algorithms, two for weighted and two for unweighted graphs. Our first result is (2+ ε )(2+ε)-APSP with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2})$$\end{document}O~(m1/2n3/2) (when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m= n^{1+c}$$\end{document}m=n1+c for any constant 00η>0. Furthermore, the fastest known algorithm with a larger approximation ratio than our algorithm is the (3 + ε ) (3+ε)-approximate decremental distance oracle by Ła̧cki and Nazari [] with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m \sqrt{n}) $$\end{document}O~(mn). Our result also has to be compared to the fully dynamic algorithm of Bernstein [] for maintaining a (2 + ε ) (2+ε)-approximation that takes amortized time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ m^{1 + o(1)} $$\end{document}m1+o(1) per update. Note that in unweighted graphs, (2 + ε ) (2+ε)-approximate decremental APSP algorithm can be maintained with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^{2.5}) $$\end{document}O~(n2.5) (which is implied by the results of Abraham and Chechik [] and Henzinger et al. []). Our approach improves upon this bound for most densities, and matches it for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^2$$\end{document}m=n2.Table 1An overview of our results and the closest related workApproximationTotal update timeWeighted1+ε 1+εnm[]2+ε 2+ε\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{3/2}m^{1/2}$$\end{document}n3/2m1/2Theorem \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$nm^{3/4}$$\end{document}nm3/4Theorem 3+ε 3+ε\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{1/2}m$$\end{document}n1/2m[]Unweighted(1+ε ,2)(1+ε,2) or 2+ε 2+ε\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{5/2}$$\end{document}n5/2[, ]2+ε 2+ε\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m^{7/4}$$\end{document}m7/4Theorem (1+ε ,2(k-1))(1+ε,2(k-1))\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{2-1/k}m^{1/k}$$\end{document}n2-1/km1/kTheorem \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon ,2(1+\tfrac{2}{\epsilon })^{k-2})$$\end{document}(1+ε,2(1+2ε)k-2)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{2+1/k}$$\end{document}n2+1/k[]We use the simplifying assumptions: (a) subpolynomial factors are omitted from the total update time; (b) the ratio W between the maximum and minimum weight is polynomial in n; and (c) ε ε is a constant. The combination of (a) and (c) means that 1/ε 1/ε factors are not displayed in the total update time here (2+ε , 1)(2+ε,1)-APSP for unweighted and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${(2+\epsilon , W_{u,v})}$$\end{document}(2+ε,Wu,v)-APSP for weighted graphs. Our second contribution is a faster algorithm with an additional additive error term of 1 for unweighted graphs, which in turn can be used to obtain our unweighted (2+ε )(2+ε)-APSP result. The corresponding generalization to weighted graphs can be formulated as follows. Theorem 1.2 Given a graph G with positive, integer weights and a constant 0< ε < 10<ε<1, there is a decremental data structure that maintains a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-approximation for APSP, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v is the maximum weight on a current shortest path from u to v. The algorithm has constant query time and works against an oblivious adversary. The total update time is w.h.p. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( nm^{3/4}\log ^3(nW))$$\end{document}O~(nm3/4log3(nW)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( n^{1+o(1)}m^{3/4}\log ^3(nW))$$\end{document}O~(n1+o(1)m3/4log3(nW)) otherwise, where W is the ratio between the maximum and minimum weight. Here, W is a global parameter, while \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v is local and depends on u and v. (2+ε )(2+ε)-APSP for unweighted graphs. We obtain this result by a general reduction from mixed approximations to purely multiplicative approximations, which might be of independent interest beyond the dynamic setting. See Theorem for the statement. We can then combine this with Theorem to obtain a fast algorithm for non-dense unweighted graphs. Theorem 1.3 Given an undirected unweighted graph G, there is a decremental data structure that maintains a (2+ε )(2+ε)-approximation for APSP with constant query time. The algorithm works against an oblivious adversary. W.h.p. the total update time is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( m^{7/4})$$\end{document}O~(m7/4) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( m^{7/4+o(1)})$$\end{document}O~(m7/4+o(1)) otherwise. Note that for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=o(n^{8/7})$$\end{document}m=o(n8/7) this gives the first subquadratic decremental (2+ε )(2+ε)-approximate APSP algorithm. For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\le n^{6/5}$$\end{document}m≤n6/5, this approach is faster than our weighted result, Theorem , which was already beating the unweighted state-of-the-art [, ].(1+ε , 2(k-1))(1+ε,2(k-1))-APSP for unweighted graphs. Our fourth contribution is an algorithm for unweighted, undirected graphs that maintains, for any k ≥ 2 k≥2, a (1 + ε 1+ε,2(k-1)2(k-1))-approximation, i.e., a distance estimate that has a multiplicative error of 1 + ε 1+ε and an additive error of 2(k-1) 2(k-1). Theorem 1.4 Given an undirected unweighted graph G, a constant 0< ε < 10<ε<1 and an integer \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$2 \le k \le \log {n}$$\end{document}2≤k≤logn, there is a decremental data structure that maintains (1+ε , 2(k-1))(1+ε,2(k-1))-approximation for APSP with constant query time. The algorithm works against an oblivious adversary. The expected total update time is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\min \{O(n^{2-1/k+o(1)}m^{1/k}), \tilde{O}((n^{2-1/k}m^{1/k}) O(1/\epsilon )^{k/\rho })\}$$\end{document}min{O(n2-1/k+o(1)m1/k),O~((n2-1/km1/k)O(1/ε)k/ρ)} where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\rho }$$\end{document}m=n1+ρ. Note that for small values of k and if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\rho }$$\end{document}m=n1+ρ for a constant ρ >0ρ>0, we get total update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2-1/k}m^{1/k})$$\end{document}O~(n2-1/km1/k), and otherwise we have an extra \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) factor. In addition, in the special case of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k=\log {n}$$\end{document}k=logn, we get a near-quadratic update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2+o(1)})$$\end{document}O(n2+o(1)). The state-of-the-art for a purely multiplicative (1 + ε ) (1+ε)-approximation is the algorithm of Roditty and Zwick with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m n) $$\end{document}O~(mn). It was shown independently by Abraham and Chechik [] and by Henzinger et al. [] how to improve upon this total update time bound at the cost of an additional small additive error term: a (1 + ε , 2) (1+ε,2)-approximation can be maintained with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^{2.5}) $$\end{document}O~(n2.5). This has been generalized by Henzinger et al. [] to an additive error term of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ 2 (1 + \tfrac{2}{\epsilon })^{k-2} $$\end{document}2(1+2ε)k-2 and total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^{2 + 1/k} O(\tfrac{1}{\epsilon })^{k-1}) $$\end{document}O~(n2+1/kO(1ε)k-1). We improve upon this tradeoff in two ways: (1) our additive term is independent of 1/ε 1/ε and linear in k and (2) our algorithm profits from graphs being sparse. Static follow-up work. Interestingly, our techniques inspired a new algorithm for a static 2-approximate distance oracle [], giving the first such distance oracle algorithm with subquadratic construction time for sparse graphs. Moreover, for m=nm=n they match conditional lower bounds [, ]. Related Work Static algorithms. The baseline for the static APSP problem are the exact textbook algorithms with running times of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (n^3) $$\end{document}O(n3) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m n) $$\end{document}O~(mn), respectively. There are several works obtaining improvements upon these running times by either shaving subpolynomial factors or by employing fast matrix multiplication, which sometimes comes at the cost of a (1 + ε ) (1+ε)-approximation instead of an exact result. See [] and [], and the references therein, for details on these approaches. For the regime of stretch 3 and more in undirected graphs, a multitude of algorithms have been developed with the distance oracle of Thorup and Zwick [] arguably being the most well-known construction. In the following, we focus on summarizing the state of affairs for approximate APSP with stretch between 1 + ε 1+ε and 3. In weighted, undirected graphs, Cohen and Zwick [] obtained a 2-approximation with running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m^{1/2} n^{3/2}) $$\end{document}O~(m1/2n3/2). This running time has been improved to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m \sqrt{n} + n^2) $$\end{document}O~(mn+n2) by Baswana and Kavitha []. Employing fast matrix multiplication, Kavitha [] provided an algorithm for (2+ε )(2+ε)-APSP that takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^{2.25}) $$\end{document}O~(n2.25) time. Subsequently, Dory et al. [] provided two algorithms for (2+ε )(2+ε)-APSP, for dense graphs: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O(n^{2.214})$$\end{document}O(n2.214) and sparse graphs: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(mn^{2/3})$$\end{document}O~(mn2/3). In addition, efficient approximation algorithms for stretches of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tfrac{7}{3} $$\end{document}73 [] and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tfrac{5}{2} $$\end{document}52 [] have been obtained. These results have recently been generalized by Akav and Roditty [] who presented an algorithm with stretch \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ 2 + \tfrac{k-2}{k} $$\end{document}2+k-2k and running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m^{2/k} n^{2 - 3/k} + n^2) $$\end{document}O~(m2/kn2-3/k+n2) for any k ≥ 2 k≥2. Moreover, Cohen and Zwick [] obtained an \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{1-1/k}m^{1/k})$$\end{document}O~(n1-1/km1/k)-time algorithm that outputs an APSP approximation \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}(\cdot ,\cdot )$$\end{document}d^(·,·), which for any two vertices u,v∈ Vu,v∈V and any u-v path π π satisfies \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,v) \le \hat{d}(u,v) \le w(\pi ) +2\sum _{i=1}^{k-1}\omega _i$$\end{document}d(u,v)≤d^(u,v)≤w(π)+2∑i=1k-1ωi, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\omega _i$$\end{document}ωi is the i-th heaviest edge on π π. In unweighted, undirected graphs, a (1, 2) -approximate APSP algorithm with running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} (n^{2.5}) $$\end{document}O~(n2.5) has been presented by Aingworth, Chekuri, Indyk and Motwani []. This has been improved by Dor, Halperin, and Zwick [] that showed a (1, 2)-approximation with running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\min \{n^{3/2}m^{1/2}, n^{7/3} \})$$\end{document}O~(min{n3/2m1/2,n7/3}). They also show a generalized version of the algorithm that gives stretch (1, k) and running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${\tilde{O}}(\min \{n^{2-{2}/{(k+2)}}m^{{2}/{(k+2)}}, n^{2+{2}/{(3k-2)}}\})$$\end{document}O~(min{n2-2/(k+2)m2/(k+2),n2+2/(3k-2)}) for every even k>2k>2. Recently, faster (1, k)-approximation algorithms based on fast matrix multiplication techniques were developed [–], here as well the fastest (1, 2)-approximation runs in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2.260})$$\end{document}O(n2.260) time []. This was extended to a (1+ε ,2)(1+ε,2)-approximation in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2.152})$$\end{document}O(n2.152) time []. In addition, recently Roditty [] extended the approach of [] to obtain a combinatorial (2, 0)-approximation for APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2.25})$$\end{document}O~(n2.25) time in unweighted undirected graphs. Using fast matrix multiplication, this running time was improved to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2.032})$$\end{document}O(n2.032) [, ]. Berman and Kasiviswanathan [] showed how to compute a (2, 1) -approximation in time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^2) $$\end{document}O~(n2). Subsequent works [, –] have improved the polylogarithmic factors in the running time and the space requirements for such nearly 2-approximations. Recently, slightly subquadratic algorithms have been given: an algorithm with stretch (2 (1 + ε ), 5)(2(1+ε),5) by Akav and Roditty [], and an algorithm with stretch (2, 3) by Chechik and Zhang []. Decremental algorithms. The fastest algorithms for maintaining weighted, exact APSP under edge deletions have total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^3) $$\end{document}O~(n3) [, , ]. There are several algorithms that are more efficient at the cost of returning only an approximate solution. In particular, a (1+ε ) (1+ε)-approximation can be maintained in total time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m n) $$\end{document}O~(mn) [, , ]. If additionally, an additive error of 2 is tolerable, then a (1+ε , 2) (1+ε,2)-approximation can be maintained in total time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^{2.5}) $$\end{document}O~(n2.5) in unweighted, undirected graphs [, ]. Note that such a (1+ε , 2) (1+ε,2)-approximation directly implies a (2 + ε ) (2+ε)-approximation because the only paths of length 1 are edges between neighboring nodes. All of these decremental approximation algorithms are randomized and assume an oblivious adversary. Deterministic algorithms with stretch 1 + ε 1+ε exist for unweighted, undirected graphs with running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m n) $$\end{document}O~(mn) [], for weighted, undirected graphs with running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m n^{1+o(1)})$$\end{document}O~(mn1+o(1)) [] and for weighted, directed graphs with running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^3) $$\end{document}O~(n3) []. Decremental approximate APSP algorithms of larger stretch, namely at least 3, have first been studied by Baswana, Hariharan, and Sen []. After a series of improvements [, , , ], the state-of-the-art algorithms of [, ] maintain (2k-1)(1 + ε ) (2k-1)(1+ε)-approximate all-pairs shortest paths for any integer k ≥ 2 k≥2 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ 0 < \epsilon \le 1 $$\end{document}0<ε≤1 in total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} ( (m+n^{1+o(1)})n^{1/k}) $$\end{document}O~((m+n1+o(1))n1/k) with query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log \log (nW))$$\end{document}O(loglog(nW)) and O(k) respectively. All of these “larger stretch” algorithms are randomized and assume an oblivious adversary. Deterministic decremental algorithms have been developed by Chuzhoy and Saranurak [] and by Chuzhoy [], which have even been improved and generalized to fully dynamic algorithms. For example, Haeupler, Long, and Saranurak[] provide worst update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m^{\mu }) $$\end{document}O~(mμ) for any constant μ μ and constant stretch. As observed by Mądry [], decremental approximate APSP algorithms that are deterministic – or more generally work against an adaptive adversary – can lead to fast static approximation algorithms for the maximum multicommodity flow problem via the Garg-Könemann-Fleischer framework [, ]. Similarly, decremental Single Source Shortest Paths (again, deterministic or against an adaptive adversary) play a role in the recent fast min cost flow algorithms [, , ]. The above upper bounds for decremental APSP have recently been contrasted by conditional lower bounds [] stating that constant stretch cannot be achieved with subpolynomial update and query time under certain hardness assumptions on 3SUM or (static) APSP. Fully dynamic algorithms. Next, we discuss the related work on fully dynamic shortest paths. We would like to point out that all “combinatorial” algorithms discussed in the following (i.e., algorithms that do not rely on “algebraic” techniques like dynamic matrix inverse) are internally employing decremental algorithms. The reference point in fully dynamic APSP with subpolynomial query time is the exact algorithm of Demetrescu and Italiano [] with update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n^2) $$\end{document}O~(n2) (with log-factor improvements by Thorup []) and constant query time for weighted directed graphs.. Subsequently, researchers have developed algorithms with subcubic worst-case update time and constant query time [, ] with some of them being deterministic [, ]. Note that one can construct a simple update sequence for which any fully dynamic algorithm maintaining the distance matrix or the shortest-path matrix explicitly needs to perform \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \Omega (n^2) $$\end{document}Ω(n2) changes to this matrix per update. Algorithms breaking the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^2$$\end{document}n2 barrier at the cost of large query time have been obtained in unweighted directed graphs [, , ] and sparse weighted directed graph []. In addition to exact algorithms, combinatorial and algebraic algorithms have also been developed for the low stretch regime of (1+ε )(1+ε)-approximation. In particular, Roditty and Zwick [] obtained the following trade-off with a combinatorial algorithm: update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(mn/t)$$\end{document}O~(mn/t) and query time O(t) for any δ > 0δ>0 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ t \le m^{1/2 - \delta }$$\end{document}t≤m1/2-δ. Subsequently, for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ t \le \sqrt{n} $$\end{document}t≤n, a deterministic variant was developed [] and it was generalized to weighted directed graphs []. Furthermore, by a standard reduction (see e.g. []) using a decremental approximate single-source shortest paths algorithm [, ], one obtains a combinatorial deterministic algorithm with update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (n m^{1+o(1)} / t) $$\end{document}O(nm1+o(1)/t) and query time O(t) for any t ≤ n t≤n, for the fully dynamic all-pairs problem in weighted undirected graphs. Algebraic approaches can achieve subquadratic update time and sublinear query time, namely worst-case update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O(n^{1.863}) $$\end{document}O(n1.863) and query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (n^{0.666}) $$\end{document}O(n0.666) in weighted directed graphs [], or worst-case update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O(n^{1.788}) $$\end{document}O(n1.788) and query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (n^{0.45}) $$\end{document}O(n0.45) in unweighted undirected graphs []. In directed graphs, van den Brand and Karczmarz [] provided explicit APSP with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2.293}/\varepsilon )$$\end{document}O(n2.293/ε) worst case update time for unweighted graphs. Several fully dynamic distance oracles have been developed that obtain a larger stretch of 2 + ε 2+ε. In particular, Bernstein [] developed a distance oracle with update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (m^{1 + o(1)}) $$\end{document}O(m1+o(1)) and query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (\log \log \log n) $$\end{document}O(logloglogn) in weighted undirected graphs. It can be made deterministic using the deterministic approximate single-source shortest path algorithm by Bernstein, Probst Gutenberg, and Saranurak []. The only conditional lower bound in this regime that we are aware of states that no algorithm can maintain a (3 - ε ) (3-ε)-approximation with update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (n^{1/2-\delta }) $$\end{document}O(n1/2-δ) and query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (n^{1-\delta }) $$\end{document}O(n1-δ) for any δ > 0 δ>0, unless the OMv conjecture fails []. In the regime of stretch at least 3, the following trade-offs between stretch and update time have been developed: Abraham, Chechik, and Talwar [] designed an algorithm for unweighted undirected graphs with stretch \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ 2^{O (\rho k)} $$\end{document}2O(ρk), update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (m^{1/2} n^{1/k}) $$\end{document}O~(m1/2n1/k), and query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (k^2 \rho ^2) $$\end{document}O(k2ρ2), where k ≥ 1 k≥1 is a freely chosen parameter and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \rho = 1 + \lceil \log n^{1-1/k} / \log (m / n^{1-1/k}) \rceil $$\end{document}ρ=1+⌈logn1-1/k/log(m/n1-1/k)⌉. Forster, Goranci, and Henzinger [] designed an algorithm for weighted undirected graphs with stretch \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (\log n)^{3 k - 2} $$\end{document}O(logn)3k-2, update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ m^{1/k + o(1)} \cdot O(\log n)^{4k - 2} $$\end{document}m1/k+o(1)·O(logn)4k-2, and query time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O (k \log ^2 n) $$\end{document}O(klog2n), where k ≥ 2 k≥2 is an arbitrary integer parameter. Further, we note that any algorithm whose update time depends on the sparsity of the graph (possibly also a static one) can be run on a spanner of the input graph maintained by a fully dynamic spanner algorithm []. Finally, recent works [, ] have developed deterministic fully dynamic distance oracles. In particular, the work of Kyng, Meierhans, and Probst Gutenberg [] achieves an \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) approximation ratio with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) worst-case update time and polylogarithmic query time. Meanwhile, the work of Haeupler, Long, and Saranurak [] provides a constant-factor approximation with arbitrarily low polynomial worst-case update time and polylogarithmic query time. Outline We give an overview of the notation, terminology, and various decremental tools we use in Sect. . Next, we give a high-level overview of our techniques and provide an intuition for our algorithms in Sect. . Then follow three technical sections. In Sect. , we prove Theorem . Then we prove Theorem and in Sect. . Lastly, we prove Theorem in Sect. . Preliminaries Notation and Terminology Throughout this paper, neighbors of a node v are denoted by N(v). We denote by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v)$$\end{document}dG(u,v) the distance between u and v in the graph G. If G is clear from the context, we use the notation d(u, v). When G is a weighted graph, we allow for positive, integer weights. We denote by W the ratio between the maximum and minimum weight of the graph. Moreover, we denote by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v the maximum weight on a shortest path from u to v. In particular, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v} \le W$$\end{document}Wu,v≤W and hence additive approximations in terms of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v can be tighter than in terms of W. We are interested in designing dynamic graph algorithms for shortest path problems, which support both update and query operations. In particular, we look at decremental algorithms, which support weight increases and edge deletions. This is opposed to fully dynamic algorithms, which also support weight decreases and edge insertions. To be concrete, we support the following three operations:Delete(u, v): delete the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} from the graph;Update(u,v,Δ u,v,Δ): increase the weight of an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} to Δ Δ, i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w(u,v)\leftarrow \Delta $$\end{document}w(u,v)←Δ;Distance(u, v): return a distance approximation \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}_G(u,v)$$\end{document}d^G(u,v) between the nodes u and v in the current graph G.We assume that we have an oblivious adversary, i.e., that the sequence of updates is fixed from the start. This is as opposed to the adaptive adversary, which can use the random choices made by the algorithm to determine the next update. More formally, let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$S_t$$\end{document}St denote the state of the algorithm after update t and let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$R_t$$\end{document}Rt be the random bits used in this update step. An oblivious adversary chooses the entire update sequence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sigma = (\sigma _1, \dots , \sigma _m)$$\end{document}σ=(σ1,⋯,σm) before execution begins, and hence purely based on the algorithm’s description and independent of the algorithm’s states \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$S_t$$\end{document}St and random bits \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$R_t$$\end{document}Rt. An adaptive adversary selects each input \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sigma _t$$\end{document}σt sequentially based on the algorithm’s description, the history of the algorithm’s past states \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$S_1, \dots S_{t-1}$$\end{document}S1,⋯St-1, and the used random bits \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$R_1, \dots R_{t-1}$$\end{document}R1,⋯Rt-1. Since an adversary can determine future states of a deterministic algorithm, any correct deterministic algorithm holds against an adaptive adversary. Edge weights can be positive integers bounded by W, for some parameter \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W\in \mathbb {N}$$\end{document}W∈N. We say that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\texttt {Distance}(()u,v)$$\end{document}Distance(()u,v) returns \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(\alpha ,\beta )$$\end{document}(α,β)-approximate distances, denoted by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}_G$$\end{document}d^G, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v) \le \hat{d}_G(u,v) \le \alpha d_G(u,v)+\beta $$\end{document}dG(u,v)≤d^G(u,v)≤αdG(u,v)+β for all u,v∈ Vu,v∈V. Moreover we denote (α ,0)(α,0)-approximate by α α-approximate. Throughout, we denote \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}_G$$\end{document}d^G for the output of our algorithms, and δ δ (potentially with subscript) for approximate distances used internally. In all our algorithms, we maintain a distance oracle rather than explicit APSP. This means that we maintain a data structure that can answer distance queries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\texttt {Distance}(u,v)$$\end{document}Distance(u,v) for any u,v∈ Vu,v∈V. The time to answer a distance query \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\texttt {Distance}(u,v)$$\end{document}Distance(u,v) is called the query time. All our algorithms use constant query time. Further, we give the total update time, which is the time needed to process a sequence of up to m edge deletions or weight increases, where m is the number of edges before the first deletion. For any object, value, or data structure x that changes over time, we use a superscript \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x^{(t)}$$\end{document}x(t) to specify its state at time t, i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x^{(t)}$$\end{document}x(t) is x after processing t updates. Bunches and Clusters We start by reviewing the concepts of bunch and cluster as defined in the seminal distance oracle construction of Thorup and Zwick []. Given a parameter p∈ [0,1]p∈[0,1], called the cluster sampling rate, we let A be a set of sampled nodes, where each node is sampled uniformly at random with probability p. Then we define the pivot of a node v to be the closest node in A, i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p(v)=p_A(v)=\mathop {\mathrm {arg\,min}}\limits _{s\in A} d(s,v)$$\end{document}p(v)=pA(v)=argmins∈Ad(s,v). Since our algorithms contain only one level of sampling, and thus A we will be fixed throughout, we omit the subscript A henceforth. The bunch B(v) of a node v is the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B(v):=\{ u \in V: d(u,v) < d(v,p(v)) \}$$\end{document}B(v):={u∈V:d(u,v) d$$\end{document}dG(s,v)>d. It has constant query time and a total update time of O(md+n)O(md+n), where m is the number of edges in G. A monotone ES-tree is a generalization of ES-tree studied in [, , , ] that handles edge insertions. This is a data structure that maintains distances from a source s in a graph undergoing deletions, insertions and edge weight increases. Note that when edges are inserted to the graph, it can potentially decrease some distances in the graph. However, the data structure ignores such decreases, and maintains distance estimates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)$$\end{document}ls(v) from s to any other node, that can only increase during the algorithm. In particular, these distance estimates are not necessarily the correct distances in the graph, and when using this data structure the goal is to prove that these estimates still provide a good approximation for the current distances. We call \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)$$\end{document}ls(v) the level of v in the monotone ES-tree rooted at s. We next describe the main properties of monotone ES-trees that we use in our algorithms. A pseudo-code appears in Appendix . The following lemma follows from [] and from the pseudo-code. Lemma 2.4 The following holds for a monotone ES-tree of a graph H rooted at s, that is maintained up to distance d: At the beginning of the algorithm, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)=d_H(s,v)$$\end{document}ls(v)=dH(s,v) for all nodes v where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_H(s,v) \le d$$\end{document}dH(s,v)≤d.It always holds that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_H(s,v) \le \ell _s(v)$$\end{document}dH(s,v)≤ls(v).The level \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)$$\end{document}ls(v) of a node v never decreases.When the level \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)$$\end{document}ls(v) increases to a value that is at most d, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v) = \min \limits _{x\in N(v)} \{\ell _s(x)+w_{H}(x,v) \}$$\end{document}ls(v)=minx∈N(v){ls(x)+wH(x,v)}. Lemma 2.5 ([]) For every d ≥ 1d≥1, the total update time of a monotone ES-tree up to maximum level d on a graph H undergoing edge deletions, edge insertions, and edge weight increases is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\mathcal {E}(H)\cdot d+\mathcal {W}(H)+n)$$\end{document}O(E(H)·d+W(H)+n), where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {E}(H)$$\end{document}E(H) is the total number of edges ever contained in H and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {W}(H)$$\end{document}W(H) is the total number of updates to H. Near-Additive Decremental APSP In [], the authors show an algorithm that obtains near-additive approximations for decremental APSP. This result will be used to handle certain cases in Sect. . Theorem 2.6 (Theorem 1.3 in []) For any constant 0< ε < 10<ε<1 and integer \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$2 \le k \le \log {n}$$\end{document}2≤k≤logn, there is a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon , 2(1+2/\epsilon )^{k-2})$$\end{document}(1+ε,2(1+2/ε)k-2)-approximation algorithm for decremental APSP with constant worst-case query time and expected total update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2+1/k} (37/\epsilon )^{k-1})$$\end{document}O~(n2+1/k(37/ε)k-1). Notation Overview and Choice of Parameters To guide the reader, we give an overview of how notation is used in this paper. Whenever we deviate from these assumptions, this is clearly stated in the text. Generally, superscripts \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\cdot ^{(t)}$$\end{document}·(t) are used to denote a value or object at time step t. For readability, this superscript is omitted when it is not necessary. We denote the exact distance from u to v by d(u, v). As defined in Sect. , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)$$\end{document}ls(v) denotes the level of v in the (monotone) ES-tree rooted at s. Hence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _s(v)=d(s,v)$$\end{document}ls(v)=d(s,v) maintains the exact distance. We denote any (1+ε )(1+ε)-approximate distance estimate by δ δ. It can be equipped with a subscript to denote the origin of the approximation. Given some value w, we write \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}$$\end{document}w~ to denote a (1+ε )(1+ε) approximation that changes at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon } (nW))$$\end{document}O(log1+ε(nW)) times. Formally, this is achieved by setting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w} = (1+\epsilon )^{\lceil \log _{1+\epsilon } w\rceil }$$\end{document}w~=(1+ε)⌈log1+εw⌉. Similarly, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }$$\end{document}δ~ is a (1+ε )(1+ε)-approximate distance that only changes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon } (nW))$$\end{document}O(log1+ε(nW)) times. Finally, we denote the approximate APSP that the algorithm outputs by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}$$\end{document}d^, e.g., a (2+ε )(2+ε)-approximation of APSP. High-Level Overview In this section we provide a high-level overview of our algorithms. First we describe our (2+ε )(2+ε)-APSP algorithms for weighted graphs, by giving a simpler static version first. Then we describe our \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-APSP algorithm, where we introduce a notion of bunch overlap threshold to overcome the challenge of dynamically maintaining a well-known static adaptive sampling technique [] (see Sect. ). We give a reduction from mixed approximations to purely multiplicative approximations, which together with the previous result gives our (2+ε )(2+ε)-APSP algorithm for unweighted graphs. Finally, we describe our (1+ε , 2(k-1))(1+ε,2(k-1))-APSP algorithm for any k ≥ 2k≥2 in unweighted graphs. As in Sect. , we assume ε ε to be a constant in this section. Hence, we can hide 1/ε 1/ε factors in our asymptotic notation. Update times with ε ε as a parameter, and hence containing 1/ε 1/ε factors, can be found in our technical sections. In all cases, these factors are inherited from the use of decremental single source shortest path (SSSP) algorithms (see, e.g., []), and hence do not form a critical part of our paper. (2+ε )(2+ε)-APSP for Weighted Graphs We first present a warm-up static algorithm that we later turn into a dynamic algorithm. Static 2-APSP We consider the bunches and clusters of the well-known distance oracles of Thorup and Zwick [], as introduced in Sect. . In particular, we consider sampling probability p, set of sampled nodes A, and bunches B(v) and clusters C(v) for v∈ Vv∈V. We store the distances A× VA×V, together with the clusters and bunches of each node. Moreover, we store the distances d(u, v) for all u∈ Vu∈V and v∈ B(u)v∈B(u). With this information, we can query 3-approximate distances for any pair \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u,v\in V\times V$$\end{document}u,v∈V×V. At a high-level, this works as follows. We either have v ∈ B(u)v∈B(u) and so we explicitly have stored their distance, or we can get a 3-approximate estimate by computing d(u,p(u))+d(p(u),v)d(u,p(u))+d(p(u),v), since\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} d(u,p(u))+d(p(u),v) \le d(u,p(u))+d(u,p(u))+d(u,v) \le 3d(u,v), \end{aligned}$$\end{document}d(u,p(u))+d(p(u),v)≤d(u,p(u))+d(u,p(u))+d(u,v)≤3d(u,v),where the first step follows by the triangle inequality and the second step by the fact that d(u,p(u)) ≤ d(u,v)d(u,p(u))≤d(u,v) if v∉ B(u)v∉B(u). In the following, we explain that in some special cases we can directly use the estimate d(u,p(u))+d(p(u),v)d(u,p(u))+d(p(u),v) to obtain a 2-approximation for a pair u, v. In other cases, we can store more information depending on how B(u) and B(v) overlap and use this to obtain a 2-approximation to d(u, v). Let us assume that for all nodes v we have computed B(v) and have access to all the distances from v to each node u ∈ B(v)u∈B(v). Also assume that we have computed the distances from the set A to all nodes. We now describe how using this information we can get a 2-approximate estimate of any pair of nodes u, v in the first case. In another case we will discuss what other estimates we need to precompute. Let π π be a shortest path between u and v. We consider two cases depending on how the bunches B(u) and B(v) interact with π π. A similar case analysis was used in [, ] in distributed approximate shortest paths algorithms. There exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w \in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w \not \in B(u) \cup B(v)$$\end{document}w∉B(u)∪B(v) (left case in Fig. ): Since w is on the shortest path π π, we either have d(w,u) ≤ d(u,v)/2d(w,u)≤d(u,v)/2 or d (v,w) ≤ d(u,v)/2d(v,w)≤d(u,v)/2. Suppose d(w,u) ≤ d(u,v)/2d(w,u)≤d(u,v)/2. We observe that by definition d(u,p(u))≤ d(u,w)d(u,p(u))≤d(u,w), hence we obtain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,p(u))+d(p(u),v)\le d(u,p(u))+d(u,p(u))+d(u,v) \le 2d(u,v)$$\end{document}d(u,p(u))+d(p(u),v)≤d(u,p(u))+d(u,p(u))+d(u,v)≤2d(u,v), where the first step follows by the triangle inequality and the second step by the fact that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,p(u))\le d(u,w)\le d(u,v)/2$$\end{document}d(u,p(u))≤d(u,w)≤d(u,v)/2. The case that d (v,w) ≤ d(u,v)/2d(v,w)≤d(u,v)/2 is analogous, and hence by computing \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\min \{ d(u,p(u))+d(p(u),v), d(v,p(v))+d(p(v),u)\}$$\end{document}min{d(u,p(u))+d(p(u),v),d(v,p(v))+d(p(v),u)} we get a 2-approximation.There exists no \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w \in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w \not \in B(u) \cup B(v)$$\end{document}w∉B(u)∪B(v). In other words, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(B(u) \cup B(v)) \cap \pi = \pi $$\end{document}(B(u)∪B(v))∩π=π and hence there exists at least one edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\}$$\end{document}{u′,v′} on π π where u' ∈ B(u)u′∈B(u) and v' ∈ B(v)v′∈B(v) (right case in Fig. ): in this case we can find the minimum over estimates obtained through all such pairs u', v'u′,v′, i.e. by computing d(u,u')+ w(u',v')+d(v',v)d(u,u′)+w(u′,v′)+d(v′,v). We note that this case includes the arguably easier situation that the bunches overlap, i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B(u)\cap B(v)\ne \emptyset $$\end{document}B(u)∩B(v)≠∅ (not reflected in the picture).Fig. 1Possible scenarios for the overlap between the bunches B(u), B(v) and a shortest path π π from u to v[453_2026_1407_Fig1_HTML.webp] If we had access to all the above distances for the bunches and the pivots, we could then use them to query 2-approximate distances between any pair u,v ∈ Vu,v∈V. As we will see, in our algorithms we only have approximate bunches and pivots which lead to (2+ε )(2+ε)-approximate queries. Running time. We can compute bunches and clusters in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{m}{p})$$\end{document}O~(mp) time []. We need to compute shortest paths from the set of pivots A for the estimates in Case 1. This takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|A|m)=\tilde{O}(pnm)$$\end{document}O(|A|m)=O~(pnm) time using Dijkstra’s algorithm. Finally, we consider Case 2. A straight-forward approach is to consider each pair of vertices u, v, and all u'∈ B(u)u′∈B(u) and v'∈ B(v)v′∈B(v). This takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\tfrac{n^2}{p^2})$$\end{document}O(n2p2) time. We use an intermediate step that computes the distance between u'u′ and v if there is an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\}\in E$$\end{document}{u′,v′}∈E such that v'∈ B(v)v′∈B(v). For each node v ∈ Vv∈V, we consider all v'∈ B(v)v′∈B(v), for which we consider all neighbors u'∈ N(v')u′∈N(v′) and compute the estimate w(u',v')+d(v',v)w(u′,v′)+d(v′,v) (and replace current u'-vu′-v minimum if it is smaller). Since \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|B(v)|=\tilde{O}(\tfrac{1}{p})$$\end{document}|B(v)|=O~(1p), we can compute these estimates for all d(u',v)d(u′,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{n^2}{p})$$\end{document}O~(n2p) time. Next, for each pair u,v∈ Vu,v∈V, we take the minimum over the distances d(u,u')+d(u',v)d(u,u′)+d(u′,v) for all u'u′ in the bunch B(u) using the precomputed distances from the previous step in time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^2/p)$$\end{document}O~(n2/p), by iterating over all pairs u,v∈ Vu,v∈V, and all u'∈ B(u)u′∈B(u). So in total the adjacent case takes time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{n^2}{p})$$\end{document}O~(n2p). Hence the total running time of the algorithm will be \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(pnm+m/p+n^2/p)=\tilde{O}(pnm+n^2/p)$$\end{document}O~(pnm+m/p+n2/p)=O~(pnm+n2/p). By setting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=\sqrt{\tfrac{n}{m}}$$\end{document}p=nm we obtain the total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2})$$\end{document}O~(m1/2n3/2). There are several subtleties that make it more difficult to maintain these estimates in decremental settings. Not only do distances change, but also which nodes are part of a bunch change due to the updates. Moreover, which bunches are adjacent to each other changes. We next discuss how these intricacies can be handled. We obtain a total update time that matches the stated static running time (up to subpolynomial factors). Dynamic Challenges Maintaining bunches and pivots. First, we need to dynamically maintain bunches efficiently as nodes may join and leave a bunch throughout the updates using an adaptation of prior work. One option would be maintaining the clusters and bunches using the [] framework, however using this directly is slow for our purposes. Hence we maintain approximate clusters and bunches using hopsets of Łącki and Nazari []. This algorithm also maintains approximate pivots, i.e. pivots that are within (1+ε )(1+ε)-approximate distance of the true closest sampled node. These estimates let us handle the first case (up to (1+ε )(1+ε) approximation). One subtlety is that the type of approximate bunches used in [] is slightly different from the type of approximate bunches we need for other parts of our algorithm. Specifically, we need to bound the number of times nodes in a bunch can change. Roughly speaking, we can show this since the graph is decremental and the estimates obtained from the algorithm of [] are monotone. Hence we perform lazy bunch updates, where we only let a bunch grow if the distance to the pivot grows by at least a factor 1+ε 1+ε. This means a bunch grows at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon }(nW))$$\end{document}O(log1+ε(nW)) times. In addition, these approximate bunches need to be taken into account in our stretch analysis. We note that (1+ε )(1+ε)-approximate decremental SSSP takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1+o(1)})$$\end{document}O~(m1+o(1)) total update time. However, we use the multi-source shortest path result from [], where the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1)-term vanishes when applied with polynomially many sources, giving us a total update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(|A|m)$$\end{document}O~(|A|m). Maintaining estimates for Case 2. When we are in Case 2, we need more tools to keep track of estimates going through these nodes since both the bunches and the distances involved are changing. In particular, we explain how by using heaps in different parts of our algorithm we get efficient update and query times. Moreover, note that we have an additional complication: there are two data structures in this step, where one impacts the other. We need to ensure that an update in the original graph does not lead to many changes in the first data structure, which all need to be processed for the second data structure. To be precise, we need intermediate data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q_{u',v}$$\end{document}Qu′,v that store approximate distances for u'u′ and v of the form w(u',v')+δ (v',v)w(u′,v′)+δ(v′,v) for each v'∈ B(v)v′∈B(v) such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\}\in E$$\end{document}{u′,v′}∈E, as explained for the static algorithm. The static algorithm used the exact distance d(v',v)d(v′,v), while here we use an estimate: throughout this section (Sect. ), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (\cdot ,\cdot )$$\end{document}δ(·,·) denotes (1+ε )(1+ε)-approximate distances in our dynamic data structures. Also as opposed to the static algorithm, we do not only keep the minimum, but instead maintain a min-heap, from which the minimum is easily extracted. However, this approach has a problem: δ (v',v)δ(v′,v) might change many times, and for each such change we need to update at most |N(v')|≤ n|N(v′)|≤n heaps. To overcome this problem, we use another notion of lazy distance update: we only update a bunch if the estimate of a node changes by at least a factor 1+ε 1+ε. Combining this with the fact that, due to the lazy bunch update, nodes only join a cluster at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon }(nW))$$\end{document}O(log1+ε(nW)) times, and thus there is only an \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ O(\log _{1+\epsilon }(nW)\log (nW))$$\end{document}O(log1+ε(nW)log(nW)) overhead in maintaining these min-heaps \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q_{u',v}$$\end{document}Qu′,v dynamically due to bunch updates. Note that at this stage, it is not relevant which node is declared the pivot: only the distance to the pivot influences the bunch. Similarly, w(u',v')w(u′,v′) might change many times, which has an impact for every v∈ C(v')v∈C(v′). Since this can be many nodes, we need to use an additional trick so that an adversary cannot increase our update time to mn. Again the solution is a lazy update scheme: instead of w(u',v')w(u′,v′) we use \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(u', v')=(1+\epsilon )^{\lceil \log _{1+\epsilon } w(u',v')\rceil }$$\end{document}w~(u′,v′)=(1+ε)⌈log1+εw(u′,v′)⌉, which can only change \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon } W$$\end{document}log1+εW times. This comes at the cost of a (1+ε )(1+ε) approximation factor. We note that our bunches are approximate bunches in three different ways. We have one notion of approximation due to the fact that we are using hopsets (that implicitly maintain bunches on scaled graphs). We have a second notion of approximation due to our lazy bunch update, which only lets nodes join a bunch a bounded number of times. We have a third notion of approximation due to the lazy distance update, which only propagates distance changes O(łog (nW))O(log(nW)) times. We need to carefully consider how these different notions of approximate bunch interact with each other and with the stretch of the algorithm. Next, we want to use the min-heaps \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q_{u',v}$$\end{document}Qu′,v to maintain the distance estimates for u,v∈ Vu,v∈V (see again the right case in Fig. ). We construct min-heaps \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q'_{u,v}$$\end{document}Qu,v′, for each pair u, v with entries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (u,u')+\delta (u',v)$$\end{document}δ(u,u′)+δ(u′,v) for u' ∈ B(u)u′∈B(u). Here δ (u',v)δ(u′,v) is the minimum from the intermediate data structure \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q_{u',v}$$\end{document}Qu′,v. An entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (u,u')+\delta (u',v)$$\end{document}δ(u,u′)+δ(u′,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q'_{u,v}$$\end{document}Qu,v′ has to be updated when either δ (u,u')δ(u,u′) or δ (u',v)δ(u′,v) change. We have to make sure we do not have to update these entries too often. For the first part of each entry, we bound updates to the distance estimates δ (u,u')δ(u,u′) by the lazy distance updates. One challenge here is that when the distance estimates in a bunch change we need to update all the impacted heaps i.e. if δ (u,u')δ(u,u′) inside a bunch B(u) changes, we must update all the heaps \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q'_{u,v}$$\end{document}Qu,v′ such that there exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\} \in E$$\end{document}{u′,v′}∈E with v'∈ B(v)v′∈B(v). For this purpose one approach is the following: for each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V,u' \in B(u)$$\end{document}u∈V,u′∈B(u) we keep an additional data structure \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{u,u'}$$\end{document}Setu,u′ that stores for which v ∈ Vv∈V we have v' ∈ B(v)v′∈B(v) with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\}\in E$$\end{document}{u′,v′}∈E. This means that given a change in δ (u,u')δ(u,u′), we can update each of the heaps in logarithmic time. For the second part of the entry, which is the distance estimate δ (u',v)δ(u′,v) from the first data structure, this is more complicated. Another subtlety for our decremental data structures is the fact that δ (u',v)δ(u′,v) may also decrease due to a new node being added to B(v). However, our lazy bunch update ensures that δ (u',v)δ(u′,v) can only decrease \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon }(nW))$$\end{document}O(log1+ε(nW)) times. Further, we use lazy distance increases in between such decreases. Hence in total we propagate changes to δ (u',v)δ(u′,v) at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon }(nW)\log (nW))$$\end{document}O(log1+ε(nW)log(nW)) times, and thus our decremental algorithm has \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\log _{1+\epsilon }(nW)\log (nW))$$\end{document}O~(log1+ε(nW)log(nW)) overhead compared to the static algorithm. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon , W_{u,v})$$\end{document}(2+ε,Wu,v)-APSP for Weighted Graphs For a moment, let us go back to the first static algorithm. It turns out, that if instead of computing an estimate for two ‘adjacent’ bunches, we keep an estimate for bunches that overlap in at least one node, we obtain a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2, W_{u,v})$$\end{document}(2,Wu,v)-approximation, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v is the maximum weight on a shortest path from u to v.Fig. 2Possible scenarios for the overlap between the bunches B(u) and B(v) and a shortest path π π from u to v[453_2026_1407_Fig2_HTML.webp] We fix an arbitrary shortest path from u to v denoted by π π. The stretch analysis comes down to the following cases: There exists no \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi \cap B(u)\cap B(v)$$\end{document}w∈π∩B(u)∩B(v) (the left and right case in Fig. ).There exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)$$\end{document}w∈B(u)∩B(v) (the middle case in Fig. ).The crucial observation here is that the distance estimate via the pivot (Case 1 in the previous section) already gives a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2, W_{u,v})$$\end{document}(2,Wu,v)-approximation for the adjacent case (the right case in Fig. ), see Sect. for the details. So if we maintain an estimate for d(u, v) if there exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)$$\end{document}w∈B(u)∩B(v) (the ‘overlap case’), then we obtain a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2, W_{u,v})$$\end{document}(2,Wu,v)-approximation in total. Here we need to create a min-heap for the overlap case, later we show we can maintain it in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(nC_{\max }/p)$$\end{document}O~(nCmax/p) time, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$C_{\max }$$\end{document}Cmax is the size of the largest cluster. First we focus on the challenge of bounding \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$C_{\max }$$\end{document}Cmax. Efficiency challenge. While the bunches are small, there is no bound on the size of the clusters. To overcome this issue in the static case, Thorup and Zwick developed an alternative way to build the bunches and clusters, that guarantees that the clusters are also small []. At a high-level, their approach is to adaptively change (grow) A by sampling big clusters into smaller clusters using a sampling rate proportional to the cluster size and adding these nodes to the set of pivots A. In total, in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m/p)$$\end{document}O~(m/p) time we obtain bunches and clusters, both of size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(1/p)$$\end{document}O~(1/p). This idea was developed in the context of obtaining compact routing schemes, and later found numerous applications in static algorithms for approximating shortest paths and distances (see e.g., [, , , ]). Using this trick, the static algorithm has running time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{m}{p}+pnm+\tfrac{n}{p^2})=\tilde{O}(nm^{3/4}+m^{4/3})$$\end{document}O~(mp+pnm+np2)=O~(nm3/4+m4/3), for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=m^{-1/3}$$\end{document}p=m-1/3 or \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(mn^{1/2}+n^2)$$\end{document}O~(mn1/2+n2) for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=n^{-1/2}$$\end{document}p=n-1/2. However, the adaptive sampling procedure does not seem to be well-suited to a dynamic setting. The reason is that the sampling procedure is adaptive in such a way that when the bunches/clusters change, the set of sampled nodes can also change. Although (a dynamic adaptation of) the algorithm can guarantee that the set of sampled nodes is small at any particular moment, this would require to both add nodes to and remove nodes from A at any time. This would add a significant amount of computation necessary to propagate these changes to other parts of the algorithm. A possible solution is to enforce A to only grow, by never letting nodes leave A. This would require us to bound the total number of nodes that would ever be sampled, which seems impossible with the current approach. In that approach, we could only bound the number of new nodes for a single deletion, which can become too larger after many deletions. To overcome this issue, we next suggest a new approach that gives us a set that is only increasing in size, but remains bounded. For simplicity, we first present this in a static setting. Introducing bunch overlap thresholds. Our proposed approach is to divide the nodes into two types depending on the number of bunches they appear in. In particular, we consider a threshold parameter τ τ and we define a node to be a heavy node if it is in more than τ τ bunches (equivalently its cluster contains more than τ τ nodes), and otherwise we call it a light node. In other words, for the set of light nodes we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$C_{\max }\le \tau $$\end{document}Cmax≤τ. This threshold introduces a second type of ‘pivot’ for each node u, which we denote by q(u) that is defined to be the closest heavy node to u. In particular, instead of computing all distance estimates going through nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w \in B(u) \cap B(v)$$\end{document}w∈B(u)∩B(v), we only compute them for the case that w is light, and otherwise it is enough to compute the minimum estimates going through the closest heavy node, i.e. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\min \{ d(u,q(u))+d(q(u),v), d(v,q(v))+d(q(v),u)\}$$\end{document}min{d(u,q(u))+d(q(u),v),d(v,q(v))+d(q(v),u)}. We emphasize that although the heavy nodes fullfill a similar role to the pivots, they are not a subset of our pivots p(v), v ∈ Vp(v),v∈V. Moreover, heavy nodes have a different behavior in bounding the running time than the pivots. As we will see later, introducing these thresholds is crucial in efficiently obtaining the estimates required for Case 2 as we can handle the light and heavy case separately. Stretch of the algorithm with bunch overlap thresholds. As discussed above, the stretch analysis was divided into two cases. In the new variant of the algorithm we add a third case, where we look at the distance estimates going through the closest heavy node, i.e. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\min \{ d(u,q(u))+d(q(u),v), d(v,q(v))+d(q(v),u)\}$$\end{document}min{d(u,q(u))+d(q(u),v),d(v,q(v))+d(q(v),u)}. The main idea is that now we only need to consider the difficult case, Case 2, if the relevant node is light, which allows us to implement the algorithm efficiently. If the relevant node \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)$$\end{document}w∈B(u)∩B(v) in Case 2 is heavy, we obtain a 2-approximation through the closest heavy node: we get that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\min \{d(u,w),d(v,w)\} \le d(u,v)/2$$\end{document}min{d(u,w),d(v,w)}≤d(u,v)/2, since d(u,v)= d(u,w)+d(w,v)d(u,v)=d(u,w)+d(w,v). W.l.o.g. say d(u,w)≤ d(u,v)/2d(u,w)≤d(u,v)/2. Then \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,q(u))\le d(u,w)\le d(u,v)/2$$\end{document}d(u,q(u))≤d(u,w)≤d(u,v)/2, hence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,q(u))+d(q(u),v)\le d(u,q(u))+d(q(u),u)+d(u,v) \le 2d(u,v)$$\end{document}d(u,q(u))+d(q(u),v)≤d(u,q(u))+d(q(u),u)+d(u,v)≤2d(u,v). Maintaining estimates through heavy nodes. For the stretch analysis above, we need to maintain a shortest path tree from each heavy node. We ensure a bunch grows at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon }(nW))$$\end{document}O(log1+ε(nW)) times. Hence by a total load argument we get that the total number of nodes in all bunches over all updates is at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\tfrac{n}{p}\cdot \log _{1+\epsilon }(nW))$$\end{document}O(np·log1+ε(nW)). This implies there cannot be too many heavy nodes in total, hence we can enforce that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy only grows by keeping in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy all nodes that were once heavy (for details see Lemma ). As a consequence, we can maintain multi-source approximate distances from all heavy nodes efficiently: we can compute shortest paths from this set to all other nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|V_\mathrm{{heavy}}|m)=\tilde{O}(\tfrac{nm}{p\tau })$$\end{document}O(|Vheavy|m)=O~(nmpτ) time. Running time of the algorithm with bunch overlap thresholds. Summarizing, we compute bunches and clusters in O(m/p) time, compute distances from A to V in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|A|m)=\tilde{O}(pnm)$$\end{document}O(|A|m)=O~(pnm) time, and we can compute shortest paths from the heavy nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|V_\mathrm{{heavy}}|m)=O(\tfrac{nm}{p\tau })$$\end{document}O(|Vheavy|m)=O(nmpτ) time. Finally, we consider Case 2. For each node u∈ Vu∈V, we consider every light node w∈ B(u)w∈B(u), and then all nodes v∈ C(w)v∈C(w). Since w is light, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|C(w)|\le \tau $$\end{document}|C(w)|≤τ, so this takes time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n\cdot \tfrac{1}{p}\cdot \tau )$$\end{document}O~(n·1p·τ). Hence, in the total update time, we obtain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}((pnm+\tfrac{nm}{p\tau }+n\tau /p)\log ^2(nW))$$\end{document}O~((pnm+nmpτ+nτ/p)log2(nW)). Setting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=m^{-1/4}$$\end{document}p=m-1/4 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau = m^{1/2}$$\end{document}τ=m1/2 gives a total update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(nm^{3/4}\log (nW))$$\end{document}O~(nm3/4log(nW)). We provide the details in Sect. . Again, for a decremental algorithm, we need to combine this new idea with the subtleties we had in the previous section: the bunches, their overlaps, and the heavy nodes keep on changing over the updates. We obtain a total update time that matches the stated static running time (up to subpolynomial factors) for the algorithm using bunch overlap thresholds. (2+ε )(2+ε)-APSP for Unweighted Graphs We observe that in unweighted graphs mixed approximation can always be turned into a multiplicative approximation – at the cost of a blow-up in the number of vertices. More precisely, we prove the following reduction. Theorem 3.1 Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A be an algorithm that provides a (a+ε ,k)(a+ε,k)-approximation for APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\mathcal {A}}(n',m')$$\end{document}τA(n′,m′) time, for any unweighted n'n′-node m'm′-edge graph G'G′, and any constants \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$a,k\in \mathbb {N}_{\ge 1}$$\end{document}a,k∈N≥1 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon \ge 0$$\end{document}ε≥0. Given an unweighted graph G=(V,E)G=(V,E) on n nodes and m vertices, we can compute (a+(k+2)ε ,0)(a+(k+2)ε,0)-APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\mathcal {A}}(n+km,(k+1)m)$$\end{document}τA(n+km,(k+1)m) time. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A is a dynamic algorithm, then each update takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k+1)\cdot [\text {update time of }\mathcal {A}]$$\end{document}(k+1)·[update time ofA] time. The query time remains the same (up to a constant factor). This reductions allows for ε =0ε=0 as well. However, for our applications the update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A will depend on 1/ε 1/ε, so we only apply this reduction for ε >0ε>0. Theorem is obtained by splitting every edge into k edges, by introducing new nodes on the edge. Now a path corresponding to a +k+k approximation cannot take a non-trivial detour. We combine this result with Theorem to obtain a (2+ε )(2+ε)-approximation for unweighted graphs in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{7/4})$$\end{document}O~(m7/4) total update time. For details, see Sect. . (1+ε , 2(k-1))(1+ε,2(k-1))-APSP for Unweighted Graphs In this section, we describe our near-additive APSP algorithm. Our work is inspired by a classic result of Dor, Halperin, and Zwick [], that presented a static algorithm that computes purely additive +2(k-1)+2(k-1) approximation for APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2-1/k}m^{1/k})$$\end{document}O~(n2-1/km1/k) time in unweighted graphs. Our goal is to obtain similar results dynamically. More concretely, we obtain decremental (1+ε ,2(k-1))(1+ε,2(k-1))-approximate APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2-1/k+o(1)}m^{1/k})$$\end{document}O(n2-1/k+o(1)m1/k) total update time in unweighted graphs. (1+ε ,2)(1+ε,2)-APSP To explain the high-level idea of the algorithm, we first focus on the special case that k=2k=2, and that we only want to approximate the distances between pairs of nodes at distance at most d from each other, for a parameter d. In this case, we obtain a +2+2-additive approximation in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{3/2}m^{1/2} d )$$\end{document}O~(n3/2m1/2d) time. This case already allows to present many of the high-level ideas of the algorithm. Later we explain how to extend the results to the more general case. We start by describing the static algorithm from [], and then explain the dynamic version. At a high level, we compute exact distances v× Vv×V for some nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in A_1\subseteq V$$\end{document}v∈A1⊆V, and then use this to obtain approximate distances v× Vv×V for all other nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in V\setminus A_1$$\end{document}v∈V\A1. The static version of the data structure is as follows. See also the pseudocode in Algorithm 1.Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1= (\frac{m}{n})^{1/2}$$\end{document}s1=(mn)1/2. Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_1$$\end{document}V1 be the set of heavy nodes: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_1:= \{ v \in V: \deg (v) \ge s_1\}$$\end{document}V1:={v∈V:deg(v)≥s1}. Also let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 be the set of light edges, i.e. edges with at least one endpoint with degree less than \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1$$\end{document}s1.Node set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. Construct a hitting set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 of neighborhoods of nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_1$$\end{document}V1. This means that every node \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in V_1$$\end{document}v∈V1 has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. The size of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n \log {n}/s_1)$$\end{document}O(nlogn/s1).Edge set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗. Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ be a set of size O(n) such that for each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in V_1$$\end{document}v∈V1, there exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1 \cap N(v)$$\end{document}u∈A1∩N(v) such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\} \in E^*$$\end{document}{u,v}∈E∗.Computing distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. Store distances \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1 \times V$$\end{document}A1×V by running a BFS from each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1$$\end{document}u∈A1 on the input graph G.Computing distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V \setminus A_1$$\end{document}V\A1. For each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V \setminus A_1$$\end{document}u∈V\A1 store a shortest path tree, denoted by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$T_u$$\end{document}Tu rooted at u by running Dijkstra on \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(V, E_2 \cup E^* \cup E^{A_1}_u)$$\end{document}(V,E2∪E∗∪Eu1), where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^{A_1}_u$$\end{document}Eu1 is the set of weighted edges corresponding to distances in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(\{u\} \times A_1)$$\end{document}({u}×A1) computed in the previous step.[453_2026_1407_Figa_HTML.webp] Dynamic data structure. The static algorithm computes distances in two steps. First, it computes distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 by computing BFS trees in the graph G. This step can be maintained dynamically by using Even-Shiloach trees (ES-trees) [], a data structure that maintains distances in a decremental graph. Maintaining the distances up to distance O(d) takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|A_1|md)$$\end{document}O(|A1|md) time. The more challenging part is computing distances from the remaining nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V \setminus A_1$$\end{document}V\A1. Here the static algorithm computes distances in the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u=(V, E_2 \cup E^* \cup E^{A_1}_u)$$\end{document}Hu=(V,E2∪E∗∪Eu1). Note that the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu change dynamically in several ways. First, in the static algorithm, the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 is the set of light edges. To keep the correctness of the dynamic algorithm, every time that a node v no longer has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, we should add all its adjacent edges to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2. Second, when an edge in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ is deleted from G, we should replace it by an alternative edge if such an edge exists. Finally, the weights of the edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^{A_1}_u$$\end{document}Eu1 can change over time, when the estimates change. This means that other than deletions of edges, we can also add new edges to the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu or change the weights of their edges. Because of these edge insertions we can no longer use the standard ES-tree data structure to maintain the distances, because that only works in a decremental setting. To overcome this, we use monotone ES-trees, a generalization of ES-trees proposed by [, ]. In this data structure, to keep the algorithm efficient, when new edges are inserted, the distance estimates do not change. In particular, when edges are inserted, some distances may decrease, however, in such cases the data structure keeps an old larger estimate of the distance. The main challenge in using this data structure is to show that the stretch analysis still holds. In particular, in our case, the stretch analysis of the static algorithm was based on the fact that distances from the nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V \setminus A_1$$\end{document}V\A1 are computed in the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu, where in the dynamic setting, we do not have this guarantee anymore. Stretch analysis. The high-level idea of the stretch analysis uses the special structure of the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu. To prove that the distance estimate between u and v is at most d(u,v)+2d(u,v)+2, we distinguish between two cases: 1) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$N(v)\cap A_1\ne \emptyset $$\end{document}N(v)∩A1≠∅; and 2) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$N(v)\cap A_1=\emptyset $$\end{document}N(v)∩A1=∅. In the first case, an edge of the form \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\}$$\end{document}{v,x} is in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ for some \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1 \cap N(v)$$\end{document}x∈A1∩N(v), and since we maintain correctly the distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, we can prove that we get an additive stretch of at most 2 in this case. In the second case, all the edges adjacent to v are in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2 \subseteq H_u$$\end{document}E2⊆Hu, and here we can use an inductive argument on the length of the path to prove that we get an additive stretch of at most 2. Note that the estimate that we get can be larger compared to the distance between u and v in the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu, but we can still show that the additive approximation is at most 2 as needed. For a detailed stretch analysis, see Sect. . Update time. Our update time depends on the size of the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu. While in the static setting it is easy to bound the number of edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, in the decremental setting, as new edges are added to these sets, we need a more careful analysis. For example, in the static setting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|E^*|=O(n)$$\end{document}|E∗|=O(n), as any node only adds one adjacent edge to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, where in the decremental setting, we may need to add many different edges to this set because the previous ones got deleted. However, we can still prove that even if a node needs to add to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ edges to all its adjacent neighbors in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 during the algorithm, the size of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu is small enough as needed. A detailed analysis of the update time appears in Sect. , where we show that the total update time is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2}d)$$\end{document}O~(m1/2n3/2d) in expectation, this matches the static complexity up to the factor d. Handling large distances. The algorithm described above is efficient if d is small, to obtain an efficient algorithm for the general case, we combine our approach with a decremental near-additive APSP algorithm. More concretely, we use an algorithm from Henzinger et al. [] that computes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon ,\beta )$$\end{document}(1+ε,β)-approximate APSP in a total update time that depends on β β. For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta =n^{o(1)}$$\end{document}β=no(1), their total update time is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2+o(1)})$$\end{document}O(n2+o(1)). Now we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d=\Theta (\beta /\epsilon )$$\end{document}d=Θ(β/ε), and distinguish between two cases. For pairs of nodes at distance at most d from each other, we get a +2+2-additive approximation as discussed above, in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(m^{1/2}n^{3/2+o(1)})$$\end{document}O(m1/2n3/2+o(1)) time. For pairs of nodes at distance larger than d, the near-additive approximation is already a (1+O(ε ))(1+O(ε))-approximation by the choice of the parameter d. For such pairs, the additive β β term becomes negligible, as their distance is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Omega (\beta /\epsilon )$$\end{document}Ω(β/ε). Overall, we get a (1+ε ,2)(1+ε,2)-approximation for APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(m^{1/2}n^{3/2+o(1)})$$\end{document}O(m1/2n3/2+o(1)) time. In fact, if the graph is dense enough (\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1)), the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) term is replaced by a poly-logarithmic term. For more details see Sect. . General k We can extend the algorithm to obtain a (1+ε ,2(k-1))(1+ε,2(k-1))-approximate APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2-1/k+o(1)}m^{1/k})$$\end{document}O(n2-1/k+o(1)m1/k) total update time, by adapting the general algorithm of [] to the dynamic setting. At a high-level, instead of having one hitting set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, we have a series of hitting sets \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1,A_2,...,A_k$$\end{document}A1,A2,...,Ak, such that the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai hits nodes of degree \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_i$$\end{document}si. We compute distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai in appropriate graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i$$\end{document}Hui, that are sparser when the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai is larger. Balancing the parameters of the algorithm leads to the desired total update time. For full details and proofs see Sect. . Limitations of previous approaches We next explain why approaches used in previous decremental algorithms cannot be generalized to obtain our near-additive results. First, the unweighted (1+ε ,2)(1+ε,2)-approximate APSP algorithm that takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{5/2}/\epsilon )$$\end{document}O~(n5/2/ε) time [], is inspired by static algorithms for +2+2-additive emulators, sparse graphs that preserve the distances up to a +2+2-additive stretch. The main idea is to maintain a sparse emulator of size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m' =\tilde{O}(n^{3/2})$$\end{document}m′=O~(n3/2), and exploit its sparsity to obtain a fast algorithm taking \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m'n)= \tilde{O}(n^{5/2}/\epsilon )$$\end{document}O~(m′n)=O~(n5/2/ε) time. This construction however is specific for the +2+2 case, and cannot be generalized to a general k. Note that the update time of the algorithm crucially depends on the size of the emulator, and to obtain a better algorithm for a general k, we need to be able to construct a sparser emulator for a general k. However, a beautiful lower bound result by Abboud and Bodwin [] shows that for any constant k and δ >0δ>0, a purely additive +k+k emulator should have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Omega (n^{4/3-\delta })$$\end{document}Ω(n4/3-δ) edges. This implies that dynamic algorithms that are based on purely additive emulators with m'm′ edges seem to require \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Theta (n\cdot m')=\Omega (n^{7/3-\delta })$$\end{document}Θ(n·m′)=Ω(n7/3-δ) time, and we cannot get running time arbitrarily close to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^2)$$\end{document}O(n2). An alternative approach is to build a near-additive emulator. This is done in [], where the authors show a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon , 2(1+2/\epsilon )^{k-2})$$\end{document}(1+ε,2(1+2/ε)k-2)-approximation algorithm for decremental APSP with expected total update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2+1/k} (37/\epsilon )^{k-1})$$\end{document}O~(n2+1/k(37/ε)k-1). Here the running time indeed gets closer to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^2)$$\end{document}O(n2), but this comes at a price of a much worse additive term of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$2(1+2/\epsilon )^{k-2}$$\end{document}2(1+2/ε)k-2. While in the static setting there are also other bounds obtained for near-additive emulators, such as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(1+\epsilon ,O(k/\epsilon )^{k-1})$$\end{document}O(1+ε,O(k/ε)k-1) emulators of size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(kn^{1+\frac{1}{2^{k+1}-1}})$$\end{document}O(kn1+12k+1-1) [–], in all of the constructions the additive term depends on ε ε, and the dependence on ε ε is known to be nearly tight for small k by lower bounds from []. Hence this approach cannot lead to small constant additive terms that do not depend on ε ε. (2+ε )(2+ε)-Approximate APSP for Weighted Graphs Given an undirected, weighted graph G=(V,E,w)G=(V,E,w), where w takes positive, integer values, our goal is to maintain (2+ε )(2+ε)-approximate all-pairs distances in G, denoted by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}$$\end{document}d^. We provide an algorithm with parameters \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ 0< p,\epsilon \le 1 $$\end{document}0 (1+\epsilon _2)r^{(t-1)}(v)$$\end{document}δB~(v,p~(v))>(1+ε2)r(t-1)(v), if so then we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r^{(t)}(v):=\delta _{\tilde{B}}(v,\tilde{p}(v))$$\end{document}r(t)(v):=δB~(v,p~(v)).Initially, we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(0)}(v):= \tilde{B}^{(0)}(v)$$\end{document}B(0)(v):=B~(0)(v). Whenever \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r^{(t)}(v)\ne r^{(t-1)}(v)$$\end{document}r(t)(v)≠r(t-1)(v), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v):=\tilde{B}^{(t)}(v)$$\end{document}B(t)(v):=B~(t)(v), otherwise we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v):=B^{(t-1)}(v)$$\end{document}B(t)(v):=B(t-1)(v).The cluster of a node u∈ Vu∈V is the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$C(u):= \{ v \in V: u \in B(v) \}$$\end{document}C(u):={v∈V:u∈B(v)}. Note that these bunches B(v) increase at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _2}(nW)$$\end{document}log1+ε2(nW) times by construction. Next, let us investigate the sizes of these sets. Lemma 4.1 At any given time (i)With high probability, A has size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} (p n) $$\end{document}O~(pn);(ii)With high probability, each bunch B(v) has size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} \left( \tfrac{\log (nW)}{p}\right) $$\end{document}O~log(nW)p; Proof (i)Since A is created by sampling each element of V with probability p≥ 1/np≥1/n, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|A| \sim \text {Binomial}(n, p)$$\end{document}|A|∼Binomial(n,p), so \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathbb {E}[|A|] = pn$$\end{document}E[|A|]=pn. By Chernoff bounds, for any δ > 0δ>0: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Pr [|A| \ge (1+\delta )pn] \le e^{-\frac{\delta ^2 pn}{2+\delta }}. \end{aligned}$$\end{document}Pr[|A|≥(1+δ)pn]≤e-δ2pn2+δ. Setting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta = 3c\log n$$\end{document}δ=3clogn gives \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Pr [|A| \ge (1+3c\log n)pn] \le e^{-pnc\log n}\le n^{-c}$$\end{document}Pr[|A|≥(1+3clogn)pn]≤e-pnclogn≤n-c, so with high probability |A|=O(pn łog n)|A|=O(pnlogn).(ii)This holds trivially as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B(v)\subseteq \tilde{B}(v)$$\end{document}B(v)⊆B~(v), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|\tilde{B}(v)|=\tilde{O}\left( \tfrac{\log (nW)}{p}\right) $$\end{document}|B~(v)|=O~log(nW)p at any moment in time due to Lemma . □ □ Now, we give a description of the algorithm in Algorithm 2, which is a dynamic version of the static algorithm given in Sect. . Next, we give a proof of correctness and show how to implement each of the steps. We provide a separate initialization procedure, as for some steps it will turn out that the initialization step and the update steps are quite different. Throughout the algorithm, we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }:= (1+\epsilon _3)^{\lceil \log _{1+\epsilon _3}(\delta )\rceil }$$\end{document}δ~:=(1+ε3)⌈log1+ε3(δ)⌉ whenever we want a distance estimate δ δ to update at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _3}(nW)$$\end{document}log1+ε3(nW) times. Note that we can always maintain such a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }$$\end{document}δ~ with only a constant multiplicative factor in the total update time. Moreover, it is clear that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta \le \tilde{\delta } \le (1+\epsilon _3)\delta $$\end{document}δ≤δ~≤(1+ε3)δ. Below we define the functions Initialization(), and functions used after each edge update \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}\in E$$\end{document}{u,v}∈E: Delete(u, v), Update(u, v, w(u, v)). Finally we have the Query() function that returns a final estimate over different data structures maintained. Algorithm 1APSP\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$_2$$\end{document}2(V,E,w,p,ε V,E,w,p,ε)[453_2026_1407_Figc_HTML.webp] Update bunches and heaps (Update Step (2)). Now let us look more closely at how we maintain the bunches and clusters, and how these effect the heaps. We maintain the approximate bunches \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{B}(v)$$\end{document}B~(v) for all v∈ Vv∈V by Lemma . From here maintain the additional approximate bunches B(v) for all v∈ Vv∈V as given in Definition , i.e., If there is a change to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(v',\tilde{p}(v'))$$\end{document}δB~(v′,p~(v′)), do the following two things:We check if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}^{(t)}(v',\tilde{p}^{(t)}(v'))> (1+\epsilon _2)r^{(t-1)}(v')$$\end{document}δB~(t)(v′,p~(t)(v′))>(1+ε2)r(t-1)(v′), and if so we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r^{(t)}(v')=\delta _{\tilde{B}}^{(t)}(v',p^{(t)}(v'))$$\end{document}r(t)(v′)=δB~(t)(v′,p(t)(v′)) and we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v):=\tilde{B}^{(t)}(v)$$\end{document}B(t)(v):=B~(t)(v). If not, we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r^{(t)}(v')=r^{(t-1)}(v')$$\end{document}r(t)(v′)=r(t-1)(v′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v)=B^{(t-1)}(v)$$\end{document}B(t)(v)=B(t-1)(v).Let u'∈ Vu′∈V be a node for which there is a change to the bunch involving a node w∈ Vw∈V. Such a change can be: (i) w can leave the bunch of u'u′ (ii) the distance estimate of w to u'u′ can change while w stays within the bunch, or (iii) w can join the bunch of u'u′. We formalize this as follows, using Δ Δ to denote which case we are in. (i)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t-1)}(u')$$\end{document}w∈B(t-1)(u′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin B^{(t)}(u')$$\end{document}w∉B(t)(u′), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞ to indicate that w is no longer in B(u')B(u′).(ii)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t-1)}(u')$$\end{document}w∈B(t-1)(u′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t)}(u')$$\end{document}w∈B(t)(u′) with an increased distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B^{(t)}(u',w)$$\end{document}δ~B(t)(u′,w), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\tilde{\delta }_B^{(t)}(u',w)$$\end{document}Δ=δ~B(t)(u′,w) to be the new distance.(iii)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin B^{(t-1)}(u')$$\end{document}w∉B(t-1)(u′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t)}(u')$$\end{document}w∈B(t)(u′), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\tilde{\delta }_B^{(t)}(u',w)$$\end{document}Δ=δ~B(t)(u′,w) to be the distance.Next, we do the following.Nbr-BunchChange(w,u', ∞ w,u′,∞) to update the corresponding entries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(v',w)+\tilde{\delta }_B(w,u')$$\end{document}w~(v′,w)+δ~B(w,u′) in the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{v',u'}$$\end{document}Qv′,u′nbr-bunch for every \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v'\in \text {Set}^\mathrm{{nbr-bunch}}_{w,u'}$$\end{document}v′∈Setw,u′nbr-bunch. If this changes the minimal entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta ^\mathrm{{nbr-bunch}}(x,y)$$\end{document}δnbr-bunch(x,y) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,y}$$\end{document}Qx,ynbr-bunch for some x,y∈ Vx,y∈V, we check whether we need to update \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,y)$$\end{document}δ~nbr-bunch(x,y), if so we run the procedureAdj-MinHeapChange(\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x,y,\tilde{\delta }^\mathrm{{nbr-bunch}}(x,y)$$\end{document}x,y,δ~nbr-bunch(x,y)).UpdateAdjacent(w,u',Δ w,u′,Δ) to update the corresponding entries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u',w)+\tilde{\delta }^\mathrm{{nbr-bunch}}(w,v')$$\end{document}δ~B(u′,w)+δ~nbr-bunch(w,v′) in the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u',v'}$$\end{document}Qu′,v′adjacent for every \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v'\in \text {Set}^\mathrm{{adj-bunch}}_{u',w}$$\end{document}v′∈Setu′,wadj-bunch. Further Details and Time Analysis In this section, we add further details of the procedures described and analyze the total update time. Considering the sampling of A in the algorithm, we note that A remains unchanged throughout the algorithm, hence it is only sampled once at the initialization. This takes O(n) time. To maintain distances from A, we use the decremental shortest path algorithm from Lemma together with Lemma , which bounds the size of A, to obtain the following lemma. Lemma 4.2 With high probability, we can maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon _1)$$\end{document}(1+ε1)-approximate SSSP from each node in A, providing us with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _A(s,v)$$\end{document}δA(s,v) for s∈ As∈A and v∈ Vv∈V. We can do this in time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(pnm/\epsilon _1)$$\end{document}O~(pnm/ε1) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$pn=n^{\Omega (1)}$$\end{document}pn=nΩ(1), and in time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(pnm(1/\epsilon _1)^{\tilde{O}(\sqrt{\log n})})$$\end{document}O~(pnm(1/ε1)O~(logn)) otherwise. Bunches and clusters. We have approximate bunches \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{B}(v)$$\end{document}B~(v) and pivots \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{p}(v)$$\end{document}p~(v) by Lemma , now we maintain the bunch radii r(v) and approximate bunches B(v) and clusters C(v) according to Definition . As before, we simply set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,v):= (1+\epsilon _3)^{\lceil \log _{1+\epsilon _3}(\delta _B(u,v))\rceil }$$\end{document}δ~B(u,v):=(1+ε3)⌈log1+ε3(δB(u,v))⌉. It is immediate that these extra steps do not incur more than a constant factor in the update time with respect to Lemma , so we obtain the following result. Lemma 4.3 We can maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon _2)$$\end{document}(1+ε2)-approximate bunch radii r(v) with respect to the approximate pivots \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{p}$$\end{document}p~. With high probability, we can maintain approximate bunches B(v) and clusters C(v), and distance estimates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _B(v,u)$$\end{document}δB(v,u) for u∈ B(v)u∈B(v), for all nodes v∈ Vv∈V. Moreover, we can maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,v)$$\end{document}δ~B(u,v), a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon _3)$$\end{document}(1+ε3)-approximation of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _B(u,v)$$\end{document}δB(u,v) that updates at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon _3}(nW))$$\end{document}O(log1+ε3(nW)) times. This takes total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{mn^\rho }{p}\log ^2(nW))\cdot O(\frac{1}{\rho \epsilon _2})^{1+2/\rho } $$\end{document}O~(mnρplog2(nW))·O(1ρε2)1+2/ρ, for some arbitrarily small constant ρ ρ, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}\left( \tfrac{m}{p}(1/\epsilon _2)^{\tilde{O}(\sqrt{\log n})}\right) $$\end{document}O~mp(1/ε2)O~(logn) otherwise. Neighboring bunch data structure. To maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent, we maintain an auxiliary data structure, which is another Min-Heap \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch. This data structure consists of the following ingredients. We say B(v) is a neighboring (approximate) bunch of x if there exists an edge from x to B(v). For every node x, and every neighboring bunch B(v) our goal is to store all neighbors y such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ y \in B (v) \cap N(x) $$\end{document}y∈B(v)∩N(x) together with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{w} (x, y) + \tilde{\delta }_B(y, v) $$\end{document}w~(x,y)+δ~B(y,v), which allows us to find the neighbor y minimizing this sum for each neighboring bunch. Later, we will combine this with the distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)$$\end{document}δ~B(u,x) for u∈ B(x)u∈B(x) to get a distance estimate from u to v, which will be stored in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent. To make sure we do not have to update the entries in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent, we do not maintain the minimum of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch exactly, but instead we maintain an additional approximation, denoted \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~nbr-bunch(x,v) that only changes at most a polylogarithmic number of times. Lemma 4.4 With high probability, we can maintain the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch for all x,v∈ Vx,v∈V in total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p}\cdot \log (nW)\cdot (\log _{1+\epsilon _3}(nW))+\log _{1+\epsilon _2}(nW))) $$\end{document}O~(n2p·log(nW)·(log1+ε3(nW))+log1+ε2(nW))). Moreover, in the same total update time, we can maintain an approximation \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~nbr-bunch(x,v) of the minimum entry of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch that only changes at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _2}(nW)\log _{1+\epsilon _3}(nW)$$\end{document}log1+ε2(nW)log1+ε3(nW) times for each pair (x, v). Proof This data structure is initialized as follows:Iterate over every vertex v∈ Vv∈V, and over all y∈ B(v)y∈B(v). Then iterate over all neighbors x∈ N(y)x∈N(y) of y and add an entry to the data structure \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch with key \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y) + \tilde{\delta }_B(y,v)$$\end{document}w~(x,y)+δ~B(y,v). This takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p}\cdot \log (nW)) $$\end{document}O~(n2p·log(nW)) initialization time, since there are n options for v, it has bunch size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{\log (nW)}{p})$$\end{document}O~(log(nW)p), so \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{\log (nW)}{p})$$\end{document}O~(log(nW)p) options for y, which has at most n neighbors.We need to facilitate two types of updates for an entry of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch corresponding to an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{x,y\}$$\end{document}{x,y}: increases in the weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)$$\end{document}w~(x,y) and increases in the distance estimates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(y,v)$$\end{document}δ~B(y,v). We define the functions Nbr-EdgeChange(a)nd Nbr-BunchChange(r)espectively. Next, we consider how to update this data structure. Suppose a value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(y,v)$$\end{document}δ~B(y,v) changed for some y∈ B(v)y∈B(v) due to an update to the bunches (Lemma ), then we would need to change the corresponding entries in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch. Lemma gives us y, v, and the new distance \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(y,v)$$\end{document}δ~B(y,v), which we need to update in all data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch for which \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{x,y\}\in E$$\end{document}{x,y}∈E. To do this efficiently, we maintain a set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,y}^\mathrm{{nbr-bunch-edge}}$$\end{document}Setx,ynbr-bunch-edge for each edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{x,y\}\in E$$\end{document}{x,y}∈E that stores for which v∈ Vv∈V there is an entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch and a pointer to where in that data structure it appears. We equip this set with the structure of a self-balancing binary search tree, so we have polylogarithmic insertion and removal times. We update this every time the appearance or location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch changes. Now if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)$$\end{document}w~(x,y) changes due to an update, we can efficiently change the corresponding places in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch for all relevant v∈ Vv∈V. Moreover, for the changes in the distances from the bunches, we maintain a set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}Sety,vnbr-bunch for each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in V, y\in B(v)$$\end{document}v∈V,y∈B(v) that stores for which x∈ Vx∈V there is an entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch and a pointer to where in that data structures it appears. We equip this set with the structure of a self-balancing binary search tree, so we have polylogarithmic insertion and removal times. We update this every time the appearance or location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch changes. Now if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(y,v)$$\end{document}δ~B(y,v) changes due to an update, we can efficiently change the corresponding places in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch for all relevant x∈ Vx∈V. We define the function Nbr-EdgeChange(x,y,Δ x,y,Δ), where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{x,y\}\in E$$\end{document}{x,y}∈E, and Δ Δ is the new value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}^{(t)}(x,y)$$\end{document}w~(t)(x,y), or ∞ ∞ if the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{x,y\}$$\end{document}{x,y} is deleted. Depending on Δ Δ, we do one of the following: (i)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, we update the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in \text {Set}_{x,y}^\mathrm{{nbr-bunch-edge}}$$\end{document}v∈Setx,ynbr-bunch-edge, update the corresponding entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)+\tilde{\delta }_B(y,v)$$\end{document}w~(x,y)+δ~B(y,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch and update the entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,y}^\mathrm{{nbr-bunch-edge}}$$\end{document}Setx,ynbr-bunch-edge accordingly.(ii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞, we remove the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in \text {Set}_{x,y}^\mathrm{{nbr-bunch-edge}}$$\end{document}v∈Setx,ynbr-bunch-edge, remove the corresponding entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch.Concerning the total update time of Nbr-EdgeChange(,) we recall that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y) = (1+\epsilon _3)^{\lceil \log _{1+\epsilon _3}(w(x,y))\rceil }$$\end{document}w~(x,y)=(1+ε3)⌈log1+ε3(w(x,y))⌉. This means that each weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)$$\end{document}w~(x,y) gets updated at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _3}(W)$$\end{document}log1+ε3(W) times, giving total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{n^2}{p}\cdot \log (nW)\cdot \log _{1+\epsilon _3}(W))$$\end{document}O~(n2p·log(nW)·log1+ε3(W)). We define the function Nbr-BunchChange(y,v,Δ y,v,Δ), where y is an element of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t-1)}(v)$$\end{document}B(t-1)(v) and/or \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v)$$\end{document}B(t)(v), and Δ Δ is the new value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B^{(t)}(y,v)$$\end{document}δ~B(t)(y,v), or ∞ ∞ if y is no longer in B(v). Nbr-BunchChange(d)oes one of three things: (i)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\notin B^{(t-1)}(v)$$\end{document}y∉B(t-1)(v), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\in B^{(t)}(v)$$\end{document}y∈B(t)(v), we add the corresponding new estimates:We initialize \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}Sety,vnbr-bunch to be empty.For all neighbors x∈ N(y)x∈N(y) of y, we add \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)+\tilde{\delta }_B(y,v)$$\end{document}w~(x,y)+δ~B(y,v) to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch and store x together with its location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}Sety,vnbr-bunch.(ii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\in B^{(t-1)}(v)$$\end{document}y∈B(t-1)(v), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\in B^{(t)}(v)$$\end{document}y∈B(t)(v), we update the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in \text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}x∈Sety,vnbr-bunch, update the corresponding entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)+\tilde{\delta }_B(y,v)$$\end{document}w~(x,y)+δ~B(y,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch and update the entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}Sety,vnbr-bunch accordingly.(iii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\in B^{(t-1)}(v)$$\end{document}y∈B(t-1)(v), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\notin B^{(t)}(v)$$\end{document}y∉B(t)(v), we remove the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in \text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}x∈Sety,vnbr-bunch, remove the corresponding entries from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch and from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{y,v}^\mathrm{{nbr-bunch}}$$\end{document}Sety,vnbr-bunch.Moreover, if one of these three actions change the minimum of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch, this has an impact on the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{\cdot ,v}$$\end{document}Q·,vadjacent. We run Adj-MinHeapChange(x,v,Δ x,v,Δ), which is defined and analyzed in Lemma , to propagate this change. Here Δ Δ is the minimum of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch. The total update time of Adj-MinHeapChange(i)s included in Lemma , and not in this lemma. As \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(y,v)$$\end{document}δ~B(y,v) can change at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon _3}(nW)+\log _{1+\epsilon _2}(nW))$$\end{document}O(log1+ε3(nW)+log1+ε2(nW)) times, and for each time we need at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\deg (y))=O(n)$$\end{document}O~(deg(y))=O(n) time to update the data structure, we get total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\deg (y)(\log _{1+\epsilon _3}(nW))+\log _{1+\epsilon _2}(nW)))$$\end{document}O~(deg(y)(log1+ε3(nW))+log1+ε2(nW))) for the pair (y, v). Now note that there are at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{n}{p}\cdot \log (nW))$$\end{document}O~(np·log(nW)) such pairs, since there are n options for v, with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{\log (nW)}{p})$$\end{document}O~(log(nW)p) options for y∈ B(v)y∈B(v). So we get total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p} \cdot \log (nW)\cdot (\log _{1+\epsilon _3}(nW))+\log _{1+\epsilon _2}(nW))) $$\end{document}O~(n2p·log(nW)·(log1+ε3(nW))+log1+ε2(nW))). Further, we maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~nbr-bunch(x,v), which is a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon _3)$$\end{document}(1+ε3)-approximation of the minimal entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta ^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δnbr-bunch(x,v) of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch, defined by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v):= (1+\epsilon _3)^{\lceil \log _{1+\epsilon _3}(\delta ^\mathrm{{nbr-bunch}}(x,v))\rceil }$$\end{document}δ~nbr-bunch(x,v):=(1+ε3)⌈log1+ε3(δnbr-bunch(x,v))⌉. Note that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~nbr-bunch(x,v) is not monotone over time, so it is not trivial how often the estimate changes. However, note that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~nbr-bunch(x,v) increases at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _3}(nW)$$\end{document}log1+ε3(nW) times in a row. It can only decrease \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _2}(nW)$$\end{document}log1+ε2(nW) times, since the values \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{w}(x,y)+\tilde{\delta }_B(y,v)$$\end{document}w~(x,y)+δ~B(y,v) are non-decreasing, except if new vertices \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$y\in B^{(t)}(v)$$\end{document}y∈B(t)(v) are considered. This is only the case when the bunch \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v)$$\end{document}B(t)(v) grows, which happens at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _2}(nW)$$\end{document}log1+ε2(nW) times by Lemma . □ □ Adjacent data structure. Using \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{nbr-bunch}}_{x,v}$$\end{document}Qx,vnbr-bunch, we construct the required Min-Heap \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent for each pair u,v∈ Vu,v∈V. For every pair of nodes u, v ∈ V u,v∈V our goal is to store all edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \{x, y\} $$\end{document}{x,y} such that x ∈ B (u) x∈B(u) and y ∈ B (v) y∈B(v), together with the distance \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)+\tilde{w}(x,y)+\tilde{\delta }_B(y,v)$$\end{document}δ~B(u,x)+w~(x,y)+δ~B(y,v). Lemma 4.5 With high probability, we can maintain the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent for all u,v∈ Vu,v∈V in total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p}\cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW)\log _{1+\epsilon _2}(nW)) $$\end{document}O~(n2p·log(nW)·log1+ε3(nW)log1+ε2(nW)). Proof This data structure is initialized as follows:Iterate over all nodes u, all x ∈ B (u) x∈B(u), and all neighboring bunches B(v) of x and add an entry for x to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent with key \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)+\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~B(u,x)+δ~nbr-bunch(x,v). As there are at most n bunches in total, this takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n \cdot \tfrac{\log (nW)}{p} \cdot n) = \tilde{O} (\tfrac{n^2}{ p}\cdot \log (nW)) $$\end{document}O~(n·log(nW)p·n)=O~(n2p·log(nW)) time.Again, we maintain additional data structures to facilitate updates: for each x,v∈ Vx,v∈V, we maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,v}^\mathrm{{adjacent}}$$\end{document}Setx,vadjacent which shows for which u∈ Vu∈V there is an entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and a pointer to where in that data structure it appears. We update this every time the appearance or location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent changes. Now if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,w)$$\end{document}δ~B(u,w) changes due to an update, we can efficiently change the corresponding places in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent. We define Adj-BunchChange(a)nalogously to Nbr-BunchChange(.) Adj-BunchChange(u,x,Δ u,x,Δ) does one of the following three things: (i)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\notin B^{(t-1)}(u)$$\end{document}x∉B(t-1)(u), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in B^{(t)}(u)$$\end{document}x∈B(t)(u), we add the corresponding new estimates:We initialize \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{u,x}^\mathrm{{adj-bunch}}$$\end{document}Setu,xadj-bunch to be empty.For all nodes with non-empty \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~nbr-bunch(x,v), we add \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)+\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~B(u,x)+δ~nbr-bunch(x,v) to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and store v together with its location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{u,x}^\mathrm{{adj-bunch}}$$\end{document}Setu,xadj-bunch.(ii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in B^{(t-1)}(u)$$\end{document}x∈B(t-1)(u), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in B^{(t)}(u)$$\end{document}x∈B(t)(u), we update the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in \text {Set}_{u,x}^\mathrm{{adj-bunch}}$$\end{document}v∈Setu,xadj-bunch, update the corresponding entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)+\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~B(u,x)+δ~nbr-bunch(x,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and update the entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{u,x}^\mathrm{{adj-bunch}}$$\end{document}Setu,xadj-bunch accordingly.(iii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in B^{(t-1)}(u)$$\end{document}x∈B(t-1)(u), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\notin B^{(t)}(u)$$\end{document}x∉B(t)(u), we remove the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v\in \text {Set}_{u,x}^\mathrm{{adj-bunch}}$$\end{document}v∈Setu,xadj-bunch, remove the corresponding entries from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{u,x}^\mathrm{{adj-bunch}}$$\end{document}Setu,xadj-bunch.As updates in bunches/distance estimates in bunches happen \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon _3}(nW)+\log _{1+\epsilon _2}(nW))$$\end{document}O(log1+ε3(nW)+log1+ε2(nW)) times, see Definition , we get total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p}\cdot \log (nW)\cdot (\log _{1+\epsilon _3}(nW)+\log _{1+\epsilon _2}(nW))) $$\end{document}O~(n2p·log(nW)·(log1+ε3(nW)+log1+ε2(nW))). We also define the function Adj-MinHeapChange(t)o process changes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(\cdot ,\cdot )$$\end{document}δ~nbr-bunch(·,·). The function Adj-MinHeapChange(x,v,Δ x,v,Δ) does one of the following three things: (i)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞ and the distance estimate from x to v is new,, we add the corresponding new estimates:We initialize \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,v}^\mathrm{{adj-heap}}$$\end{document}Setx,vadj-heap to be empty.For all u∈ C(x)u∈C(x), we add \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)+\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~B(u,x)+δ~nbr-bunch(x,v) to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and store u together with its location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{x,v}$$\end{document}Qx,vadjacent in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,v}^\mathrm{{adj-heap}}$$\end{document}Setx,vadj-heap.(ii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞ and there already was a distance estimate from x to v,, we update the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in \text {Set}_{x,v}^\mathrm{{adj-heap}}$$\end{document}x∈Setx,vadj-heap, update the corresponding entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,x)+\tilde{\delta }^\mathrm{{nbr-bunch}}(x,v)$$\end{document}δ~B(u,x)+δ~nbr-bunch(x,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and update the entry in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,v}^\mathrm{{adj-heap}}$$\end{document}Setx,vadj-heap accordingly.(iii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞ and there is no longer a distance estimate from x to v,, we remove the corresponding estimates:For each entry \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in \text {Set}_{x,v}^\mathrm{{adj-heap}}$$\end{document}x∈Setx,vadj-heap, remove the corresponding entries from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{adjacent}}_{u,v}$$\end{document}Qu,vadjacent and from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{x,v}^\mathrm{{adj-heap}}$$\end{document}Setx,vadj-heap.Since each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }^\mathrm{{nbr-bunch}}(\cdot ,\cdot )$$\end{document}δ~nbr-bunch(·,·) updates at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _2}(nW)\log _{1+\epsilon _3}(nW)$$\end{document}log1+ε2(nW)log1+ε3(nW) times by Lemma , we get total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{n^2}{p}\cdot \log (nW)\cdot \log _{1+\epsilon _2}(nW)\cdot \log _{1+\epsilon _3}(nW))$$\end{document}O~(n2p·log(nW)·log1+ε2(nW)·log1+ε3(nW)) for this operation. Together, Nbr-BunchChange(a)nd Adj-BunchChange(f)orm the function UpdateAdjacent(.) To be precise, we define UpdateAdjacent(a)s follows: UpdateAdjacent(u,v,Δ u,v,Δ): Nbr-BunchChange(u,v,Δ u,v,Δ)Adj-BunchChange(u,v,Δ u,v,Δ)This means we obtain total update time\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned}&\tilde{O}(\tfrac{n^2}{p}\cdot \log (nW)\cdot (\log _{1+\epsilon _3}(nW)+\log _{1+\epsilon _2}(nW)+\log _{1+\epsilon _2}(nW)\cdot \log _{1+\epsilon _3}(nW)))\\ =&\tilde{O}(\tfrac{n^2}{p}\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)\cdot \log _{1+\epsilon _2}(nW)). \end{aligned}$$\end{document}O~(n2p·log(nW)·(log1+ε3(nW)+log1+ε2(nW)+log1+ε2(nW)·log1+ε3(nW)))=O~(n2p·log(nW)·log1+ε3(nW)·log1+ε2(nW)).□ □ Query time. Finally, we observe that the query is relatively straightforward and can be done in constant time. Lemma 4.6 has constant query time. Proof A query \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\texttt {Query}(u,v)$$\end{document}Query(u,v) consists of the minimum over four values. The first two can be computed in constant time, as the components are all maintained explicitly. The last two are maintained explicitly. This gives us constant query time in total. □ □ We summarize this section in the following lemma. Lemma 4.7 With high probability, the algorithm has total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} ((pnm + \tfrac{n^2}{ p})\log ^3(nW)(\tfrac{1}{\rho \varepsilon })^{O(1/\rho )}) $$\end{document}O~((pnm+n2p)log3(nW)(1ρε)O(1/ρ)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=n^{\Omega (1)-1}$$\end{document}p=nΩ(1)-1, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\le n^{2-\rho }$$\end{document}m≤n2-ρ for an arbitrarily small constant ρ ρ. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\ge n^{2-\rho }$$\end{document}m≥n2-ρ, we have total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} ((pnm + \tfrac{mn^ \rho +n^2}{ p})\log ^3(nW)(\tfrac{1}{\rho \varepsilon })^{O(1/\rho )}) $$\end{document}O~((pnm+mnρ+n2p)log3(nW)(1ρε)O(1/ρ)). Otherwise we have total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} ((pnm + \tfrac{n^2}{ p})\log ^3(nW)(1/\varepsilon )^{\tilde{O}(\sqrt{\log n})}) $$\end{document}O~((pnm+n2p)log3(nW)(1/ε)O~(logn)). Proof We inspect the total update times from all components of Algorithm 2, using that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varepsilon _1=\varepsilon _2=\varepsilon _3=\varepsilon _4=\varepsilon /3$$\end{document}ε1=ε2=ε3=ε4=ε/3. First of all, we can perform the sampling of A in O(n) time. By Lemma , we can maintain distances from A in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(pnm/\varepsilon )$$\end{document}O~(pnm/ε) total update time if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$pn=n^{\Omega (1)}$$\end{document}pn=nΩ(1), or in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}\left( pnm(1/\varepsilon )^{\tilde{O}(\sqrt{\log n})}\right) $$\end{document}O~pnm(1/ε)O~(logn) total update time otherwise. By Lemma , we can maintain the bunches and clusters in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{mn^\rho }{p}\cdot \log ^2(nW)))\cdot O(\tfrac{1}{\rho \varepsilon })^{1+2/\rho } $$\end{document}O~(mnρp·log2(nW)))·O(1ρε)1+2/ρ total update time, for some arbitrarily small constant ρ ρ, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), or in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{m}{p}\cdot \log ^2(nW))(1/\varepsilon )^{\tilde{O}(\sqrt{\log n})})$$\end{document}O~(mp·log2(nW))(1/ε)O~(logn)) total update time otherwise. Moreover, by Lemma , we can maintain our neighboring bunch data structure in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p} \cdot \log (nW))\cdot (\log _{1+\epsilon _2}(nW)+\log _{1+\epsilon _3}(nW))) $$\end{document}O~(n2p·log(nW))·(log1+ε2(nW)+log1+ε3(nW))) total update time. Finally, by Lemma , we can maintain our adjacent data structure in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n^2}{p} \cdot \log (nW))\cdot (\log _{1+\epsilon _2}(nW)\cdot \log _{1+\epsilon _3}(nW)) $$\end{document}O~(n2p·log(nW))·(log1+ε2(nW)·log1+ε3(nW)) total update time. In total, this means for the case that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=n^{\Omega (1)-1}$$\end{document}p=nΩ(1)-1, we have total update time\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned}&\tilde{O} ((pnm + \tfrac{mn^{\rho }}{p} + \tfrac{n^2}{ p})\log (nW)\log _{1+\epsilon _2}(nW)\log _{1+\epsilon _3}(nW)(\tfrac{1}{\rho \varepsilon })^{1/\rho })\\ =&\tilde{O} ((pnm + \tfrac{mn^{\rho }}{p} + \tfrac{n^2}{ p})\log ^3(nW)(\tfrac{1}{\rho \varepsilon })^{O(1/\rho )}), \end{aligned}$$\end{document}O~((pnm+mnρp+n2p)log(nW)log1+ε2(nW)log1+ε3(nW)(1ρε)1/ρ)=O~((pnm+mnρp+n2p)log3(nW)(1ρε)O(1/ρ)),If we furthermore assume that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^\rho = O(n/p)$$\end{document}nρ=O(n/p), i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p = O(n^{1-\rho })$$\end{document}p=O(n1-ρ) for some arbitrarily small ρ ρ, then we obtain the simplified version\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \tilde{O} ((pnm + \tfrac{n^2}{ p})\log ^3(nW)(\tfrac{1}{\rho \varepsilon })^{O(1/\rho )}). \end{aligned}$$\end{document}O~((pnm+n2p)log3(nW)(1ρε)O(1/ρ)).For other choices of m, n, and p, we obtain\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \tilde{O} ((pnm + \tfrac{n^2}{ p})\log ^3(nW)(1/\varepsilon )^{\tilde{O}(\sqrt{\log n})}). \end{aligned}$$\end{document}O~((pnm+n2p)log3(nW)(1/ε)O~(logn)).□ □ Stretch Analysis We can now follow the same structure as outlined in the high-level overview to prove the stretch in different cases for each pair u,v ∈ Vu,v∈V. In our analysis we also discuss how maintaining approximate bunches and distances impacts the final stretch. Lemma 4.8 For all u,v∈ Vu,v∈V, the distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}(u,v)$$\end{document}d^(u,v) returned by a query to is a (2+ε )(2+ε)-approximation of the distance d(u, v). Proof Let u,v ∈ Vu,v∈V. We will show that at any time t, if Query(u, v) returns \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}^{(t)}(u,v)$$\end{document}d^(t)(u,v), then we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d^{(t)}(u,v)\le \hat{d}^{(t)}(u,v)\le (2+\epsilon )d^{(t)}(u,v)$$\end{document}d(t)(u,v)≤d^(t)(u,v)≤(2+ε)d(t)(u,v). Since we look at all data structures at the same time t, we omit the superscripts \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\cdot ^{(t)}$$\end{document}·(t) in the remainder of this proof. First, let us note that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}(u,v)$$\end{document}d^(u,v) consists of different distance estimates that all correspond to actual paths in G, hence we clearly have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,v)\le \hat{d}(u,v)$$\end{document}d(u,v)≤d^(u,v). Heaps do not contain ‘old’ entries, entries that correspond to paths that are no longer in G at the time of query, since the update functions Nbr-BunchChange(,) Nbr-EdgeChange(,) Adj-MinHeapChange(,) and Adj-BunchChange(t)ake such entries out as soon as they are no longer relevant. Next, we do a case distinction as follows. Let π π denote the shortest path from u to v. There exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin (B(u)\cup B(v))$$\end{document}w∉(B(u)∪B(v)) (the left case in Fig. ). Since w∉ B(u)w∉B(u), we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,w)\ge r(u) \ge \tfrac{\delta _{\tilde{B}}(u,\tilde{p}(u))}{1+\epsilon _2}$$\end{document}d(u,w)≥r(u)≥δB~(u,p~(u))1+ε2, so \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(u,\tilde{p}(u))\le (1+\epsilon _2)d(u,w)$$\end{document}δB~(u,p~(u))≤(1+ε2)d(u,w). Similarly \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(v,\tilde{p}(v)) \le (1+\epsilon _2)d(w,v)$$\end{document}δB~(v,p~(v))≤(1+ε2)d(w,v). Since d(u,w)+d(w,v)=d(u,v)d(u,w)+d(w,v)=d(u,v), we have either \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,w)\le \tfrac{d(u,v)}{2}$$\end{document}d(u,w)≤d(u,v)2 or \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(v,w)\le \tfrac{d(u,v)}{2}$$\end{document}d(v,w)≤d(u,v)2. Without loss of generality, assume \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,w) \le \tfrac{d(u,v)}{2}$$\end{document}d(u,w)≤d(u,v)2, then by Query Step (a) in the algorithm we have: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{d}(u,v)&\le \delta _{\tilde{B}}(u,\tilde{p}(u))+\delta _A(v,\tilde{p}(u)) \\&\le \delta _{\tilde{B}}(u,\tilde{p}(u)) +(1+\epsilon _4)d(v,\tilde{p}(u))\\&\le \delta _{\tilde{B}}(u,\tilde{p}(u))+(1+\epsilon _4)(d(u,\tilde{p}(u))+d(u,v))\\&\le \delta _{\tilde{B}}(u,\tilde{p}(u))+(1+\epsilon _4)(\delta _{\tilde{B}}(u,\tilde{p}(u))+d(u,v))\\&\le (2+\epsilon _4)(1+\epsilon _2)d(u,w)+(1+\epsilon _4)d(u,v)\\&\le (2+\tfrac{3}{2}\epsilon _4+\tfrac{1}{2}\epsilon _4\epsilon _2+\epsilon _2)d(u,v)\\&\le (2+\epsilon )d(u,v), \end{aligned}$$\end{document}d^(u,v)≤δB~(u,p~(u))+δA(v,p~(u))≤δB~(u,p~(u))+(1+ε4)d(v,p~(u))≤δB~(u,p~(u))+(1+ε4)(d(u,p~(u))+d(u,v))≤δB~(u,p~(u))+(1+ε4)(δB~(u,p~(u))+d(u,v))≤(2+ε4)(1+ε2)d(u,w)+(1+ε4)d(u,v)≤(2+32ε4+12ε4ε2+ε2)d(u,v)≤(2+ε)d(u,v), where in the last step we use \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon _4=\epsilon _2=\epsilon /3$$\end{document}ε4=ε2=ε/3.There is no \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin (B(u)\cup B(v))$$\end{document}w∉(B(u)∪B(v)) (the right case in Fig. ). This means there has to be a direct edge from the cluster of u to the cluster of v: the shortest path π π consists of a path from u to u'u′, for some u'∈ B(u)u′∈B(u), an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\}\in E$$\end{document}{u′,v′}∈E, for some v'∈ B(v)v′∈B(v), and a path from v'v′ to v (see the right case in Fig. ). Note that in particular this includes the cases where u∈ B(v)u∈B(v) or v∈ B(u)v∈B(u), or more general when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B(u)\cap B(v)\ne \emptyset $$\end{document}B(u)∩B(v)≠∅, since we do not require u≠ u'u≠u′, v≠ v'v≠v′, u'∉ B(v)u′∉B(v), or v'∉ B(u)v′∉B(u). By Query Step (b) we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{d}(u,v)&\le \tilde{\delta }_B(u,u')+\tilde{\delta }^{\mathrm{nbr-bunch}}(u',v)\\&\le (1+\epsilon _3)\delta _B(u,u')+(1+\epsilon _3)\delta ^{\mathrm{nbr-bunch}}(u',v)\\&\le (1+\epsilon _3)(1+\epsilon _1)d(u,u')+(1+\epsilon _3)(\tilde{w}(u',v')+\tilde{\delta }_B(v',v))\\&\le (1+\epsilon _3)(1+\epsilon _1)d(u,u')+(1+\epsilon _3)^2(w(u',v')+\delta _B(v',v))\\&\le (1+\epsilon _3)(1+\epsilon _1)d(u,u')+(1+\epsilon _3)^2(w(u',v')+(1+\epsilon _1)d(v',v))\\&\le (1+\epsilon _3)^2(1+\epsilon _1)d(u,v)\\&\le (2+\epsilon )d(u,v), \end{aligned}$$\end{document}d^(u,v)≤δ~B(u,u′)+δ~nbr-bunch(u′,v)≤(1+ε3)δB(u,u′)+(1+ε3)δnbr-bunch(u′,v)≤(1+ε3)(1+ε1)d(u,u′)+(1+ε3)(w~(u′,v′)+δ~B(v′,v))≤(1+ε3)(1+ε1)d(u,u′)+(1+ε3)2(w(u′,v′)+δB(v′,v))≤(1+ε3)(1+ε1)d(u,u′)+(1+ε3)2(w(u′,v′)+(1+ε1)d(v′,v))≤(1+ε3)2(1+ε1)d(u,v)≤(2+ε)d(u,v), where in the last step we use \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon _1=\epsilon _3=\epsilon /3$$\end{document}ε1=ε3=ε/3, and ε <1ε<1.□ □ Putting Everything Together In this section we combine our lemmas in the following theorem. To obtain this result, we pick p to balance the different terms in the total update time. Theorem Given a graph G with positive, integer weights and a constant 0< ε < 10<ε<1, there is a decremental data structure that maintains a (2+ε )(2+ε)-approximation of APSP. The algorithm has constant query time and works against an oblivious adversary. The total update time is w.h.p.\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2}\log ^3(nW))$$\end{document}O~(m1/2n3/2log3(nW)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\le n^{2-\rho }$$\end{document}m≤n2-ρ for an arbitrary small constant ρ ρ,\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2+\rho }\log ^3(nW))$$\end{document}O~(m1/2n3/2+ρlog3(nW)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\ge n^{2-\rho }$$\end{document}m≥n2-ρ for any constant ρ ρ,\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2+o(1)}\log ^3(nW))$$\end{document}O~(m1/2n3/2+o(1)log3(nW)) otherwise,where W is the ratio between the maximum and minimum weight. Proof This follows from Lemma and , by picking p to minimize \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$pnm + \tfrac{n^2}{ p}$$\end{document}pnm+n2p. This gives \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=\sqrt{\tfrac{n}{m}}$$\end{document}p=nm, implying \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$pnm=\tfrac{n^2}{p}=m^{1/2}n^{3/2}$$\end{document}pnm=n2p=m1/2n3/2. Note that whenever \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\le n^{2-\rho }$$\end{document}m≤n2-ρ, this choice of p indeed satisfies the other requirements of Lemma : \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=n^{\Omega (1)-1}$$\end{document}p=nΩ(1)-1. Since we now assume that ɛ ε and ρ ρ are constants, the factor \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(\tfrac{1}{\rho \varepsilon })^{O(1/\rho )}$$\end{document}(1ρε)O(1/ρ) simplifies to O(1). When \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+o(1)}$$\end{document}m=n1+o(1), we obtain an extra factor \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1/\varepsilon )^{\tilde{O}(\sqrt{\log n})}$$\end{document}(1/ε)O~(logn) in the total update time, which simplifies to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) for constant ɛ ε. And when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m\ge n^{2-\rho }$$\end{document}m≥n2-ρ, we obtain the extra factor \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{\rho }$$\end{document}nρ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1/\varepsilon )^{\tilde{O}(\sqrt{\log n})}$$\end{document}(1/ε)O~(logn), where the latter again simplifies to O(1) for constant ρ ρ and ε ε. □ □ \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-APSP for Weighted Graphs and Unweighted 2-APSP In this section, we show that an adapted version of the algorithm from Sect. returns \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-approximate distances with improved update time, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v is the maximum weight on a shortest path from u to v. This result follows by the fact that in this case we do not need to handle the adjacent bunch case, but instead can consider an overlap bunch case (see the middle case in Fig. ), which leads to an improved total update time. To make this efficient, there are some additional complications. We introduce a parameter τ τ, the bunch overlap threshold, which bounds the cluster size. For nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)$$\end{document}w∈B(u)∩B(v) with cluster smaller than τ τ, we can compute the estimate in the overlap case efficiently. If all nodes in the overlap B(u)∩ B(v)B(u)∩B(v) have larger clusters, we obtain an estimate by computing shortest paths from the heavy nodes. We recommend the reader to first read the static version of this algorithm in Sect. . We then present the details of the dynamic version in Sect. . Moreover, in Sect. , we show our general reduction from mixed APSP to purely multiplicative APSP for unweighted graphs. We use this reduction to obtain our unweighted (2+ε ,0)(2+ε,0)-APSP result. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-APSP for Weighted Graphs We use the same structure as in Sect. : we have bunches, and clusters exactly as before. We introduce the parameter \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$1\le \tau \le n$$\end{document}1≤τ≤n to be set later. Now we define nodes to be heavy or light based on their cluster size.We call a node u heavy if it is or ever was contained in at least τ τ approximate bunches B(v), i.e., u is heavy at time t if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|C^{(t')}(u)|\ge \tau $$\end{document}|C(t′)(u)|≥τ for some t'≤ tt′≤t. If a node is not heavy, we call it light.We denote \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy for the set of heavy nodes, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{light}}=V\setminus V_\mathrm{{heavy}}$$\end{document}Vlight=V\Vheavy for the light nodes. By definition of heavy nodes, a light node can become heavy, but a heavy node can never become light.Suppose we have a distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(s,v)$$\end{document}δH(s,v) for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s\in V_\mathrm{{heavy}},v\in V$$\end{document}s∈Vheavy,v∈V. For each node u ∈ Vu∈V, q(u) is the closest node in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy to u according to the distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H$$\end{document}δH.We can show that the size of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ V_\mathrm{{heavy}} $$\end{document}Vheavy is bounded. Lemma 5.1 At any given time, with high probability, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ V_\mathrm{{heavy}} $$\end{document}Vheavy has size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} (\tfrac{n }{p\tau }\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)) $$\end{document}O~(npτ·log(nW)·log1+ε3(nW)). Proof Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v)$$\end{document}B(t)(v) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$C^{(t)}(w)$$\end{document}C(t)(w) denote the bunch of v and the cluster of w respectively at time t. Since bunch radius r(v) increases by at least a factor \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$1+\epsilon _3$$\end{document}1+ε3 if the bunch changes, we have at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\log _{1+\epsilon _3}(nW)$$\end{document}log1+ε3(nW) different bunch radii. Until the bunch radius increases, the bunch can only lose vertices, which does not contribute to the total size. Since each bunch is of size \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{\log (nW)}{p})$$\end{document}O~(log(nW)p) with high probability by Lemma , we obtain that the total size of a bunch over the course of the algorithm is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\left| \bigcup _{t} B^{(t)}(v)\right| =\tilde{O}\left( \tfrac{\log (nW)\cdot \log _{1+\epsilon _3}(nW)}{p}\right) $$\end{document}⋃tB(t)(v)=O~log(nW)·log1+ε3(nW)p. Hence we have\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} |V_\mathrm{{heavy}}|\tau&\le \sum _{w\in V_\mathrm{{heavy}}} \tau \le \sum _{w\in V_\mathrm{{heavy}}} \left| \bigcup _t C^{(t)}(w) \right| \le \sum _{w\in V} \left| \bigcup _t C^{(t)}(w) \right| \\&= \sum _{v\in V} \left| \bigcup _t B^{(t)}(v) \right| = \tilde{O} ( \tfrac{n}{p}\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)). \end{aligned}$$\end{document}|Vheavy|τ≤∑w∈Vheavyτ≤∑w∈Vheavy⋃tC(t)(w)≤∑w∈V⋃tC(t)(w)=∑v∈V⋃tB(t)(v)=O~(np·log(nW)·log1+ε3(nW)).Thus \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|V_\mathrm{{heavy}}| = \tilde{O} (\tfrac{n }{p\tau }\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW))$$\end{document}|Vheavy|=O~(npτ·log(nW)·log1+ε3(nW)). □ □ Now we are ready to present our new algorithm, see Algorithm 3. Algorithm 2APSP\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$_{2,W}$$\end{document}2,W(\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V,E,w,p,\tau ,\epsilon $$\end{document}V,E,w,p,τ,ε)[453_2026_1407_Figg_HTML.webp] Updating bunches and heaps. For completeness, we recall how we update the bunches and clusters. We now maintain different heaps. Again, we maintain the approximate bunches \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{B}(v)$$\end{document}B~(v) for all v∈ Vv∈V by Lemma . From here maintain the additional approximate bunches B(v) for all v∈ Vv∈V as given in Definition , i.e., If there is a change to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(v',\tilde{p}(v'))$$\end{document}δB~(v′,p~(v′)), do the following two things:We check if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}^{(t)}(v',\tilde{p}^{(t)}(v'))> (1+\epsilon _3)r^{(t-1)}(v')$$\end{document}δB~(t)(v′,p~(t)(v′))>(1+ε3)r(t-1)(v′), and if so we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r^{(t)}(v')=\delta _{\tilde{B}}^{(t)}(v',p^{(t)}(v'))$$\end{document}r(t)(v′)=δB~(t)(v′,p(t)(v′)) and we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v):=\tilde{B}^{(t)}(v)$$\end{document}B(t)(v):=B~(t)(v). If not, we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r^{(t)}(v')=r^{(t-1)}(v')$$\end{document}r(t)(v′)=r(t-1)(v′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(v)=B^{(t-1)}(v)$$\end{document}B(t)(v)=B(t-1)(v).Let u'∈ Vu′∈V be a node for which there is a change to the bunch involving a node w∈ Vw∈V. Such a change can be: (i) w can leave the bunch of u'u′ (ii) the distance estimate of w to u'u′ can change while w stays within the bunch, or (iii) w can join the bunch of u'u′. We formalize this as follows, using Δ Δ to denote which case we are in. (i)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t-1)}(u')$$\end{document}w∈B(t-1)(u′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin B^{(t)}(u')$$\end{document}w∉B(t)(u′), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞ to indicate that w is no longer in B(u')B(u′).(ii)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t-1)}(u')$$\end{document}w∈B(t-1)(u′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t)}(u')$$\end{document}w∈B(t)(u′) with an increased distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B^{(t)}(u',w)$$\end{document}δ~B(t)(u′,w), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\tilde{\delta }_B^{(t)}(u',w)$$\end{document}Δ=δ~B(t)(u′,w) to be the new distance.(iii)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin B^{(t-1)}(u')$$\end{document}w∉B(t-1)(u′) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t)}(u')$$\end{document}w∈B(t)(u′), we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\tilde{\delta }_B^{(t)}(u',w)$$\end{document}Δ=δ~B(t)(u′,w) to be the distance.Next, we do the following. If we are in Case (iii), we check the cluster size of w: if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|C^{(t)}(w)|\ge \tau $$\end{document}|C(t)(w)|≥τ, then we add w to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy and we initialize a SSSP approximation, denoted by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(w,\delta )$$\end{document}δH(w,δ). Moreover, for each u'u′ in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$C^{(t-1)}(w)$$\end{document}C(t-1)(w) we do the following:UpdateOverlap(w,u',∞ w,u′,∞) to remove the corresponding entries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u',w)+\tilde{\delta }_B(v',w)$$\end{document}δ~B(u′,w)+δ~B(v′,w) from the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u',v'}$$\end{document}Qu′,v′overlap for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v'\in \text {Set}^\mathrm{{overlap}}_{w,u'}$$\end{document}v′∈Setw,u′overlap. Here \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}^\mathrm{{overlap}}_{w,u'}$$\end{document}Setw,u′overlap stores exactly those v'v′ such that there is an entry for w in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u',v'}$$\end{document}Qu′,v′overlap. The details on \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}^\mathrm{{overlap}}$$\end{document}Setoverlap can be found together with the definition and total update time of UpdateOverlap(a)re given in Lemma .If we are in Case (iii) but \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|C^{(t)}(w)|<\tau $$\end{document}|C(t)(w)|<τ, or we are in Case (i) or (ii), then we do the followingUpdateOverlap(w,u',Δ w,u′,Δ) to update the corresponding entries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u',w)+\tilde{\delta }_B(v',w)$$\end{document}δ~B(u′,w)+δ~B(v′,w) in the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u',v'}$$\end{document}Qu′,v′overlap for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v'\in \text {Set}^\mathrm{{overlap}}_{w,u'}$$\end{document}v′∈Setw,u′overlap.Distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ V_\mathrm{{heavy}} $$\end{document}Vheavy . First, we note that a node is heavy if it is contained in at least τ τ bunches, or equivalently, if |C(w)|>τ |C(w)|>τ. Hence by Lemma , we can easily keep track when nodes become heavy and should join \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy. Next, we use the shortest path algorithm from Lemma , which we combine with Lemma , which states that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_\mathrm{{heavy}}$$\end{document}Vheavy might be growing over time, but its size is always bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{n }{p\tau }\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)) $$\end{document}O~(npτ·log(nW)·log1+ε3(nW)). Moreover, we maintain the closest heavy nodes q(v) by maintaining a Min-Heap \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{heavy~pivot}}_v$$\end{document}Qvheavypivot for each node v, with all nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u\in V_\mathrm{{heavy}}$$\end{document}u∈Vheavy as entries with key \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(u,v)$$\end{document}δH(u,v). Throughout, we will use that we can extract the minimum entry of a Min-Heap in constant time, that we can insert entries in łog (n)log(n) time, and that we can edit or delete entries in łog (n)log(n) time, given that we know either the key or have a pointer to their location in the Min-Heap. This clearly does not incur more than a constant factor in the update time, so together we obtain the following lemma. Lemma 5.2 With high probability, we can maintain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon _1)$$\end{document}(1+ε1)-SSSP from each node in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ V_\mathrm{{heavy}} $$\end{document}Vheavy, providing us with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(s,v)$$\end{document}δH(s,v) for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s\in V_\mathrm{{heavy}}$$\end{document}s∈Vheavy and v∈ Vv∈V. Further, for all v∈ Vv∈V, we can maintain the closest heavy nodes q(v) if d(v,q(v))≤ dd(v,q(v))≤d. We can do this in total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{m n }{p\tau \varepsilon _1}\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)) $$\end{document}O~(mnpτε1·log(nW)·log1+ε3(nW)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tfrac{n}{p\tau }=n^{\Omega (1)}$$\end{document}npτ=nΩ(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{m n }{p\tau }\cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)(1/\varepsilon _1)^{\tilde{O}(\sqrt{\log n})}) $$\end{document}O~(mnpτ·log(nW)·log1+ε3(nW)(1/ε1)O~(logn)) otherwise. Overlap data structure. Now we provide the details of how we maintain the data structure \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap for all u,v∈ Vu,v∈V, which has entries for all nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)\cap V_\mathrm{{light}}$$\end{document}w∈B(u)∩B(v)∩Vlight. Lemma 5.3 With high probability, we can maintain the data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap for all u,v∈ Vu,v∈V in total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} (\tfrac{n\tau }{p} \cdot \log (nW) \cdot \log _{1+\epsilon _3}(nW)\cdot \log _{1+\epsilon _4}(nW)) $$\end{document}O~(nτp·log(nW)·log1+ε3(nW)·log1+ε4(nW)). Proof Conceptually, we initialize a Min-Heap \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap for each pair \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(u,v)\in V\times V$$\end{document}(u,v)∈V×V. In practice, we only create the Min-Heap if the first entry is about to be added. This avoids a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Theta (n^2)$$\end{document}Θ(n2) initialization time. Now fix v∈ Vv∈V, and consider the moment we add a node w to B(v). For this data structure, we only need to consider \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in V_\mathrm{{light}}$$\end{document}w∈Vlight, hence w is part of at most τ τ bunches. When we add w to to B(v), we know it is part of at most τ τ other bunches B(u). For each such tuple (u, w, v), we add an entry to the Min-Heap \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap for (u, v), which stores w with as key the distance estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _w(u,v):=\tilde{\delta }_B(u,w)+\tilde{\delta }_B(w,v)$$\end{document}δw(u,v):=δ~B(u,w)+δ~B(w,v). For the total time, notice that for each v∈ Vv∈V, we have at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{\log (nW)}{p})$$\end{document}O~(log(nW)p) different w∈ B(v)w∈B(v) for which we store at most τ τ distances, hence we have total initialization time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (n \cdot \tfrac{\log (nW)}{p} \cdot \tau ) $$\end{document}O~(n·log(nW)p·τ). Next, we consider how to update this data structure. Suppose a value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,w)$$\end{document}δ~B(u,w) changed for some w∈ B(u)w∈B(u) due to an update to the bunches (Lemma ), then we would need to change the corresponding entries in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap. Lemma gives us u, w, and the new distance \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,w)$$\end{document}δ~B(u,w), which we need to update in all data structures \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap for which \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u) \cap B(v)$$\end{document}w∈B(u)∩B(v). Clearly, checking all possible v and looking through the entire \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap is too slow. Instead, we keep an additional data structure for each node w∈ B(u)w∈B(u): a set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap that shows for which v∈ Vv∈V it appears in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap and a pointer to where in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap it appears. We equip this set with the structure of a self-balancing binary search tree, so we have polylogarithmic insertion and removal times. We update this every time the appearance or location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap changes. Now, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B(u,w)$$\end{document}δ~B(u,w) changes due to an update, we can efficiently change the corresponding places in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap as follows. We define the function UpdateOverlap(u,w,Δ u,w,Δ), where w is an element of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t-1)}(u)$$\end{document}B(t-1)(u) and/or \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}$$\end{document}B(t), and Δ Δ is the new value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{\delta }_B^{(t)}(u,w)$$\end{document}δ~B(t)(u,w), or ∞ ∞ if w is no longer in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$B^{(t)}(u)$$\end{document}B(t)(u). Note that we will only call this function for light w.UpdateOverlap(d)oes one of three things: (i)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin B^{(t-1)}(u)$$\end{document}w∉B(t-1)(u) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t)}(u)$$\end{document}w∈B(t)(u). We add the new estimates:We initialize \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap to be empty.For each v∈ C(w)v∈C(w), we add \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _w(u,v):= \tilde{\delta }_B(u,w)+\tilde{\delta }_B(w,v)$$\end{document}δw(u,v):=δ~B(u,w)+δ~B(w,v) to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap and store v together with its location in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap as entries in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,v}^\mathrm{{overlap}}$$\end{document}Setw,voverlap.(ii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta <\infty $$\end{document}Δ<∞, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t-1)}(u)$$\end{document}w∈B(t-1)(u) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t)}(u)$$\end{document}w∈B(t)(u). We update the estimates:For each entry of v in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap, update \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _w(u,v)= \tilde{\delta }_B(u,w)+\tilde{\delta }_B(w,v)$$\end{document}δw(u,v)=δ~B(u,w)+δ~B(w,v) in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap and update the entries in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,v}^\mathrm{{overlap}}$$\end{document}Setw,voverlap accordingly.(iii)If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Delta =\infty $$\end{document}Δ=∞, then \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B^{(t-1)}(u)$$\end{document}w∈B(t-1)(u) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin B^{(t)}(u)$$\end{document}w∉B(t)(u). We remove the corresponding estimates:For each entry of v in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap, remove \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _w(u,v)$$\end{document}δw(u,v) from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$Q^\mathrm{{overlap}}_{u,v}$$\end{document}Qu,voverlap and remove the corresponding entries from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,u}^\mathrm{{overlap}}$$\end{document}Setw,uoverlap and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\text {Set}_{w,v}^\mathrm{{overlap}}$$\end{document}Setw,voverlap.For the total update time, notice that in total at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(\tfrac{n}{p}\cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW))$$\end{document}O~(np·log(nW)·log1+ε3(nW)) nodes get added to a bunch, see Lemma . Since we only call this function when the added node w is light at that time, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|C(w)|\le \tau $$\end{document}|C(w)|≤τ and thus step (i) takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\tfrac{n\tau }{p}\cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW))$$\end{document}O(nτp·log(nW)·log1+ε3(nW)) total update time. For step (ii), note that the distance can be updated at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\log _{1+\epsilon _4}(nW))$$\end{document}O(log1+ε4(nW)) times and therefore this step has total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\tfrac{n\tau }{p}\cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW)\log _{1+\epsilon _4}(nW))$$\end{document}O(nτp·log(nW)·log1+ε3(nW)log1+ε4(nW)). Further nodes get deleted from bunches at most as often as they get added, so the total update time of step (iii) is dominated by step (i). We obtain total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} ( \tfrac{n\tau }{p} \cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW)\cdot \log _{1+\epsilon _4}(nW)) $$\end{document}O~(nτp·log(nW)·log1+ε3(nW)·log1+ε4(nW)). □ □ We summarize the update times in the following lemma. Lemma 5.4 With high probability, the algorithm has total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} ((pnm + \tfrac{m n }{p\tau }+\tfrac{n\tau }{ p})\log ^2(nW)(1/\varepsilon )^{O(1)}) $$\end{document}O~((pnm+mnpτ+nτp)log2(nW)(1/ε)O(1)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=n^{\Omega (1)-1}$$\end{document}p=nΩ(1)-1, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tfrac{n}{p\tau }=n^{\Omega (1)}$$\end{document}npτ=nΩ(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau = O(n^{1-\rho })$$\end{document}τ=O(n1-ρ). Otherwise we have total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} ((pnm +\tfrac{m n }{p\tau } +\tfrac{n\tau }{ p})\cdot \log ^3(nW)\cdot (1/\varepsilon )^{\tilde{O}(\sqrt{\log n})}) $$\end{document}O~((pnm+mnpτ+nτp)·log3(nW)·(1/ε)O~(logn)). Proof We inspect the total update times from all components of Algorithm 3. First of all, we can perform the sampling of A in O(n) time. By Lemma , we can maintain distances from A in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(pnm/\varepsilon _1)$$\end{document}O~(pnm/ε1) total update time if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$pn=n^{\Omega (1)}$$\end{document}pn=nΩ(1), or in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(pnm(1/\varepsilon _1)^{\tilde{O}(\sqrt{\log n})})$$\end{document}O~(pnm(1/ε1)O~(logn)) total update time otherwise. By Lemma , we can maintain the bunches and clusters in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{mn^\rho }{p}\log ^2(nW))\cdot O(\frac{1}{\rho \epsilon _2})^{1+2/\rho } $$\end{document}O~(mnρplog2(nW))·O(1ρε2)1+2/ρ total update time, for some arbitrarily small constant ρ ρ, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), or in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}\left( \tfrac{m}{p}(1/\epsilon _2)^{\tilde{O}(\sqrt{\log n})}\right) $$\end{document}O~mp(1/ε2)O~(logn) total update time otherwise. Moreover, by Lemma , we can maintain distances from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ V_\mathrm{{heavy}} $$\end{document}Vheavy in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{m n }{p\tau \varepsilon _1}\cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW)) $$\end{document}O~(mnpτε1·log(nW)·log1+ε3(nW)) total update time if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tfrac{n}{p\tau }=n^{\Omega (1)}$$\end{document}npτ=nΩ(1), or in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$ \tilde{O} (\tfrac{m n }{p\tau }\cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW)(1/\epsilon _1)^{\tilde{O}(\sqrt{\log n})}) $$\end{document}O~(mnpτ·log(nW)·log1+ε3(nW)(1/ε1)O~(logn)) total update time otherwise. Finally, by Lemma , we can maintain our overlap data structure in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} (\tfrac{n\tau }{p} \cdot \log (nW)\cdot \log _{1+\epsilon _3}(nW)\cdot \log _{1+\epsilon _4}(nW)) $$\end{document}O~(nτp·log(nW)·log1+ε3(nW)·log1+ε4(nW)) total update time. In total, this means for the case that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=n^{\Omega (1)-1}$$\end{document}p=nΩ(1)-1, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tfrac{n}{p\tau }=n^{\Omega (1)}$$\end{document}npτ=nΩ(1), we have total update time\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \tilde{O} \left( (pnm + \tfrac{mn^{\rho }}{p} + \tfrac{m n }{p\tau }+\tfrac{n\tau }{ p})\cdot \log ^3(nW)(1/\varepsilon )^{O(1)}\right) , \end{aligned}$$\end{document}O~(pnm+mnρp+mnpτ+nτp)·log3(nW)(1/ε)O(1),using that ρ ρ is a constant. If we furthermore assume that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^\rho = O(n/\tau )$$\end{document}nρ=O(n/τ), i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau = O(n^{1-\rho })$$\end{document}τ=O(n1-ρ) for some arbitrarily small ρ ρ, then we obtain the simplified version\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \tilde{O} ((pnm + \tfrac{m n }{p\tau }+\tfrac{n\tau }{ p}\cdot \log ^3(nW)). \end{aligned}$$\end{document}O~((pnm+mnpτ+nτp·log3(nW)).For other choices of m, n, p, and τ τ, we obtain\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \tilde{O} ((pnm + \tfrac{m n }{p\tau }+\tfrac{n\tau }{ p})\cdot \log ^3(nW)\cdot (1/\epsilon )^{\tilde{O}(\sqrt{\log n})}). \end{aligned}$$\end{document}O~((pnm+mnpτ+nτp)·log3(nW)·(1/ε)O~(logn)).□ □ Theorem Given a graph G with positive, integer weights and a constant 0< ε < 10<ε<1, there is a decremental data structure that maintains a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-approximation for APSP, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$W_{u,v}$$\end{document}Wu,v is the maximum weight on a current shortest path from u to v. The algorithm has constant query time and works against an oblivious adversary. The total update time is w.h.p. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( nm^{3/4}\log ^3(nW))$$\end{document}O~(nm3/4log3(nW)) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( n^{1+o(1)}m^{3/4}\log ^3(nW))$$\end{document}O~(n1+o(1)m3/4log3(nW)) otherwise, where W is the ratio between the maximum and minimum weight. Proof This result follows from exchanging the adjacent data structure for the overlap data structure as described in this section. By Lemma , we have a total update time scaling with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$pnm+mn/(p\tau )+n\tau /p$$\end{document}pnm+mn/(pτ)+nτ/p. To balance out these terms, we set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$mn/(p\tau )=n\tau /p$$\end{document}mn/(pτ)=nτ/p, hence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau =\sqrt{m}$$\end{document}τ=m. We set pnm = mn/(pτ )pnm=mn/(pτ), hence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p=m^{-1/4}$$\end{document}p=m-1/4. Note that for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+o(1)}$$\end{document}m=n1+o(1), this choice for ρ ρ and τ τ also satisfies the additional constraints of Lemma , so in this case we obtain total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( (pnm+mn/(p\tau )+n\tau /p)\log ^3(nW)(1/\varepsilon )^{O(1)})= \tilde{O} (nm^{3/4}\log ^3(nW)(1/\varepsilon )^{O(1)})= \tilde{O} (nm^{3/4}\log ^3(nW))$$\end{document}O~((pnm+mn/(pτ)+nτ/p)log3(nW)(1/ε)O(1))=O~(nm3/4log3(nW)(1/ε)O(1))=O~(nm3/4log3(nW)), where the last equality holds for constant ɛ ε. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+o(1)}$$\end{document}m=n1+o(1), we obtain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O} (nm^{3/4}\log ^3(nW)(1/\epsilon )^{\tilde{O}(\sqrt{\log n})})=\tilde{O} (n^{1+o(1)}m^{3/4}\log ^3(nW))$$\end{document}O~(nm3/4log3(nW)(1/ε)O~(logn))=O~(n1+o(1)m3/4log3(nW)), where again the equality holds for constant ɛ ε. Stretch analysis. It remains to show that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}(u,v)$$\end{document}d^(u,v) is a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\epsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-approximation of the distance d(u, v). We do a similar case distinction as in Lemma . Case 1 is exactly the same, since we maintain the relevant estimate through the pivots. For the remainder, we know there is no \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\notin (B(u)\cup B(v))$$\end{document}w∉(B(u)∪B(v)), hence the two bunches are adjacent. We know create cases depending on whether the bunches overlap, and if so, if the node in the overlap is heavy or light. Case 2:\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\pi \cap B(u)\cap B(v) =\emptyset $$\end{document}π∩B(u)∩B(v)=∅ (the right case in Fig. ). Hence π π consists of a path from u to u'∈ B(u)u′∈B(u), the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u',v'\}$$\end{document}{u′,v′} with v'∈ B(v)v′∈B(v), and a path from v'v′ to v. Since v'∉ B(u)v′∉B(u), we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,v')\ge r(u) \ge \tfrac{\delta _{\tilde{B}}(u,\tilde{p}(u))}{1+\epsilon _3}$$\end{document}d(u,v′)≥r(u)≥δB~(u,p~(u))1+ε3, so \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(u,\tilde{p}(u))\le (1+\epsilon _3)d(u,v')$$\end{document}δB~(u,p~(u))≤(1+ε3)d(u,v′). Similarly, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(v,\tilde{p}(v))\le (1+\epsilon _3)d(u',v)$$\end{document}δB~(v,p~(v))≤(1+ε3)d(u′,v). Combining this, we obtain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(u,\tilde{p}(u))+ \delta _{\tilde{B}}(v,\tilde{p}(v))\le (1+\epsilon _3)(d(u',v)+d(u,v')) = (1+\epsilon _3)(d(u,v)+w(u',v'))$$\end{document}δB~(u,p~(u))+δB~(v,p~(v))≤(1+ε3)(d(u′,v)+d(u,v′))=(1+ε3)(d(u,v)+w(u′,v′)). Without loss of generality, assume that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{\tilde{B}}(u,\tilde{p}(u))\le \tfrac{1+\epsilon _3}{2}(d(u,v)+w(u',v'))$$\end{document}δB~(u,p~(u))≤1+ε32(d(u,v)+w(u′,v′)). By Query Step (a) we have: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{d}(u,v)&\le \delta _{\tilde{B}}(u,\tilde{p}(u))+\delta _A(v,\tilde{p}(u)) \\&\le \delta _{\tilde{B}}(u,\tilde{p}(u)) +(1+\epsilon _1)d(v,\tilde{p}(u))\\&\le \delta _{\tilde{B}}(u,\tilde{p}(u))+(1+\epsilon _1)(d(u,\tilde{p}(u))+d(u,v))\\&\le \delta _{\tilde{B}}(u,\tilde{p}(u))+(1+\epsilon _1)(\delta _{\tilde{B}}(u,\tilde{p}(u))+d(u,v))\\&\le (2+\epsilon _1)\tfrac{1+\epsilon _3}{2}(d(u,v)+w(u',v'))+(1+\epsilon _1)d(u,v)\\&\le (2+\tfrac{3}{2}\epsilon _1+\tfrac{1}{2}\epsilon _1\epsilon _3+\epsilon _3)d(u,v)+(1+\tfrac{1}{2}\epsilon _1+\tfrac{1}{2}\epsilon _1\epsilon _3+\epsilon _3)w(u',v') \\&\le (2+\epsilon /2)d(u,v)+(1+\epsilon /2)W_{u,v}\\&\le (2+\epsilon )d(u,v)+W_{u,v}. \end{aligned}$$\end{document}d^(u,v)≤δB~(u,p~(u))+δA(v,p~(u))≤δB~(u,p~(u))+(1+ε1)d(v,p~(u))≤δB~(u,p~(u))+(1+ε1)(d(u,p~(u))+d(u,v))≤δB~(u,p~(u))+(1+ε1)(δB~(u,p~(u))+d(u,v))≤(2+ε1)1+ε32(d(u,v)+w(u′,v′))+(1+ε1)d(u,v)≤(2+32ε1+12ε1ε3+ε3)d(u,v)+(1+12ε1+12ε1ε3+ε3)w(u′,v′)≤(2+ε/2)d(u,v)+(1+ε/2)Wu,v≤(2+ε)d(u,v)+Wu,v.Case 3:There exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)$$\end{document}w∈B(u)∩B(v) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in V_\mathrm{{light}}$$\end{document}w∈Vlight (the middle case in Fig. ). By Query Step (c), we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{d}(u,v)&\le \tilde{\delta }_B(u,w)+\tilde{\delta }_B(v,w)\\&\le (1+\epsilon _4)(\delta _B(u,w)+\delta _B(v,w))\\&\le (1+\epsilon _4)(1+\epsilon _2)(d(u,w)+d(v,w))\\&= (1+\epsilon _2+\epsilon _2\epsilon _4+\epsilon _4)d(u,v)\\&\le (1+\epsilon )d(u,v). \end{aligned}$$\end{document}d^(u,v)≤δ~B(u,w)+δ~B(v,w)≤(1+ε4)(δB(u,w)+δB(v,w))≤(1+ε4)(1+ε2)(d(u,w)+d(v,w))=(1+ε2+ε2ε4+ε4)d(u,v)≤(1+ε)d(u,v).Case 4:There exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in \pi $$\end{document}w∈π such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in B(u)\cap B(v)$$\end{document}w∈B(u)∩B(v) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w\in V_\mathrm{{heavy}}$$\end{document}w∈Vheavy (See Fig. ). If w=q(u)w=q(u) then by Query Step (b), we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{d}(u,v)\le \delta _H(u,q(u))+\delta _H(v,q(u))\le (1+\epsilon _1)(d(u,q(u))+d(v,q(u))=(1+\epsilon _1)d(u,v)\le (1+\epsilon )d(u,v)$$\end{document}d^(u,v)≤δH(u,q(u))+δH(v,q(u))≤(1+ε1)(d(u,q(u))+d(v,q(u))=(1+ε1)d(u,v)≤(1+ε)d(u,v). If w=q(v)w=q(v), the argument is analogous. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$q(u)\ne w \ne q(v)$$\end{document}q(u)≠w≠q(v), then by definition of q(u) and q(v) we obtain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(u,q(u))\le \delta _H(u,w)$$\end{document}δH(u,q(u))≤δH(u,w) and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(v,q(v))\le \delta _H(v,w)$$\end{document}δH(v,q(v))≤δH(v,w). So we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(u,q(u))+\delta _H(v,q(v))\le (1+\epsilon _1)d(u,v)$$\end{document}δH(u,q(u))+δH(v,q(v))≤(1+ε1)d(u,v), hence either \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(u,q(u))\le (1+\epsilon )\tfrac{d(u,v)}{2}$$\end{document}δH(u,q(u))≤(1+ε)d(u,v)2 or \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(v,q(v))\le (1+\epsilon _1)\tfrac{d(u,v)}{2}$$\end{document}δH(v,q(v))≤(1+ε1)d(u,v)2. Without loss of generality, assume \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _H(u,q(u))\le (1+\epsilon _1) \tfrac{d(u,v)}{2}$$\end{document}δH(u,q(u))≤(1+ε1)d(u,v)2. Combining this with the triangle inequality, we obtain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{d}(u,v)&\le \delta _H(u,q(u))+\delta _H(q(u),v)\\&\le \delta _H(u,q(u))+(1+\epsilon _1)d(q(u),v)\\&\le \delta _H(u,q(u))+(1+\epsilon _1)(d(u,q(u))+d(u,v))\\&\le (2+\epsilon _1)\delta _H(u,q(u))+(1+\epsilon _1)d(u,v)\\&\le (2+\tfrac{5}{2}\epsilon _1+\tfrac{1}{2}\epsilon _1^2)d(u,v)\\&\le (2+\epsilon )d(u,v). \end{aligned}$$\end{document}d^(u,v)≤δH(u,q(u))+δH(q(u),v)≤δH(u,q(u))+(1+ε1)d(q(u),v)≤δH(u,q(u))+(1+ε1)(d(u,q(u))+d(u,v))≤(2+ε1)δH(u,q(u))+(1+ε1)d(u,v)≤(2+52ε1+12ε12)d(u,v)≤(2+ε)d(u,v).Query time. A query \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\texttt {Query}(u,v)$$\end{document}Query(u,v) consists of the minimum over three values. The first two can be computed in constant time, as the components are all maintained explicitly. The last one is maintained explicitly. This gives us constant query time in total. □ □ In particular, this means we get (2+ε ,1)(2+ε,1)-approximate APSP for unweighted graphs.Fig. 3Possible scenario for the overlap between the bunches B(u) and B(v) and the shortest path π π from u to v where the estimate can be obtained using the closest heavy node \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$q_u$$\end{document}qu and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$q_v$$\end{document}qv[453_2026_1407_Fig3_HTML.webp] Reduction and Unweighted (2+ε )(2+ε)-APSP Next, we provide a reduction that transforms (a+ε ,k)(a+ε,k)-APSP to (a+(k+2)ε ,0)(a+(k+2)ε,0)-APSP on unweighted graphs. This reductions allows for ε =0ε=0 as well. However, for our applications the update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A will depend on 1/ε 1/ε, so we only apply this reduction for ε >0ε>0. Intuitively, we split every edge into k+1k+1 edges to form G'G′. Then we compute (2, k)-APSP on G'G′, divide the result by k+1k+1, and round down to the nearest integer. Because the additive error k is not enough to reach a new node in G, we can simply ignore this part of the path. In the following theorem we make this formal. Theorem Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A be an algorithm that provides a (a+ε ,k)(a+ε,k)-approximation for APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\mathcal {A}}(n',m')$$\end{document}τA(n′,m′) time, for any unweighted n'n′-node m'm′-edge graph G'G′, and any constants \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$a,k\in \mathbb {N}_{\ge 1}$$\end{document}a,k∈N≥1 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon \ge 0$$\end{document}ε≥0. Given an unweighted graph G=(V,E)G=(V,E) on n nodes and m vertices, we can compute (a+(k+2)ε ,0)(a+(k+2)ε,0)-APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\mathcal {A}}(n+km,(k+1)m)$$\end{document}τA(n+km,(k+1)m) time. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A is a dynamic algorithm, then each update takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k+1)\cdot [\text {update time of }\mathcal {A}]$$\end{document}(k+1)·[update time ofA] time. The query time remains the same (up to a constant factor). Proof We construct the auxiliary graph G'=(V',E')G′=(V′,E′) as follows.\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} V'&:= V \cup \{ \{u,v\}_i : \{u,v\}\in E, i\in \{1, 2, \dots , k\}\}; \\ E'&:= \bigcup _{\{u,v\}\in E} \{ \{u, \{u,v\}_1\}, \{\{u,v\}_1,\{u,v\}_2\}, \dots , \{\{u,v\}_{k-1},\{u,v\}_k\}, \{\{u,v\}_k, v\} \}. \end{aligned}$$\end{document}V′:=V∪{{u,v}i:{u,v}∈E,i∈{1,2,⋯,k}};E′:=⋃{u,v}∈E{{u,{u,v}1},{{u,v}1,{u,v}2},⋯,{{u,v}k-1,{u,v}k},{{u,v}k,v}}.Clearly this graph has n+kmn+km vertices and (k+1)m(k+1)m edges. We compute (a+ε ,k)(a+ε,k)-APSP on G'G′ in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\mathcal {A}}(n+km,(k+1)m)$$\end{document}τA(n+km,(k+1)m) time using algorithm \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {A}$$\end{document}A, and denote the output by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta _{G'}$$\end{document}δG′. We set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (u,v):= \left\lfloor \tfrac{\delta _{G'}(u,v)}{k+1}\right\rfloor $$\end{document}δ(u,v):=δG′(u,v)k+1 for all u,v∈ Vu,v∈V. We now show that δ δ gives (a+(k+2)ε ,0)(a+(k+2)ε,0)-approximate APSP on G. Let u,v∈ Vu,v∈V. We remark that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_{G'}(u,v)=(k+1)d_G(u,v)$$\end{document}dG′(u,v)=(k+1)dG(u,v) for all u,v∈ Vu,v∈V. Which we will use twice. First, we show that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v)\le \delta (u,v)$$\end{document}dG(u,v)≤δ(u,v). This follows from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (u,v) = \left\lfloor \tfrac{\delta _{G'}(u,v)}{k+1}\right\rfloor \ge \left\lfloor \tfrac{d_{G'}(u,v)}{k+1}\right\rfloor = \left\lfloor \tfrac{(k+1)d_G(u,v)}{k+1}\right\rfloor =d_G(u,v)$$\end{document}δ(u,v)=δG′(u,v)k+1≥dG′(u,v)k+1=(k+1)dG(u,v)k+1=dG(u,v). Second, we show that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (u,v) \le (a+(k+2)\epsilon )\cdot d_G(u,v)$$\end{document}δ(u,v)≤(a+(k+2)ε)·dG(u,v). This follows from\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned}\delta (u,v)&= \left\lfloor \tfrac{\delta _{G'}(u,v)}{k+1}\right\rfloor \le \left\lfloor \tfrac{(a+\epsilon )\cdot d_{G'}(u,v)+k}{k+1}\right\rfloor = \left\lfloor \tfrac{(a+\epsilon )\cdot (k+1)d_{G}(u,v)+k}{k+1}\right\rfloor \\ &= \left\lfloor (a+\epsilon )\cdot d_G(u,v) +\tfrac{k}{k+1}\right\rfloor .\end{aligned} \end{aligned}$$\end{document}δ(u,v)=δG′(u,v)k+1≤(a+ε)·dG′(u,v)+kk+1=(a+ε)·(k+1)dG(u,v)+kk+1=(a+ε)·dG(u,v)+kk+1.Now if ε =0ε=0, then \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$a\cdot d_G(u,v)$$\end{document}a·dG(u,v) is an integer, hence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\left\lfloor a\cdot d_G(u,v) +\tfrac{k}{k+1}\right\rfloor = a\cdot d_G(u,v) $$\end{document}a·dG(u,v)+kk+1=a·dG(u,v). If ε >0ε>0, then \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon d_G(u,v)+ \tfrac{k}{k+1}$$\end{document}εdG(u,v)+kk+1 can be bigger than 1 – if it is not, we are done by the same argument. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon d_G(u,v)+ \tfrac{k}{k+1}>1$$\end{document}εdG(u,v)+kk+1>1, then\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} (k+1)\epsilon \cdot d_G(u,v) \ge (k+1)-k =1. \end{aligned}$$\end{document}(k+1)ε·dG(u,v)≥(k+1)-k=1.Hence we obtain\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \left\lfloor (a+\epsilon )\cdot d_G(u,v) +\tfrac{k}{k+1}\right\rfloor&\le (a+\epsilon )\cdot d_G(u,v) +1 \\&\le (a+\epsilon )\cdot d_G(u,v) + (k+1)\epsilon \cdot d_G(u,v)\\&= (a+(k+2)\cdot \epsilon )d_G(u,v). \end{aligned}$$\end{document}(a+ε)·dG(u,v)+kk+1≤(a+ε)·dG(u,v)+1≤(a+ε)·dG(u,v)+(k+1)ε·dG(u,v)=(a+(k+2)·ε)dG(u,v).For the claim about dynamic algorithms, note that any update to an edge in G, corresponds to updating k+1k+1 edges in G'G′. The query consists of computing \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\delta (u,v) = \left\lfloor \tfrac{\delta _{G'}(u,v)}{k+1}\right\rfloor $$\end{document}δ(u,v)=δG′(u,v)k+1, which requires a query to the distance in G'G′ plus constant time operations. □ □ In particular, this can give fast algorithms for sparse graphs. For the decremental case, we obtain the following result. Theorem Given an undirected unweighted graph G, there is a decremental data structure that maintains a (2+ε )(2+ε)-approximation for APSP with constant query time. The algorithm works against an oblivious adversary. W.h.p. the total update time is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( m^{7/4})$$\end{document}O~(m7/4) if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( m^{7/4+o(1)})$$\end{document}O~(m7/4+o(1)) otherwise. Proof We apply the theorem above with the (2+ε ,1)(2+ε,1)-APSP of this paper, Theorem 1.2. This takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( nm^{3/4})$$\end{document}O~(nm3/4) time if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\Omega (1)}$$\end{document}m=n1+Ω(1), and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}( n^{1+o(1)}m^{3/4})$$\end{document}O~(n1+o(1)m3/4) time otherwise. □ □ Approximate APSP with Additive Factors In this section we give our last result, which is maintaining approximate APSP on unweighted graphs with a mixed additive and multiplicative stretch. First, we provide a decremental (1+ε , 2)(1+ε,2)-APSP algorithm as a warm-up in Sect. . In Sect. , we generalize our techniques to provide an efficient decremental (1+ε , 2(k-1))(1+ε,2(k-1))-APSP algorithm. Warm-up: (1+ε ,2)(1+ε,2)-APSP Our goal in this section is to use a simpler algorithm based on [] that let us maintain (1+ε ,2)(1+ε,2)-APSP in total update time of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(m^{1/2}n^{3/2}O(1/\epsilon )^{O(\sqrt{\log {n}})})$$\end{document}O(m1/2n3/2O(1/ε)O(logn)) in unweighted undirected graphs with m=Ω (n)m=Ω(n) edges. Such an algorithm would outperform the approach in Sect. when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m= \Omega ( n^{5/3+o(1)} )$$\end{document}m=Ω(n5/3+o(1)), and it also gives a better near-additive approximation. We focus on obtaining an algorithm that can maintain +2+2-additive approximate distances for pairs within distance d in total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2}d)$$\end{document}O~(m1/2n3/2d). This approach can be combined with Theorem to get our desired bounds. Dynamic Data Structure In Sect. , we described the static algorithm of []. We next describe the dynamic version of the algorithm. As mentioned above, we first focus on maintaining a data structure for pairs of nodes at distance at most d from each other. The algorithm is a variant of the static algorithm. At a high-level, we use ES-trees to maintain distances from nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 in the graph G, giving us exact distances for these nodes. For the remaining nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V \setminus A_1$$\end{document}u∈V\A1, we use monotone ES-trees to maintain distances in the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u:=(V, E_2 \cup E^* \cup E^{A_1}_u)$$\end{document}Hu:=(V,E2∪E∗∪Eu1), giving us approximate distances. The algorithm is summarized as follows. Node set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 . We define a random set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 by sampling each node to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 with probability \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{c\ln {n}}{s_1}$$\end{document}clnns1 for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1= (\frac{m}{n})^{1/2}$$\end{document}s1=(mn)1/2 and a constant c ≥ 2c≥2 of our choice.Edge set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ . For each node v that has at least one neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, we add one edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,u\}$$\end{document}{v,u} to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, where u is an arbitrarily chosen neighbor of v in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1.Edge set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 . For each node v that does not have a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, we add all the adjacent edges to v to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2.Maintaining ES-trees from nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 . For every \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1$$\end{document}u∈A1, we maintain an ES-tree rooted at u up to distance d+2d+2 in the graph G.Maintaining monotone ES-trees from nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V \setminus A_1$$\end{document}V\A1 . For each node \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V \setminus A_1$$\end{document}u∈V\A1, we maintain a monotone ES-tree rooted at u up to distance d+2d+2 in the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u = (V,E_2 \cup E^* \cup E_u^{A_1})$$\end{document}Hu=(V,E2∪E∗∪Eu1), where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^{A_1}$$\end{document}Eu1 are all the edges of the form \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in A_1$$\end{document}v∈A1. The weight of an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\} \in E_u^{A_1}$$\end{document}{u,v}∈Eu1 is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _v(u)$$\end{document}lv(u), the level of u in the ES-tree rooted at v computed in the previous step.Maintaining the monotone ES-trees. Next, we give more details about maintaining the monotone ES-trees from nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V {\setminus } A_1$$\end{document}u∈V\A1. Initially, we construct a shortest path tree from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V \setminus A_1$$\end{document}u∈V\A1 in the original graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu, up to distance d+2d+2.Each time the distance estimate between u and a node \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1$$\end{document}x∈A1 increases, we update the weight of the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,x\} \in E^{A_1}_u$$\end{document}{u,x}∈Eu1. Note that we can maintain these distances exactly (up to distance d+2d+2) as we compute them in the ES-tree rooted at \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1$$\end{document}x∈A1. We also update the monotone ES-tree rooted at u according to the weight change of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,x\}$$\end{document}{u,x}.Each time an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\} \in E^*$$\end{document}{v,x}∈E∗ between a node \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in V {\setminus } A_1$$\end{document}v∈V\A1 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1$$\end{document}x∈A1 is deleted from the graph G, we distinguish between two cases. If v still has a neighbor \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w \in A_1$$\end{document}w∈A1, we first add a new edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,w\}$$\end{document}{v,w} to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and then delete the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\}$$\end{document}{v,x}. Otherwise, we add to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 all the edges incident to v in the current graph G, and then delete the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\}$$\end{document}{v,x}.If an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e \in E_2$$\end{document}e∈E2 is deleted, we delete it from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu.There are several challenges in maintaining the monotone ES-trees. First, during the algorithm there are insertions to the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu, as new edges are added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, and our goal is to show that our distance estimates still give a good approximation to the actual distances. In the static version of the algorithm, the algorithm computes the exact distances in the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu and this provides a good approximation for the distances. However, in our case, the monotone ES-trees are not guaranteed to keep the actual distances in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu because they ignore distance decreases that come from edge insertions, and we should prove that this does not affect the stretch of the algorithm. In addition, in the static version of the algorithm it is easy to argue that the graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu are sparse. For example, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ is a set of at most O(n) edges, since each node v added at most one edge. In our case, as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu changes dynamically, we need to prove that the total number of edges added to it is small. In particular, as each time that an edge in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\} \in E^*$$\end{document}{v,x}∈E∗ gets deleted, we replace it by another edge, it could be the case that overall in the algorithm we add many different edges to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ which can affect the total update time of the algorithm. In addition, each time that a node v no longer has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, we add all its adjacent edges to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2, and we should argue that the number of edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 is small. We will discuss these issues in more detail later, and show that we can implement the monotone ES-trees efficiently. Next, we provide the stretch analysis of the algorithm. Stretch Analysis For any pair of nodes u, v, we denote by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) the level of v in the ES-tree or monotone ES-tree rooted at u. We start with the following simple observation. Claim 6.1 For any \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V, x \in A_1$$\end{document}u∈V,x∈A1 such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,x) \le d+2$$\end{document}dG(u,x)≤d+2, we have that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _x(u)=\ell _u(x)=d_G(u,x).$$\end{document}lx(u)=lu(x)=dG(u,x). Proof As \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1$$\end{document}x∈A1, we maintain the exact distances from x up to distance d+2d+2 in the ES-tree rooted at x. Hence, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _x(u)=d_G(u,x)$$\end{document}lx(u)=dG(u,x). If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1$$\end{document}u∈A1, the same argument holds also for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(x)$$\end{document}lu(x). If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V \setminus A_1$$\end{document}u∈V\A1, in Step 2 of the algorithm for maintaining the ES-tree we make sure that we also maintain the correct distance between u and x in the monotone ES-tree rooted at u, hence \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(x)=d_G(u,x)$$\end{document}lu(x)=dG(u,x). Note that as the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,x\}$$\end{document}{u,x} always appears in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu, and by part (4) of Lemma we always maintain the exact distance estimate in this case. □ □ Claim 6.2 For any u,v ∈ Vu,v∈V such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v) \le d$$\end{document}dG(u,v)≤d, we have that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v) \le \ell _u(v) \le d_G(u,v) +2.$$\end{document}dG(u,v)≤lu(v)≤dG(u,v)+2. Proof If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in A_1$$\end{document}v∈A1, this already follows from Claim . Hence we focus on the case that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in V {\setminus } A_1$$\end{document}v∈V\A1. The left side of the inequality follows as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v) \le d_{H_u}(u,v) \le \ell _u(v)$$\end{document}dG(u,v)≤dHu(u,v)≤lu(v), using part (2) of Lemma , and since the distances in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu can only increase compared to distances in G. This holds as the edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu are either edges in G or have a weight that is at least the weight of the shortest path between the corresponding endpoints in G. We next show that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v) \le d_G(u,v) +2$$\end{document}lu(v)≤dG(u,v)+2. We prove the claim by double-induction. First, on the time in the algorithm, and second on the distance \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v)$$\end{document}dG(u,v). Base Case. At the beginning of the algorithm, this follows from the correctness of the static algorithm, we give the details for completeness. Note that at the beginning of the algorithm, from part (1) of Lemma , we have that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)=d_{H_u}(u,v)$$\end{document}lu(v)=dHu(u,v) as long as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_{H_u}(u,v) \le d+2$$\end{document}dHu(u,v)≤d+2, and we show that this is indeed the case when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v) \le d$$\end{document}dG(u,v)≤d. v has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. In this case there is an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\} \in E^*$$\end{document}{v,x}∈E∗ such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1$$\end{document}x∈A1. Note that as x is a neighbor of v it holds that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,x) \le d+1$$\end{document}dG(u,x)≤d+1. As \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x \in A_1$$\end{document}x∈A1 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,x) \le d+1$$\end{document}dG(u,x)≤d+1, the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu has an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,x\}$$\end{document}{u,x} with weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,x)$$\end{document}dG(u,x), and it also has the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\} \in E^*$$\end{document}{v,x}∈E∗. Hence, at the beginning of the algorithm, we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \ell _u(v) = d_{H_u}(u,v) \le d_G(u,x) + d_G(v,x) = d_G(u,x)+1. \end{aligned}$$\end{document}lu(v)=dHu(u,v)≤dG(u,x)+dG(v,x)=dG(u,x)+1. Now, by the triangle inequality \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} d_G(u,x) \le d_G(u,v)+d_G(v,x)=d_G(u,v)+1. \end{aligned}$$\end{document}dG(u,x)≤dG(u,v)+dG(v,x)=dG(u,v)+1. Hence, overall, we get that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v) \le d_G(u,v) +2$$\end{document}lu(v)≤dG(u,v)+2. Note that we get the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_{H_u}(u,v) \le d+2$$\end{document}dHu(u,v)≤d+2, which implies that the distance is indeed maintained correctly in the monotone ES-tree.v does not have a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. In this case, all the edges adjacent to v are in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2 \subseteq H_u$$\end{document}E2⊆Hu. Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{w,v\}$$\end{document}{w,v} be the edge adjacent to v in the shortest path between u and v in G. Then, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,w) = d_G(u,v)-1$$\end{document}dG(u,w)=dG(u,v)-1. From the induction hypothesis, we have that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(w) \le d_G(u,w) +2$$\end{document}lu(w)≤dG(u,w)+2. Since the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{w,v\}$$\end{document}{w,v} exists in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu, we get that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \ell _u(v) = d_{H_u}(u,v) \le d_{H_u}(u,w) + d_{H_u}(w,v)= \ell _u(w)+1 \le d_G(u,w)+3 = d_G(u,v) + 2. \end{aligned}$$\end{document}lu(v)=dHu(u,v)≤dHu(u,w)+dHu(w,v)=lu(w)+1≤dG(u,w)+3=dG(u,v)+2. As \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_{H_u}(u,v) \le d+2$$\end{document}dHu(u,v)≤d+2, we indeed maintain the value correctly in the monotone ES-tree.Induction Step. Assume now that the claim holds after t-1t-1 edge deletions, and we will prove it holds after t edge deletions. We prove it by induction on the length of the path between u and v in the current graph G. In the base case that u=vu=v it trivially holds. First, if the value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) did not change after the t-th edge deletion, then the claim follows from the induction hypothesis (as the distance \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,v)$$\end{document}dG(u,v) can never decrease). Hence, we focus on the case that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) changed. By parts (3) and (4) of Lemma , when the level \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) is changed it is necessarily increased, and the new value is equal to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\min \limits _{x\in N(v)} \{\ell _u(x)+w_{H_u}(x,v) \}$$\end{document}minx∈N(v){lu(x)+wHu(x,v)}. When the value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) increases, v has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. By Step 3 of the algorithm for maintaining the ES-tree, it is guaranteed that there is an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\} \in E^* \subseteq H_u$$\end{document}{v,x}∈E∗⊆Hu. Also, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(x)=d_G(u,x)$$\end{document}lu(x)=dG(u,x) by Claim and since \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,x) \le d+1$$\end{document}dG(u,x)≤d+1, as x is a neighbor of v. Hence, when we update the value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v), the new value is at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(x)+w_{H_u}(x,v)=d_G(u,x)+1.$$\end{document}lu(x)+wHu(x,v)=dG(u,x)+1. The exact same proof that we used in the base case, shows that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_G(u,x) \le d_G(u,v)+1$$\end{document}dG(u,x)≤dG(u,v)+1. Hence, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v) \le d_G(u,v) +2$$\end{document}lu(v)≤dG(u,v)+2, as needed. Again, as this value is bounded by d+2d+2 it is maintained correctly.When the value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) increases, v does not have a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. It follows from Step 3 of the algorithm for maintaining the ES-tree that all the edges adjacent to v are in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu. Let x be the neighbor of v in the shortest u-vu-v path in G. By the induction hypothesis, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(x) \le d_G(u,x)+2$$\end{document}lu(x)≤dG(u,x)+2. Hence, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \ell _u(v) \le \ell _u(x)+w_{H_u}(x,v) \le d_G(u,x)+3 = d_G(u,v)+2, \end{aligned}$$\end{document}lu(v)≤lu(x)+wHu(x,v)≤dG(u,x)+3=dG(u,v)+2, this value is again at most d+2d+2, hence it is maintained correctly, completing the proof.□ □ Time Complexity To analyze the time complexity of the algorithm, we first bound the total number of edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ in the algorithm. Claim 6.3 The total number of edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 during the algorithm is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(ns_1)$$\end{document}O(ns1) with high probability. Proof By definition, the edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 are the edges adjacent to all nodes that do not have a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. We show that as long as the degree of a node v is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1$$\end{document}s1 then with high probability it has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1. This follows as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 is obtained by sampling each node with probability \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{c \ln {n}}{s_1}$$\end{document}clnns1. Hence, as long as the degree of v is at least \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1$$\end{document}s1, the probability that none of its neighbors is in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 is at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1-\frac{c\ln {n}}{s_1})^{s_1} \le e^{-c\ln {n}}=\frac{1}{n^c}$$\end{document}(1-clnns1)s1≤e-clnn=1nc. It follows that with high probability each node adds less than \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1$$\end{document}s1 edges to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2, proving the claim. □ □ Claim 6.4 The expected number of edges to ever be present in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O( (mn)^{1/2}\log {n} )$$\end{document}O((mn)1/2logn). Proof Recall that each node is added to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 with probability \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{c \ln {n}}{s_1}$$\end{document}clnns1. Hence, in expectation each node v has \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\deg (v) \frac{\log {n}}{s_1})$$\end{document}O(deg(v)logns1) neighbors in the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, where \deg (v)deg(v) is the degree of v at the beginning of the algorithm. These edges are candidates to be added to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, and in the worst case all of them are added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ during the algorithm. Summing over all nodes, the expected number of edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ is bounded by\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \sum _{v \in V} O \left( \frac{\deg (v)\log {n}}{s_1} \right) = O \left( \frac{m\log {n}}{(\frac{m}{n})^{1/2}} \right) = O( (mn)^{1/2}\log {n} ).{{\square }} \end{aligned}$$\end{document}∑v∈VOdeg(v)logns1=Omlogn(mn)1/2=O((mn)1/2logn).□ Lemma 6.5 The total update time of the algorithm is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2}d)$$\end{document}O~(m1/2n3/2d) in expectation. Proof Computing the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 takes O(n) time by sampling each node to the set independently with probability \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{c \ln {n}}{s_1}$$\end{document}clnns1. Maintaining the sets \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 is done as follows. At the beginning of the algorithm, each node v scans its neighbors until it finds the first neighbor u in the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 if exists, and it adds the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,u\}$$\end{document}{v,u} to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗. If there is no such u, then v adds all its adjacent edges to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2. During the algorithm, when the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,u\}$$\end{document}{v,u} is deleted, v continues scanning its neighbors until it finds the next neighbor w in the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 if exists. If w exists it adds the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,w\}$$\end{document}{v,w} to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, and otherwise it adds all its adjacent edges to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2. Note that in the whole algorithm, v only needs to scan its neighbors once to find all the edges it adds to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗. Hence, overall maintaining the sets \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 takes O(m) time. We can also keep a list of the new edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 after a deletion, to help maintaining the monotone ES-trees. We maintain the ES-trees from nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1$$\end{document}u∈A1 as follows. Every time that an edge is deleted we delete it from all the trees. In addition, every time that a level \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) increases for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1, v \in V {\setminus } A_1$$\end{document}u∈A1,v∈V\A1, we update the weight of the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,u\}$$\end{document}{v,u} in the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_v$$\end{document}Hv, and update it in the monotone ES-tree rooted at v. Maintaining the ES-trees from nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|A_1|(md+n))$$\end{document}O(|A1|(md+n)) time by Lemma . By the definition of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1, this equals\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} O \left( \frac{n \log {n}}{s_1} \left( md \right) + n^2 \right) =O(m^{1/2}n^{3/2} (\log {n}) d) \end{aligned}$$\end{document}Onlogns1md+n2=O(m1/2n3/2(logn)d)in expectation, when m=Ω (n).m=Ω(n). We maintain the monotone ES-trees rooted at nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in V {\setminus } A_1$$\end{document}u∈V\A1 as follows. After an edge e is deleted, we update the weights of the edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\} \in E_u^{A_1}$$\end{document}{u,v}∈Eu1 when their weights are increased in the ES-trees rooted at nodes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in A_1$$\end{document}v∈A1, as described above. In addition, we add to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu all the edges that were added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ after the deletion of the edge e (we kept them in a list as described above), and finally we delete the edge e from the monotone ES-tree. By Lemma , the total update time for maintaining the monotone ES-tree rooted at the node u is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\mathcal {E}(H_u)\cdot d+\mathcal {W}(H_u)+n)$$\end{document}O(E(Hu)·d+W(Hu)+n), where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {E}(H_u)$$\end{document}E(Hu) is the total number of edges ever contained in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {W}(H_u)$$\end{document}W(Hu) is the total number of updates to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u$$\end{document}Hu. There are O(n) edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^{A_1}$$\end{document}Eu1 and each of them is updated O(d) times, as the distance estimates only increase and can have O(d) values. This adds O(nd) term to the complexity of one tree, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^2 d)$$\end{document}O(n2d) summing up over all trees. The edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ are only added and removed once in the algorithm. The total number of edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_2$$\end{document}E2 is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(ns_1)$$\end{document}O(ns1) with high probability from Claim . Summing up over all trees these edges add \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^2 s_1 d)= O(n^{3/2} m^{1/2} d)$$\end{document}O(n2s1d)=O(n3/2m1/2d) term to the complexity. The total number of edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O( (mn)^{1/2}\log {n} )$$\end{document}O((mn)1/2logn) in expectation from Claim . Summing up over all trees they add \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{3/2} (\log {n}) m^{1/2} d)$$\end{document}O(n3/2(logn)m1/2d) term to the complexity, completing the proof. □ □ Claim 6.6 The query time of the algorithm is O(1). Proof To answer a distance query for a pair of nodes u, v, we just return the value \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v). This can be done in O(1) time if we keep for each node u an array of the values \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) which is updated each time a distance estimate change. □ □ In conclusion, we get the following. Theorem 6.7 Given an undirected unweighted graph G, there is a decremental data structure that maintains +2+2-additive approximation for APSP for pairs of nodes at distance at most d from each other. The expected total update time is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m^{1/2}n^{3/2}d)$$\end{document}O~(m1/2n3/2d), and the query time is constant. To get rid of the d term in the complexity, we can combine our approach with Theorem . This would lead to a (1+ε ,2)(1+ε,2)-approximation and replace the d term in the complexity by an \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(1/\epsilon )^{O(\sqrt{\log {n}})}$$\end{document}O(1/ε)O(logn) term (which simplifies to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) for constant ε ε. We will provide full details of the approach when we describe our general algorithm in the next section (see in particular Sect. ). The high-level idea is to use our algorithm with a parameter \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d=O(1/\epsilon )^{O(\sqrt{\log {n}})}$$\end{document}d=O(1/ε)O(logn), and combine it with Theorem for computing \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon ,\beta )$$\end{document}(1+ε,β)-approximation for large distances. For an appropriate choice of the parameters, we will get a (1+ε )(1+ε)-approximation for the distances between pairs of nodes at distance greater than d from each other, and a +2+2 approximation for pairs of nodes at distance at most d from each other. (1+ε , 2k-2)(1+ε,2k-2)-APSP With this warm-up we can move on to the more general algorithm based on [] that leads to a larger stretch but a smaller update time. Our goal is to obtain a (1+ε , 2k-2)(1+ε,2k-2)-approximation in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2-1/k}m^{1/k}(1/\varepsilon )^{O(\sqrt{\log n})})$$\end{document}O~(n2-1/km1/k(1/ε)O(logn)) time. The algorithm works in unweighted undirected graphs. As before, we start by describing a data structure that maintains the approximate distances for pairs of nodes at distance at most d from each other, and then in Sect. we combine it with Theorem to handle the general case. Dynamic Data Structure The algorithm is summarized as follows. Node sets \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai. We define a series of sets \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1,A_2,...,A_k$$\end{document}A1,A2,...,Ak such that for i=1,...,k-1i=1,...,k-1, the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai is a random set obtained by sampling each node with probability \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p_i=\frac{c\ln {n}}{s_i}$$\end{document}pi=clnnsi, for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_i=(\frac{m}{n})^{1-i/k} (\ln {n})^{i/k}$$\end{document}si=(mn)1-i/k(lnn)i/k, and a constant c ≥ 2c≥2 for our choice. If a node is sampled to several different sets we keep it only in the set with minimum index i among them. Finally, we define \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_k = V \setminus \bigcup _{i=1}^{k-1} A_i.$$\end{document}Ak=V\⋃i=1k-1Ai. Note that by definition, each node is in exactly one set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai.Indices \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i_v$$\end{document}iv for all v ∈ Vv∈V. For a node v ∈ Vv∈V, we denote by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i_v$$\end{document}iv the minimum index i such that v has a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai.Edge set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗. For each node v, we add one edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,x\}$$\end{document}{v,x} to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗, where x is an arbitrary neighbor of v in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_{i_v}$$\end{document}Aiv.Edge sets \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei. The edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei are all the edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\max \{i_u,i_v\} \ge i$$\end{document}max{iu,iv}≥i. In other words, it is all the edges adjacent to nodes that do not have a neighbor in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_{i'}$$\end{document}Ai′ for i' < ii′ 1i>1, we add an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} with weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) to the set of edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_v^i$$\end{document}Evi. During the algorithm, every time an edge is deleted, we delete it from the ES-tree and update it accordingly. For any v where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) has increased after the deletion and where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in A_i$$\end{document}v∈Ai for i > 1i>1, we update the corresponding edge in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_v^i$$\end{document}Evi, and save it in a list of edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_v^i$$\end{document}Evi that were updated after the deletion. This completes the description for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_1$$\end{document}u∈A1. Monotone ES-trees rooted at nodes of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai. For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_i$$\end{document}u∈Ai for larger values of i, we maintain the monotone ES-trees according to the order of the index i, from 2 to k. We work as follows. Initially, we create a monotone ES-tree rooted at u up to distance d+3kd+3k in the graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i=(V,E_i \cup E^* \cup E_u^i)$$\end{document}Hui=(V,Ei∪E∗∪Eui), with the edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i,E^*$$\end{document}Ei,E∗ at the beginning of the algorithm, and with the edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^i$$\end{document}Eui that were obtained when creating the monotone ES-trees in previous levels. Note that all these edges of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^i$$\end{document}Eui are of the form \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v \in A_{i'}$$\end{document}v∈Ai′ for i' < ii′ ii′>i, we add a new edge to the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_v^{i'}$$\end{document}Ev′ with weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v). During the algorithm, when an edge e is deleted, we update the monotone ES-trees in several steps as follows, again we work according to the order of the index i.First step: adding the new edges of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i$$\end{document}Hui. The deletion of the edge e can lead to adding new edges to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ or \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei in steps 3 and 4 of the algorithm. As explained in these steps, we maintain the newly added edges, and can add them to a list of newly added edges (to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei separately). When we update the monotone ES-tree rooted at \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_i$$\end{document}u∈Ai, we start by adding all these newly added edges that were added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i$$\end{document}Hui.Second step: updating the edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^i$$\end{document}Eui. Next, there are possibly edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\} \in E_u^i$$\end{document}{u,v}∈Eui that their weight is increased after the deletion. This is already observed when we update the monotone ES-tree rooted at v, and if it happens, we add the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{u,v\}$$\end{document}{u,v} with new weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _v(u)$$\end{document}lv(u) to a list of edges that were updated in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^i$$\end{document}Eui. When we update the monotone ES-tree rooted at u, we update the weights of all these edges (we already have their list after we finish maintaining the ES-trees in previous levels).Third step: deleting the edge e. Lastly, we delete the edge e that was deleted in this step from the monotone ES-tree.Note that the weight increases and deletion can increase the levels \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) of some nodes in the tree. For any v in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_j$$\end{document}Aj for j > ij>i such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) increases, when the value increases, we add an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{v,u\}$$\end{document}{v,u} with the new weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell _u(v)$$\end{document}lu(v) to the list of newly updated edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_v^j$$\end{document}Evj. This completes the description of the algorithm. From the above description, we can now prove Claim . Proof of Claim 6.8 Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_i, v \in V$$\end{document}u∈Ai,v∈V. At the beginning of the algorithm, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i_v < i$$\end{document}iv 1i>1, as we proved in Claim , with high probability the degree of v is at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_{i-1}$$\end{document}si-1. Note that each one of the neighbors of v is added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai with probability \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{c\ln {n}}{s_i}$$\end{document}clnnsi. Hence, in expectation, v has \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(s_{i-1} \cdot \frac{\ln {n}}{s_i})$$\end{document}O(si-1·lnnsi) neighbors in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai. In the worst case, it adds edges to all of them during the algorithm. In total, the expected number of edges added by all nodes to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ in the case that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i_v \ge 2$$\end{document}iv≥2 is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sum _{i=2}^{k} O(\frac{\ n \log {n} s_{i-1}}{s_i})$$\end{document}∑i=2kO(nlognsi-1si). By the definition of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_i$$\end{document}si, we have that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{s_{i-1}}{s_i}=(\frac{m}{n})^{1/k}(\ln {n})^{-1/k}$$\end{document}si-1si=(mn)1/k(lnn)-1/k. Hence, in total the expected number of edges added is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(k n^{1-1/k}m^{1/k}(\log {n})^{1-1/k}).$$\end{document}O(kn1-1/km1/k(logn)1-1/k). □ □ Next, we prove the complexity of the algorithm. Lemma 6.15 Maintaining the ES-trees takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(kn^{2-1/k}m^{1/k}(\log {n})^{1-1/k} d)$$\end{document}O(kn2-1/km1/k(logn)1-1/kd) time in expectation. Proof Maintaining the ES-trees rooted at nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_1$$\end{document}A1 takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|A_1|(md+n))$$\end{document}O(|A1|(md+n)) time by Lemma . Since \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|A_1| = O(\frac{n\log {n}}{s_1})$$\end{document}|A1|=O(nlogns1) in expectation, and by the choice of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_1$$\end{document}s1, this adds \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2-1/k}m^{1/k}(\log {n})^{1-1/k} d)$$\end{document}O(n2-1/km1/k(logn)1-1/kd) term to the complexity, when m=Ω (n)m=Ω(n). From Lemma , maintaining a monotone ES-tree rooted at \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_i$$\end{document}u∈Ai takes \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(\mathcal {E}(H_u^i)\cdot d+\mathcal {W}(H_u^i)+n)$$\end{document}O(E(Hui)·d+W(Hui)+n) time, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {E}(H_u^i)$$\end{document}E(Hui) is the total number of edges ever contained in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i$$\end{document}Hui and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mathcal {W}(H_u^i)$$\end{document}W(Hui) is the total number of updates to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i$$\end{document}Hui. To complete the proof, we should analyze these values. Recall that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_u^i=(V, E_i \cup E^* \cup E_u^i)$$\end{document}Hui=(V,Ei∪E∗∪Eui). Note that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_u^i$$\end{document}Eui has at most n-1n-1 edges, that are updated O(d) times during the algorithm, as we maintain distances up to distance d+3kd+3k, hence these edges add O(nd) term to the complexity of maintaining one tree, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^2 d)$$\end{document}O(n2d) for all n trees. The edges in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei are only added and removed once from a tree during the algorithm. From Claim , the total number of edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_i$$\end{document}Ei during the algorithm is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(ns_{i-1})$$\end{document}O(nsi-1) with high probability. Since these edges are part of all the ES-trees rooted at nodes in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A_i$$\end{document}Ai, maintaining these edges adds \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(|A_i| n s_{i-1} d)$$\end{document}O(|Ai|nsi-1d) term to the complexity. This equals\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} O \left( \frac{n \log {n}}{s_i} \cdot n s_{i-1} \cdot d \right) = O( n^{2-1/k}m^{1/k}(\log {n})^{1-1/k} d), \end{aligned}$$\end{document}Onlognsi·nsi-1·d=O(n2-1/km1/k(logn)1-1/kd),following the same calculations done in Claim (but with an extra nd term). Summing over all k adds another multiplicative k term to the complexity. From Claim , the total number of edges added to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E^*$$\end{document}E∗ is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(kn^{1-1/k}m^{1/k}(\log {n})^{1-1/k})$$\end{document}O(kn1-1/km1/k(logn)1-1/k) in expectation. Summing over all n trees, it adds another \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O( kn^{2-1/k}m^{1/k}(\log {n})^{1-1/k} d)$$\end{document}O(kn2-1/km1/k(logn)1-1/kd) term to the complexity, completing the proof. □ □ Claim 6.16 The query complexity of the algorithm is constant. Proof To answer a distance query for a pair of nodes u, v, we work as follows. If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u \in A_i, v \in A_j$$\end{document}u∈Ai,v∈Aj, and i0ρ>0, we get a complexity of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2-1/k}m^{1/k})$$\end{document}O~(n2-1/km1/k), where in the general case we have an extra \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n^{o(1)}$$\end{document}no(1) term. Proof We maintain simultaneously our dynamic data structure to handle short distances of at most d, and the data structure from Theorem to handle large distances of more than d, for a parameter d which we specify next. We run the algorithm from Theorem with parameters \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon ' = \epsilon /2$$\end{document}ε′=ε/2, and k'k′ to be specified later. Recall that this algorithm gives a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon ', \beta )$$\end{document}(1+ε′,β)-approximation for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta = 2(1+2/\epsilon ')^{k'-2}$$\end{document}β=2(1+2/ε′)k′-2. We define \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d=\beta /\epsilon '$$\end{document}d=β/ε′. To answer a distance query for a pair of nodes u, v, we return the minimum between the values obtained in both algorithms. As in both algorithms the query time is constant, we get a constant query time. For the stretch analysis, if d(u,v) ≤ dd(u,v)≤d, then by Lemma , we get an additive stretch of at most +2(k-1)+2(k-1). If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d(u,v) \ge d = \beta /\epsilon '$$\end{document}d(u,v)≥d=β/ε′, then the distance estimate we get from the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\epsilon ',\beta )$$\end{document}(1+ε′,β)-approximation algorithm is at most\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} (1+\epsilon ')d(u,v) + \beta \le (1+\epsilon ')d(u,v) + \epsilon ' d(u,v) = (1+2\epsilon ')d(u,v)=(1+\epsilon )d(u,v). \end{aligned}$$\end{document}(1+ε′)d(u,v)+β≤(1+ε′)d(u,v)+ε′d(u,v)=(1+2ε′)d(u,v)=(1+ε)d(u,v).Hence, overall we get a (1+ε ,2(k-1))(1+ε,2(k-1))-approximation, as needed. We now analyze the time complexity. From Lemma , the time complexity of our algorithm (for small distances) is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(kn^{2-1/k}m^{1/k}(\log {n})^{1-1/k} d)$$\end{document}O(kn2-1/km1/k(logn)1-1/kd), and from Theorem the time complexity of the near-additive approximation algorithm is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2+1/k'} (37/\epsilon )^{k'-1})$$\end{document}O~(n2+1/k′(37/ε)k′-1). We distinguish between two choices for the value k'k′. First we choose k' = k/ρ k′=k/ρ, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m=n^{1+\rho }$$\end{document}m=n1+ρ. In this case, the complexity of both expressions is bounded by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}((n^{2-1/k}m^{1/k}) O(1/\epsilon )^{k/\rho })$$\end{document}O~((n2-1/km1/k)O(1/ε)k/ρ), as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d=\beta /\epsilon ', \beta = 2(1+2/\epsilon ')^{k'-2}$$\end{document}d=β/ε′,β=2(1+2/ε′)k′-2, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2-1/k}m^{1/k})=O(n^{2-1/k}n^{(1+\rho )/k})=O(n^{2+\rho /k})=O(n^{2+1/k'})$$\end{document}O(n2-1/km1/k)=O(n2-1/kn(1+ρ)/k)=O(n2+ρ/k)=O(n2+1/k′). Second, we choose \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k' = \sqrt{\log {n}}$$\end{document}k′=logn. In this case, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(n^{2+1/k'} (37/\epsilon )^{k'-1})= O(n^{2+o(1)})$$\end{document}O~(n2+1/k′(37/ε)k′-1)=O(n2+o(1)). Similarly, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d= \beta /\epsilon ' = O(1/\epsilon ')^{k-1}= O(1/\epsilon )^{O(\sqrt{\log {n}})}=n^{o(1)}$$\end{document}d=β/ε′=O(1/ε′)k-1=O(1/ε)O(logn)=no(1), where the last equality follows since we assume ε ε to be a constant. Hence, in total we get a complexity of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2-1/k+o(1)}m^{1/k})$$\end{document}O(n2-1/k+o(1)m1/k), when m=Ω (n)m=Ω(n). □ □ Conclusion We presented new tradeoffs for decremental approximate APSP in undirected graphs. For weighted graphs, we obtained a (2+ɛ )(2+ε)-approximation with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\widetilde{O}(m^{1/2}n^{3/2})$$\end{document}O~(m1/2n3/2) and a faster \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(2+\varepsilon ,W_{u,v})$$\end{document}(2+ε,Wu,v)-approximation with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\widetilde{O}(nm^{3/4})$$\end{document}O~(nm3/4). For unweighted graphs, we obtained a (2+ɛ )(2+ε)-approximation with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\widetilde{O}(m^{7/4})$$\end{document}O~(m7/4), yielding the first subquadratic algorithm for sufficiently sparse graphs, as well as a family of (1+ɛ ,2(k-1))(1+ε,2(k-1))-approximation algorithms with total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\widetilde{O}(n^{2-1/k}m^{1/k})$$\end{document}O~(n2-1/km1/k). These results demonstrate that approximation guarantees between 1+ɛ 1+ε and 3, which have been extensively studied in the static setting [–, , , , ], can also be exploited to obtain substantially faster decremental APSP algorithms. Despite this progress, the landscape of decremental APSP remains far from fully understood. One of the central open questions is to characterize for which approximation guarantees the total update time of a decremental APSP algorithm can match, up to subpolynomial factors, the running time of the best corresponding static algorithm. For single-source shortest paths, a remarkably complete picture has emerged through a long line of work culminating in near-linear update times for a wide range of approximation guarantees [, , , , , , ]. In contrast, for APSP there remain substantial gaps. For example, our (2+ɛ )(2+ε)-approximate weighted algorithm achieves total update time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\widetilde{O}(m^{1/2}n^{3/2})$$\end{document}O~(m1/2n3/2), matching the classical static construction of Cohen and Zwick [] up to polylogarithmic factors. However, since then faster static 2-approximations have been developed: Baswana and Kavitha [] give an algorithm for 2-APSP taking \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(m\sqrt{n}+n^2)$$\end{document}O~(mn+n2) time. For dense graphs, Dory et al. [] give (2+ε )(2+ε)-APSP in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^{2.214})$$\end{document}O(n2.214) time and a distance oracle for 2-APSP taking \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tilde{O}(mn^{2/3})$$\end{document}O~(mn2/3) time. Determining whether these gaps between decremental and static can be closed, or whether they reflect inherent barriers, remains an open question. A second major direction concerns robustness against stronger adversaries and deterministic computation. Most of the fastest decremental APSP algorithms, including ours, rely on randomization and are analyzed against an oblivious adversary [, , ]. On the other hand, substantial progress has been made in the deterministic setting for large-stretch approximations and related shortest-path problems [–, , , , , ]. Nevertheless, no deterministic or adaptive-adversary decremental APSP algorithms are known with update times comparable to those achieved in the oblivious-adversary setting for approximation guarantees around 2+ɛ 2+ε. Closing these gaps would represent a major advance in dynamic graph algorithms. Finally, the fully dynamic setting remains largely unexplored in the approximation regime considered in this paper. Fully dynamic APSP has a long history, beginning with exact algorithms [, , , , ] and continuing with approximate algorithms [, , ]. However, the best known fully dynamic (2+ɛ )(2+ε)-approximate APSP algorithms still require roughly \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m^{1+o(1)}$$\end{document}m1+o(1) amortized update time per operation [], and there has been comparatively little progress toward achieving the kinds of improvements that are now known in the decremental setting. It remains open whether approximation guarantees between 2 and 3 admit substantially faster fully dynamic algorithms and whether techniques such as approximate bunches or hopsets can be extended to support insertions efficiently. We hope that the techniques introduced in this work—particularly the dynamic maintenance of approximate bunches and the use of bunch-overlap thresholds—provide useful tools for addressing these questions and for further narrowing the gap between static, decremental, and fully dynamic shortest-path algorithms. Monotone ES-tree Algorithm 4 provides pseudocode for the monotone ES-tree algorithm, this is taken from []. Algorithm 3Monotone ES-tree[453_2026_1407_Figi_HTML.webp] Maintaining Bunches and Clusters In this section we give a sketch of the algorithm of Łącki and Nazari [] that allows us to maintain bunches and clusters needed for the decremental algorithm in Sect. . One tool used is a decremental algorithm by Roditty and Zwick [] that maintains Thorup-Zwick clusters up to a bounded depth. This result can be summarized as follows: Lemma B.1 ([]). Let 0 0ε>0 be parameters. We define a scaled graph to be a graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textsc {Scale}(G, R, \epsilon , d)$$\end{document}SCALE(G,R,ε,d) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$:= (V, E, \hat{w})$$\end{document}:=(V,E,w^), such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{w}(e) = \big \lceil \tfrac{w(e)d}{R \epsilon } \big \rceil $$\end{document}w^(e)=⌈w(e)dRε⌉. Then for any path π π in G such that π π has at most d hops and weight \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$R \le w(\pi ) \le 2R$$\end{document}R≤w(π)≤2R we have: 1) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{w}(\pi ) \le \big \lceil 2d/\epsilon \big \rceil $$\end{document}w^(π)≤⌈2d/ε⌉, and 2) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w(\pi ) \le \tfrac{\epsilon R}{d} \cdot \hat{w}(\pi ) \le (1+\epsilon ) w(\pi )$$\end{document}w(π)≤εRd·w^(π)≤(1+ε)w(π). Hence given a hopset, we can ‘cover’ the entire graph by scaled graphs, by considering separate scaled graphs \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$G_i$$\end{document}Gi for the distance scale \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$[2^i, 2^{i+1}]$$\end{document}[2i,2i+1] for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i=1,\dots , \log (nW)$$\end{document}i=1,⋯,log(nW). In order to combine this with a hopset algorithm, we need to scale the graph after adding edges corresponding to a sequence of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$2^i$$\end{document}2i-restricted hopsets, i.e. a graph that satisfies the hopset condition only for pairs within distance at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$2^i$$\end{document}2i. Slightly more formally, we define a scaled graph as follows: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$G^j:= \textsc {Scale}\left( G \cup \bigcup _{r=0}^{j} H_{r}, 2^j, \epsilon , O(\beta )\right) $$\end{document}Gj:=SCALEG∪⋃r=0jHr,2j,ε,O(β), where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$H_{r}$$\end{document}Hr is a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$2^r$$\end{document}2r-restricted hopset. The final hopsets of [] are the union of all these restricted hopsetes, however for maintaining distances efficiently we need to run the algorithm in Lemma on all these scaled graphs simultaneously and take the minimum estimate over all the scales. Importantly, to handle edge insertions they use monotone ES trees which implies that the distances obtained from this algorithm is monotone. This is important for us in bounding the running time of our decremental data structures. The following lemma shows that using the specific hopsets by [], we can maintain approximate single-source distances. Lemma Let G=(V,E,w)G=(V,E,w) be a decremental graph, and let 0< ε <10<ε<1 and 0<ρ <1/20<ρ<1/2 be parameters, let 0< p <10