Последовательное точное сравнение строк: различия между версиями

Перейти к навигации Перейти к поиску
мНет описания правки
 
(не показаны 3 промежуточные версии 1 участника)
Строка 18: Строка 18:




'''Теорема 1 (Коул и коллеги, 1995 [3]). Минимальное количество сравнений символов для решения задачи ESM в наихудшем случае оказывается больше или равно n + 9/(4m)(n - m) и может быть сделано меньше или равно n + 8/(3(m + 1))(n - m).'''
'''Теорема 1 (Коул и др., 1995 [3]). Минимальное количество сравнений символов для решения задачи ESM в наихудшем случае оказывается больше или равно n + 9/(4m)(n - m) и может быть сделано меньше или равно n + 8/(3(m + 1))(n - m).'''




Строка 32: Строка 32:




Поиск можно осуществить с использованием реализованного детерминированного конечного автомата с поиском потомка по умолчанию <math>\mathcal{D}(P)</math>, распознающего язык <math>\Sigma * P</math>. Размер реализации  составляет O(m) и не зависит от размера алфавита в силу того, что автомат <math>\mathcal{D}(P)</math> имеет m + 1 состояний, m прямых дуг и не более m обратных дуг. Использование конечного автомата для поиска в тексте позволяет получить алгоритм с эффективной задержкой (представляющей собой максимальное время обработки символа текста).
Поиск можно осуществить с использованием реализованного детерминированного конечного автомата с поиском потомка по умолчанию <math>\mathcal{D}(P)</math>, распознающего язык <math>\Sigma^* P</math>. Размер реализации  составляет O(m) и не зависит от размера алфавита в силу того, что автомат <math>\mathcal{D}(P)</math> имеет m + 1 состояний, m прямых дуг и не более m обратных дуг. Использование конечного автомата для поиска в тексте позволяет получить алгоритм с эффективной задержкой (представляющей собой максимальное время обработки символа текста).




Строка 69: Строка 69:




После первого решения Галила и Сейфераса другие варианты были предложены Крочмором и Перреном [6] и Риттером [6]. Алгоритмы разбивают шаблон на две части; вначале они выполняют поиск правой части шаблона слева направо, а затем, если не обнаружено несовпадений, ищут левую часть. Разбиение может представлять собой идеальную факторизацию [8] или критическую факторизацию [6] либо основываться на лексикографически максимальном суффиксе шаблона [13]. Еще одно решение Крочмора [2] представляет собой вариант KMP [11]: оно на лету вычисляет нижние границы периодов префиксов шаблона и не требует предварительной обработки.
После первого решения Галила и Сейфераса другие варианты были предложены Крочмором и Перреном [6] и Риттером [13]. Алгоритмы разбивают шаблон на две части; вначале они выполняют поиск правой части шаблона слева направо, а затем, если не обнаружено несовпадений, ищут левую часть. Разбиение может представлять собой идеальную факторизацию [8] или критическую факторизацию [6] либо основываться на лексикографически максимальном суффиксе шаблона [13]. Еще одно решение Крочмора [2] представляет собой вариант KMP [11]: оно на лету вычисляет нижние границы периодов префиксов шаблона и не требует предварительной обработки.




Строка 136: Строка 136:


15. Yao, A.: The complexity of pattern matching for a random string. SIAM J. Comput. 8,368-387 (1979)
15. Yao, A.: The complexity of pattern matching for a random string. SIAM J. Comput. 8,368-387 (1979)
[[Категория: Совместное определение связанных терминов]]

Навигация