Jump to content

Бин (вычислительная геометрия)

Структура данных бина.
Гистограмма, упорядоченная по 100 000 ячеек.

В вычислительной геометрии интервал это структура данных , которая позволяет выполнять эффективные запросы к регионам. Каждый раз, когда точка данных попадает в интервал, частота этого интервала увеличивается на единицу. [1]

Например, если есть несколько прямоугольников, выровненных по осям на двумерной плоскости , структура может ответить на вопрос: «Данный прямоугольник запроса, какие прямоугольники его пересекают?» В примере на верхнем рисунке A, B, C, D, E и F являются существующими прямоугольниками, поэтому запрос с прямоугольником Q должен возвращать C, D, E и F , если мы определяем все прямоугольники как закрытые интервалы .

Структура данных разделяет область 2D-плоскости на ячейки одинакового размера . Ограничивающая рамка ячеек охватывает все прямоугольники- кандидаты, подлежащие запросу. Все ячейки расположены в виде 2D-массива. Все кандидаты также представлены в виде 2D-массивов. Размер массива кандидатов — это количество ячеек, которые он пересекает.

Например, на верхнем рисунке кандидат B имеет 6 элементов, расположенных в массиве 3 строки и 2 столбца, поскольку в таком расположении он пересекает 6 ячеек. Каждый контейнер содержит заголовок односвязного списка . Если кандидат пересекает корзину, он привязывается к связанному списку этой ячейки. Каждый элемент в массиве кандидатов является узлом связи в связанном списке соответствующего интервала.

Операции

[ редактировать ]

Из прямоугольника запроса Q мы можем узнать, с каким интервалом эффективно пересекается его нижний левый угол, просто вычитая нижний левый угол ограничивающей рамки интервала из нижнего левого угла Q и разделив результат на ширину и высоту интервала. соответственно. Затем мы можем перебрать интервалы Q, которые пересекаются, и проверить всех кандидатов в связанных списках этих интервалов. действительно ли он пересекает Q. Для каждого кандидата мы проверим , Если да, и если об этом не сообщалось ранее, то мы сообщаем об этом. Мы можем использовать соглашение, согласно которому мы сообщаем о кандидате только в первый раз, когда находим его. Это можно легко сделать, вырезав кандидата по прямоугольнику запроса и сравнив его левый нижний угол с текущим местоположением. Если совпадение, мы сообщаем, иначе пропускаем.

Вставка и удаление

[ редактировать ]

Вставка линейна в зависимости от количества ячеек, которые пересекает кандидат, поскольку вставка кандидата в 1 ячейку занимает постоянное время. Удаление обходится дороже, поскольку нам нужно искать в односвязном списке каждого интервала, с которым пересекается кандидат.

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

Эффективность и настройка

[ редактировать ]

Анализ аналогичен хеш-таблице . В худшем случае все кандидаты концентрируются в одном контейнере. Тогда запрос равен O( n ), удаление — O( n ), а вставка — O(1), где n — количество кандидатов. Если кандидаты расположены на равном расстоянии друг от друга, так что в каждом интервале имеется постоянное количество кандидатов, запрос равен O( k ), где k — количество интервалов, которые пересекает прямоугольник запроса. Вставка и удаление — это O( m ), где m — количество ячеек, которые пересекает вставляющий кандидат. На практике удаление происходит намного медленнее, чем вставка.

Как и хеш-таблица, эффективность bin во многом зависит от распределения местоположения и размера кандидатов и запросов. В общем, чем меньше прямоугольник запроса, тем эффективнее запрос. Размер подборки должен быть таким, чтобы в ней содержалось как можно меньше кандидатов, но при этом достаточно большим, чтобы кандидаты не охватывали слишком много подборок. Если кандидат охватывает множество интервалов, запрос должен пропускать этого кандидата снова и снова после того, как о нем сообщается в первом интервале пересечения. Например, на рисунке E посещается 4 раза в запросе Q , поэтому его нужно пропустить 3 раза.

Для дальнейшего ускорения запроса деления можно заменить сдвигом вправо . Для этого требуется, чтобы количество интервалов вдоль направления оси было показатель степени 2.

По сравнению с другими структурами данных запроса диапазона

[ редактировать ]

По сравнению с деревом k -d структура контейнера позволяет эффективно вставлять и удалять без необходимости повторной балансировки. Это может быть очень полезно в алгоритмах, которым необходимо постепенно добавлять фигуры в структуру поисковых данных.

  1. ^ Оптимизация поиска гармонии для HDR-брахитерапии простаты . 2008. ISBN  9780549534365 . Архивировано из оригинала 06 марта 2016 г. Проверено 12 января 2016 г.

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6e7f227577b3e9c73a7e588075f7d73d__1646979060
URL1:https://arc.ask3.ru/arc/aa/6e/3d/6e7f227577b3e9c73a7e588075f7d73d.html
Заголовок, (Title) документа по адресу, URL1:
Bin (computational geometry) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)