Последовательное приближенное сравнение строк: различия между версиями
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) Нет описания правки |
||
Строка 9: | Строка 9: | ||
Популярным обобщением всех вышеперечисленных вариантов является взвешенное расстояние редактирования, при котором операциям присваиваются положительные вещественные веса, а расстояние является минимальной суммой весов последовательности операций, преобразующих одну строку в другую. Вес операции удаления символа c обозначим за w(c | Популярным обобщением всех вышеперечисленных вариантов является ''взвешенное расстояние редактирования'', при котором операциям присваиваются положительные вещественные веса, а расстояние является минимальной суммой весов последовательности операций, преобразующих одну строку в другую. Вес операции удаления символа c обозначим за <math>w(c \to e)</math>, вес операции вставки c – за <math>w( \to c)</math>, вес операции замены c на <math>c' \ne c</math> – за <math>w(c \to c'</math>. Предполагается, что w(c ! c) = 0 и что выполняется неравенство треугольника, то есть w(x ! y) + w(y ! z) > w(x ! z) для любых x; y; z 2 S U {e}. Поскольку расстояние теперь может быть асиммтеричным, примем за d(A; B) стоимость преобразования A в B. Разумеется, любой результат, полученный для метрики взверешнного расстояния редактирования, применим к расстояниям редактирования, Хэмминга и indel-расстоянию (которые далее будут называться расстояниями редактирования с единичной стоимостью), однако другие редукции не являются тривиальными. | ||
Версия от 15:24, 22 марта 2019
Ключевые слова и синонимы
Сравнение строк, допускающее ошибки или разность; неточное сравнение строк; полуглобальное или полулокальное сходство последовательностей
Постановка задачи
Пусть даны текстовая строка [math]\displaystyle{ T = t_1 t_2 ... t_n }[/math] и строка образца [math]\displaystyle{ P = p_1 p_2 ... p_m }[/math], представляющие собой последовательности над алфавитом [math]\displaystyle{ \Sigma }[/math] размера [math]\displaystyle{ \sigma }[/math], а также функция расстояния между строками d и порог k. Задача приближенного сравнения строк (approximate string matching, ASM) заключается в нахождении всех текстовых позиций, завершающих так называемое приблизительное вхождение P в T; иначе говоря, в вычислении множества [math]\displaystyle{ \{ j, \exist i, 1 \le i \le j, d(P, t_i ... t_j) \le k \} }[/math]. В последовательной версии задачи T, P и k уже заданы, при этом алгоритм может быть настроен для конкретного d.
Решения этой задачи заметно различаются в зависимости от используемой метрики расстояния d. Далее будет использоваться очень популярная метрика, называемая расстоянием Левенштейна или расстоянием редактирования и определяемая как минимальное количество операций вставки символа, удаления символа и замены одного символа на другой, необходимых для преобразования одной строки в другую. Также будет уделено внимание другим распространенным вариантам, таким как indel-расстояние, в котором допускаются только вставки и удаления и которое является двойственным к нахождению самой длинной общей подпоследовательности lcs (d(A, B) = |A| + |B| - 2 • lcs(A, B)), а также расстояние Хэмминга, в котором рассматриваются только замены.
Популярным обобщением всех вышеперечисленных вариантов является взвешенное расстояние редактирования, при котором операциям присваиваются положительные вещественные веса, а расстояние является минимальной суммой весов последовательности операций, преобразующих одну строку в другую. Вес операции удаления символа c обозначим за [math]\displaystyle{ w(c \to e) }[/math], вес операции вставки c – за [math]\displaystyle{ w( \to c) }[/math], вес операции замены c на [math]\displaystyle{ c' \ne c }[/math] – за [math]\displaystyle{ w(c \to c' }[/math]. Предполагается, что w(c ! c) = 0 и что выполняется неравенство треугольника, то есть w(x ! y) + w(y ! z) > w(x ! z) для любых x; y; z 2 S U {e}. Поскольку расстояние теперь может быть асиммтеричным, примем за d(A; B) стоимость преобразования A в B. Разумеется, любой результат, полученный для метрики взверешнного расстояния редактирования, применим к расстояниям редактирования, Хэмминга и indel-расстоянию (которые далее будут называться расстояниями редактирования с единичной стоимостью), однако другие редукции не являются тривиальными.
Рассматриваются сложность в наихудшем и в среднем случаях. Во втором варианте предполагается, что образец и текст генерируются случайным образом посредством равномерного и независимого выбора из S. Для простоты и практичности будем далее полагать m = o(n).