Изменения

Перейти к: навигация, поиск

Об ускорении поиска повторов ОСАМ-методом

504 байта добавлено, 23:08, 21 ноября 2011
м
Дальнейшие изыскания
** Либо отсечением кусков вариационного ряда по ассоциативному массиву. Для этого двоичным поиском находится положение минимального и максимального значения измерения искомой окрестности (c-ε, c+ε) в вариационном ряде по нужной координате, а потом участки вариационного ряда от «известного» до «найденного» максимального/минимального значения удаляются из результата. Под «известным» диапазоном понимается найденный на этапе обхода дерева. Технически — во временный массив по номерам элементов из этих участков вариационного ряда сохраняется «1», а фильтруемый набор одним проходом фильтруется с помощью проверки элементов временного массива. На самом деле, при многократном поиске временный массив можно не обнулять, а вместо «1» можно использовать увеличиваемый при каждом следующем поиска счётчик. Эта стратегия эффективна, если фильтруемый набор больше, чем сумма размеров удаляемых участков. Обычно это случается, либо если какое-то измерение почти ничего не фильтрует (то есть, если полный диапазон значений по этому измерению сопоставим с размером окрестности поиска), либо если просто найдено очень много элементов.
* С помощью этих мер достигается эффективность индекса в ситуации, когда пространственный размер массива данных относительно маленький, значимых измерений относительно немного, но при этом нет ограничения на полное число измерений.
 
== Дальнейшие изыскания ==
 
Новая идея, но это будет что-то типа гибрида KD- и M-дерева (K-D-M-дерево? :)). Т.е. юзать то же самое кд-дерево, но очень близкие элементы группировать в гиперкубики и индексировать их центры вместо самих элементов.
 
Можно даже тотально перейти в целые числа.

Навигация