You are on page 1of 2

La coincidencia de patrones Palindrome

Tomohiro I *, Shunsuke Inenaga, Masayuki Takeda


Departamento de Informtica de la Universidad de Kyushu, Japn
Resumen
Un palndromo es una cadena que se lee igual hacia adelante y hacia atrs. Para una cadena
x, y mucho Pals (x) el conjunto de todos los palndromos mximas de x, donde cada
palndromo mxima en Pals (x) es codificada por un par (C, R) de su centro C y su radio r.
Dada una t de texto de longitud n y un patrn p de longitud m, el problema coincidencia de
patrones palndromo es calcular todas las posiciones i de t de tal manera que Pals (p) = Pals (t
[i: i + m - 1]). Presentamos algoritmos en tiempo lineal para resolver este problema.
1. Introduccin
Un palndromo es una cadena simtrica que se lee igual hacia adelante y hacia atrs. Es
decir, una cadena w es un palndromo si w = xaxR donde x es una cadena, xR es una
inversin de x, y es un solo carcter o la cadena vaca. Recientemente, las estructuras
palindrmicas en cadenas han sido ampliamente estudiados: una cadena de longitud n se
llama palindrmica rica (o simplemente ricos) si contiene n 1 palndromos distintos
(incluyendo la cadena vaca). Se sabe que cualquier cadena de longitud n puede contener a lo
sumo n 1 distinta palndromos [1]. Un estudio unificado de riqueza palindrmica de cadenas
finitas e infinitas era iniciado en [2]. Una estrecha relacin entre la riqueza y la palindrmico
Burrows-Wheeler transformar [3] fue recientemente descubierto en [4]. Otro concepto con
respecto a las estructuras palindrmicas es la complejidad palndromo [5-7] de una cadena,
que es la nmero de subcadenas palindrmicas de una longitud dada en la cadena.
Existen varios algoritmos eficientes que resuelvan problemas interesantes sobre palndromos:
un algoritmo de tiempo lineal para comprobar si una cadena dada es capica rico o no, se
presenta en [8]. Se puede calcular el conjunto de todos los palndromos mximas de un
determinado cadena en el tiempo lineal [9]. El problema de ingeniera inversa de calcular una
cadena a partir de un conjunto dado de palndromos mximas es resolubles en tiempo lineal
[10], y el problema inverso de otro tipo de palndromos (que se denota por LPaL en este
documento) Tambin se considera en [11].
En este trabajo, presentamos un nuevo paradigma de la coincidencia de patrones basado en
palndromos en cuerdas. Dos cadenas de misma m de longitud se dice que son equivalentes
si y slo si-pal de la longitud del palndromo mxima en cada centro en las cuerdas es igual
[10]. Dada una t cadena de texto y una cadena patrn p, estamos interesados en la bsqueda
de todas las posiciones de texto i (1 i n) tal que p y t [i: i + m - 1] son pal-equivalente,
donde n y m son de texto y el patrn de longitudes, respectivamente. Este problema se
denomina coincidencia de patrones palndromo.
No es difcil ver que el patrn PALNDROMO problema puede ser resuelto en tiempo O (nm)
tiempo: nos pre-compute todo palndromos mximas para ty p utilizando algoritmos de
tiempo lineal [9,12]. Para cada i posicin del texto, se compara la longitud de la palndromos
mximos de T en la posicin i + j-1 y el de P en la posicin j para cada 1 j m. Si un
palndromo mxima de la text'' alto'' el intervalo [i: i + j-1], y luego los brazos izquierdo y
derecho del palndromo mxima se recortan en consecuencia para la comparacin.
Para las pequeas alfabetos, podemos resolver el problema en el tiempo lineal, reduciendo el
problema al modelo parametrizado problema de la concordancia. Baker [13] introdujo la
nocin de partido con parmetros, donde dos cadenas se dice que son parametrizados

