В информатике, сжатый массив суффиксов - это сжатая структура данных для сопоставления с образцом. Сжатые массивы суффиксов - это общий класс структуры данных , улучшенный по сравнению с массивом суффиксов . Эти структуры данных позволяют быстро искать произвольную строку со сравнительно небольшим индексом.
Учитывая текст T из n символов из алфавита Σ, сжатый массив суффиксов поддерживает поиск произвольных шаблонов в T. Для входного шаблона P из m символов время поиска обычно составляет O (m) или O (т + журнал (п)). Обычно используется пространство , где - это эмпирическая энтропия k-го порядка текста T. Время и пространство для построения сжатый массив суффиксов обычно .
Первоначальное создание сжатого массива суффиксов решило давнюю открытую проблему, показав, что быстрое сопоставление с образцом возможно с использованием только линейного -пространственная структура данных, а именно, пропорциональная размеру текста T, которая принимает бит. Традиционный массив суффиксов и дерево суффиксов используют бит, который значительно больше. Основой для структуры данных является рекурсивная декомпозиция с использованием «функции соседа», которая позволяет представить массив суффиксов половиной своей длины. Построение повторяется несколько раз, пока в результирующем массиве суффиксов не будет использоваться линейное количество битов. Последующие исследования показали, что фактическое пространство для хранения связано с энтропией нулевого порядка и что индекс поддерживает самоиндексирование. Ограничение по объему было дополнительно улучшено для достижения конечной цели энтропии более высокого порядка; сжатие достигается путем разделения функции соседа по контекстам высокого порядка и сжатия каждого раздела с помощью вейвлет-дерева. Использование пространства на практике является чрезвычайно конкурентоспособным по сравнению с другими современными компрессорами, а также поддерживает быстрое сопоставление с образцом.
Доступы к памяти, осуществляемые сжатыми массивами суффиксов и другими сжатыми структурами данных для сопоставления с образцом, обычно не локализованы, и, таким образом, эти структуры данных, как известно, было сложно эффективно спроектировать для использования во внешней памяти. Недавний прогресс в использовании геометрической двойственности использует преимущества блочного доступа, предоставляемого дисками, для значительного ускорения времени ввода-вывода. Кроме того, была продемонстрирована потенциально практическая производительность поиска для сжатого массива суффиксов во внешней памяти.
Доступно несколько реализаций с открытым исходным кодом сжатых массивов суффиксов (см. Внешние Ссылки ниже). Bowtie и Bowtie2 - это реализации сжатого массива суффиксов с открытым исходным кодом выравнивания чтения для использования в биоинформатике. Библиотека кратких структур данных (SDSL) - это библиотека, содержащая множество сжатых структур данных, включая сжатые массивы суффиксов. FEMTO - это реализация сжатых массивов суффиксов для внешней памяти. Кроме того, на веб-сайте Pizza Chili доступны различные реализации, включая оригинальные реализации FM-index (см. Внешние ссылки).
Реализации: