Jump to content

Поиск диапазона

Симплексный поиск диапазона.

В информатике состоит проблема поиска диапазона из обработки набора S объектов, чтобы определить, какие объекты из S пересекаются с объектом запроса, называемым диапазоном . Например, если S — набор точек, соответствующих координатам нескольких городов, найдите подмножество городов в заданном диапазоне широт и долгот .

Проблема поиска диапазона и структуры данных , которые ее решают, являются фундаментальной темой вычислительной геометрии . Приложения проблемы возникают в таких областях, как географические информационные системы (ГИС), системы автоматизированного проектирования (САПР) и базы данных .

Вариации [ править ]

Существует несколько вариантов проблемы, и для разных вариантов могут потребоваться разные структуры данных. [1] Для получения эффективного решения необходимо указать несколько аспектов проблемы:

  • Типы объектов: Алгоритмы зависят от того, состоит ли S из точек , линий , отрезков линий , прямоугольников , многоугольников .... Самыми простыми и наиболее изученными объектами для поиска являются точки.
  • Типы диапазонов. Диапазоны запроса также необходимо выбирать из заранее определенного набора. Некоторые хорошо изученные наборы диапазонов и названия соответствующих задач — это прямоугольники, выровненные по осям (поиск ортогонального диапазона), симплексы , полупространства и сферы / круги .
  • Типы запросов. Если необходимо сообщить список всех объектов, пересекающих диапазон запроса, проблема называется отчетом о диапазоне , а запрос называется запросом отчета . Иногда требуется только количество объектов, пересекающих диапазон. В этом случае задача называется подсчетом диапазона , а запрос называется подсчетным запросом . Запрос на пустоту сообщает, существует ли хотя бы один объект, пересекающий диапазон. В полугрупповом варианте полугруппа коммутативная . ( S указывается ,+), каждой точке присваивается вес из S и требуется сообщить полугрупповую сумму весов точек, пересекающих диапазон
  • Поиск в динамическом диапазоне и поиск в статическом диапазоне: в статических настройках набор S известен заранее. При динамической настройке объекты могут быть вставлены или удалены между запросами.
  • Автономный поиск по диапазону: заранее известен как набор объектов, так и весь набор запросов.

Структуры данных [ править ]

Поиск ортогонального диапазона [ править ]

Запрос двумерного ортогонального диапазона. В этом случае запрос отчета о диапазоне вернет две точки в кружках, запрос подсчета диапазона вернет 2, а запрос на пустоту вернет false.

При поиске ортогонального диапазона набор S состоит из указывает на измерения, а запрос состоит из интервалов в каждом из этих измерений. Таким образом, запрос состоит из многомерного прямоугольника, выровненного по оси . С выходным размером , Джон Бентли использовал дерево kd для достижения (в нотации Big O ) пространство и время запроса. [2] Бентли также предложил использовать деревья диапазонов , что позволило сократить время запроса. но увеличилось пространство для . [3] Дэн Уиллард использовал нисходящие указатели — особый случай дробного каскадирования, чтобы еще больше сократить время запроса. . [4]

Хотя вышеуказанные результаты были достигнуты в модели указателя , дальнейшие улучшения были сделаны в словном ОЗУ модели вычислений в в малых размерностях (2D, 3D, 4D). Бернар Шазель использовал сжатие деревьев диапазонов для достижения время запроса и место для подсчета дальности. [5] Джозеф ДжаДжа и другие позже улучшили время запроса до для подсчета диапазона, который соответствует нижней границе и, таким образом, является асимптотически оптимальным . [6]

По состоянию на 2015 год лучшие результаты (в малых измерениях (2D, 3D, 4D)) для отчетов о диапазонах, найденные Тимоти М. Чаном , Каспером Ларсеном и Михаем Патрашку , также с использованием сжатых деревьев диапазонов в модели вычислений Word RAM: одно из следующих: [7]

  • космос, время запроса
  • космос, время запроса
  • космос, время запроса

В ортогональном случае, если одна из границ равна бесконечности , запрос называется трёхсторонним. Если две границы бесконечны, запрос является двусторонним, а если ни одна из границ не бесконечна, то запрос является четырехсторонним.

Поиск в динамическом диапазоне [ править ]