coincidir si y slo si existe una biyeccin en el alfabeto que transforma una cadena a la
otra.Tambin propuso un algoritmo O (n + m) a tiempo para calcular todas las subcadenas
ubicaciones de un texto t donde un patrn p partidos con parmetros. ms tarde en [10], se
demostr que si el tamao del alfabeto es a lo sumo 3, a continuacin, dos cadenas son-Pal
equivalente si y slo si esas cadenas parametrizada partido. De ah la coincidencia de
patrones palndromo puede ser resuelto en tiempo O (n + m) tiempo para alfabetos ternarios
y ms pequeos.
En este trabajo, presentamos soluciones eficientes para los alfabetos ms grandes. En primer
lugar, se presenta un algoritmo que resuelve el problema en O (n + m) tiempo para alfabetos
arbitrarios. Este algoritmo es una versin palndromo-pattern-matching del Morris-Pratt [14]
patrn de algoritmo de coincidencia. En segundo lugar, proponemos otro algoritmo que utiliza
una nueva estructura de indexacin de texto llamaron a los rboles de sufijos palndromo. Se
demuestra que los rboles de sufijos palndromo se pueden construir en O (n min { log n,
ingrese log registro }) tiempo con O (n) el espacio, donde es el tamao del alfabeto.
Usando el rbol de sufijos palndromo, podemos resolver el problema en O (m min { log n,
ingrese log registro } + r) el tiempo, donde r es el nmero de posiciones de texto para
informar. Obviamente nuestro rbol sufijo palndromo enfoque nos proporciona una solucin
de tiempo lineal cuando es una constante.
Los algoritmos de este artculo son aplicables a varios problemas prcticos, por ejemplo, en la
bioinformtica. Por ejemplo, similar secuencias palindrmicas a menudo necesitan ser
identificadas en el ADN y ARN anlisis de la secuencia [12]. Las secuencias que tienen
similares estructuras palindrmicas pueden codificar para estructuras similares 3-D de las
respectivas molculas, lo que lleva a una posible funcional interpretacin de las secuencias
identificadas. Debido al tamao de los genomas, la eficiencia de los mtodos de bsqueda es
de gran importancia.
2. Preliminares
Let ser un alfabeto finito. Un elemento of * se llama una cadena. La longitud de una
cadena W se denota por | W |. La cadena vaca es una cadena de longitud de 0, es decir, |
|. = 0 Let + = * - {}. Cuando una cadena W est representado por la concatenacin de
cadenas x, y y z (es decir, w = xyz), entonces x, y y z son llamados un prefijo, subcadena, y el
sufijo de W, respectivamente. El carcter i-simo de un cadena w es denotado por w [i] para 1
i | w |, y la subcadena de una cadena w que comienza en la posicin i y termina en la
posicin j es denotado por w [i: j] para 1 i j | w |, es decir, w [i: j] = w [i] w [i + 1]. . . w
[j]. Para mayor comodidad, vamos w [i: j] = si j <i. Para cualquier cadena w, vamos wR
denotan la cadena invertida de w, es decir, wR = w [| w |] w [2] w [1]. Una cadena W se
denomina palndromo si w = w R. Si | w | es par, entonces w se llama un palndromo, incluso,
es decir, w = xxR para algn x *. Si | w | es impar, entonces w se denomina palndromo
impar, es decir, w = xaxR para algn x * y . El radio de un palndromo es w | w | 2. El
centro de una subcadena palindrmica w [i: j] de una cadena W es i + j 2. Una subcadena
palindrmico w [i: j] se llama el palndromo mxima en el centro de i + j 2 si no hay otros
palndromos en el centro de i + j 2 tienen un radio mayor que w [i: j], es decir, si w [i - 1] = w
[j + 1], i = 1, o j = | w |. En particular, un palndromo mxima W [i: | W |] se llama un
palndromo sufijo de w. Deje Pals (w) el conjunto de todos los palndromos mximas
centroizquierda distinta donde cada elemento est codificada por una pareja de su centro y el
radio, a saber,

You might also like