Lenguajes regulares Teoría del Autómata.

Slides:



Advertisements
Presentaciones similares
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Advertisements

Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Gramáticas.
Diseño de AFN’s.
Lenguajes y Expresiones Regulares
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
Tema: Decibilidad Integrantes: Ileana Rdguez Soto
Valores y Vectores Propios
Tema 3 Propiedades de los lenguajes independientes de contexto
funciones Por: Carlos Alberto García Acosta
TEORÍA DE CONJUNTOS.
Unidad II: Teoría de Conjuntos.
TEÓRIA DE CONJUNTOS Profesor: Rubén Alva Cabrera.
Expresiones regulares
Tema 2 Autómatas finitos 1. Autómata finito determinista
Tema 1.- Lenguajes. Gramáticas
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
Ecuaciones diferenciales de 1er orden :
Teoría de conjuntos Un conjunto es una colección o clase de objetos bien definidos y diferenciables entre sí. Los conjuntos pueden ser finitos o infinitos.
ÍNDICE Conjuntos Partes de un conjunto. Operaciones.
   Conjuntos.
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
FUNDAMENTOS DE LA TEORÍA DE CONJUNTOS
Tema 1.- Lenguajes. Gramáticas
Tema 2 Lenguajes Formales.
Programación de sistemas
Teoría de Conjuntos Prof. Carlos Coronel R..
GRAFOS HUGO ARAYA CARRASCO.
EXPONENTES Y RADICALES
Teoria de grafos.-clase 4
CARRERA PROFESIONAL: Lengua, Traducción e Interpretación Asignatura: MATEMÁTICA Tema: “FUNCIONES LÓGICAS”
EXIGENCIAS COMPUTACIONALES DEL PROCESAMIENTO DIGITAL DE LA INFORMACION
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
Teoría de lenguajes y compiladores
Tema 2 Autómatas finitos 1. Autómata finito determinista
Autómatas Finitos Es un diagrama de transiciones que permite identificar cadenas que pertenecen a un lenguaje. Puede ser determinista o no determinista.
Ejemplo de AFN Ej. Diseña un AFN que acepte todas las cadenas que contengan dos ceros consecutivos o dos unos consecutivos. Solución AFN q4 1 q2 q1 q0.
Teoría de lenguajes y compiladores Analizadores lexicográficos
MÁQUINAS DE TURING Teoría del Autómata.
Matrices Conceptos generales
TEÓRIA DE CONJUNTOS.
Curso de Teoría del Autómata
TEÓRIA DE CONJUNTOS.
Tomado de Sudkamp: Languages and Machines Cap. 6.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Lenguajes Formales y Autómatas
Algebra Booleana.
TEÓRIA DE CONJUNTOS Docente: Jesús Huaynalaya García.
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
Programación de Sistemas FEI – 2008
1 AFDAFN AF Gramáticas lineales derecha Expresiones regulares Tema 2 Método de los AF Método de las derivadas Sistemas de Ecuaciones Tema 1.
Teoría de lenguajes y compiladores
TEÓRIA DE CONJUNTOS Profesor: Ing. Oscar Guaypatin Pico.
Reglas Básicas del Álgebra de Boole
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
UNIVERSIDAD DE GUADALAJARA Centro Universitario de Ciencias Económico Administrativas Departamento de Métodos Cuantitativos Ciclo 2012-A Curso Propedéutico.
INVARIANTES PONENTE: ISRAEL DIAZ ACHA.
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
“CURSO PROPEDÉUTICO PARA EL MEJORAMIENTO DEL PENSAMIENTO MATEMÁTICO”
Principio aditivo o de adición o regla de suma
Ecuaciones y Sistemas de Ecuaciones Lineales
COLEGIO VIRTUAL GERSAIN
TEÓRIA DE CONJUNTOS.
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Universidad Valle del Momboy Carvajal, Trujillo Alumnas Luzmila.
TEÓRIA DE CONJUNTOS 5º Profesor:
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
TEÓRIA DE CONJUNTOS.
Transcripción de la presentación:

