You are on page 1of 17

Lenguajes Autómatas

1
Lenguajes Autómatas

2
Lenguajes Autómatas

Lema de Sondeo (Pumping)

Útil para demostrar que un conjunto no es regular. La idea es que siempre que un AF
examine una cadena larga (mayor que el número de estados) y la acepte entonces
significa que debe haber un estado repetido (pasa por el más de una vez) y se pueden
insertar copias de la subcadena entre las dos ocurrencias de ese estado repetido de tal
forma que la cadena resultante también es aceptada

El lema de bombeo para lenguajes regulares enuncia una propiedad que cumplen
todos los lenguajes regulares infinitos (y también algunos lenguajes que no son
regulares). Gracias a este lema podremos demostrar que ciertos lenguajes infinitos no
son regulares. Es importante hacer notar que el lema de bombeo es una herramienta
adecuada para demostrar que un lenguaje no es regular, pero no lo será para
demostrar que un lenguaje si es regular (por el hecho de que existen algunos lenguajes
no regulares que la cumplen). Por tanto, si un lenguaje no cumple el lema de bombeo
no es regular, pero si lo cumple no podremos decir si es o no regular.

Para todo lenguaje regular infinito L, existe una constante n, dependiente de ese
lenguaje, de forma que si w es una cadena de L con |w| ≥ n, podemos partir w en tres
cadenas, x, y, z, de forma que:
• w = xyz,
• y ≠ ε (o, dicho de otro modo, que |y| ≥ 1),
• |xy| <= n
• Para cualquier k ≥ 0, la cadena xyk z pertenece a L.
O sea que para cualquier cadena de L lo bastante larga, siempre podremos encontrar
una partición en tres subcadenas, con una no vacía en el medio (la y) que no está
demasiado lejos del comienzo de la palabra, que podremos “bombear”; es decir, que,
si se repite la subcadena y cualquier número de veces, la cadena resultante también
pertenecerá a L.

3
Lenguajes Autómatas

EJEMPLOS
Sea el lenguaje L = {a2nbn | n ≥ 0}. Demostrar que L no es regular.

1. Voy a suponer que el lenguaje es regular. Si lo es, y como es infinito, para él se


cumplirá el lema de bombeo. Sea por tanto n ∈ N la constante del lema de
bombeo para L (constante que no conozco).
Elijo una palabra que pertenezca a L y de longitud mayor o igual a n: w = a2nbn ,
tenemos que w ∈ L y |w| = 3n y por tanto |w| ≥ n, sea cual sea n.
2. Tengo que encontrar todas las formas de partir la palabra elegida w en tres xyz que
cumplan las restricciones del lema de bombeo:
- w = xyz
-y≠ε
- |xy| <= n (siendo n la constante del lema)
Si me fijo en la palabra w que he elegido, cualquier x, y, z que cumplan las condiciones
(restricciones) del lema serán de la siguiente forma:
- x = ai
- y = aj
- (con j ≥ 1 puesto que y ≠ ε, con i+j <=n puesto que |xy| <= n)
- z = a 2n-i-j bn
Se que la x y la y estarán formadas sólo por aes porque la palabra w que he elegido, y
que estoy partiendo, tiene 2n aes al principio y la longitud de xy es menor o igual que
n. También se las restricciones que cumplen sus índices (i, j) porque me las impone el
lema de bombeo. Se puede ver además que obviamente w = xyz, porque xyz = ai aj a
2n-ij bn = a 2nbn = w.
3.Debo encontrar ahora una constante k ≥ 0 con la que ninguna de las posibles
particiones de w que hemos encontrado en el punto anterior sea bombeable.
Si elijo k = 2 y bombeo las x, y, z encontradas en el punto anterior para esa constante,
tendré que:
xy 2 z = a i a2j a 2n-i-j bn = a2n+jbn (para cualquier i y j, o sea para cualquiera de las
particiones “legales” de la w elegida según el lema de bombeo).
Pero como j ≥ 1 (ver punto 2, es una de las restricciones del lema) tengo que xy 2 z =
a2n+jbn , es una palabra que no pertenece al lenguaje porque tiene más del doble de
aes que de bs (al menos una a más). He llegado por tanto a una contradicción (una
palabra que no es bombeable de ninguna forma para al menos una constante k en un
lenguaje supuestamente regular) que viene de suponer precisamente que el lenguaje
L es regular, luego L no es regular.

