Изменения

Перейти к: навигация, поиск

Алгоритм Укконена

Нет изменений в размере, 09:19, 1 мая 2015
м
Нет описания правки
|statement=
Для любой внутренней вершины <tex>v</tex> суффиксного дерева существует суффиксная ссылка, ведущая в некоторую внутреннюю вершину <tex>u</tex>.
[[Файл:ExampleUkkonen8.png|400px|thumb|center|Пример суффиксных ссылок.]]
|proof=
Рассмотрим внутренную вершину <tex>v</tex> с путевой меткой <tex>s[j..i]</tex>. Так как эта вершина внутренняя, ее путевая метка ветвится справа в исходной строке. Тогда очевидно подстрока <tex>s[j+1..i]</tex> тоже ветвится справа в исходной строке, и ей соответствует некоторая внутренняя вершина <tex>u</tex>. По определению суффиксная ссылка вершины <tex>v </tex> ведет в <tex> u</tex>
|statement=
При переходе по суффиксной ссылке глубина уменьшается не более чем на <tex>1</tex>.
[[Файл:ExampleUkkonen8.png|250px|thumb|center|Пример суффиксных ссылок.]]
|proof=
Пусть мы переходим из вершины <tex> v </tex> с путевой меткой <tex>s[j..i]</tex> по суффиксной ссылке в вершину <tex> u </tex> с путевой меткой <tex>s[j+1..i]</tex> Определим множество <tex> A </tex> как множество вершин на пути от корня до <tex> u </tex>, исключая корень. Множество <tex> B </tex> определим как множество вершин на пути от корня до <tex> v </tex>, исключая корень. Если длина первого ребра на пути от корня до <tex> v </tex> равна единице, то выкинем из множества <tex>B</tex> вершину, в которую ведет это ребро. Итого по построению получаем: <tex>|A| = d(u)</tex>, <tex>|B| \ge d(v) - 1</tex>. Теперь заметим, что суффиксная ссылка из любой вершины множества <tex>B</tex> ведет в некоторую вершину множества <tex> A</tex>, и очевидно суффиксные ссылки из разных вершин ведут в разные вершины, поэтому <tex>|A| \geqslant |B|</tex>, а значит <tex>d(u) \geqslant d(v) - 1</tex>
275
правок

Навигация