Lenguajes regulares Teoría del Autómata

LENGUAJES REGULARES Lenguajes sobre alfabetos Para un alfabeto S = {a1,a2,…,an} se pueden numerar las palabras de S* de la siguiente manera: e 0 a1 1 a2 2 . . an n a1a1 n+1 a1a2 n+2

para S = {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 e 0 a 1 b 2 aa 11 = 3 ab 12 = 4 abaa 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.

Teorema 1. Para todo alfabeto S, S* es infinito enumerable. Teorema 2. El conjunto de todos los lenguajes sobre S no es numerable. Demostración. Llamemos L al conjunto de todos los lenguajes sobre S, si L es numerable, por tanto podemos enumerarlo como A0, A1, A2, … S* 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.

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.

Lenguajes regulares y expresiones regulares Sea S un alfabeto. El conjunto de los lenguajes regulares sobre S se define recursivamente como sigue:  es un lenguaje regular {e} es un lenguaje regular Para todo a Î S {a} es un lenguaje regular Si A y B son lenguajes regulares, entonces A È B, A · B , A* son lenguajes regulares Ningún otro lenguaje sobre S es regular.

A = {c}* ({a} È {b}{c}*)* 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}*)*

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*)*

Expresiones regulares Los operadores tienen precedencia (*, · , È). Entonces, una expresión regular sobre el alfabeto S, es   Æ y e son expresiones regulares. a es una expresión regular para todo a Î S. Si r y s son expresiones regulares, entonces r È s, r · s , r* también lo son. Ninguna otra secuencia de símbolos es una expresión regular.

Equivalencia de expresiones regulares Dos expresiones regulares pueden ser equivalentes, es decir, generan el mismo lenguaje. La expresión (a*b)* es equivalente a  (ab)*b. Ambos generan  o cadenas de aes y bes terminadas en b. La expresión ab   (ab)*b Es equivalente a ab  (a*b)*

Reglas para expresiones regulares r È s = s È r. r È Æ = r = Æ È r. r È r = r. (r È s) È t = r È (s È t). er = re = r. Ær = rÆ = Æ. (rs)t = r(st). r(s È t) = rs È rt y (r È s)t = rt È st. r* = r** = r*r* = (e È r)* = r*(r È e) = (r È e)r* = e È rr*. (r È s)* = (r* È s*)* = (r*s*)* = (r*s)*r* = r*(sr*)* . r(sr)* = (rs)*r. (r*s)* = e È (r È s)*s. (rs*)* = e È r(r È s)*. s(r È e)*(r È e) È s = sr*. rr* = r*r.

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.

El siguiente diagrama acepta cadenas de la forma akb. a,b b a,b El siguiente diagrama acepta el lenguaje A = {(ab)i | i ³ 1}. a,b b b a b a a

a b q0 q1 q2 El siguiente diagrama acepta cadenas de la forma (ab)*. El mismo autómata con estados etiquetados q0, q1, q2 b Estado/Estrada a b q0 q1 q2 q0 q1 a b a q2 a,b

Autómata Finito Determinista Definimos un autómata finito determinista M como una colección de cinco elementos: 1. Un alfabeto de entrada S. 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 d: Q  S ® Q que determina el único estado siguiente para el par (qi, s) correspondiente al estado actual y la entrada. Se usará la notación M = (S, Q, s, F, d) para indicar un AFD (autómata finito determinista) M.

Ejemplo Por ejemplo, el AFD del diagrama anterior se representa mediante M = (S, Q, s, F, d) donde b Q = {q0, q1, q2} S = {a, b} s = q0 F = {q0} q0 q1 a b a q2 a,b d a b q0 q1 q2 y d se define por la tabla

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.

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.

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.

