Knowledge

Range searching

Source 📝

209: 17: 1305:. Colored range searching is also used for and motivated by searching through categorical data. For example, determining the rows in a database of bank accounts which represent people whose age is between 25 and 40 and who have between $ 10000 and $ 20000 might be an orthogonal range reporting problem where age and money are two dimensions. 1190:
attributes. If the categories are considered as colors of points in geometric space, then a query is for how many colors appear in a particular range. Prosenjit Gupta and others described a data structure in 1995 which solved 2D orthogonal colored range counting in
1034:
range searching, insertions and deletions of points are allowed. In the incremental version of the problem, only insertions are allowed, whereas the decremental version only allows deletions. For the orthogonal case,
87:
There are several variations of the problem, and different data structures may be necessary for different variations. In order to obtain an efficient solution, several aspects of the problem need to be specified:
1356:
Advances in Discrete and Computational Geometry: proceedings of the 1996 AMS-IMS-SIAM joint summer research conference, Discrete and Computational Geometry--Ten Years Later, July 14-18, 1996, Mount Holyoke
695: 806: 386: 914: 212:
A 2D orthogonal range query. In this case, a range reporting query would return the two circled points, a range counting query would return 2, and an emptiness query would return false.
1135: 961: 1241: 551: 1008: 489: 852: 438: 1283: 1176: 1079: 604: 1018:, the query is called three-sided. If two of the bounds are infinity, the query is two-sided, and if none of the bounds are infinity, then the query is four-sided. 742: 633: 323: 1634:
Gupta, Prosenjit; Janardan, Ravi; Smid, Michiel (1995). "Further results on generalized intersection searching problems: Counting, reporting, and dynamization".
282: 258: 238: 1538: 119:
Range types: The query ranges also need to be drawn from a predetermined set. Some well-studied sets of ranges, and the names of the respective problems are
1536:
JaJa, Joseph; Mortensen, Christian; Shi, Qingmin (2005). "Space-efficient and fast algorithms for multidimensional dominance reporting and counting".
1557: 709: 638: 747: 1591: 328: 260:
dimensions, and the query consists of intervals in each of those dimensions. Thus, the query consists of a multi-dimensional
1703: 1562: 48:
is a set of points corresponding to the coordinates of several cities, find the subset of cities within a given range of
1040: 1750: 1694: 1416: 1370: 285: 150:. Sometimes, only the number of objects that intersect the range is required. In this case, the problem is called 857: 142:
Query types: If the list of all objects that intersect the query range must be reported, the problem is called
68: 1084: 921: 1194: 1178:
query time, but it is unknown whether general dynamic range searching can be done with that query time.
502: 181:, and it is required to report the semigroup sum of the weights of the points that intersect the range. 966: 443: 1499: 1467: 1425: 1379: 813: 395: 1513: 712:, also using compressed range trees in the word RAM model of computation, are one of the following: 1755: 1246: 194:
Offline range searching: Both the set of objects and the whole set of queries are known in advance.
1140: 1046: 1508: 1298: 1294: 698: 574: 261: 120: 64: 1497:(1988). "A functional approach to data structures and its use in multidimensional searching". 1712: 1636: 1359:, Contemporary Mathematics, vol. 223, American Mathematical Society Press, pp. 1–56 128: 72: 1187: 704:
As of 2015, the best results (in low dimensions (2D, 3D, 4D)) for range reporting found by
564: 496: 191:
is known in advance. In dynamic setting objects may be inserted or deleted between queries.
1658: 718: 609: 299: 8: 1137:
query time. Both incremental and decremental versions of the problem can be solved with
1729: 1616: 1567: 1444: 1398: 267: 243: 223: 1297:, range searching, and orthogonal range searching in particular, has applications for 1690: 1683: 1339: 389: 1733: 1707: 1402: 1721: 1653: 1645: 1620: 1608: 1518: 1494: 1476: 1448: 1434: 1388: 1351: 1347: 635:
space for range counting. Joseph JaJa and others later improved this query time to
568: 97: 25: 1553: 1343: 1039:
and Stefan Näher created a data structure for dynamic range searching which uses
705: 557: 143: 101: 293: 162:
reports whether there is at least one object that intersects the range. In the
60: 1744: 1678: 1587: 1036: 1649: 1599: 1186:
The problem of colored range counting considers the case where points have
1031: 184: 105: 1725: 1439: 1420: 1393: 1374: 187:
range searching vs. static range searching: In the static setting the set
1462: 1319: 492: 208: 167: 16: 1612: 1314: 1676: 1375:"Multidimensional binary search trees used for associative searching" 170: 109: 53: 1522: 1480: 1302: 1015: 561: 289: 76: 49: 1572: 124: 113: 116:.... The simplest and most studied objects to search are points. 136: 132: 1560:(2011). "Orthogonal range searching on the RAM, revisited". 1465:(1985). "New data structures for orthogonal range queries". 697:
for range counting, which matches a lower bound and is thus
690:{\displaystyle O\left({\dfrac {\log n}{\log \log n}}\right)} 801:{\displaystyle O(\log ^{\epsilon }n+k\log ^{\epsilon }n)} 381:{\displaystyle O{\big (}n^{1-{\frac {1}{d}}}+k{\big )}} 177:,+) is specified, each point is assigned a weight from 1539:
International Symposium on Algorithms and Computation
1249: 1197: 1143: 1087: 1049: 969: 924: 860: 816: 750: 721: 650: 641: 612: 577: 505: 446: 398: 331: 302: 270: 246: 226: 67:. Applications of the problem arise in areas such as 36:
of objects, in order to determine which objects from
1682: 1552: 1277: 1235: 1170: 1129: 1073: 1002: 955: 908: 846: 800: 736: 689: 627: 598: 560:model, further improvements have been made in the 545: 483: 432: 380: 317: 276: 252: 232: 1633: 1742: 1535: 1014:In the orthogonal case, if one of the bounds is 1338: 1586: 1344:"Geometric Range Searching and Its Relatives" 556:While the above results were achieved in the 373: 337: 203: 909:{\displaystyle O(\log \log n+k\log \log n)} 92:Object types: Algorithms depend on whether 1181: 1021: 40:intersect with a query object, called the 1689:(2nd ed.), Berlin: Springer-Verlag, 1657: 1580: 1571: 1512: 1487: 1438: 1392: 63:that solve it are a fundamental topic of 1702: 1493: 1455: 1409: 1363: 1332: 1026:While in static range searching the set 388:query time. Bentley also proposed using 207: 15: 1461: 1415: 1369: 216:In orthogonal range searching, the set 1743: 1627: 1130:{\displaystyle O(\log n\log \log n+k)} 956:{\displaystyle O(n\log ^{\epsilon }n)} 1546: 1529: 1421:"Multidimensional divide-and-conquer" 571:used compress range trees to achieve 495:used downpointers, a special case of 32:problem consists of processing a set 499:to reduce the query time further to 59:The range searching problem and the 1563:Symposium on Computational Geometry 1293:In addition to being considered in 13: 1677:de Berg, Mark; van Kreveld, Marc; 1670: 1236:{\displaystyle O(n^{2}\log ^{2}n)} 198: 14: 1767: 546:{\displaystyle O(\log ^{d-1}n+k)} 1003:{\displaystyle O(\log \log n+k)} 567:in low dimensions (2D, 3D, 4D). 484:{\displaystyle O(n\log ^{d-1}n)} 69:geographical information systems 1681:; Schwarzkopf, Otfried (2000), 1288: 847:{\displaystyle O(n\log \log n)} 433:{\displaystyle O(\log ^{d}n+k)} 392:, which improved query time to 1659:11858/00-001M-0000-0014-B721-F 1592:"Dynamic fractional cascading" 1272: 1253: 1230: 1201: 1165: 1147: 1124: 1091: 1068: 1053: 997: 973: 950: 928: 903: 864: 841: 820: 795: 754: 731: 725: 622: 616: 593: 581: 540: 509: 478: 450: 427: 402: 312: 306: 123:(orthogonal range searching), 1: 1325: 1278:{\displaystyle O(\log ^{2}n)} 82: 1041:dynamic fractional cascading 154:, and the query is called a 146:, and the query is called a 7: 1708:"Geometric range searching" 1354:; Pollack, Richard (eds.), 1308: 1171:{\displaystyle O(\log n+k)} 10: 1772: 1074:{\displaystyle O(n\log n)} 204:Orthogonal range searching 1751:Geometric data structures 1500:SIAM Journal on Computing 1468:SIAM Journal on Computing 1426:Communications of the ACM 1380:Communications of the ACM 599:{\displaystyle O(\log n)} 264:. With an output size of 1590:; Näher, Stefan (1990). 20:Simplex range searching. 1342:; Erickson, J. (1999), 1182:Colored range searching 1022:Dynamic range searching 440:but increased space to 121:axis-aligned rectangles 1685:Computational Geometry 1650:10.1006/jagm.1995.1038 1295:computational geometry 1279: 1237: 1172: 1131: 1075: 1004: 957: 910: 848: 802: 738: 699:asymptotically optimal 691: 629: 600: 547: 485: 434: 382: 319: 278: 262:axis-aligned rectangle 254: 234: 213: 65:computational geometry 21: 1726:10.1145/197405.197408 1713:ACM Computing Surveys 1637:Journal of Algorithms 1440:10.1145/358841.358850 1394:10.1145/361002.361007 1280: 1238: 1173: 1132: 1076: 1030:is known in advance, 1005: 958: 911: 849: 803: 739: 708:, Kasper Larsen, and 692: 630: 601: 548: 486: 435: 383: 320: 279: 255: 235: 211: 73:computer-aided design 19: 1247: 1195: 1141: 1085: 1047: 967: 922: 858: 814: 748: 737:{\displaystyle O(n)} 719: 639: 628:{\displaystyle O(n)} 610: 575: 565:model of computation 503: 497:fractional cascading 444: 396: 329: 318:{\displaystyle O(n)} 300: 268: 244: 224: 1613:10.1007/BF01840386 1556:; Larsen, Kasper; 1275: 1233: 1168: 1127: 1071: 1000: 953: 906: 844: 798: 734: 687: 681: 625: 596: 543: 481: 430: 378: 315: 274: 250: 230: 214: 44:. For example, if 22: 1495:Chazelle, Bernard 1348:Chazelle, Bernard 680: 361: 277:{\displaystyle k} 253:{\displaystyle d} 233:{\displaystyle n} 164:semigroup version 1763: 1736: 1699: 1688: 1664: 1663: 1661: 1631: 1625: 1624: 1596: 1584: 1578: 1577: 1575: 1550: 1544: 1543: 1533: 1527: 1526: 1516: 1491: 1485: 1484: 1459: 1453: 1452: 1442: 1413: 1407: 1406: 1396: 1367: 1361: 1360: 1336: 1284: 1282: 1281: 1276: 1265: 1264: 1242: 1240: 1239: 1234: 1223: 1222: 1213: 1212: 1177: 1175: 1174: 1169: 1136: 1134: 1133: 1128: 1080: 1078: 1077: 1072: 1009: 1007: 1006: 1001: 962: 960: 959: 954: 943: 942: 915: 913: 912: 907: 853: 851: 850: 845: 807: 805: 804: 799: 788: 787: 766: 765: 743: 741: 740: 735: 696: 694: 693: 688: 686: 682: 679: 662: 651: 634: 632: 631: 626: 605: 603: 602: 597: 569:Bernard Chazelle 552: 550: 549: 544: 527: 526: 490: 488: 487: 482: 471: 470: 439: 437: 436: 431: 414: 413: 387: 385: 384: 379: 377: 376: 364: 363: 362: 354: 341: 340: 324: 322: 321: 316: 283: 281: 280: 275: 259: 257: 256: 251: 239: 237: 236: 231: 26:computer science 1771: 1770: 1766: 1765: 1764: 1762: 1761: 1760: 1756:Database theory 1741: 1740: 1697: 1673: 1671:Further reading 1668: 1667: 1632: 1628: 1594: 1585: 1581: 1558:Pătrașcu, Mihai 1551: 1547: 1534: 1530: 1523:10.1137/0217026 1514:10.1.1.133.9153 1492: 1488: 1481:10.1137/0214019 1460: 1456: 1414: 1410: 1368: 1364: 1337: 1333: 1328: 1311: 1291: 1260: 1256: 1248: 1245: 1244: 1218: 1214: 1208: 1204: 1196: 1193: 1192: 1184: 1142: 1139: 1138: 1086: 1083: 1082: 1048: 1045: 1044: 1024: 968: 965: 964: 938: 934: 923: 920: 919: 859: 856: 855: 815: 812: 811: 783: 779: 761: 757: 749: 746: 745: 720: 717: 716: 706:Timothy M. Chan 663: 652: 649: 645: 640: 637: 636: 611: 608: 607: 606:query time and 576: 573: 572: 558:pointer machine 516: 512: 504: 501: 500: 460: 456: 445: 442: 441: 409: 405: 397: 394: 393: 372: 371: 353: 346: 342: 336: 335: 330: 327: 326: 301: 298: 297: 292:to achieve (in 269: 266: 265: 245: 242: 241: 225: 222: 221: 206: 201: 199:Data structures 160:emptiness query 148:reporting query 144:range reporting 85: 61:data structures 30:range searching 12: 11: 5: 1769: 1759: 1758: 1753: 1739: 1738: 1720:(4): 421–461, 1704:Matoušek, Jiří 1700: 1695: 1679:Overmars, Mark 1672: 1669: 1666: 1665: 1644:(2): 282–317. 1626: 1607:(2): 215–241. 1588:Mehlhorn, Kurt 1579: 1545: 1528: 1507:(3): 427–462. 1486: 1475:(1): 232–253. 1454: 1433:(4): 214–229. 1408: 1387:(9): 509–517. 1362: 1352:Goodman, Jacob 1340:Agarwal, P. K. 1330: 1329: 1327: 1324: 1323: 1322: 1317: 1310: 1307: 1290: 1287: 1274: 1271: 1268: 1263: 1259: 1255: 1252: 1232: 1229: 1226: 1221: 1217: 1211: 1207: 1203: 1200: 1183: 1180: 1167: 1164: 1161: 1158: 1155: 1152: 1149: 1146: 1126: 1123: 1120: 1117: 1114: 1111: 1108: 1105: 1102: 1099: 1096: 1093: 1090: 1070: 1067: 1064: 1061: 1058: 1055: 1052: 1023: 1020: 1012: 1011: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 952: 949: 946: 941: 937: 933: 930: 927: 917: 905: 902: 899: 896: 893: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 843: 840: 837: 834: 831: 828: 825: 822: 819: 809: 797: 794: 791: 786: 782: 778: 775: 772: 769: 764: 760: 756: 753: 733: 730: 727: 724: 710:Mihai Pătrașcu 685: 678: 675: 672: 669: 666: 661: 658: 655: 648: 644: 624: 621: 618: 615: 595: 592: 589: 586: 583: 580: 542: 539: 536: 533: 530: 525: 522: 519: 515: 511: 508: 480: 477: 474: 469: 466: 463: 459: 455: 452: 449: 429: 426: 423: 420: 417: 412: 408: 404: 401: 375: 370: 367: 360: 357: 352: 349: 345: 339: 334: 314: 311: 308: 305: 294:Big O notation 273: 249: 229: 205: 202: 200: 197: 196: 195: 192: 182: 156:counting query 152:range counting 140: 117: 84: 81: 9: 6: 4: 3: 2: 1768: 1757: 1754: 1752: 1749: 1748: 1746: 1735: 1731: 1727: 1723: 1719: 1715: 1714: 1709: 1705: 1701: 1698: 1696:3-540-65620-0 1692: 1687: 1686: 1680: 1675: 1674: 1660: 1655: 1651: 1647: 1643: 1639: 1638: 1630: 1622: 1618: 1614: 1610: 1606: 1602: 1601: 1593: 1589: 1583: 1574: 1569: 1565: 1564: 1559: 1555: 1554:Chan, Timothy 1549: 1541: 1540: 1532: 1524: 1520: 1515: 1510: 1506: 1502: 1501: 1496: 1490: 1482: 1478: 1474: 1470: 1469: 1464: 1458: 1450: 1446: 1441: 1436: 1432: 1428: 1427: 1422: 1418: 1412: 1404: 1400: 1395: 1390: 1386: 1382: 1381: 1376: 1372: 1366: 1358: 1353: 1349: 1345: 1341: 1335: 1331: 1321: 1318: 1316: 1313: 1312: 1306: 1304: 1300: 1299:range queries 1296: 1286: 1269: 1266: 1261: 1257: 1250: 1227: 1224: 1219: 1215: 1209: 1205: 1198: 1189: 1179: 1162: 1159: 1156: 1153: 1150: 1144: 1121: 1118: 1115: 1112: 1109: 1106: 1103: 1100: 1097: 1094: 1088: 1065: 1062: 1059: 1056: 1050: 1042: 1038: 1037:Kurt Mehlhorn 1033: 1029: 1019: 1017: 994: 991: 988: 985: 982: 979: 976: 970: 947: 944: 939: 935: 931: 925: 918: 900: 897: 894: 891: 888: 885: 882: 879: 876: 873: 870: 867: 861: 838: 835: 832: 829: 826: 823: 817: 810: 792: 789: 784: 780: 776: 773: 770: 767: 762: 758: 751: 728: 722: 715: 714: 713: 711: 707: 702: 700: 683: 676: 673: 670: 667: 664: 659: 656: 653: 646: 642: 619: 613: 590: 587: 584: 578: 570: 566: 563: 559: 554: 537: 534: 531: 528: 523: 520: 517: 513: 506: 498: 494: 475: 472: 467: 464: 461: 457: 453: 447: 424: 421: 418: 415: 410: 406: 399: 391: 368: 365: 358: 355: 350: 347: 343: 332: 309: 303: 295: 291: 287: 271: 263: 247: 227: 219: 210: 193: 190: 186: 183: 180: 176: 172: 169: 165: 161: 157: 153: 149: 145: 141: 138: 134: 130: 126: 122: 118: 115: 111: 107: 106:line segments 103: 99: 95: 91: 90: 89: 80: 78: 74: 70: 66: 62: 57: 55: 51: 47: 43: 39: 35: 31: 27: 18: 1717: 1711: 1684: 1641: 1635: 1629: 1604: 1600:Algorithmica 1598: 1582: 1561: 1548: 1537: 1531: 1504: 1498: 1489: 1472: 1466: 1463:Willard, Dan 1457: 1430: 1424: 1417:Bentley, Jon 1411: 1384: 1378: 1371:Bentley, Jon 1365: 1355: 1334: 1292: 1289:Applications 1285:query time. 1185: 1027: 1025: 1013: 703: 555: 220:consists of 217: 215: 188: 178: 174: 163: 159: 155: 151: 147: 96:consists of 93: 86: 58: 45: 41: 37: 33: 29: 23: 1320:Range query 1188:categorical 1043:to achieve 493:Dan Willard 390:range trees 286:Jon Bentley 168:commutative 1745:Categories 1542:: 558–568. 1326:References 1315:Range tree 1243:space and 1081:space and 1010:query time 916:query time 808:query time 325:space and 240:points in 129:halfspaces 83:Variations 75:(CAD) and 54:longitudes 1573:1103.5510 1509:CiteSeerX 1303:databases 1267:⁡ 1225:⁡ 1154:⁡ 1113:⁡ 1107:⁡ 1098:⁡ 1063:⁡ 986:⁡ 980:⁡ 945:⁡ 940:ϵ 898:⁡ 892:⁡ 877:⁡ 871:⁡ 836:⁡ 830:⁡ 790:⁡ 785:ϵ 768:⁡ 763:ϵ 674:⁡ 668:⁡ 657:⁡ 588:⁡ 529:⁡ 521:− 473:⁡ 465:− 416:⁡ 351:− 171:semigroup 125:simplices 77:databases 50:latitudes 1734:17729301 1706:(1994), 1566:: 1–10. 1419:(1980). 1403:13091446 1373:(1975). 1309:See also 1016:infinity 562:word RAM 290:k-d tree 114:polygons 1621:7721690 1449:3997186 1357:College 1032:dynamic 963:space, 854:space, 744:space, 288:used a 185:Dynamic 137:circles 133:spheres 71:(GIS), 1732:  1693:  1619:  1511:  1447:  1401:  158:. The 131:, and 98:points 28:, the 1730:S2CID 1617:S2CID 1595:(PDF) 1568:arXiv 1445:S2CID 1399:S2CID 1346:, in 110:boxes 102:lines 42:range 1691:ISBN 166:, a 52:and 1722:doi 1654:hdl 1646:doi 1609:doi 1519:doi 1477:doi 1435:doi 1389:doi 1301:in 1258:log 1216:log 1151:log 1110:log 1104:log 1095:log 1060:log 983:log 977:log 936:log 895:log 889:log 874:log 868:log 833:log 827:log 781:log 759:log 671:log 665:log 654:log 585:log 553:. 514:log 458:log 407:log 24:In 1747:: 1728:, 1718:26 1716:, 1710:, 1652:. 1642:19 1640:. 1615:. 1603:. 1597:. 1517:. 1505:17 1503:. 1473:14 1471:. 1443:. 1431:23 1429:. 1423:. 1397:. 1385:18 1383:. 1377:. 1350:; 701:. 491:. 296:) 284:, 127:, 112:, 108:, 104:, 100:, 79:. 56:. 1737:. 1724:: 1662:. 1656:: 1648:: 1623:. 1611:: 1605:5 1576:. 1570:: 1525:. 1521:: 1483:. 1479:: 1451:. 1437:: 1405:. 1391:: 1273:) 1270:n 1262:2 1254:( 1251:O 1231:) 1228:n 1220:2 1210:2 1206:n 1202:( 1199:O 1166:) 1163:k 1160:+ 1157:n 1148:( 1145:O 1125:) 1122:k 1119:+ 1116:n 1101:n 1092:( 1089:O 1069:) 1066:n 1057:n 1054:( 1051:O 1028:S 998:) 995:k 992:+ 989:n 974:( 971:O 951:) 948:n 932:n 929:( 926:O 904:) 901:n 886:k 883:+ 880:n 865:( 862:O 842:) 839:n 824:n 821:( 818:O 796:) 793:n 777:k 774:+ 771:n 755:( 752:O 732:) 729:n 726:( 723:O 684:) 677:n 660:n 647:( 643:O 623:) 620:n 617:( 614:O 594:) 591:n 582:( 579:O 541:) 538:k 535:+ 532:n 524:1 518:d 510:( 507:O 479:) 476:n 468:1 462:d 454:n 451:( 448:O 428:) 425:k 422:+ 419:n 411:d 403:( 400:O 374:) 369:k 366:+ 359:d 356:1 348:1 344:n 338:( 333:O 313:) 310:n 307:( 304:O 272:k 248:d 228:n 218:S 189:S 179:S 175:S 173:( 139:. 135:/ 94:S 46:S 38:S 34:S

Index


computer science
latitudes
longitudes
data structures
computational geometry
geographical information systems
computer-aided design
databases
points
lines
line segments
boxes
polygons
axis-aligned rectangles
simplices
halfspaces
spheres
circles
range reporting
commutative
semigroup
Dynamic

axis-aligned rectangle
Jon Bentley
k-d tree
Big O notation
range trees
Dan Willard

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