4
Lenguajes Autómatas

EJEMPLO 2

El lenguaje formado por n ceros seguidos de n unos, es decir,

L={0n1n : n≥1, n∈N}L={0n1n : n≥1, n∈N}

Sea

n0∈Nn0∈N

la constante del lema de bombeo.

Consideremos la palabra

w=0k1kw=0k1k

siendo

k=n0k=n0

Es evidente que w es una palabra del lenguaje y su longitud es

|w|=k+k=n0+n0=2n0≥n0|w|=k+k=n0+n0=2n0≥n0

Supongamos que

w=xyzw=xyz

es una descomposición que cumple las condiciones del lema.

La primera condición es

|xy|≤n0|xy|≤n0

Pero como

k=n0k=n0

necesariamente,

xy=0pxy=0p

5
Lenguajes Autómatas

siendo

p≤n0=kp≤n0=k

Por tanto,

w=0p0k−p1kw=0p0k−p1k

Como, por la segunda condición, y no puede ser la palabra vacía

xy=0p=0p10p2xy=0p=0p10p2

z=0k−p1kz=0k−p1k

donde

p1+p2=p≤n0, p2≠0p1+p2=p≤n0, p2≠0

El lema nos dice que

∀m∈N, xymz∈L∀m∈N, xymz∈L

Entonces, la palabra

xymz=0p1(0p2)m0k−p1kxymz=0p1(0p2)m0k−p1k

debería pertenecer al lenguaje para cualquier m. Esto no es cierto, por ejemplo, si m =


2 ya que el número de ceros es

p1+mp2+k−p=p1+p2+p2+k−p=p1+mp2+k−p=p1+p2+p2+k−p=

p+p2+k−p=k+p2>kp+p2+k−p=k+p2>k

Es decir, hay más ceros que unos. La palabra no pertenece al lenguaje.

Como hemos llegado a una contradicción, el lenguaje no es regular.

PROPIEDADES DE CERRADURA PARA CONJUNTOS REGULARES

6
Lenguajes Autómatas

Propiedades de cerradura: se pueden construir autómatas a partir de componentes


usando ´ operaciones, v.g., dado un lenguaje L y M construir un autómata para ´ L ∩ M
Algunas operaciones sobre lenguajes regulares garantizan producir lenguajes
regulares:
• Unión: ´ L ∪ M lenguajes con cadenas en L, M o en ambos.
• Intersección: ´ L ∩ M lenguajes con cadenas en ambos.
• Complemento: L cadenas que no están en L. ´
• Diferencia: L\M o L − M.
• Inversión: ´ L R = {w R : w ∈ L} (R = al revés) ´
• Cerradura: L ∗
• Concatenación: ´ L.M
• Homomorfismo (sustitución): ´ h(L) = {h(w) ∈ L}h es un homomorfismo
. • Homomorfismo inverso (sustitución inversa): ´ h −1 (L) = {w ∈ Σ : h(w) ∈ L, h : Σ →}
es un homomorfismo.
Unión´: la unión de lenguajes regulares es regular. Sea ´ L = L(E) y M = L(F). Entonces L
(E + F) = L ∪ M, por la definición de “+” en RE. ´
• Complemento: Si L es un lenguaje regular sobre Σ, entonces también lo es ´ L = Σ∗ L.
Todos los estados son de aceptación excepto los F.
Existen muchas operaciones en lenguajes que preservan conjuntos regulares, en el
sentido que al aplicar operaciones a conjuntos regulares resultan conjuntos regulares.
Por ejemplo, la unión de dos conjuntos regulares es un conjunto regular, al igual la
operación concatenación de conjuntos regulares es un conjunto regular y la cerradura
de Kleene de un conjunto regular es un conjunto regular. Si una clase de lenguajes es
cerrada bajo una operación en particular, se dice que tiene la propiedad de cerradura.
En particular nos interesa la propiedad de cerradura efectiva, es decir, si existe un
algoritmo para construir una representación para los lenguajes que resultan al aplicar
las operaciones a estos lenguajes. Por ejemplo: podemos dar un algoritmo para
construir una expresión regular para la unión de dos lenguajes denotados por
expresiones regulares, así la clase de conjuntos regulares es cerrada efectivamente
bajo la unión

Principales propiedades de clausura de los lenguajes regulares:


1. La unión de dos lenguajes regulares es regular.
2. La intersección de dos lenguajes regulares es regular.
3. El complementario de un lenguaje regular es regular.
4. La diferencia de dos lenguajes regulares es regular.
5. La reflexión de un lenguaje regular es regular.

7
Lenguajes Autómatas

6. La clausura (operador _) de un lenguaje regular es regular.


7. La concatenación de lenguajes regulares es regular.
8. Un homomorfismo (sustitución de símbolos por cadenas) de un lenguaje regular es
regular.
9. El homomorfismo inverso de un lenguaje regular es regular.

Ejemplo 1
Si L es un lenguaje regular, LR también lo es.
DEMOSTRACIÓN. Supongamos que L está definido mediante la expresión regular E. La
demostración se hace
por inducción estructural sobre el tamaño de E. Demostramos que existe otra
expresión regular ER tal que
L(ER) =
_
L(E)
_R; es decir, el lenguaje de ER es la reflexión del lenguaje de E.
BASE. Si E es , /0 o a, para algún símbolo a, entonces ER es igual que E. Es decir,
sabemos que { }R = { },
/0R = /0 y {a}R = {a}.
PASO INDUCTIVO. Hay tres casos dependiendo de la forma de E.
1. E = E1 +E2. Luego ER = ER
1 +ER
2 . La justificación es que la reflexión de la unión de dos lenguajes se
obtiene calculando las reflexiones de los dos lenguajes y calculando después la unión
de los mismos.
2. E = E1E2. Entonces ER = ER
2 ER
1 . Observe que hemos invertido el orden de los dos lenguajes,
además de reflejarlos. Por ejemplo, si L(E1) = {01,111} y L(E2 = {00,10}, entonces
L(E1E2) =
{0100,0110,11100,11110}. La reflexión del último lenguaje es:
{0010,0110,00111,01111}
si concatenamos las reflexiones de L(E2) y L(E1) en este orden, obtenemos:
{00,01}{10,111}= {0010,00111,0110,01111}
que es el mismo lenguaje que
_
L(E1E2}
_R. En general, si una palabra w perteneciente a L(E) es la
concatenación de w1 de L(E1) y w2 de L(E2), entonces wR = wR2
wR1
.
3. E = E∗ escribirse como w1w2 · · ·wn, donde
1 . Entonces ER = (ER cada wi pertenece a L(E). Pero,
1 )∗. La justificación es que cualquier wR = wRn
cadena w perteneciente a L(E) puede wRn

8
Lenguajes Autómatas

−1 · · ·wR1 a L(E1). La reflexión de esta cadena,


Cada wRi wRnwRn
pertenece a L(ER), por lo que wR −1
pertenece a L · · ·wR1
_ , es por tanto una cadena
(ER perteneciente a L(E∗
1 )∗_ 1 ), que
. Inversamente, cualquier cadena es L(E). Luego hemos demostrado que
perteneciente una cadena pertenece a L(E) si y sólo si
aL su reflexión pertenece a
_ L
(ER _
1 )∗_ (ER
es de la forma w1w2 · · ·wn, donde 1 )∗_
cada wi es la reflexión de una cadena
perteneciente
.

Ejemplo 2
Ejemplo: Sea L definido por el siguiente DFA (el lenguaje de cadenas que terminan en
01):

Entonces L es descrito por (el lenguaje de cadenas que no terminan en 01):

• Las cadenas de un numero diferente de 0’s y 1’s es ´ dif´ıcil probarlo con el pumping
lemma. Sin embargo, ya probamos que L = 0 n1 n no es regular. M = 0 n1 m, n 6= m es
L. Como L no es regular su complemento tampoco.
• Interseccion´ : Si L y M son regulares, entonces también´ L ∩ M. Usando las leyes de
Morgan: L ∩ M = L ∪ M. • Para esto también se puede construir un autómata que ´
simula AL y AM en paralelo y llega a un estado de aceptación si ´ AL y AM también lo
hacen

9
Lenguajes Autómatas

Algoritmos de decisión de conjuntos regulares

determinar si un lenguaje dado es vacío, finito o infinito y si un Sting está en un


lenguaje. Sin embargo, hay otras preguntas acerca de los lenguajes libres de contexto
para los cuales no existe algoritmo que las responda. Entre ´estas está el saber si dos
gran áticas son equivalentes, si un lenguaje es cofinito, si el complemento de un
lenguaje libre de contexto es también libre de contexto y si una cierta gramática es o
no ambigua. En esta sección se verán algoritmos para algunas de las preguntas que
tienen algoritmos. Como en el caso de los lenguajes regulares, hay varias
representaciones posibles para los lenguajes libres de contexto, es decir, gran áticas
libres de contexto y autómatas apiladores que aceptan por estado final. un algoritmo
que usa una representación se puede hacer funcionar para cualquiera de las otras. En
esta sección se usar ‘a la representación por gramáticas libres de contexto.
Existen algoritmos para determinar si un lenguaje libre de contexto es
1. vacío,
2. finito, o
3. infinito.
Demostración: Ya se ha dado un algoritmo para probar si un lenguaje libre de contexto
es vacío. Para una gramática G = (V, T, P, S), el test del primer lema para remover
símbolos inútiles ´ determina si una variable genera algún´ Sting de terminales.
Obviamente L(G) es no vacío si y solo si el símbolo inicial, S, genera algún´ Sting de
terminales

Para saber si L(G) es finito, utilice el algoritmo del teorema correspondiente para
construir una gramática G0 = (V 0, T, P 0 , S) en la forma normal de Chomsky, que
genera L(G) − {ε}. L (G0) es finito si y solo si L(G) es finito. Un test simple para la finitud
de una gramática en forma normal de Chomsky sin símbolos inútiles, ´ es construir un
grafo dirigido con un vértice por variable y un arco de A a B, si hay una producción de
la forma A → BC o A → CB para algún´ C. El lenguaje generado es finito si y solo si este
grafo no tiene ciclos.

10
Lenguajes Autómatas

EJEMPLO
. 1. No vacío ⇔ ∃ x ∈ L(A)/ | x |< n.
“⇐”: Obviamente, si existe una cadena que pertenece a L(A), entonces L(A) no es el
conjunto vacío.

“⇒”: Si L(A) es no vacío es porque existe al menos una cadena que pertenece a L(A).
Sea x esa cadena. Si | x |< n entonces ya está´ demostrado el teorema. Si | x |≥ n
entonces, por el lema de bombeo, resulta que x = uva, cumpliéndose ´ también´ que ∀
i ≥ 0, uvi w ∈ L(A). En particular, si se selecciona i = 0, se obtiene la cadena uv0w = uw
que, como | v |≥ 1, cumple que | x |=| uvw |>| uw | y uw ∈ L(A). Si | uw |< n,
entonces ya se ha conseguido demostrar el teorema. En caso contrario, se vuelve a
aplicar este razonamiento
Como cada vez que se aplica este razonamiento se obtienen cadenas de menor
longitud, tiene que llegar un momento en que se obtenga una cadena cuya longitud
sea menor que n.
Como consecuencia, un posible algoritmo para poder afirmar si el lenguaje que
reconoce un AF es o no es vacío, consistiría en determinar si hay alguna cadena de
longitud menor que n, siendo | Q |= n, que pertenezca al lenguaje (nótese ´ que como
n es un valor fijo, hay un numero ´ finito de posibles cadenas que pudieran pertenecer
al lenguaje; por lo tanto, se asegura el fin del proceso).

2. Infinito ⇔ ∃ x ∈ L(A)/n ≤| x |< 2n


“⇐”: Como | x |≥ n, entonces, por el lema de bombeo, se cumple que ∀ i ≥ 0, uvi w ∈
L(A). Por lo tanto, se puede afirmar que hay un numero ´ infinito de cadenas que
pertenecen a L(A).

“⇒”: Se sigue un proceso de razonamiento similar al realizado en el caso “⇒” del


apartado anterior, teniendo en cuenta que | v |≥ 1 y | uv |≤ n
Como consecuencia, un posible algoritmo para poder afirmar si el lenguaje que
reconoce un AF es o no es infinito, consistiría en determinar si hay alguna cadena de
longitud menor que 2n y menor o igual a n, siendo | Q |= n, que pertenezca al
lenguaje
EJEMPLO 2

11
Lenguajes Autómatas

El conjunto de Sting aceptado por un autómata finito M con N estados es


• No vacío, si y solo si M acepta un Sting de largo inferior a N.
• Infinito, si y solo si M acepta un Sting de largo l, con N ≤ l < 2N.
Por lo tanto, existe un algoritmo para determinar si un autómata finito acepta cero, un
número ´ o finito o un número ´ o infinito de sentencias.
Demostración: Suponga que M acepta un conjunto no vacío. Sea w un Sting tan corto
como cualquier otro aceptado. Por el lema de bombeo, |w| < N, porque si fuera |w| ≥
N, entonces w = uvy y uy sería aun´ más corto y estaría en el lenguaje. Una
contradicción con el hecho que w es el Sting más corto. La otra dirección es obvia
. Si w ∈ L(M) y N ≤ |w| < 2N, por el lema de bombeo L(M) es infinito. Esto es, w =
w1w2w3 y para todo i ≥ 0, w1w i 2w3 ∈ L. Por el otro lado, si L(M) es infinito, entonces
existe w en L(M) con |w| ≥ N; si |w| < 2N no hay problemas. Si ninguna palabra tiene
longitud entre (N) y (2N − 1), sea w de largo al menos 2N, pero tan corta como
cualquiera de longitud mayor o igual a 2N.
Por el lema de bombeo, se puede escribir w = w1w2w3 con 1 ≤ |w2| ≤ N y w1w3 ∈
L(M). Por lo tanto, ya sea w no fue el más corto Sting de largo 2N o más, o |w1w3|
esta entre N y 2N − 1, una contradicción, en cualquier caso. El algoritmo para decidir si
L(M) es vacío es: “Vea si algún´ Sting de longitud hasta N está en L(M)”. Es claro que
este método tiene garantizado terminar. Para decidir si L(M) es infinito: “Vea si algún´
Sting de largo entre N y 2N − 1 está en L(M)”. Nuevamente, hay un procedimiento que
está garantizado de terminar.

12
Lenguajes Autómatas

Minimización de autómatas finitos


Los autómatas son construidos para representar con claridad las condiciones de
operación del objeto estudiado, tal como quedó en evidencia al utilizarse una
máquina de Healy para representar un dosificador o un autómata finito para
representar el comportamiento del expendedor de golosinas. Se trata de construir
modelos, y una relación directa con el objeto representado facilita su definición y
contribuye a evitar omisiones y errores. Sin embargo, esto no asegura que se haya
obtenido el autómata más eficiente, lo que implica que es muy probable que el
modelo tenga más estados que los estrictamente necesarios para operar
correctamente. Estos estados fueron necesarios para asegurar un proceso de
modelado apropiado, pero son excesivos a la hora de implementarlos a través de
código en algún lenguaje de programación. Surge así el concepto de autómata
mínimo, que se define como aquel que cumple correctamente su función con la
menor cantidad posible de estados. Viendo al problema desde otro ángulo, todo
autómata que sea conexo y opere correctamente con más estados de los necesarios,
debe tener en su definición estados equivalentes o indistinguibles.
Esto significa que tal autómata debe ser minimizado y para ello se recurre al concepto
de conjunto cociente visto con anterioridad, es decir, a la partición del conjunto de
estados Q producida por la relación de equivalencia E, que tiene por elementos a las
clases de equivalencia, donde se agrupan todos los estados equivalentes o
indistinguibles entre sí. El autómata mínimo equivalente a uno dado, tendrá como
estados a cada una de las partes o clases de estados equivalentes del autómata
original
La minimización es un proceso que nos permite encontrar, para un dado autómata
finito M, un autómata finito M’ con las siguientes propiedades: Si M y M’ comienzan
por sus estados iniciales, producirán las mismas salidas para las mismas entradas. De
ser posible M’ tendrá menos estados que M. Si esto no es posible, entonces M ya es
un autómata mínimo.

El problema de minimizar autómatas se reduce al problema de encontrar dichas clases


de equivalencia. El problema se resuelve de manera iterativa, identificando lo que se
conoce como clases de estados k-equivalentes. Dos estados s i y si de M son
equivalentes si para todo α ∈ Σ*, tal que | α| ≤ k, o (s i, α) = o (si, α).

Entrada: un AFD completo M= (S, Σ, δ,s0,f0) Salida: un AF M’ equivalente a M


minimizado 1) T ← S - {estados inalcanzables en S} 2) Particionar T en dos clases
formadas por estados 0- equivalentes 3) k ← 0 4) Repetir Determinar clases (k+1)-
equis. como refinamiento de las k-equivalentes si , si son (k+1)-equivalentes sssi si , si