L(M) = {w Î S* | w es aceptada por M} AFD y lenguajes Definimos el lenguaje aceptado por un AFD M como L(M) = {w Î S* | 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 = (S, Q, s, F, d) donde Q = {q0, q1, q2, q3} S = {a, b} s = q0 F = {q0, q1, q2} y d definida por la tabla d a b q0 q1 q2 q3

L(M) = {w Î {a, b}* | w no contiene tres bes consecutivas} Tiene el siguiente diagrama de transición a a b q0 q1 b a a, b q3 q2 b acepta el lenguaje L(M) = {w Î {a, b}* | w no contiene tres bes consecutivas}

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á d(d(d(d(q0,b),b),a),b) = q1. Esto puede abreviarse como d(q0,bbab). Diremos que dos AFD M1 y M2 son equivalentes si L(M1) = L(M2).

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.

El lenguaje a*b È ab* tiene el siguiente AFD asociado. q0 q1 a a,b a a,b a b q2 q3 q4 q5 a,b b a q6 b

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 ´ S en Q. a a b q0 q1 q2 b a q3 q4 b

Definición Definimos un autómata finito no determinista M como una colección de cinco elementos: Un alfabeto de entrada S. Una colección finita de estados Q. Un estado inicial s. Una colección F de estados de aceptación o finales. Una relación D sobre (Q  S)  Q y se llama relación de transición.

Por ejemplo, el AFN anterior se describe por medio de Q = {q0, q1, q2, q3, q4} F = {q2, q3, q4} s = q0 S = {a, b} y D dada por la tabla a b q0 q1 q2 b a q3 q4 b

Por ejemplo, el AFN siguiente reconoce (ab  aba)* Q = {q0, q1, q2} F = {q0} s = q0 S = {a, b} y D dada por la tabla a q0 q1 b a q2 28

Lenguaje aceptado por un AFN Si M es un AFN, el lenguaje aceptado por M se define como L(M) = {w Î S* | 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.

Ejemplo Si X Í Q, vamos a interpretar D(X, s) como el conjunto {p | q Î X y p Î D(q, s)}. Para el autómata de la figura que reconoce el lenguaje (a* b*)* (aa È bb) (a* b*)* . OBTENER LA TABLA DE TRANSICIÓN

Para este ejemplo D({q0, q2, q3}, b) = {q0, q1} È {q2} È Æ = {q0, q1, q2}. Para una secuencia de símbolos, por ejemplo abaab, se puede escribir D(q0, abaab) = D(D(D(D(D(q0, a)b)a)a)b) = {q0, q1, q4}.

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,b a,b a a b a,b

Consideremos el AFN D(q0, a) = {q1, q2} D(q0, b) = Æ D({q1, q2}, a) = Æ D({q1, q2}, b) = {q3} D(Æ, a) = D(Æ, b) = Æ D(q3, a) = {q2} D(q3, b) = Æ D(q2, a) = Æ D(q2, b) = {q3}

AFD equivalente b {q1,q2} {q0} {q3} {q2} a b a a b a b f a,b

e-transiciones Una e-transición es una transición entre dos estados que no consume ningún símbolo. q0 q1 a q1 q0 e a,e b a q2 Acepta: a* D a b e q0 {q1} f q1 {q2} q2 {q0}

e-cerradura Si un AFN tiene e-transiciones, la relación de transición D asocia pares de Q  (S È {e})  Q con subconjuntos de Q. Para todo estado q Î Q definimos la e-cerradura de q como e-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

Estados que siguen a q Para q Î Q y s Î S se define d(q, s) = {p | hay una transición de p a q etiquetada con s} Ampliaremos esta definición para todo estado del conjunto de estados de la siguiente manera A partir de un AFN M = (S, Q, s, F, D) con e-transiciones, se puede construir una AFN sin e-transiciones que acepte el mismo lenguaje. Se define M = (S, Q, s, F', D') como F' = F È {q | e-c(q) Ç F ¹ Æ} y D(q, s) = e-c(d(e-c(q), s)).

Ejemplo: eliminación de e-transiciones q0 q1 a e b q4 q2 q3 q5 e-c(q0) = {q0,q1} d({q0, q1},a) = {q3, q4} e-c({q3, q4}) = {q1, q3, q4, q5} D(q0,a) = {q1, q3, q4, q5} d({q0, q1},b) = {q2} e-c({q2}) = {q2} D(q0,b) = {q2} e-c(q1) = {q1} d ({q1},a) = {q4} e-c({q4}) = {q4,q5} D(q1,a) = {q4,q5} d ({q1},b) = {q2} D(q1,b) = {q2} e-c(q2) = {q2} d ({q2},a) = {} e-c({}) = {} D(q2,a) = {} d ({q2},b) = {} D(q2,b) = {} e-c(q3) = {q1, q3} d ({q1, q3},a) = {q4} D(q3,a) = {q4,q5} d ({q1, q3},b) = {q2,,q4} e-c({q2,,q4}) = {q2,,q4,q5} D(q3,b) = {q2,,q4,q5} e-c(q4) = {q4,q5} d ({q4, q5},a) = {} D(q4,a) = {} d ({q4, q5},b) = {} D(q4,b) = {} e-c(q5) = {q5} d ({q5},a) = {} D(q5,a) = {} d ({q5},b) = {} D(q5,b) = {}

Ejemplo: eliminación de e-transiciones b q0 {q1, q3, q4, q5} {q2} q1 {q4,q5} q2 {} q3 {q2,,q4,q5} q4 q5 b q1 q2 a b a a a a b a,b q3 q4 q5 a,b

Autómatas finitos y expresiones regulares Para un alfabeto S se pueden construir AFN (o AFD) que acepten palabras unitarias y el lenguaje vacío como se muestra en la figura q1 q1 q2 a Sean M1 = (S1, Q1, s1, F1, D1) y M2 = (S2, Q2, s2, F2, D2) dos AFN. Podemos unir M1 y M2 para que acepte L(M1) È L(M2), añadiendo un nuevo estado inicial s y dos e-transiciones una de s a s1, y otra de s a s2. La construcción formal del nuevo AFN M = (S, Q, s, F, D) esta dada por S = S1 È S2, F = F1 È F2 y Q = Q1 È Q2 È {s}.

Autómatas finitos y expresiones regulares Se pueden considerar las transiciones D1 y D2 como ternas ordenadas de Q1  S  Q1 y Q2  S  Q2, donde (q, s, p) significa que existe una transición de q a p mediante el carácter s. De aquí D = D1 È D2 È {(s, e, s1),(s, e, s2)} Para los autómatas anteriores, se puede formar un AFN que acepte L(M1)L(M2). Para esto, se agregan e-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 = D1 È D2 È {F1  {e}  {s2}} s2 Î D(q, e) para todo q Î F1

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 e-transición de este estado a s. Se agrega además, una e-transición entre todos los estados de aceptación y el estado inicial s’. El autómata resultante será M' = (Q', S, s', F', D'), donde Q = Q1 È {s’} s = s1 F = {s’} D' = D1 È {(s’, e, s)} È (F1 ´ {e} ´ {s’})

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

Ai = {w Î S* | D(qi, w) Ç F ¹ Æ} Consideremos un autómata finito M = (S, Q, s, F, D) y supongamos que s = q0 es el estado inicial. Para todo estado qi sea Ai = {w Î S* | D(qi, w) Ç F ¹ Æ} Es decir, Ai es el conjunto de las cadenas sobre S que hacen que M pase desde qi hasta un estado de aceptación. Obsérvese que A0 = L(M). q2 q0 q1 para el autómata de la figura. se tiene A5 = Æ, A2 = e A4 = e, A1 = b A3 = a, A0 = ab È ba b a a a,b b b a,b q5 a q3 q4

Supongamos que qj Î D(qi, s). Entonces Ai contiene a sAj Supongamos que qj Î D(qi, s). Entonces Ai contiene a sAj. De hecho, se tiene que Ai = È {sAj | qj Î D(qi, s)} Por ejemplo, el anterior autómata A0 = aA1 È bA2, A3 = aA4 È bA5 A1 = bA2 È aA5, A4 = e È aA5 È bA5 A2 = e È aA5 È bA5, A5 = Æ Sustituyendo se obtiene que L(M) = ab È ba.

Lema de Arden Una ecuación de la forma X = AX È B, donde e Ï A, tiene una solución única X = A*B. Demostración. A*B = (A È e)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+ È e)B È AC = A*B È AC Realizando la intersección con C en ambos lados nos da C = AC Ç C. Por tanto C Í AC. Pero e Ï 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.

Lema 2. Sea M un autómata finito 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.

Ejemplo b q3 q4 q0 q1 q2 a a a b a b b A4 = b* A3 = aA2 È b+ È e A2 = a+b* È bb* A1 = a(a+b* È b+)È b+ = aa+b* È ab+È b+ A0 = a2a+b* È a2b+È ab+ A0 = aA1 A1 = aA2 È bA4 A2 = aA3 È bA4 A3 = e È aA3 È bA4

Propiedades de los lenguajes regulares Sea un AFD M = (S, Q, s, F, d), donde Q contiene n estados. Si L(M) es infinito, podemos encontrar w = a1, a2, …, an+1, que pertenezca a L(M). Si q1 = d(s, a1) q2 = d(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 qj+1 q0 q1 qj = qk 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.

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 Toda cadena de L debe tener una longitud que sea un cuadrado perfecto. Supongamos que cumple el lema del bombeo, entonces 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.

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.

Teorema 7 Sea M un autómata finito de k estados. L(M) ¹ Æ si y solo si M acepta una cadena de longitud menor que k. L(M) es infinito si y solo si M acepta una cadena de longitud n, donde k £ n £ 2k. Demostración. 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. 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.

Aplicación de las leyes de de Morgan Supongamos que L y K son lenguajes sobre S. De las leyes de De Morgan (S* - L) È (S* - K) = S* - (L Ç K) Por tanto L Ç K = S* - (S* - (L Ç K)) = S* - ((S* - L) È (S* - 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 S = {a, b} y L = {wwI | w Î S*}. 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.

q, q’  Q, q ~ q’  x,  S* (d(q, x)  F  d(q’, x)) Indistinguibilidad Sea M = (Q, S, d, q0, F) un AFD. Definimos la relación de indistinguibilidad ~ en Q como: q, q’  Q, q ~ q’  x,  S* (d(q, x)  F  d(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.

Minimización a b q0 q4 a q6 a b q2 a b b a a b q1 q3 a b b q7 q5 b a q6 se elimina porque no es accesible. La partición inicial es p0 = {{q0, q1, q2, q3, q5, q7},{q4}}. Llamamos B1 = {q0, q1, q2, q3, q5, q7} y B2 = {q4}.

De tabla anterior se obtiene p1 La partición es q0 B2 B3 q1 q5 B1 q2 B4 q7 q3 q4 De tabla anterior se obtiene p1 La partición es p1 = {{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 q2 B5 B4 q7 q3 q4 B1 q5 De tabla anterior se obtiene p2 La partición es p2 = {{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 p3 es igual a p2. Por lo tanto el AFD ya está minimizado.

Diagrama de transiciones B2 a b B1 B2 B3 B5 B4 a a a b B1 B4 a B5 b b a b B3 b

Tarea Minimizar a,b q5 a a q1 b b q0 a a b a q3 q6 q7 b b a q2 b q4

Aplicaciones de los autómatas finitos Reconocedor de números enteros 0,1,2, ..., 9 q0 1. i = 1 2. ok = verdadero 3. 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 1,2, ..., 9 q1 cualquier otro carácter cualquier otro carácter q2 cualquier otro carácter