Приближенное сравнение регулярных выражений: различия между версиями

Перейти к навигации Перейти к поиску
м
Строка 9: Строка 9:


== Основные результаты ==
== Основные результаты ==
Наиболее универсальное решение этой задачи [3] строится на графовой модели процесса вычисления расстояния. Предположим, что регулярное выражение R преобразуется методом Томпсона [8] в недетерминированный конечный автомат (НКА) с O(m) состояний и переходов. Рассмотрим этот автомат в виде ориентированного графа G(V, E), ребра которого помечены элементами множества <math>\Sigma \cup \{ \epsilon \}</math>. Ориентированный и взвешенный граф <math>\mathcal{G}</math> построен для решения задачи AREM. <math>\mathcal{G}</math> формируется путем создания n + 1 копий <math>G, G_0, G_1, ..., G_n</math> и последующего присвоения им весов таким образом, чтобы свести расчет расстояния к задаче нахождения кратчайших путей в графе <math>\mathcal{G}</math>.
Наиболее универсальное решение этой задачи [3] строится на графовой модели процесса вычисления расстояния. Предположим, что регулярное выражение R преобразуется методом Томпсона [8] в недетерминированный конечный автомат (НКА) с O(m) состояний и переходов. Рассмотрим этот автомат в виде ориентированного графа G(V, E), ребра которого помечены элементами множества <math>\Sigma \cup \{ \epsilon \}</math>. Для решения задачи AREM строится ориентированный и взвешенный граф <math>\mathcal{G}</math>. <math>\mathcal{G}</math> формируется путем создания n + 1 копий <math>G, G_0, G_1, ..., G_n</math> и последующего присвоения им весов таким образом, чтобы свести расчет расстояния к задаче нахождения кратчайших путей в графе <math>\mathcal{G}</math>.




Строка 21: Строка 21:




Для простоты предположим, что G имеет начальное состояние s и уникальное конечное состояние f (это всегда можно организовать). По определению, самый короткий путь в <math>\mathcal{G}</math> из <math>s_0</math> в <math>f_n</math> дает наименьшее расстояние между T и строкой в <math>\mathcal{L}(R)</math>. Чтобы адаптировать граф к задаче AREM, меняем веса ребер между <math>s_i</math> и <math>s_{i + 1}</math> на ноль.
Для простоты предположим, что G имеет начальное состояние s и уникальное конечное состояние f (это всегда можно организовать). По определению, самый короткий путь в <math>\mathcal{G}</math> из <math>s_0</math> в <math>f_n</math> дает наименьшее расстояние между T и строкой в <math>\mathcal{L}(R)</math>. Чтобы адаптировать граф к задаче AREM, веса ребер между <math>s_i</math> и <math>s_{i + 1}</math> полагаем нулевыми.




4551

правка

Навигация