13
Lenguajes Autómatas

son k-equivalentes y δ(si,a),δ(sj,a) son equivalentes ∀a ∈Σ k ← k+1 Hasta Clases((k+1)-


equiv.)=Clases(k-equiv.) 5) Definir M’ usando las clases k-equivalentes halladas

EJEMPLO 1
En este caso, se propone la definición del autómata finito que represente el
funcionamiento de un reproductor de audio; en la actualidad de música almacenada
en tarjetas de memoria, CD o DVD y, anteriormente, sobre cinta magnética. Debe
notarse que cualquiera sea la tecnología de almacenamiento, el problema sigue
siendo el mismo: reconocer los comandos ingresados al reproductor por el usuario.
Además, debe también reconocerse que se ha alcanzado el extremo inicial o final de la
información almacenada, en este caso, música (supondremos funcionamiento
circular).
En necesario relacionar las señales externas a ser reconocidas por el autómata con el
significado de las mismas en el contexto del equipo representado y lo mismo ocurre
con los estados previstos, donde cada uno de ellos representa una condición de
operación. Con este fin, las señales de entrada son definidas en la Tabla 3.14 y los
estados previstos son definidos en la Tabla 3.15:

a) Definición formal del autómata finito:


AFD = ( ΣE, Q, q0, A, f )
ΣE = {a, b, c, d, e, f}
Q = {p, q, r, s, t}
q0 = p A = {p} Donde la función de transición f es presentada en la Tabla 3.16:

14
Lenguajes Autómatas

b) Dígrafo: A partir de la definición formal anterior se desarrolla el dígrafo del


autómata finito que cumple la función de un reproductor de audio, el cual se muestra
en la Figura 3.18. Nótese que, tal como fue definida esta máquina, el estado inicial es
también su estado de aceptación.

c) Minimización del autómata finito: el objeto es verificar la posible existencia de


estados indistinguibles. Se identifica el conjunto cociente inicial y luego los sucesivos
conjuntos cocientes hasta alcanzar dos conjuntos cocientes sucesivos idénticos. Estos
resultan ser: Q/E0 = {{q, r, s, t}, {p}} Q/E1 = {{q, r, s}, {t}, {p}}
Q/E2 = {{q}, {r, s}, {t}, {p}} Q/E3 = {{q}, {r, s}, {t}, {p}} El proceso de minimización
muestra que los estados r y s son equivalentes o indistinguibles, ya que tienen idéntico
comportamiento en cuanto a sus transiciones desde y hacia los demás estados. Esto es
así en el autómata finito del modelo. Sin embargo, en el equipo reproductor de audio,
el estado r corresponde a la acción de retroceder sobre el medio de entrada, mientras
que el estado s está asociado a un movimiento en sentido opuesto, es decir, adelantar
sobre el mismo medio. Esta aparente inconsistencia no es tal, ya que, al suponer el
funcionamiento circular, al avanzar más allá del último tema de música se continúa
con el primero y al retroceder, en el primero, se continúa con el último

