В информатике сжатый массив суффиксов [1] [2] [3] — это сжатая структура данных для сопоставления с образцом . Сжатые массивы суффиксов — это общий класс структур данных , которые улучшают массив суффиксов . [1] [2] Эти структуры данных позволяют быстро искать произвольную строку со сравнительно небольшим индексом.
При наличии текста T из n символов из алфавита Σ сжатый массив суффиксов поддерживает поиск произвольных шаблонов в T . Для входного шаблона P из m символов время поиска обычно составляет O( m ) или O( m + log( n )). Используемое пространство обычно составляет , где — эмпирическая энтропия k-го порядка текста T . Время и пространство для построения сжатого массива суффиксов обычно составляют .
Первоначальное представление сжатого массива суффиксов [1] решило давнюю открытую проблему, показав, что быстрое сопоставление с образцом возможно с использованием только линейной структуры данных, а именно, пропорциональной размеру текста T , которая занимает биты. Обычный массив суффиксов и дерево суффиксов используют биты, что существенно больше. Основой структуры данных является рекурсивное разложение с использованием «функции соседа», которая позволяет представить массив суффиксов одним из половины его длины. Построение повторяется несколько раз, пока результирующий массив суффиксов не будет использовать линейное число битов. Последующая работа показала, что фактическое пространство хранения связано с энтропией -порядка и что индекс поддерживает самоиндексацию. [4] Ограничение пространства было дополнительно улучшено для достижения конечной цели энтропии более высокого порядка; сжатие достигается путем разбиения функции соседа контекстами более высокого порядка и сжатия каждого раздела с помощью вейвлет-дерева . [3] Использование пространства на практике чрезвычайно конкурентоспособно по сравнению с другими современными компрессорами, [5] а также поддерживает быстрое сопоставление образцов на месте .
Доступ к памяти, осуществляемый сжатыми массивами суффиксов и другими сжатыми структурами данных для сопоставления с образцом, как правило, не локализован, и поэтому эти структуры данных, как известно, трудно эффективно проектировать для использования во внешней памяти . Недавний прогресс с использованием геометрической дуальности использует преимущество блочного доступа, предоставляемого дисками, для значительного ускорения времени ввода-вывода [6]. Кроме того, была продемонстрирована потенциально практическая производительность поиска для сжатого массива суффиксов во внешней памяти. [7]
Существует несколько реализаций сжатых массивов суффиксов с открытым исходным кодом (см. Внешние ссылки ниже). Bowtie и Bowtie2 — это реализации сжатых массивов суффиксов с открытым исходным кодом для выравнивания чтения, предназначенные для использования в биоинформатике . Библиотека структур данных Succinct (SDSL) — это библиотека, содержащая множество сжатых структур данных, включая сжатые массивы суффиксов. FEMTO — это реализация сжатых массивов суффиксов для внешней памяти. Кроме того, множество реализаций, включая оригинальные реализации FM-индекса , доступны на веб-сайте Pizza & Chili (см. внешние ссылки).
Реализации: