lenguajes regulares teoría del autómata. lenguajes regulares lenguajes sobre alfabetos para un...

59
Lenguajes regulares Teoría del Autómata

Upload: domingo-rosas

Post on 23-Jan-2016

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Lenguajes regulares

Teoría del Autómata

Page 2: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

LENGUAJES REGULARES

Lenguajes sobre alfabetos

Para un alfabeto = {a1,a2,…,an} se pueden numerar las

palabras de * de la siguiente manera:

0a1 1

a2 2

. .an n

a1a1 n+1

a1a2 n+2

Page 3: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

para = {a, b}, podemos numerar sus cadenas con dígitos binarios 1 y 2 en vez de 0 y 1. Sea a el 1 y b el 2, entonces se obtiene

0a 1b 2aa 11 = 3ab 12 = 4abaa 1211 = 19

de esta manera se representa cada cadena como un entero único.

Y cualquier número podemos representarlo como una secuencia de a’s y b’s, por ejemplo el 32 se convierte a 11112 y luego a aaaab.

Page 4: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Teorema 1. Para todo alfabeto , * es infinito enumerable.

Teorema 2. El conjunto de todos los lenguajes sobre no es numerable.

Demostración. Llamemos L al conjunto de todos los lenguajes sobre , si L es numerable, por tanto podemos enumerarlo como A0, A1, A2, …

* puede numerarse como w0, w1, w2, … Sea B = {wi | wi Ai}. B

contiene las palabras que no pertenecen al lenguaje que tienen el mismo índice que las mismas. Pero como B es un lenguaje B = Ak

para algún k. Si wk B, entonces wk Ak = B. Y por lo tanto wk

esta y no esta en Ak. Lo mismo sucede si suponemos wk B. Por

lo tanto L no es numerable.

Page 5: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

El teorema 2 estipula que hay una cantidad innumerable de lenguajes sobre un alfabeto particular.

Por tanto, no existe ningún método de especificación de lenguajes que sea capaz de definir todos los lenguajes sobre un alfabeto.

Page 6: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Lenguajes regulares y expresiones regulares

Sea un alfabeto. El conjunto de los lenguajes regulares sobre se define recursivamente como sigue:

1. es un lenguaje regular

2. {} es un lenguaje regular

3. Para todo a {a} es un lenguaje regular

4. Si A y B son lenguajes regulares, entonces A B, A · B , A* son lenguajes regulares

5. Ningún otro lenguaje sobre es regular.

Page 7: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

ejemplo

Por ejemplo. El lenguaje de todas las cadenas sobre {a, b, c} que no tienen ninguna subcadena ac es un lenguaje regular, y puede expresarse por

 

A = {c}* ({a} {b}{c}*)*

Page 8: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Simplificación

Se puede simplificar la notación mediante el uso de expresiones regulares. Las equivalencias son:

 

a b denota {a} {b}

ab denota {ab}

a* denota {a}*

a+ denota {a}+

Ejemplo: A = {c}* ({a} {b}{c}*)* = c* (a bc*)*

Page 9: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Expresiones regulares

Los operadores tienen precedencia (*, · , ). Entonces, una expresión regular sobre el alfabeto , es

 

1. y son expresiones regulares.

2. a es una expresión regular para todo a .

3. Si r y s son expresiones regulares, entonces r s, r · s , r* también lo son.

4. Ninguna otra secuencia de símbolos es una expresión regular.

Page 10: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Equivalencia de expresiones regulares

Dos expresiones regulares pueden ser equivalentes, es decir, generan el mismo lenguaje.

La expresión (a*b)* es equivalente a (ab)*b.

Ambos generan o cadenas de aes y bes terminadas en b.

La expresión

ab (ab)*b

Es equivalente a

ab (a*b)*

Page 11: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Reglas para expresiones regulares

1. r s = s r.

2. r = r = r.

3. r r = r.

4. (r s) t = r (s t).

5. r = r = r.

6. r = r = .

7. (rs)t = r(st).

8. r(s t) = rs rt y (r s)t = rt st.

9. r* = r** = r*r* = ( r)* = r*(r ) = (r )r* = rr*.

10. (r s)* = (r* s*)* = (r*s*)* = (r*s)*r* = r*(sr*)* .

11. r(sr)* = (rs)*r.

12. (r*s)* = (r s)*s.

13. (rs*)* = r(r s)*.

14. s(r )*(r ) s = sr*.

15. rr* = r*r.

Page 12: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Autómata finito determinista

Podemos usar un diagrama de transición para ayudar a determinar si una cadena pertenece o no a un lenguaje.

Los nodos del diagrama se denominan estados y se utilizan para señalar hasta donde se ha analizado la cadena.

Las aristas se denominan transiciones y se etiquetan con los símbolos del alfabeto.

Existe un estado, llamado estado inicial, que es de donde parte el análisis de toda cadena.

Algunos estados se marcan como estados de aceptación para determinar si una cadena es legal o no.

La cadena es legal si se termina su análisis en un estado de aceptación.

Los estados de aceptación se representan encerrados en un círculo.

Page 13: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

El siguiente diagrama acepta cadenas de la forma akb.

El siguiente diagrama acepta el lenguaje A = {(ab)i | i 1}.

a

b a,b

a,b

a

b

a

a

b

b

a,b

Page 14: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

El siguiente diagrama acepta cadenas de la forma (ab)*.

El mismo autómata con estados etiquetados q0, q1, q2

Estado/Estrada a b

q0 q1 q2

q1 q2 q0

q2 q2 q2

q1q0

q2

a

b

a,b

ab

Page 15: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Autómata Finito Determinista

Definimos un autómata finito determinista M como una colección de cinco elementos:

1. Un alfabeto de entrada .

2. Una colección finita de estados Q.

3. Un estado inicial s.

4. Una colección F de estados de aceptación o finales.

5. Una función : Q Q que determina el único estado siguiente para el par (qi, ) correspondiente al estado actual y la entrada.

Se usará la notación M = (, Q, s, F, ) para indicar un AFD (autómata finito determinista) M.

Page 16: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

EjemploPor ejemplo, el AFD del diagrama anterior se representa mediante M = (, Q, s, F, ) donde

Q = {q0, q1, q2}

= {a, b}

s = q0

F = {q0}

y se define por la tabla a b

q0 q1 q2

q1 q2 q0

q2 q2 q2

q1q0

q2

a

b

a,b

ab

Page 17: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Construcción de diagramas de transición

Para construir un diagrama de transiciones a partir de una descripción de un autómata, se procede como sigue.

Se dibujan nodos para cada estado del autómata, luego se trazan flechas desde cada estado qi hacia el qj etiquetándolas

con el símbolo de entrada correspondiente, se marca el estado inicial y los estados de aceptación.

Page 18: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Ejercicio

Obtener la expresión regular que representa el lenguaje formado por todas las cadenas sobre {a, b} que tienen un número par de bes. Construir el diagrama de transición para este lenguaje.

Page 19: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Ejercicio

Construir el diagrama de transición para el lenguaje dado por c*(a bc*)*. Convertir el diagrama en una tabla de transición de estados.

Page 20: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

AFD y lenguajesDefinimos el lenguaje aceptado por un AFD M como

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

Por tanto, L(M) es el conjunto de las cadenas que hacen que M pase del estado inicial a un estado de aceptación. Por ejemplo, el siguiente AFD M = (, Q, s, F, ) donde

Q = {q0, q1, q2, q3}

= {a, b}

s = q0

F = {q0, q1, q2}

y definida por la tabla

a b

q0 q0 q1

q1 q0 q2

q2 q0 q3

q3 q3 q3

Page 21: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Tiene el siguiente diagrama de transición

acepta el lenguaje

L(M) = {w {a, b}* | w no contiene tres bes consecutivas}

q1q0

q2

a

b

b

a

b

q3

a

a, b

Page 22: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Se puede aplicar recursivamente una serie de caracteres de una cadena dada al AFD.

Por ejemplo, la aplicación de la cadena bbab en el caso anterior dará ((((q0,b),b),a),b) = q1.

Esto puede abreviarse como (q0,bbab).

Diremos que dos AFD M1 y M2 son equivalentes si L(M1) =

L(M2).

Page 23: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Autómata finito no determinista

Un autómata finito es no determinista si se permite que desde un estado se realicen cero, una o más transiciones para el mismo símbolo de entrada.

Page 24: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

El lenguaje a*b ab* tiene el siguiente AFD asociado.

q1q0

q2

a a,b

b

a

b

q5

a

q3 q4

q6

a,bb

b

a,ba

Page 25: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Consideremos ahora el siguiente diagrama de transición, este reconoce las mismas cadena, sin embargo es mucho más simple.

Note que el diagrama de transiciones no representa una función de Q en Q.

a

q2q0

q3

b

baq1

q4

b

a

Page 26: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Definición

Definimos un autómata finito no determinista M como una colección de cinco elementos:

1. Un alfabeto de entrada .

2. Una colección finita de estados Q.

3. Un estado inicial s.

4. Una colección F de estados de aceptación o finales.

5. Una relación sobre (Q ) Q y se llama relación de transición.

Page 27: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Por ejemplo, el AFN anterior se describe por medio de

Q = {q0, q1, q2, q3, q4}

F = {q2, q3, q4}

s = q0

= {a, b}

y dada por la tabla a b q0 {q1, q4} {q3} q1 {q1} {q2} q2

q3 q4 {q4}

a

a

q2q0

q3

b

bq1

q4

b

a

Page 28: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Por ejemplo, el AFN siguiente reconoce (ab aba)*

Q = {q0, q1, q2}

F = {q0}

s = q0

= {a, b}

y dada por la tabla a b q0 {q1} q1 {q0, q2} q2 {q0}

a

q2

q0

b

b

q1

a

Page 29: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Lenguaje aceptado por un AFN

Si M es un AFN, el lenguaje aceptado por M se define como

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

Para poder decidir si una cadena no es aceptada por un AFN deben recorrerse todas las rutas posibles en el AFN para esa cadena, y determinar que ninguna de estas lo lleva al algún estado de aceptación.

Page 30: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

EjemploSi X Q, vamos a interpretar (X, ) como el conjunto {p | q X y p (q, )}.

Para el autómata de la figura que reconoce el lenguaje (a* b*)* (aa bb) (a* b*)* . OBTENER LA TABLA DE TRANSICIÓN

Page 31: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Para este ejemplo ({q0, q2, q3}, b) = {q0, q1} {q2} =

{q0, q1, q2}.

Para una secuencia de símbolos, por ejemplo abaab, se puede escribir (q0, abaab) = (((((q0, a)b)a)a)b) =

{q0, q1, q4}.

Page 32: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Equivalencia de AFD y AFN

La definición de equivalencia se extiende a los AFN, es decir, dos autómatas (AFD o AFN) M1 y M2 son equivalentes si L(M1)

= L(M2).

a

a,b

a

a,b

b

a,b

Page 33: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Consideremos el AFN(q0, a) = {q1, q2}

(q0, b) =

({q1, q2}, a) =

({q1, q2}, b) = {q3}

(, a) = (, b) =

(q3, a) = {q2}

(q3, b) =

(q2, a) =

(q2, b) = {q3}

Page 34: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

AFD equivalente

a b a

b

b

a ba

a,b

{q0}{q1,q2} {q3} {q2}

Page 35: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

-transicionesUna -transición es una transición entre dos estados que no consume ningún símbolo.

a

q0q1

a

a

q0 q1

b

q2

a b

q0 {q1}

q1 {q2}

q2 {q0} {q0}

Acepta: a*

Page 36: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

-cerradura

Si un AFN tiene -transiciones, la relación de transición asocia pares de Q ( {}) Q con subconjuntos de Q.

Para todo estado q Q definimos la -cerradura de q como

-c(q) = {p | p es accesible desde q sin consumir nada en la entrada}

Ampliaremos esta definición para todo estado del conjunto de estados de la siguiente manera

c q q q c qi i i ikk

n

n1 21

, , ,

Page 37: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Estados que siguen a q

Para q Q y se define

d(q, ) = {p | hay una transición de p a q etiquetada con }

Ampliaremos esta definición para todo estado del conjunto de estados de la siguiente manera

d q q q d qi i i ikk

n

n1 21

, , , , , ,

A partir de un AFN M = (, Q, s, F, ) con -transiciones, se puede construir una AFN sin -transiciones que acepte el mismo lenguaje. Se define M = (, Q, s, F', ') como

F' = F {q | -c(q) F }

y (q, ) = -c(d(-c(q), )).

Page 38: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Ejemplo: eliminación de -transiciones

q0 q1

a

b

b

q4

q2

q3 q5

a

-c(q0) = {q0,q1}

d({q0, q1},a) = {q3, q4}

-c({q3, q4}) = {q1, q3, q4, q5}

(q0,a) = {q1, q3, q4, q5}

