You are on page 1of 12

1.

Lenguajes. Conceptos fundamentales

Sea una coleccin nita de smbolos. Este conjunto de smbolos se denomina alfabeto y los elementos letras. Una palabra sobre es una cadena de longitud nita de elementos de . La cadena vaca o cadena nula, denotada por , es una cadena que no contiene smbolos. El conjunto de todas las palabras sobre se denota . es una palabra en cualquier alfabeto . Un lenguaje sobre es un subconjunto de . Si L denota el conjunto de los lenguajes sobre se tiene que L = {L : L } Note que , la cadena vaca, es la cadena que no contiene smbolos. Es diferente de el conjunto vaco (lenguaje vaco). Se sigue que {} es el conjunto que contiene exactamente una cadena, de hecho, la cadena vaca. La longitud de una palabra u , denotada por |u|, es el nmero de posiciones que tiene la palabra. Se puede denir recursivamente de esta manera: || = 0 |ua| = |u| + 1

Denimos una operacin sobre denominada concatenacin. Para u, v la concatenacin de u y v se denota uv y se dene a travs de la funcin uv : {1, 2, . . . , |u| + |v|}

ww w.

Dos palabras u, v son iguales si |u| = |v| y u(i) = v(i) para 1 i |u|.

at

De este modo una palabra u se puede denir por una funcin u : {1, 2, . . . , |u|} donde u(i) es la letra que se encuentra en la posicin i en la palabra u.

uv(i) =

u(i), v(i |u|),

As la palabra uv es la palabra que se obtiene escribiendo las letras de u y luego las letras de v. Si u = u1 u2 uk y v = v1 v2 vs entonces uv = u1 u2 uk v1 v2 vs donde ui , vj . Se deja al lector vericar que esta operacin es asociativa. Ejercicio 1 Pruebe que |uv| = |u| + |v| Denicin 1 Dados dos lenguajes L, M L, la concatenacin de los lenguajes L y M se denota por LM y se dene LM = {vw : v L, w M }

em

at

si 1 i |u| si |u| + 1 i |u| + |v|

ic

a1

donde u y a .

.c om

Es fcil ver que la concatenacin de lenguajes es asociativa. Ejemplo 1 Sean = {0, 1} y L, M dos lenguajes sobre dados por L = {1, 10} y M = {1, 01} entonces LM = {11, 101, 1001}. Mientras que M L = {11, 110, 001, 0110}. Denicin 2 Si es un alfabeto y n N se dene las potencias de recursivamente de la siguiente manera: 1) 2) 1 = n+1 = n

Por convencin se tiene que 0 = {}. Ejemplo 2 Si = {a, b, c} entonces 2 = {aa, ab, ac, ba, bb, bc, ca, cb, cc} Ejercicio 2 Pruebe que =
n0

n .

Denimos + =
n1

n .

Este es el conjunto de todas las palabras de longitud mayor que 1. Puesto que nunca es elemento de nuestro alfabeto, es decir, entonces = + y / = + {}
.c om

Denicin 3 Para L un lenguaje se dene de manera recursiva Ln as:

L se dene

at M

em
L =
n0

at
Ln
ww w.

Ln+1 = LLn

L se denomina la Cerradura de Kleene o Cerradura estrella de L. Ejemplo 3 Sea = {0, 1} y L = {01, 1}, entonces L3 = {010101, 01011, 01101, 0111, 10101, 1011, 1101, 111}

2.

Lenguajes y Expresiones Regulares

En aritmtica, usamos las operaciones + y para construir expresiones tales como (4 + 1) 5 De manera similar, usamos operaciones regulares para construir expresiones que describen lenguajes, las cuales se denominan expresiones regulares. Un ejemplo es: (0 1)0 El valor de la expresin aritmtica es 25. El valor de una expresin regular es un lenguaje. En este caso el lenguaje consiste en todas las palabras que empiezan con 1 o 0 seguido por cualquier nmero (nito) de 0 s. Otro ejemplo de una expresin regular es (0 1) Empieza con el lenguaje (0 1) y se aplica la operacin * . El valor de esta expresin son todas las palabras posibles de 0 s y 1s.

