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

Материал из WEGA
Перейти к навигации Перейти к поиску
(Новая страница: «== Ключевые слова и синонимы == Сравнение со словарем == Постановка задачи == Пусть дано кон…»)
 
Строка 3: Строка 3:


== Постановка задачи ==
== Постановка задачи ==
Пусть дано конечное множество строк шаблона P = fP1 ;P2 ; Pkg и текстовая строка T = t1t 2.. tn, где T и Pi представляют собой последовательности над алфавитом S размера a. Задача сравнения нескольких строк (multiple string matching, MSM) заключается в нахождении одной или, в общем случае, всех текстовых позиций, начиная с которых Pi входит в T; или, говоря более точно, в вычислении множества fj j 9i; Pi = tjtj+1  tj,+|j.i|_1g, или эквивалентного множества fj j 9i; Pi = fj_|pi|+i fj_|pi|+2  tjg. Отметим, что в случае выдачи всех вхождений шаблонов размер выходных данных может стать квадратичным (например, в случае, когда Pi и T берутся из однобуквенного алфавита). Обозначим длину самого короткого шаблона в P за imin. Предполагается, что шаблоны задаются в самом начале, после чего производится поиск их вхождения в нескольких текстах. Данная задача является расширением задачи точного сравнения строк.
Пусть даны конечное множество ''строк шаблона'' <math>\mathcal{P} = \{P^1, P^2, ..., Pk \}</math> и ''текстовая строка'' <math>T = t_1 t_2 ... t_n</math>, где <math>T</math> и <math>P^i</math> представляют собой последовательности над алфавитом <math>\Sigma</math> размера <math>\sigma</math>. Задача ''сравнения нескольких строк'' (multiple string matching, MSM) заключается в нахождении одной или, в общем случае, всех текстовых позиций, начиная с которых <math>P^i</math> входит в T; или, говоря более точно, в вычислении множества fj j 9i; Pi = tjtj+1  tj,+|j.i|_1g, или эквивалентного множества fj j 9i; Pi = fj_|pi|+i fj_|pi|+2  tjg. Отметим, что в случае выдачи всех вхождений шаблонов размер выходных данных может стать квадратичным (например, в случае, когда Pi и T берутся из однобуквенного алфавита). Обозначим длину самого короткого шаблона в P за imin. Предполагается, что шаблоны задаются в самом начале, после чего производится поиск их вхождения в нескольких текстах. Данная задача является расширением задачи точного сравнения строк.





Версия от 14:21, 30 апреля 2019

Ключевые слова и синонимы

Сравнение со словарем

Постановка задачи

Пусть даны конечное множество строк шаблона [math]\displaystyle{ \mathcal{P} = \{P^1, P^2, ..., Pk \} }[/math] и текстовая строка [math]\displaystyle{ T = t_1 t_2 ... t_n }[/math], где [math]\displaystyle{ T }[/math] и [math]\displaystyle{ P^i }[/math] представляют собой последовательности над алфавитом [math]\displaystyle{ \Sigma }[/math] размера [math]\displaystyle{ \sigma }[/math]. Задача сравнения нескольких строк (multiple string matching, MSM) заключается в нахождении одной или, в общем случае, всех текстовых позиций, начиная с которых [math]\displaystyle{ P^i }[/math] входит в T; или, говоря более точно, в вычислении множества fj j 9i; Pi = tjtj+1 tj,+|j.i|_1g, или эквивалентного множества fj j 9i; Pi = fj_|pi|+i fj_|pi|+2 tjg. Отметим, что в случае выдачи всех вхождений шаблонов размер выходных данных может стать квадратичным (например, в случае, когда Pi и T берутся из однобуквенного алфавита). Обозначим длину самого короткого шаблона в P за imin. Предполагается, что шаблоны задаются в самом начале, после чего производится поиск их вхождения в нескольких текстах. Данная задача является расширением задачи точного сравнения строк.


Рассматриваются сложность в наихудшем и в среднем случаях. Во втором варианте предполагается, что шаблон и текст генерируются случайным образом посредством равномерного и независимого выбора из E. Для простоты и практичности будем далее полагать jPi j = o(n), 1 < i < k.

Основные результаты