Está en la página 1de 37

Apuntes de Teora de Aut omatas y

Lenguajes Formales
Gloria Martnez Luis A. Garca
27 de octubre de 2005

Indice general
1. Introducci on 1
1.1. Alfabetos y Cadenas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Lenguajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. El Concepto de Gram atica. . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Clasicaci on Jer arquica de las Gram aticas. . . . . . . . . . . . . . . . . . . 9
1.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Aut omatas Finitos y Expresiones Regulares 13
2.1. Aut omatas Finitos Deterministas. . . . . . . . . . . . . . . . . . . . . . . . 13
2.2. Aut omatas Finitos No Deterministas. . . . . . . . . . . . . . . . . . . . . . 17
2.3. Aut omatas Finitos con Movimientos Libres. . . . . . . . . . . . . . . . . . 20
2.4. Expresiones Regulares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5. Otros Tipos de Aut omatas Finitos. . . . . . . . . . . . . . . . . . . . . . . 31
2.5.1. Aut omatas Finitos con Funci on de Salida. . . . . . . . . . . . . . . 31
2.6. Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6.1. Aplicaci on como ayuda al an alisis l exico en un compilador. . . . . 34
2.6.2. Especicaci on de par ametros de entrada. . . . . . . . . . . . . . . 34
2.6.3. Ayuda al dise no de circuitos. . . . . . . . . . . . . . . . . . . . . . 35
2.7. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3. Propiedades de los Lenguajes Regulares 41
I
II

Indice general
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. . . . . 41
3.2. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4. Algoritmos de Decisi on para Lenguajes Regulares. . . . . . . . . . . . . . 51
3.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4. Gram aticas de Contexto Libre y Aut omatas de Pila 59
4.1. Gram aticas y Lenguajes de Contexto Libre. . . . . . . . . . . . . . . . . . 59
4.2. Simplicaci on de GCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3. Aut omatas de Pila. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.1. Aut omatas de Pila No Deterministas. . . . . . . . . . . . . . . . . 65
4.3.2. Aut omatas de Pila Deterministas. . . . . . . . . . . . . . . . . . . 68
4.3.3. Relaci on entre AP por Pila Vaca y AP por Estado Final. . . . . . . 70
4.3.4. Relaci on entre los Aut omatas de Pila y los LCL. . . . . . . . . . . 71
4.4. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5. Propiedades de los Lenguajes de Contexto Libre 75
5.1. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6. M aquinas de Turing 85
6.1. Modelo de M aquina de Turing. . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2. T ecnicas para la Construcci on de M aquinas de Turing. . . . . . . . . . . . 91
6.2.1. Almacenamiento en el Control Finito. . . . . . . . . . . . . . . . . 91
6.2.2. Cintas con Sectores M ultiples y Marcaje de smbolos. . . . . . . . 92
6.2.3. Uso de Subrutinas. . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.3. M aquinas de Turing Modicadas. . . . . . . . . . . . . . . . . . . . . . . 94
6.3.1. M aquina de Turing Multicinta. . . . . . . . . . . . . . . . . . . . . 94

Indice general III


6.3.2. M aquina de Turing con M ultiples Cabezales. . . . . . . . . . . . . 96
6.3.3. M aquina de Turing No Determinista. . . . . . . . . . . . . . . . . 97
6.3.4. M aquinas de Turing Restringidas. . . . . . . . . . . . . . . . . . . 98
6.4. La M aquina de Turing como Generador. . . . . . . . . . . . . . . . . . . . 100
6.4.1. Dos M aquinas de Turing Generadoras B asicas. . . . . . . . . . . . 101
6.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7. Computabilidad 107
7.1. Lenguajes Recursivos y Funciones Computables. . . . . . . . . . . . . . . 107
7.1.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.1.2. La M aquina de Turing como Reconocedor de Lenguajes. . . . . . . 110
7.1.3. La M aquina de Turing como Calculador de Funciones. . . . . . . . 111
7.2. La Tesis de Church. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.2.1. El Modelo RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.3. Caracterizaci on de L.R. y L.R.E. . . . . . . . . . . . . . . . . . . . . . . . 114
7.3.1. Caracterizaci on de los L.R.E. mediante Generadores. . . . . . . . . 115
7.3.2. Caracterizaci on de los L.R. mediante Generadores. . . . . . . . . . 117
7.4. Propiedades de L. R. y L. R. E. . . . . . . . . . . . . . . . . . . . . . . . . 119
7.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8. Indecidibilidad 127
8.1. Concepto de Problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.1.1. Introducci on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.1.2. Concepto de Problema. . . . . . . . . . . . . . . . . . . . . . . . . 130
8.2. La M aquina Universal de Turing y Dos Problemas Indecidibles. . . . . . . 131
8.2.1. Codicaci on de M aquinas de Turing. . . . . . . . . . . . . . . . . 131
8.2.2. Ejemplo de un Lenguaje que NO es Recursivamente Enumerable. . 133
8.2.3. La M aquina Universal de Turing. . . . . . . . . . . . . . . . . . . 135
IV

Indice general
8.2.4. Dos Problemas Indecidibles. . . . . . . . . . . . . . . . . . . . . . 137
8.3. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Captulo 1
Introducci on

Indice General
1.1. Alfabetos y Cadenas. . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Lenguajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. El Concepto de Gram atica. . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Clasicaci on Jer arquica de las Gram aticas. . . . . . . . . . . . . . . 9
1.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1. Alfabetos y Cadenas.
Un alfabeto es un conjunto nito y no vaco de elementos denominados smbolos. Los
alfabetos se denen bien sea por extensi on, enumeraci on de sus smbolos, o bien por com-
prensi on, enunciando alguna propiedad que todos los smbolos han de cumplir.
Algunos ejemplos de alfabetos son los siguientes:
1. = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z}, el
alfabeto latino,
2. = {0, 1}, el alfabeto binario,
3. = {ai | i I}, donde I es un conjunto nito, como por ejemplo
I = {x N | x > 0 x < 50}.
Los dos primeros alfabetos se han denido por extensi on, mientras que el ter-
cero se ha denido por comprensi on.
Dado un alfabeto una cadena de ese alfabeto es una combinaci on de smbolos de ese
alfabeto.
1
2 Captulo 1. Introducci on
Por ejemplo, con el alfabeto (1) una cadena sera mar, con el alfabeto (2)
sera 0111 y con el alfabeto (3) sera a1a5a49.
Se dene una cadena especial denominada cadena nula, denotada por , caracterizada
por no poseer smbolos.
Se denomina prejo a cualquier secuencia de smbolos de la parte inicial de una cadena,
y sujo a cualquier secuencia de smbolos de su parte nal.
Por ejemplo, la cadena 0111 tiene como prejos a las siguientes cadenas: ,
0, 01, 011 y 0111 mientras que son sus sujos las cadenas: , 1,
11, 111, 0111.
Existe un gran n umero de operaciones b asicas que se pueden realizar con las cadenas.
De entre ellas, se destacan:
Longitud de una cadena Se denomina longitud de una cadena x, denotado por |x|, a la
operaci on que consiste en contar el n umero de smbolos que componen a la cadena x.
Esta operaci on cumple las siguientes propiedades:
1. | | = 0
2. |a| = 1, si a es un smbolo del alfabeto
3. Si y = a1a2..an, x = a1a2..anb y ai , b , entonces |y| = n |x| = n + 1.
Dado un alfabeto , se dene
n
como el conjunto de cadenas de longitud n que se
pueden construir con ese alfabeto. As, por ejemplo, siempre se cumple que sea cual
sea el alfabeto ,
0
= {}.
Concatenaci on Sean x e y dos cadenas, entonces la cadena resultante de concatenar x con
y es la cadena xy, cumpli endose que si | x | = n y | y | = m entonces | xy | = | x | +
| y | = n + m. Cuando se concatena una cadena consigo misma varias veces se emplea
la potencia para denotarlo; por ejemplo, la cadena xxxx se denota como x
4
. Adem as,
como consecuencia del uso de esta notaci on, resulta que | x
n
| = n| x |.
Estrella de Kleene Se denomina estrella de Kleene, cierre reexivo transitivo u operaci on
asterisco sobre un alfabeto al conjunto de todas las cadenas que se pueden construir
a partir de los smbolos del alfabeto ; en notaci on matem atica esta denici on se
expresa as:

=

i0

i
.
Cierre transitivo El cierre transitivo u operaci on m as, se denota como
+
y se dene
como
+
=

i>0

i
.
De las deniciones de cierre reexivo transitivo y de cierre transitivo, se puede dedu-
cir que

= {}
+
.
Inversi on Dada una cadena x

, x = a1a2 . . . an, se dene la cadena inversa de x,


denotada por x
1
, a la cadena an . . . a2a1. Esta operaci on se puede denir tambi en
recursivamente:
1.2. Lenguajes. 3
1.
1
=
2. (xa)
1
= a(x
1
), con x

a .
De esta denici on se desprenden varias propiedades entre las que cabe destacar las
siguientes:
1. a
1
= a si a , la inversa de un smbolo es el mismo smbolo,
2. (x
1
)
1
= x, x

, la inversa de la inversa es la cadena original,


3. (x1x2 . . . xk)
1
= x
1
k
. . . x
1
2
x
1
1
, xi

.
1.2. Lenguajes.
Dado un alfabeto se dice que L es un lenguaje si es un subconjunto de

, es decir,
L

.
Por ejemplo, sea el alfabeto = {0,1}. L1 = {0, 01, 011} es un lenguaje nito
sobre el alfabeto y L2 = {0
2n
| n 0} es otro lenguaje, esta vez con un
n umero de cadenas innito, sobre el mismo alfabeto.
Puesto que se ha denido un lenguaje como un conjunto de cadenas, las operaciones
que se pueden realizar sobre lenguajes son las mismas que las que se pueden realizar sobre
conjuntos. De entre ellas, se destacan las siguientes:
Uni on de lenguajes L1 L2 = {x

| x L1 x L2}.
Cumple las propiedades
1. Asociativa, L1 L2 L3 = (L1 L2) L3 = L1 (L2 L3),
2. Commutativa, L1 L2 = L2 L1, y
3. Elemento neutro, L = L = L.
Intersecci on de lenguajes L1 L2 = {x

| x L1 x L2}.
Cumple las propiedades
1. Asociativa, L1 L2 L3 = (L1 L2) L3 = L1 (L2 L3),
2. Commutativa, L1 L2 = L2 L1, y
3. Elemento neutro, L

L = L.
Concatenaci on L1L2 = {x

| x = yz y L1 z L2}.
Cumple las propiedades
1. Asociativa, L1L2L3 = (L1L2)L3 = L1(L2L3), y
2. Elemento neutro, L{} = {}L = L.
4 Captulo 1. Introducci on
En la concatenaci on de lenguajes tambi en se utiliza la notaci on potencia tal y como
se deni o en la concatenaci on de cadenas, es decir, el lenguaje LLLL se denota como
L
4
.
Estrella de Kleene L

=

i0
L
i
.
Cierre transitivo L
+
=

i>0
L
i
.
Al aplicar las operaciones asterisco y m as sobre lenguajes, se puede comprobar que
se cumplen las siguientes propiedades:
a) (L

= L

b) L
+
= (L

)L
c) (L
+
)

= L

d) (L

)
+
= L

e) (L
+
)
+
= L
+
f) si L1 L2, entonces L

1
L

2
L
+
1
L
+
2
Dependiendo de si pertenece o no pertenece a un lenguaje L se establece la siguiente
relaci on entre la operaci on m as y la operaci on asterisco:
L
+
= L

, si L y L
+
= L

{}, si L.
Diferencia de lenguajes L1 L2 = {x

| x L1 x L2}.
Se cumple que si L1 L2 entonces L1 L2 = puesto que todas las cadenas de L1
pertenecen a L2, y que si L1 L2 = entonces L1 L2 = L1, puesto que ambos
lenguajes no tienen cadenas en com un.
Complemento Sea L un lenguaje, entonces el lenguaje complementario de L, denotado por

L, se dene como

L =

L = {x

| x L}.
Cumple las propiedades
1.

L = L,
2. L

L =

, y
3. L

L = .
Partes de un conjunto Una de las operaciones b asicas sobre conjuntos consiste en calcu-
lar el conjunto de todos los conjuntos que se pueden formar con los elementos del
conjunto original. Esta operaci on se denomina c alculo de las partes de un conjunto
y, si el conjunto se denomina A, se denota como P(A) o 2
A
.
Por ejemplo, si A es el conjunto A = {a,b,c} entonces el c alculo de las
partes del conjunto A, 2
A
o P(A), es el siguiente:
2
A
= {, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}
Una vez establecida la operaci on partes de un conjunto queda por destacar cual es el
resultado al aplicarla a un conjunto con un n umero innito de elementos. Por ejemplo,
dado un alfabeto , consid erese 2

. Con esta operaci on se denota al conjunto de


todos los conjuntos que se pueden formar con los elementos del alfabeto , es decir,
todos los posibles lenguajes que se pueden formar con las cadenas de smbolos del
alfabeto .
1.3. El Concepto de Gram atica. 5
La observaci on anterior permite realizar una consideraci on interesante.
Sea el alfabeto = {0,1}; en el conjunto 2

estaran, entre otros mu-


chos conjuntos, el conjunto de cadenas que representan el juego de ins-
trucciones de cualquier microprocesador (68000, pentium, athlon, ...etc.).
M as a un, si se concatena en una misma cadena todas las instrucciones
de un programa escrito en uno de estos juegos de instrucciones, tambi en
se obtiene un elemento de 2

. Se tiene, entonces, que, de entre los ele-


mentos de 2

, un subconjunto sera el formado por todas cadenas que


representan programas correctamente escritos en ese juego de instruccio-
nes, y que, adem as, un subconjunto de este sera el de los que no s olo son
correctos desde el punto de vista sint actico, sino que tambi en se ejecutan
de forma correcta.
Inversi on Dado un lenguaje L, L

, se dene el lenguaje inverso de L, denotado por


L
1
, como el conjunto de cadenas que resulta de aplicar la operaci on de inversi on a
cada una de las cadenas del lenguaje L, es decir, L
1
= {x
1
| x L}.
Se puede comprobar que esta operaci on cumple las siguientes propiedades:
a) (
1
) = b) (L1L2)
1
= L
1
2
L
1
1
c) (L
i
)
1
= (L
1
)
i
d) (L

)
1
= (L
1
)

, (L1 L2)
1
= L
1
1
L
1
2
e) (

)
1
=

f) (L
1
)
1
= L
1.3. El Concepto de Gram atica.
Informalmente una gram atica no es m as que un mecanismo para generar las cadenas que
pertenecen a un lenguaje. Este mecanismo dene un conjunto nito de reglas que, aplicadas
a partir de un unico smbolo inicial, son capaces de generar todas sus cadenas.
Por ejemplo, sea la gram atica
S 0S | 0A
A 1A | 1
En el ejemplo se observan dos tipos de smbolos; por un lado, S y A que se de-
nominan smbolos auxiliares y, por otro lado, 0 y 1 que se denominan smbolos
terminales. El objetivo es obtener una cadena aplicando producciones, que son
las reglas que nos indican c omo substituir los smbolos auxiliares. Las cade-
nas generadas por una gram atica est an formadas exclusivamente por smbolos
terminales.
As, para obtener una cadena se parte de S (smbolo inicial, start) y se substi-
tuye por una de sus dos producciones. No hay ning un tipo de preferencias entre
ellas, se puede elegir cualquiera:
S 0S
6 Captulo 1. Introducci on
y, a continuaci on, hay que proceder del mismo modo y substituir la nueva apa-
rici on de S por una cualquiera de sus dos producciones:
S 0S 00S 000S
En este punto, se podra optar por la segunda producci on,
S 0S 00S 000S 0000A
y, por lo tanto, ahora habra que continuar substituyendo el auxiliar Apor una
de sus dos producciones,
S 0S 00S 000S 0000A 00001A 000011A 0000111
La cadena 0000111 est a formada exclusivamente por terminales, luego se pue-
de concluir que es una cadena del lenguaje generado por la gram atica. A con-
tinuaci on, se formalizan estos conceptos.
Denici on 1.1 (Gram atica) Una gram atica es una cu adrupla
G = A, T , P, S
donde:
A es el denominado alfabeto de smbolos auxiliares,
T es el denominado alfabeto de smbolos terminales,
P es el denominado conjunto de producciones. Es un conjunto de pares ordenados (,
) nito y no vaco,
P = {(1, 1), (2, 2), . . . , (n, n)},
con i (A T )
+
i (A T )

, i = 1, 2, . . . , n.
S es un smbolo especial denominado smbolo inicial de la gram atica, S A.
Se denota por al conjunto A T y se exige que A T = .
Las producciones se denen formalmente como pares (, ) en los que a se le de-
nomina antecedente de la producci on y a su consecuente. La notaci on habitual de una
producci on (, ) es la expresi on , que ha sido la utilizada en el ejemplo anterior.
Denici on 1.2 Dos cadenas, 1 y 2 se encuentran en relaci on de derivaci on directa
dentro de la gram atica G, denotado por 1 G 2, cuando
1 = 2 = ( ) P
donde , , y

.
1.3. El Concepto de Gram atica. 7
Es decir, esta relaci on expresa c omo conseguir de forma directa una cadena 2 a partir
de otra cadena 1: realizando la sustituci on de la cadena por la cadena (aplicando una
producci on de la gram atica G) dejando el resto de cadenas sin modicar.
Por ejemplo, en la gram atica anterior las cadenas 000S y 0000A est an en
relaci on de derivaci on directa ya que se puede obtener 0000A de 000S en un
unico paso.
Denici on 1.3 Dos cadenas, 1 y 2 se encuentran en relaci on de derivaci on en n
pasos dentro de la gram atica G, cuando existen n cadenas 1, 2, . . . , n

, tales
que 1 G 1 G 2 G . . . G n G 2.
Esta operaci on se puede generalizar m as a un si no se especica el n umero de pasos. En
este caso se emplea la notaci on 1

G 2 cuando n 0 (es decir, se utilizan cero, una


o m as derivaciones directas) y se emplea la notaci on 1
+
G 2 cuando n > 0 (es decir,
cuando se utilizan una o m as derivaciones directas).
Denici on 1.4 Dada una cadena

, se dice que es una forma sentencial cuan-


do S

G . Una cadena se denomina sentencia o palabra cuando es una forma
sentencial y todos los smbolos de son smbolos terminales.
En el ejemplo anterior, las cadenas 000S, 0000A y 00001A (entre otras) son
formas sentenciales. Sin embargo, 0000111 ya es una palabra, puesto que s olo
est a formada por terminales.
Denici on 1.5 Se dene el lenguaje asociado a una gram atica como el conjunto de
palabras
L(G) = {x

T
| S

G x}.
En adelante, y siempre que no exista posibilidad de confusi on, se suprimir a la identica-
ci on de la gram atica como subndice en las echas que denotan las relaciones de derivaci on,
tal y como ya se hizo en el desarrollo del ejemplo.
Cu ales son los lenguajes generados por las siguientes gram aticas?
(a) S 0S | 0A
A 1A | 1
(b) S 0S | 1A
A 1A |
(c) S aS | bA |
A bA |
(d) S aS | A
A bA |
(e) S 0S1 | 01 (f) S 0S1 |
8 Captulo 1. Introducci on
(g) S 000S111 | 000111 (h) S 000S111
0S1 01
(i) S X | Y
Y aY | A
A bA |
X 0B1Y
B 0B1 |
Para determinar cu al es el lenguaje generado por una gram atica se tiene que
calcular cu ales son las cadenas que pueden derivarse a partir de su smbolo
inicial. Por ejemplo, en la gram atica del apartado a) se puede proceder de la
siguiente forma:
S 0S 00S 000S . . ., es decir, se puede pensar en aplicar primero
n veces la producci on S 0S, obteni endose
S
n
0
n
S . . ., tras lo cual se aplica la producci on S 0A, siendo el
resultado
S
n
0
n
S 0
n
0A . . ., tras lo cual se puede aplicar varias veces la
producci on A 1A,
S
n
0
n
S 0
n
0A 0
n
01A 0
n
011A 0
n
0111A. . .
Si se aplica m veces A 1A y ya, por ultimo, A 1, se llega a
S
n
0
n
S 0
n
0A
m
0
n
01
m
A 0
n
01
m
1.
Por lo tanto el lenguaje generado por la gram atica del apartado a) es el si-
guiente:
L(G
(a)
) = {x {0, 1}

| x = 0
n
1
m
, con n, m 1}
Se propone como ejercicio la obtenci on de los dem as lenguajes.
Denici on 1.6 Dos gram aticas se denominan equivalentes cuando ambas generan el
mismo lenguaje. Es decir, dadas dos gram aticas G1 y G2 entonces G1 G2
L(G1) = L(G2).
Adem as, una gram atica s olo puede generar un lenguaje mientras que un lenguaje puede
ser generado por varias gram aticas (de hecho, hay innitas gram aticas que son capaces de
generar un mismo lenguaje).
Se propone como ejercicio determinar cu ales de las gram aticas anteriores son
equivalentes.
1.4. Clasicaci on Jer arquica de las Gram aticas. 9
1.4. Clasicaci on Jer arquica de las Gram aticas.
Uno de los posibles criterios para clasicar las gram aticas es hacerlo de acuerdo al for-
mato utilizado para describir al conjunto de producciones. Esta clasicaci on fue establecida
por el ling uista Noam Chomsky.
Gram aticas de tipo 3: Tambi en denominadas regulares. Las hay de dos tipos, seg un sean
el formato de sus producciones:
Lineales a la derecha, con producciones
A aB
A a
Lineales a la izquierda, con producciones
A Ba
A a
En ambos casos, A, B A, a

T
.
Hay que destacar que no se permite mezclar en una misma gram atica de tipo 3 pro-
ducciones lineales a la derecha con producciones lineales a la izquierda.
Gram aticas de tipo 2: Tambi en denominadas de contexto libre. Son las gram aticas carac-
terizadas porque su conjunto de producciones presenta el siguiente formato:
A donde A A,

.
En las gram aticas de tipo 2 el smbolo A siempre se puede sustituir por la cadena
independientemente del contexto en el que aparezca.
Gram aticas de tipo 1: Tambi en se les conoce como gram aticas sensibles al contexto. Son
aquellas gram aticas cuyas producciones presentan el siguiente formato:
1A2 12 donde A A, 1, 2

.
Es decir, s olo se permite la sustituci on del smbolo A por la cadena cuando el
smbolo Aaparezca en el contexto indicado por la producci on, es decir, con la cadena
1 a la izquierda de A y por la cadena 2 a su derecha. N otese la diferencia con las
gram aticas de tipo 2.
Gram aticas de tipo 0: Son aquellas gram aticas caracterizadas porque en sus producciones
no se establece ning un tipo de restricci on respecto a su formato.
Se dice que un lenguaje es de tipo i (i = 3, 2, 1, 0) si, y s olo si, la gram atica de ndice
m as alto que puede generarlo es de tipo i.
10 Captulo 1. Introducci on
Adem as, se verica que si se denomina Li a la clase de lenguajes generados por gram ati-
cas de tipo i entonces se observa que, de la denici on de la jerarqua de gram aticas de
Chomsky, se deriva el siguiente enunciado
L3 L2 L1 L0.
A un se puede anar m as y, en los temas sucesivos, se demostrar a que estas inclusiones
no son propias, es decir, existen lenguajes pertenecientes a la clase Li que no pertenecen a
la clase Li+1 (i = 0,1,2).
Por lo tanto, se cumple el siguiente enunciado
L3 L2 L1 L0,
lo que se podra representar de forma gr aca mediante la siguiente gura:
Figura 1.1: Relaciones entre las clases de lenguajes derivadas de la jerarqua de Chomsky.
La jerarqua establecida por Chomsky, adem as de resultar elegante, permite vertebrar
la Teora de la Computaci on clasicando las clases de lenguajes en funci on del n umero de
recursos computacionales necesarios para reconocerlos.
Uno de los objetivos del estudio de los lenguajes formales es asimilar la correspondencia
entre lenguajes formales y problemas computacionales, esto es, cualquier lenguaje formal
se puede asociar a un problema computacional. Desde este punto de vista, reconocer las
cadenas de un lenguaje es equivalente a solucionar un problema. Por lo tanto, la jerarqua de
Chomsky realmente lo que permite es clasicar por orden creciente el poder computacional
necesario para poder resolver distintas clases de problemas. Y uno de los resultados m as
espectaculares de esta disciplina lo supone el hecho de que, hoy por hoy, existen problemas
que no se pueden resolver a un cuando se utilice el modelo con mayor poder computacional,
el correspondiente a los lenguajes de Tipo 0, que modela la capacidad computacional de
1.5. Problemas Propuestos. 11
cualquier computador existente. Esto es, hay problemas irresolubles, hay lmites para el
concepto de computaci on tal y como lo entendemos.
Tambi en resulta interesante comentar c omo ha ido tomando cuerpo esta teora ya que,
en principio, los principales resultados surgieron de campos muy diversos. Del campo de
la L ogica Matem atica surgi o el modelo de M aquina de Turing, que ocupa el lugar m as al-
to de la jerarqua, ya que es el reconocedor de los lenguajes de Tipo 0. Del campo de la
Autom atica Industrial, surgieron las Aut omatas de Control Finito, que ocupan a su vez el
lugar m as bajo, al corresponderse con los lenguajes de Tipo 3. De avances propios de la In-
form atica, como el desarrollo de los procesadores de lenguaje, surgieron los reconocedores
de lenguajes de Tipo 1.
El propio Noam Chomsky no es inform atico, ni matem atico, ni ingeniero. Como ya
se ha dicho es un ling uista cuya principal aportaci on fue el estudio de las gram aticas y su
clasicaci on como parte de la demostraci on de su teora generativa de las gram aticas
1
.
Sin embargo, todos estos elementos tan diversos en su origen, estructuran el modelo
existente de la Teora de la Computaci on. Los captulos de este libro se han estructurado
de acuerdo a esta jerarqua, estudiando los niveles m as trascendentales para nuestros objeti-
vos; as, en la asignatura se ver an los diferentes modelos abstractos en tres grandes grupos,
correspondientes a los niveles 3, 2 y 0.
1.5. Problemas Propuestos.
1. Sean X = {x | x N x es impar}, Y = {y | y N y es primo} y
Z = {z | z N z es m ultiplo de tres}. Describir cada uno de los siguientes
conjuntos:
a) X Y b) X Z c) Y Z d) Z Y
e) X Y f) X (Y Z) g) (Y Z) X h) (X Y ) Z
i) X Y j) X (Y Z)
2. Sea X = {a, b, c} . Describir P(X) y P(P(X)).
3. Un palndromo puede denirse como una cadena que se lee igual de derecha a iz-
quierda que de derecha a izquierda, o por medio de la siguiente denici on:
a) es un palndromo.
b) Si a es un smbolo, entonces a es un palndromo.
c) Si a es un smbolo, y x es un palndromo, tambi en lo es axa.
1
La teora de Chomsky se basa en la existencia en el ser humano de estructuras gramaticales propias, esto es,
el ser humano nace con la capacidad de aprender un lenguaje porque los esquemas gram aticales forman parte
de su cerebro, de tal forma que, a medida que su experiencia le permite mejorar ese conocimiento, adquiere
completamente la capacidad de comunicarse en un idioma. Esta teora se contrapone a las que asumen que el
cerebro humano es una tabla en blanco al nacer y que s olo mediante su interacci on con el entorno adquiere
el lenguaje.
12 Captulo 1. Introducci on
d) Cualquier cadena que no pueda ser formada mediante la aplicaci on de los pasos
(a) a (c) anteriores un n umero nito de veces no es un palndromo.
Demostrar por inducci on que las dos deniciones anteriores son equivalentes.
4. Escribir gram aticas que reconozcan cada uno de los siguientes lenguajes, sobre el
alfabeto {a,b,c}:
a) Cadenas que tengan igual n umero de as que de bs.
b) Cadenas de la forma a
n
b
n
, con n 0.
c) Cadenas de la forma a

.
d) Cadenas de la forma a
n
b
n
c
n
, con n 0.
5. Sea = {a, b}. La siguiente es una denici on recursiva para el lenguaje L.
L,
Si x L tambi en axb L y bxa L,
Si x L e y L, entonces xy L,
Nada m as pertenece a L.
a) Qu e lenguaje es L?
b) Escribir una gram atica que genere L. A qu e tipo pertenece?
c) Dar una denici on recursiva para L1 {a, b}

, consistente de todas las palabras


con doble n umero de as que de bs.
6. Describir los lenguajes generados por las siguientes gram aticas:
(a) S 0S1 | 01 (b) S 000S111 | 000111 (c) S aS | A
A bA |
(d) S 000S111
0S1 01
(e) S X | Y
X 0B1Y
Y aY | A
B 0B1 |
A bA |
7. Escribir una gram atica, utilizando el alfabeto {+, , , /, (, ), digito}, que genere
cadenas que representen cualquier expresi on aritm etica v alida.
Captulo 2
Aut omatas Finitos y Expresiones
Regulares

Indice General
2.1. Aut omatas Finitos Deterministas. . . . . . . . . . . . . . . . . . . . 13
2.2. Aut omatas Finitos No Deterministas. . . . . . . . . . . . . . . . . . 17
2.3. Aut omatas Finitos con Movimientos Libres. . . . . . . . . . . . . . . 20
2.4. Expresiones Regulares. . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5. Otros Tipos de Aut omatas Finitos. . . . . . . . . . . . . . . . . . . . 31
2.5.1. Aut omatas Finitos con Funci on de Salida. . . . . . . . . . . . . 31
2.6. Aplicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6.1. Aplicaci on como ayuda al an alisis l exico en un compilador. . . 34
2.6.2. Especicaci on de par ametros de entrada. . . . . . . . . . . . . 34
2.6.3. Ayuda al dise no de circuitos. . . . . . . . . . . . . . . . . . . . 35
2.7. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1. Aut omatas Finitos Deterministas.
En esta asignatura se estudiar an distintos tipos de m aquinas abstractas con diferente
poder computacional. Cada uno de estos tipos de m aquinas permiten reconocer lenguajes
de distintos tipos y su poder computacional est a asociado a cu al es el tipo de lenguajes que
pueden reconocer.
El primer tipo de m aquinas abstractas que se va a denir son los Aut omatas Finitos, que
permiten reconocer cadenas pertenecientes a Lenguajes Regulares.
Son los aut omatas con menor poder computacional y para reconocer los lenguajes s olo
disponen de una cinta de entrada (en la que se escribe una cadena), de un cabezal lector
(que lee smbolos de uno en uno y de izquierda a derecha) y de un conjunto nito de reglas
13
14 Captulo 2. Aut omatas Finitos y Expresiones Regulares
que especica c omo actuar ante cada smbolo ledo de la cinta de entrada. Gr acamente se
puede representar por medio de la siguiente gura:
Cinta de entrada
Control
Finito
Cabezal
de Lectura
a b b b a a
Figura 2.1: Modelo fsico de un Aut omata Finito.
Denici on 2.1 Un aut omata nito determinista, AFD, es una quntupla A =
, Q, f, q0, F donde:
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on total denida como
f : Q Q,
q0 es el denominado estado inicial, q0 Q,
F es el conjunto de estados denominados nales, F Q.
La forma m as generalizada de representaci on de un AFD es mediante un grafo dirigido.
En este grafo los nodos se corresponden con los estados de Q y los arcos representan valores
de la funci on de transici on f, de forma que si f(qs, a) = qt entonces desde el nodo qs parte
un arco etiquetado con el smbolo a hacia el nodo qt. Los estados de F se representan
mediante nodos con doble crculo y el estado inicial se suele representar con una echa de
entrada al nodo que lo representa.
Ejemplo:
Sea A el siguiente AFD
Q = {q0, q1, q2} F = {q0, q1}
= {0, 1} q0 Q, es el estado inicial
2.1. Aut omatas Finitos Deterministas. 15
en el que la funci on de transici on f se dene como:
f 0 1
q0 q0 q1
q1 q2 q1
q2 q2 q2
Este AFD se puede representar mediante el siguiente grafo:
q
0
1 0 0,1
q
2
q
1
1 0
Denici on 2.2 Se dene el lenguaje aceptado por un AFDA = , Q, f, q0, F como
el conjunto de cadenas tales que despu es de ser analizadas el AFD se encuentra en un
estado nal; es decir,
L(A) = {x

| f(q0, x) F}
Ejemplo:
Qu e lenguajes reconocen los AFD de la gura 2.2?
Figura 2.2: Qu e lenguajes reconocen estos AFD?
16 Captulo 2. Aut omatas Finitos y Expresiones Regulares
EL AFD del caso (a) reconoce las cadenas que tienen el formato (10)
n
con
n 1, es decir La = {10, 1010, 101010, 10101010, . . .}.
EL AFD del caso (b) acepta las cadenas que presentan el formato bca
n
y las
cadenas del formato ac
m
, con n, m 0.
El AFD del caso (c) resulta m as difcil de describir de forma general. Algunas
de las cadenas que acepta son
Lc = {acacbdbcaca, aaacaaacccbdddddbcaaaca, . . .}.
Aquellos estados que no sean nales y que, adem as, una vez que son alcanzados el AFD
permanece en ellos, sean cuales sean los smbolos que se lean de la entrada, se denominan
estados sumideros. Como convenio no suelen mostrarse en el grafo para as poder minimizar
el n umero de arcos del grafo y simplicar su representaci on gr aca.
Volviendo al ejemplo anterior, en el AFD (a), el estado q3 es un estado sumide-
ro; por lo tanto, este AFD puede representarse de la forma:
En el AFD del caso (b), el estado q3 tambi en es un sumidero y el nodo corres-
pondiente y los arcos que se dirigen a el podran eliminarse.
Para nalizar, se presenta como ejemplo un conocido problema de planicaci on y c omo
resolverlo utilizando un AFD:
Tres canbales y tres misioneros han de cruzar un ro. S olo disponen de una
barca en la que caben como m aximo dos personas. C omo han de cruzar el ro
de forma que nunca haya m as canbales que misioneros en cualquiera de las
orillas?
Para solucionar el problema se identica cada una de las posibles situaciones
viables en las que se pueden encontrar canbales y misioneros como un estado.
En cada estado se representar a los canbales y misioneros que hay en cada
orilla, as como la posici on de la barca. As, para indicar que hay 3 misioneros
y 1 canbal en una orilla (MMMC) y 2 canbales y la barca en la otra orilla
(CCB), se emplea la siguiente notaci on:
2.2. Aut omatas Finitos No Deterministas. 17
Para indicar qui en ocupa la barca (transiciones entre estados), se emplea la si-
guiente notaci on: c para canbal, 2m dos misioneros, 2c dos canbales y mc un
misionero y un canbal. Con esta notaci on, el conjunto de innitas soluciones
que tiene este problema se puede representar como cualquiera de los caminos
que conducen de la situaci on inicial a la nal en el siguiente AFD:
El AFD dise nado para el problema de los misioneros y los canbales se puede relacionar
con el mostrado en el apartado (c) del ejemplo anterior; el lenguaje Lc se puede asociar a
las soluciones de este problema bajo la interpretaci on a por 2c, c por c, b por 2m y d por
mc. Por lo tanto, realizando una interpretaci on adecuada a los smbolos y los estados del
AFD se ha podido establecer el lenguaje aceptado por este AFD. En general, el problema
de encontrar una interpretaci on adecuada no es sencillo de solucionar y plantea una serie de
cuestiones de orden los oco/matem atico que queda fuera del alcance de este tema.
2.2. Aut omatas Finitos No Deterministas.
Un Aut omata Finito No Determinista, que se denotar a como AFN, se caracteriza porque
en un estado puede haber m as de una transici on posible para un mismo smbolo de entrada.
Es decir, | f(q, a) | 1 para alg un q Q y para alg un smbolo a .
Denici on 2.3 Un AFN es una quntupla A = , Q, f, q0, F donde:
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on denida de la siguiente forma
f : Q 2
Q
,
q0 es el denominado estado inicial, q0 Q,
F es el conjunto de estados denominados nales, F Q.
18 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Ejemplo:
El siguiente grafo representa un AFN ya que f(q0, 0) = {q0, q1} y f(q1, 1) =
{q0, q2}:
El no determinismo afecta a la forma de entender el comportamiento del AF
con una cadena. Si se tiene que f(q0, 0) = {q0, q1}, entonces f(q0, 01) =
f(f(q0, 0), 1) = f({q0, q1}, 1) = {q0, q2}. Es decir, en general, lo que se
obtiene es un conjunto de estados, tanto si se analiza el comportamiento con un
smbolo, como si se generaliza para una cadena. Esto afectar a a la denici on
de lenguaje aceptado por un AFN.
Denici on 2.4 Se dene el lenguaje aceptado por un AFN A = , Q, f, q0, F como
el conjunto de cadenas tales que despu es de ser analizadas, el AFNha podido alcanzar
al menos un estado nal, es decir,
L(A) = {x

| f(q0, x) F = }.
En el aut omata del ejemplo anterior, L(A) es el conjunto de cadenas cuyo
pen ultimo smbolo ledo de izquierda a derecha es un 0.
Un sencillo an alisis de este tipo de aut omata permite establecer que si en un aut omata
de este tipo no hay ninguna transici on tal que para un mismo smbolo se disponga de m as
de un estado destino diferente, entonces este aut omata es determinista. Es decir, los AFD
se pueden ver como casos particulares de los AFN. Entonces, si se denota por L(AFD) al
conjunto de todos los lenguajes que se pueden reconocer con aut omatas nitos deterministas
y se denota por L(AFN) al conjunto de todos los lenguajes que se pueden reconocer con
aut omatas nitos no deterministas, resulta que L(AFD) L(AFN).
La cuesti on que se plantea es si la inclusi on contraria tambi en se cumple, es decir, si
para cualquier AFN existe un AFD que reconozca exactamente el mismo lenguaje que el
AFN. El siguiente teorema establece que as es, lo que permite concluir que
L(AFD) = L(AFN).
2.2. Aut omatas Finitos No Deterministas. 19
Teorema 2.1 Sea L un lenguaje aceptado por un AFN, entonces existe un AFD que
tambi en acepta L.
La demostraci on de este teorema no se ver a, pero la operaci on de calcular un AFD a
partir de un AFN es muy com un y, por ello, se han desarrollado varios m etodos. El m as
sencillo y eciente es el siguiente:
Mnimo n umero de pasos para construir un AFD a partir de un AFN
1. Se construye una tabla donde cada columna est a etiquetada con un smbolo del alfa-
beto de entrada y cada la se etiqueta con un conjunto de estados.
2. La primera la se etiqueta con {q0}, estado inicial, y en cada entrada de la tabla
(q0, si) se almacena f(q0, si) = {p1, . . . , pn} = P.
3. Se etiqueta cada la con cada uno de los conjuntos P que no tengan asociada una la
en la tabla (es decir, con cada uno de los conjuntos P que aparezcan por primera vez
en la tabla) y se completa cada una de estas las con el correspondiente f(P, si).
4. Se realiza el paso (3) hasta que no haya en la tabla conjuntos P sin las asociadas.
5. Se asocia a cada conjunto P que aparezca en la tabla un estado en el nuevo AFD y
aquellos que tengan entre sus componentes alg un estado nal del AFN se conside-
rar an estados nales en el AFD.
Se va a aplicar este m etodo al aut omata anterior,
Figura 2.3: AFN a transformar en AFD.
La funci on de transici on de este AFN es la siguiente:
f 0 1
q0 {q0, q1} {q0}
q1 {q2} {q0, q2}
q2
20 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Al aplicar el m etodo anterior al AFN se obtiene el siguiente AFD, cuya funci on
de transici on es:
f 0 1
{q0} {q0, q1} {q0}
{q0, q1} {q0, q1, q2} {q0, q2}
{q0, q1, q2} {q0, q1, q2} {q0, q2}
{q0, q2} {q0, q1} {q0}
Al conjunto {q0} se le denomina [q0], al {q0, q1} se le denomina [q0, q1], al
{q0, q1, q2} se le denomina [q0, q1, q2] y a {q0, q2} se le denomina [q0, q2].
Como los conjuntos {q0, q1, q2} y {q0, q2} contienen estados nales del AFN
entonces los estados [q0, q1, q2] y [q0, q2] ser an estados nales en el AFD.
2.3. Aut omatas Finitos con Movimientos Libres.
Un Aut omata Finito con Movimientos Libres, que se denotar a habitualmente como
AF, se caracteriza porque cada transici on est a etiquetada con uno o m as smbolos del
alfabeto de entrada o bien con la cadena vaca.
Denici on 2.5 Un aut omata nito con movimientos libres, AF, es una quntupla A =
, Q, f, q0, F donde:
es el alfabeto de entrada,
Q es un conjunto nito y no vaco de estados,
f es una funci on denida de la siguiente forma
f : Q( {}) 2
Q
,
q0 es el denominado estado inicial, q0 Q,
F es el conjunto de estados denominados nales, F Q.
Para poder determinar correctamente cu al es el comportamiento de este tipo de aut omata
ante una cadena de entrada se necesita establecer una serie de deniciones previas.
2.3. Aut omatas Finitos con Movimientos Libres. 21
Denici on 2.6 Se denomina clausura(q), q Q, al conjunto de estados ac-
cesibles desde el estado q utilizando s olo transiciones . Adem as, se cumple que
q clausura(q).
Denici on 2.7 Se denomina CLAUSURA(P), siendo P un conjunto de estados,
P 2
Q
, al conjunto de estados formado por todas las clausuras de todos los esta-
dos que forman P,
CLAUSURA(P) =

pP
clausura(p).
Ejemplo:
clausura(q0) = {q0, q1, q2}
clausura(q1) = {q1, q2}
clausura(q2) = {q2}
Para simplicar la notaci on se utiliza el mismo smbolo de funci on clausura para
referirse tanto a clausura como a CLAUSURA.
Este concepto es muy importante porque al analizar el comportamiento del AF con una
determinada cadena se han de tener en cuenta tambi en las posibles transiciones sin consumir
smbolo. La clausura permite determinar a qu e estados se puede transitar desde uno dado
sin consumir smbolo; por lo tanto, es un paso previo al c alculo de la imagen. Y para poder
determinar cu al es el lenguaje reconocido por este tipo de aut omata es preciso conocer
cu al es su comportamiento ante cadenas de smbolos teniendo en cuenta las transiciones
. Para ello se dene una extensi on de la funci on de transici on del aut omata, a la que se
denominar a

f,

f : Q 2
Q
, de forma que

f(x), siendo x una cadena, se calcula
analizando smbolo a smbolo el conjunto de estados alcanzables.
Ejemplo:
Si en el AF del ejemplo anterior se quiere calcular

f(q0, ab), para hacerlo
correctamente hay que seguir el siguiente proceso:
1. Calcular la clausura(q0) = {q0, q1, q2}, ya que se parte del estado q0,
22 Captulo 2. Aut omatas Finitos y Expresiones Regulares
2. Calcular f({q0, q1, q2}, a) = {q0}, ya que a es el primer smbolo de la
cadena ab.
3. Calcular la clausura del resultado del paso anterior; como, casual-
mente es q0 ya sabemos que es {q0, q1, q2}. Este es el primer resultado
parcial, con el primer smbolo; para calcular f(q0, ab) hemos de calcular
la imagen de este conjunto de estados con b,
4. Calcular f({q0, q1, q2}, b) = {q1},
5. Calcular la clausura del resultado del paso anterior: clausura(q1) =
{q1, q2}.
Todo este proceso se reeja en el siguiente esquema:
Denici on 2.8 Se dene el lenguaje aceptado por un AF A, A = , Q, f, q0, F,
como el conjunto de cadenas tales que, despu es de ser analizadas, el AF ha podido
alcanzar al menos un estado nal, es decir,
L(A) = {x

|

f(q0, x) F = }
De la denici on de un AF se sigue que un AFN es un caso particular de AF en el
que no existen transiciones . Por lo tanto, si se denota por L(AF) al conjunto de todos los
lenguajes que pueden ser reconocidos por AF, entonces L(AFN) L(AF).
La cuesti on que se plantea a continuaci on es si la inclusi on contraria tambi en se cumple;
es decir, si para cualquier AF existe un AFNque reconozca exactamente el mismo lenguaje
que el AF.
Teorema 2.2 Sea L un lenguaje aceptado por un AF, entonces existe un AFN que
tambi en acepta L.
Al igual que ocurra en la secci on anterior, m as que demostrar este teorema interesa
estudiar un m etodo eciente para realizar el c alculo de un AFN equivalente a un AF dado.
En la asignatura se utilizar a el siguiente:
2.3. Aut omatas Finitos con Movimientos Libres. 23
1. A partir de la tabla original, se construye una tabla donde cada columna est a etique-
tada con un smbolo del alfabeto de entrada, sin tener ya en cuenta a .
2. En esta nueva tabla, cada la se etiqueta con uno de los estados del AF original.
3. Para dar un valor a cada una de las entradas [qi, sj] de la tabla hay que realizar el
c alculo de

f(qi, sj):
a) se calcula la -clausura de {qi}, obteni endose el conjunto de estados P,
b) se calcula f(P, sj), imagen de P con el smbolo j, obteni endose el conjunto de
estados P

, y
c) se calcula la -clausura de P

, y el conjunto de estados obtenido se almacena en


la tabla
4. El conjunto de estados nales estar a formado por lo mismos estados que lo formaban
en el aut omata original. Adem as, si la clausura(q0) contiene alg un estado nal,
q0 tambi en ser a un estado nal.
Nota: si la clausura(q0) contiene alg un estado nal, q0 tambi en ser a un estado
nal.por qu e? :-)
Ejemplo: Calcular un AFN que reconozca el mismo lenguaje que el siguiente
AF
La gura 2.4 es un esquema gr aco del procedimiento seguido para rellenar la
primera la de la tabla anterior, la que corresponde a {q0}: se va calculando
la imagen de clausura(q1) con cada uno de los tres smbolos del alfabeto
y, adem as, se vuelve a calcular la -clausura del conjunto as obtenido.
Haciendo lo mismo para {q1} y {q2}, se obtiene la siguiente tabla:
a b c
{q0} {q0, q1, q2} {q1, q2} {q2}
{q1} {q1, q2} {q2}
{q2} {q2}
que describe el comportamiento del AFN equivalente, que se muestra en la
gura 2.5.
En la gura 2.5, adem as, se ve que {q0} es estado nal, adem as de {q2}, porque
originalmente F = {q2} y, adem as, clausura(q0) F = .
Como consecuencia de este teorema y del teorema 2.1, se obtiene el siguiente resultado:
L(AFD) = L(AFN) = L(AF).
24 Captulo 2. Aut omatas Finitos y Expresiones Regulares
{q } 0
{q } 0
{q } 1
{q } 2
{q } 2
{q , q }
1 2
{q , q , q } 0 1 2
{q , q , q } 0 1 2
{q , q , q } 0 1 2
{q , q , q } 0 1 2
{q , q , q } 0 1 2



0 clausura({q })
0
1
2
clausura({q })
clausura({q })
clausura({q })
f ( ,a)
f( , b)
f( ,c)
Figura 2.4: Esquema del c alculo de la primera la de la tabla para el AFN.
q q q
a b c
b, c a, b
a, b, c
0 1 2
Figura 2.5: AFN equivalente obtenido.
Ejemplo
El AFD siguiente es equivalente a los AFs anteriores. (p4 es un estado sumide-
ro):
0 1 2
p p p
p
3
4
p
b
a b
a
c c
a
c
c
b
a, b
a, b, c
Para obtenerlo, basta con aplicar sobre el AFN representado en la gura 2.5
el m etodo descrito en la secci on 2.2:
2.4. Expresiones Regulares. 25
f a b c
p0 = {q0} {q0, q1, q2} {q1, q2} {q2}
p1 = {q0, q1, q2} {q0, q1, q2} {q1, q2} {q2}
p2 = {q1, q2} {q1, q2} {q2}
p3 = {q2} {q2}
2.4. Expresiones Regulares.
Las expresiones regulares permiten denotar lenguajes regulares y su estudio resulta de
gran inter es, tanto por su capacidad de especicaci on mediante un n umero reducido de
operadores como por sus aplicaciones pr acticas en la construcci on de analizadores l exicos.
Denici on 2.9 Dado el alfabeto , una expresi on regular ser a el resultado de la apli-
caci on de algunas (o todas) de las siguientes reglas un n umero nito de veces:
1. El smbolo es una expresi on regular y denota el lenguaje vaco,
2. El smbolo es una expresi on regular y denota el lenguaje {},
3. Si a entonces a es una expresi on regular que denota el lenguaje {a},
4. Si y son expresiones regulares entonces
a) + es una expresi on regular que denota la uni on de los lenguajes de-
notados por y por .
b) es una expresi on regular que denota la concatenaci on del lenguaje
denotado por con el denotado por .
c)

es una expresi on regular que denota la clausura del lenguaje denotado


por .
Ejemplos:
Si = a

entonces L() = L(a

) = {a
i
| i 0}.
Si = a

y = b

entonces L() = L(a

) = {a
i
b
j
| i, j 0}.
Si = a entonces L(

) = L(a

a) = L(a

)L(a) = {a
i
| i 0}{a} =
{a
i
| i 1}.
Si = a entonces L(

) = L(aa

) = L(a)L(a

) = {a}{a
i
| i 0} =
{a
i
| i 1}. Por lo tanto, L(a

a) = L(aa

).
El ultimo ejemplo sirve para ilustrar la cuesti on de qu e se entiende por expresiones
regulares equivalentes: y son dos expresiones regulares equivalentes si L() = L().
26 Captulo 2. Aut omatas Finitos y Expresiones Regulares
En general se va a denotar por tanto a la expresi on regular como al lenguaje que
denota, y adem as, para simplicar su escritura se establece una jerarqua de operadores para
evaluar una expresi on regular: primero se realizan las clausuras, luego las concatenaciones
y por ultimo las uniones.
As, por ejemplo, la expresi on regular a(a)

se puede escribir aa

, y () + se puede
escribir + .
Teorema 2.3 (Propiedades de las Expresiones Regulares) Las siguientes relacio-
nes son ciertas:
1) + ( + ) = ( + ) + = + +
2) + = +
3) + = + =
4) () = () =
5) = =
6) + = ( + ); + = ( + )
7) = =
8) + = ;

= + +
2
+. . . +
n
+

9)

=
10)

= ;
+
=
11)

12) (

13)

=
+
14)

= + +
2
+. . . +
n
+
n+1

15)

= +

= +
+
16)

= ( + )
n1
(
n
)

17) ( + )

= (

= (

18) ( + )

+ =

19) ()

= ()

20) (

= ( + )

21) (

= ( + )

+
22) (

= ( + )

+
En las propiedades anteriores el signo = debe interpretarse como equivalencia; es decir,
al expresar que + = + se arma que el lenguaje denotado por la expresi on regular
+ es equivalente al denotado por la expresi on regular + .
Teorema 2.4 (de An alisis) Sea L un lenguaje aceptado por un AFD, entonces existe
una expresi on regular que lo denota.
En la asignatura se utilizar a el siguiente m etodo para calcular la expresi on regular que
denota a un determinado AFD. Se denomina Regla de Arden. Para aplicarla, hay que esta-
2.4. Expresiones Regulares. 27
blecer un sistema de ecuaciones lineales en expresiones regulares y resolverlo. Cada ecua-
ci on de un sistema de ecuaciones lineales en expresiones regulares tiene la siguiente forma
general
X = rX +s
en la que r y s son expresiones regulares sobre un alfabeto . Dependiendo de que r o
r se tienen dos soluciones para dicha ecuaci on:
- r y, entonces, X = r

s. Para comprobarlo, basta ver que


X = rX +s = r(r

s) +s = (rr

+ )s = r

s = X.
- r y, entonces, hay innitas soluciones X = r

(s + t), donde t es una expresi on


regular cualquiera sobre (normalmente, este caso no nos afectar a). Este resultado
puede comprobarse de la siguiente forma,
X = rX +s = r(r

(s +t)) +s = (rr

+ )s +rr

t = (r
+
+ )s +r
+
t.
Como r

= r
+
si r, entonces lo anterior queda,
(r
+
+ )s +r
+
t = (r

+ )s +r

t = r

(s +t) = X.
M etodo para obtener la expresi on regular que denota a un AF dado. El m etodo se
basa en el establecimiento de un sistema de ecuaciones lineales en expresiones regulares a
partir del AF. Sea A,
A = , Q, f, q0, F
un AFD o un AFN; a A se le puede asociar un sistema de ecuaciones lineales en expresiones
regulares de la siguiente forma:
1. Se asocia una variable a cada estado: qi Q, a qi se le asocia Xi.
2. Las ecuaciones se construyen en funci on de las transiciones: si qj f(qi, a), entonces
en la ecuaci on de la variable Xi aparece el t ermino aXj en su parte derecha:
Xi = ... +aXj +...
3. Adem as, se asocia el t ermino a los estados nales: si qi F, entonces en la ecua-
ci on de la variable Xi aparece en su parte derecha: Xi = ... + +....
El lenguaje reconocido por el AF es la expresi on regular de la variable asociada a su
estado inicial.
Ejemplo Hay que calcular la expresi on regular que denota el lenguaje recono-
cido por el aut omata que se muestra en la gura 2.4.
28 Captulo 2. Aut omatas Finitos y Expresiones Regulares
q
0
0, 1
q
3
q
1
1
0
q
2
0
1 1
0 X
2
X
3
X
0
X
1
Sobre la gura se ha asociado ya a cada estado su correspondiente variable.
De acuerdo al segundo y tercer paso del m etodo, el sistema de ecuaciones
lineales que hay que resolver es el siguiente:
X0 = 0X1 + 1X1 + = (0 + 1)X1 +
X1 = 0X2 + 1X3 +
X2 = 1X2 + 0X1
X3 = 0X3 + 1X1
Recordemos que la soluci on de la ecuaci on general, X = rX +s es X = r

s.
En la ultima ecuaci on, si identicamos t erminos con r y s se tiene:
X3 = 0

r
X3 + 1X1

s
.
Por lo tanto,
X3 = 0

1X1.
De forma similar, se puede operar con X2,
X2 = 1

r
X2 + 0X1

s
, X2 = 1

0X1.
Se tienen X2 y X3 en funci on de X1. Al substituir en la ecuaci on de X1 se
obtiene
X1 = 0X2 + 1X3 + = 01

0X1 + 10

1X1 + = (01

0 + 10

1)X1 +
Agrupando t erminos se llega a
X1 = (01

0 + 10

1)

r
X1 +

s
, X1 = (01

0+10

1)

= (01

0+10

1)

.
y, al substituir en la ecuaci on de X0 se obtiene nalmente,
X0 = (0 + 1)X1 + = (0 + 1)(01

0 + 10

1)

+ ,
L(AFD) = (0 + 1)(01

0 + 10

1)

+ .
2.4. Expresiones Regulares. 29
Teorema 2.5 (de Sntesis) Sea r una expresi on regular, entonces existe un AF A tal
que L(A) = r.
Demostraci on:
Hay que demostrar que para cualquier expresi on regular r siempre se puede construir un
AF que sea capaz de reconocer lenguaje que denota r. Una forma de calcular el AF ade-
cuado a cada expresi on regular consiste en aplicar inducci on sobre el n umero de operadores
presentes en la expresi on regular.
Para simplicar el proceso de demostraci on se asume que todos los AF contienen un
unico estado nal que no posee transiciones de salida, es decir, F = {qf } y f(qf , a) =
a .
Paso Base: En r no hay operadores regulares. Entonces r s olo puede ser , , a , a los
que se puede asociar, respectivamente, los AF que se muestran en al gura 2.6.
Figura 2.6: AFs asociados a , y a .
Hip otesis de Inducci on: Sup ongase que para cualquier expresi on regular con un n umero
de operadores menor o igual que n se cumple que existe un AF que la reconoce.
Paso de Inducci on: Sea r con n+1 operadores, entonces r se puede escribir como r =
r1 + r2, r = r1r2 o r = r

1
, donde tanto r1 como r2 son expresiones regulares que
contienen n o menos operadores regulares.
Se estudiar a cada una de las tres posibles situaciones:
r = r1 +r2: Como r1 y r2 tienen n o menos operadores regulares existen, por H.I.,
dos AF A1 y A2 tales que L(A1) = r1 y L(A2) = r2. Estos aut omatas apare-
cen esquematizados en la gura 2.7. :
Figura 2.7: L(A1) = r1 y L(A2) = r2.
El AF de la gura 2.8 reconoce L(A1) L(A2), por lo tanto r = r1 +r2.
La denici on formal de este aut omata es la siguiente:
30 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Figura 2.8: AF A tal que L(A) = r1 +r2.
Sea A1 = 1, Q1, f1, q01, {qf1} y A2 = 2, Q2, f2, q02, {qf2}, tales que
Q1 Q2 = .
Se dene el AF
A = 1 2, Q1 Q2 {q0, qf }, f, q0, {qf }
en el que la funci on de transici on f se dene como:
f(q0, ) = {q01, q02}
f(q, a) = f1(q, a), q Q1, a 1 {}
f(q, a) = f2(q, a), q Q2, a 2 {}
f(qf1, ) = f(qf2, ) = {qf }
r = r1r2: Como r1 y r2 tienen n o menos operadores regulares existen, por H.I., dos
AF A1 y A2 tales que L(A1) = r1 y L(A2) = r2. Estos aut omatas aparecen
esquematizados en la gura 2.9.
Figura 2.9: L(A1) = r1 y L(A2) = r2.
Si se permite la transici on del estado nal nal de A1 al inicial del aut omata A2,
se obtiene el AF de la gura 2.10, que reconoce L(A1)L(A2) y, por lo tanto,
r = r1r2.
Figura 2.10: AF A tal que L(A) = r1r2.
Para denir formalmente este aut omata, se parte de la denici on de los aut oma-
tas A1 = 1, Q1, f1, q01, {qf1} y A2 = 2, Q2, f2, q02, {qf2} tal que Q1
Q2 = . Entonces, se dene el AF
A = 1 2, Q1 Q2, f, q01, {qf2}
en el que la funci on de transici on f se dene como:
f(q, a) = f1(q, a), q Q1 {qf1}, a 1 {}
f(qf1, ) = {q02}
f(q, a) = f2(q, a), q Q2, a 2 {}
2.5. Otros Tipos de Aut omatas Finitos. 31
r = r

1
: Como r1 tiene n o menos operadores regulares existe, por H.I., un AF A1
tal que L(A1) = r1:
Figura 2.11: AF A1 tal que L(A1) = r1.
El AF de la gura 2.12, reconoce [L(A1)]

, por lo tanto r = r

1
.
Figura 2.12: AF A tal que L(A) = r

1
.
En este caso, para la denici on formal, se parte del aut omata A1 = 1, Q1, f1, q01, {qf1}.
Y se dene el AF
A = 1, Q1 {q0, qf }, f, q0, {qf }
en el que la funci on de transici on f se dene como:
f(q0, ) = f(qf1, ) = {q01, qf }
f(q, a) = f1(q, a), q Q1 {qf1}, a 1 {}
c.q.d.
2.5. Otros Tipos de Aut omatas Finitos.
Adem as de las extensiones vistas (no deterministas, deterministas, movimientos libres,
expresiones regulares) existen otra serie de modelos de m aquinas virtuales con una capaci-
dad de c alculo equivalente a los aut omatas nitos. De entre estos aut omatas se van a exponer
las principales caractersticas de los aut omatas con funci on de salida (Mealy y Moore).
2.5.1. Aut omatas Finitos con Funci on de Salida.
Hasta el momento los AF descritos tienen como salida una se nal del tipo acepto/no
acepto (seg un se alcance un estado nal o no despu es de consumir toda la cadena de entra-
da).
Los aut omatas nitos con funci on de salida son modelos que traducen la cadena de
entrada en otra cadena de salida. Si esa traducci on se realiza en cada estado entonces se
32 Captulo 2. Aut omatas Finitos y Expresiones Regulares
tiene una m aquina de Moore y si la traducci on se realiza en cada transici on entonces se
tiene una m aquina de Mealy.
M aquina de Moore.
Es una s extupla A = Q, , , f, , q0 donde Q, , f y q0 se denen como en un AFD.
El conjunto representa al alfabeto de salida y es una funci on que asocia a cada estado
un smbolo del alfabeto de salida, es decir, : Q .
La respuesta de A con respecto a la entrada a1a2 . . . an, n 0, es
(q0)(qi1)(qi2) . . . (qin)
donde q0, qi1, qi2, . . . , qin es la secuencia de estados tal que f(qij, ai+1) = qij+1.
Ejemplo:
Escribir una m aquina de Moore que determine el resto de dividir un n umero
binario entre 3.
El resto de dividir un n umero entre 3 ser a el entero 0, el 1 o el 2. Por lo tanto,
se establece una M aquina de Moore con tres estados, q0, q1 y q2, de forma que
(q0) = 0, (q1) = 1 y (q2) = 2.
Para determinar las transiciones entre estados se realiza el siguiente an alisis:
Si a un n umero binario i se le a nade un 0 por la derecha se obtiene un
nuevo entero, i0, cuyo valor es el de i multiplicado por 2.
Por lo tanto, si i m od 3 = r, entonces 2i m od 3 = 2r m od 3 = r

.
Cuando se parte de un valor r = 0, se obtiene para r

el valor 0; si
r = 1 r

= 2 y si r = 2 r

= 1.
Si al entero i se le a nade un 1 se obtiene como nuevo valor, i1, el anterior
multiplicado por 2 y a nadi endole 1.
Por lo tanto, si i m od 3 = r, entonces (2i + 1) mod 3 = (2r + 1) mod
3 = r

. Entonces, si r = 0 r

= 1, si r = 1 r

= 0 y si r = 2
r

= 2.
Este an alisis permite dise nar la M aquina de Moore de la gura 2.13.
q
1 q
0
q
2
1
1
0
0
1
0
0 1 2
Figura 2.13: M aquina de Moore para calcular el resto de la divisi on entera entre 3.
El comportamiento de esta M aquina de Moore ante la cadena de entrada
110100 es la cadena de salida (q0)(q1)(q0)(q0)(q1)(q2)(q1), es de-
cir, 0100121.
2.6. Aplicaciones. 33
Al interpretar este resultado se obtiene que 110100 es el entero 52, y 52 mod
3 = 1, que coincide con el ultimo smbolo de salida proporcionado por la
m aquina de Moore.
M aquina de Mealy.
Es una s extupla A = Q, , , f, , q0 donde Q, , f y q0 se denen como en un
AFD. El conjunto representa al alfabeto de salida y es una funci on que asocia a cada
transici on un smbolo del alfabeto de salida, es decir, : Q .
La respuesta de A con respecto a la entrada a1a2 . . . an, n 0, es
(q0, a1)(qi1, a2)(qi2, a3) . . . (qin1, an)
donde q0, qi1, qi2, . . . , qin1 es la secuencia de estados tal que f(qij, ai+1) = qij+1.
Ejemplo:
Escribir una m aquina de Mealy que produzca salida y cuando los dos ultimos
smbolos ledos de la cadena sean iguales y que produzca salida n en otro
caso.
Para realizar esta m aquina basta con recordar cual ha sido el ultimo smbolo
ledo de la cadena de entrada, y si su siguiente smbolo coincide con el anterior,
entonces se produce salida y; en cualquier otra situaci on la salida ser a n.
2.6. Aplicaciones.
Los lenguajes regulares son utilizados en aplicaciones muy diversas. Entre ellas, en esta
secci on se comentan tres de las m as usuales,
an alisis l exico de un compilador (exp. regulares, AF),
especicaci on de par ametros de entrada (expresiones regulares),
ayuda al dise no de circuitos (Mealy, Moore).
34 Captulo 2. Aut omatas Finitos y Expresiones Regulares
2.6.1. Aplicaci on como ayuda al an alisis l exico en un compilador.
Un compilador es un programa que traduce un c odigo denominado fuente en otro c odi-
go denominado objeto. Para realizar esa transformaci on son necesarias varias etapas. La
primera de estas etapas consiste en detectar, de todas las cadenas que componen el c odigo
fuente, cu ales son representativas para el compilador. Por ejemplo, qu e cadenas representan
constantes (enteras, reales, l ogicas, etc) o bien palabras reservadas del lenguaje (begin,
end, {, }, procedure, function, main, while, . . . etc.). Estas cadenas se representan
por medio de expresiones regulares y su detecci on se realiza por medio de aut omatas nitos.
El siguiente ejemplo muestra c omo representar constantes enteras, con o sin signo, uti-
lizando expresiones regulares y c omo reconocer estas constantes por medio de un aut omata
nito.
Expresi on Regular:
entero = (

+ )(digitonocero)(digito)

digitonocero =

digito = digitonocero +

Aut omata Finito:


q
1
q
0
q
2
1, 2, 3, 4, 5, 6, 7, 8, 9
0
+, - , !
q
3
0,1, 2, 3, 4, 5, 6, 7, 8, 9
Esta tarea resulta tan habitual que se encuentran disponibles varias herramientas de
programaci on que automatizan la tarea de dise nar los programas que se comporten como
reconocedores l exicos. Por ejemplo, la orden lex del sistema operativo UNIX establece un
mecanismo para generar un programa ejecutable que se comporte como un aut omata nito
mediante la especicaci on de su expresi on regular asociada.
2.6.2. Especicaci on de par ametros de entrada.
En algunos programas que requieran de la interacci on del usuario para buscar ciertos
patrones de caracteres sobre un determinado chero, suele resultar bastante aconsejable
permitir la introducci on de esos datos mediante expresiones regulares. Por ejemplo, en la
mayora de sistemas operativos se incluye la capacidad de buscar cheros cuyo nombre
presente algunas caractersticas expresables mediante expresiones regulares.
2.6. Aplicaciones. 35
En el siguiente ejemplo se observa como listar en el sistema operativo UNIX
todos los cheros cuyo nombre empiece por p y su tercer car acter sea un
5: ls p?5*. Este comando da lugar al aut omata nito que se muestra en
la gura 2.14.
q
1
q
0
q
2
cualquiera 5 p
q
3
cualquiera
Figura 2.14: Aut omata Finito asociado a la expresi on p?5*
Otro ejemplo de utilizaci on de expresiones regulares en aplicaciones de texto se pre-
senta en el editor de texto UNIX, ed. Para representar la ejecuci on de tareas tales como la
b usqueda de un texto y su sustituci on por otro texto en todo un chero se utiliza un comando
como el siguiente: s/ bbb*/b. Al ejecutar este comando se sustituyen las secuencias de
dos o m as caracteres blancos en el chero bbb* por un unico car acter blanco b. En este
caso el editor ed transforma el comando de entrada s/bbb*/b en un aut omata nito con
movimientos libres con el n de ahorrar memoria al representar el aut omata nito.
2.6.3. Ayuda al dise no de circuitos.
Tanto las m aquinas de Moore como las m aquinas de Mealy se utilizan frecuentemente
para dise nar circuitos.
Como ejemplo de este tipo de aplicaci on se presenta el dise no de un sumador
binario serie mediante una m aquina de Mealy.
El diagrama de bloques de un sumador binario en serie es el siguiente:
Este diagrama de bloques se puede representar mediante una tabla de estados
que contendr a dos estados: q0 y q1. El estado q0 representa la condici on de
acarreo 0 mientras que el estado q1 representa la condici on de acarreo 1.
Estado actual x1x2 = 00 01 10 11
q0 q0, 0 q0, 1 q0, 1 q1, 0
q1 q0, 1 q1, 0 q1, 0 q1, 1
La entrada (q0, 00) = (q0, 0) representa que si el dgito x1 es 0, el dgito x2 es
0 y la m aquina de Mealy se encuentra en el estado q0, entonces la m aquina de
Mealy permanece en el estado q0 y produce el dgito de salida 0.
36 Captulo 2. Aut omatas Finitos y Expresiones Regulares
q
1
q
0
11/0
00/1
00/0
01/1
10/0
01/0
10/0
11/1
Figura 2.15: M aquina de Mealy para un sumador binario.
2.7. Problemas Propuestos.
1. Simplicar las siguientes expresiones regulares:
(a) ( +aa)

(b) ( +aa)( +aa)

(c) a( +aa)

a +
(d) a( +aa)

( +aa) +a
(e) (a + )a

b
(f) ( +aa)

( +aa)a +a
(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)

2. Escribir una Gram atica Regular y un AF que reconozca cada uno de los siguientes
lenguajes, denidos sobre el alfabeto {a, b, c}:
a) Conjunto de cadenas que contengan tres smbolos c consecutivos en alg un sitio.
b) Conjunto de todas las cadenas no nulas en las que bc no sea una subcadena.
c) Conjunto de todas las cadenas en las que cada b que ocurra vaya inmediatamente
seguida por una c.
d) Conjunto de cadenas en las que abc sea prejo y sujo propio. (Prejo propio:
abcx, Sujo propio: xabc , x
+
)
e) Conjunto de cadenas de la forma (abc)

.
f ) Conjunto de cadenas de la forma V1V2 . . . Vn, n 0, donde Vi = bc o Vi = ca.
3. Escribir una Gram atica Regular y un AF que reconozca cada uno de los siguientes
lenguajes, denidos sobre el alfabeto {0, 1}:
a) Conjunto de todas las cadenas acabadas en 00.
b) Conjunto de cadenas en las que cada bloque de cinco smbolos consecutivos
contenga al menos dos ceros.
c) Conjunto de cadenas tales que su d ecimo smbolo de derecha a izq. sea un 1.
(Nota: escribir un aut omata no determinista).
2.7. Problemas Propuestos. 37
d) Conjunto de cadenas tales que representen una suma binaria de dos sumandos en
el que los sumandos y el resultado se leen por columnas de derecha a izquierda
y de arriba a abajo. Por ejemplo, la cadena 000011110100001 representa la
suma
1100
+ 0110
10010
4. Dise nar un aut omata nito cuyo comportamiento se corresponda con el del circuito
la gura 2.16, en el que se supone que hay suciente tiempo entre los cambios en va-
lores de entrada para que se propaguen las se nales y la red alcance una conguraci on
estable. Los estados nales se corresponden con salida 1. Inicialmente y1 = y2 = 0.
x
Entrada
y
1
y
2
Salida
Figura 2.16: Circuito digital a convertir en aut omata.
5. Dise nar un aut omata nito cuyo comportamiento sea equivalente a la red neuronal
de la gura 2.17. Los estados nales del aut omata deben de corresponderse con la
salida 1 de la red.
Cada neurona tiene sinapsis excitadoras (crculos) e inhibidoras (puntos). Una neu-
rona produce una salida 1 si el n umero de sinapsis excitadoras con entrada 1
excede el n umero de sinapsis inhibidoras con entrada 1 por al menos el umbral de
la neurona (n umero del tri angulo). Suponer que existe el tiempo suciente entre los
cambios en valores de entrada para que las se nales se propaguen y que la red alcance
una conguraci on estable. Inicialmente y1 = y2 = y3 = 0.
6. Construir Aut omatas Finitos equivalentes a las siguientes expresiones regulares:
a) 10 + (0 + 11)0

1
b) 01[((10)

+ 111)

+ 0]

1
c) ((0 + 1)(0 + 1))

+ ((0 + 1)(0 + 1)(0 + 1))

7. Construir AFD equivalentes a los siguientes AFN,


A = {p, q, r, s}, {0, 1}, f1, p, {s}
y
M = {p, q, r, s}, {0, 1}, f2, p, {q, s},
38 Captulo 2. Aut omatas Finitos y Expresiones Regulares
y
1
y
2
y
3
Salida
Entrada
2
1
1
2
Figura 2.17: Red neuronal a convertir en aut omata.
donde f1 y f2 vienen dadas por las siguientes tablas:
0 1
p {p, q} p
q r r
r s
s s s
0 1
p {q, s} q
q r {q, r}
r s p
s p
8. Construir un AFD que acepte el mismo lenguaje que el siguiente AF:
9. Escribir M aquinas de Moore y de Mealy para los siguientes procesos:
a) Para cadenas de (0 +1)

; si la cadena acaba en 101, sacar A; si la entrada acaba


en 110, sacar B; en cualquier otro caso, sacar C.
b) Para cadenas de (0 + 1 + 2)

sacar el residuo m odulo 5 de la entrada tratada


como un n umero en base 3.
10. Una de las etapas en el desarrollo de un compilador consiste en analizar l exicamen-
te el programa que recibe el compilador con el prop osito de localizar nombres de
variables, constantes - enteras, reales, car acter, l ogicas -, palabras reservadas del len-
guaje,. . . A esta etapa se la denomina an alisis l exico.
Construir un AF que reconozca constantes con signo enteras y reales con notaci on
en punto jo o cientca. La gura muestra el formato que debe seguir una constante
real con signo en notaci on ja o cientca.
2.7. Problemas Propuestos. 39
-
+
E Dgito
-
+
. Dgito Dgito
11. Demostrar la certeza o falsedad de la siguiente armaci on:
Para todo lenguaje regular existe un AF que lo reconoce y que posee un
unico estado nal.
40 Captulo 2. Aut omatas Finitos y Expresiones Regulares
Captulo 3
Propiedades de los Lenguajes
Regulares

Indice General
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. 41
3.2. Lema de Bombeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3. Propiedades de Clausura. . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4. Algoritmos de Decisi on para Lenguajes Regulares. . . . . . . . . . . 51
3.5. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . 52
En este tema se presentan las propiedades que cumplen los lenguajes regulares.
El primer resultado a estudiar, el teorema de Myhill-Nerode, es de especial trascedencia
puesto que establece la existencia de un AF mnimo para aceptar un determinado lenguaje
regular y, adem as, permite desarrollar un m etodo para calcularlo.
Adem as, se presentan los resultados que satisfacen los lenguajes regulares. Estos resul-
tados permitir an saber si un lenguaje dado es o no es regular. El inter es de estudiar este tipo
de herramientas (lema de bombeo, propiedades de clausura) es muy grande, ya que cuando
se determina el tipo m as restrictivo al que pertenece un lenguaje, se est a determinando el
mnimo n umero de recursos computacionales necesario para reconocer sus cadenas.
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas
Finitos.
Sea D un conjunto, una relaci on binaria R es un subconjunto de D D, es decir,
R D D. Si el par (a, b) R, entonces se denota como aRb; en caso contrario, se
denota como aR\b.
41
42 Captulo 3. Propiedades de los Lenguajes Regulares
Denici on 3.1 (Relaci on Binaria de Equivalencia, RBE) Una relaci on binaria se
dice de equivalencia -r.b.e.- si, y s olo si:
1. cumple la propiedad reexiva: x D, xRx,
2. cumple la propiedad sim etrica: x, y D, si xRy entonces yRx,
3. cumple la propiedad transitiva: x, y, z D, si xRy yRz entonces xRz.
Ejemplo:
iRj si y s olo si i j no es r.b.e., puesto que es reexiva y transitiva,
pero no sim etrica.
iRmj si y s olo si (i j) m od m = 0, es r.b.e.
Sea R una relaci on binaria de equivalencia. Se dene la clase de equivalencia [x]R como
el conjunto {y D | xRy}.
El ndice de una r.b.e. es el n umero distinto de clases de equivalencia que contiene.
Sea un alfabeto, se dice que una r.b.e. R, R

, es invariante a la derecha con


respecto a la concatenaci on si z

se verica que xRy implica que xzRyz.


Teorema 3.1 (Teorema de Myhill-Nerode) Las tres armaciones siguientes son
equivalentes:
1. El lenguaje L

es aceptado por alg un AF.


2. L es la uni on de algunas de las clases de equivalencia de una r.b.e. invariante a
la derecha de ndice nito.
3. Sea RL la r.b.e.
xRLy si y s olo si z

, xz L s olo cuando yz L,
entonces RL es de ndice nito.
En la demostraci on del teorema de Myhill-Nerode, que no se ver a, se construye un AFD
A que reconoce un lenguaje regular L seg un la relaci on RL. Tambi en se expone que cual-
quier otra r.b.e. que se establezca sobre un AFD A

que reconozca el mismo lenguaje va


a tener un n umero de estados que ser a mayor o igual al n umero de estados del AFD pro-
porcionado por la demostraci on del teorema de Myhill-Nerode. Por lo tanto, este aut omata
tendr a el n umero mnimo de estados que pueda tener cualquier aut omata que reconozca el
mismo lenguaje.
3.1. El Teorema de Myhill-Nerode. Minimizaci on de Aut omatas Finitos. 43
La pregunta que se establece ahora es, puede existir otro AFD que reconozca este
mismo lenguaje que tenga el mismo n umero de estados que el AFD dado por el teorema de
Myhill-Nerode pero que tenga una diferente funci on de transici on?
Teorema 3.2 El AFD de mnimo n umero de estados de entre todos los AFD que acep-
tan un mismo lenguaje regular es unico, salvo isomorsmos (renombramiento de es-
tados).
Ya que el teorema de Myhill-Nerode permite armar que hay un unico AFD con n umero
mnimo de estados, lo que se plantea a continuaci on es c omo obtener un m etodo pr actico
que permita calcularlo.
Sea la r.b.e. sobre los estados de A tal que p q si, y s olo si, para cada cadena de
entrada x, f(p, x) es un estado nal si, y s olo si, f(q, x) es un estado nal.
Hay un isomorsmo entre aquellas clases de equivalencia de que contienen un estado
alcanzable desde q0 para alguna cadena de entrada y los estados del AFD de n umero mnimo
de estados. Por lo tanto, los estados de AFD mnimo se pueden identicar con estas clases.
Se emplea la siguiente notaci on: si p q se dice que p es equivalente a q y en caso
contrario se dice que p es distinguible de q.
El c alculo de la relaci on se realiza por medio del siguiente m etodo, que se ilustra
tomando como ejemplo el AFD presentado en la gura 2.4:
1. Se crea una tabla con | Q | 1 las y | Q | 1 columnas. Cada la y cada columna
se etiqueta con uno de los estados de Q, de forma que si q es un estado de Q entonces
no existen en la tabla entradas correspondientes a parejas (q,q). Asmismo, si q y p
son estados de Q, la entrada correspondiente a la pareja (q,p) tambi en representa a la
pareja (p,q).
En el ejemplo, la tabla correspondiente sera de la forma,
2. Se marca cada entrada de la tabla que se corresponde con una pareja (estado nal,
estado no nal), pues todas esas parejas se corresponden con pares de estados distin-
guibles.
44 Captulo 3. Propiedades de los Lenguajes Regulares
En el ejemplo, se tienen las siguientes parejas de estados nal/no nal,
3. Para cada par de estados (p,q) que no se haya analizado hasta el momento, se consi-
deran los pares de estados (r,s) tales que r = f(q, a) y s = f(p, a), para cada smbolo
de entrada a.
Si los estados r y s son distinguibles para alguna cadena x, entonces los estados p y q
son distinguibles por la cadena ax.
Por lo tanto, si la entrada (r,s) est a marcada en la tabla, entonces tambi en se marca
la entrada (p,q). Si la entrada (r,s) no est a marcada, entonces el par (p,q) se coloca
en una lista asociada con la entrada (r,s). Si posteriormente se marca la entrada (r,s),
tambi en se marcar an todas las parejas de la lista asociada.
En el ejemplo, se obtiene lo siguiente:
El an alisis del par (q0, q4) remite al par (q1, q5); por lo tanto, se
coloca en la lista asociada a dicha entrada.
El an alisis del par (q1, q2) remite al par (q0, q3); por lo tanto, se
marca.
El an alisis del par (q1, q3) remite al par (q0, q2); por lo tanto, se
marca.
El an alisis del par (q1, q5) remite al par (q0, q4); por lo tanto, no se
puede marcar ninguna de las dos entradas.
El an alisis del par (q2, q3) remite al par (q3, q4); por lo tanto, se
marca.
El an alisis del par (q2, q5) remite al par (q3, q4); por lo tanto, se
marca.
El an alisis del par (q3, q5) remite al par (q2, q4); por lo tanto, se
marca.
Al nalizar este proceso todas aquellas entradas de la tabla que queden vacas identican
parejas de estados equivalentes.
En el ejemplo, los estados q1 y q5 son equivalentes, y lo mismo sucede con los
estados q0 y q4. Se puede comprobar que el aut omata obtenido es el presentado
en la gura 3.1.
3.2. Lema de Bombeo. 45
Figura 3.1: Mnimo AFD que reconoce L.
3.2. Lema de Bombeo.
Este lema proporciona una herramienta muy util para demostrar que ciertos lenguajes
no son regulares, es decir, que no pueden ser reconocidos por aut omatas nitos. Adem as,
como consecuencias adicionales de su enunciado, tambi en resulta util como referencia te ori-
ca para desarrollar algoritmos que respondan a ciertas cuestiones sobre aspectos determina-
dos de aut omatas nitos, como por ejemplo, si el lenguaje aceptado por un aut omata nito
es nito o innito.
Lema 3.1 (Lema de Bombeo) Para todo lenguaje regular L existe una constante n,
dependiente unicamente de L, tal que si z es una cadena de L, y se cumple que | z | n,
entonces la cadena z se puede descomponer como z = uvw tal que:
1. | v | 1,
2. | uv | n,
3. Para todo i 0 las cadenas uv
i
w son, todas, cadenas de L.
Demostraci on:
Si un lenguaje es regular, entonces es aceptado por un aut omata nito determinista,
AFD, A = Q, , f, q0, F. Sea |Q| = n, es decir, el AFD tiene n estados.
Sea z = a1a2 . . . am una cadena de m smbolos, tal que m n, y sup ongase que
46 Captulo 3. Propiedades de los Lenguajes Regulares
f(q0, a1a2 . . . ai) = qsi, donde qsi representa el estado que se alcanza despu es de analizar
los primeros ai smbolos. Seg un esto, f(q0, a1) = qs1, f(q0, a1a2) = qs2, . . . etc.
Como la cadena z tiene m smbolos y el AFD tiene n estados distintos, y m n,
entonces si el AFD A comienza a trabajar con la cadena z, no puede ser que los primeros
n + 1 estados que se suceden en el an alisis de la cadena z (q0, qs1, qs2, . . . qsn) sean todos
distintos.
Por lo tanto, existen al menos dos enteros, llam emosles j y k, 1 j < k n ta-
les que qsj = qsk, es decir, f(q0, a1 . . . aj) = qsj, f(q0, a1 . . . ak) = qsk = qsj
f(qk, ak+1 . . . am) = qsm. Como j < k entonces la subcadena aj+1 . . . ak tiene una lon-
gitud mayor o igual que 1, y como k n entonces su longitud no puede ser mayor que
n.
Gr acamente, la idea se puede expresar de la forma siguiente:
Si la cadena a1 . . . am pertenece al lenguaje reconocido por el AFD A, entonces qsm
F, y por lo tanto, la cadena a1 . . . ajak+1 . . . am tambi en pertenece a L(A). En este caso, el
bucle que reconoce aj+1 . . . ak no se realiza ninguna vez. Pero tambi en podra darse el caso
de realizarlo i veces, en cuyo caso la cadena reconocida sera a1 . . . aj(aj+1 . . . ak)
i
ak+1 . . . am.
Qu e conclusi on se puede sacar de este proceso? Que si se tiene un AFD y una cadena
z de una longitud lo sucientemente larga que sea aceptada por el AFD, entonces se puede
localizar una subcadena de z tal que esa subcadena se puede repetir tantas veces como se
quiera (es decir, se puede bombear) obteni endose como resultado de este proceso nuevas
cadenas que tambi en ser an aceptadas por el AFD.
Con esta idea gr aca, para completar la demostraci on basta con identicar u con a1 . . . aj,
v con aj+1 . . . ak y w con ak+1 . . . an. Como j < k entonces | v |= k (j + 1) + 1 =
k j 1 y como k n, entonces | uv | n.
c.q.d.
Este lema se aplica para demostrar que un lenguaje no es regular, es decir, si un lenguaje
no cumple con el lema de bombeo entonces se puede garantizar que no es regular, pero si
cumple las condiciones del lema entonces no se puede asegurar si es o no es regular.
Ejemplos:
1. Demostrar que el lenguaje {a
n
b
n
| n 0} no es un lenguaje regular.
3.2. Lema de Bombeo. 47
Para poder comprobar si se cumplen las condiciones impuestas por el le-
ma de bombeo, se debe localizar una cadena del lenguaje cuya longitud
sea mayor que la constante del lema para este lenguaje. Sea t esa cons-
tante. Entonces z = a
t
b
t
pertenece al lenguaje y su longitud es mayor
que t, por lo tanto z se puede escribir como uvw, pero cuales son los
smbolos de z que componen la cadena v? Se analizan todos los casos
posibles y si al menos uno de estos casos fuese posible, entonces no se
podra demostrar que no se cumple el lema para esta cadena:
a) Si v est a compuesta s olo de smbolos a, entonces las cadenas uv
i
w, i
2 no pertenecen al lenguaje (contienen m as as que bs).
(t)
a . . .

u
. . . a . . .

v
(t)
abb . . . b

w
b) Si en la cadena v aparece alg un smbolo b, deja de cumplirse la se-
gunda condici on, ya que entonces | uv |> t, ya que en la subcadena
u deberan de estar, al menos, todas los t smbolos a.
(t)
a . . .

u
a . . . b

v
(t)
. . . bb . . . b

w
(t)
a . . . ab

u
(t)
. . . b . . .

v
. . . b

w
Como no hay m as opciones posibles para la asignaci on de smbolos a la
cadena v, entonces este lenguaje no cumple el lema de bombeo y, por lo
tanto, no puede ser un lenguaje regular.
2. Demostrar que el lenguaje L = {0
p
| p es un n umero primo} no es un
lenguaje regular.
Este lenguaje est a formado por las cadenas de 0s cuya longitud es un
n umero primo. Sea n la constante del lema de bombeo y sea z = 0
k
tal
que k es un n umero primo mayor que n.
Como el conjunto de n umeros primos es un conjunto de innitos elemen-
tos se garantiza que ese n umero primo k existe, sea cual sea el valor de
n. Por lo tanto z L y si L fuese un lenguaje regular entonces deberan
de cumplirse las condiciones expuestas por el lema de bombeo, en parti-
cular, que
uv
i
w L i 0.
Sea i = k + 1; la cadena uv
k+1
w debera pertenecer a L. Pero,
| uv
k+1
w |=| uv
k
vw |=| uvw | + | v
k
|= k +k | v |= k(1+ | v |).
Es decir, | uv
k+1
w | no es un n umero primo, puesto que es divisible por
k y por (1+ | v |). Como consecuencia, el lenguaje L no es un lenguaje
regular puesto que no cumple el lema de bombeo.
48 Captulo 3. Propiedades de los Lenguajes Regulares
3.3. Propiedades de Clausura.
Existen numerosas operaciones que aplicadas a lenguajes regulares dan como resultado
otro lenguaje regular. Por ejemplo, la uni on de dos lenguajes regulares es un lenguaje regular
puesto que si r1 y r2 denotan a los lenguajes regulares L1 y L2, entonces la expresi on
regular r1 + r2 denota al lenguaje L1 L2. Este tipo de operaciones reciben el nombre de
operaciones de clausura.
Teorema 3.3 Los lenguajes regulares son cerrados bajo las operaciones de uni on,
concatenaci on, y estrella de Kleene.
La demostraci on del teorema anterior se deja propuesto como ejercicio.
Teorema 3.4 Los lenguajes regulares son cerrados bajo la operaci on de complemen-
taci on.
Demostraci on:
Sea A = Q, , q0, f, F un Aut omata Finito Determinista tal que L(A) = L. Se cons-
truye un AFD A

= Q, , q0, f, QF, es decir, A

es un AFD que se diferencia del AFD


A en que en A

ser an estados nales los que no lo eran en el AFD A y viceversa.


Por lo tanto,
L(A

) = {x

| f(q0, x) QF} = {x

| f(q0, x) F} =

{x

|
f(q0, x) F} =

L =

L.
c.q.d.
Resulta interesante destacar que la condici on de que el aut omata nito de partida sea
determinista es muy importante, puesto que de no ser as, entonces la demostraci on no sera
correcta.
Por ejemplo, si A fuese un AFN tal que f(q, a) = {qj, qk} y qj F, pero qk F, al
construir el AF A

se tendra que qk Q F y por lo tanto sera un estado nal de A

. Y
como f(q, a) = {qj, qk} resulta que la cadena a es reconocida por el AF A y por A

. Esto
es imposible si el AF A

reconoce el complementario de L(A).


Teorema 3.5 Los lenguajes regulares son cerrados bajo la operaci on de intersecci on.
3.3. Propiedades de Clausura. 49
Demostraci on:
Como los lenguajes regulares son cerrados bajo las operaciones de complementaci on y
de uni on, entonces si L1 y L2 son lenguajes regulares tambi en lo ser a L2 L1 = L1 L2.
c.q.d.
C omo se podra construir un AFD que reconociese la intersecci on de dos lenguajes
regulares L1 y L2? Un m etodo consistira en construir el AFD A1 que reconociese L1, y el
AFD A2, que reconociese L2; a partir de ellos se puede construir el AFD A

1
que reconoce
el complementario de L1 y, posteriormente, el AFD A

