Концептуально простые конструкции дерева суффиксов с линейным временем

13

В 1973 году Вайнер дал первое линейное построение суффиксных деревьев. Алгоритм был упрощен в 1976 году МакКрейтом, а в 1995 году - Укконеном. Тем не менее, я нахожу алгоритм Укконена относительно концептуально задействованным.

Были ли упрощения алгоритма Укконена с 1995 года?

Randomblue
источник
4
Фарач и др. 1998. Я думаю, что это хорошее место, чтобы начать читать: scholar.google.co.uk/…
Radu GRIGore

Ответы:

9

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

Обратите внимание, что существует более чем концептуальная эквивалентность между этими двумя структурами данных, поскольку вы можете использовать массив суффиксов (со временем для запроса самого длинного общего префикса) для построения эквивалентного дерева суффиксов. Это должно быть относительно простое упражнение, но я могу дать более подробную информацию, если потребуется.О(1)

О(NЛ.Г.N)

zotachidil
источник
1
Не могли бы вы дать указатель на более простой способ построения массивов суффиксов за O (N lg N) времени?
Randomblue
1
Пометьте все суффиксы длины 2 ^ k целым числом, чтобы метки соответствовали порядку отношений между суффиксами. Первый шаг (k = 0) очевиден. Чтобы вычислить метки на шаге k, используйте метки на шаге k-1 и выполните радикальную сортировку. Этот документ должен быть легким для понимания: webglimpse.net/pubs/suffix.pdf
zotachidil
7

В дополнение к тому, что было упомянуто ( Kärkkäinen & Sanders, 2003 ), я думаю, вы по достоинству оцените «более новую» версию Kärkkäinen, Sanders and Burkhard, 2006 . Алгоритм в основном соответствует структуре алгоритма Фараха. Возможно, это концептуально проще, но реальным преимуществом является то, что они предоставляют читателю реализацию алгоритма. Это всего около 50 строк C ++, так что в действительности нет никаких скрытых деталей.

Юхо
источник