Upload
zwolf7
View
51
Download
0
Embed Size (px)
Citation preview
Lenguajes y Gramticas formales Alfabetos y palabras
Alfabetos y palabras
Alfabeto es un conjunto finito y no vaco de elementos llamados smbolos o letras. Ejemplo: ASCII
Palabra o cadena sobre un alfabeto V es una cadena finita de smbolos del alfabeto.
Longitud de una cadena w, que notaremos como |w|, es el nmero de letras que aparecen en w.
A la cadena que no tiene smbolos o que tiene longitud 0, la llamaremos palabra vaca y se nota por (o tambin psilon, segn los autores).
Alfabetos y palabras
Si V es un alfabeto, llamaremos Vn al conjunto de todas las palabras de longitud n sobre V.
Un elemento de Vn ser una cadena del tipo a1a2 . . . an donde cada ai V .
Llamaremos V0 al conjunto cuyo nico elemento es la palabra vaca, es decir, V0 = {}.
El conjunto de todas las cadenas de cualquier longitud sobre V es:
Alfabetos y palabras
Ejemplo: Alfabeto x={letras del alfabeto espaol} U {dgitos}
Una cadena w sobre x sera abc67xy 78hs7fh %jl78$ es correcto?
Alfabetos y palabras
Llamamos V+ al conjunto de todas las cadenas sobre el alfabeto V excepto la vaca. Por tanto,
V+ = V* {}
La operacin de concatenacin: , es una operacin binaria entre palabras sobre un alfabeto
V, esto es: V* x V* V* de forma que si tenemos dos palabras x, y V* donde
x = a1a2 . . . an, y = b1b2 . . . bm x concatenado con y ser w V* con |w| = |x| + |y|, de forma
que: W = x.y = a1a2 . . . anb1b2 . . . bm
Alfabetos y palabras
Ejemplo: x=micro y=procesador x.y = microprocesador
Implementaciones: Excel: funcin concatenate C#: Hello + world ASP: Hello & world
Alfabetos y palabras Algunas propiedades de la concatenacin son: operacin cerrada
x, y V : xy V
propiedad asociativa x, y, z V : x(yz)=(xy) z
elemento neutro x V:x=x=x
Alfabetos y palabras
Decimos que una cadena z es subcadena de otra w si existen cadenas x, y, z V tal que: w=xzy.
Subcadenas Prefijo(w) = {x V|z V : w =xz} Consiste en eliminar
cero o ms elementos de derecha a izquierda sobre la cadena w
Sufijo(w) = {x V |z V : w = zx} Consisten en eliminar cero o ms elementos de izquierda a derecha sobre la cadena w
Alfabetos y palabras
Diremos que x es un prefijo propio de w si: x Prefijo(w) ser un prefijo propio si x w.
Diremos que x es un sufijo propio de w si: si x Sufijo(w) ser un sufijo propio si x w.
Alfabetos y palabras
Ejemplo: Si w=abab es una palabra sobre el alfabeto {a, b} o sea w
{a, b}, tenemos que: ab es un prefijo propio de w abab es un prefijo de w, pero no es propio b es un sufijo propio de w
Alfabetos y palabras
Subcadena sobre una cadena w, consiste en eliminar los prefijos y/o sufijos de la cadena
Ejemplo: w=ababa
Alfabetos y palabras
Potencia de una palabra: operacin que consiste en concatenar la palabra consigo misma n veces. Dada una palabra w V, se define inductivamente la potencia n-esima de w, que notaremos wn, como: w0 = wn = w wn1 para n > 0
Ejemplo: Si w = aba es una palabra sobre el alfabeto {a, b} entonces:
w0 = w1 = aba w2 = abaaba
Implementaciones
Implementacin
Algoritmos de bsqueda: Boyer-Moore Knuth-Morris-Pratt Rabin-Karp
Ejercicio en clase: Alfabetos y palabras
Sean las cadenas x=121 y z=abcd defina: Sufijos Prefijos Subcadenas Subsecuencias (eliminar cualquier smbolo o ninguno de la cadena) Sufijos propios Prefijos propios x.z z.x