15
Lenguajes y Gramáticas formales Alfabetos y palabras

Alfabetos y Cadenas

  • 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