ic a1

L0 = {}

Lenguajes Regulares
Para un alfabeto dado, los lenguajes regulares constituyen el menor conjunto de lenguajes sobre que es cerrado respecto a las operaciones de concatenacin, la cerradura de Kleene y la unin de lenguajes y adems contiene el lenguaje y los lenguajes unitarios {a} para a . Denicin 4 Sea un alfabeto. El conjunto de lenguajes regulares sobre se dene recursivamente como sigue: 1. 2. 3. 4. y {} son lenguajes regulares Para toda a , {a} es un lenguaje regular. Si L y M son lenguajes regulares, entonces L M, LM, L son lenguajes regulares. Ningn otro lenguaje sobre es regular.

Ejemplo 4 Dado = {a, b}, las siguientes armaciones son verdaderas: y {} son lenguajes regulares. {a} y {b} son lenguajes regulares. {a, b} es un lenguaje regular.

{ai |i 0} es regular.

a b denota ab denota a denota a+ denota

ww w.

Podemos simplicar la representacin de un lenguaje regular por medio de una abreviatura llamada expresin regular. Convenimos en escribir a en lugar del lenguaje unitario {a}. Por tanto

at

em

Adems se establece un orden en los operadores, primero la clausura de Kleene (*), luego la concatenacin y por ltimo la unin. En algunos casos esto simplica la expresin. Por ejemplo, una expresin {a} ({b} {c}), se reduce a la expresin regular a b c. De este modo, si se realiza la unin previa a la concatenacin, se deben usar parntesis; as (a b)c indica que se realiza la unin de {a} y {b} y el resultado se concatena con {c} a la derecha. Si escribimos a bc debe ser ledo: se concatena {b} y {c} en ese orden y el resultado se une con {a}.

Denicin Formal de una Expresin Regular


Denicin 5 Denimos las expresiones regulares de manera recursiva: 1. 2. 3. y son expresiones regulares. a es una expresin regular para toda a . Si r y s son expresiones regulares, entonces r s, rs, r son expresiones regulares.

at
{a, b} = {a} {b} {ab} {a} {a}+

ic a1

{ab} es regular.

.c om

4.

Ninguna otra secuencia de smbolos es una expresin regular.

Comparando las deniciones de lenguajes regulares y expresiones regulares se deduce que toda expresin regular sobre denota un lenguaje regular sobre . Por ejemplo el lenguaje de todas las palabras sobre {a, b, c} que no tienen ninguna subcadena ac se denota mediante la expresin regular c (a bc ) . Cuando sea necesario distinguir entre una expresin regular r y el lenguaje denotado por la misma, usaremos L(r) para identicar dicho lenguaje. As, si se arma w r, esto signica que w L(r). Si r y s son expresiones sobre el mismo alfabeto y si L(r) = L(s), entonces se dice que r y s son equivalentes. en el caso que r y s sean equivalentes se puede escribir r = s. tambin se puede usar r s en el caso que L(r) L(s). En la denicin de la cerradura estrella se obtiene que = {}, y en trminos de expresiones regulares se tiene que = . Obsrvese que hay muchas expresiones regulares que denotan el mismo lenguaje. Por ejemplo (a b) y (a b) b denotan el mismo lenguaje: el lenguaje de todas las palabras con 0 o ms a s y b s, que son la palabra vaca o las que tienen una b al nal. De este modo (a b) = (a b) b. Se pueden simplicar expresiones regulares reemplazndolas por otras equivalentes pero menos complejas. Existen muchas equivalencias en relacin a expresiones regulares. Las resumimos en el siguiente teorema.
.c om

Teorema 1 Sean r, s y t expresiones regulares sobre el mismo alfabeto . Entonces: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. rs=sr r=r =r rr =r (r s) t = r (s t) r = r = r r = r = r(st) = (rs)t

(r s)t = rt st y r(s t) = rs rt r = r = r r = ( r) = r ( r) = ( r)r = rr (r s) = (r s ) = (r s ) = (r s) r = r (sr ) r(sr) = (rs) r (r s) = (r s) s (rs ) = r(r s) s(r ) (r ) s = sr rr = r r

