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

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


== Основные результаты ==
== Основные результаты ==
Первое и наиболее универсальное решение этой задачи [13] строится на процессе вычисления взвешенного расстояния редактирования. Пусть A = a1 a 2.. am и B = b1 b 2.. bn – две строки, А C[0 m, 0 n] – матрица, такая, что C[i, j] = d(a1 … ai, b1 … bj). Тогда имеет место C[0;0] = 0 и bj))  =min(C[i- 1;j] + w(ai -+e), C[i,j + w(   -> bj); C[i - 1; j - 1] + w(a, предполагая, что C[i; — 1] = C[—l,j] = 1. Вычисление матрицы требует времени O(mn), а d(A; B) = C[m; n]. Для решения задачи приближенного сравнения строк примем A = P и B = T и положим C[0; j] = 0 для всех j, так что вышеприведенная формула будет использоваться только для i > 0.
Первое и наиболее универсальное решение этой задачи [13] строится на процессе вычисления взвешенного расстояния редактирования. Пусть <math>A = a_1 a_2 ... a_m</math> и <math>B = b_1 b_2 ... b_n</math> – две строки, а <math>C[0 ... m, 0 ... n]</math> – матрица, такая, что <math>C[i, j] = d(a_1 ... a_i, b_1 ... b_j)</math>. Тогда имеет место C[0, 0] = 0 и  
 
<math>C[i, j] = min (C[i - 1, j] + w(a_i \to \epsilon], C[i, j - 1] + w(\epsilon \to b_j), C[i - 1, j - 1] + w(a_i \to b_j))</math>,
 
предполагая, что <math>C[i, -1] = C[-1, j] = \infty</math>. Вычисление матрицы требует времени O(mn), а d(A, B) = C[m, n]. Для решения задачи приближенного сравнения строк примем A = P и B = T и положим C[0; j] = 0 для всех j, так что вышеприведенная формула будет использоваться только для i > 0.




4551

правка

Навигация