d({q0, q1},b) = {q2}

-c({q2}) = {q2}

(q0,b) = {q2}

-c(q1) = {q1}

d ({q1},a) = {q4}

-c({q4}) = {q4,q5}

(q1,a) = {q4,q5}

d ({q1},b) = {q2}

-c({q2}) = {q2}

(q1,b) = {q2}

-c(q2) = {q2}

d ({q2},a) = {}

-c({}) = {}(q2,a) = {}

d ({q2},b) = {}

-c({}) = {}(q2,b) = {}

-c(q3) = {q1, q3}

d ({q1, q3},a) = {q4}

-c({q4}) = {q4,q5}

(q3,a) = {q4,q5}

d ({q1, q3},b) = {q2,,q4}

-c({q2,,q4}) = {q2,,q4,q5}

(q3,b) = {q2,,q4,q5}

-c(q4) = {q4,q5}

d ({q4, q5},a) = {}

-c({}) = {}(q4,a) = {}

d ({q4, q5},b) = {}

-c({}) = {}(q4,b) = {}

-c(q5) = {q5}

d ({q5},a) = {}

-c({}) = {}(q5,a) = {}

d ({q5},b) = {}

-c({}) = {}(q5,b) = {}

Page 39: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Ejemplo: eliminación de -transiciones

' a b

q0 {q1, q3, q4, q5} {q2}

q1 {q4,q5} {q2}

q2 {} {}

q3 {q4,q5} {q2,,q4,q5}

q4 {} {}

q5 {} {}

q1

a

a

b

b

a,b

q4

q2

q3 q5

a

aa

a,b

b

Page 40: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Autómatas finitos y expresiones regulares

Para un alfabeto se pueden construir AFN (o AFD) que acepten palabras unitarias y el lenguaje vacío como se muestra en la figura

Sean M1 = (1, Q1, s1, F1, 1) y M2 = (2, Q2, s2, F2, 2) dos AFN. Podemos unir

M1 y M2 para que acepte L(M1) L(M2), añadiendo un nuevo estado inicial s y

dos -transiciones una de s a s1, y otra de s a s2. La construcción formal del

nuevo AFN M = (, Q, s, F, ) esta dada por = 1 2, F = F1 F2 y Q = Q1

Q2 {s}.

a

q1 q2q1

Page 41: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Autómatas finitos y expresiones regulares

Se pueden considerar las transiciones 1 y 2 como ternas ordenadas de Q1

Q1 y Q2 Q2, donde (q, , p) significa que existe una transición de q a

p mediante el carácter . De aquí

= 1 2 {(s, , s1),(s, , s2)}

Para los autómatas anteriores, se puede formar un AFN que acepte L(M1)L(M2).

Para esto, se agregan -transiciones entre cada estado de aceptación de M1 y el

estado inicial de M2. El autómata que se obtiene es

Q = Q1 Q2

s = s1

F = F2

= 1 2 {F1 {} {s2}}

s2 (q, ) para todo q F1

Page 42: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Autómatas finitos y expresiones regulares

Es posible obtener L(M2)* de la siguiente forma. Primero se añade un estado

inicial de aceptación s’. Se agrega una -transición de este estado a s. Se agrega además, una -transición entre todos los estados de aceptación y el estado inicial s’. El autómata resultante será M' = (Q', , s', F', '), donde

Q = Q1 {s’}

s = s1

F = {s’}

'= 1 {(s’, , s)} (F1 {} {s’})

Page 43: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Teorema 5

El conjunto de lenguajes aceptados por un autómata finito sobre el alfabeto contiene y los lenguajes unitarios {a} para todo a . Este conjunto es cerrado con respecto a la unión, concatenación y la cerradura de estrella.

Page 44: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Consideremos un autómata finito M = (, Q, s, F, ) y supongamos que s = q0

es el estado inicial. Para todo estado qi sea

Ai = {w | (qi, w) F }

Es decir, Ai es el conjunto de las cadenas sobre que hacen que M pase

desde qi hasta un estado de aceptación. Obsérvese que A0 = L(M).

para el autómata de la figura. se tiene

A5 = , A2 =

A4 = , A1 = b

A3 = a, A0 = ab ba

aa

q0q2

b

q3

q1

q4

q5a,b

a,b

a

b

b

Page 45: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Supongamos que qj (qi, ). Entonces Ai contiene a Aj. De hecho, se tiene que