15
Lenguajes Autómatas

EJERCICIO 2
Comprobar si los AFD cuyas funciones de transición se presentan en la tabla 3.24 son
equivalentes entre sí. Para ello, eliminar en cada uno los estados no conexos (si los
hubiese) y luego construir los conjuntos cocientes necesarios para minimizar cada
autómata

AFD1 = ({0, 1}, {p, q, r}, p, {r}, f1) El AFD1 es conexo, por lo que no hay estados que
deban eliminarse. El conjunto cociente inicial es Q/E0 = {{p, q}, {r}} = P10 ∪ P20, donde
P10 = Q – {r} y P20 = {r}, es decir P10 = {p, q} y P20 = {r} A partir de la función de
transición f1, puede comprobarse que:
f1(p, 0) = r ∈ P20
f1(q, 0) = q ∈ P10
f1(p, 1) = q ∈ P10
f1(q, 1) = r ∈ P20
es decir que los elementos de P10 tienen diferente comportamiento ante una entrada
0 igual comportamiento ante una entrada 1, luego:
Q/E1 = {{p}, {q}, {r}}
Los estados p y q no son equivalentes, luego el AFD1 ya es mínimo.
AFD2 = ({0, 1}, {p, q, r, s}, p, {s}, f2)
El AFD2 es conexo, por lo que no hay estados que deban eliminarse.
El conjunto cociente inicial es Q/E0 = {{p, q, r}, {s}} donde P10 = {p, q, r} y P20 = {s} A
partir de la función de transición f2, puede comprobarse que: f2(p, 0) = q ∈ P10
f2(q, 0) = q ∈ P10 f2(r, 0) = s ∈ P20 f2(p, 1) = s ∈ P20 f2(q, 1) = r ∈ P10 f2(r, 1) =
q ∈ P10 Como se observa, los tres elementos de P10 tienen diferente comportamiento
ante una entrada 0 y otra 1, luego no pueden ser agrupados en una misma clase. Esto
implica que:
Q/E1 = {{p}, {q}, {r}, {s}}
Los estados p, q y r no son equivalentes, luego el AFD2 ya es mínimo. Los dos
autómatas comparados ya son mínimos y tienen diferente cantidad de estados, por lo
que se reconoce que no se trata de máquinas equivalentes.