1
que reconoce el complemento de
L1. Con estos, se puede construir el AFD A

U
para reconocer la uni on de L(A

1
) y L(A

2
).
Para nalizar, se construye el AFD que reconoce el complementario de L(A

U
). Pero este
m etodo resulta muy largo.
Este AFD se puede calcular de forma m as sencilla aplicando el siguiente m etodo. Sea
A1 = Q1, , q0, f1, F1 un Aut omata Finito Determinista tal que L(A1) = L1, y sea
A2 = Q12, , p0, f2, F2 otro Aut omata Finito Determinista tal que L(A2) = L2.
Se construye el siguiente AFDA

= Q1Q2, , [q0, p0], f, F1F2 tal que la funci on


de transici on f se dene de la forma siguiente:
f([q, p], a) = [f1(q, a), f2(p, a)].
De esta forma el lenguaje reconocido por el AFD A

es el siguiente,
L(A

) = {x

| f([q0, p0], x) F1 F2} =


{x

| f1(q0, x) F1 f2(p0, x) F2} = L1 L2.


Ejemplo de aplicaci on del teorema:
Sea L = {x (0 + 1)

| S(0, x) = S(1, x)}. Es L un lenguaje regular?


El lenguaje L est a formado por cadenas que tienen el mismo n umero de 0s que
de 1s dispuestos en cualquier posici on.
Si L fuese un lenguaje regular entonces al intersectarlo con un lenguaje re-
gular debera dar como resultado un lenguaje regular. El lenguaje 0

es un
lenguaje regular, puesto que es una expresi on regular. Por lo tanto si L fuese
regular tambi en lo debera ser el lenguaje L 0

, pero este lenguaje es el


lenguaje 0
n
1
n
que ya se ha visto que no es un lenguaje regular.
Por lo tanto, L tampoco puede ser regular.
50 Captulo 3. Propiedades de los Lenguajes Regulares
Teorema 3.6 Los lenguajes regulares son cerrados bajo la operaci on de inversi on.
Demostraci on:
Sea A = , Q, f, q0, F un aut omata nito arbitrario y sea el aut omata nito A

=
, Q

, f

, q

0
, F

, denido como Q

= Q {q

0
} y F

= {q0}, tal que q

0
Q, es decir, q

0
es un estado nuevo.
La funci on de transici on f

se dene en dos pasos:


1. f

(q

0
, ) = F,
2. q f(p, a) p f

(q, a), a ( {}).


Con esta construcci on se garantiza que L(A

) = [L(A)]
1
.
Adicionalmente, hay que comentar que el m etodo de construcci on de A

se puede sim-
plicar si en el conjunto de estados nales F s olo hay un estado, es decir, F = {qf }.
Entonces, la construcci on del aut omata nito A

se puede realizar de esta otra forma:


Q = Q

0
= qf
F

= {q0}
q f(p, a) p f

(q, a), a ( {})


c.q.d.
Ejemplo:
Sea L = {x 0
m
1
n
| m n}. Es L un lenguaje regular?.
Sup ongase que L es regular; entonces, tambi en lo debe de ser L
1
= {1
n
0
m
|
m n}.
Se dene el homomorsmo g : {0, 1} {0, 1}

tal que g(0) = 1 y g(1) = 0.


Como la operaci on de homomorsmo es una operaci on de clausura para los
lenguajes regulares, entonces el lenguaje g(L
1
) tambi en debe ser un lenguaje
regular . Y, por lo tanto, el lenguaje L g(L
1
) debe ser regular, pero este
lenguaje es
L g(L
1
) = {0
m
1
n
| m n} {0
n
1
m
| m n} = {0
n
1
n
| n 0}.
que no es un lenguaje regular. Se deduce entonces que la suposici on inicial, L
es un lenguaje regular, no puede ser cierta.
3.4. Algoritmos de Decisi on para Lenguajes Regulares. 51
3.4. Algoritmos de Decisi on para Lenguajes Regulares.
Un gran n umero de cuestiones sobre lenguajes regulares se pueden resolver mediante
el uso de algoritmos de decisi on como, por ejemplo, determinar si un lenguaje regular es
vaco, nito o innito, o bien determinar si una determinada cadena puede ser generada por
una determinada gram atica regular.
Como se ver a en temas siguientes, estas cuestiones no siempre ser an resolubles para
lenguajes de otros tipos.
Teorema 3.7 El conjunto de cadenas aceptadas por un aut omata nito
A = , Q, q0, f, F
tal que | Q |= n es:
1. No vaco x L(A)/ | x |< n.
2. Innito x L(A)/n | x |< 2n.
Demostraci on:
1. No vaco x L(A)/ | x |< n.
: Obviamente, si existe una cadena que pertenece a L(A), entonces L(A) no es el
conjunto vaco.
: Si L(A) es no vaco es porque existe al menos una cadena que pertenece a L(A).
Sea x esa cadena. Si | x |< n entonces ya est a demostrado el teorema.
Si | x | n entonces, por el lema de bombeo, resulta que x = uvw, cum-
pli endose tambi en que i 0, uv
i
w L(A). En particular, si se selecciona
i = 0, se obtiene la cadena uv
0
w = 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 me-
nor 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 armar si el lenguaje que re-
conoce un AF es o no es vaco, consistira en determinar si hay alguna cadena de
longitud menor que n, siendo | Q |= n, que pertenezca al lenguaje (n otese que como
n es un valor jo, hay un n umero nito de posibles cadenas que pudieran pertenecer
al lenguaje; por lo tanto, se asegura el n del proceso).
52 Captulo 3. Propiedades de los Lenguajes Regulares
2. Innito x L(A)/n | x |< 2n.
: Como | x | n, entonces, por el lema de bombeo, se cumple que i
0, uv
i
w L(A). Por lo tanto, se puede armar que hay un n umero innito
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 armar si el lenguaje que re-
conoce un AF es o no es innito, consistira en determinar si hay alguna cadena de
longitud menor que 2n y menor o igual a n, siendo | Q |= n, que pertenezca al
lenguaje.
c.q.d.
Teorema 3.8 Existe un algoritmo para determinar si dos aut omatas nitos determi-
nistas reconocen el mismo lenguaje.
Demostraci on:
Sea A1 un AFD | L(A1) = L1 y sea A2 otro AFD | L(A2) = L2. Se construye un AFD
A

que reconozca el lenguaje,


L(A

) = (L1 L2) (L1 L2).


Entonces L1 = L2 L(A

) = , que, seg un el teorema 3.7, es una cuesti on decidible.


c.q.d.
3.5. Problemas Propuestos.
1. Cu ales de los siguientes lenguajes son regulares?. Demostrar la respuesta.
a) {0
2n
| n 1}.
b) {0
m
1
n
0
m+n
| m 1 n 1}.
c) El conjunto de todas las cadenas que no tienen tres ceros consecutivos.
d) El conjunto de todas las cadenas con igual n umero de ceros que de unos.
e) {x | x (0 + 1)

x = x
1
}.
f ) {xwx
1
| x, w (0 + 1)
+
}.
3.5. Problemas Propuestos. 53
2. Calcular el AFD mnimo equivalente a la siguiente Gram atica Regular:
S A | 0C | 1 |
A 1A | 0D1 | 0D2 | 0D3 | 1
D1 0B
D2 1C
D3 0
B 1S | 0B | 0
C 1A | 0C | 1
3. Calcular el AFD mnimo equivalente al siguiente AFD:
4. Calcular el AFD mnimo equivalente a la siguiente Gram atica Regular:
S A | 0C | 1 |
A 1A | 0D1 | 0D2 | 0D3 | 1
D1 0B
D2 1C
D3 0
B 1S | 0B | 0
C 1A | 0C | 1
5. Calcular el AFD mnimo equivalente al siguiente AFD:
6. Calcular el mnimo AFD que reconozca
L = (ab

+b

a)ab .
54 Captulo 3. Propiedades de los Lenguajes Regulares
7. Calcular el AFD mnimo asociado al AFN denido por la siguiente funci on de tran-
sici on:
0 1
q0 {q1, q2} {q3}
q1 {q1, q4}
q2 {q3}
q3 {q1, q2, q4}
q4 {q3} {q4}
donde F = {q4}.
8. Sea A el AFD de la gura:
a) Calcular el AFD mnimo, A, equivalente.
b) Calcular la expresi on regular que denota al conjunto de cadenas reconocidas por
dicho aut omata.
c) Calcular una Gram atica Regular Lineal a la Izquierda que genere las cadenas
reconocidas por el AFD mnimo A.
d) Escribir un algoritmo que reconozca las mismas cadenas que A.
9. Calcular el AFD mnimo equivalente al de la siguiente gura.
10. Calcular el AFD mnimo equivalente al de la siguiente gura.
3.5. Problemas Propuestos. 55
11. Resolver el siguiente sistema de ecuaciones:
X1 = aX2 +bX3
X2 = aX2 +bX4 +
X3 = aX2 +bX4 +
X4 = bX4 +
12. Dado el AF de la gura,
a) Calcular un AFD equivalente.
b) Calcular el AFD mnimo equivalente.
c) Calcular la expresi on regular asociada.
13. Calcular el AFD mnimo equivalente al siguiente AFN.
56 Captulo 3. Propiedades de los Lenguajes Regulares
14. Calcular la expresi on regular asociada al siguiente sistema de ecuaciones lineales en
expresiones regulares (nota: minimizar el AFD asociado)
X0 = 0X2 + 1X1 X1 = 0X4 + 1X5
X2 = 0X3 + 1X4 X3 = 0X2 + 1X7 +
X4 = 0X7 + 1X6 X5 = 0X6 + 1X1 +
X6 = 0X3 + 1X4 X7 = 0X4 + 1X5
15. Sea A el AFD de la gura:
a) Calcular el AFD de mnimo n umero de estados que reconoce L(A).
b) Calcular una e.r. que denote a L(A).
16. Sea el AF de la gura:
q
0
q
3 q
5
b
b
q
2
q
4
q
1
b
b a
c
c
a
Calcular
a) el AFN equivalente,
b) el AFD equivalente,
c) el mnimo AFD equivalente, y la expresi on regular que denota a L(AF).
17. Escribir una Gram atica Regular para el siguiente lenguaje
L = {w {a, b}

| w no contiene la subcadena aa}


3.5. Problemas Propuestos. 57
18. Dados L1 y L2, lenguajes regulares, demostrar si los siguientes lenguajes son o no
son lenguajes regulares:
a) L3 = {L
n
1
L
n
2
| n 0}
b) L4 = L
1
2
L
1
1
19. Calcular
a) el AFN equivalente,
b) el AFD equivalente,
c) el mnimo AFD equivalente, y
d) la expresi on regular que denota a L(AF).
del AF de la gura:
b
b
q
2
q
4
q
3 b
b
b
a
a
a
q
0
q
1
a
a
58 Captulo 3. Propiedades de los Lenguajes Regulares
Captulo 4
Gram aticas de Contexto Libre y
Aut omatas de Pila

Indice General
4.1. Gram aticas y Lenguajes de Contexto Libre. . . . . . . . . . . . . . . 59
4.2. Simplicaci on de GCL. . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3. Aut omatas de Pila. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.1. Aut omatas de Pila No Deterministas. . . . . . . . . . . . . . . 65
4.3.2. Aut omatas de Pila Deterministas. . . . . . . . . . . . . . . . . 68
4.3.3. Relaci on entre AP por Pila Vaca y AP por Estado Final. . . . . 70
4.3.4. Relaci on entre los Aut omatas de Pila y los LCL. . . . . . . . . 71
4.4. Problemas Propuestos. . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1. Gram aticas y Lenguajes de Contexto Libre.
Tal y como se expuso en el tema anterior existen ciertos lenguajes muy usuales que no
pueden ser generados por medio de gram aticas regulares. Algunos de estos lenguajes s pue-
den ser generados por otro tipo de gram aticas, las denominadas gram aticas de contexto libre
(tambi en denominadas gram aticas incontextuales, o independientes del contexto). Uno de
los ejemplos m as tpicos consiste en la gram atica de contexto libre que genera el lenguaje
formado por aquellas cadenas que tengan igual n umero de par entesis abiertos que cerrados.
59
60 Captulo 4. Gram aticas de Contexto Libre y Aut omatas de Pila
Denici on 4.1 Una Gram atica de Contexto Libre (GCL) es una cu adrupla G =
A, T , P, S donde
A es un conjunto nito y no vaco de smbolos denominados auxiliares,
T es un conjunto nito de smbolos denominados terminales, A T = ,
S es el smbolo inicial de la Gram atica, S A,
P es el conjunto de producciones, donde cada producci on es de la forma A
con A A y (T A)

.
Un lenguaje es de tipo 2, tambi en denominado lenguaje de contexto libre, si la gram atica
m as restrictiva que puede generarlo, seg un la jerarqua de Chomsky, es de tipo 2.
Ejemplos de GCL:
El lenguaje L1 = {0
n
1
n
| n 0} puede ser generado por medio de la
siguiente GCL
S | 0S1
Efectivamente, para comprobar que esta gram atica genera el lenguaje L1
se realiza un an alisis parecido al proceso de demostraci on por inducci on:
Paso base la cadena de menor longitud que pertenece al lenguaje L1 es
;
Hip otesis de inducci on sup ongase que desde S se puede generar cual-
quier cadena de longitud k que pertenezca a L1;
Paso de inducci on la siguiente cadena que pertenece al lenguaje L1 de
mayor longitud a la de S es la cadena 0S1.
El lenguaje L2 = {0
n
1
m
| n m} puede ser generado por medio de la
siguiente GCL
S | 0S | 0S1
El lenguaje L3 = {w (0 + 1)

| w = w
1
} puede ser generado por
medio de la siguiente GCL
S | 0S0 | 1S1 | 0 | 1
4.2. Simplicaci on de GCL.
Aplicando las producciones de la gram atica desde el smbolo inicial, se obtienen las
cadenas del lenguaje. Una tarea que resulta de gran inter es y que, por lo tanto, ser a una de las
primeras tareas que hay que realizar con una GCL es eliminar todas aquellas producciones
que no aporten ning un tipo de informaci on v alida en la generaci on de alguna de las cadenas
4.2. Simplicaci on de GCL. 61
del lenguaje. Es decir, hay que simplicar la GCL sin alterar el conjunto de cadenas que es
capaz de generar.
Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G,
que cumpla las siguientes condiciones:
1. Cada smbolo (terminal o auxiliar) de G se emplea en la derivaci on de alguna cadena
de L.
2. En el conjunto de producciones de G no existen producciones unitarias, es decir,
producciones de la forma A B donde A, B A.
3. Si L entonces en el conjunto de producciones de G no existen producciones
vacas, es decir, producciones de la forma A .
El objetivo de estas condiciones es determinar una GCL en la cual, en cada paso de
derivaci on de una cadena, siempre se introduce informaci on relevante.
Dada una GCL, G, se puede construir una GCL, G

, tal que L(G) = L(G

) y en G
no hay smbolos in utiles, es decir, que cumple la primera de las condiciones establecidas
previamente.
Para construir esta GCL G

