En la teoría de información y el de informática, la distancia de Levenshtein del es una secuencia métrico que es unidireccional medir el corrige la distancia . La distancia de Levenshtein entre dos secuencias es dada por el número mínimo de operaciones necesarias para transformar una secuencia en la otra, donde está una inserción, una canceladura, o una substitución una operación de un solo carácter. Se nombra después Vladimir Levenshtein, que consideraba esta distancia en el 1965 . Es útil en los usos que necesitan determinar cómo son las dos secuencias similares, por ejemplo los inspectores del encanto
Por ejemplo, la distancia de Levenshtein entre el " kitten" y " sitting" es 3, puesto que estos tres corrige el cambio uno en el otro, y no hay manera de hacerla con menos de tres corrige: el → del gatito del
sitten (substitución de “s” para “k ") el
Puede ser considerado una generalización de la distancia de Hamming, que se utiliza para las secuencias de la misma longitud y considera solamente la substitución corrige. Hay también otras generalizaciones de la distancia de Levenshtein que consideran, por ejemplo, intercambiar dos carácteres como operación, como en el algoritmo de la distancia de Damerau-Levenshtein.
internacional LevenshteinDistance (carbón de leña del s, carbón de leña del t) el // d es una tabla con las filas m+1 y n+1 las columnas el declara el internacional }.n de para el de i del de 0 a m }: = i para el de j del de 1 a n d j: = j para el de i del de 1 a m para el de j del de 1 a n si el entonces de s = de t costó: = 0 el otro costó: = 1 d j: = mínimo ( d j + 1, canceladura de // del d j-1 + 1, inserción de // del d j-1 + substitución costada de // del ) de vuelta d n
Dos ejemplos de la matriz resultante (los pasos mínimos que se tomarán se destacan):
s en t usar un mínimo de operaciones de d. Este asimientos invariantes desde entonces: s se puede transformar en la secuencia vacía t simplemente cayendo todos los carácteres de i. Semejantemente, podemos transformar s a t simplemente agregando todos los carácteres de j. s a t en operaciones de k, después podemos agregar simplemente t luego para conseguir t en operaciones de k+1. s a t en operaciones de k, después podemos hacer las mismas operaciones en s y después quitar el s original en el extremo en operaciones de k+1. s a t en operaciones de k, podemos hacer iguales a s y después hacer una substitución de t para el s original en el extremo en caso de necesidad, requiriendo operaciones de k+cost. s en t son por supuesto el número requerido para transformar todo el s en todo el t, y así que d celebra nuestro resultado. Esta prueba no puede validar que el número puesto en d es de hecho mínimo; esto es más difícil de demostrar, e implica una discusión por la contradicción en la cual asumimos que d es más pequeño que el mínimo de los tres, y utilizar esto para demostrar uno de los tres no es mínimo.
j. . d se puede mover dentro del lazo externo principal. cost se pueden computar paralelamente, y el algoritmo se puede adaptar para realizar la función de minimum en fases para eliminar dependencias.
La distancia de Levenshtein tiene varios límites superiores y más bajos simples que sean útiles en los usos que computan muchos de ellos y los comparan. Éstos incluyen:
es siempre por lo menos la diferencia de los tamaños de las dos secuencias.
Es a lo más la longitud de la secuencia más larga.
Es cero si y solamente si las secuencias son idénticas.
Si las secuencias son los mismos tamaños, la distancia de Hamming es un límite superior en la distancia de Levenshtein.
Si las secuencias se llaman s y t, el número de carácteres (que no cuentan los duplicados) encontró en s pero no en t es un límite más bajo.
.
| Random links: | Akna | Bruegel | Roberto Whitehead | Zhan Videnov | Sydney Smith (desambiguación) |