Ai = {Aj | qj (qi, )}

Por ejemplo, el anterior autómata

A0 = aA1 bA2, A3 = aA4 bA5

A1 = bA2 aA5, A4 = aA5 bA5

A2 = aA5 bA5, A5 =

Sustituyendo se obtiene que L(M) = ab ba.

Page 46: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Lema de ArdenUna ecuación de la forma X = AX B, donde A, tiene una solución única X = A*B.

Demostración. A*B = (A )B = A+B B = A(A*B) B, entonces A*B es solución.

Sea X = A*B C solución donde C A*B . Sustituyendo

A*B C = A(A*B C) B

= A+B AC B

= A+B B AC

= (A+ )B AC

= A*B AC

Realizando la intersección con C en ambos lados nos da C = AC C. Por tanto C AC. Pero A, por tanto la cadena más corta de AC debe ser más larga que la cadena más corta de C. Esto solo se cumple si C = . Por tanto A*B es la única solución.

Page 47: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Lema 2. Sea M un autómata finito. Entonces existe una expresión regular r para la cual L(r) = L(M).

Teorema 6 (Teorema de Kleene). Un lenguaje es regular si y sólo si es aceptado por un autómata finito.

Page 48: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Ejemplo

aq0 q2

b

q3q1q4

b

b

aa

a b

A0 = aA1

A1 = aA2 bA4

A2 = aA3 bA4

A3 = aA3 bA4

A4 = b*

A3 = aA2 b+

= a*b*

A2 = a+b* bb*

A1 = a(a+b* b+) b+

= aa+b* ab+ b+

A0 = a2a+b* a2b+ ab+

Page 49: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Propiedades de los lenguajes regulares

Sea un AFD M = (, Q, s, F, ), donde Q contiene n estados. Si L(M) es infinito, podemos encontrar w = a1, a2, …, an+1, que pertenezca a L(M). Si

q1 = (s, a1)

q2 = (q1, a2)

y así sucesivamente, obtendríamos los n+1 estados, q1, q2, …, qn+1 .

Como Q tiene n estados, los qi no serán todos distintos. Para algunos índices j y k, con 1

j k n+1, se tendrá que qj = qk. Por lo tanto, habrá un ciclo para llegar al estado de

aceptación. Como se muestra en la figura

q0 q1

qj = qk

qj+1

qk+1 qn+1

El lazo tiene longitud de al menos 1. Las cadenas w = a1, a2, …, aj, (aj+1,…, ak)m ak+1,

…, an+1 estarán en L(M) para m 0.

Page 50: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Lema del bombeo

Sea L un lenguaje regular infinito. Entonces hay una constante n de forma que, si w es una cadena de L cuya longitud es mayor o igual a n, se tiene que w = uvx, siendo uvix L para todo i 0, con | v | 1 y | ux | n.

Este lema es utilizado para probar si un lenguaje es o no regular.