В то время как при поиске в статическом диапазоне набор S известен заранее, поиск в динамическом диапазоне, вставка и удаление точек разрешены. В инкрементной версии проблемы разрешены только вставки, тогда как в декрементной версии разрешены только удаления. Для ортогонального случая Курт Мельхорн и Стефан Нэхер создали структуру данных для поиска в динамическом диапазоне, которая использует динамическое дробное каскадирование для достижения пространство и время запроса. [8] Как инкрементные, так и декрементные версии проблемы могут быть решены с помощью время запроса, но неизвестно, можно ли выполнить общий поиск в динамическом диапазоне за это время запроса.

Поиск цветового диапазона [ править ]

Задача подсчета цветных диапазонов рассматривает случай, когда точки имеют категориальные атрибуты. Если категории рассматриваются как цвета точек в геометрическом пространстве, то запрос заключается в том, сколько цветов встречается в определенном диапазоне. Просенджит Гупта и другие описали структуру данных в 1995 году, которая позволяла решать двумерный подсчет ортогональных цветных диапазонов в пространство и время запроса. [9]

Приложения [ править ]

Помимо рассмотрения в вычислительной геометрии , поиске диапазона и, в частности, поиске ортогонального диапазона, он имеет приложения для запросов диапазона в базах данных . Поиск по цветовому диапазону также используется и мотивируется поиском по категориальным данным. Например, определение строк в базе данных банковских счетов, которые представляют людей в возрасте от 25 до 40 лет и имеющих от 10 000 до 20 000 долларов США, может быть проблемой отчетности по ортогональному диапазону, где возраст и деньги являются двумя измерениями.

См. также [ править ]

Ссылки [ править ]

  1. ^ Агарвал, ПК ; Эриксон, Дж. (1999), «Поиск геометрического диапазона и его родственники» , в Шазель, Бернар ; Гудман, Джейкоб ; Поллак, Ричард (ред.), Достижения в дискретной и вычислительной геометрии: материалы совместной летней исследовательской конференции AMS-IMS-SIAM 1996 г. «Дискретная и вычислительная геометрия - десять лет спустя», 14-18 июля 1996 г., Колледж Маунт-Холиок , Современная математика, вып. 223, Издательство Американского математического общества, стр. 1–56.
  2. ^ Бентли, Джон (1975). «Многомерные двоичные деревья поиска, используемые для ассоциативного поиска» . Коммуникации АКМ . 18 (9): 509–517. дои : 10.1145/361002.361007 . S2CID   13091446 .
  3. ^ Бентли, Джон (1980). «Многомерный принцип «разделяй и властвуй» . Коммуникации АКМ . 23 (4): 214–229. дои : 10.1145/358841.358850 . S2CID   3997186 .
  4. ^ Уиллард, Дэн (1985). «Новые структуры данных для запросов ортогональных диапазонов». SIAM Journal по вычислительной технике . 14 (1): 232–253. дои : 10.1137/0214019 .
  5. ^ Шазель, Бернар (1988). «Функциональный подход к структурам данных и его использование в многомерном поиске». SIAM Journal по вычислительной технике . 17 (3): 427–462. CiteSeerX   10.1.1.133.9153 . дои : 10.1137/0217026 .
  6. ^ ДжаДжа, Джозеф; Мортенсен, Кристиан; Ши, Цинминь (2005). «Экономичные и быстрые алгоритмы для многомерного отчета и подсчета доминирования». Международный симпозиум по алгоритмам и вычислениям : 558–568.
  7. ^ Чан, Тимоти ; Ларсен, Каспер; Патрашку, Михай (2011). «Поиск ортогонального диапазона в оперативной памяти, еще раз». Симпозиум по вычислительной геометрии : 1–10. arXiv : 1103.5510 .
  8. ^ Мельхорн, Курт ; Нэхер, Стефан (1990). «Динамический дробный каскад» (PDF) . Алгоритмика . 5 (2): 215–241. дои : 10.1007/BF01840386 . S2CID   7721690 .
  9. ^ Гупта, Просенджит; Джанардан, Рави; Смид, Мишель (1995). «Дальнейшие результаты по обобщенным задачам поиска пересечений: подсчет, отчетность и динамизация». Журнал алгоритмов . 19 (2): 282–317. дои : 10.1006/jagm.1995.1038 . hdl : 11858/00-001M-0000-0014-B721-F .

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 73db886437a74115012cc382d1707027__1703958960
URL1:https://arc.ask3.ru/arc/aa/73/27/73db886437a74115012cc382d1707027.html
Заголовок, (Title) документа по адресу, URL1:
Range searching - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)