Три были первой структурой данных такого рода.
Дерево суффикса является улучшением по сравнению с trie (оно имеет суффиксные ссылки, которые позволяют осуществлять поиск по линейной ошибке, дерево суффиксов обрезает ненужные ветви trie, поэтому для этого не требуется столько места).
Суффикс-массив - это урезанная структура данных, основанная на дереве суффиксов (без суффиксных ссылок (медленное совпадение ошибок), но совпадение шаблонов очень быстро).
Trie не для использования в реальном мире, потому что он потребляет слишком много места.
Дерево суффиксов легче и быстрее, чем trie, и используется для индексации ДНК или оптимизации некоторых крупных поисковых систем.
Суффикс-массив медленнее в некоторых поисках шаблонов, чем дерево суффикса, но использует меньше места и более широко используется, чем дерево суффикса.
В том же семействе структур данных:
Есть и другие варианты реализации, ДКБ является реализация дерева суффиксов с использованием массива суффиксов и некоторые дополнительные структуры данных, чтобы получить некоторые из возможностей поиска суффикса дерева.
FCST берет его дальше, он реализует семантику суффикса с суффиксом с массивом суффикса.
DFCST - это динамическая версия FCST.
Расширение:
Двумя важными факторами являются использование пространства и времени выполнения операции. Вы можете подумать, что в современных машинах это не актуально, но для индексации ДНК одного человека потребуется 40 гигабайт памяти (с использованием несжатого и неоптимизированного дерева суффикса). И построить один из этих индексов над этим большим количеством данных может занять несколько дней. Представьте, Google, у него много доступных для поиска данных, им нужен большой индекс по всем веб-данным, и они не меняют его каждый раз, когда кто-то создает веб-страницу. Для этого у них есть какая-то форма кэширования. Однако основной индекс, вероятно, статичен. И каждые две недели они собирают все новые веб-сайты и данные и строят новый индекс, заменяя старый, когда новый закончен. Я не знаю, какой алгоритм они используют для индексации, но это, вероятно, массив суффикса с свойствами дерева суффикса по многораздельной базе данных.
В CST используется 8 гигабайт, однако скорость операций с деревом суффиксов сильно уменьшается.
Суффикс-массив может делать то же самое в некоторых 700 мегаватах до 2 гига. Однако вы не найдете генетических ошибок в ДНК с массивом суффикса (то есть: поиск шаблона с подстановочным знаком намного медленнее).
FCST (полностью сжатое суффиксное дерево) может создать дерево суффикса в 800-150 гигабайт. С довольно небольшим ухудшением скорости в сторону КНТ.
DFCST использует на 20% больше пространства, чем FCST, и теряет скорость до статической реализации FCST (однако динамический индекс очень важен).
Существует не так много жизнеспособных (пространственных) реализаций дерева суффиксов, потому что очень сложно сделать ускорение скорости операции, компенсируя затраты на объем оперативной памяти.
Это говорит о том, что дерево суффикса имеет очень интересные результаты поиска для сопоставления шаблонов с ошибками. Aho corasick не так быстро (хотя и почти так же быстро для некоторых операций, а не для соответствия ошибкам), а боярский лес остался в пыли.
Лучшая производительность для каких операций? –