16
Lenguajes Autómatas

BIOGRAFIAS
http://webdiis.unizar.es/asignaturas/LGA/material_2003_2004/Lema_Bombeo_Regul
ares.pdf
https://www.matesfacil.com/automatas-lenguajes/lema-bombeo-lenguajes-
regulares.html
https://ccc.inaoep.mx/~emorales/Cursos/Automatas/PropsLengRegulares.pdf
http://acme.math.cinvestav.mx/~basico/apache/propiedades.pdf
Introducción a la teoría de autómatas lenguajes y computación
Tercera Edición
JOHN E. HOPCROFT
http://repositori.uji.es/xmlui/bitstream/handle/10234/5995/parte_1.pdf?sequence=1
&isAllowed=y
http://ciencias.uis.edu.co/lenguajes/doc/Campos.pdf
Ejercicios propuestos de eliminación de recursividad izquierda
LENGUAJES FORMALES Y TEORÍA DE AUTÓMATAS. Por VÁZQUEZ, Juan; GIRÓ, Juan;
MELONI, Brenda; CONSTABLE, Leticia, 2015, Alfaomega, p. 104.
LENGUAJES FORMALES Y TEORÍA DE AUTÓMATAS. Por VÁZQUEZ, Juan; GIRÓ, Juan;
MELONI, Brenda; CONSTABLE, Leticia, 2015, Alfaomega, p. 162.

17

You might also like