Jump to content

Дерево вейвлетов

Дерево вейвлетов на строке «абракадабра». В каждом узле символы строки проецируются на два раздела алфавита, а битовый вектор обозначает, какому разделу принадлежит каждый символ. Обратите внимание, что сохраняются только битовые векторы; строки в узлах предназначены только для иллюстративных целей.

Дерево вейвлетов — это краткая структура данных для хранения строк в сжатом пространстве. Он обобщает и операции, определенные над битовыми векторами, в произвольных алфавитах.

Первоначально представленный для представления сжатых суффиксных массивов , [1] он нашел применение в нескольких контекстах. [2] [3] Дерево определяется путем рекурсивного разделения алфавита на пары подмножеств; листья соответствуют отдельным символам алфавита, а в каждом узле битовый вектор хранит информацию о том, принадлежит ли символ строки к тому или иному подмножеству.

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

Характеристики

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

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

Если дерево сбалансировано, операции , , и может быть поддержан в время.

Операция доступа

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

Дерево вейвлетов содержит растровое представление строки. Если мы знаем набор алфавитов, то точную строку можно определить, отслеживая биты по дереву. Чтобы найти букву в i й позиция в строке: -

Algorithm access  Input:    - The position i in the string of which we want to know the letter, starting at 1.    - The top node W of the wavelet tree that represents the string  Output: The letter at position i
    if W.isLeafNode return W.letter    if W.bitvector[i] = 0 return access(i - rank(W.bitvector, i), W.left)    else return access(rank(W.bitvector, i), W.right)
  • « ←» означает присвоение . Например, « самый большой элемент » означает, что значение самого большого изменяется на значение элемента .
  • « return » завершает алгоритм и выводит следующее значение.

При этом ранг должности в битовом векторе это количество единиц, которые появляются в первом позиции . Поскольку ранг можно вычислить за O(1) с помощью кратких словарей , любой S[i] в ​​строке S можно получить в [3] время, пока дерево сбалансировано.

Расширения

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

В литературе было представлено несколько расширений базовой структуры. Чтобы уменьшить высоту дерева, вместо двоичных узлов можно использовать многоядерные. [2] Структуру данных можно сделать динамической, поддерживая вставку и удаление в произвольных точках строки; эта функция позволяет реализовать динамические FM-индексы . [4] Это можно далее обобщить, позволяя операциям обновления изменять базовый алфавит: вейвлет-трие. [5] использует древовидную структуру алфавита строк для обеспечения возможности динамической модификации дерева.

Дальнейшее чтение

[ редактировать ]
  1. ^ Р. Гросси, А. Гупта и Дж. С. Виттер, Текстовые индексы высокого порядка с энтропийным сжатием , Труды 14-го ежегодного симпозиума SIAM/ACM по дискретным алгоритмам (SODA) , январь 2003 г., 841-850.
  2. ^ Jump up to: а б П. Феррагина, Р. Джанкарло, Дж. Манзини, Мириады достоинств вейвлет-деревьев , Информация и вычисления , том 207, выпуск 8, август 2009 г., страницы 849-866
  3. ^ Jump up to: а б Дж. Наварро, Деревья вейвлетов для всех , Материалы 23-го ежегодного симпозиума по комбинаторному сопоставлению шаблонов (CPM) , 2012 г.
  4. ^ Х.-Л. Чан, В.-К. Достопочтенный, Т.-В. Лам и К. Садакане, Сжатые индексы для коллекций динамического текста , Транзакции ACM в алгоритмах , 3 (2), 2007 г.
  5. ^ Р. Гросси и Дж. Оттавиано, Вейвлет-три: поддержание индексированной последовательности строк в сжатом пространстве , В материалах 31-го симпозиума по принципам систем баз данных (PODS) , 2012 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fdd5abdbfb78b514b41cd6859d205a1c__1691575740
URL1:https://arc.ask3.ru/arc/aa/fd/1c/fdd5abdbfb78b514b41cd6859d205a1c.html
Заголовок, (Title) документа по адресу, URL1:
Wavelet Tree - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)