Декомпозиция Линдона — различия между версиями
(→Основные определения) |
(→Основные определения) |
||
| Строка 1: | Строка 1: | ||
==Основные определения== | ==Основные определения== | ||
| + | Декомпозиция Линдона была изобретена Роджером Линдоном (англ. ''Roger Lyndon'') в 1954 году. Она используется для нахождения лексикографически минимального и максимального суффиксов строки. | ||
| + | |||
{{Определение | {{Определение | ||
|id=def1. | |id=def1. | ||
Версия 21:39, 1 мая 2014
Основные определения
Декомпозиция Линдона была изобретена Роджером Линдоном (англ. Roger Lyndon) в 1954 году. Она используется для нахождения лексикографически минимального и максимального суффиксов строки.
| Определение: |
| Простая строка — строка, которая строго лексикографически меньше любого своего суффикса. |
| Определение: |
| Декомпозиция Линдона (англ. Lyndon decomposition) строки — её разложение , где строки просты, и при этом . |
Существование и единственность
| Лемма: |
, — простые и лексикографически. Тогда:
1. 2. — простая |
| Доказательство: |
|
1. Так как , и , 2. Пусть — суффикс строки 1) 2) — суффикс . Так как — простая, 3) , . Так как — простая, и |
| Теорема: |
Можно построить декомпозицию Линдона любой строки , причем единственным образом. |
| Доказательство: |
|
1. Существование. Разобьем строку на символы. Будем их склеивать, если подряд идущие символы: . Так как символ — простая строка, по лемме — тоже простая и . Далее склеиваем строки, не удовлетворяющие условию . Это конечный процесс, так как длина строки конечна получим нужное разбиение. Пусть существует хотя бы одно разбиение строки на простые слова. Возьмем разбиение строки на простые слова (без условия ) такое, чтобы было минимально. Пусть в нем есть , тогда эти строки можно сконкатернировать получим разбиение с меньшим числом слов — противоречие с выбором . Получили: — минимально нет 2. Единственность. Пусть существует несколько разбиений , удовлетворяющих условию теоремы. Сравним длины первых двух слов и , если , сравним вторые и так далее. Если у всех слов длины одинаковы, то разбиения совпадают — противоречие. Иначе Покажем, что такого не может быть: 1) Пусть Тогда , где — префикс , Получаем: (так как простая и по определению меньше своего суффикса), (так как — префикс), (по условию разбиения), (их начало совпадает, и по предположению. Получили противоречие: . 2) Пусть — проверяется аналогично. То есть не может быть строк несовпадающей длины разбиения равны. |