Ejemplo: sea }1{

2

iaL i

Toda cadena de L debe tener una longitud que sea un cuadrado perfecto. Supongamos que cumple el lema del bombeo, entonces

uvxan 2

Se cumple que n2 = |uvx| < |uv2x| <= n2 + n < (n+1)2

Es decir, |uv2x| se encuentra entre dos cuadrados perfectos consecutivos y por tanto no es un cuadrado perfecto. En consecuencia no pertenece al lenguaje L.

Page 51: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Otro ejemplo

Sea el lenguaje L = {ambm | m>=0}. L es infinito.

Si se cumple el lema del bombeo se tiene que anbn= |uvx| con | v | 1 y | ux | n.

Dado que | ux | n, | v | < n, y por tanto consta solo de aes. Entonces v = as, para s>=1.

Si u = ar, x = an–(s + r)bn.

Por lo tanto |uv2x| = ara2san–(s + r)bn = an + sbn.

Dado que s>=1, la cadena no puede pertenecer a L.

Page 52: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Teorema 7Sea M un autómata finito de k estados.

1. L(M) si y solo si M acepta una cadena de longitud menor que k.

2. L(M) es infinito si y solo si M acepta una cadena de longitud n, donde k n 2k.

Demostración.

1. Si M acepta una cadena de longitud menor que k, entonces L(M) . Si L(M) , entonces existe w L(M). Supongamos | w | k. Por el lema del bombeo w = uvx, y uvix L(M). En particular, ux L(M). Si | ux | k, quedaría probado, el proceso se puede repetir para esta cadena hasta llegar a una longitud k.

2. Supongamos w L(M) con k | w | 2k. Pero por el lema del bombeo w = uvx, y uvix L(M), para todo i, con lo que L(M) es infinito. Ahora supongamos que L(M) es infinito. Habrá cadenas con longitud k. Supongamos | w | 2k. Pero por el lema del bombeo w = uvx, y uvix L(M). Entonces ux L(M). Si | ux | 2k, quedaría probado, si no se puede repetir el proceso hasta encontrar una cadena que se encuentre entre k y 2k – 1.

Page 53: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Aplicación de las leyes de de Morgan

Supongamos que L y K son lenguajes sobre . De las leyes de De Morgan

( - L) ( - K) = - (L K)

Por tanto

L K = - ( - (L K))

= - (( - L) ( - K))

Pero el complemento de un lenguaje es regular si el lenguaje es regular, por lo tanto la intersección de dos lenguajes será regular si ambos lenguajes son regulares. Este hecho puede utilizarse para demostrar si un lenguaje es regular o no.

Por ejemplo, sea = {a, b} y L = {wwI | w }. Probaremos que L no es regular. Sea L1

= {anb2kan | n, k 0} no regular, y L2 = {akbnam | k, n, m 0} regular. Obsérvese que L2

L = L1. Si L fuera regular, lo sería L1. Por tanto L no puede ser regular.

Page 54: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Indistinguibilidad

Sea M = (Q, , , q0, F) un AFD. Definimos la relación de indistinguibilidad ~ en Q como:

q, q’ Q, q ~ q’ x, * ((q, x) F (q’, x))

La relación ~ es una relación de equivalencia que induce una partición en Q y vamos a definir un autómata a partir de M, obtenido mediante la agrupación de estados pertenecientes al mismo bloque de la partición.

Page 55: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Minimización

a

q0

q2

bq3q1

q4

b

b

aa

a

b

q5

q6

q7

a

b

b

b

a

a

b

a

q6 se elimina porque no es accesible.

La partición inicial es

0 = {{q0, q1, q2, q3, q5, q7},{q4}}.

Llamamos

B1 = {q0, q1, q2, q3, q5, q7} y B2 = {q4}.

a b

q0 B1 B1

q1 B1 B1

q2 B1 B2

q3 B2 B1

q5 B1 B1

q7 B1 B2

q4 B1 B2

Page 56: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

De tabla anterior se obtiene 1

La partición es

1 = {{q0, q1, q5}, {q2, q7}, {q3}, {q4}}.

Llamamos

B1 = {q0, q1, q5}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4}.

a b

q0 B2 B3

q1 B2 B3

q5 B1 B1

q2 B1 B4

q7 B1 B4

q3 B4 B1

q4 B1 B2

De tabla anterior se obtiene 2

La partición es

2 = {{q0, q1}, { q5}, {q2, q7}, {q3}, {q4}}.

Llamamos

B1 = {q0, q1}, B2 = {q2, q7}, B3 = {q3} y B4 = {q4} y B5 = {q5}.

Puede verse que 3 es igual a 2. Por lo tanto el AFD ya está minimizado.

a b

q0 B2 B3

q1 B2 B3

q2 B5 B4

q7 B5 B4

q3 B4 B5

q4 B1 B4

q5 B5 B1

Page 57: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Diagrama de transiciones

B1

b

B5ba

a

b

ba

ba

B2

B3

a b

B1 B2 B3

B2 B5 B4

B3 B4 B5

B4 B1 B4

B5 B5 B1

B4

a

Page 58: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Tarea

q0

b

b

a

a

b

ba

ba

ab a

a,b

a,b

q1

q2

q3

q4

q6

q5

q7

Minimizar

Page 59: Lenguajes regulares Teoría del Autómata. LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto  = {a 1,a 2,…,a n } se pueden numerar las palabras

Aplicaciones de los autómatas finitos

Reconocedor de números enteros

cualquier otro carácter

1,2, ..., 9

q2

q0

q1

0,1,2, ..., 9

cualquier otro carácter

cualquier otro carácter

1. i = 12. ok = verdadero3. long = longitud(s) 4. si s[i] en num entonces i = i+1 mientras i<long y ok si s[i] en num i = i + 1 sino ok = falso fin si fin mientras sino ok = falso