Knowledge

Distance oracle

Source 📝

1772: 2318: 1345: 2896: 1253: 1995: 3185:
table with the intersection between each two sets. If this conjecture is true, this implies that there is no DO with an approximation factor of less than 2 and a constant query time.
668: 2791: 2716: 1579: 3019: 1106: 1635: 1161: 874: 3146: 2595: 392: 2949: 2491: 2406: 1487: 529: 327: 129: 2535: 1529: 1427: 706: 627: 2369: 2136: 1040: 776: 741: 2065: 1808: 1381: 972: 283: 240: 204: 1872: 934: 828: 3095: 2668: 2633: 2440: 2171: 1899: 1835: 1067: 999: 901: 3175: 3060: 2097: 2027: 479: 450: 421: 168: 591: 562: 3257: 1640: 134:
In order to answer many queries more efficiently, we can spend some time in pre-processing the graph and creating an auxiliary data structure.
329:
time. Most DOs have to compromise on accuracy, i.e. they don't return the accurate distance but rather a constant-factor approximation of it.
3277: 2179: 141:
which specifies, for each pair of nodes, the distance between them. This structure allows us to answer queries in constant time
3299: 1258: 2800: 1166: 243: 3309: 1919: 1901:
s are balls in increasing diameter, that contain vertices with distances up to the first vertex of the next level.
635: 452:, that is, the quotient obtained by dividing the estimated distance by the actual distance lies between 1 and 3106: 3030: 2725: 2673: 3218: 33: 2493:(swap the two input nodes; this does not change the distance between them since the graph is undirected). 3304: 1536: 2962: 1078: 1596: 1122: 835: 3223: 3115: 2794: 2544: 344: 2901: 2446: 2376: 1444: 484: 288: 90: 3236: 2498: 2322:
Having this structure initialized, the following algorithm finds the distance between two nodes,
337:
Thorup and Zwick describe more than 10 different DOs. They then suggest a new DO that, for every
84: 1492: 1390: 673: 596: 2336: 2106: 1004: 746: 711: 3273: 2032: 1777: 1350: 939: 252: 209: 173: 1844: 906: 800: 72:| edges. We would like to answer queries of the form "what is the distance between the nodes 3265: 3228: 3112:
It is believed that the SIO problem does not have a non-trivial solution. I.e., it requires
3065: 2638: 2603: 2413: 2141: 3029:
If there is a DO with an approximation factor of at most 2, then it is possible to build a
1877: 1813: 1045: 977: 879: 3264:. 2010 IEEE 51st Annual Symposium on Foundations of Computer Science (FOCS). p. 815. 3151: 3036: 2073: 2003: 455: 426: 397: 144: 570: 541: 29: 3293: 3202: 2959:
The above result was later improved by Patrascu and Roditty who suggest a DO of size
3240: 629:
space which answers each query in constant time and approximation factor at most 3.
394:, such that any subsequent distance query can be approximately answered in time 1767:{\displaystyle B_{i}(v)=\{w\in A_{i}\setminus A_{i+1}|d(w,v)<d(A_{i+1},v)\}} 2100: 3232: 3206: 17: 3269: 782:
Higher values of k do not improve the space or preprocessing time.
2313:{\displaystyle O(kn+\Sigma |B(v)|)=O(kn+nkn^{1/k})=O(kn^{1+1/k})} 3107:
set intersection oracle#Reduction to approximate distance oracle
2600:
It is possible to show that, in each iteration, the distance
423:. The approximate distance returned is of stretch at most 131:, and requires no extra space (besides the graph itself). 242:
using an all-pairs shortest paths algorithm, such as the
249:
A DO lies between these two extremes. It uses less than
1340:{\displaystyle p_{i}(v)=\arg \min {(d(w,v)|w\in A_{i}}} 3154: 3118: 3068: 3039: 2965: 2904: 2803: 2728: 2676: 2641: 2606: 2547: 2501: 2449: 2416: 2379: 2339: 2182: 2144: 2109: 2076: 2035: 2006: 1922: 1880: 1847: 1816: 1780: 1643: 1599: 1539: 1495: 1447: 1393: 1353: 1261: 1169: 1125: 1081: 1048: 1007: 980: 942: 909: 882: 838: 803: 749: 714: 676: 638: 599: 573: 544: 487: 458: 429: 400: 347: 291: 255: 212: 176: 147: 137:
A simple data structure that achieves this goal is a
93: 2891:{\displaystyle d(w,v)\leq d(w,u)+d(u,v)\leq kd(v,u)} 1429:
is the distance between them. Note that for a fixed
1248:{\displaystyle d(A_{i},v)=\min {(d(w,v)|w\in A_{i}}} 3169: 3140: 3089: 3054: 3013: 2943: 2890: 2785: 2710: 2662: 2627: 2589: 2529: 2485: 2434: 2400: 2363: 2312: 2165: 2130: 2091: 2059: 2021: 1990:{\displaystyle B(v)=\bigcup _{i=0}^{k-1}B_{i}(v).} 1989: 1893: 1866: 1829: 1802: 1766: 1629: 1573: 1523: 1481: 1421: 1375: 1339: 1247: 1155: 1115:, calculate its distance from each of these sets: 1100: 1061: 1034: 993: 966: 928: 895: 868: 822: 790:The oracle is built of a decreasing collection of 770: 735: 700: 662: 621: 585: 556: 523: 473: 444: 415: 386: 321: 277: 234: 198: 162: 123: 2000:It is possible to show that the expected size of 1290: 1198: 32:for calculating distances between vertices in a 3262:Distance Oracles beyond the Thorup–Zwick Bound 285:space in order to answer queries in less than 8: 1761: 1666: 657: 645: 206:extra space. It can be initialized in time 1433:, this distance is weakly increasing with 3222: 3153: 3129: 3117: 3067: 3038: 2998: 2994: 2980: 2976: 2964: 2903: 2802: 2727: 2681: 2675: 2640: 2605: 2546: 2512: 2500: 2448: 2415: 2378: 2338: 2297: 2287: 2258: 2254: 2218: 2201: 2181: 2143: 2108: 2075: 2047: 2043: 2034: 2005: 1969: 1953: 1942: 1921: 1885: 1879: 1852: 1846: 1821: 1815: 1785: 1779: 1740: 1704: 1692: 1679: 1648: 1642: 1598: 1550: 1538: 1500: 1494: 1458: 1446: 1404: 1392: 1358: 1352: 1330: 1315: 1293: 1266: 1260: 1238: 1223: 1201: 1180: 1168: 1124: 1086: 1080: 1053: 1047: 1022: 1012: 1006: 985: 979: 954: 947: 941: 914: 908: 887: 881: 837: 808: 802: 748: 713: 675: 637: 610: 598: 572: 543: 508: 504: 486: 457: 428: 399: 371: 361: 346: 290: 266: 254: 223: 211: 187: 175: 146: 92: 56:) be an undirected, weighted graph, with 3209:(2005). "Approximate distance oracles". 3021:which returns a factor 2 approximation. 2176:The total size of the data structure is 663:{\displaystyle k=\lfloor \log n\rfloor } 3194: 1685: 3252: 3250: 3025:Reduction from set intersection oracle 2898:, so the distance returned is at most 2786:{\displaystyle d(w,u)\leq (k-1)d(v,u)} 2711:{\displaystyle A_{k-1}\subseteq B(v)} 7: 83:One way to do this is just run the 3119: 2198: 1574:{\displaystyle d(A_{k},v)=\infty } 1568: 1095: 936:, independently, with probability 564:we get the simple distance matrix. 14: 3014:{\displaystyle O(n^{4/3}m^{1/3})} 974:. Note that the expected size of 3148:space to answer queries in time 1101:{\displaystyle A_{k}=\emptyset } 1630:{\displaystyle i=0,\ldots ,k-1} 1156:{\displaystyle i=0,\ldots ,k-1} 869:{\displaystyle i=1,\ldots ,k-1} 3164: 3158: 3141:{\displaystyle \Omega (n^{2})} 3135: 3122: 3084: 3072: 3049: 3043: 3008: 2969: 2938: 2926: 2920: 2905: 2885: 2873: 2861: 2849: 2840: 2828: 2819: 2807: 2780: 2768: 2762: 2750: 2744: 2732: 2705: 2699: 2657: 2645: 2622: 2610: 2584: 2572: 2563: 2551: 2524: 2518: 2480: 2468: 2462: 2450: 2395: 2389: 2307: 2277: 2268: 2232: 2223: 2219: 2215: 2209: 2202: 2186: 2160: 2148: 2125: 2119: 2086: 2080: 2016: 2010: 1981: 1975: 1932: 1926: 1797: 1791: 1758: 1733: 1724: 1712: 1705: 1660: 1654: 1562: 1543: 1512: 1506: 1470: 1451: 1416: 1397: 1370: 1364: 1316: 1312: 1300: 1294: 1278: 1272: 1224: 1220: 1208: 1202: 1192: 1173: 765: 753: 730: 718: 695: 680: 616: 603: 518: 491: 410: 404: 381: 351: 316: 295: 272: 259: 229: 216: 193: 180: 157: 151: 118: 97: 1: 2590:{\displaystyle d(w,u)+d(w,v)} 1837:which are strictly closer to 481:. The initialization time is 387:{\displaystyle O(kn^{1+1/k})} 3105:the sum of their sizes; see 2944:{\displaystyle (2k-1)d(u,v)} 2486:{\displaystyle (u,v):=(v,u)} 2401:{\displaystyle w\notin B(v)} 1482:{\displaystyle d(A_{0},v)=0} 786:DO for general metric spaces 534:Some special cases include: 524:{\displaystyle O(kmn^{1/k})} 322:{\displaystyle O(m+n\log n)} 124:{\displaystyle O(m+n\log n)} 2530:{\displaystyle w:=p_{i}(u)} 1437:. Also note that for every 1383:is the i-center nearest to 670:, we get a structure using 3326: 3101:is the number of sets and 2722:-1 iterations, so finally 1524:{\displaystyle p_{0}(v)=v} 1422:{\displaystyle d(A_{i},v)} 701:{\displaystyle O(n\log n)} 622:{\displaystyle O(n^{1.5})} 2364:{\displaystyle w:=u,i:=0} 2131:{\displaystyle w\in B(V)} 1810:contains all vertices in 1035:{\displaystyle n^{1-i/k}} 903:contains each element of 771:{\displaystyle O(\log n)} 736:{\displaystyle O(\log n)} 593:we get a structure using 2060:{\displaystyle kn^{1/k}} 1874:. The partial unions of 1803:{\displaystyle B_{i}(v)} 1376:{\displaystyle p_{i}(v)} 967:{\displaystyle n^{-1/k}} 278:{\displaystyle O(n^{2})} 244:Floyd–Warshall algorithm 235:{\displaystyle O(n^{3})} 199:{\displaystyle O(n^{2})} 3233:10.1145/1044731.1044732 3062:and space requirements 3031:set intersection oracle 1867:{\displaystyle A_{i+1}} 929:{\displaystyle A_{i-1}} 823:{\displaystyle A_{0}=V} 3260:; Roditty, L. (2010). 3171: 3142: 3091: 3090:{\displaystyle O(N+n)} 3056: 3033:(SIO) with query time 3015: 2945: 2892: 2787: 2712: 2664: 2663:{\displaystyle d(v,u)} 2629: 2628:{\displaystyle d(w,u)} 2591: 2531: 2487: 2436: 2435:{\displaystyle i:=i+1} 2402: 2365: 2314: 2167: 2166:{\displaystyle d(w,v)} 2132: 2103:that holds, for every 2093: 2061: 2023: 1991: 1964: 1895: 1868: 1831: 1804: 1768: 1631: 1575: 1525: 1483: 1423: 1377: 1341: 1249: 1157: 1102: 1063: 1036: 995: 968: 930: 897: 870: 824: 772: 737: 702: 664: 623: 587: 558: 525: 475: 446: 417: 388: 323: 279: 236: 200: 164: 125: 3300:Graph data structures 3172: 3143: 3092: 3057: 3016: 2946: 2893: 2788: 2713: 2665: 2630: 2592: 2532: 2488: 2437: 2403: 2366: 2315: 2168: 2133: 2094: 2062: 2024: 1992: 1938: 1896: 1894:{\displaystyle B_{i}} 1869: 1841:than all vertices in 1832: 1830:{\displaystyle A_{i}} 1805: 1769: 1632: 1576: 1526: 1484: 1424: 1378: 1342: 1250: 1158: 1103: 1064: 1062:{\displaystyle A_{i}} 1037: 996: 994:{\displaystyle A_{i}} 969: 931: 898: 896:{\displaystyle A_{i}} 871: 825: 794:+1 sets of vertices: 773: 738: 703: 665: 624: 588: 559: 526: 476: 447: 418: 389: 324: 280: 237: 201: 165: 126: 3270:10.1109/FOCS.2010.83 3170:{\displaystyle O(1)} 3152: 3116: 3066: 3055:{\displaystyle O(1)} 3037: 2963: 2902: 2801: 2726: 2718:, there are at most 2674: 2639: 2604: 2545: 2499: 2447: 2414: 2377: 2337: 2180: 2142: 2107: 2092:{\displaystyle B(v)} 2074: 2033: 2022:{\displaystyle B(v)} 2004: 1920: 1878: 1845: 1814: 1778: 1641: 1597: 1537: 1493: 1445: 1391: 1351: 1259: 1167: 1123: 1079: 1046: 1005: 978: 940: 907: 880: 836: 801: 747: 712: 674: 636: 597: 571: 542: 485: 474:{\displaystyle 2k-1} 456: 445:{\displaystyle 2k-1} 427: 416:{\displaystyle O(k)} 398: 345: 289: 253: 210: 174: 163:{\displaystyle O(1)} 145: 91: 3310:Computation oracles 2795:triangle inequality 586:{\displaystyle k=2} 557:{\displaystyle k=1} 3211:Journal of the ACM 3167: 3138: 3087: 3052: 3011: 2941: 2888: 2783: 2708: 2660: 2625: 2587: 2527: 2483: 2432: 2398: 2361: 2310: 2163: 2128: 2089: 2057: 2019: 1987: 1891: 1864: 1827: 1800: 1764: 1627: 1571: 1521: 1479: 1419: 1373: 1337: 1245: 1153: 1098: 1059: 1042:. The elements of 1032: 991: 964: 926: 893: 866: 820: 768: 733: 708:space, query time 698: 660: 619: 583: 554: 521: 471: 442: 413: 384: 319: 275: 232: 196: 160: 121: 87:. This takes time 85:Dijkstra algorithm 3279:978-1-4244-8525-3 2635:grows by at most 341:, requires space 3317: 3284: 3283: 3254: 3245: 3244: 3226: 3199: 3177:, e.g. using an 3176: 3174: 3173: 3168: 3147: 3145: 3144: 3139: 3134: 3133: 3096: 3094: 3093: 3088: 3061: 3059: 3058: 3053: 3020: 3018: 3017: 3012: 3007: 3006: 3002: 2989: 2988: 2984: 2950: 2948: 2947: 2942: 2897: 2895: 2894: 2889: 2792: 2790: 2789: 2784: 2717: 2715: 2714: 2709: 2692: 2691: 2669: 2667: 2666: 2661: 2634: 2632: 2631: 2626: 2596: 2594: 2593: 2588: 2536: 2534: 2533: 2528: 2517: 2516: 2492: 2490: 2489: 2484: 2441: 2439: 2438: 2433: 2407: 2405: 2404: 2399: 2370: 2368: 2367: 2362: 2319: 2317: 2316: 2311: 2306: 2305: 2301: 2267: 2266: 2262: 2222: 2205: 2172: 2170: 2169: 2164: 2137: 2135: 2134: 2129: 2098: 2096: 2095: 2090: 2070:For every bunch 2066: 2064: 2063: 2058: 2056: 2055: 2051: 2028: 2026: 2025: 2020: 1996: 1994: 1993: 1988: 1974: 1973: 1963: 1952: 1900: 1898: 1897: 1892: 1890: 1889: 1873: 1871: 1870: 1865: 1863: 1862: 1836: 1834: 1833: 1828: 1826: 1825: 1809: 1807: 1806: 1801: 1790: 1789: 1773: 1771: 1770: 1765: 1751: 1750: 1708: 1703: 1702: 1684: 1683: 1653: 1652: 1636: 1634: 1633: 1628: 1580: 1578: 1577: 1572: 1555: 1554: 1530: 1528: 1527: 1522: 1505: 1504: 1488: 1486: 1485: 1480: 1463: 1462: 1428: 1426: 1425: 1420: 1409: 1408: 1382: 1380: 1379: 1374: 1363: 1362: 1346: 1344: 1343: 1338: 1336: 1335: 1334: 1319: 1271: 1270: 1254: 1252: 1251: 1246: 1244: 1243: 1242: 1227: 1185: 1184: 1162: 1160: 1159: 1154: 1107: 1105: 1104: 1099: 1091: 1090: 1068: 1066: 1065: 1060: 1058: 1057: 1041: 1039: 1038: 1033: 1031: 1030: 1026: 1000: 998: 997: 992: 990: 989: 973: 971: 970: 965: 963: 962: 958: 935: 933: 932: 927: 925: 924: 902: 900: 899: 894: 892: 891: 875: 873: 872: 867: 829: 827: 826: 821: 813: 812: 777: 775: 774: 769: 742: 740: 739: 734: 707: 705: 704: 699: 669: 667: 666: 661: 628: 626: 625: 620: 615: 614: 592: 590: 589: 584: 563: 561: 560: 555: 530: 528: 527: 522: 517: 516: 512: 480: 478: 477: 472: 451: 449: 448: 443: 422: 420: 419: 414: 393: 391: 390: 385: 380: 379: 375: 328: 326: 325: 320: 284: 282: 281: 276: 271: 270: 241: 239: 238: 233: 228: 227: 205: 203: 202: 197: 192: 191: 169: 167: 166: 161: 130: 128: 127: 122: 3325: 3324: 3320: 3319: 3318: 3316: 3315: 3314: 3290: 3289: 3288: 3287: 3280: 3256: 3255: 3248: 3224:10.1.1.295.4480 3201: 3200: 3196: 3191: 3150: 3149: 3125: 3114: 3113: 3064: 3063: 3035: 3034: 3027: 2990: 2972: 2961: 2960: 2957: 2900: 2899: 2799: 2798: 2724: 2723: 2677: 2672: 2671: 2637: 2636: 2602: 2601: 2543: 2542: 2508: 2497: 2496: 2445: 2444: 2412: 2411: 2375: 2374: 2335: 2334: 2283: 2250: 2178: 2177: 2140: 2139: 2138:, the distance 2105: 2104: 2072: 2071: 2039: 2031: 2030: 2002: 2001: 1965: 1918: 1917: 1881: 1876: 1875: 1848: 1843: 1842: 1817: 1812: 1811: 1781: 1776: 1775: 1736: 1688: 1675: 1644: 1639: 1638: 1595: 1594: 1585:For every node 1546: 1535: 1534: 1496: 1491: 1490: 1454: 1443: 1442: 1400: 1389: 1388: 1354: 1349: 1348: 1326: 1262: 1257: 1256: 1234: 1176: 1165: 1164: 1121: 1120: 1111:For every node 1082: 1077: 1076: 1049: 1044: 1043: 1008: 1003: 1002: 981: 976: 975: 943: 938: 937: 910: 905: 904: 883: 878: 877: 834: 833: 804: 799: 798: 788: 745: 744: 710: 709: 672: 671: 634: 633: 606: 595: 594: 569: 568: 540: 539: 500: 483: 482: 454: 453: 425: 424: 396: 395: 357: 343: 342: 335: 287: 286: 262: 251: 250: 219: 208: 207: 183: 172: 171: 170:, but requires 143: 142: 89: 88: 42: 22:distance oracle 12: 11: 5: 3323: 3321: 3313: 3312: 3307: 3302: 3292: 3291: 3286: 3285: 3278: 3246: 3193: 3192: 3190: 3187: 3166: 3163: 3160: 3157: 3137: 3132: 3128: 3124: 3121: 3086: 3083: 3080: 3077: 3074: 3071: 3051: 3048: 3045: 3042: 3026: 3023: 3010: 3005: 3001: 2997: 2993: 2987: 2983: 2979: 2975: 2971: 2968: 2956: 2953: 2940: 2937: 2934: 2931: 2928: 2925: 2922: 2919: 2916: 2913: 2910: 2907: 2887: 2884: 2881: 2878: 2875: 2872: 2869: 2866: 2863: 2860: 2857: 2854: 2851: 2848: 2845: 2842: 2839: 2836: 2833: 2830: 2827: 2824: 2821: 2818: 2815: 2812: 2809: 2806: 2782: 2779: 2776: 2773: 2770: 2767: 2764: 2761: 2758: 2755: 2752: 2749: 2746: 2743: 2740: 2737: 2734: 2731: 2707: 2704: 2701: 2698: 2695: 2690: 2687: 2684: 2680: 2659: 2656: 2653: 2650: 2647: 2644: 2624: 2621: 2618: 2615: 2612: 2609: 2598: 2597: 2586: 2583: 2580: 2577: 2574: 2571: 2568: 2565: 2562: 2559: 2556: 2553: 2550: 2539: 2538: 2537: 2526: 2523: 2520: 2515: 2511: 2507: 2504: 2494: 2482: 2479: 2476: 2473: 2470: 2467: 2464: 2461: 2458: 2455: 2452: 2442: 2431: 2428: 2425: 2422: 2419: 2397: 2394: 2391: 2388: 2385: 2382: 2371: 2360: 2357: 2354: 2351: 2348: 2345: 2342: 2309: 2304: 2300: 2296: 2293: 2290: 2286: 2282: 2279: 2276: 2273: 2270: 2265: 2261: 2257: 2253: 2249: 2246: 2243: 2240: 2237: 2234: 2231: 2228: 2225: 2221: 2217: 2214: 2211: 2208: 2204: 2200: 2197: 2194: 2191: 2188: 2185: 2162: 2159: 2156: 2153: 2150: 2147: 2127: 2124: 2121: 2118: 2115: 2112: 2099:, construct a 2088: 2085: 2082: 2079: 2054: 2050: 2046: 2042: 2038: 2018: 2015: 2012: 2009: 1998: 1997: 1986: 1983: 1980: 1977: 1972: 1968: 1962: 1959: 1956: 1951: 1948: 1945: 1941: 1937: 1934: 1931: 1928: 1925: 1909:, compute its 1903: 1902: 1888: 1884: 1861: 1858: 1855: 1851: 1824: 1820: 1799: 1796: 1793: 1788: 1784: 1763: 1760: 1757: 1754: 1749: 1746: 1743: 1739: 1735: 1732: 1729: 1726: 1723: 1720: 1717: 1714: 1711: 1707: 1701: 1698: 1695: 1691: 1687: 1682: 1678: 1674: 1671: 1668: 1665: 1662: 1659: 1656: 1651: 1647: 1626: 1623: 1620: 1617: 1614: 1611: 1608: 1605: 1602: 1583: 1582: 1570: 1567: 1564: 1561: 1558: 1553: 1549: 1545: 1542: 1532: 1520: 1517: 1514: 1511: 1508: 1503: 1499: 1478: 1475: 1472: 1469: 1466: 1461: 1457: 1453: 1450: 1418: 1415: 1412: 1407: 1403: 1399: 1396: 1372: 1369: 1366: 1361: 1357: 1333: 1329: 1325: 1322: 1318: 1314: 1311: 1308: 1305: 1302: 1299: 1296: 1292: 1289: 1286: 1283: 1280: 1277: 1274: 1269: 1265: 1241: 1237: 1233: 1230: 1226: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1200: 1197: 1194: 1191: 1188: 1183: 1179: 1175: 1172: 1152: 1149: 1146: 1143: 1140: 1137: 1134: 1131: 1128: 1109: 1108: 1097: 1094: 1089: 1085: 1074: 1056: 1052: 1029: 1025: 1021: 1018: 1015: 1011: 988: 984: 961: 957: 953: 950: 946: 923: 920: 917: 913: 890: 886: 865: 862: 859: 856: 853: 850: 847: 844: 841: 830: 819: 816: 811: 807: 787: 784: 780: 779: 767: 764: 761: 758: 755: 752: 743:, and stretch 732: 729: 726: 723: 720: 717: 697: 694: 691: 688: 685: 682: 679: 659: 656: 653: 650: 647: 644: 641: 630: 618: 613: 609: 605: 602: 582: 579: 576: 565: 553: 550: 547: 520: 515: 511: 507: 503: 499: 496: 493: 490: 470: 467: 464: 461: 441: 438: 435: 432: 412: 409: 406: 403: 383: 378: 374: 370: 367: 364: 360: 356: 353: 350: 334: 333:Approximate DO 331: 318: 315: 312: 309: 306: 303: 300: 297: 294: 274: 269: 265: 261: 258: 231: 226: 222: 218: 215: 195: 190: 186: 182: 179: 159: 156: 153: 150: 120: 117: 114: 111: 108: 105: 102: 99: 96: 68: = | 60: = | 41: 38: 30:data structure 13: 10: 9: 6: 4: 3: 2: 3322: 3311: 3308: 3306: 3303: 3301: 3298: 3297: 3295: 3281: 3275: 3271: 3267: 3263: 3259: 3253: 3251: 3247: 3242: 3238: 3234: 3230: 3225: 3220: 3216: 3212: 3208: 3204: 3198: 3195: 3188: 3186: 3184: 3180: 3161: 3155: 3130: 3126: 3110: 3108: 3104: 3100: 3081: 3078: 3075: 3069: 3046: 3040: 3032: 3024: 3022: 3003: 2999: 2995: 2991: 2985: 2981: 2977: 2973: 2966: 2954: 2952: 2935: 2932: 2929: 2923: 2917: 2914: 2911: 2908: 2882: 2879: 2876: 2870: 2867: 2864: 2858: 2855: 2852: 2846: 2843: 2837: 2834: 2831: 2825: 2822: 2816: 2813: 2810: 2804: 2796: 2793:. Now by the 2777: 2774: 2771: 2765: 2759: 2756: 2753: 2747: 2741: 2738: 2735: 2729: 2721: 2702: 2696: 2693: 2688: 2685: 2682: 2678: 2654: 2651: 2648: 2642: 2619: 2616: 2613: 2607: 2581: 2578: 2575: 2569: 2566: 2560: 2557: 2554: 2548: 2540: 2521: 2513: 2509: 2505: 2502: 2495: 2477: 2474: 2471: 2465: 2459: 2456: 2453: 2443: 2429: 2426: 2423: 2420: 2417: 2410: 2409: 2392: 2386: 2383: 2380: 2372: 2358: 2355: 2352: 2349: 2346: 2343: 2340: 2333: 2332: 2331: 2329: 2325: 2320: 2302: 2298: 2294: 2291: 2288: 2284: 2280: 2274: 2271: 2263: 2259: 2255: 2251: 2247: 2244: 2241: 2238: 2235: 2229: 2226: 2212: 2206: 2195: 2192: 2189: 2183: 2174: 2157: 2154: 2151: 2145: 2122: 2116: 2113: 2110: 2102: 2083: 2077: 2068: 2052: 2048: 2044: 2040: 2036: 2013: 2007: 1984: 1978: 1970: 1966: 1960: 1957: 1954: 1949: 1946: 1943: 1939: 1935: 1929: 1923: 1916: 1915: 1914: 1912: 1908: 1886: 1882: 1859: 1856: 1853: 1849: 1840: 1822: 1818: 1794: 1786: 1782: 1755: 1752: 1747: 1744: 1741: 1737: 1730: 1727: 1721: 1718: 1715: 1709: 1699: 1696: 1693: 1689: 1680: 1676: 1672: 1669: 1663: 1657: 1649: 1645: 1624: 1621: 1618: 1615: 1612: 1609: 1606: 1603: 1600: 1592: 1591: 1590: 1589:, calculate: 1588: 1565: 1559: 1556: 1551: 1547: 1540: 1533: 1518: 1515: 1509: 1501: 1497: 1476: 1473: 1467: 1464: 1459: 1455: 1448: 1440: 1436: 1432: 1413: 1410: 1405: 1401: 1394: 1386: 1367: 1359: 1355: 1331: 1327: 1323: 1320: 1309: 1306: 1303: 1297: 1287: 1284: 1281: 1275: 1267: 1263: 1239: 1235: 1231: 1228: 1217: 1214: 1211: 1205: 1195: 1189: 1186: 1181: 1177: 1170: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1126: 1118: 1117: 1116: 1114: 1092: 1087: 1083: 1075: 1072: 1054: 1050: 1027: 1023: 1019: 1016: 1013: 1009: 986: 982: 959: 955: 951: 948: 944: 921: 918: 915: 911: 888: 884: 863: 860: 857: 854: 851: 848: 845: 842: 839: 831: 817: 814: 809: 805: 797: 796: 795: 793: 785: 783: 762: 759: 756: 750: 727: 724: 721: 715: 692: 689: 686: 683: 677: 654: 651: 648: 642: 639: 631: 611: 607: 600: 580: 577: 574: 566: 551: 548: 545: 537: 536: 535: 532: 513: 509: 505: 501: 497: 494: 488: 468: 465: 462: 459: 439: 436: 433: 430: 407: 401: 376: 372: 368: 365: 362: 358: 354: 348: 340: 332: 330: 313: 310: 307: 304: 301: 298: 292: 267: 263: 256: 247: 245: 224: 220: 213: 188: 184: 177: 154: 148: 140: 135: 132: 115: 112: 109: 106: 103: 100: 94: 86: 81: 79: 75: 71: 67: 63: 59: 55: 51: 47: 39: 37: 35: 31: 27: 23: 19: 3305:Graph theory 3261: 3258:Patrascu, M. 3214: 3210: 3197: 3182: 3178: 3111: 3102: 3098: 3028: 2958: 2955:Improvements 2719: 2599: 2327: 2323: 2321: 2175: 2069: 1999: 1910: 1906: 1904: 1838: 1586: 1584: 1438: 1434: 1430: 1384: 1112: 1110: 1070: 791: 789: 781: 533: 338: 336: 248: 138: 136: 133: 82: 77: 73: 69: 65: 64:| nodes and 61: 57: 53: 49: 45: 43: 40:Introduction 25: 21: 15: 2029:is at most 1069:are called 3294:Categories 3203:Thorup, M. 3189:References 2101:hash table 1905:For every 1593:For every 1119:For every 832:For every 3219:CiteSeerX 3207:Zwick, U. 3120:Ω 2915:− 2865:≤ 2823:≤ 2757:− 2748:≤ 2694:⊆ 2686:− 2384:∉ 2199:Σ 2114:∈ 1958:− 1940:⋃ 1686:∖ 1673:∈ 1622:− 1613:… 1569:∞ 1324:∈ 1288:⁡ 1232:∈ 1148:− 1139:… 1096:∅ 1071:i-centers 1017:− 949:− 919:− 861:− 852:… 760:⁡ 725:⁡ 690:⁡ 658:⌋ 652:⁡ 646:⌊ 466:− 437:− 311:⁡ 113:⁡ 76:and  18:computing 3217:: 1–24. 3097:, where 2670:. Since 1347:. I.e., 3241:5425739 2541:return 28:) is a 3276:  3239:  3221:  2373:while 1387:, and 139:matrix 3237:S2CID 1911:bunch 34:graph 3274:ISBN 3181:-by- 2326:and 1728:< 1489:and 1255:and 632:For 567:For 538:For 80:?". 44:Let 20:, a 3266:doi 3229:doi 3109:. 1291:min 1285:arg 1199:min 1001:is 757:log 722:log 687:log 649:log 612:1.5 308:log 110:log 16:In 3296:: 3272:. 3249:^ 3235:. 3227:. 3215:52 3213:. 3205:; 2951:. 2797:, 2506::= 2466::= 2421::= 2408:: 2356::= 2344::= 2330:: 2173:. 2067:. 1913:: 1774:. 1637:: 1441:, 1163:: 876:: 531:. 246:. 36:. 26:DO 3282:. 3268:: 3243:. 3231:: 3183:n 3179:n 3165:) 3162:1 3159:( 3156:O 3136:) 3131:2 3127:n 3123:( 3103:N 3099:n 3085:) 3082:n 3079:+ 3076:N 3073:( 3070:O 3050:) 3047:1 3044:( 3041:O 3009:) 3004:3 3000:/ 2996:1 2992:m 2986:3 2982:/ 2978:4 2974:n 2970:( 2967:O 2939:) 2936:v 2933:, 2930:u 2927:( 2924:d 2921:) 2918:1 2912:k 2909:2 2906:( 2886:) 2883:u 2880:, 2877:v 2874:( 2871:d 2868:k 2862:) 2859:v 2856:, 2853:u 2850:( 2847:d 2844:+ 2841:) 2838:u 2835:, 2832:w 2829:( 2826:d 2820:) 2817:v 2814:, 2811:w 2808:( 2805:d 2781:) 2778:u 2775:, 2772:v 2769:( 2766:d 2763:) 2760:1 2754:k 2751:( 2745:) 2742:u 2739:, 2736:w 2733:( 2730:d 2720:k 2706:) 2703:v 2700:( 2697:B 2689:1 2683:k 2679:A 2658:) 2655:u 2652:, 2649:v 2646:( 2643:d 2623:) 2620:u 2617:, 2614:w 2611:( 2608:d 2585:) 2582:v 2579:, 2576:w 2573:( 2570:d 2567:+ 2564:) 2561:u 2558:, 2555:w 2552:( 2549:d 2525:) 2522:u 2519:( 2514:i 2510:p 2503:w 2481:) 2478:u 2475:, 2472:v 2469:( 2463:) 2460:v 2457:, 2454:u 2451:( 2430:1 2427:+ 2424:i 2418:i 2396:) 2393:v 2390:( 2387:B 2381:w 2359:0 2353:i 2350:, 2347:u 2341:w 2328:v 2324:u 2308:) 2303:k 2299:/ 2295:1 2292:+ 2289:1 2285:n 2281:k 2278:( 2275:O 2272:= 2269:) 2264:k 2260:/ 2256:1 2252:n 2248:k 2245:n 2242:+ 2239:n 2236:k 2233:( 2230:O 2227:= 2224:) 2220:| 2216:) 2213:v 2210:( 2207:B 2203:| 2196:+ 2193:n 2190:k 2187:( 2184:O 2161:) 2158:v 2155:, 2152:w 2149:( 2146:d 2126:) 2123:V 2120:( 2117:B 2111:w 2087:) 2084:v 2081:( 2078:B 2053:k 2049:/ 2045:1 2041:n 2037:k 2017:) 2014:v 2011:( 2008:B 1985:. 1982:) 1979:v 1976:( 1971:i 1967:B 1961:1 1955:k 1950:0 1947:= 1944:i 1936:= 1933:) 1930:v 1927:( 1924:B 1907:v 1887:i 1883:B 1860:1 1857:+ 1854:i 1850:A 1839:v 1823:i 1819:A 1798:) 1795:v 1792:( 1787:i 1783:B 1762:} 1759:) 1756:v 1753:, 1748:1 1745:+ 1742:i 1738:A 1734:( 1731:d 1725:) 1722:v 1719:, 1716:w 1713:( 1710:d 1706:| 1700:1 1697:+ 1694:i 1690:A 1681:i 1677:A 1670:w 1667:{ 1664:= 1661:) 1658:v 1655:( 1650:i 1646:B 1625:1 1619:k 1616:, 1610:, 1607:0 1604:= 1601:i 1587:v 1581:. 1566:= 1563:) 1560:v 1557:, 1552:k 1548:A 1544:( 1541:d 1531:. 1519:v 1516:= 1513:) 1510:v 1507:( 1502:0 1498:p 1477:0 1474:= 1471:) 1468:v 1465:, 1460:0 1456:A 1452:( 1449:d 1439:v 1435:i 1431:v 1417:) 1414:v 1411:, 1406:i 1402:A 1398:( 1395:d 1385:v 1371:) 1368:v 1365:( 1360:i 1356:p 1332:i 1328:A 1321:w 1317:| 1313:) 1310:v 1307:, 1304:w 1301:( 1298:d 1295:( 1282:= 1279:) 1276:v 1273:( 1268:i 1264:p 1240:i 1236:A 1229:w 1225:| 1221:) 1218:v 1215:, 1212:w 1209:( 1206:d 1203:( 1196:= 1193:) 1190:v 1187:, 1182:i 1178:A 1174:( 1171:d 1151:1 1145:k 1142:, 1136:, 1133:0 1130:= 1127:i 1113:v 1093:= 1088:k 1084:A 1073:. 1055:i 1051:A 1028:k 1024:/ 1020:i 1014:1 1010:n 987:i 983:A 960:k 956:/ 952:1 945:n 922:1 916:i 912:A 889:i 885:A 864:1 858:k 855:, 849:, 846:1 843:= 840:i 818:V 815:= 810:0 806:A 792:k 778:. 766:) 763:n 754:( 751:O 731:) 728:n 719:( 716:O 696:) 693:n 684:n 681:( 678:O 655:n 643:= 640:k 617:) 608:n 604:( 601:O 581:2 578:= 575:k 552:1 549:= 546:k 519:) 514:k 510:/ 506:1 502:n 498:m 495:k 492:( 489:O 469:1 463:k 460:2 440:1 434:k 431:2 411:) 408:k 405:( 402:O 382:) 377:k 373:/ 369:1 366:+ 363:1 359:n 355:k 352:( 349:O 339:k 317:) 314:n 305:n 302:+ 299:m 296:( 293:O 273:) 268:2 264:n 260:( 257:O 230:) 225:3 221:n 217:( 214:O 194:) 189:2 185:n 181:( 178:O 158:) 155:1 152:( 149:O 119:) 116:n 107:n 104:+ 101:m 98:( 95:O 78:t 74:s 70:E 66:m 62:V 58:n 54:E 52:, 50:V 48:( 46:G 24:(

Index

computing
data structure
graph
Dijkstra algorithm
Floyd–Warshall algorithm
hash table
triangle inequality
set intersection oracle
set intersection oracle#Reduction to approximate distance oracle
Thorup, M.
Zwick, U.
CiteSeerX
10.1.1.295.4480
doi
10.1145/1044731.1044732
S2CID
5425739


Patrascu, M.
doi
10.1109/FOCS.2010.83
ISBN
978-1-4244-8525-3
Categories
Graph data structures
Graph theory
Computation oracles

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