se aplican dos lemas. El primero de ellos determina el con-


junto de smbolos a partir de los cuales se puede obtener una cadena del lenguaje; el segundo
lema determina el conjunto de smbolos que pueden aparecer en una forma sentencial de la
gram atica, es decir, los smbolos que pueden ser alcanzados desde el smbolo inicial de la
gram atica.
Lema 4.1 (de la derivabilidad) Dada una GCL, G = A, T , P, S, L(G) = ,
puede construirse una GCL equivalente G

A
, T , P

, S en la que se cumple
que A

A
w

T
tal que A

w.
Para construir la GCL G

se calcula el conjunto de smbolos derivables por medio de la


siguiente f ormula:
Paso Base: A A, w

T
tal que A w P, entonces se sabe que A es
derivable.
Paso Recursivo: Si (A ) P y si todos los smbolos auxiliares de son derivables,
entonces el smbolo A tambi en es derivable.
Es decir, se inicia el conjunto de smbolos derivables de acuerdo al paso base y, pos-
teriormente, se a naden elementos de acuerdo al paso recursivo hasta que no se detecten
nuevos smbolos derivables en el conjunto de derivables,

A
.
62 Captulo 4. Gram aticas de Contexto Libre y Aut omatas de Pila
Una vez obtenido

A
se dene P como el siguiente conjunto
P

= {(A ) P | A

A
(T

A
)

}
Lema 4.2 (de la alcanzabilidad) Dada una GCL, G = A, T , P, S tal que
L(G) = , puede construirse una GCL equivalente G

A
,

T
, P

, S tal que
A (

T
) , (

T
)

| S

A.
Para construir la GCL G

se calcula el conjunto de smbolos alcanzables por medio del


proceso iterativo:

A
= {S},

T
= ,
(A ) P: si A

A
, todos los smbolos auxiliares de se a naden a

A
y
todos sus smbolos terminales se a naden a

T
.
Se dene P

como el siguiente conjunto


P

= {(A ) P | A

A
(

A
)

}
Teorema 4.1 Todo LCL L, L = , puede ser generado por una GCL sin smbolos
in utiles.
La aplicaci on de los lemas a cada GCL debe realizarse seg un el orden indicado, puesto
que en caso contrario se podra obtener una GCL con smbolos in utiles.
Ejemplo:
Sea G la GCL denida por medio de las siguientes producciones:
{S aABC | a; A a; B b; E b}.
Si se aplica primero el lema 4.1 se obtiene la GCL
{S a; A a; B b; E b},
y al aplicar a continuaci on el lema 4.2 se obtiene la GCL
{S a}.
Si a G se le aplicase primero el lema 4.2 se obtendra la GCL siguiente
{S aABC | a; A a; B b},
y al aplicar posteriormente el lema 4.1 la GCL resultante sera la siguiente
{S a; A a; B b}
que contiene los smbolos in utiles {A, B}.
4.2. Simplicaci on de GCL. 63
El siguiente paso para simplicar una GCL consiste en eliminar los smbolos anulables.
Si A P, entonces la aparici on del smbolo A en alguna forma sentencial inter-
media del proceso de generaci on de una cadena, x, del lenguaje supone que, m as pronto o
m as tarde, el auxiliar A ser a sustituido por , y que, por lo tanto, dicho smbolo no habr a re-
portado ninguna utilidad en el proceso de generaci on de la cadena x.
Teorema 4.2 Para toda GCL G | L(G) = L, existe una GCL G

tal que L(G

) = L(G) -
{} y G

no contiene smbolos in utiles ni anulables.


Sea G = A, T , P, S una GCL. El primer paso consiste en calcular los smbolos
anulables, es decir, el conjunto A = {X A | X

}. Este conjunto se puede calcular
por medio del siguiente proceso iterativo:
A1 = {X A | X ) P},
Ai+1 = Ai {X A | A
+
i
: (X ) P}, i 1.
El proceso naliza cuando para alg un valor de k se cumple que Ak+1 = Ak.
Sea G2 = A, T , P2, S la GCL tal que el conjunto de producciones P2 se construye
a partir de P y del conjunto A de la siguiente forma:
(X ) P2 = (A T )
+
: (X ) P se puede obtener de
eliminando ninguna, una o m as apariciones de ninguno, uno o m as smbolos del
conjunto de smbolos anulables A.
Una vez obtenida G2 se le aplica el teorema 4.1 para eliminar los smbolos in utiles
1
,
obteni endose la GCL buscada.
Ejemplo:
Sea G la GCL dada por el siguiente conjunto de producciones:
S ABC | Da
A aAb |
B bBc |
C cCa | ca
D AB | a
El conjunto de smbolos anulables, A, se calcula de acuerdo al m etodo indica-
do:
A1 = {A, B}, A2 = {A, B, D}, A3 = A2 = A
1
Si bien en la pr actica suele aplicarse este paso primero, se debe tener en cuenta que tras eliminar las
transiciones es posible que vuelvan a aparecer smbolos in utiles.
64 Captulo 4. Gram aticas de Contexto Libre y Aut omatas de Pila
El conjunto de producciones P2 ser a el siguiente:
S ABC | AC | BC | C | Da | a
A aAb | ab
B bBc | bc
C cCa | ca
D AB | A | B | a
Corolario 4.1 Dada una GCL G puede construirse una GCL G

equivalente a G tal
que no tenga producciones excepto cuando L(G) en cuyo caso S

es la
unica producci on en la que aparece y adem as S

no aparece en el consecuente de
ninguna otra regla de producci on.
Efectivamente, si G = A, T , P, S es una GCL, tal que L(G), entonces se cons-
truye la gram atica G2 = A, T , P2, S siguiendo el m etodo expuesto en la demostraci on
del teorema 4.2.
La relaci on entre G y G2 es L(G2) = L(G) {}. Para construir la gram atica G

del
corolario se dene G

como

A
, T , P

, S

tal que

A
= A {S

}, S

A, y P

=
P2 {S

| S}.
El ultimo paso para simplicar una GCL consiste en eliminar las producciones unita-
rias, es decir aquellas producciones de la forma A B, ya que cuando aparecen en una
derivaci on lo unico que introducen es un cambio de nombre del auxiliar.
Teorema 4.3 Todo LCL L, tal que L, se puede generar por una GCL G que no
contiene producciones unitarias ni smbolos in utiles ni anulables.
Sea G = A, T , P, S una GCL tal que L(G) = L y en G no existen producciones
. El teorema 4.2 asegura que existe. El nuevo conjunto de producciones se forma de la
manera siguiente:
Si (A B) P y A, B A, entonces esta producci on se elimina del nuevo conjunto
de producciones y se introducen las siguientes nuevas producciones: (A ) | es la
primera forma sentencial que se obtiene a partir de B, al aplicar producciones de P, y que
cumple que | | 2 T .
Una vez obtenida G1 se eliminan los smbolos in utiles
2
obteni endose la GCL buscada.
2
Recu erdese lo comentado en el pie de p agina 1.
4.3. Aut omatas de Pila. 65
4.3. Aut omatas de Pila.
La tarea de reconocimiento de los LCL se realiza por medio de un tipo de aut omata
denominado aut omata de pila, AP.
4.3.1. Aut omatas de Pila No Deterministas.
Denici on 4.2 Un Aut omata de Pila es una s eptupla
A = , Q, , f, q0, Z0, F
donde
es el alfabeto de entrada,
Q es el conjunto de estados, que es nito y no vaco,
es el alfabeto de la pila,
q0 es el estado inicial,
Z0 es un smbolo especial, denominado fondo de pila, Z0 ,
F es el conjunto de estados nales, F Q,
f es la funci on de transici on, f : Q( {}) 2
Q

.
Una descripci on informal de tal aut omata es la representada en la siguiente gura:
Cinta de entrada
Pila
Cima
Fondo
Control
Finito
Cabezal
de Lectura
Cabezal
de L/E
El aut omata de pila consta de una cinta de entrada dividida en celdas, cada una de las
cuales puede almacenar un s olo smbolo. El acceso a cada celda se realiza por medio del
cabezal lector, cuyo movimiento siempre es de izquierda a derecha. El aut omata posee un
cabezal adicional de lectura/escritura que s olo puede leer o escribir sobre la cima de una
pila. Por eso en este aut omata se dispone de dos alfabetos de smbolos, el alfabeto de la
cinta de entrada, , y el de la pila, .
66 Captulo 4. Gram aticas de Contexto Libre y Aut omatas de Pila
El funcionamiento de este aut omata es el siguiente: dado un smbolo de la cinta de
entrada o bien la cadena vaca
3
(que equivale a no leer el smbolo que se encuentra bajo
el cabezal de lectura), el estado actual del aut omata (especicado en el control nito) y el
smbolo que est e en la cima de la pila, entonces este aut omata
1. cambia de estado,
2. elimina el smbolo de la cima de la pila y apila ninguno, uno o varios smbolos en la
misma, y
3. mueve el cabezal de lectura sobre la cinta de entrada una celda a la derecha, siempre
y cuando se hubiese ledo un smbolo de la misma.
Es decir, dada la transici on f(q, a, X) = {(p1, 1), (p2, 2), . . . , (pm, m)} el aut omata
de pila, en el supuesto que se seleccione para ejecuci on la acci on f(q, a, X) = (pi, i), con
i = RY Z, realiza los siguientes cambios:
X
Estado
actual: q
a
Z
Y
R
a
Estado
actual: p
i
Figura 4.1: Efecto de realizar una transici on gen erica en un AP.
Como se observa en la gura 4.1, se transita desde el estado q al estado pi (que pasa
a ser el estado actual) el cabezal de lectura se desplaza una celda a la derecha y en la pila
desaparece el smbolo X de la cima y en su lugar se introducen los smbolos Z, Y y R, en
este orden.
El comportamiento es similar en el caso de ejecutar una transici on del tipo f(q, , X) =
{..., (pi, i), ...}, con la salvedad de que, en este caso, el cabezal de lectura de la cinta no se
hubiera desplazado hacia la derecha y permanecera sobre el smbolo a.
Para poder describir el comportamiento del AP sin necesidad de tener que especicar
de forma gr aca su evoluci on, se suelen utilizar las descripciones instant aneas; en el caso
de un AP, una descripci on instant anea es un elemento del conjunto Q

. As,
por ejemplo, la descripci on instant anea (q, w, ) ( Q

) representa la situaci on
ilustrada en la gura 4.2, en la que la cadena de entrada es x, de la cual falta todava por
analizar el sujo w. El cabezal de lectura est a sobre el primer smbolo de w, el estado actual
del aut omata es q y el contenido de la pila es .
3
M as adelante, se remarcar a esta cuesti on, pero n otese que esta posibilidad de no leer el smbolo bajo el
cabezal hace que el comportamiento de unl aut omata de pila sea no determinista por propia denici on.
4.3. Aut omatas de Pila. 67
Estado
actual: q
x
w
Figura 4.2: Representaci on gr aca de la DI (q, w, ).
Se dice que una descripci on instant anea I1 alcanza a otra descripci on instant anea I2 en
un s olo paso, y se denota como I1 I2, cuando se cumplen las siguientes condiciones:
I1 = (q, aw, X)
I2 = (p, w, )
(p, ) f(q, a, X) | a ( {}) X
Se dice que una descripci on instant anea I1 alcanza a otra descripci on instant anea I2, y
se denota como I1

I2, si n descripciones instant aneas auxiliares DI1, DI2, . . . , DIn tal


que a trav es de ellas se pueda alcanzar I2 desde I1, es decir,
I1 = DI1 DI2 . . . DIn = I2.
Con estas deniciones ya se est a en condiciones de poder establecer cu al es el lenguaje
aceptado por un AP, en el que hay que diferenciar dos casos.
Denici on 4.3 Se dene el lenguaje aceptado por estado nal de un AP A al con-
junto
L(A) = {x

| (q0, x, Z0)

(p, , ) tal que p F}.
Se dene el lenguaje aceptado por pila vaca de un AP A al conjunto
N(A) = {x

| (q0, x, Z0)

(p, , )}.
Se observa que en la denici on de N(A), no importa el estado al que se llegue al analizar
la cadena x. Es suciente con que, al nalizar su an alisis, la pila quede vaca.
Ejemplo:
Sea A el siguiente AP:
A = {a, b}, {q0}, {S, A, B}, f, q0, S,
68 Captulo 4. Gram aticas de Contexto Libre y Aut omatas de Pila
donde la funci on de transici on f se dene de la forma siguiente:
f(q0, a, S) = {(q0, SB), (q0, ASB)}
f(q0, , S) = {(q0, )}
f(q0, b, B) = {(q0, )}
f(q0, a, A) = {(q0, )}
Como se observa, en este AP el conjunto de estados nales es . Por lo tanto,
este AP reconoce el lenguaje por el criterio de estado nal.
El lenguaje reconocido por este aut omata por el criterio de pila vaca es
N(A) = {a
m
b
n
| m n}.
Para comprobar que este AP reconoce la cadena aaabb se van a especicar
todas las posibles transiciones que se pueden realizar con este aut omata; el
resultado se muestra en la gura 4.3.1. Como al menos una secuencia de tran-
siciones consigue vaciar la pila y consumir toda la cadena de entrada, entonces
la cadena aaabb ser a aceptada.
(q
0
, aaabb, S)
(q
0
, aaabb, )
Rechaza
(q
0
, aabb, ASB)
(q
0
, aabb, SB)
(q
0
, abb, SBB) (q
0
, abb, ASBB)
(q
0
, bb, SBBB) (q
0
, bb, ASBBB)
Rechaza
(q
0
, abb, BB)
Rechaza
(q
0
, bb, SBB)
(q
0
, bb, BBB) (q
0
, bb, BB)
(q
0
, b, B) (q
0
, b, BB)
(q
0
, )
Acepta
(q
0
, B)
Rechaza
(q
0
, abb, SB) (q
0
, aabb, B)
Rechaza
(q
0
, bb, SBB) (q
0
, bb, ASBB)
Rechaza
(q
0
, abb, B)
Rechaza
(q
0
, bb, BB)
(q
0
, b, B)
(q
0
, )
Acepta
Figura 4.3: An alisis de todas las posibles transiciones que puede realizar el aut omata A
sobre la cadena aaabb.
4.3.2. Aut omatas de Pila Deterministas.
El ultimo ejemplo de la subsecci on anterior, pone de maniesto lo que la denici on
de un aut omata de pila implica un comportamiento no determinista. Es posible dise nar
Aut omatas de Pila con comportamiento determinista, si bien, tal y como se ver a, no se
puede establecer una equivalencia entre un APND y un APD.
De forma general, un aut omata de pila determinista, APD, es un AP en el que es aplica-
ble una, y s olo una, transici on en cada instante. Sin embargo, esta posibilidad no basta para
excluir el comportamiento no determinista, ya que puede darse la situaci on de que, desde
un mismo estado y con un mismo smbolo en la cima de la pila, se puedan realizar acciones
diferentes si existen transiciones con lectura de smbolo o sin lectura de smbolo, es decir,

También podría gustarte