Ejercicio 3 1. Vericar, aplicando la denicin de lenguaje regular, que los siguientes son lenguajes regulares sobre = {a, b}: (a) {ai | i > 0}. (b) {ai | i > n} para un n 0 jado. (c) {w | w termina con a}. (d) {w | w tiene un nmero par de aes}.

ww w.

at

em

at

ic a1

2. 3.

Vericar que el lenguaje de todas las palabras de unos y ceros que tienen al menos dos ceros consecutivos, es un lenguaje regular. Sobre = {a, b, c}, determinar cuales parejas de expresiones regulares son equivalentes. (a) (a b) a y ((a b)a) . (b) y . (c) ((a b)c) y (ac bc) (d) b(ab ac) y (ba ba)(b c).

4.

Simplicar: (a) a b (a b) . (b) ((a b ) (b a ) ) . (c) (a b) (b a) . (d) (a b) a(a b) . Probar que (aa) a = a(aa) . Simplicar las siguientes expresiones regulares: (a) ( aa) . (c) a( aa) a . (d) a( aa) ( aa) a. (e) (a )a b.
ww w.

5. 6.

(g) ( aa)( aa) ( aa)( aa). (h) ( aa)( aa) (ab b)(ab b). (i) (a b)( aa) ( aa) (a b). (j) (aa) a (aa) . (k) a b((a b)a b) a b. (l) a b((a b)a b) (a b)(aa) a(aa) a b((a b)a b) .

3.

Autmata Finito Determinista

Consideremos el lenguaje regular L representado por c (a bc ) . Dada una palabra w cmo saber si w pertenece al lenguaje L? Debemos analizar no slo los caracteres que aparecen en w, sino tambin sus posiciones relativas. Por ejemplo, la cadena abc3 ab est en L, pero cabacbc no lo est. Podemos construir un diagrama que nos ayude a determinar los distintos miembros del lenguaje. Tal diagrama tiene la forma de un grafo dirigido son informacin adicional aadida, y se llama diagrama de transicin. Los vrtices del grafo se llaman estados y se usan para sealar, en ese momento, hasta que lugar se ha realizado la cadena. Las aristas del grafo se etiquetan con caracteres del alfabeto y se llaman transiciones. Si el siguiente carcter a reconocer concuerda con la etiqueta de alguna transicin que parte del estado actual, nos desplazamos al estado al que nos lleve la arista correspondiente. Se comienza en un estado inicial, y cuando se hayan tratado todos los caracteres de la palabra (cadena) correspondiente, necesitamos saber si la cadena es "legal". Para ello se marcan ciertos estados

(f) ( aa) ( aa)a a.

at

em

at

ic a1

.c om

(b) ( aa)( aa) .

como estados de aceptacin o estados nales (doble crculo). Toda cadena que surja de una transicin desde el estado inicial a un estado nal de aceptacin es "legal". Marcamos el estado inicial con una echa () y alrededor de los estados de aceptacin trazamos un crculo. Por ejemplo el diagrama de la Figura 1 acepta todas las cadenas que estn formadas por 0 o ms a s seguidas por una nica b. Obsrvese que para toda cadena de la forma ak b, para k 0, el recorrido del diagrama termina en un estado de aceptacin. El recorrido del mismo con cualquier otra cadena de a s y b s (incluida la cadena vaca) termina en cualquier otro estado, pero este no es de aceptacin. a S b

a, b

ic a1
ww w.

.c om

a, b

Considrese el lenguaje A = {(ab)i | i 1}, el cual est representado por la expresin regular (ab)+ . La palabra ms corta de este lenguaje es ab. El estado inicial no es un estado de aceptacin, porque entonces aceptara la palabra vaca. Hay dos transiciones una para a y una para b; ninguna de ellas puede llevar a un estado de aceptacin. Esto se debe a que ni a ni b son palabras del lenguaje A. Las cadenas legales se obtienen al llegar a un estado de aceptacin y se debe hacer esto despus de un nmero nito de pares de transiciones ab. Un diagrama de transicin para A es el que muestra la Figura 2. Este diagrama tiene un nico a, b

M
a b a a Figura 2:

at

em

Figura 1:

at

estado de aceptacin. Si el anlisis termina en cualquier otro estado, la cadena no est correctamente construida. Asimismo se puede ver que una vez que se identica un prejo incorrecto, se realiza un desplazamiento a un estado que no es de aceptacin y se permanece en el mismo. Consideremos el lenguaje (ab) . En este caso se acepta la cadena vaca. Por lo tanto, el estado inicial es tambin de aceptacin. El diagrama de transicin se muestra en la Figura 3 b a

a, b Figura 3:

Podemos representar el diagrama por medio de una tabla que indica el siguiente estado al cual desplazarse, dado un estado y un smbolo de entrada (Figura 4). Obsrvese que la tabla para nuestro diagrama de transicin tiene, para cada par estado-entrada, un nico estado siguiente. De este modo para cada estado y smbolo de entrada, se puede determinar el siguiente estado. Se puede pensar que sean acciones de una mquina. dicha mquina se denomina autmata nito, una computadora ideal. El autmata nito se dene en trminos de sus estados, la entrada que acepta y su reaccin ante la misma. Hay autmatas de dos tipos, deterministas y no deterministas. El autmata que corresponde a la gura 4 es determinista. Entrada\ Salida q0 q1 q2 Figura 4: Formalmente, un autmata nito determinista M es una coleccin de cinco elementos. 1. 2. 3. 4. Un alfabeto de entrada . Una coleccin nita de estados Q. Un estado inicial S. Una coleccin de estados nales o de aceptacin.
ww w.

at

em

at

ic a1

a q1 q2 q2

.c om

b q2 q0 q2

5.

Una funcin : Q Q que determina el nico estado siguiente para el par(qi , ) correspondiente al estado actual y la entrada.

Generalmente el trmino autmata nito determinista se abrevia AFD. Ejercicio 4 (a) Obtener la expresin regular que representa al lenguaje formado por todas las cadenas sobre {a, b} que tienen un nmero par de bes. Construir el diagrama de transicin para este lenguaje. (b) Construir el diagrama de transicin para el lenguaje dado por c (abc ) .Convertir el diagrama en una tabla, etiquetando los estados q0 , q1 , . . . .

3.1.

AFD y Lenguajes
L(M ) = {w | w es aceptada por M }

Si M es un AFD, entonces el lenguaje aceptado por M es

As, L(M ) es el conjunto de cadenas (palabras) que hacen que M pase de su estado inicial a un estado de aceptacin. Diremos que dos AF D M1 y M2 son equivalentes si L(M1 ) = L(M2 ). Por ejemplo, sean M1 y M2 sobre el alfabeto = {a, b}, representados por los siguiente diagramas de transiciones. Ambos aceptan el lenguaje a+ y, en conse-

ww w.

cuencia son equivalentes. Ejercicio 5 Construir los AFD que aceptan cada uno de estos lenguajes sobre {a, b}: (a) {w | toda a de w est entre dos bes} (b) {w | w contiene la subpalabra abab} (c) {w | w no contiene ninguna de las subpalabras aa o bb} (d) {w | w contiene un nmero impar de aes y un nmero par de bes} (e) {w | w tiene ab y ba como subpalabras}

3.2.

Autmata Finito No Determinista

Si se permite que desde un estado se realicen cero, una o ms transiciones mediante el mismo smbolo de entrada, se dice que el autmata nito es no determinista. A veces es ms conveniente disear autmatas nitos no determinista (AFN) en lugar de deterministas.

at

M1 :

em

at

a ,

ic a1

.c om

a a

M2 :

Figura 5:

Un autmata nito no determinista es una coleccin de cinco objetos (Q, , S, F, ), donde 1. 2. 3. 4. 5. Una coleccin nita de estados Q. Un alfabeto de entrada . Un estado inicial S. Una coleccin de estados nales o de aceptacin F . Una funcin : Q P(Q) que determina un subconjunto de Q para el par(qi , ) correspondiente al estado actual y la entrada. P(Q) son los subconjuntos de Q.

Decimos que una cadena w es aceptada por un autmata nito no determinista M , sin M pasa de su estado inicial a un estado de aceptacin o nal al recorrer w. Denimos el lenguaje aceptado por M por medio de: L(M ) = {w | w es una cadena aceptada por M } Ejercicio 6 (a) Construir un AFN que acepte el lenguaje (ab aba) .
.c om
n

(b) Obtener un AFN (que no sea AF D) que acepte el lenguaje ab ab a.

3.3.

Equivalencia entre AFN y AFD

-Transiciones
Estas son las transiciones de un estado en otro que no dependen de ninguna entrada. Para todo estado q Q, denimos la -cerradura de q como c(q) = {p | p es accesible desde q sin consumir ninguna entrada} Para q Q y se dene d(q, ) = {p | hay una transicin de q a p etiquetada con } Esta denicin se amplia a conjuntos como sigue d({qi1 , qi2 , , qin }, ) =
k=1

ww w.

Teorema 2 Para todo autmata nito no determinista M existe un autmata nito determinista M1 tal que M y M1 son equivalentes.

at

em

Decimos que dos autmatas M y M son equivalentes si L(M ) = L(M ).

at

ic a1

d(qik , )

3.4.

Autmatas Finitos y Expresiones Regulares

Para un alfabeto se pueden construir los AFN (y los AFD) que acepten palabras unitarias. Si M1 y M2 son AFN podemos unir M1 y M2 en un nuevo AFN que acepte L(M1 ) L(M2 ), aadiendo un nuevo estado inicial y dos transiciones, una a cada uno de los estados iniciales anteriores de M1 y M2 respectivamente. Se deja al lector formalizar esta idea.

b a b

b a

Figura 6: b a
.c om

ww w.

M
Figura 7:

Como ejemplo, los AFN de la Figura 6 aceptan ab y (ab) respectivamente y el AFN de la Figura 7 acepta ab (ab)

Si tenemos dos AFN M1 y M2 , podemos unirlos para formar un AFN que acepte L(M1 )L(M2 ). Para eso, el nuevo AFN tiene como estado inicial el estado inicial de M1 y los estados de aceptacin son los estados de aceptacin de M2 y aadimos -transiciones de los estados de aceptacin de M1 al estado inicial de M2 . Se deja al lector formalizar esta operacin. El procedimiento para construir una AFN que acepte L(M ) . Dado el AFN M , se aade un nuevo estado inicial que es al mismo tiempo el nico estado de aceptacin; se aaden transiciones del nuevo estado inicial al antiguo estado inicial y de los estados de aceptacin de M al nuevo estado inicial. Se deja al lector formalizar esta operacin. Teorema 3 El conjunto de lenguajes aceptados por un autmata nito sobre el alfabeto contiene y los lenguajes unitarios {a} para toda a . Este conjunto es cerrado respecto a la unin, concatenacin y cerradura de Kleene. Lema 1 Sea M un autmata nito. Entonces existe una expresin regular r para la cual L(r) = L(M ).

at

em

at

ic a1
b a

Teorema 4 (Kleene) Un lenguaje es regular si y slo si es aceptado por un autmata nito. Ejercicio 7 1. 2. 3. 4. Obtener un AFN que acepte (a b) (aba) Obtener un AFN para (ab) a partir de los AFN que aceptan {a} y {b}. Obtener un AFN para(aa b) (bb a) a partir de los AFN que aceptan {a} y {b}. Obtener una expresin regular para el AFD de la Figura 8 b a

ww w.

(5) Obtener una expresin regular para los lenguajes aceptados por cada uno de los autmatas dados y las funciones de transicin.

at

em
q1

at

Figura 8:

ic a1

.c om

a.) q0

a, b b

a a, b q2

a q1

a b a

b b q3

b.)

q2

c.) q2 b b
ww w.

at

em

a q3

at ic a1

q1

.c o

a a

You might also like