Documente Academic
Documente Profesional
Documente Cultură
D E U B R 0 ^ 7 ;3 - t±
) ) ) ) ) ) . ie » L _ L Z
No. DEETIG. M ^ 4 -T ^
Teoría de autómatas )
lenguajes formales
Dean Kelley
Departamento de Matemáticas y Ciencias de la Computación
Gustavus Adolphus College
T raducción:
Ma Luisa Diez Platas
Facultad de Informática
Universidad Pontificia de Salamanca en Madrid
Revisión técnica:
Luis Joyanes Aguilar
Facultad de Informática
Universidad Pontificia de Salamanca en Madrid
PRENTICE HALL
M adrid • México • Santafé de Bogotá • Buenos Aires • Caracas • Lima • Moi
San Juan • San José • Santiago • Sao Paulo • W hite Plains
www.FreeLibros.com
CONSULTORES EDITORIALES:
SEBASTIÁN DORMIDO BENCOMO
Departamento de Informática y Automática
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA
www.FreeLibros.com
DEAN KELLEY
Teoría de autómatas y lenguajes formales
ISBN 0-13-518705-2
Depósito Legal: M-21607-2001
Última reimpresión, 2001
Traducido de:
AUTOMATA AND FORMAL LANGUAGES: AN 1NTRODUCTION
PRENTICE HALL
© 1995
ISBN: 0-13-497777-7
www.FreeLibros.com
A m is P adres
. y a l tío F u d d
www.FreeLibros.com
Contenido
1. Alfabetos y lenguajes.................................................................... 29
1.1 Alfabetos, palabras y lenguajes.......................................................... 29
1.2 Operaciones con cadenas..................................................................... 32
1.3 Operaciones con lenguajes.................................................................. 34
Problemas ....................................................................................................... 41
2. Lenguajes regulares...................................................................... 45
2.1 Lenguajes sobre alfabetos.................................................................... 45
2.2 Lenguajes regulares y expresiones regulares.................................... 48
2.3 Autómata
/ finito determinista.............................................................. 53
www.FreeLibros.com
VIII TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
3. L e n g u a je s in d e p e n d ie n te s d el c o n te x to ........................................ 105
3.1 Gramáticas regulares.......................................................................... 105
3.2 Gramáticas regulares y lenguajes regulares.................................... 110
3.3 Gramáticas independientes del contexto.......................................... 114
3.4 Árboles de derivación o de análisis y am bigüedad........................ 117
3.5 Simplificación de gramáticas independientes del contexto.......... 122
3.6 Propiedades de los lenguajes independientes del contexto........... 136
3.7 Autómata de p ila.................................................................................. 144
3.8 Autómatas de pila y lenguajes independientes del contexto......... 151
3.9 Forma normal de G reibach................................................................. 162
Problemas ....................................................................................................... 168
4. M á q u in a s d e T u r in g ................................................................................. 171
4.1 Definiciones básicas........................................................................... 171
4.2 Máquinas de Turing como aceptadoras de lenguajes..................... 178
4.3 Construcción de máquinas de T uring............................................... 184
4.4 Modificaciones de las máquinas de Turing...................................... 194
4.5 Máquinas de Turing universales........................................................ 205
Problemas ........................................................................."....:...................... 207
www.FreeLibros.com
CONTENIDO IX
6. Resolubilidad.................................................................................. 241
6.1 El problema de parada........................................................................ 241
6.2 El problema de correspondencia de Post.......................................... 245
6.3 Irresolubilidad y lenguajes independientes del contexto............... 258
Problemas ....................................................................................................... 263
www.FreeLibros.com
Prólogo
www.FreeLibros.com
XII TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
cios desde bastante fáciles a muy difíciles. La mayoría de los ejercicios más fá
ciles pretenden reforzar las ideas vistas en la sección, mientras que los más difí
ciles ilustran y amplían dichas ideas.
Los Capítulos del 1 al 7 terminan con unas colecciones de problemas. Di
chos problemas pretenden animar al lector a investigar sobre los temas tratados.
Generalmente (aunque no siempre), el material tratado en las colecciones de
problemas representan lo que yo considero necesario para estar interesado en re
alizar incursiones a través de la línea de desarrollo principal del texto.
El texto consta de ocho capítulos. A continuación se realiza una breve des
cripción de cada uno de ellos.
El Capítulo 0 cubre los preliminares matemáticos y lógicos. Consiste en una
rápida revisión de la lógica y la teoría de conjuntos, siendo un capítulo bastante
completo. Además, en este capítulo se repasan todos los conocimientos matemá
ticos necesarios para entender el resto del texto.
En el Capítulo 1 se presentan las definiciones básicas y la notación usada
para alfabetos, cadenas y lenguajes. Se definen y estudian las operaciones ele
mentales sobre cadenas y lenguajes.
El Capítulo 2 trata de los lenguajes y las expresiones regulares. Se definen
los autómatas finitos y se establece la relación de los mismos con los lenguajes
regulares. Se introduce el no determinismo. Además, se estudian las propiedades
fundamentales de los lenguajes regulares (lema del bombeo, algoritmos de deci
sión, etc.).
El Capítulo 3 introduce los conceptos sobre gramáticas desarrollando, ade
más, las propiedades de las gramáticas independientes del contexto y los autó
matas de pila. Se presentan varias simplificaciones y formas normales de gramá
ticas.
El Capítulo 4 es el primero de los cuatro capítulos cuyo tema central son las
máquinas de Turing. Este capítulo contiene definiciones básicas, las distintas
versiones de máquinas de Turing e introduce la idea de funciones Turing-com-
putables y lenguajes reconocidos por las máquinas de Turing.
El Capítulo 5 estudia las relaciones entre las máquinas de Turing y los len
guajes formales. Además, establece la jerarquía de Chomsky.
En el Capítulo 6 se habla de la resolubilidad. Comienza con el problema de
parada de las máquinas de Turing, después trata el problema de la irresolubili-
dad del problema de la correspondencia de Post y presenta algunos problemas
irresolubles para los lenguajes y gramáticas independientes del contexto. El ca
pítulo termina con el estudio de las funciones computables totales.
El Capítulo 7 es una introducción a la complejidad computacional del reco
nocimiento del lenguaje. Se estudia en función de los recursos de espacio y
tiempo (de la máquinas de Turing).
www.FreeLibros.com
PRÓLOGO XIII
Dean Kelley
www.FreeLibros.com
Teoría de autómatas
lenguajes formales
www.FreeLibros.com
o
Preliminares
matemáticos
www.FreeLibros.com
2 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
depende del valor de verdad de P, podemos usar una tabla, llamada tabla de ver
dad, para indicar la dependencia:
p -i P
V F
F V
P Q P a Q
V V V
V F F
F V F
F F F
1. 3 < V ! 7 y 25 = 52.
2. 3 < V77 y 26 = 52.
3. 3 > VÍ7 y 25 = 52.
4. 3 > VT7y 26 = 52.
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 3
p Q P-^Q
V V V
V F F
F V V
F F V
La condicional se lee “si P entonces Q”. Para entender los valores de verdad
de P —>Q, considérese la proposición “Si el sol brilla, entonces Carlos juega al
béisbol”. Para determinar cuando es verdadera esta proposición, nos pregunta
mos si la persona que la ha hecho está diciendo la verdad. Tenemos cuatro casos
que corresponden a las cuatro líneas de la tabla de verdad precedente.
En el primer caso (el sol brilla y Carlos juega al béisbol), se ha dicho la ver
dad. En el segundo caso (el sol brilla y Carlos no juega al béisbol), no se ha di
cho la verdad. En los dos últimos casos (el sol no brilla y Carlos juega al béis
bol; el sol no brilla y Carlos no juega al béisbol), no deberíamos decir que la
persona que hizo la proposición es un mentiroso puesto que el sol no brilla y él,
o ella, sólo dijeron lo que ocurriría si el sol brillara.
En la condicional P —> Q, la proposición P se llama hipótesis, condición o
antecedente, mientras que Q se llama conclusión o consecuente.
La recíproca de la condicional P —>Q es la proposición Q —» P.
La contrapuesta de P —>Q es (—' Q) —> (—' P). Advierta que P —» Q y su
contraposición son equivalentes puesto que tienen los mismos valores de verdad
para todos los casos, como muestra la siguiente tabla de verdad:
p Q P ^Q ~ 'Q -I p
V V V F F V
V F F V F F
F V V F V V
F F V V V V
www.FreeLibros.com
4 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
- .( / » A f i) < - > ( - .P ) v ( - . Q)
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 5
www.FreeLibros.com
6 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
DEFINICIONES BÁSICAS
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 7
puede ser extendida a los conjuntos para los cuales no es posible listar todos sus
elementos, tales como N = {0, 1, 2, ...} o N + = {1,2, 3, . . . }. Un conjunto sólo
se caracteriza por sus elementos y no por el orden en el cual se listan. Por eso
{1, 2, 3} y {2, 1,3} denotan el mismo conjunto.
Los conjuntos A y B son iguales si contienen exactamente los mismos ele
mentos. Por tanto, si A = {1, 2, 3} y B = {2, 1, 3}, se puede escribir que A = B.
Fíjese que {a} y a no son lo mismo. Tenemos que a e A, pero a & {a}. También
el conjunto {{a, b ) } tiene un único elemento que es el conjunto {a, b). Por otro
lado, [ a , b } tiene dos elementos, a y b. Por consiguiente, {{a, b}} ¿ {a, b}.
Si A y B son conjuntos y todos los elementos de A son también elementos
de B, se escribe A c B y se dice que A es un subconjunto de B. Por ejemplo, si
A = {1, 2, 3} y B = {0, 1, 2, 3 ,4 , 5}, se tiene A c 8 . Por otro lado, B no es un
subconjunto de A, porque los elementos 0 ,4 y 5 de B no lo son de A.
Obsérvese que s i A Q B y B ^ A simultáneamente, entonces todos los ele
mentos de A están en B y todos los elementos de B están en A. Por lo tanto, si
A c B y B c A, tenemos que A = B.
Obsérvese que 0 e 2a y A e 2a
Supongamos que / es un conjunto. Si para todo a e l tenemos que Aa es un
conjunto, entonces {Aa | a e /} se llama fam ilia indexada de conjuntos. Por
www.FreeLibros.com
8 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
1. 0uA=A.
2. 0 n A = 0.
3. Si A c S , entonces A o B = A.
4. Si A c B, entonces A u B = B.
5. AnA=A=AuA.
6. (a) A u B =B kj A.
(b) A n B = B n A .
7. (a) A u ( f i u C ) = ( A u S ) u C .
(b) A n ( B n C ) = ( A n B ) n C .
8. (a) A n ( f i u C ) = ( A n B ) u ( A n C).
(b) A u ( B n C ) = ( A u B ) n ( A u C ) .
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 9
A u ( 5 u Q « x e A o x e ( B u C)
« x e A o ( x e B o x e C)
« ( j t e A o x e B) o x e C
O x g (AuB) o xe C
<=> x e ( A u 5) u C
x e A u ( # n C ) < = > x G A o x e (B n C )
<=> x g A o ( x e B y x e C )
<¿>(xe A o x e B) y ( x e A o x e Q
<=> x g (A u B) y x e ( A u Q
<=>x g ( A u B ) n ( A u Q
A - B = {x\ x e A y x g B }
Por lo tanto, A - B esta compuesto por todos los elementos de A que no es
tán también en B. Por ejemplo, si A = {0, 2, 4, 6, 8, 10} y B - {0, 1, 2, 3,4}, en
tonces A - B = {6, 8, 10}, mientras que B - A = {1, 3}.
Es conveniente pensar que todos los conjuntos aquí tratados se consideran
subconjuntos de un conjunto universal U. Los complementos pueden ser forma
dos con respecto a este conjunto universal. Si A es un conjunto, entonces U - A
es el conjunto de todos los elementos que no están en A. Conviene denotar tales
complementos mediante A; de forma que U - A = A . Obsérvese que 0 = U y
V=0.
www.FreeLibros.com
10 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
1. A - B =A n B .
2. ( A n B ) = A u B.
3. (Au B)=AnB.
4. Á = A.
xe A -B xe A y x £ B
<=>x e A y x e B
<=>xe A n B
x e A u B <=> x i. A u B
<=>x <£ A y x <£. B
<=>xeAyxeB
<=>x e A n B
Téngase en cuenta que los apartados (2) y (3) del Teorema 0.3.2 se conocen
como las leyes de De Morgan para conjuntos.
Dados dos conjuntos A y B, su producto cartesiano, A x B, es el conjunto de
todos los pares ordenados de los que el primer elemento proviene de A y el se
gundo de B. Así que,
A x B = {(a, b)\ a e A y b e B]
A x B = {(1, 5), (2, 5), (3, 5), (1, 6), (2, 6), (3, 6)}
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 11
Obsérvese que dos pares ordenados son iguales si y sólo si los elementos
correspondientes de los mismos son iguales. Por lo tanto (a, b) = (c, d) sólo
cuando a = c y b = d. Luego un par ordenado es distinto que un conjunto de dos
elementos.
www.FreeLibros.com
12 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
RELACIONES Y FUNCIONES
* = { { 0 , 2 , 4 } , { 1 , 3 , 5 } , { 6 , 8, 10},{7,9}}
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 13
no es una partición.
Veamos otro ejemplo interesante. Sea Q el conjunto de los números racio
nales. Para cada r e ü , sea
Por tanto £>3/8 contiene a (3, 8), (6, 16), (9, 24) y así sucesivamente. Obsér
vese que la colección F = {Qr\ r e Q} es una partición de N x Z +. Para verlo,
primero obsérvese que si Qr y Qs son elementos de F y si (x, y) e Q, n Qs>en
tonces s = x /y = r con lo que s = r y por tanto Qr = Qs. Puesto que 2 r c N x Z +
para todo r, tenemos que U r s ü & ' £ N x Z +. Por otro lado, si
(x, y) e N x Z +, entonces x / y e Q , y, por tanto, (x, y) e Qr, siendo r —x /y . Así
(jc, y) e s q Qr. De todo ello se concluye que e q Qr = N x Z +.
Vamos a ver un nuevo ejemplo de una partición de un conjunto que es la
colección {Zo, Z ¡, ..., Z m- 1 }, donde m es un entero positivo fijado y Z / se de
fine como
www.FreeLibros.com
14 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
tendremos lo siguiente:
Toda relación que tenga estas tres propiedades se dice que es una relación
de equivalencia.
Supongamos que R es una relación de equivalencia sobre el conjunto X.
Para cada x e X, se define el conjunto [x] = [y e X \ (x, y) e R }. El conjunto [a]
se llama clase de equivalencia de x.
Demostración. Para probar este teorema se necesita demostrar que las clases de equi
valencia son disjuntas entre sí y que'su unión es X. Primero veremos que son
disjuntas entre sí.
Supongamos que z e [x] n [y]. Entonces (x, z) e R y (z, y) e R. Dado que R
es transitiva, entonces (x, y) e R. Por lo tanto, x e [>'] e y e [x], y en consecuen
cia (x, y) e R e (y, x) e R. Ahora bien, si 16 [x], entonces (t, x) e R y, debido a
la transid vidad de R, (t, y) e R. Por lo tanto t e [y], con lo que se obtiene
[x] c [y]. A la inversa, si t e [y] entonces (t, y) e R, y (/, x) e R, de lo que se de
riva que t e [x] e [y] e [x]. De todo lo visto se sigue que si [x] n [y] * 0, enton
ces [x] = [y].
Ahora bien, puesto q u e / f es una relación de equivalencia sobre X, todo
x e X debe satisfacer (x,x) e R, con lo que x e [x]. Esto significa que todo ele
mento de X está contenido en una clase de equivalencia, con su mismo nom
bre. □
Por lo tanto existe una relación muy estrecha entre las relaciones de equiva
lencia y las particiones.
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 15
Para que / c A x 1' ea una fcr.dón, se requiere que Dom ( / ) =A. Esto es
más restrictivo que lo de eable p e; ios objetivos de este libro. Definiremos/ífn-
ción total como la e!;r de función ue hemos definido previamente. Definire
mos función parcial o una ó n / q u e satisface las condiciones de que
Dom ( / ) c A , y que m v. y) y ( x . . pertenecen a / , entonces y - Z- La única dife
rencia que aparece aLue es que ce ;a función parcial de A a i? el dominio de la
función no necesita ser el conjunto en su totalidad. Usaremos el término fun
ción, sin modificar, \ e.¡ referiré cualquier función parcialo total que cuali
ficaremos sólo cuarta a nece-
Sea una función / : A —> B. Si A e A, diremos que la imagen de X b a jo f es
Si F e 5, la imagen : • *a de Y fe s el conjunto
1. / (0) = 0.
2- /({ * } ) = { f (x)} para todo e s A.
3. SiX eFc itonce c /(F ).
www.FreeLibros.com
16 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Una función/ : A —> B se dice que es uno a uno o inyectiva si, para cuales
quiera (x, y) e / y (z, y) e / , entonces x - z . Esto quiere decir que si f ( x ) - f ( z )
entonces x = z.
Una fu n c ió n /se dice que es sobreyectiva si, para cualquier y e B, existe al
gún x e A para el c u a l/ (x) = y.
La fu n c ió n /: N -» N definida por f ( n ) = n es a la vez inyectiva y sobre
yectiva. La función g: N —» N , donde g (rí) = n + 1, es inyectiva pero no sobre
yectiva, ya que no existe ningún x e N, tal que x + 1 = 0. La función h: R —> R,
donde h (x) = x2, no es ni inyectiva, ni sobreyectiva. S i /e s inyectiva y sobreyec
tiva a la vez, se llama biyección o correspondencia uno a uno. Obsérvese que si
/ : A —> B es sobreyectiva e n to n c e s /-1 ({¿>}) ^ 0 para todo b e B . S ' i f e s una bi
yección, entonces, para todo b e B, f ~ ] ({£}) es un conjunto con un único ele
mento. Por tanto c u a n d o /e s una b iy ecció n ,/-1 \ B —>Ae s una función.
Las funciones y las relaciones se pueden asociar de una manera adecuada.
Sean las relaciones R ^ A x B y S c i B x C . Definimos la composición de R y 5
como
Por tanto si R - { { 0, 1), (0, 2), (1, 1)} y S - {(1, a), (2, fr)}, tendremos que
S ° R = {(0, «), (0, b), (1, a)}. Por otro lado, R ° 5 = 0, puesto que no hay símbo
los que aparezcan simultáneamente como primer componente de un elemento de
R y como segundo componente de un elemento de S. Por tanto, en general, R ° S
y S 0 R no son la misma.
La composición de funciones se realiza de la misma forma:
8 ° / W = 8 (/(* )) = 8 (x + 1) = (x + l) 2
y
f ° 8 (*) =f (8 (x)) = f ( x 2) = x2 + 1
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 17
R = {(•*,)') e A x B\ x<y]
www.FreeLibros.com
18 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
(a) Rt = {(0, 0), (1, 1), (1, 2), (2, 2), (3, 3), (4,4), (5, 5)}.
(b) /?2 = í , u {(2,1)}.
(c) /?3= i ? i - { ( l ,2)}.
(d) R, = R2 u {(2, 3), (1, 3), (3, 1), (3,2)}.
0.4.8. Sea { Z o , Z i , Z 2 , Z 3 , Z 4 } la partición de Z definida en la página13.¿Cuál esla
relación de equivalencia sobre Z que genera esta partición?
0.4.9. Sea [A\,A 2, ..., Am} una partición de A y [B\,Bz, ■■■,B„}unaparticióndeB.
Probar que el siguiente conjunto es una partición de A X B:
A= {0, 1,2,3}
y
* 5 = {-1, 0,l/2, l , 3/2,2 ,3 ,4 }
¿Cuáles de las siguientes relaciones son funciones totales, cuáles funciones par
ciales y cuáles no son funciones?
(a) / = {(0, 1), (1, 2), (2, 3), (3,4)}
(b) /= { (0 ,0 ), (1,1/2), (2,1), (3, 3/2)}
(c) / = {(0,0), (1,1), (1,-1), (2, 3)}
(d) /= { (0 , 0), (1,3), (2,2)}
(e) /'= {(0, 0)}
0.4.11. Sean / : A —> C y g: B —>D dos funciones tales que, f{x) = g (x) para todo
x e A n B. Probar q u e /u g es una función d e A u B e n C u D .
0.4.12. Sea/: A —» B una biyección. Probar q u e /-1 también es una biyección.
0.4.13. Demostrar que si / “' (f(X)) = X para todo X c A entonces/ es inyectiva. De
mostrar que si f ( f ~ [ (Y)) = Y para todo Y c B. entonces/es sobreyectiva.
0.4.14. Sea / : A —>A una función para la cual / ( / (x)) = x para todo x e A. Probar que /
es una relación simétrica sobre A.
0.4.15. Sean las funciones f :A —>B y g: C —>D y supongamos que A n C = 0 y
B n D = 0. Probar q u e /u g es sobreyectiva s i / y g lo son. Probar que / u g es
inyectiva si / y g lo son.
0.4.16. Sean/y g las funciones definidas como
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 19
g= {(x,y)\xe Z + e y e N e y = -2 \x \ j
IA = {(a ,á )\a e A]
0.5 INDUCCIÓN
1. O e A, ,
2. si n 6 A, entonces n + 1 e A,
entonces A - N .
www.FreeLibros.com
20 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
5 ((« + 1) + l) = 5 n + 10
= 5 (/? + 1) + 5
> (;? + 3) + 5
> (n + 3) + 1
= (n + l) + 3
Los pasos de una demostración en la que se usa el PIM son bastante fáciles
de recordar.
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 21
1 + 2 + ... + 2 (2 (1 + n) - 1) = (1 + n)2
1 + 2 + . . . + (2 (1 +n) - 1) + (2 (1 + ( « + 1 ) ) - 1) = (1 + n f + (2 (1 + (n + 1)) - 1)
= 1 + 2 (n + 1) + (1 + n)2
= (l+(«+l))2
www.FreeLibros.com
22 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
1 + 2 4-. .. + ( 2 ( 1 + ií ) ~~ 1) + (2 (1 + (n + 1)) — 1)
= (1 + «)* + ( 2 ( l + (n + 1 ) ) - 1 )
= 1 + 2 (n + 1) + (1 + n)2
= (\+(n+\))2
CARDINALIDAD
Para comparar los distintos tamaños de los conjuntos se usan funciones en
tre los mismos que son biyectivas, sobreyectivas o inyectivas. Dos conjuntos A y
fí son equivalentes si existe una biyección entre ellos. Se emplea la notación
A = B para denotarlo. Por tanto tenemos que { x, y, z} = { 1, 2, 3}, mientras que
{x, y, z} 2 {1,2}.
Ejemplo 0.6.1.
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 23
0, si ' \
1, si v t
si .v e A
/U j ; ( v), si v s B
Para cada número natural k > define {1. 2.......£}. Dichos conjun
tos se usan como “estándar de tan con e! ; se compararan otros conjun
tos.
Un conjunto A es finito si:
T eorem a 0.6.2. Si A y B son conjuntos c' ' ios finios itoncesA u B es también fi
nito y | A u i ? | = \A\ + \B\.
www.FreeLibros.com
24 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
|; 4 u s | = 0+ | B | = |fl|
Una propiedad muy utilizada para conjuntos finitos es el principio del palo
mar. En esencia dice que si hay más palomas que agujeros se debe poner más de
una paloma en el mismo agujero.
Caso 1: Supongamos que |/ “ ' (b) | > 2. En este caso habrá dos elementos
ai y ü 2 de A , de forma que a\ y ü 2 están en / “ ' (b) o, lo que es lo mismo,
(«2 ) = b. En este caso / no es inyectiva.
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 25
Hay muchos ejemplos en los que se aplica este principio. Si 11 zapatos son
elegidos al azar de una caja que contiene 10 pares de zapatos, al menos se obtie
ne un par completo. Si n ^ m , entonces N „ £ N w.
Hay dos tamaños para los conjuntos infinitos, “grande” y “muy grande”. Un
conjunto A es enumerable si A = N . En este caso, | A | = No (alef cero). Un con
junto es numerable si es finito o enumerable.
El conjunto Z es enumerable mediante la fu n ció n /: N —> Z definida por
n
si n es par
, s in es impar
2
Puesto que los conjuntos finitos son numerables, se tiene que todo subcon
junto de un conjunto numerable, es numerable.
Obsérvese cada conjunto infinito contiene un subconjunto enumerable. Para
probarlo, sea X infinito. Entonces X & 0, por lo cual se puede seleccionar un ele-
www.FreeLibros.com
26 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
ao-0.doodo\do2--.
ai = O.diodi \d\2-. ■
ük = 0.dkodk\dk2-■■dkk•
www.FreeLibros.com
PRELIMINARES MATEMÁTICOS 27
5, si akk* 5
lk-
2. si akk= 5
www.FreeLibros.com
www.FreeLibros.com
1
Alfabetos y
lenguajes
www.FreeLibros.com
30 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Segundo, en todos los casos vistos las secuencias de símbolos que constitu
yen los elementos en cuestión tienen longitud finita, aunque no existen limita
ciones en cuanto a la longitud de las mismas.
La noción de secuencia finita de símbolos es el elemento principal a ser tra
tado por este texto. Introduciremos la notación y los nombres a usar para dichas
secuencias.
Un conjunto no vacío y finito de símbolos se conoce como alfabeto. Por
ejemplo, el alfabeto inglés está formado por 26 símbolos. En otro contexto se
puede considerar como alfabeto a la colección de todas las palabras inglesas co
rrectas o la colección de todos los símbolos legales de Pascal (los identificadores
de Pascal, palabras claves y reservadas, caracteres especiales, y así sucesiva
mente). Si E es un alfabeto, o e X denota que ü es un símbolo de E. Por tanto, si
E = { 0 , 1,2, 3, 4, 5, 6, 7, 8,9}
www.FreeLibros.com
ALFABETOS Y LENGUAJES 31
que sea el alfabeto en cuestión. La cadena vacía tiene ciertas propiedades que
veremos más adelante,_ . . . !i /
Para cualquier alfabeto, Z* es infinito (ya que los alfabetos son no vacíos).
www.FreeLibros.com
32 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
si n = 0
ww " ~ *, si n > 0
H’° = £
= 122
w2 = 122122
w3 = 122122122
www.FreeLibros.com
ALFABETOS Y LENGUAJES 33
j _ {w, si w = £
W a, si w - ay por tanto a e l y y e E *
((abcd Y y = (deba)1
= abcd
En general, (x7)7= x.
1.2.1. Sea £ = {1}. ¿Se puede decir que para todo número natural n hay alguna pala
bra w e E* para la cual | vvj = ni Si w es una cadena de Z* para la cual | w \ —n,
¿es única? ¿Qué ocurriría si Z = {1, ?}?
www.FreeLibros.com
34 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
A ■B - {vv • x \w e A y x e B)
Por tanto, A • B está formado por todas las cadenas que se forman concate
nando cada cadena de A con todas las cadenas de B.
Por ejemplo, si A = {casa} y B = {pájaro, perro), entonces A • B sería el
lenguaje {casapájaro, casaperro).
Obsérvese que para formar el lenguaje concatenación A • B no es necesario
que A y B sean lenguajes sobre el mismo alfabeto. Si A es un lenguaje sobre Xi y
B es un lenguaje sobre £ 2 , entonces A • B es un lenguaje sobre Z¡ u £ 2 - Se suele
escribir AB en lugar de A ■B, cuando la expresión resulta ambigua.
Dado que para toda palabra x, x ■e = x = £ • x, se obtiene que para cualquier
lenguaje A, A • {£} = {£} A = A . Es decir, el lenguaje cuyo único elemento es la
palabra vacía, se comporta como la identidad para la operación de concatenación
de lenguajes.
Al igual que para las cadenas, una vez que se ha definido la concatenación
de lenguajes, se puede definir la potencia. Sea A un lenguaje sobre el alfabeto £.
Definimos
f \
|{£}, si n = 0
|A ■A"~ *, si n > 1
www.FreeLibros.com
ALFABETOS Y LENGUAJES 35
A° = {e}
A l =A = {ab)
A 2 = A • A 1= {abab}
A 3 = A - A 2 - {abcibab}
A u 5 = {x | x e A o x e B}
A n B = {x|x e A y x e B simultáneamente}
Luego, A n B está formado sólo por las palabras que pertenecen a los len
guajes A y B a la vez.
Veamos un ejemplo. Consideremos el alfabeto L = { 0 , 1} y los lenguajes
A = {e, 0, 1, 10,11} y B = {£, 1,0110, 11010}. Entonces
www.FreeLibros.com
36 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
i. A ( B u Q =A B u A C
ii. (B u Q ■A = B ■A u C ■A
www.FreeLibros.com
ALFABETOS Y LENGUAJES 37
Ejemplo 1.3,1
la cual es una cadena de Ak. De aquí que Ac A* para k > 1, y por tanto A = A k
para k > 1. De esto se obtiene que
oo ©o
A+= U Ak = J J A=A
k= 1 Jt=l
www.FreeLibros.com
38 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
A - B = { x | x e A y x g B}
Ejemplo 1.3.2
A = £* - A
oo oo
X e U (A • A'1) = A ■(_J A” = A • A*
n=0 n=0
www.FreeLibros.com
ALFABETOS Y LENGUAJES 39
A la inversa, sea
oo oo
x e A ■A* = A ■U An = U (A ■A 1')
j ,1=0 »= o
Puesto que podemos obtener cada uno de los lenguajes (A+)', entonces tam
bién se puede obtener (Apf. Es más, puesto que (A+)°= {e}, también se puede
considerar que (A+)*. Luego parece que tiene sentido preguntarse cómo son los
lenguajes que son cerraduras de cerraduras. Las repuestas son sorprendentemen
te sencillas.
Si x es una cadena de (A+)+, entonces, puesto que (A+)+ = i (A+)k, tene
mos que para algún n > 1, x e (A+)", y por tanto x = x\ ■X2 • ■■■ ■x„, donde cada
x¡ e A+. Dado que x¡ e A+ = i A', existe algún i¡ > 1 para el cual x¡ e A'1. Por
tanto cada
Xi = y¡,\ ■y i,2 • ■y¡,t,
* = O’i.i y 1,2 ••• yi,/,) - 0 2 ,i yi.i ■■■ yi-t2) ■-■■■■ (y»,i y »,2 ■■■y,u„)
Pero ésta es justamente una cadena perteneciente al lenguaje a ,|+,2 + -" + í".
Es más, puesto que t¡ > 1 para cada i, se obtiene que
t\ + t2 + ... + tn > 1
www.FreeLibros.com
40 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
por lo que es una cadena de A+. Por tanto (A+)+ c A+. Por otro lado, puesto que
A+ = (A+)* c i (A+)k = (A+)+, se obtiene que A+ c (A+)+, de lo que se des
prende que A+ = (A+)+.
De forma similar se puede demostrar que (A*)* =A*. Estos resultados se
pueden interpretar como que no se añaden nuevas cadenas a los lenguajes A* o
A+, aunque se vuelva a realizar sobre ellos cualquier tipo de cerradura. Esto des
vela intuitivamente lo que significa el término cerradura.
También se puede desarrollar la idea de inverso o transpuesta de un lengua
je. El inverso de un lenguaje A es
A 1= {x' \x e A}
Demostración. Sea x e (AB)1. Entonces x ! e AB, con lo que xJ = yz para las cadenas
y e A y z e B. Por tanto, x = (xJ )' = (yz)1= z1 • / . Pero dado que z e B, entonces
z7 e B1. A dem ás y e A, con lo que y 1 e A 1, y por tanto se obtiene que x e B1A1,
lo cual prueba que (A5)7 c Z?7 • A7. A la inversa, si x e B1A 1, entonces x = uw
para alguna palabra u e B1 y w e A 1. Pero entonces x 1= v / ul e AB, con lo que
x7 e AB y x e (AB)1. Por eso Bl A7 c (AB)1, y por tanto (AB)1 = B1A7. □
www.FreeLibros.com
ALFABETOS Y LENGUAJES 41
1.3.5. Sean A = {e, ab} y B = {c<r/}. ¿Cuántas cadenas hay en A" 5 para un n arbitra
rio?
1.3.7. Sean A = {e}, B = [aa, ab, bb), C = {e, aa, ab} y D = 0 el lenguaje vacío. Obte
ner A u B , A u C , A u D , B u D y A n B , B r\C , C n D, A n D. Suponer que
F es un lenguaje cualquiera. Obtener F u D y F n £>.
L U = U (A ■Bi)
;= i i —i
1.3.11. Obsérvese que para todo lenguaje A se tiene que £ 6 A*. ¿Cuándo £ 6 A+?
1.3.13. En los Ejemplos 1.3.1 y 1.3.2 ¿por qué £ no está en los lenguajes A - B y A?
1.3.18. Demostrar que se cumplen las siguiente igualdades para los lenguajes A y i? so
bre el alfabeto £:
(b) (A n B)' = A, n B l
www.FreeLibros.com
42 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
PROBLEMAS
1.1. Sea Z = [a, b ,..., z] el alfabeto inglés. Definir la relación < sobre Z \ de forma
que x < y siempre que x preceda a y en orden alfabético (ordenación lexicográ
fica).
1.2. Sea A un lenguaje sobre el alfabeto Z. ¿Cuándo se cumple A = A l
1.3. Sea Z = {a, b, c} y sea L = {c' xcJ\ i,j >0}, donde x se restringe a x = £, x = aw
o x = wb para algún w e Z. ¿Se cumple que L = E*? ¿Es cierto que L2 = Z*?
1.4. Sea Z = {a, b}. Lo siguiente es una definición recursiva del lenguaje A:
i. £6/ 4.
ii. Si x e A, entonces axb y bxa pertenecen a A.
iii. Si x e y pertenecen a A, entonces xy pertenece a A.
iv. No hay nada más en A.
(a) Probar que
www.FreeLibros.com
ALFABETOS Y LENGUAJES 43
/= i
í= 1 k =n
< ‘i
IH * ¡ < n (t - 1) < nt
í=t
Probar que si
www.FreeLibros.com
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
2
Lenguajes
regulares
Como ejemplo, consideremos el alfabeto £ = [a, b}. Para todo número na
tural n, hay sólo un número finito de palabras sobre £ cuya longitud es n.
(¿Cuántas hay?). Aún más, dichas cadenas se pueden ordenar lexicográficamen
te. Por lexicográficamente, se entiende la forma en la que estarían ordenadas en
el diccionario. Por conveniencia, numeraremos £ como 0, después numeraremos
las palabras de longitud 1 y, en general, numeraremos las palabras de longitud
n + 1 después de las de longitud n. Así tenemos
www.FreeLibros.com
46 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
e 0
a 1
b 2
aa 3
ab 4
ba 5
bb 6
aaa 7
y así sucesivamente
e 0
<31 1
a2 2
an n
a\a i n+ 1
a\ ü2 n + 2
y así sucesivamente
De esta forma, cada palabra está representada por un entero único. Esto no
ocurriría si hubiésemos usado el 0 para representar a a y el 1 a b, ya que a1 esta
ría representada por 0, par^ todo i > 0.
www.FreeLibros.com
LENGUAJES REGULARES 47
O bsén c e que para todo número natural m, existe una única representación
:1 m isr base n. Por eso podemos encontrar una cadena en Z* correspon
diente a Si m > 0, entonces debemos obtener la representación de m en base 2
sando 1 utos 1 y 2 en vez de 0 y 1). Para ello, se concatenan los caracteres
que corresponden a los dígitos que aparecen en la representación de m en base 2.
Así, si ni 3 2 , primero se convierte m a 11112 y entonces se concatenan las aes
ia bes ha.-aa obtener aaaab.
Hemos \ isto una forma de relacionar las cadenas de Z* con los números na-
p rales, de na que cada cadena está representada por un único número natural
y cada mime, o natural representa a una única cadena. Esto, esencialmente, defi
ne una función de N a Z*, con lo que, de hecho, se ha esbozado la demostración
del siguiente eorema:
Demostrc ion. S. -ngam os que el conjunto de todos los lenguajes sobre Z es numera-
Lian. >s a dicho conjunto L . Puesto que L es numerable, puede ser enu-
:• erado de ;a ; >rma Ao, Ai, Az, ... Usaremos el método de la diagonalización para
gar a una .: ntradicción.
Sabe: 'v . que Z* es numerable y por tanto puede ser enumerado como »vo,
.......S>.;; {vv,-1 vv/ £ A¡}. Luego B está formado por las palabras que no per-
tecen ; uaje que tiene el mismo índice que las mismas. Obsérvese que B
(. un con/! ,; ! de cadenas sobre Z y que, por tanto, es un lenguaje. De aquí que
. =Ak, para algún k. Obsérvese que si B. entonces Wk no está en A k - B .
Por tanto, ir* está y no está en Ak, lo cual es una contradicción. Por otro lado, si
a ; g B, entoaces, de la definición de B, se obtiene que es una cadena de
= B y es;á :n B. Por tanto, Wf. está y no está en B, con lo que se llega a otra
ntradic Dado que w* debe o estar en B o no estar en B, la suposición de
qué el conjunto de todos los lenguajes sobre Z es numerable es falsa. Luego el
conjunto no es numerable. □
www.FreeLibros.com
48 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
no son representabas. Por otro lado, unos métodos tienen mayor fuerza expresi
va que otros, es decir, unos definen más lenguajes que otros. Con el estudio de
estos métodos de investigación podemos hacernos una idea de la naturaleza mis
ma de la computación.
El primer método para especificar lenguajes que vamos a estudiar define el con
junto de lenguajes llamado lenguajes regulares sobre un alfabeto. Los lenguajes
regulares son interesantes desde el punto de vista práctico porque pueden ser
usados para especificar la construcción de analizadores léxicos —programas que
analizan un texto y extraen los lexemas (o unidades léxicas) que hay en el mis
mo. Para un alfabeto Z dado, los lenguajes regulares sobre Z son interesantes
desde el punto de vista teórico porque ellos constituyen el menor conjunto de
lenguajes sobre Z que es cerrado con respecto a las operaciones de concatena
ción, la cerradura de Kleene y la unión de lenguajes y además contiene el len
guaje vacío 0 y los lenguajes unitarios {a} para a e Z.
www.FreeLibros.com
LENGUAJES REGULARES 49
Por tanto, el conjunto de los lenguajes regulares sobre E está formado por el
lenguaje vacío, los lenguajes unitarios incluido {£} y todos los lenguajes obteni
dos a partir de la concatenación, unión y cerradura de estrella de lenguajes.
Ejemplo 2.2.1
¿El lenguaje de todas las cadenas sobre [a, b, c} que no tienen ninguna sub
cadena ac es un lenguaje regular? Para responder a esta pregunta, consideremos
que A es ese lenguaje. Si A es regular, entonces puede ser escrito en la forma que
se indica en la definición. Obsérvese que las unidades de construcción básica
son los lenguajes {a}, {b}, { c } , 0 y {£}. Supongamos que w es una palabra per
teneciente a A. Entonces vv comienza por 0 ó más ces. Si las suprimimos obtene
mos una subcadena w que no empieza por ningún carácter c. Ésta subcadena es
tará constituida por aes, bes y ces, donde cualquier bloque de ces sigue a las bes.
Es más, no puede haber ningún bloque de ces al principio de vv'. Por eso se tiene
www.FreeLibros.com
50 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
Para probar la otra inclusión, obsérvese que si u es una cadena que tiene una
subcadena ac entonces
u<£ {c}*({a} u {b } { c } T
ya que no hay forma de que una c pueda seguir a una a. Por tanto
{ c } * ({ a } u { ¿ } { c } y < z A
denota [a, b)
ab denota {ab}
a* denota {«}*;
a+ denota {a}+
www.FreeLibros.com
LENGUAJES REGULARES 51
1. r u í = juc.
2. r u 0 = r = 0 u r.
3. r u r= r.
4. ( r u i ) u í = r u (.v u t).
5. /■£ = £r = r.
6 . i'0 = 0 r ~ 0 .
7. (rs) t = r (st).
8. r ( s U í ) = rs u rt y ( r u s ) l ~ t 1 u st.
9. r* = /•*” = r V = (e U r)* ~ r* ( r u e ) = ( r u £) r = £ u r r .
10. (r u s)* - (r u s Y = (r s*)* = (r'sf r = r* (,sr*)*.
11. r (sr)' = (rs)* r.
12. (r*s)* = £ U ( r u s)a s.
13. (rs*)* = e u r (rus)*,
14. s (r U £)* (r u £) u s = sr*.
15.
www.FreeLibros.com
52 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
r = / í = ( e u 5+) t ya que s’ = e u j +
= ( e u ss*) t
= £í u ss*t por (8)
= t u sr por (5)
= iruí por(l)
2.2.1. Verificar, aplicando la definición de lenguaje regular, que los siguientes son
lenguajes regulares sobre Z = [a, b}:
(a) {«'l» > 0).
(b) {a11i > n } para un n > 0 fijado.
(c) {vv e Z* | vv termina con a }.
2.2.2. Verificar que el lenguaje de todas las cadenas de unos y ceros que tienen al me
nos dos ceros consecutivos, es un lenguaje regular.
2.2.3. Los identificadores de Pascal son cadenas de longitud arbitraria compuestas por
caracteres alfabéticos y por dígitos. Los identificadores de Pascal deben empe
zar por un carácter alfabético. ¿Es este lenguaje un lenguaje regular?
2.2.4. Obtener una expresión regular que represente el lenguaje de los identificadores
de Pascal.
2.2.5. (a) Probar que (r u £)* = r*.
(b) Probar que (b u aa*})) u (b u aab) (a u ba’b)* (a u bab) y
a*b (a u ba'b)* son equivalentes.
2.2.6. Sobre [a,b,c) ¿son equivalentes las parejas de expresiones regulares de
cada apartado?
www.FreeLibros.com
LENGUAJES REGULARES 53
www.FreeLibros.com
54 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
na. Las aristas del grafo se etiquetan con caracteres del alfabeto y se llaman
transiciones. Si el siguiente carácter a reconocer concuerda con la etiqueta de al
guna transición que parta del estado actual, nos desplazamos al estado al que nos
lleve la arista correspondiente. Naturalmente, nosotros debemos comenzar por
un estado inicial, y cuando se hayan tratado todos los caracteres de la cadena co
rrespondiente, necesitamos saber si la cadena es “legal”. Para ello se marcan
ciertos estados como estados de aceptación o estados finales. Si cuando ha sido
tratada la cadena en su totalidad terminamos en un estado de aceptación, enton
ces la cadena es “legal”. Marcaremos el estado inicial con una flecha (—») y alre
dedor de los estados de aceptación trazaremos un círculo.
Por ejemplo, el diagrama de la Figura 2.1 acepta todas las cadenas que están
formadas por 0 ó más aes seguidas por una única b. Obsérvese que para toda ca
dena de la forma ak b, para k > 0, el recorrido del diagrama termina en un estado
de aceptación. El recorrido del mismo con cualquier otra cadena de aes y bes
(incluida la cadena vacía) termina en cualquier otro estado, pero éste no es de
aceptación.
a, b cá ■-
'4'
6
a, b Figura 2.1
www.FreeLibros.com
LENGUAJES REGULARES 55
a, b
a.
a Figura 2.2
también, que una vez que se identifica un prefijo incorrecto, se realiza un des
plazamiento a un estado que no es de aceptación y se permanece en el mismo.
Consideremos el lenguaje (ab)*. En este caso si se acepta la cadena vacía.
Por tanto, el estado inicial también es de aceptación. El diagrama de transición
correspondiente se muestra en la Figura 2.3.
tr
a, b Figura 2.3
Vamos a etiquetar los estados del último diagrama de transición con las le
tras q¡, para i = 0, 1,2. Obtendremos la Figura 2.4.
Podemos representar el diagrama de la Figura 2.4 por medio de una tabla
que indica el siguiente estado al que desplazarse, desde un estado combinado
con un símbolo de la entrada (Figura 2.5).
a, b F ig u ra 2.4
www.FreeLibros.com
56 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Obsérvese que la tabla para nuestro diagrama de transición tiene, para cada
par estado actual-entrada, un único estado siguiente. Por tanto, para cada estado
actual y símbolo de entrada, se puede determinar cuál será el estado siguiente.
Se puede pensar que el diagrama representa la acción de alguna máquina. Esta
máquina puede pasar por diferentes estados. El cambio de estado depende de la
entrada y del estado en que se encuentre. Dicha máquina se llama autómata fin i
to, una computadora ideal. El autómata finito se define en términos de sus esta
dos, la entrada que acepta y su reacción ante la misma. Hay autómatas finitos de
dos tipos, deterministas y no deterministas, dependiendo de cómo se defina la
capacidad para cambiar de estado. El autómata que corresponde a la Figura 2.5
para (ab)* es determinista.
EstadcAEntrada a b
Ct\ 92
<?2 (lo
<72 <72
1. Un alfabeto de entrada Z.
2. Una colección finita de estados Q.
3. Un estado inicial 5.
4. Una colección F de estados finales o de aceptación.
5. Una función 5: Q x Z —» Q que determina el único estado siguiente
para el par (g¡, o) correspondiente al estado actual y la entrada.
Q = {<70, qu <7 2 }
Z —{a,b}
s = qo
F = {q o )
www.FreeLibros.com
LENGUAJES REGULARES 57
6 a b
?o <71 <?2
<7i <¡2 qo
(¡2 Q2 <12 Figura 2.6
Q = {qo, <7 1 }
E = {a, b }
^={<70}
s = qo
y 8 representada mediante la Figura 2.7
8 a b
<?0 <?o.
9i <?i <?o Figura 2.7
a
a
-------> ®—
F ig u r a 2.8
www.FreeLibros.com
58 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
5 a b
<?o <?o <?i
<?i 9o <72
<?2 qo <73
<?3 <73 <?3 Figura 2.9
Figura 2.10
"T c^
Ejercicios de la Sección 2.3
2.3.1. Obtener la expresión regular que representa al lenguaje formado por todas la
cadenas sobre {a, b} que tienen un número par de bes. Construir el diagrama de
transición para este lenguaje.
2.3.2. Construir el diagrama de transición para el lenguaje dado por c* (a u be*)*.
Convertir el diagrama en una tabla como la dada en la Figura 2.5, etiquetando
los estados qo,q\, ...
2.3.3. Sea M= {Q, Z, s, F, 5} dado por
Q = {<?0,<7l,<72,?3}
£ = {0 ,1 }
{^0 }
■5= <?0
y 8 dada por la tabla de la Figura 2.11.
www.FreeLibros.com
LENGUAJES REGULARES 59
5 0 1
Qo <72 <?1
<73 qa
<12 <73
H>®-
cr
Figura 2.12
AFD Y LENGUAJES
Para trabajar con los AFD es necesario usar ciertas definiciones y notaciones. Si
M es un AFD, entonces el lenguaje aceptado por M es
Por tanto, L (M) es el conjunto de cadenas que hacen que M pase de su esta
do inicial a un estado de aceptación.
Por ejemplo, el lenguaje aceptado por el AFD (*), presentado en la última
sección, es
Merece la pena hacer hincapié en que L (M ) está formado por todas las ca
denas aceptadas por M, y no que es un conjunto de cadenas que son todas acep
tadas por M.
Para cada (q¡, a) de Q x I . 5 (q¡, a ) es un estado perteneciente a Q, y él mis
mo puede ser emparejado con la entrada. Este par se transforma mediante 8 en
un nuevo estado de Q. En particular, si qo es el estado inicial de M y se tiene
www.FreeLibros.com
60 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Mi:
í) ®
, M2:
Ambos aceptan el lenguaje a+ y, por tanto, son equivalentes. Por otro lado,
sea M 3 dado por el siguiente diagrama
My. ®
a
í)
Mi: ----- > ®
www.FreeLibros.com
LENGUAJES REGULARES 61
Si se permite que desde un estado se realicen cero, una o más transiciones me
diante el mismo símbolo de entrada, se dice que el autómata finito es no deter
minista. A veces es más conveniente diseñar autómatas finitos no deterministas
(AFN) en lugar de deterministas. Consideremos el lenguaje a*b u ab*. Las cade
nas pertenecientes a este lenguaje están formadas por algunas aes seguidas de
una b o por una a seguida de varias bes. El AFD que acepta A se representa por
medio del diagrama de transición de la Figura 2.13.
Figura 2.13
Aunque el lenguaje es relativamente sencillo, debemos detenem os en poder
determinar si este diagrama de transición corresponde al AFD de A. Primero se
debe comprobar que reconoce sólo las cadenas pertenecientes a A, y después, si
representa a un AFD. Para ello, debemos comprobar que las reglas de transición
constituyen una función, es decir, que de cada estado parte una y sólo una transi
ción para cada símbolo del alfabeto.
Consideremos ahora el diagrama de transición de la Figura 2.14. Obsérvese
que este diagrama acepta sólo las cadenas pertenecientes a A. Fíjese también que
las reglas de transición no son una función de "Q x £ en Q porque no asigna un
estado siguiente a los pares estado-entrada (<74, a), (<73 , a), (43, b), (<72 , o) y
(q2, b). Es más, existe_más de un estado siguiente correspondiente al par (qo, a).
www.FreeLibros.com
62 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
93 Figura 2.14
Obsérvese que, puesto que A es una relación para todo par (q, o) compuesto
por el estado actual y el símbolo de la entrada, A (q, o) es una colección de cero
o más estados fes decir, A (q, a ) c Q], Esto indica que, para todo estado q, se
pueden tener cero o más alternativas a elegir como estado siguiente, todas para
el mismo símbolo de entrada.
Por ejemplo, el AFN descrito anteriormente para A = a b u ab* se repre
senta por medio de
Q = {qo, qí, <?2, <73, 94}
F = { q z , 43, 94}
s = qo
E = { a ,¿ }
www.FreeLibros.com
LENGUAJES REGULARES 63
A a b
9o !<?b<?4) (<?3)
9i Í9 i)
92 0 0
93 0 0
5 = qo
F = k/o}
y A dada por la tabla de la Figura 2.16. Este AFN tiene el correspondiente dia
grama de transición que se muestra en la Figura 2.17.
A a b
<70 í<?i) 0
9i 0 Í9o, 92 )
92 (9o) 0
Este AFN acepta el lenguaje (ab u aba)*. Obsérvese que cuando se está en
el estado q\, mediante el símbolo de entrada /?,*se puede pasar a dos posibles es
tados siguientes. Se puede elegir entre uno de estos estados. De nuevo, la elec
ción de un estado no está determinada por el modelo. Si para el reconocimiento
www.FreeLibros.com
64 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
de la cadena aba, se elige 4 2 como estado siguiente desde el par (q\,b) llegamos
a un estado de aceptación; sin embargo, si elegimos #0 no llegamos a un estado
' final. El análisis de cadenas mediante los AFN parece que implica ciertas conje
turas. Esta es una característica del no determinismo: cuando se debe realizar
una elección y dicha elección no puede ser determinada por el modelo, debemos
acertar la correcta. En un modelo de computación no determinista (del cual los
AFN son una clase), asumimos que siempre se hace la elección correcta.
Como con los AFD, si M es un AFN, definimos el lenguaje aceptado por M
por medio de
L (M) - {w\ w es una cadena aceptada por M)
Ejemplo 2.5.1
.... s,
El diagrama de transición de la Figura 2.18 corresponde a un AFN que
acepta el lenguaje
(a*b*)* (aa u bb) (a b*)*
www.FreeLibros.com
LENGUAJES REGULARES 65
A a b '
4i 0 {4 2 }
92 {4 2 } {4 2 }
43 ( 44 } 0
\ <74 {94 ) {44 } Figura 2.19
La naturaleza recursiva del análisis de cadenas que vimos para los AFD se
manúene en los AFN si la notación se define con cuidado. Si X c Q, vamos a in
terpretar A (X , a ) como el conjunto de estados { p \ q e X y p e A (q, a)}. Por
tanto, A (X, o) es el conjunto de todos los estados siguientes a los que se puede
llegar desde X con la entrada a. Obsérvese que A (X, a ) = { J 9 e x A (qr, a ) [re
cuérdese que A (q, a ) es un conjunto para cualquier estado q\.
Por eso, en el ejemplo precedente,
Por tanto, podemos extender la notación usada para los AFD a los AFN y
escribir A (qo, abaab) para abreviar A (A (A (A (A (<70 , a), b), a), a), b).
En el Ejemplo 2.5.1, se tiene que A (qo, abaab) = {qo, <71, q 4}. La colección
A (qo, abaab) es el conjunto de todos los estados de M a los que se llega cuando
se analiza la cadena abaab. Esta colección tienen en cuenta todos los posibles
caminos o recorridos de M con esta cadena de entrada. A (qo, abaab) contiene al
menos un estado de aceptación, ¿74, lo que indica que algún recorrido de este dia
grama para la cadena abaab termina en un estado de aceptación. Por eso, abaab
pertenece al lenguaje aceptado por este AFN.
www.FreeLibros.com
66 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
A a b
Ejemplo 2.6.1
Ya que una función es un caso especial de relación (es decir, las funciones
son relaciones que poseen requerimientos adicionales), las funciones de los AFD
se consideran como relaciones en los AFN. En consecuencia, todo AFD es un
AFN. La colección de lenguajes aceptados por los AFN incluye a todos los len
guajes aceptados por los AFD. De esto resulta que los AFN sólo aceptan los len
www.FreeLibros.com
LENGUAJES REGULARES 67
guajes aceptados por los AFD. Por lo tanto, los AFN no son más potentes que
los AFD con respecto a los lenguajes que aceptan. Para probar esto, necesitamos
demostrar que todo lenguaje aceptado por un AFN también es aceptado por al
gún AFD.
Sea M = (Q, £, s, F, A) un AFN. En la sección anterior presentamos una for
ma de recorrer M, de la cual se obtenía la colección de todos los estados accesi
bles desde el estado inicial en cada una de las etapas de análisis de una cadena.
Estas técnicas proporcionan la base para construir un AFD M' = (Q \ E', / , F \ 8)
que acepte el mismo lenguaje que Ai. Esencialmente, lo que se pretende es hacer
que cada estado de Q' se corresponda con un conjunto de estados de Q. Cuando
se analiza una cadena con M, ésta se acepta cuando la colección final de estados
contiene al menos un estado de aceptación perteneciente a F. Por tanto, haremos
que F sea el conjunto de estados de Q' que se correspondan con los conjuntos
de estados (de Q) que contienen un estado de F. Haremos corresponder a s' con
el conjunto | .y}, £ ' = £, y definiremos 5 de forma que nos desplacemos de un
conjunto de estados de M a otro, como hace A.
Ejemplo 2.6.2
% a
->® 9i
a
a
b Figura 2.22
www.FreeLibros.com
68 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
• [q2
0 8
a, b
Figura 2.23
G '={0,{® }.{92}.í«3}.{9l.ft}}
r =z
í '= {<?o}
f = { { ( ¡ 3 }, \q\, <72}}
y 8 viene dada por la tabla de la Figura 2.24.
§ a b
0 0 0
(<7o) {<7i><72) 0
{<7 2 } 0 {<73 }
(4 3 } i<?2) 0
www.FreeLibros.com
LENGUAJES REGULARES 69
todos los subconjuntos de Q' que contienen estados de F. Téngase en cuenta que
hemos incluido en Q' y F algún objeto más que en el ejemplo anterior. Sin em
bargo, esto no alterará la construcción de M'. Para cada conjunto \q¡v q¡2, q¡n} de
Q' y cada símbolo de entrada o de 2, definiremos 8como
Obsérvese que 8, definida de esta forma, es una función de Q' x Z' en Q',
puesto que está bien definida para todos los elementos de Q' x
Para probar que L (M) —L (M'), debemos demostrar que para toda cadena
w, 8 (/, vv) = {pup 2 , ...,pj } si y sólo si A (.y, w) = [p\,p% ...,pj }, con lo cual M'
acepta vv si y sólo si M acepta vv. Probaremos esto por inducción sobre la longi
tud de vv. Si la longitud de w es 0 (es decir, w= e), entonces
Ahora supongamos que para toda cadena w de longitud menor o igual que m
se tiene que A (s , vv) = 8 (/, vv). Supongamos que u es una cadena de longitud
m + 1. Entonces, existirá algún oe Z, de forma que se obtiene que u = wo, don
de w es una cadena de longitud m. En este caso, 8 (/, vvo) = 5(8 (s\ vv), o).
Ahora, por la hipótesis de inducción, dado que vv tiene longitud m, 8 (/, w) =
ÍP\,P2, -•,Pj} si y sólo si A (s, vv) = [p\,p 2 , •••,Pj }• Pero por la forma en la que
hemos definido 8, tendremos que
Por lo que 8 (/, vva) = {rt, r2, n } si y sólo si A (s, wo) = {n, n, >'k}- Es
decir, la igualdad se cumple para cadenas de longitud m + 1 si se cumple para
cadenas de longitud m. Entonces por lo anterior tenemos que 8 (5', vv) es unesta
do de F si y sólo si A (5 , vv) contiene algún estado de F. Por tanto, M' acepta vv
si y sólo si M acepta w. □
www.FreeLibros.com
70 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
2.6.1. Construir el AFD correspondiente al AFN dado en la Figura 2.25. ¿Qué lengua
je es aceptado por dicho autómata?
a b
— ------------ > ®'<P>
t _£>___________ | Figura 2.25
2.6.2. Encontrar un AFN que acepte (ab u aab u aba)*. Convertir este AFNen un
AFD.
2.6.3. Encontrar un AFN para (a u b'faabab. Convertirlo en un AFD.
2.6.4. Supongamos que M es un AFN que ya es determinista. ¿Qué se obtendrá siapli
camos a M la construcción dada en el Teorema 2.6.1 ?
8-TRANSICIONES
Figura 2.26
El AFN de la Figura 2.27 puede moverse del estado q 2 al estado qo sin con
sumir nada en la entrada. En ambos AFN, la decisión de elegir una e-transición
se realiza de la misma forma que la de cualquier otra transición con elección
múltiple que exista en un AFN — basándose en algo que no determina el mode
lo. Por tanto, las e-transiciones son consistentes con el matiz no determinista de
nuestra versión previa de AFN.
www.FreeLibros.com
LENGUAJES REGULARES 71
Figura 2.27
A a b e
<?o í<7i) 0 0
<?i 0 i<?2Í 0
Figura 2.29
www.FreeLibros.com
72 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
e -c f e ) = {4 3 }
Figura 2.30
ya que cada estado es accesible desde sí mismo sin consumir ningún carácter de
la entrada. También se obtiene
e -c (qo) = {qo, q \ ,q 7 )
Para q e Q y o 6 X se define
www.FreeLibros.com
LENGUAJES REGULARES 73
d O/o, a) = {(¡i]
dUto,b) = 0
d({cjy, < } ,b ) = \qfí,qi)
Ejemplo 2.7.1
F ig u ra 2.31
www.FreeLibros.com
74 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Ejemplo 2.7.2
www.FreeLibros.com
LENGUAJES REGULARES 75
2.7.1. Calcular A (qo, abb) y A (c/o, abcrb) para el AFN de la Figura 2.29.
2.7.2. Obtener £-c ({<7 1 , ¿74}) para el AFN de la Figura 2.30.
2.7.3. Obtener e-c (el (<73, /»)) en el AFN de la Figura 2.30.
2.7.4. Usar la técnica estudiada para calcular A Ui¡, b) en el Ejemplo 2.3. i .
2.7.5. Para el AFN dado en la Figura 2.33; (a) obtener la tabla de transición para A,(b)
obtener la ¿-cerradura (q¡) para i - 0, 1,2, y (c) calcular A (qo, a), A (qo, b) y
A (qo, c) para la Figura 2.33.
a b e
—
a p a p a *
» • ---------------- > • ---------------- >®
q0 Q, q2 Figura 2.33
2.7.6. Para el AFN del Ejercicio 2.7.5, obtener el AFN que se obtiene al eliminar las
e-transiciones. Dar la tabla para A'.
Hasta ahora, hemos tratado de la relación entre autómata finito y expresiones re
gulares de una forma intuitiva. En esta sección, formalizaremos dicha relación
por medio del teorema de Kleene (Teorema 2.8.4). De momento, vamos a ver al
gunas propiedades de los lenguajes aceptados por autómatas finitos.
Para un alfabeto I se pueden construir los AFN (y los AFD) que acepten
palabras unitarias. Por ejemplo, el AFN de la Figura 2.34 acepta el lenguaje uni
tario {«}. Para ello se puede construir, incluso, una AFN que acepte el lenguaje
vacío 0. Dicho AFN se muestra en la Figura 2.35. Obsérvese que este autómata
no acepta ninguna cadena.
Supongamos que M\ - (Qj, I i , .vi, F¡, Ai) y M 2 = (Q 2, E 2 , i'2 ,'^ 2 , A2) son
AFN. Podemos unir Mi y M i en un nuevo AFN que acepte L ( M í ) k j L ( M 2),
añadiendo un nuevo estado inicial s y dos e-transiciones, una de s a íj y otra de s
a s2. La construcción formal de este nuevo AFN M = (Q ,Z , s, F, A) viene dado
por X = I i u £ 2, F = F\ u F i y Q = Qi u £>2 u {5 }, donde 5 es el nuevo estado
www.FreeLibros.com
76 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Por ejemplo, los AFN de la Figura 2.36, los cuales aceptan ab* y (ab)*, res
pectivamente, se pueden unir formando el autómata con e-transiciones de la Fi
gura 2.37, el cual acepta ab* u (ab)*.
®■ -»•
qy q-2'
Figura 2.36
Figura 2.37
Sean M\ = (Q\, I i , 5 j, F\, Ai) y = (Qi, I 2, s2, F2, A2) dos AFN. Podemos
unirlos para formar un AFN que acepte L (M\) L (M2). Se necesita un AFN que
reconozca una cadena de L (M¡) y después reconozca una de L (M2). Es decir, un
recorrido hasta un estado de aceptación para admitir la cadena en su totalidad,
primero debe pasar por un estado de aceptación de M\ y después pasar (y term i
nar) en un estado de aceptación de M 2. Esto se realiza de forma no determinista
www.FreeLibros.com
LENGUAJES REGULARES 77
pasando del estado final de M\ al estado inicial de Mj_ por medio de una e-tran-
sición.
Por ejemplo, los AFN de la Figura 2.38 aceptan los lenguajes {a} y {¿},
respectivamente. Uniéndolos como hemos dicho, se obtiene un AFN que acepta
el lenguaje {ab} (véase la Figura 2.39).
Figura 2.38
®
ay Qf
Figura 2.39
Obsérvese que el autómata que se obtiene tiene como estado inicial el esta
do inicial de M\ y como estado(s) final(es) el(los) estado(s) final(es) de M2. Por
tanto, el AFN M = (Q, Z, s, F, A) que acepta L (M \) L (M2) viene dado por
Q = Q\ u Qi
S = S\
F = F2
A = Ai u A 2 u (F\ x {e} x {í2})
www.FreeLibros.com
78 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Q' = Q v { s ' }
Teorema 2.8.1. El conjunto de lenguajes aceptados por un autómata finito sobre el al
fabeto Z contiene 0 y los lenguajes unitarios {fl} para todo a e Z. Este conjunto
es cerrado con respecto a la unión, concatenación y la cerradura de estrella.
Es decir, A¡ es el conjunto de las cadenas sobre Z que hacen que M pase des
de q¡ hasta un estado de aceptación. Se dice que A¡ es el conjunto de las cadenas
aceptadas por el estado q¡. Obsérvese en que /Ao = L (M). Adviértase, también,
que es posible que A¡ = 0. Si qt e F, entonces se obtiene que £ e A¡.
Como ejemplo, consideremos el autómata finito de la Figura 2.40. En el
mismo, se tiene que
A5 = 0, A2- e
A 4 = e, A i= b
A¡ = a, Ao = a b u ba
www.FreeLibros.com
LENGUAJES REGULARES 79
->®
^4 Figura 2.40
Esto proporciona las técnicas recursivas básicas para obtener una expresión
regular a partir de un autómata finito. Como muestra, consideremos el ejemplo
anterior. Obsérvese que
Ao = aA¡ u M 3 , A3 - Í 1A4 U M 5
•> ®
Figura 2.41
www.FreeLibros.com
80 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
A * 5 u C = A (A * B u C )u 5
= A +B u AC u £
= A+B u S u AC
= (A+u e ) B u A C
= A*B u AC
Ao = aA i
A\ = aAi u bA$
A i —aA 3 u bAá,
A3 = £U ClAj U ¿A4
Figura 2.42
A4 = b*
A3 = (7A3 u b+ u £
í: 7Íí
=a b
A 2 = a+b * u b+
A 1 = a (a+&* u ¿>+) u b+
—aa+b* u ab+ u b+
Ao = üA\
= a1 a+b* u a2 b+ u ab+ «■
www.FreeLibros.com
LENGUAJES REGULARES 81
Lema 2.8.3. Sea M un autómata finito. Entonces existe una expresión regular r para la
cual L (/•) = L (M).
Del Lema 2.8.3 junto con las observaciones anteriores al Teorema 2.8.1, se
obtiene el teorema de Kleene.
r ®q2
<7,
Pa Figura 2.44
2.8.6. Sean M, = ({^j, q2, qi), {a, b}, [qi\, {#i}, Ai) y M 2 = ({p\,pi,pi,p4},{0, 1},
ÍPíK [p\,pi\, Ai), donde Ai y A2 vienen dados en las tablas de la Fi
gura 2.45. Obtener un AFN que acepte L(M\) L(Mi). Obtener un AFN que
www.FreeLibros.com
82 t e o r ía d e a u t ó m a t a s y l e n g u a j e s f o r m a l e s
Figura 2.45
2.8.7. Obtener un AFN para (ab)* a partir de los AFN que aceptan {a} y {b}.
2.8.8. Obtener un AFN para (aa u b)* (bb u a)* a partir de los AFN que aceptan {a}
y [b).
2.8.9. Obtener un AFN para
->
Figura 2.46
www.FreeLibros.com
LENGUAJES REGULARES 83
a
-> ®
0
a, b Figura 2.47
2.8.14. Obtener una expresión regular para los lenguajes aceptados por cada uno de los
autómatas de la Figura 2.48.
a, b
a. ) ® -
________I í_ a, b
ft
b. ) -» ®
c. )
<?3
d. )
r
o
a, b
. -----—-----> ® í ^
a'
b
a ,Q4 <h
Figura 2.48
www.FreeLibros.com
84 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
y así sucesivamente, obtendríamos los n + 1 estados, q\, q i , ..., <?„+ j. Puesto que
Q contiene sólo n estados, los q¡ no serán todos distintos. En consecuencia, para
algunos índices j y k, con 1 < j < k < n + 1, se obtendrá que q j-q k - Por lo tanto,
tendremos un ciclo en el camino que parte de s hasta un estado de aceptación,
según se muestra en la figura 2.49.
www.FreeLibros.com
LENGUAJES REGULARES 85
Figura 2.49
Puesto que j < k, se tiene que la “parte central”, es decir, aj+ i ... tiene al
menos longitud 1. Obsérvese además que la cadena w' = a i ... a¡ ci^ + i ... an+\
debe pertenecer también a L (M). Por esto, se puede dar vueltas en el ciclo tantas
veces como se quiera, de forma que a\ ... aj(aj+ i ... cik)m cik+\ ... an+\ estará
en L (M) para todo m > 0. Es decir, se puede “bombear” cero o más veces la par
te central y seguir teniendo una cadena que sea aceptada por el autómata. For
malizaremos esto en el siguiente lema, conocido como lema de bombeo.
Lem a 2.9.1. Sea L un lenguaje regular infinito. Entonces hay una constante n de forma
que, si w es un cadena de L cuya longitud es mayor o igual que n, se tiene que
w = uvx, siendo uvl x e L para todo i > 0, con | v| > 1 y | uv\ <n.
El lema de bombeo presenta una propiedad que debe tener todo lenguaje re
gular y nos facilita una forma de determinar si un lenguaje no es regular. Para
demostrar que un lenguaje no es regular, se mostrará que, para cualquier valor n
lo bastante grande, se tendrá al menos una cadena de longitud n o mayor que fa
lle al ser “bombeada”.
Por ejemplo, considérese el lenguaje
L = \ a ? \ i > 1}
Toda cadena de L debe tener una longitud que sea un cuadrado perfecto. Su
pongamos que L es regular y sea n la constante dada en el lema de bombeo. Ob
sérvese que a'r e L y que, por el lema de bombeo, tenemos a" = uvx de forma
que 1 < | v| < n y u v l x e L para todo i > 1. Entonces se obtiene que
n2 - \uvx\
< I uv2x I »
< n2 + n
< (n + l) 2
www.FreeLibros.com
86 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Ejemplo 2.9.1
Que {anbn \ n > 0) no sea regular y, por tanto, no sea aceptado por un autómata
finito saca a la luz las propiedades comunes a todos los lenguajes regulares. Du
rante el análisis de una cadena por medio de un autómata finito, sólo tenemos a
nuestra disposición, en cada paso, el estado y el símbolo actual. Cuando analiza
mos las bes no tenemos información sobre cuántas aes han sido analizadas.
Otra forma de decirlo es que la cantidad de memoria necesaria para aceptar
o rechazar una cadena debe ser limitada. Si consideramos los estados como me
moria, el hecho de que el conjunto de estados sea finito provoca dichas limita
ciones. Podríamos construir un autómata de estados no finito, que aceptara dicho
lenguaje. Podría estar formado por un estado inicial que también fuera estado de
aceptación, con un camino para cada a”bn, para todo n > 0. Véase la Figura 2.50.
Obsérvese que hay un número infinito de estados, por lo que la memoria en esta
clase de autómatas no está limitada.
www.FreeLibros.com
LENGUAJES REGULARES 87
www.FreeLibros.com
88 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
mos afirmar que los mismos nos facilitan algoritmos para resolver dichos pro
blemas. Sin embargo, dichos algoritmos no son particularmente eficientes. Para
los AFD hay una forma más rápida de poderlo realizar, eliminando los estados
que, para cualquier entrada, no sean alcanzables desde el estado inicial. L (M) no
será vacío si queda algún estado final. Entonces, si se eliminan todos los estados
no finales desde los cuales no pueda ser alcanzado ningún estado no final y com
probamos los ciclos, se puede determinar si L (M) es finito o infinito.
Los problemas del final del capítulo tratan otro problema de decisión, la
equivalencia de lenguajes regulares.
Una vez que hemos visto algunos ejemplos de lenguajes no regulares, hay
otras técnicas para comprobar la regularidad además de usar el lema do bombeo.
Supongamos que L y K son lenguajes sobre X. De las leyes de De Morgan
para conjuntos se obtiene que
(X* - L) u (X* - K) = X* - (L n K)
L n K = X* - (X* - ( L n K ) )
= r - ((X* - L ) \ j (I* - K))
Ejemplo 2.9.2
www.FreeLibros.com
LENGUAJES REGULARES 89
b
. -------i ------ > ¿. ----------- I£--------- > ® -------------- i ------ > .i ------- b------ > .
T a ] t a i
Figura 2.51
www.FreeLibros.com
90 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
a,
a, b
b Figura 2.52
www.FreeLibros.com
LENGUAJES REGULARES 91
de forma sistemática a las cadenas del fichero hasta que se acepta la cadena o se
termina el fichero.
Un problema común en la programación de computadoras es el de tener la
seguridad de que los datos de entrada de un programa son correctos. Por ejem
plo, si se espera un entero sin signo como dato de entrada y el usuario confunde
uno de los dígitos con un carácter no numérico, se puede dar todo tipo de resul
tados impropios, desde una terminación anormal hasta el cálculo de resultados
incorrectos (basura dentro, basura fuera). La programación cuidadosa pretende
construir un programa a “prueba de balas”, incluyendo unas rutinas de entrada
que analicen la información introducida por el usuario y, de alguna forma, pre
venir que se aplique información incorrecta al programa. Si pudiéramos cons
truir un autómata finito que aceptara solamente las cadenas que representan in
formación correcta, entonces tendríamos un modelo para dicha rutinr. de entrada.
Puesto que los autómatas finitos se corresponden con las expresiones regulares,
el problema se reduce a especificar la información correcta por medio de expre
siones regulares.
En el caso de que la entrada esté formada por enteros sin signo, el lenguaje
vendrá dado por / = {1, 2, 3 ,4 , 5, 6, 7, 8, 9} ■{0, 1, 2, 3 ,4 , 5, 6, 7, 8,9}*. Es fá
cil construir un autómata finito que acepte / (véase Figura 2.53).
1, 2, 9
a
Cualquier
carácter
Figura 2.53
www.FreeLibros.com
92 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
2.10.3. Escriba una rutina, en su lenguaje de programación favorito, que identifique nú
meros reales con y sin signo (para simplificar, suponemos que los números re
ales no vienen representados en notación exponencial, es decir, 1.23e-9).
www.FreeLibros.com
LENGUAJES REGULARES 93
PROBLEMAS
2.1. El algoritmo de Moore. Sabemos que si L\ y Z,2 son lenguajes regulares sobre
X, entonces X* - L\ y 2T - L2 son lenguajes regulares y por consiguiente
L\ n (Z‘ - La) y ¿ 2 í" 1 (X* - L\) también lo son.
Sea L - {L\ n (X* - LO) u (¿ 2 ^ (X* - ¿ 1)) y obsérvese que, puesto que L
es regular, es aceptado por una autómata M. Por el Teorema 2.9.2, podemos de
terminar si M acepta alguna cadena (es decir, si L = 0 o no). Pero obsérvese que,
si M acepta una cadena, entonces L contiene una cadena y, por tanto,
L\ n (X* - ¿ 2) y ¿ 2 ^ (2* - L\) no pueden ser ambos vacíos.
Supongamos que tenemos L\ n (X* - ¿ 2) s*0- Entonces existirá alguna ca
dena que esté en L\ y no en ¿ 2, y por tanto L\ * Li. Igualmente, si ¿ 2 n (X* -
- L\) * 0 , también llegaremos a que L\ ■£¿ 2 - Por otro lado, si M no acepta nin
guna cadena, entonces L = 0 y, por tanto, L\ n (X* - Li) y Li n (X* - L\) serán
ambos vacíos. Es decir, no hay ninguna cadena en L\ que no lo esté en ¿ 2, y vi
ceversa, y así L| = La.
Hemos probado que hay un algoritmo para determinar si dos lenguajes re
gulares son el mismo. Sin embargo, nuestro algoritmo no es particularmente efi
ciente, ya que primero tenemos que construir el lenguaje L, obtener un AFD
para él y después determinar si dicho AFD acepta alguna cadena. A continua
ción veremos un algoritmo mucho menos complejo que el de Moore.
Supongamos que M y M' son dos AFD sobre el alfabeto X. Para que la pre
sentación sea lo más sencilla posible, supondremos que X= {a, b}. Primero re
nombraremos los estados de M y M' para que todos los estados sean distintos.
Supongamos que q\ y q{ son los estados iniciales de M y M \ respectivamente.
Construiremos una tabla de comparación que (en este caso) consta de tres
columnas. Las entradas de cada columna son pares de estados (q, q'), uno de M
y otro de M’. La entrada de la columna 1 indica el par de estados que será trata
do en la fila correspondiente. La entrada de la columna 2 es el par de estados
que sigue a los de la columna 1 mediante una transición con a. Del mismo
modo, la entrada de la columna 3 es el estado siguiente por medio de una transi
ción con b.
Por tanto, si (q, q ) están en una entrada de la columna 1 y (p, //) y (r, r)
son las entradas de la columna 2 y la columna 3 para la misma fda, entonces
8 (q, a) = p, 8' (q a ) = p', 8 (q, b) = r y 8' (q\ b) = r son las transiciones de M y
M'. Construiremos la tabla fila por fila empezando por {q\, q f) como entrada de
la columna 1 y primera fila. En general, si (<7 , q ) está en la columna I de cual
quier fila, rellenaremos la columna 2 y la columna 3 de fornp apropiada. Si
cualquiera de las entradas de la columna 1 y la columna 2 no están ya en la co
lumna 1 se añadirán antes de seguir con la fila siguiente.
Siempre que en la tabla (y para cualquier columna) encontremos un par
(j), p') en el cual p es un estado final de M, pero p no es un estado final de M’ (o
viceversa), se parará el proceso ya que habremos llegado a la conclusión de que
www.FreeLibros.com
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
transición a transición b
Columna 1 columna 2 columna 3
(<7 i.<7 i') (quqi') {qi,qí)
(<?2 , q i ) (<73. <?/) (<7 1 . 93 ')
—>®
a •
\<k q3
Figura 2.54
www.FreeLibros.com
LENGUAJES REGULARES 95
a®
a
3
- » ® i— ~—
ü / i b a[ la
• <-
(J
Figura 2.55
-» • -> ®
(7
a, fc>, c
Figura 2.56
www.FreeLibros.com
96 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Figura 2.57
<72 A'
<73 X X
<74 X X X
<75 X X X
<76 X X X X
<77 X X X X X X
<78 X X X X X X
www.FreeLibros.com
LENGUAJES REGULARES 97
Las colecciones de estados no distinguibles son {q\, q¡}, {q2, <?«}. {<y4, q6),
{ } y {<77}. En el AFD reducido que obtenemos reemplazaremos cada colec
ción de estados no distinguibles por un único estado. Por tanto, el AFD reducido
para nuestro ejemplo es el de la Figura 2.58.
1. Obtener los AFD mínimos que correspondan a los AFD de la Figura 2.59.
3. Sea E = {(a, b, c) | a, b, c e {0, 1}} el alfabeto formado por todas las 3-tuplas de
0011
+ 0101
1000
1
se puede interpretar como la cadena 0 sobre X.
V/ \ v0
1. Probar que el lenguaje L\ sobre Z, compuesto por todas las cadenas que
representan sumas binarias “correctas”, es un lenguaje regular.
2. Usar el lema de bombeo (Lema 2.9.1) para probar que el lenguaje L¿ for
mado por todas las cadenas que representan productos binarios correctos
no es un lenguaje regular.
Hay muchas formas de tratar la adición. Cuando realizamos una
suma, generalmente sumamos los pares de dígitos correspondientes y un
valor previo para obtener un dígito resultante y un resto. Consideremos la
suma binaria donde el valor de entrada es un 0 ó un 1. Si el valor previo es
un 0, entonces se obtiene un resto sólo si el par de dígitos son dos unos. Si
www.FreeLibros.com
98 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Figura 2.59
www.FreeLibros.com
LENGUAJES REGULARES 99
inicial (el valor es inicialmente 0). La única diferencia entre este diagrama
y el diagrama de transición de un autómata finito es que en éste la salida se
representa como el resultado de una suma.
Figura 2.60
Por otro lado, muchos lenguajes que son de esta forma son regulares, por
ejemplo, los lenguajes Li = {«A+' | i > 0} pafó k = 0 ,1 ,... Es razonable pregun
tarse bajo qué condiciones es regular un lenguaje de estas características. En
este problema obtendremos un resultado que responderá a dicha pregunta.
www.FreeLibros.com
100 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
LENGUAJES REGULARES 101
L = {a"2|/i> 1)
X= [n2\n > 1 }
/(£ ) = £
f(w a )= f(w )f(a )
donde w e Z’í y a s Zi.
Por ejemplo, sea I i = {a, b] y Z2 = {0, 1}. Se definen f(á ) = {011 }* y
f(b) = {1001, 01101}. Entonces
Entonces
/ “' (L) n a”be" = {a"bcn~ 11n > 1}
www.FreeLibros.com
LENGUAJES REGULARES 103
g ( / " ' (L) n abe*) = g ({d'bc" ~ 11n > 1}) = {a"b" ¡n > 1}
www.FreeLibros.com
Lenguajes independientes
del contexto
GRAMÁTICAS REGULARES
Las expresiones regulares y los autómatas finitos nos proporcionan dos medios
para especificar o definir lenguajes. Las expresiones regulares nos proporcionan
una plantilla o patrón para las cadenas del lenguaje. Todas las cadenas se corres
ponden con un patrón en particular y dichas cadenas serán las únicas que forma
rán dicho lenguaje. Igualmente, un autómata finito especifica un lenguaje como
el conjunto de todas las cadenas que lo hacen pasar del estado inicial a uno de
sus estados de aceptación. También se podría intexpretar un autómata como un
generador de cadenas del lenguaje, según se plantea a continuación. Un símbolo
se genera al recorrer el camino etiquetado con dicho símbolo y que parte del es
tado actual al siguiente. Se empieza con la cadena vacía y se obtiene una cadena
del lenguaje cuando el recorrido llega a un estado de aceptación.
Por ejemplo, se considera el autómata finito dado por el diagrama de tran
sición de la Figura 3.1. Este autómata finito acepta el lenguaje regular
a (a u bv) b. Imaginemos que se comienza en el estado inicial y se atraviesa el
diagrama de alguna forma. Cuando un camino va de un estado a otro, la “salida"
es el símbolo que etiqueta dicho camino. Por tanto se podría obtener la cadena
de salida aa2b pasando por los estados c¡\ - <72 - 1/3 - (¡3 - qj - <75 . Se ve fácilmente
que las cadenas generadas de esta forma serán aceptadas por este autómata fini
to. Es más, cualquier cadena aceptada por este autómata puede ser generada por
este método.
www.FreeLibros.com
106 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
a
n
a
b Figura 3.1
Obsérvese que todas las cadenas del lenguaje precedente estarán formadas
por una a seguida de alguna “parte final” . Si hacemos que E represente la parte
final, lo dicho se puede representar simbólicamente mediante S —>aE. La flecha
—> se puede interpretar como “puede ser” o “se compone de”. La parte final de
una cadena estará formada por una de las dos listas de aes o bes. Por tanto, para
indicar las múltiples posibilidades que hay para E podemos escribir E —»A y
E —> B. Las dos listas de aes y bes se pueden expresar como A —» aA junto con
A —>b para indicar que una cadena de aes va seguida de una b o como B ~ ^b B
junto con B —>b, para indicar que una cadena de bes va seguida de otra b.
En resumen, tendremos las siguientes expresiones
S —^ aE
E -^A
E ^B
A -> b
A —> aA
B ^b
B -^bB
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 107
1. S —» aE
2. E -* A \B
3. A —> ciA | B
4. B -$ b B \b
Definición 3.1.1. Una gramática regular G es una 4-tupla G = (£, N, S, P). donde £ es
un alfabeto, N es una colección de símbolos no terminales, S es un no terminal
llamado símbolo inicial, y P es una colección de reglas de sustitución, llamadas
www.FreeLibros.com
108 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
1 = {a, b}
N = { S ,A }
P :S ^b A
A —^ aaA | b 18
Obsérvese que L (G) contendrá todas las cadenas de la forma ba2nb y ba2".
Es decir, L (G) = b (a2)* (b u e). Se puede demostrar, por inducción sobre n, que
todas las cadenas de la forma ba2"b o ba2" están en L (G) y, por inducción sobre
la longitud de una derivación, se demuestra que L (G) está contenido en
b {a2)* (b u £). (La etaba base es para una derivación de longitud 2).
De la definición se deduce que el lado derecho de una producción es una
cadena de I ’ ( N u £). Obsérvese que £ puede ser el lado derecho de una pro
ducción. En el ejemplo precedente, la producción A —> £ acaba con la generación
de una cadena (al igual que la producción A -> b) ya que se “borra” el no ter
minal A.
Dado que las producciones emparejan no terminales de N con cadenas de
I (/V u £), conviene representarlas como pares ordenados de iVx X* (N u £).
Por tanto, el par (x, y) de N x I* (N u £) representa a la producción x —>y. Las
producciones de P del ejemplo anterior se podrían representar mediante
P = { ( S ,b A ) ,( A ,a a A ) ,( A ,b ) ,( A ,e ) }
3.1.1. Usar las reglas de la Figura 3.1 para derivar ab, ab3, aa b. ¿Es posible derivar
ababl
3.1.2. Supongamos que tenemos las reglas S —>aS\bT y 7" —>aa. Dar una derivación
para abaa, aabaa y aaabaa. Probar como se deriva akba2 para k > \ . ¿Es posible
derivar las cadenas baa, b o aal
3.1.3. Obtener una gramática regular para los siguientes lenguajes:
(a) a*b u a
(b) a*b\jb*a
(c) (a*bUb*a)’
3.1.4. La gramática regular dada por (.
S —^ bA | flfíle
A —»abaS
B —>babS
genera un lenguaje regular. Obtener una expresión regular para este lenguaje.
3.1.5. En nuestra definición de gramáticas regulares se dijo que si en el lado derecho
de una producción hay un no terminal, éste debe estar situado en el extremo de
recho. Esto corresponde a la generación de cadenas de izquierda a derecha. Por
esta razón, una gramática regular también puede llamarse gramática regular
por la derecha. Una gramática regular por la izquierda es aquella cuyas cade
nas son generadas por la derecha, es decir, las producciones son pares de
iV x (N u E ) X*.
(a) Obtener una gramática regular por la izquierda para el lenguaje
{anbaa | n > 0).
(b) Obtener las gramáticas regulares por la derecha y por la izquierda para
(c) Para toda gramática G = (X, N, S, P) que sea regular (por la izquierda o pol
la derecha), se puede definir la inversa de G como G1 = (X, N, S. P'), donde
P '= { (A ,x ') \( A ,x ) e P]
www.FreeLibros.com
110 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
N-Q
I =Z
S =s
P = {(q, ap)\§ (q, a) p} u {{q, e)|<?e F]
q\ ~ ^ a q \\b q 2
q 2 -> aq 3 \ bq 3 1 8
qi aq?, | bq-i
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 111
= 8 (<7», 0/j)
= /? e F
Ahora, puesto que q¡+ i = 8 (<?,•, 0 ;), se obtiene que q¡ -» 0 / g,+ i pertenece a
G y, por tanto, (ya que = <yi)
5 = q\ => 0 | q 2
=> 0 l 0 2 q 3
=> 0] 02 ... On p
=> 01 02 ... On
q\ => 0i qi
=> 0i 02 <73
=> 0 1 02 ... 0« p
=> 01 02 ... 0«
entonces en M tendremos
= 8 (<7h, 0»)
-p g F
\
(ya que 5 = q i). Asi, que w e L (G) implica que w e L (M ), con lo que se tiene
que L (G) c L (M). Entonces se deduce que L (G) = L (M).
www.FreeLibros.com
112 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Q] 02 O,,
9 ------------ > • ------------ > O 9 • * ------------ > •
A B
S —> aB | bA | e
A —> abaS
B —> babS
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 113
Figura 3.3
3.2.1. Construir una gramática regular para el lenguaje regular aceptado por el autó
mata finito de la Figura 3.4.
3.2.2. Construir un AFN para la gramática regular
S-> aS\bB\b
B —^ cC
C —^ üS
www.FreeLibros.com
114 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
S —>abA | B | baB \ e
A -> b S \b
B —^ ciS
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 115
5 —> afi | M
A H> a\aS\bA A
B —> b \b S \a B B
Definición 3.3.1. Una gramática independiente del contexto (GIC) es una 4-tupla
G ^ÍK X ^P l
Por ejemplo, puesto que toda gramática regular es una GIC, se tiene que
todo lenguaje regular es un LIC.jy
Al igual que una gramática regular, una GIC es una forma de probar cómo
se generan cadenas en un lenguaje. Como con las gramáticas regulares, usare
mos la notación => para indicar el acto de generar como opuesto a — el cual es
parte de una regla de producción. Cuando derivamos una cadena, los no termina
les representan la parte de la cadena que todavía no se ha generado. En el caso
de las gramáticas regulares, la parte de la cadena no generada siempre aparece al
final. En las GIC que no son gramáticas regulares, puede haber más de un trozo
no generado y pueden aparecer en cualquier lugar de la cadena. Cuando la deri
vación se completa, todos los trozos no generados habrán sido sustituidos por
cadenas (posiblemente vacías) de símbolos terminales.
Consideremos la GIC dada por *
www.FreeLibros.com
116 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 117
S^A A
A -» AAA \a\bA\Ab
Cuando una cadena se deriva mediante una gramática independiente del contex
to, el símbolo inicial es sustituido por alguna cadena. Los no terminales de esta
cadena son sustituidos uno tras otro por otra cadena, y así sucesivamente, hasta
que se llega a una cadena formada sólo por símbolos terminales. No se puede re
alizar ninguna sustitución más, puesto que no hay no terminales que puedan ser
sustituidos. A veces, es útil realizar un gráfico de la derivación, que indique de
qué manera ha contribuido cada no terminal a formar la cadena final de símbo
los terminales. Tal gráfico tiene forma de árbol y se llama árbol de derivación (o
árbol de análisis).
Un árbol de derivación para una derivación dada se construye creando un
nodo raíz que se etiquetó con el símbolo inicial. El nodo raíz tiene unos nodos
hijos para cada símbolo que aparezca en el lado derecho de la producción usada
para reemplazar el símbolo inicial. Todo nodo etiquetado con un no terminal
también tiene unos nodos hijos etiquetados con los símbolos del lado derecho de
www.FreeLibros.com
118 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
la producción usada para sustituir ese no terminal. Los nodos que no tienen hijos
deben ser etiquetados con símbolos terminales.
Consideremos la gramática independiente del contexto
S-> A B
A a A \ a
B -> b B \b
b Figura 3.5
Para esta cadena y esta gramática, todas las derivaciones de aabbb tienen el
mismo árbol de derivación. Sin embargo, no tiene porque cumplirse siempre.
Para verlo, considérese esta gramática
*
S->SbS\ScS\a
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 119
I (
a a
a a
Obsérvese que los dos árboles son distintos, aunque las cadenas producidas
son la misma. (La cadena derivada corresponde a los nodos hoja y se llama pro
ducto del árbol de derivación).
Una gramática se dice que es ambigua si hay dos o más árboles de deri
vación distintos para la misma cadena. Una gramática en la cual, para toda cade
na w, todas las derivaciones de w tienen el mismo árbol de derivación, es no am
bigua.
La ambigüedad puede ser un problema para ciertos lenguajes en los que su
significado depende, en parte, de su estructura, como ocurre con los lenguajes
naturales y los lenguajes de programación. Si la estructura de un lenguaje tiene
más de una descomposición y si la construcción parcial determina su significa
do, entonces el significado es ambiguo. Consideremos la sentencia “Juan vio a
un hombre con un telescopio”. El significado de esta sentenciares ambiguo debi
do a que “con un telescopio” puede describir al hombre que vio Juan o a la téc
nica que Juan empleó para ver al hombre. *
Consideremos otro ejemplo de ambigüedad que obscurece el significado de
las expresiones. Sea la siguiente gramática de asignaciones de expresiones:
www.FreeLibros.com
120 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
A ^I]= E
Ia _ \b \c
e -* e ± e \e * e \W _ \i
A A
b I I I I a
c a b e
Figura 3.6
es ambigua porque tiene dos árboles de derivación para la cadena a. Una gramá
tica equivalente que no es ambigua es
S —^ ci
L - {alb->ck | i - j o j = k}
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 121
S —>SbS\ScS\ a
es una derivación por la derecha de la cadena dada. Obsérvese que las dos deri
vaciones tienen el mismo árbol de derivación:
a a
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 123
Nos gustaría establecer las restricciones necesarias para que las produccio
nes se formen de manera que el árbol de derivación resultante no sea necesaria
mente complejo o inútilmente sencillo. A la vez, no se pretende constreñir la
formación de producciones hasta el punto de que no se pueda generar ningún
lenguaje independiente del contexto a partir de los conjuntos de producciones
que cumplan las restricciones. Pretendemos encontrar un modelo formal están
dar (o una forma normal) para las producciones.
Como primer paso en el desarrollo del modelo, necesitamos limpiar las gra
máticas para eliminar las producciones y símbolos inútiles. Consideremos la
gramática independiente del contexto del ejemplo siguiente:
Ejemplo 3.5.1
S ^A a \B \D
B -> b
A —» aA\bA\B
C —>abel
Obsérvese que C nunca formará parte de una derivación que parta del sím
bolo inicial, es decir, no existe S => aC(3 para toda cadena a y p de (WuZ)*.
Por consiguiente, el símbolo C y la producción
C ¡U abd
Por tanto, hemos identificado muchos aspectos en los que las gramáticas in
dependientes del contexto pueden ser depuradas. Cualquiera de e,sos problemas
pueden ser eliminados sin afectar a la capacidad de generación de la gramática.
Primero se eliminarán los no terminales que no deriven cadenas de terminales,
tales como D en el Ejemplo 3.5.1.
Sea G = (N, Z, S, P) una gramática independiente del contexto. Transforma
remos G en G' = ( N \ Z, S, P') de forma que L (G) = L (G') y, para todo A e N ',
www.FreeLibros.com
124 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
se obtenga que A ==> w para algún w e 2T. Para realizarlo, construiremos iterati
vamente el nuevo conjunto de no terminales N ' y el nuevo conjunto de produc
ciones P' como sigue:
Algoritmo 3.5.1.
1. Inicializar N ' con todos los no terminales A para los que A —> w, es una
producción de G, con w e X*.
2. Inicializar P' con todas las producciones A —> vv para las cuales A e N '
y w e 1 *.
3. Repetir
Añadir a N ' todos los no terminales A para los cuales A —» vv, para
algún vv e (/V' u £)* que sea una producción de P y añadirla a P'.
Obsérvese que el bucle del paso 3 termina, ya que N y P son finitos. Esen
cialmente, lo que estamos haciendo es recorrer hacia arriba todos los posibles ár
boles de análisis a partir de las cadenas de terminales, anotando los no termina
les (y las producciones) que se encuentren. Todo no terminal (y producción) que
no aparezca en N ', no contribuirá a formar una subcadena de cualquier cadena
“final’" de terminales que sea generada por la gramática. Por tanto, su elimina
ción no altera el lenguaje generado.
Por ejemplo, en la gramática del Ejemplo 3.5.1, esperábamos eliminar el no
terminal D. Después de aplicar el Algoritmo 3.5.1 a esta gramática, obtendremos
la siguiente:
iS —^ Aci ¡B
A ^ a A \b A \B
B —>b
C —> abd
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 125
se obtendrá la gramática
S —> ciA | £
A -> aA 18
Algoritmo 3.5.2.
www.FreeLibros.com
126 TEORÍA DÉ AUTÓMATAS Y LENGUAJES FORMALES
S -> A a \B
' A —> a A | bA | B
B -> b
S —>AB | a
A —^ £7
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 127
Algoritmo 3.5.3.
1. Inicializar con todos los no terminales A para los cuales existe una
producción e, A —» e.
2. Repetir:
Si B —> w para algún w e ( J V u I ) " y todos los símbolos de w están
en íAÍ, añadir B a
hasta que no se añadan más no terminales a .
Por ahora, sólo nos ocuparemos de las gramáticas independientes del con
texto G = (N , Z, S, P), para las que L (G) no contiene a e. Una vez que han sido
identificados los no terminales anulables, se modifican las reglas de producción
con el fin de poder eliminar las producciones e. Esto se realiza sustituyendo pro
ducciones de la forma B ^ > X \ X 2 ... X„ por las producciones que se formen al
eliminar los subconjuntos de X¡ que son anulables. Se debe tener cuidado en no
incluir B -» e, incluso si todos los X¡ son anulables.
Se crea el nuevo conjunto de producciones P' como sigue:
B ^ > X x\X 2 \X x X 2
*
Consideremos la gramática G:
*
S —> aA
A —> aA I e
www.FreeLibros.com
128 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
5 —» aA | a
A aA | a
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 129
A B
B —> C \ w\
C D
D —> W'2
Entonces se tiene que A => B => C => D. Obsérvese que las producciones
A —>vv1 1W2 permiten que de A se deriven las mismas cadenas que se derivaban
con las cinco producciones originales. Las nuevas producciones se obtienen a
partir de las producciones no unitarias del conjunto de producciones original,
creando una producción A —» y para toda producción no unitaria X —» y, donde
X e { B ,C ,D } . A continuación presentaremos esta técnica de una forma más
precisa.
Primero, para A e N se define
www.FreeLibros.com
130 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
S —> b|ab
A -^b \a b
B —>ab\b
C -* b \a b
Esta gramática puede simplificarse más, por medio de las otras técnicas.
En lo visto anteriormente, hemos realizado la eliminación de producciones
en gramáticas independientes del contexto de una forma bastante incómoda.
Como última etapa en la simplificación de gramáticas independientes del con
texto, presentaremos un modelo o forma normal para las producciones. Se dice
que una gramática independiente del contexto está en forma normal de Chomsky
si no contiene producciones e y si todas las producciones son de la forma A —» a,
para a e Z, o de la forma A —» BC, donde B y C son no terminales. Es decir, en
la forma normal de Chomsky el lado derecho de cada producción contiene un
único símbolo terminal o una par de no terminales. Obsérvese que, para una gra
mática en forma normal de Chomsky, el árbol de derivación para cualquier deri
vación está bastante bien construido ya que, excepto en las hojas, ¡el árbol es bi
nario!
Si G es una gramática independiente del contexto y 8 (G), G puede ser
transformada en una gramática en forma normal de Chomsky. Para ello, primero
se eliminan todas las producciones 8 , los símbolos inútiles y las producciones
unitarias de G. Obsérvese que, una vez que se ha realizado lo anterior, si A —> w
es una producción de G, se puede asegurar que | w\ > 1. Es más, si | vr| - ], en
tonces w es un símbolo terminal de Z, puesto que no hay producciones unitarias.
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 131
Por otro lado, si |h>| > 1, entonces w puede contener tanto terminales como no
terminales. Ahora transformaremos G convirtiendo tales w en cadenas que con
tengan sólo no terminales.
Supongamos que tenemos una producción de la forma A —> w, donde
w = X\ X 2 ... Xn. Si X¡ es un símbolo terminal, llamado a , sustituiremos X¡ por
un nuevo no terminal C0 y añadiremos la producción C„ —» a. Una vez que se
aplica a G está conversión, todas las producciones son de la forma A —> w, don
de vv es un símbolo terminal o una cadena formada sólo por no terminales.
La última etapa para la transformación de G en forma normal de Chomsky,
consiste en eliminar las cadenas con más de dos no terminales que se encuentren
en el lado derecho de una producción. Para ello, si A —> B\ B 2 ... Bn es una pro
ducción con n > 2 , la reemplazaremos por n - 1 producciones
A -> B\ D\
D\ —>B 2 D 2
D„~ 2 —> Bn - 1 Bn
S - > b A \ aB
A —^ bAA j ciS \ a
B ^ > a B B \b S \b
S - > C bA \ C a B
A -» Ch A A \C a S \a
B -> Ca B B \C h S \b
Ca —^ o,
Cb —> b
www.FreeLibros.com
132 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
En esta versión, el lado derecho de todas las producciones está formado por
un único símbolo terminal o por una cadena de dos o más no terminales. Des
pués de la última conversión, la forma normal de Chomsky de la gramática será
S - > C hA \ C aA
A —> Cfr D l | Ca 5 1Cl
D \-* A A
B —> Ce, D'i | C¡) S | b
D2 —> BB
(a) S aAb\cEB\CE
A —> clBE\eeC
B ^ ff\D
C —) gFB | ae
D -^h
(b) S -> aB
/I ->bcCCC\dA
B —» e
C —>fA
D —» Dgh
S —^ ci | oA | B j C
A■—>ciB!£ ».
B —>Aci
C —» bCD
D -» ccc
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 133
5 —»aAb
A —» ccC
B —> dd\D
C —^ cíe
O —» /
S a\aA\B
A aB\e
B —»Aa
D —» ¿Wd
3.5.5. Eliminar los símbolos inútiles de la siguiente gramática por medio de los Algo
ritmos 3.5.1 y 3.5.2:
S->A\AA\AAA
A —> A5a| ACa | a
B ABa\Ab\z
C —» Cab | CC
£) —» C£>| C<¿| CEa
E -> b
S -» aA | bA | a
A -» aA | bAb 18
S —>ABaC
A AB
B —>b ¡£*
C-H>Z?|e
n ^d
www.FreeLibros.com
134 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
S -» aA [bA | a
A -» aA | bAb I£
S —>AB
A aA IabB \ aCa
B^>bA\BB\z
C —> £
D -^dB \B C B \
S —^ ü | ciA | B
A —>üB I£
B —^ Aci
S -> C
/i —^ AZ?
fí -» ¿le
C -> Z)le
D -> d
S —>atí\aaB
A -» £
B —> bA
B —> e
3.5.13. El lenguaje asociado con la siguiente gramática independiente del contexto con
tiene e. Eliminar las producciones e excepto S £.
S —^ AB \ aB Ie
A —>BBB | aB | a Ie
B —^ a | úA t £
%
3.5.14. Realizar una algoritmo para construir Unitario (A) siendo A un no terminal de
una GIC.
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 135
5 CBa\D
/I bbC
B Se |ddd
C e A \f\C
D E\SABC
E —»gh
S —>Aa|Ba | B
A -> Afile
B -* a A \B B \z
(a) S->AB\CA
A -> a
B —> BC\AB
C —^ ciB | b
(b) S->aAb\cHB\CH
A —» dBH\eeC
B -* ff\D
C —» gFB | ah
D —> i
E —*jF
F —> dcGGG \ cF
G ^kF
H —> Hlm
3.5.18. Probar que, al realizar la conversión a forma normal de Chomsky, se puede ele
var al cuadrado el número de las producciones de una gramática independiente
del contexto.
www.FreeLibros.com
136 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
LENGUAJES. INDEPENDIENTES DEL CONTEXTO 137
Lem a 3.6.1. Sea L un lenguaje independiente del contexto que no contiene e. Entonces
existe un entero k para el cual, si z e L y | z | >k, entonces z se puede volver a
escribir como z = uvw xy con las propiedades siguientes:
1 . | vwx | <k.
2. Al menos o v o x no es 8 .
3. uv'wx'y e L para todo i > 0.
www.FreeLibros.com
138 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
y se puede asegurar que uv'wx'y e L para todo / > 0 , tal que | vx | > 1 y
| vwx | < k. Obsérvese que, si v = arbs para algún r y s, entonces V = (arbs)‘ y, por
tanto, u v lw ¿y tiene bes antes de aes con lo que no puede pertenecer a L. Defor
ma similar, si x = arbs, tampoco pueden ser bombeados. Por lo que debemos ob
tener que
v-a r y x~as
o
v = br y x-b 5
o también
v = a' y x-b s
u v 2wx2y = ak +r+sbk~
u v 2wx2y = akbk~+r+s
En ambos casos, cuando al menos uno de los dos r o s son mayores o igua
les a 1 (como se requiere en el lema de bombeo), la cadena resultante no puede
pertenecer a L. En el tercer caso, se obtendrá
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 139
www.FreeLibros.com
140 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Mi = {A \A —>w¡\} »
♦
Es decir, N¡\ es el conjunto de todos los no terminales que producen el
/-ésimo símbolo de x
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 141
a. Inicializar N ¡j = 0.
Ejemplo 3.6.1
A —^ 3 A jci
B CC| b
C ^A B \a
Para la cadena x= bbab, se tiene la siguiente tabla donde cada casilla rep
resenta al conjunto N¡j:
j~ 1 7= 2 7=3 /= 4
b j= 1 B 0 A s ,c
b j -2 B A, S S, C
a 7 =3 A, C s,c •V
B
II
Ya que S está en N i4, x se genera a partir del símbolo inicial 5. Por tanto, x
está en el lenguaje generado por esta gramática.
-
www.FreeLibros.com
142 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Supongamos que Gy = (Ni, Xj, Si, P\) y G 2 = (iV2 , 1 2 , S2 , P 2) son dos gra
máticas independientes del contexto para las cuales N\ y N 2 son disjuntos. Defi
niremos la gramática independiente del contexto G = (N , X, S, P), donde
N = N i u N 2 u {S}
Z = Zi u l 2
/> = />, u /> 2 u { ( S ,S ,) , (S, S2) }
S => Si =$ vv
o
S =$ S2 ==> w
Demostración. Sea L - L (G) para G = (N, X, S, P). Constituiremos una gramática inde
pendiente del contexto G' = (N \ I , S', P') que genere L*, de forma que
N' - N u ¡S', T), donde S' y T son nuevos símbolos, y añadiremos las produc
ciones S' —» S T I e y T —> S T I e. Obsérvese que si w¡, W2, ..., wn e L (G), se tiene
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 143
S '= * S T = * S S T
=4S . . . S T
( h térm in o s)
=> S ... S e
==> W l W 2 . . . w n
A -» aAI £
C —^ bCc I£
S^A C
A —>aAb\e
C —^ cCl £
y, por tanto, son lenguajes independientes del contexto. Pero se tiene que
L - L \ n L 2 , y con lo que, la intersección de lenguajes independientes del con
texto no es necesariamente un lenguaje independiente del contexto.”
Además, los lenguajes independientes del contexto no son cerrados con res
pecto a la complementación. Si denotamos Z* - L¡ mediante L. entonces
www.FreeLibros.com
144 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
3.6.1. Probar que cada uno de los siguientes lenguajes no son independientes del con
texto.
(a) {a‘b'c'\ i > 1}
(b) {a‘b'cj \j> i}
(c) {a‘b^ck\ i < j < k ]
(d) {a'| / es primo}
(e) {w e [a, ¿>, c}*| w tiene el mismo número de aes que de bes y ces }
(f) {a"b"c'"\n < m < 2n)
(g) {ww| w e {a, b }*}.
3.6.2. Determinar si el lenguaje generado por
S —>ciciA ¡B
BaA\b
A —> ríS 16 1£
es finito o infinito.
3.6.3. Determinar si bba, bab y babba están en L (G) correspondiente a la gramática G
del Ejemplo 3.6.1, usando el algoritmo de CYK.
3.6.4. Sea G = (N, X, S, P) una G1C. Al igual que en la demostración del Teorema
3.6.4,construir G’ - (Ar . X. S, P'). Demostrar que L (G’) c V\
3.6.5. Demostrar el Teorema 3.6.5.
AUTÓMATA DE PILA
Hemos visto que las gramáticas independientes del contexto amplían la capaci
dad para especificar lenguajes al incluir algunos lenguajes que no son reconoci
dos por un autómata finito. En esta sección consideraremos un autómata que
será capaz de reconocer todo lenguaje independiente del contexto.
Intuitivamente, el problema que se plantea con los autómatas finitos es que
sólo tienen capacidad para una “memoria” finita. Lenguajes independientes del
contexto tan sencillos como {anb"\n > 0} necesitan guardar gran cantidad de in-
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 145
formación; se debe verificar no solamente que todas las aes preceden a las bes,
sino que además se tienen que contar las aes. Puesto que el número de aes es arbi
trario, necesitamos establecer una limitación sobre el número de aes que se pueden
contar.
El lenguaje independiente del contexto {wcw'^we { a ,b ,c } } necesita algo
mas que una capacidad sin límites para contar los símbolos. Además se deben guar
dar los símbolos de la cadena w para compararlos con los símbolos de la cadena w'.
En esta sección definiremos un autómata que cuenta con un mecanismo que
permite almacenamiento ilimitado y opera como una pila. Este autómata se lla
ma autómata de pTícL)En la siguiente sección, se estudiará la conexión que existe
entre los autómatas ée pila y los lenguajes independientes del contexto.
<Qin autómata de pila se comporta de forma similar a como lo hacen los autó
matas finitós/del Capítulo 2. En todo momento se encuentran en un estado y el
cambio de estado depende del estado actual y de una información adicional. En
el caso de los autómatas finitos del Capítulo 2, la “información adicional” con
siste en el símbolo de entrada actual. En el caso de los autómatas de pila, se in
cluyen el símbolo de entrada actual y el símbolo que está en ese momento en la
cima de la pila. Además de cambiar de estado, el autómata de pila cambia, tam
bién, la cima de la pila.
www.FreeLibros.com
146 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
AC 2 X (E U {£}) X T X <2 X r*
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 147
Ejemplo 3.7.1
2 = k/!-<?2 }
2 = [a,b]
r = {A, B, Z}
s = q\
z =Z
F —{<?2 }
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 149
A (q u zrZ) = {(q2,Z)}
A (qu a ,Z ) = { ( q u AZ)} i
A (qu b ,Z ) = {(qi,BZ)};.
A (qu a, A) = {{q\,AA)}
A (q\, b, A) = {q\, e)}
• A (?i, a, B) ={(?,,£)} ■
A (qu b,B )= {(qh BB)}
Ejemplo 3.7.2
Podemos hacer uso del hecho de que los símbolos pueden ser recuperados
de la pila en orden inverso a como fueron introducidos. Consideremos el len
guaje L = {wcw11w e {a, b]*}. Un ADPND que acepta L debería introducir los
caracteres de entrada en la pila hasta que se encuentra una c y, entonces, compa
ra los caracteres de la entrada con la cima de la pila, desapilando la pila si con-
cuerdan. Un ADPND M para el mismo puede ser dado mediante
www.FreeLibros.com
150 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
P2
y A dado por
A («. z)
q\ {(<?2,¿)}
qi U<72,z)}
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 151
pila a compararlos y desapilarlos. Usar el ADPND del Ejemplo 3.7.2 como pun
to de partida y construir un ADPND que acepte L añadiendo o eliminando las
transiciones apropiadas.
3.7.5. Obtener los ADPND para los siguientes lenguajes:
(a) [anb2n\n> 0 }
(b) [anbmcn+m\ n >0 y m > 0 }
(c) {anb"'\n <m<3n}
(d) {we {a,b}”\w contiene una a más que bes]
(e) {a"bm\ n >0 y m * n )
(f) {w[C\V2 1 W|, W2 s {a,b}* y w¡ ^ wj}
3.7.6. ¿Qué lenguaje será aceptado por el M dado a continuación
Q= {quq 2, qi)
Z = {a,b}
F = E u {z}, donde z es el símbolo inicial de la pila
s-q \
F = {q3}
www.FreeLibros.com
152 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Estas acciones imitan una derivación por la izquierda para la cadena de en
trada. Si se agota la cadena de entrada y en la cima de la pila se encuentra el
símbolo inicial de la pila, aceptaremos la cadena puesto que es posible la deriva
ción de la misma. Obsérvese que el no determinismo se presenta en la etapa 1
cuando se elige el lado derecho de alguna producción para que sea introducido
en la pila.
Para definir dicho autómata de pila no determinista M, sean
Q = { q \,q 7 ,q 2 )
F = AíuZu{z¡, donde z es un símbolo inicial de la pila
(y es distinto de todos los símbolos de N u 2 )
F = {q i)
s = q\
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 153
Ejemplo 3.8.1
S —» aSa|bSb|c.
www.FreeLibros.com
154 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
h (<72, e, z)
1- (<73, e, z)
Es decir, el ADPND acepta la cadena vv - a\az ... a„. Por tanto, se deduce el
siguiente teorema:
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 155
y A ( q , a , A ) = {c \,c 2,...,c n}
www.FreeLibros.com
156 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Ejemplo 3.8.2
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 157
cía. Además, todas las transiciones son de la forma requerida. En una derivación
de la gramática asociada, tendremos como símbolo inicial [q\zq-i] y las transi
ciones 3,4, 5 y 6 se traducen fácilmente como las siguientes producciones:
[q\Aq2] -> b
lqiAq2) - > ble
[qizq-i] - » e
www.FreeLibros.com
158 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
ción. Por tanto, dichos símbolos nunca podrán aparecer en una derivación de una
cadena de terminales. A pesar de haber introducido una complejidad no desea
ble, esta técnica de construcción se puede usar para cualquier ADPND cuyas re
glas de transición satisfacen las condiciones. Se puede aplicar las técnicas de
simplificación vistas en la Sección 3.5 a la gramática resultante, con el fin de eli
minar las partes inútiles. Obsérvese que, de la forma de construir una gramática a
partir de un ADPND que satisfaga las condiciones dadas, se obtiene que
por medio de las operaciones que realiza un autómata de pila, entonces en la gra
mática resultante se tendrá
[q¡ Acjj | u
entonces A puede ser sustituido por BC en la pila cuando se lea a y se pasará del
estado q¡ al estado qj.
Por otro lado, si [q¡ Aq¡ ] => a es una derivación con un único paso, entonces
A (q¡ , a, A) contiene (q¡ , e), con lo que A podrá ser desapilado al consumirse la
cadena de entrada a. Por tanto, si [q¡ Aq¡ ] => u. la secuencia de cadenas de termi
nales y no terminales que forman la derivación se corresponde con la secuencia
de movimientos que realiza un ADPND para el cual (q¡ , uv, Ax) h (c¡j, v, x). Por
tanto, cualquier cadena de terminales generada por la gramática es aceptada por
el ADPND, y viceversa. Enunciaremos el siguiente teorema:
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 159
Demostración. Sea M\ = (£>i, Zi, T, si, z, F\, Ai) un ADPND que acepta el lenguaje
L\. Sea M 2 = (Q2, Z 2 , S2, F2, 8 ) un autómata finito determinista que acepta el len
guaje regular L 2. Construiremos un ADPND que acepte L\ n L 2 mediante la
combinación de M\ y M 2. Este ADPND simulará paralelamente las acciones de
Mi y M 2 y aceptará una cadena cuando y sólo cuando M\ y M 2 acepten una. De
finiremos el ADPND M = (Q, Z, T, s, z, F, A) como sigue:
Q = Qp\ x Q2
S = (S\,S2)
F = F\ x F 2
__ . Z=ZiuZ 2
www.FreeLibros.com
160 t e o r í a d e a u tó m a ta s y le n g u a je s f o r m a le s
3.8.1. Obtener una secuencia de descripciones instantáneas para el ADPND del Ejem
plo 3.8.1, que acepte la cadena babebab. ¿En qué punto fallaría el intento de
aceptar la cadena abcabl
3.8.2. Obtener un ADPND que acepte el lenguaje generado por la siguiente gramática
independiente del contexto:
S —) ciAA
A —> bS\aS\a
3.8.3. Obtener un ADPND que acepte el lenguaje generado por la gramática inde
pendiente del contexto
S —> aSb | aSbb Ie
3.8.4. Construir una ADPND que acepte el lenguaje generado por la gramática inde
pendiente del contexto
S —->aABB | aAA
A —^ aBB1£
B bBB | A
3.8.5. Demostrar cómo se convierte un ADPND arbitrario en uno para el cual todas
las transiciones son de la forma
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 161
3.8.6. Obtener una derivación de a3b3 mediante la gramática del Ejemplo 3.8.2.
3.8.8. Obtener una gramática independiente del contexto que genere el mismo lengua
je que el ADPND M = (<2, E, T, s, z, F, A), donde Q= {q\,q2}, 2 = {a, b],
T = {a,z}, s = q\, F= {q2} y A dado mediante
A (q u a, z)= {(tfi.az)}
A ( q u b, a)= {(q¡,aa)}
A (<71 , a, d)={(q 2,e)}
3.8.9. Obtener una grámatica independiente del contexto para el lenguaje aceptado
por el ADPND M = (Q, E, T, s, z, F, A), donde Q = {q¡, q2, 9 3 }, Z= {a,b},
T = {A, z}, Z es el símbolo inicial de la pila, F = {<73 }, y A dado por
A (q¡, a, z) = {{qy,Az)}
A (qi,a,A )= {(<?], A)}
A b, A) = {(<72»e)}
A(q2, e, z)= {(43 , e)}
Obsérvese que este ADPND no satisface las dos condiciones requeridas para la
construcción de una GIC.
3.8.10. Sea M = {Q, I , T, s, z, F, A), donde Q= [q\, q2, q^q*}, E = {a, b}, T = {X, z},
s = q\,z es el símbolo inicial de la pila, F = 0 (es decir, este ADPND sólo acepta
cadenas cuando la pila se vacía), y A dado por
Después de realizar los cambios necesarios para que este ADPND satisfaga las
condiciones requeridas para construir una gramática independiente del contexto,
obtener una gramática independiente del contexto para el lenguaje aceptado por
este autómata.
www.FreeLibros.com
162 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
3.8.11. Obtener una gramática independiente del contexto que genere el lenguaje acep
tado por el ADPND
M =(Q, £, T, s, z, F, A) donde
Q={ q u q i )
Z={ a, b} . .
T = {A, z}, y z es el símbolo inicial de la pila
s = qi
F = \ qi } '
La forma normal de Chomsky es una de las formas normales que se usan para
las gramáticas independientes del contexto. Otra forma normal que tiene una
gran importancia teórica y práctica es la forma normal de Greibach. En la forma
norma de Greibach, se restringe la posición en la que pueden aparecer los termi
nales y los no terminales. Empezaremos presentando"dos resultados usuales.
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 163
www.FreeLibros.com
164 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
{ pi , p 2 , { a i , a 2 ,...,a„}* . □
5 —>5a|S¿>|c/4
A —^ Aa | a I£
6 —^ cA j cAZ\
Z\ —> a | b | aZ\ | ¿>Zi
A —> ci | C1Z 2 1£ | Z2
Z2 -» a | C1Z 2
%
Definición 3.9.3. Una gramática independiente del contexto está en forma normal de
Greibach (FNG) si todas las producciones son de la forma A —>aa, donde a es
un símbolo terminal y a e ( l u N)*.
Obsérvese que esta formal normal requiere que toda producción tenga un
símbolo del alfabeto como primer símbolo del lado derecho de las producciones.
Por tanto una gramática en FNG no puede tener producciones recursivas por la
izquierda. Es más, puesto que cada producción requiere que haya al menos un
símbolo del alfabeto, una gramática independiente del contexto en FNG sólo
puede generar lenguajes no vacíos que no contengan e.
Es posible construir una gramática independiente del contexto en forma
normal de Greibach,para cualquier gramática independiente del contexto que no
contenga e. El algoritmo para realizar esto consiste en diferentes etapas.
Supongamos que L es un lenguaje independiente del contexto no vacío que
no contiene e. Primero, sea G = (£, N, S, P) una gramática independiente del
contexto en forma normal de Chomsky que genera L. Supongamos que
N = {A\, A 2, ..., <4,ih donde Ai =S. Entonces modificamos las producciones de
forma que si A r —>A^a es una producción, entonces r < s . Supongamos que he
mos modificado las producciones de forma que para 1 < i < k, si A, —>Aj a, en
tonces i <j. Demostraremos como modificar las producciones para Ak+\.
Si A k + 1 —> Aj a es una producción con k + 1 >j, se genera un nuevo conjun
to de producciones para reemplazar las Ay que aparecen en el lado derecho de las
producciones, por el lado derecho de todas las producciones de la forma Aj —>(3,
como se vio en el Teorema 3.9.1. Cuando se realicen dichas sustituciones, se ob
tendrán producciones de la forma Ak + 1 —>Ar a. Puede ocurrir que k + \ < r o
que r < k + 1. Si k + 1 < r, se tendrá una producción de la forma deseada. Si
r < k + 1, deberemos repetir el proceso. Puesto que solamente hay k índices me
nores que k + 1 , después de repetir el proceso k - 1 veces, se habrán eliminado
todas las producciones de la forma Ak + 1 —>A r a para las cuales r < k + 1. Por
tanto, las producciones que quedarán, serán todas de la forma Ak + 1 —>A r a , con
k + 1 < r. Obsérvese que las producciones para las cuales k + i - r son produc
ciones recursivas por la izquierda que pueden ser eliminadas mediante el Teore
ma 3.9.2 introduciendo un no terminal nuevo Z* + j.
Repetiremos el proceso para cada uno de los no terminales originales desde
Ai hasta A„. Por tanto sólo se tendrán producciones de las tres formas siguientes:
2 . Ak -» aa, para a e £
www.FreeLibros.com
166 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
Obsérvese que, puesto que An es el no terminal con mayor índice, todas las
producciones para A n deben ser del tipo 2. Es decir, en el extremo izquierdo del
lado derecho de una producción para A„, debe haber un símbolo terminal. Tam
bién, toda producción para A„_ i debe tener en el extremo izquierdo del lado de
recho, un terminal o A n. Si tiene A„, puede ser reemplazado por el lado derecho
de una de sus producciones como se hace en el Teorema 3.9.1. Dichas produc
ciones comenzarán con un terminal. Luego procederemos a transformar las pro
ducciones correspondientes a A n- 2, A„ _ 3 y así sucesivamente, hasta que el lado
derecho de todas las producciones correspondientes a los no terminales origina
les comiencen con un terminal.
Finalmente, consideraremos las producciones para Z\, Z% ..., Z„. Puesto que
inicialmente teníamos una gramática independiente del contexto en forma nor
mal de Chomsky y sólo hemos aplicado los Teoremas 3.9.1 y 3.9.2, ninguna de
las producciones Z, —> a tendrá otro Z¡ en el extremo izquierdo de su lado dere
cho. Por tanto, todas la producciones correspondientes a los Z/ tendrán termina
les o A¡ al principio de su lado derecho. Para los que tengan al principio del lado
derecho alguna A¿, aplicaremos una vez más, el Teorema 3.9.1 y todas las pro
ducciones resultantes estarán en la forma deseada.
La transformación vista nos da pie para enunciar el siguiente teorema:
T eorem a 3.9.4. Todo lenguaje independiente del contexto no vacío, que no contiene la
palabra vacía e, se puede generar mediante una gramática independiente del con
texto G = (¿V, £, S, P) en la cual todas las producciones son de la forma A —> ciw
para A e N , a e ' L y w e N * .
Ai —> A 2 A 21 ci
A 2 —>A 1 A 2 1 b
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 167
Ai - » a A 2 A 2 \ a A 2 Z A 2 \ b A 2 \ b Z A 2 \a
A 2 —>a A 2 \ a A 2 Z\ b\ b Z
Z —> a A 2 A 2 \ a A 2 Z A 2 \ b A 2 \ b Z A 2 \ a A 2 A 2 Z
\a A 2 Z A 2 Z \ b A 2Z \ b Z A 2 Z
C orolario 3.9.5. Todo lenguaje L independiente del contexto y no vacío, que r.o con
tenga e, puede ser generado mediante una gramática independiente del contexto
en forma normal de Greibach.
Una definición alternativa para la FNG requiere que todas las producciones
sean de la forma A —>aw para A e N, a e E y w e N*. Las dos definiciones de
FNG son equivalentes (Ejercicio 3.9.5).
S —>Sa | aAc | c
-4 —>Ab\ba
www.FreeLibros.com
168 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
PROBLEMAS
3.1. Consideremos el lenguaje L = {a'¿'c'|¿> l} del Ejercicio 3.6.1 (a). Este lenguaje
no es un lenguaje independiente del contexto puesto que, para un k dado, pode
mos elegir z = akbkck y demostrar que ninguna elección posible de las subcade-
nas u, v, w, x e y satisface el lema de bombeo (3.6.1). Este lenguaje presenta
uno de los mayores inconvenientes que tiene el lema de bombeo: no hay forma
de decir qué parte de la cadena puede considerarse como la parte uwx. Esta in-
certidumbre nos lleva a considerar una variedad de subcasos que pueden resul
tar tediosos, a pesar de usar una técnica efectiva. En este primer ejercicio trata
remos de presentar una versión más fuerte del lema de bombeo que nos permita
controlar el enfoque que se dé a las partes de la cadena que son bombeadas.
Sea G = (N, L, 5, P) una gramática independiente del contexto en forma
normal de Chomsky con ¡/Vj = k, y sea n = 2k + 1. Supongamos que z £ ¿ (G)
con |z¡ > n, y que “marcamos” al menos n posiciones de z (es decir, queremos
distinguir las partes marcadas de las que no lo están). Queremos encontrar un
camino en el árbol de derivación para w, análogo al visto en el lema de bombeo.
Construiremos el camino partiendo de la raíz y descendiendo por la izquierda o
por la derecha. Descenderemos por el subárbol izquierdo o por el subárbol dere
cho para determinar que subárbol genera el mayor número de posiciones de z
que están marcadas. El camino resultante se extiende desde la raíz hasta una de
las posiciones marcadas.
Obsérvese que cualquiera de los nodos del árbol de análisis (y que están
presentes en el camino que hemos encontrado), tienen cero, uno o dos hijos, y
cada uno de los hijos es, a su vez, raíz de un subárbol que puede generar o no
posiciones marcadas. Si un nodo del árbol tiene dos hijos que son raíz, de subár-
boles que generan posiciones marcadas, Se llamará punto de rama.
1. Probar que, para cada punto de rama presente en el camino que hemos
construido, tenemos al menos la mitad de descendientes marcados que para
el punto de rama anterior.
2. Probar que el camino construido contiene al menos k + 1 puntos de rama.
El resultado visto es un resultado más débil que el que se debe a W. Og-
den. Nos referiremos a él como “lema de Qgden”.
Lema de Ogden. Sea L un lenguaje independiente del contexto. Entonces
existe una constante n para la cual, si z e L y tenemos al menos ;? posicio
nes de z marcadas, podemos escribir que z = uvwxy, de forma que
www.FreeLibros.com
LENGUAJES INDEPENDIENTES DEL CONTEXTO 169
(a W 'l i > 1 }
{a‘bjckd l\i = 0 o j = k = l}
{a'bjck\i&j, j * k e i ^ k}l
{a‘bjck\ i * j y j * k ) l
3. Sea L = {ww\w e [a, ¿>}*}. En el Ejercicio 3.6.1 (g) se propuso que se demos
trará que L no era independiente del contexto. Demostrar que L, el complemen
to de L en {a, b}*, es independiente del contexto. Indicación: Obsérvese que
cualquier cadena de longitud impar sobre {a, b}*, automáticamente pertenece a
L. Por otro lado, cualquier cadena de longitud par de L se puede escribir como
ii\X\V\UiX2V7, donde xi y x%están en {a, b}, x \ * X 2 y |mi| = | « 2 1 y k i l = IV21 -
Considérese la unión de dos lenguajes independientes del contexto, uno de los
cuales contenga sólo las cadenas de longitud impar sobre {a, b}’ y el otro con
tenga las cadenas de la forma U\X\V\U2X2Vz.
www.FreeLibros.com
170 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
3.4. Un tipo de autómata similar al ADPND, es- el autómata de pila con dos pilas y
es una 7-tupIa M = (Q, Z, T, A, s, F, z). En éste, Q, Z, T, s y F son los mismos
que en los ADPND, pero la relación de transición A es de la forma
A c Q x f Z u {e})xrxrx<2 x r * x r*
A (q, a, A) ={ (p, w) }
A (q, e, A)={(p\ w' )}
Obsérvese que este ADP tiene que elegir cómo comportarse una vez que se
encuentra en el estado q. Por tanto, incluso si todos los conjuntos A (q¡, o, t)
contienen un único elemento, puede seguir habiendo no determinismo. Defini
mos un autómata de pila determinista (ADPD) como un ADP en el cual no hay
ninguna configuración para la cual el ADP tenga que elegir entre más de un mo
vimiento. En otras palabras, un ADP es determinista si (a) cada A (q, a, A) tiene
un elemento como máximo, y (b) si A (q, a, A) s* 0, entonces A (q, e, A) = 0. Un
lenguaje independiente del contexto es un lenguaje independiente del contexto
determinista (LICD) si es aceptado por un ADPD.
1. Probar que todo lenguaje regular es un LICD.
2. Probar que no todo LICD es regular.
3. Obviamente, cualquier LICD es un LIC ya que todo ADPD es un ADPND.
Usar esto para demostrar que no todo LIC es un LICD. Indicacióh: En el
Problema 3.3, se obtuvo un lenguaje independiente del contexto cuyo com-
. plemento no era independiente del contexto.
www.FreeLibros.com
4
Máquinas de
Turing
www.FreeLibros.com
172 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
X es un alfabeto de entrada *
r es una alfabeto llamado alfabeto de la cinta
www.FreeLibros.com
MÁQUINAS DE TURING 173
s e Q es el estado inicial
a b
T
Posición Estado interno <71
actual de la
cabeza He
a la configuración
T
Posición Estado interno q\
actual de la
cabeza lie
y 5 dado por
8 (<?l, a) = (qi, a, R)
d (q\, b) - (qu a, R)
8 (.71, 6 ) = (<72, b,L)
a b b a b , a b b a b , a a b a b
T Estado <71 T Estado q\ T Estado
a a a a b , a a a a b a a a a b
Estado <71 T Estado q\ T Estado <72 T
www.FreeLibros.com
MÁQUINAS DE TURING 175
la cinta. A continuación veremos las dos notaciones que más se emplean para
representar esta información de una manera más conveniente. La primera repre
senta una configuración como un par (q¡, W\GW2), donde q¡ es el estado actual,
wi es la cadena de la cinta que precede a la celda sobre la que se encuentra la ca
beza de entrada/salida, a es el símbolo de la cinta sobre el que se encuentra la
cabeza de entrada/salida y w2 es la cadena que hay a continuación de la cabeza
de entrada/salida. Por tanto, en el ejemplo anterior la configuración inicial de
nuestra maquina de Turing podría ser (q\, babba), la segunda sería (q¡, abba) y
así sucesivamente. Otra notación alternativa viene dada por una cadena
ü]Ci2 ... aic-iqiciic... an que representa a la configuración (q¡, \vaku)\ es decir, la
cabeza de entrada/salida se coloca sobre la celda que contiene a* y el estado ac
tual es q¡. Obsérvese que la cadena a\a 2 ... cik- \q¡ak ... an indica que la cabeza
de entrada/salida se encuentra sobre el símbolo de la cinta que aparece siguimdo
al estado. Por tanto, la primera de las dos configuraciones del ejemplo anterior
se puede representar como q\abba y aq\bba. Usaremos estas dos notaciones in
distintamente. Las configuraciones de una máquina de Turing se conocen como
descripciones instantáneas (DIS)
Sea cual sea la notación que utilicemos, denotaremos el paso de una confi
guración a otra por medio del símbolo ya familiar i- . Por tanto, en el ejemplo
anterior se tiene que
8 (<7 1 , a) - (q\, a, L)
d ( q u b ) = (qi,b, L)
8 (<?i, b) = (<72 , b, R)
8 (q2, a) - ((73 , a, L)
8 (<72 , b) = (<73 , L)
8 (<72 , 5) ~ (? 3 ,
Q = {<?i, qi)
L = {<sr,¿>}
r = {a , b , b }
s = q\
F=0
y 8 definida por
b ( q i , a ) = (q2, a , R ) „
8 (qi, b) = (<72 , b, R)
8 (qu b) = {q2, b, R)
8 (<72 , a) = (qu a, L)
www.FreeLibros.com
MÁQUINAS DE TURING 177
5 (<?2 , b ) ..O/i, b, L)
ó (<72 , &) ~ (c/i, b, L)
Ejercicios de la Seccic .I
/4 .Í.Í. Construir una máquina de Turingrué analice una cadena sobre [a, b}+ despla
zándose por la cinta cíe i quierda a d: echa y que reemplace todas las bes que
aparezcan por una r. .áquin ring debería comenzar con la cabeza so
bre el primer símbolo íC que es?:; a la izquierda) de la cadena y terminar
con la cabeza sobre eí blanco fin; ( i blanco que sigue a la a o la c que esté
más a la derecha en la cadena tran ¡. nada).
4.1.2. Construir una máqui ir Turing ¡re cuando se le presente una cadena de
Comenzar el procesainiíhto con Ir; eza situada sobre el primer símbolo (el
que está más a la izquierda) de la cauetia.
4.1.3. Construir una máquir Turing numere todos los enteros binarios, en or
den numérico sobre s cinta cuaiv. ¡menee con (q 1; 0Í>). Es decir, la maquina
de Turing podría ejecwrsc de es¡a furnia:
www.FreeLibros.com
178 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Ejemplo 4.2.1
8 (<?i, a) = {qu a, R)
8 (#i, b) - {q2, b, R)
Obsérvese que esta máquina de Turing para en el estado q2, sólo si se ana
liza una cadena de 0 ó más aes.
Para rechazar una cadena que no es aceptable, lo único que hay que hacer es
evitar que se llegue a un estado final. En el Ejemplo 4.2.1, las cadenas que no
son aceptables, provocan que la máquina pare en un estado que no es final. Ob
sérvese que si la máquina de Turing entra en un bucle infinito, no se puede lle
gar a un estado final (se sigue suponiendo que no hay transiciones definidas para
los estados finales). Otra alternativa para rechazar una cadena es entrar en un bu
cle infinito. El lenguaje del Ejemplo 4.2.1 podría ser aceptado por
www.FreeLibros.com
MÁQUINAS DE TURING 179
M = ( [ q \ ,q i ,q z } ,q \ , {a,b}, { a ,b ,b } ,b , {<7 3 }, 5)
Ejemplo 4.2.2
www.FreeLibros.com
180 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
llevan a cabo dicha comprobación y, si dicha comprobación tiene éxito (es de
cir, si no quedan bes), deja a la máquina de Turing en el estado q$ y situada so
bre la última d. Por tanto, la máquina de Turing que acepta {a"b" | n > 1} será
la entrada para la máquina de Turing está formada por todos los símbolos de la
cinta que no son blancos. La salida está formada por cualquiera de los símbolos
que queden en la cinta cuando la computación termina.
Por ejemplo, considérese la máquina de Turing M - (Q, Z, F, s, b, F, 8)
donde
Q = { q \ , q i , <7 3 }
2 = {a,b}
Y = {a, b, b}
s = qi
F = {q i)
y 8 dado por
8 {<j\, a) - (qi, b, R), 8 {q2, a) = (<72 , a, L)
8 (q 1 , b) = (q 1 , a, R), 8 (q2, b) = {q2, b, L)
8 (qu b) = (qi, b, L), 8 (q2, b) = (4 3 , b, R)
Definición 4.2.2. Se dice que una función de cadena / es Turing computable si existe
una máquina de Turing M = (Q, Z, T, q\, t?, F, 8) para la cual q\w h q/u para al
gún q¡& F, cuando/(vv) = u.
Ejemplo 4.2.3
. / 4.2.1. Transformar la máquina de Turing del Ejemplo 4.2.1 para que, cuando reciba
una cadena que deba aceptar, pare en un estado de aceptación con la cabeza de
lectura/escritura sobre el primer blanco que tenga la cadena.
í/4.2.2. Construir una máquina de Turing que acepte el lenguaje {a2"\n > 0} sobre
E = {a, b}.
4.2.3. Mostrar la ejecución de la máquina de Turing del Ejemplo 4.2.2 cuando se par
te de cada una de las siguientes configuraciones: (q\,aabb ), (q\,aab ) y
(q\, aaabbb).
4.2.4. Diseñar una máquina de Turing que acepte el lenguaje {a"b"\n> 0}. Obsérvese
que, además de tener en cuenta lo visto en el Ejemplo 4.2.2, debemos compro
bar la cadena vacía. Transformar la máquina de Turing para que no pare si en
cuentra una cadena no aceptable.
4.2.5. Diseñar una máquina de Turing que acepte el lenguaje {a"b"\n > 1} por medio
de la eliminación de las aes y bes que están en \os extremos opuestos de la cade
na. Es decir, usando nuevamente c y d, la cadena aaabbb sería primero transfor
mada en caabbd, después en ccabdd y, por último, en cccddd.
4.2.6. Diseñar una máquina de Turing que acepte {anbnd' \ n > 0}.
www.FreeLibros.com
MÁQUINAS DE TURING 183
4.2.7. Construir las máquinas de Turing que acepten los siguientes lenguajes sobre
I={a,¿>}:
a) aba*b
Jítf) {vv| la longitud de w es par}
[a"b"¡|n > 1 y m ¿ n }
J$) {w| w contiene el mismo número de aes que de bes] ’
(e) [a"bman+m\ n >0 y m > \]
(f) {anb"a"b"'\n>0 y m > 0 }
(g) {anb2n\n> 1 }
(h) {vvw|vv e {a, b}+}
(i) {w\w = w '}
Construir una máquina de Turing que compute (w) para el siguiente lenguaje
sobre E= {a, b):
www.FreeLibros.com
184 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
(a) L = aba b
(b) L = {w | la longitud de w es par}
(c) L= {anb2n\ri >0}
¿Son recursivos estos lenguajes? ¿Son recursivamente enumerables?
4.2.12. La mayoría de las tareas diarias pueden ser interpretadas como transformacio
nes de cadenas. Por ejemplo, para comprobar la paridad se requiere que las ca
denas de n bits se transformen en cadenas de n + 1 bits en las cuales, o bien hay
un número par de bits 1 (paridad par) o un número impar de bits 1 (paridad im
par). Construir una máquina de Turing que transforme cadenas de ocho ceros y
unos en cadenas de nueve ceros y unos, en las cuales el número de unos sea
siempre impar. Iniciar la máquina de Turing en la celda que contiene el bit del
extremo izquieido de la cadena. Se supone que el bit de paridad es el noveno bit
por la izquierda.
4.2.13. Dada la ¿-tupia de números naturales («i, «2, —,«*), la proyección p¡ de
(« 1 , «2- •••, n¿) es n¡. Es decir, p¡ devuelve el ¡'-ésimo componente de la ¿-tupia.
Construir una máquina de Turing P¡ que compute la función proyección p¡.
Como el lector puede deducir de las observaciones y ejercicios previos, las má
quinas de Turing pueden desempeñar muchas actividades además del reconoci
miento de lenguajes. De hecho, las máquinas de Turing se toman como modelos
teóricos de las computadoras, un tema que trataremos más tarde. Por ahora nos
centraremos en la forma de simplificar la construcción de una máquina de Tu
ring. La idea básica es construir una colección de máquinas de Turing sencillas y
combinarlas de diferentes formas con el fin de crear una más compleja.
Podemos combinar dos máquinas de Turing permitiendo que compartan la
misma cinta y, que cuando una termine su ejecución, la otra empiece. El conte
nido de la cinta cuando comienza la ejecución de la segunda máquina de Turing,
está formado por todo lo que dejó la primera máquina de Turing, y la cabeza de
lectura/escritura de la segunda se situará, al comienzo de la ejecución, sobre la
celda de la cinta sobre la que terminó la primera.
Ejemplo 4.3.1
www.FreeLibros.com
MÁQUINAS DE TURING 185
Si=qi *
ñ = {^4 }
con 8 j de la forma siguiente:
8i {q\,á) = {q2, a, R)
81 (qu b) = (<?2, b, R )
81 (<72, a) = (<72, a, R)
§1 (<72,b) = (<73, b, L)
81 (?3, b) = (<74, b, R)
8 : (<73, a) = (<?4,«, /?)
Sea M2 dada por
Ql={P\,P2)
I y T los mismos de M\
si = p\
Fl = {P2}
y
Definición 4.3.1. Sean M\ y M2 dos máquinas de Turing sobre el mismo alfabeto de
entrada Z y el mismo alfabeto de la cinta T, doiide
' M i = ( G , , i , r , s h b, F u 8 1)
v■
y
M2 - (02, z, r, .92, b, f 2, 82)
www.FreeLibros.com
186 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
Q = Q\ u Q2
s = s1
F=F2
con s = q\ y F = {p2}-
Nos vamos a referir a la máquina de Turing M\ del Ejemplo 4.3.1 como Rb-
Es decir, R& busca el primer blanco que haya a la derecha de la posición actual
de la cabeza. Consideremos una cinta
a a a b a a b b b
T
Posición
actual de la
cabeza
www.FreeLibros.com
♦
MÁQUINAS ne TURING 1 87
a a a b a a b b b
T
Posición de
la cabeza
T
Posición de
la cabeza
8 a = b c^b
www.FreeLibros.com
188 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
donde F = {q4} y s = q\. Esta máquina de Turing busca hacia la izquierda el pri
mer símbolo de la cinta que no sea blanco y termina con la cabeza de lectura/es
critura sobre dicha celda. Esta máquina de Turing será denotada por Lj, (la b se
usa para denotar “cualquier símbolo excepto 6 ”). Combinando Lg y R¡„ se obtie
ne RbLb, donde la cabeza de lectura/escritura se sitúa sobre el símbolo de la cinta
que precede al primer b que hay a la derecha de la posición actual. Por tanto, si
empezamos sobre
T
Posición de
la cabeza
T
Posición de
la cabeza
En el Ejemplo 4.3.1 vimos una máquina de Turing [Mi) que escribía un úni
co símbolo como salida. Será conveniente especificar una máquina de Turing
que escriba como salida un único símbolo, a, y que permanezca sobre dicha cel
da. Vamos a especificar esta máquina de Turing donde s = q\ y F = {4 3 } me
diante la siguiente tabla:
8 (q, a) ae T
<71 (<72, a, R)
<72 (<?3, 0 , L)
www.FreeLibros.com
MÁQUINAS DE TURING 189
5 (q, 0 ) o =b c =a
donde F = {q$, q¡} y s = q\ (obsérvese que no hay transiciones para q?, o qs). Su
pongamos que componemos esta máquina de Turing con las máquinas de Turing
que escriben a y b de forma qtie, si termina en el estado <7 3 , se inicia la ejecución
de la máquina de Turing que escribe a y, si termina en el estado q$, la ejecución
que comienza será la de la máquina de Turing que escribe b. Hemos provocado
una bifurcación en la ejecución y se podría denotar mediante el diagrama
\,J 7 a =a
o =b
Obsérvese que hemos marcado con una flecha la máquina de Turing senci
lla que comienza la secuencia de ejecución, al igual que hicimos con el estado
inicial de un autómata finito. Es más, puesto que no hay ningún estado siguiente
a R cuando el símbolo actual de la cinta es b, entonces en ese caso, la máquina
compuesta se debería parar. / *
Las flechas múltiples pueden ser eliminadas de varias formas. Por ejemplo,
si r = {a, ¿>, c, b}, la máquina compuesta denotada por
www.FreeLibros.com
190 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
a, b, b
R >R
_________ a _________
I ^
R ----------- - ----------- >R
I b T
Es decir, se mueve una celda hacia la derecha y entonces, si el símbolo que
hay en ese lugar es a, b o b se mueve nuevamente hacia la derecha.
Igualmente, la máquina de Turing denotada por
a, b, c, h
R >R
o por
b I
E> c ^>K
T?
I b
o por
R ---- >R
Q ° =a
R ---------<I*_3-------- >b
busca hacia la derecha la primera celda que contenga un símbolo que no sea a y
escribe una b en ese lugar. El diagrama
a “
R ------------- 3------------> b
denota lo mismo.
www.FreeLibros.com
MÁQUINAS DE TURING 191
Esta máquina de Turing mueve, uno a uno, todos los símbolos de la cadena
hacia la derecha hasta que encuentra el b que precedía originalmente a la cadena.
Entonces, se mueve hacia la derecha y para. Dos de los caminos pueden ser
abreviados como
o =5
www.FreeLibros.com
192 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
0=5 a* T
í
R
o#6 0= T
-» Lr.
c= 6 O* T
Para en un estado
de aceptación
t)c
4.3.1. ¿Cómo se podría realizar la máquina de Turing compuesta M2M\ del Ejemplo
4.3.1?
%
4.3.2. Construir formalmente la máquina de Turing compuesta del Ejemplo
4.3.1 (dar Q, F, s y 5).
www.FreeLibros.com
MÁQUINAS DE TURING 193
4.3.7. Usar la C obtenida en el Ejercicio 4.3.6 (igual que otras máquinas de Turing
elementales) para construir una máquina de Turing que compute f(n,m) = nm
(es decir, la multiplicación de enteros).
4.3.8. La sustracción de números naturales no está definida para todos los pares puesto
que la diferencia puede ser negativa. Definir la operación resta modificada
como
í n- m, si n > tn
n —m = i
I 0, si n o n
Construir una máquina de Turing que compute n - m (la máquina de Turing de
bería tomar ba"ba'”b y devolver ba" ~mb).
4.3.9. Construir una máquina de Turing que acepte {wcw\w € {a,b}*}.
4.3.10. Sea L («, ni) = (a"bn~m\n, m >0} (el operador resta modificada, se definió en el
Ejercicio 4.3.8). Para unos n y m dados, construir una máquina de Turing que
acepte L (n, m). !
4.3.11. Construir una máquina de Turing que acepte {w| w = w'}.
4.3.12. (a) Construir una máquina de Turing que compute la función entera
f(n) = L «/2J, donde LxJ representa a la función cuyo resultado es el m ayor
entero m enor o igual que x.
(b) Construir una máquina de Turing que, dados una cadena w y un entero
n < | vv| , sitúe la cabeza de lectura/escritura sobre el n-ésimo símbolo de w
(a partir de la izquierda).
www.FreeLibros.com
194 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
(c) Construir una variante de SR, S'r, que no requiera que la cadena vaya pre
cedida por un símbolo b. Por ejemplo, S'K transformaría abbabb en
babbabb.
(d) Construir una máquina de Turing que acepte {ww\w e £*}, haciendo uso
de las máquinas de Turing obtenidas desde el apartado (a) al (c).
8: Q x T -> Q x T x {/?, L, 5}
www.FreeLibros.com
MÁQUINAS DE TURING 195
8 (q, a) c *b a=b
<71 . (q2, O, L) (q2 , a, L)
<72 (q2 , O, L) (<74, b, L)
<74 (<73, 0 , R) (<73, b, R)
donde s - q \ y F = {g3}.
Otra modificación sencilla de nuestra máquina de Turing básica es aquella
mediante la cual cada celda de la cinta se divide en subceldas. Cada subcelda es
capaz de contener un símbolo de la cinta. La cinta
b b b
a a b
a a b
tiene cada celda subdividida en tres subceldas. Se dice que esta cinta tiene múlti
ples pistas. Puesto que cada celda de esta máquina de Turing contiene múltiples
caracteres, el contenido de las celdas de la cinta puede ser representado median
te rc-uplas ordenadas. En el ejemplo anterior, las celdas de la cinta contienen
(b, a, a), (b, a, a) y (b, b, b). Por tanto, los movimientos que realice esta máquina
dependerán de su estado actual y de la «-tupia que represente el contenido de la
celda actual. ___ ....
Supongamos que T es un alfabeto de cinta. Una máquina de Turing que tie
ne una cinta de k pistas, cada una de las cuales contiene un símbolo de T, puede
interpretarse como una máquina de Turing cuyo alfabeto de cinta estuviera for
mado por todas las ¿-tupias sobre T. Por ejemplo, si T = {a, b, b } y M es una
máquina de Turing de 2 pistas cuyas celdas contienen pares de símbolos de T, se
puede considerar que su alfabeto de cinta es F x f . Viéndolo de esta forma está
www.FreeLibros.com
196 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
claro que una máquina de Turing multipista no tiene más potencia que nuestra
máquina de Turing original. Sin embargo, hace que sea más fácil la construcción
de máquinas de Turing que resuelvan ciertos problemas.
Ejemplo 4.4.1
Supongamos que queremos construir una máquina de Turing que sume dos
números binarios. Para ello, podemos construir una máquina de Turing de tres
pistas. Se supone que la entrada serán dos números binarios que ocupen las dos
pista superiores de la cinta. Suponemos que sus dígitos se alinean por la dere
cha, que sus representaciones binarias son de la misma longitud (lo que se pue
de conseguir rellenándolas con tantos ceros como sea necesario) y que la cabeza
de lectura/escritura se sitúa sobre la celda del extremo izquierdo de la cadena.
Por tanto, si tuviésemos que sumar 101 y 10, la cinta debería contener
b 1 0 1 b ■
b 0 l 0 b
b b b b b ■
Cabeza e!¡
(■b ,b ,b ) • ( 1 , 1 , b) (L 1 ,0 ) (1, 1, 1)
(0 , 0 ,*) (0 , 0 , 0 ) (0 , 0 , 1 ) (M , 1 )
(0 , I b ) ■ (0 , 1 . 0 ) (0 , 1 . 1 )
( 1 , 0 , b) ■ (LO. 0 ) ( 1 , 0 , i)
www.FreeLibros.com
MÁQUINAS DE TÜRING 197
5 (92, (O, O, b)) = (q2, (0 , 0 , 0), L) 8 (93 , (O, O,b)) = (92, (O, O, i), L)
6 f e (O, l ,b)) = (q2, (O, 1, 1) ,L ) 8 (93, (O, 1 ,b)) = (¿q3, (O, 1 . G), L)
5 (92, ( 1, 0 , b)) = (92, ( 1, 0 , 1), L) 8 (93, ( 1 ,0 , &)) = (93 , ( 1 ,0 . 0). L)
5 (92, ( 1 , 1, fe)) = (93, ( 1 , 1,0), L) 8(93, ( 1 , 1 ,b'))= (93 , ( 1 , i- ¡¡,¿)
8 (92 , (fe, b, fe)) = ( 94, (b , fe, 0), S) 8 (92, (fe, fe,fe)) = (94, (fe, b I). 5 )
¿r S % cj i
fe 1 0 1 fe
fe 0 1 0 fe
fe fe fe b fe
en
fe fe 1 0 1 fe
fe fe 0 1 0
fe 0 1 1 1 fe
Otra m o d ificación sen cilla (y bastante com ún) que puede realizar • : nues
tra defin ición de m áquina de T u rin g es que se u se una cinta que se exiieinia in fi
nitam ente en una única dirección . G eneralm en te, se tiene una cinta que: se e x
tiende infinitam ente h acia la derecha. N o está perm itido re aliz ar nin n ovi-
miento h acia la izquierda a partir de la ce ld a del extrem o izquie: o. )esde
luego, cu alquier m áquina de T u rin g de esta form a, puede ser sim ula - r una
de las que responden a nuestra d efin ición o rig in al. P ara ca d a com put; :ió.¡; sim
plem ente m arcarem os una de las celd as de nuestra cinta in fin ita por ios dos la
dos, com o la celda que se encuentra en el lím ite izquierdo.
U na m áquina de T u rin g con una cinta fin ita en un sentido puedo sim ular
dos p is
una m áquina de T u rin g con la cinta infin ita en lo s d i s e n t i d o s pero con
tas. S e a M una m áquina de T u rin g con una cinta infin ita en lo s dos sentidos. L a
m áquina de T u rin g M ', que tiene una cinta infin ita en un sentido, puedo .¡m ular
a M si tiene una cinta con d os pistas. L a cinta su perior contiene la in ion nación
correspondiente a la parte derecha de la cinta de M , a partir de un p le re
feren cia dado. L a pista in ferio r contiene la parte izq u ierd a de la cinta de ’vl (en
orden in verso). Por tanto, si la cinta de M contenía
www.FreeLibros.com
198 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
b a a b b a b
\
Punto de referencia
la cinta de M' podría ser como
* b b a b
* a a b b
Por tanto, la función de transición para una máquina de Turing con n cintas,
es de la forma
5: <2 x T " —> x T " x [L, R }n
www.FreeLibros.com
MÁQUINAS DE TURING 199
significa que cambia del estado q a p, reemplaza a,- por X¡ en la cinta i y mueve la
cabeza de la cinta i en la dirección X¡.
Ejemplo 4.4.2
www.FreeLibros.com
200 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
quiere decir que la máquina de Turing ha recorrido todos los símbolos que todas
las cabezas de M\ analizan y, por tanto, ya tiene bastante información como para
determinar un movimiento. Después realiza un barrido hacia la izquierda, actua
lizando el contenido de la cinta y ajustando los marcadores de la cabeza como
corresponda, hasta que encuentre el marcador de final izquierdo. Obsérvese que
cuando M 2 realiza este barrido necesita tener la posibilidad de mover los marca
dores a la izquierda o la derecha de sus posiciones actuales. De esto se deduce
que el patrón de movimiento que realiza la cabeza de lectura/escritura durante el
barrido consiste en dos desplazamientos a la izquierda seguidos de dos desplaza
mientos a la derecha y, por último, un desplazamiento hacia la izquierda. Final
mente, M 2 pasa al estado correspondiente al estado siguiente de M \ .
Otra modificación que se puede hacer en nuestra máquina de Turing origi
nal es permitir que la cinta tenga muchas dimensiones. Por ejemplo, una cinta de
dos dimensiones que se extienda hacia abajo y hacia arriba, al igual que hacia la
derecha y hacia la izquierda. Dependiendo del estado actual de la máquina de
Turing y del símbolo analizado, cambia de estado, escribe un símbolo en la cel
da actual y se mueve a la izquierda, a la derecha, hacia arriba o hacia abajo. Por
tanto, la función de transición para esta máquina de Turing será de la forma
8: Q x Y - ^ Q x T x [L, R, U, D]
-1,1 1,1
-1,0 0 ,0 1,0 2 ,0
0 ,-1
www.FreeLibros.com
MÁQUINAS DE TURING 201
Entonces, usaremos una cinta de dos pistas para simular la máquina de Tu
ring. Una pista se encargará de almacenar el contenido de las celdas y la otra las
coordenadas. Según esto, si la celda (1,2) contiene una a y la celda (-3, 12) con
tiene una b, la cinta de la máquina de Turing que realiza la simulación será como
a b
1 * 2 * - 3 * 1 2
A (q, a) c Q x T x {L, R}
son posibles.
Ya que cualquier máquina de Turing determinista es también no determinis
ta, es lógico'qúe una máquina de Turing determinista se puede simular mediante
una no determinista. También una máquina de Turing determinista puede simu
lar una no determinista. Por tanto, no se gana ninguna potencia adicional a causa
del no determinismo.
Para ver como se realizaría la simulación, sea M\ una máquina de Turing no
determinista que acepta algún lenguaje. Describiremos una máquina de Turing
(determinista) Mi, que será de tres cintas, que simule M\. Téngase en cuenta
que, para cualesquiera estado actual y símbolo de la cinta de Mi, hay un número
www.FreeLibros.com
202 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
MÁQUINAS DE TURING 203
4.4.1. Eliminar dél Ejemplo 4.4.1 la restricción de que el más corto de los dos núme
ros binarios deba ser rellenado con ceros. -
«/4.4.2. Construir una máquina de Turing de tres pistas que reste el número binario de la
segunda pista del número binario de la primera y deje el resultado en la tercera
pista.
Hacer otra, suponiendo que la máquina de Turing es de dos pistas y que el
resultado se deja sobre la segunda.
Hacerlo, también, para que el resultado quede en la primera.
4.4.3. Construir una máquina de Turing de tres pistas que determine si el número bina
rio que está en la primera pista es menor que el de la segunda. Si es menor, es
cribir el carácter 5 sobre la tercera pista y si no lo es, escribir los caracteres GE
sobre la tercera pista. ¿Cómo se podría incluir una forma de comprobar la igual
dad?
4.4.4. Una máquina de Turing puede comprobar si un número binario mayor que 2, es
primo. Para ello se escribirá dicho número en la pista 1. La máquina de Turing
escribirá el número 2 en binario en la segunda pista y copiará la primera pista
en la tercera. Entonces restará la segunda pista de la tercera tantas veces como
sea posible (dejando el resultado en la tercera). En realidad, este proceso lo que
hace es dividir el número de la pista uno entre el de la pista dos y deja el resto
en la tercera. Si el resto es 0, entonces el número no es primo. Si no es 0, enton
ces el número de la pista dos se incrementa. Si el número de la primera pista es
igual al de la segunda, entonces el número es primo ¿por qué? Si el número de
la pista 2 , es menor que el de la 1 , se repite el proceso anterior para el nuevo nú
mero de la pista 2. Construir una máquina de Turing que realice este proceso de
comprobación.
4.4.5. Las múltiples pistas sirven para realizar el reconocimiento de las frases de un
lenguaje de forma no destructiva. La cadena en cuestión se sitúa sobre la prime
ra pista y se usa una pista adicional para realizar el análisis de los símbolos
(como contrapartida a la eliminación o sobreescritura de los mismos). Esto se
realiza situando marcadores en la segunda pista sobre o bajo los símbolos de la
primera pista que han sido ya considerados. Construir una máquina de Turing
que reconozca el lenguaje {wcw\w e {a,b}”}.
4.4.6. Sea M una máquina de Turing con cinta infinita en los dos sentidos cuyas tran
siciones son
5 {q, o) <3- a o -b a =b
<?i (¡?i> c, R) (<qub, R) (<?2, b,L)
42 (<?2, a, L) (<72, d,L) (<?3, b, S)
www.FreeLibros.com
204 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
(Nota: Téngase en cuenta que, para que una cadena sea aceptada, la máqui
na de Turing tiene que parar en un estado de aceptación).
4.4.8. Describir la ejecución de la máquina de Turing de dos cintas del Ejemplo 4.4.2
sobre la cadena a2b2.
4.4.9. Construir una máquina de Turing de dos cintas que reconozca el lenguaje L ~
{mv; | w e {a, fr}+}. Supóngase que, inicialmente, las cadenas a analizar están
situadas en la cinta 1 .
4.4.10. Supóngase que M es una máquina de Turing de dos cintas con un alfabeto
de cinta F —{¿2, ¿>}. Definir cada una de las partes de una máquina de Turing
de cinco pistas M' que simule el movimiento 8 (q\, (a, b)) = (qi, (b, a), (R, L))
de M.
4.4.11. Supóngase que se define una máquina de Turing multicabeza, como una que
tiene una única cinta pero varias cabezas de lectura/escritura sobre la cinta.
Cada movimiento depende tanto del estado actual como de todos los símbolos
reconocidos por las cabezas. En cada movimiento, si más de una cabeza está so
bre la misma celda, se decide según lo convenido previamente.
(a) Construir una “maquina de copia” con dos cabezas que, en la cinta, trans
forme bwb en bwbwb.
(b) Obtener, de forma similar a como se simuló una máquina de Turing con k
cintas mediante una máquina de Turing con una cinta, una simulación de
una máquina de Turing multicabeza mediante una máquina de Turing con
una sola cinta de dos sentidos.
4.4.12. ¿Cómo se puede simular una máquina de Turing que responda a nuestra definición,
mediante una máquina de Turing multicinta? ¿Cómo puede una máquina de Turing
multicabeza, simular una máquina de Turing que cumpla la definición original?
4.4.13. Construir una máquina de Turing con una cinta de dos dimensiones que “dibu
je” una tabla 2 x 3 y que empiece por la celda de la esquina inferior izquierda.
4.4.14. Construir una máquina de Turing, según nuestra descripción original, que gene
re todas las secuencias de los números 1, 2 y 3 sobre su cinta, de forma que las
secuencias menores aparezcan primero y las que tengan la misma longitud apa
rezcan en orden lexicográfico. ¿Cómo se podría generalizar para las secuencias
de los números 1 , 2 ,..., n?
www.FreeLibros.com
MÁQUINAS DE TURING 205
www.FreeLibros.com
206 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
y R será 11. Si usamos los ceros como separadores, podemos codificar una tran
sición tal como
5(43, Ci) = (<74, a 3, L)
www.FreeLibros.com
MÁQUINAS DE TURING 207
PROBLEMAS
www.FreeLibros.com
208 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Q = {quqi]
2 ={a,Z>}
T = {a, b, <, >}
s = qi
F = {q2)
y A dado por
A (^i, <) = (<7i, <, R)
A(q\,a) = (qu b,R)
&{q\,b) = (qu a, R)
A(q\,>) = (q2, >,S)
Este ALA complementa sus cadenas de entrada convirtiendo las aes en bes
y viceversa. Obsérvese que, aunque puede reconocer y trabajar sobre los símbo
los < y >, no puede reemplazarlos o moverse más allá de ellos.
Supongamos que un ALA comienza siempre con su cabeza situada sobre
el símbolo <.
4.1. Obtener un ALA que acepte el lenguaje {a"b"c" | n> 1}.
4.2. Obtener un ALA que determine si sus cadenas de entrada tienen longitud impar.
Suponer que las cadenas de entrada pertenecen a {a, b}*.
4.3. Obtener un ALA que determine si sus cadenas de entrada, tomadas de [a, b}*
son un palíndromo.
Un autómata linealmente acotado puede tener cintas con múltiples pistas.
En el caso de las pistas múltiples, las celdas disponibles para la computación si
guen restringidas a las que originalmente ocupó la cadena de entrada. Por ejem
plo, si ti- = aban es la cadena de entrada para un ALA con dos pistas, la cinta
podría ser como
< a b a a >
< >
> 0}
www.FreeLibros.com
5
Máquinas de Turing
y lenguajes
www.FreeLibros.com
210 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
dos por alguna máquina de Turing que siempre para sobre alguna entrada. For
malmente, daremos la siguiente definición:
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 211
Por el Ejemplo 4.2.2 sabemos que hay una máquina de Turing que para sobre
todas las entradas y que acepta {a"b"\n > 1 }. Por el Ejemplo 2.9.1 sabemos que
este lenguaje no es regular. Por tanto, hay lenguajes recursivos que no son regulares.
Sea M un autómata de pila no determinista. Podemos construir una máquina
de Turing que emule el comportamiento de M en lo que se refiere a a la acepta
ción o rechazo de cadenas. Para esto debemos tener en cuenta los cambios de es
tado de M y los cambios que se producen en la pila de M cuando está recono
ciendo una cadena. Para simplificar, usaremos una máquina de Turing con dos
cintas. La cinta 1 almacenará la cadena de entrada y la cinta 2 almacenará el
contenido de la pila de M. Un apilamiento corresponde a un movimiento hacia la
derecha seguido por una actualización de la cinta 2. Por tanto, la cabeza de lec
tura/escritura de la cinta 2 siempre analizará el símbolo de la cima de la pila. Los
cambios de estado de la máquina de Turing reflejan los cambios de estado de M.
Consideremos un ADPND M dado por
www.FreeLibros.com
212 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
las cuales apilan aes sobre la pila. Además p\ es un nuevo estado. Cuando se de
sapila el ADPND, en la cinta 2 la cabeza realiza un movimiento hacia abajo, es
decir, hacia la izquierda. Por tanto, tenemos las transiciones
de la máquina de Turing.
Dado que los lenguajes independientes del contexto son los que acepta un
autómata de pila no determinista, tendremos el siguiente teorema:
Turing que paran sobre toda cadena. Entonces, si w e L (M¡), sabemos que M¡
parará en un estado de aceptación y, si w <£ L (M¡), M¡ parará en un estado qi
no es de aceptación para cada i - 1,2. Sea M una máquina de Turing que tier
dos cintas. La cadena de entrada w estará en la cinta 1 y se hará una copia de c
en la cinta 2. La máquina M emulará a M\ mediante la cinta 1 hasta que M\ pa: .
Si Mi para en un estado que no es de aceptación, entonces M también para en u r>
estado que no es de aceptación. Por otro lado, si M\ aceptara w, entonces
emularía a M 2 mediante la cinta 2 (con la copia de vv). Si M 2 parara en un estado
que no es de aceptación, entonces M también para en un estado que no es <'
aceptación. Sin embargo, si M 2 aceptara w, entonces M acepta vv. Por tamo
w e L (.M) si y sólo si w e L (Mi) y w e L (M2), con lo que obtenemos que
L (M) = L (Mi) n L (M2). Finalmente, obsérvese que para toda entrada, M pa; .'.
ya que M\ y M 2 también lo hacen. Por tanto, L (M) es un lenguaje recursi\ .
Veamos el siguiente teorema:
5.2.2. El autómata finito determinista M acepta las cadenas de longitud par sob e
X= {a, b}. Construir una máquina de Turing, a partir de este autómata, c¡'
acepte L (M).
M=(Q, Z, 5, F, 5)
donde
Q={q\,qt)
z = {a ,b }
s = qi
F ={<?,}
* 8 (qi,á) = 5(qi,b) = q2
8 (q2, a) = 8 (q2, b) = qy
*
5.2.3. Usar la técnica vista en esta sección para construir una máquina de Turing tv
acepte el lenguaje aceptado por el siguiente autómata finito determinista:
www.FreeLibros.com
214 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
5.2.4. Usar la técnica de construcción de esta sección para construir una máquina de
Turing que acepte las mismas cadenas que el ADPND dado por
A (q, a, b) = {(p, )}
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 215
{Nótese que el lenguaje aceptado por este autómata es {a" (bab)n\ n > 0}.]
5.2.6. Definir formalmente la técnica de construcción del Ejercicio 5.2.5, que constru
ye una máquina de Turing M' que acepta el mismo lenguaje que un ADPND
M = « 2 , Z , T , s,F,z, A ).
www.FreeLibros.com
216 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
ción. Es decir, M para en algún estado de Q - F. Pero entonces, M' también pa
rará y, por tanto, si w g L, entonces w e L (M ')• Así, L (M ') = Z s - L. Es más, ya
que M para sobre todas las cadenas, entonces M' también lo hace. Finalmente,
tendremos el siguiente lema:
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 217
www.FreeLibros.com
218 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
8 ((<?3, <?), (ai, o2)) = ((<73 , p), (O], t2), (S, X2))
donde 82 (q , 0 2 ) = (/?, ^ 2, X 2) es una transición de M2. Si hiciéramos esto para to
dos los estados en los cuales M\ o M 2 para sin aceptar ninguna cadena, entonces
M no pararía en todas ellas cuando M\ y Mi parasen sin aceptar “una cadena”
¿por qué se considera aceptable este comportamiento?
Finalmente para cada par (q\, q2) en los cuales q\ ó q2 es un estado de acep
tación de su correspondiente máquina de Turing, incluiremos las transiciones de
la forma
8 ((<?], <?2), (ai, a2)) = (<7, (ai, a2), (5, 5))
donde q e Q es un nuevo estado que es el único estado de aceptación de M. □
La demostración del Teorema 5.3.3 sugiere una técnica que puede ser usada
para probar que cualquier lenguaje recursivamente enumerable cuyo comple
mento es recursivamente enumerable debe ser un lenguaje recursivo. Para pro
barlo, supongamos que L y L* - L son ambos recursivamente enumerables. Usa
remos el método de construcción usado en la demostración del Teorema ,5.3.3
para construir una máquina de Turing que acepte L u (E* - L). Naturalmente,
esta unión es 2*,<pero puesto que í , n ( I * - L ) = 0, cualquier cadena w e X* es-
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 219
tará solamente en uno de los dos. Así, si tenemos las máquinas de Turing M\ y
M 2 que aceptan L y X* - L, respectivamente, entonces para cualquier w e l * so
lamente una de las dos máquinas de Turing parará y aceptará w. Modificaremos
la máquina de Turing M de la demostración precedente puesto que, si M\ parase
y aceptase w, entonces M la aceptaría, mientras que si M i aceptase vv, entonces
M pararía y la rechazaría. Luego tenemos una máquina de Turing que para todas
la entradas, para y acepta L. Por tanto, se puede deducir el siguiente teorema:
GiG„, a^Oi, O2G2, •••> OiOn, ..., o no n, y así sucesivamente. (Obsérvese que el or
den en el que son listadas, determina el orden lexicográfico de las cadenas).
Para organizar las simulaciones de secuencias de movimientos de M sobre
dichas cadenas, M' genera £ primero y simula un movimiento sobre ella. En un
segundo paso, M' simula dos movimientos sobre £ (si es posible), genera Gi y si
mula un movimiento sobre ella. En tercer lugar, M' simulará tres movimientos
sobre £, dos sobre Oí, y entonces genera 0 2 y simula un movimiento sobre ella.
La cinta 2 se usa para llevar cuenta de las cadenas generadas y del número de
movimientos realizados sobre ellas. Por tanto, después de i pasos, la cinta 2 con
tendrá i cadenas sobre Z* así como el total de movimientos realizados sobre
ellas. En los siguientes pasos, M' procesa cada una de las i cadenas incrementan
do además el contador de movimientos para cada una de ellas, copiándola en la
cinta 3 y simulando M sobre ella con el número de movimientos especificado. Si
M acepta la cadena, entonces M' la copia en la cinta 1.
Nótese que, de esta forma, se elimina el problema de que M nunca pare so
bre una cadena específica. Cualquier cadena de L se genera sobre la cinta 2 y se
acepta durante la simulación de M. Por tanto, cualquier cadena de L aparece en
la cinta 1. Veamos el siguiente teorema:
Por tanto, la capacidad de ser enumerado por una máquina de Turing, carac
teriza completamente a los lenguajes recursivamente enumerables.
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 221
A través del estudio de lenguajes que hemos realizado, hemos tratado dos técni
cas para especificarlos. Podemos especificar un lenguaje describiendo un proce
dimiento para reconocer sus cadenas. Estos procedimientos tomaron la forma de
autómatas de varios tipos. Alternativamente, se puede especificar un lenguaje
por medio de una técnica que genere sus cadenas. Las gramáticas nos proporcio
nan este método.
Tanto en las gramáticas regulares como en las que son independientes del
contexto, se restringió la manera de formar las producciones. ¿Hasta qué punto
se pueden relajar estas restricciones y hacer que todavía tengan sentido los len
guajes resultantes? Es más, ¿cómo se pueden relacionar dichos lenguajes con los
que son aceptados por las máquinas de Turing?
Si representamos las producciones de las gramáticas regulares por medio
del producto cartesiano de conjuntos, éstas serán pares de N x Z* (N u e) (para
gramáticas regulares por la derecha), que indican que el lado izquierdo de la pro
ducción debe estar formado por un único no terminal, mientras que el lado dere
cho de la producción debe estar compuesto por cualquier cadena de terminales
seguida por un no terminal. Al pasar a las gramáticas independientes del contex
to, la estructura de la parte derecha de las producciones se hizo menos restricti
va; es decir, se permitió que fueran pares del producto N x ( N u 2)*. Ahora, el
lado derecho podrá contener cualquier número de no terminales, mientras que el
lado izquierdo sigue restringido a un único no terminal.
Aunque en una gramática independiente del contexto la estructura del lado
derecho de las producciones parece ser lo más general posible, podemos dar al
menos dos sugerencias con respecto al lado izquierdo. Se debería poder permitir
que en el lado izquierdo hubiera cadenas no vacías de no terminales e incluso
cadenas de no terminales y terminales. De las dos, las cadenas no vacías de ter-
www.FreeLibros.com
222 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Definición 5.4.1. Una gramática no restringida (que también se conoce como una gra
mática estructurada por frases) es una 4-tupla G = (N, Z, S, P), donde
S -*a S B C \a B C
CB —> BC
aB —» ab
bB -> bb
bC —» be
cC —» cc
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 223
Esta gramática genera L = {a \ k > 0}. Para hacemos una idea de cómo se
generan cadenas en L, consideremos la derivación a 2 = a4. Tendremos
S ACaB => AaaCB => AaaDB => AaDaB => ADaaB => ACaaB
=> AaaCaB => AaaaaCB => AaaaaE => AaaaEa => AaaEaa
=> AaEaaa ==>AEaaaa => aaaa
www.FreeLibros.com
224 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 225
A\q\ —> £
b -> £
Q = { q u q 2,q i )
E={a}
T = {a ,b }
F={qs}
h ( q \,á ) = (q\,a, R)
h { q u b ) = {q2, b ,R )
8 (q2, 6) = (<?3> L)
Esta máquina de Turing acepta a*. Aplicando la construcción anterior, ob
tendremos los siguientes grupos de producciones:
S ^ & S |S & |A iA 2
para el primer paso
A2 aA2\A2a\qi
A\q\ —» £ 1
para el último paso
b-> e j
www.FreeLibros.com
226 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Puesto que la transición 8 (q¡, b\) = {q¡, c, L) produce q¡anc —> anq¡b\ de G, ten
dremos
a\ ... anqib\ ... bm => a\ ...a „ -\q jc b 2 ... bm
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 227
con lo que obtenemos que xqjy => qyw. Puesto que q\\v corresponde a la confi
guración inicial de M cuando comienza el procesamiento de vv, un razonamiento
inductivo sencillo probará que q\\v h xqjy y, por lo tanto, w e L (M). □
www.FreeLibros.com
228 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 229
S —» abe | a Abe
Ab —> bA
Ac —>Bbcc
bB —> Bb
aB —> aa\aaA
Lem a 5.5.3. Sea G - (N, E, S, P) una gramática sensible al contexto. Entonces, exis
te una gramática Gi = (A/j, £, Si, Pi) sensible al contexto, para la cual
L (G) - L (G i) y Si nunca aparece en el lado derecho de una producción de P\.
www.FreeLibros.com
230 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
entonces —> a es una producción de P\ y, por tanto, Si => a => w es una deri
vación de Gi. Así w e L (G) si y solo si w e L (<?i). □
Si m > | vv | (es decir, la derivación se realiza en más pasos que símbolos tie
ne w), entonces existirá algún i , j y p para los cuales
eliminando a , + i => ... => a.,, con lo que se obtiene una derivación más corta.
La idea es que si w es derivable en G entonces hay alguna derivación de w
que “no es demasiado larga” . Lo que indica que hay un algoritmo para determi
nar si w e L (G). Es decir, podemos obtener una máquina de Turing que para so
bre toda entrada y que acepta L (G).
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 231
www.FreeLibros.com
232 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Lem a 5.5.6. Hay lenguajes recursivos que no son lenguajes sensibles al contexto.
Teorem a 5.5.7. Los lenguajes sensibles al contexto contienen, propiamente, a los len
guajes independientes del contexto A su vez, los lenguajes recursivos contienen
propiamente a los lenguajes sensibles al contexto.
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 233
]¡r MÍ59, íoam Chomsxy clasificó las gramáticas en cuatro familias. Las
gram ít i as :io estrmgidas, sensibles al contexto, independientes del contexto y
regulu : i que í conocen como gramáticas de tipo 0 , de tipo 1 , de tipo 2 y de
tipo X i ; ; ::ect /ámente. Los lenguajes que resultan de dichas gramáticas tam
bién se . íiTitif :an como ler guajes de tipo 0, 1 , 2 y 3. Como ya hemos visto,
todo le i maje i (dependiente, del contexto que contiene la cadena vacía se genera
medi ir :: usa j ramática independiente del contexto en la cual S —>e es !a única
produc : á i E. zuaJmente, hemos demostrado que todo lenguaje sensible al con
texto c : >ul ;ne (•: se deriva de una gramática “limpia” en la cual S —>e es la
únicí ] i j .lucci in £. Dejando a un lado los problemas que se derivan de la pala
bra v i i, ■■irm s que todo lenguaje de tipo i es también de tipo i - 1 , teniendo un
tipo de :. ::l,ü«i< n propia.
ii i erax< ,iía de lengua jes se conoce como la jerarquía de Chomsky¿ La Fi
gura 5 .1 il'Jitrí las relaciones, que existen.
Regulares
Figura 5.1
www.FreeLibros.com
234 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
A = { a e (A?wZ)”| |a | </i}
Obsérvese que:
i. Si S => a y Ia | < n, entonces se obtiene que a e T,„, para algún m.
ii. Si S no deriva a o si Ia I > n, entonces a e= T,„ para todo m.
i i i- T,„ _ ] c T,„.
iv. Si T„,„ I = r„„ entonces T,„ = Tm+l = ...
(c) Probar que (iv) es cierto
Por tanto, para determinar si w e L (G)» calcularemos Tq, Tt y así su
cesivamente, hasta que obtengamos que Tm_ i = T,„= ... En este momento,
ya se han generado todas las cadenas de longitud menor o igual que n, con
lo que basta con que comprobemos r,„_ | para w. Si w e Tm.. ¡, entonces
iv e L (G); en otro caso, w i L (G).
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 235
S —» aSBC\aBC, bB —>bb
CB BC, bC -> be
aB —> ab, cC —» cc
PROBLEMAS
5.1. Si L\, Li son lenguajes recursivamente enumerables sobre Z, ¿Es VJT*i U re~
cursivamente enumerable? ¿Por qué?
5.2. Probar que el complemento de un lenguaje independiente del contexto es recursivo.
5.3. Si L\ es recursivo y L2 es recursivamente enumerable, probar que L\ - ¿2 es
recursivamente enumerable. ¿ ¿ 2 - L\ es recursivo? ¿Es recursivamente enume
rable?
5.4. Si L\ y L2 son lenguajes recursivamente enumerables sobre Z, esbozar la cons
trucción de unamáquina de Turing que acepte L\Li y L\. (Indicación: considerar
máquinas de Turing no deterministas).
www.FreeLibros.com
236 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
5.5. Nuestro razonamiento de que los lenguajes generados por gramáticas no restrin
gidas son recursivamente enumerables (Teorema 5.4.2) se basaba en la capaci
dad de poder obtener una máquina de Turing que enumerase las cadenas del
lenguaje de forma ordenada. Se puede obtener un razonamiento alternativo me
diante la construcción de una máquina de Turing no determinista que acepte las
cadenas del lenguaje.
Sea G una gramática no restringida. La máquina de Turing M que constru
yamos elegirá de forma no determinista una derivación de G y la simulará sobre
su cinta. Entonces comparará la cadena derivada con la cadena de entrada y, si
coinciden, la aceptará. Si no coinciden, M simulará otra derivación, y así sucesi
vamente. Si la cadena de entrada está en L (G), entonces M simulará una deriva
ción de la misma; en otro caso M nunca parará.
Para realizar la simulación, primero se escribe el símbolo inicial S sobre la
cinta. Entonces M entra en un bucle, el cual puede que termine después de un
cierto numero de pasos. Cada paso corresponde a una elección de una produc
ción de G realizada de forma no determinista, que se tratará de aplicar, y de una
posición en la cadena que está en la cinta, y a la cual se pretende aplicar la pro
ducción. Una vez que se selecciona la posición, M comprueba si dicha posición
comienza con una secuencia de símbolos que se corresponden con el lado iz
quierdo de la producción seleccionada y, si es así, se reemplaza la secuencia por
el lado derecho de la producción. Este bucle se repite hasta que M elija, de for
ma no determinista, que quiere salir del mismo. Entonces será cuando se com
pare la cadena generada con la cadena de entrada para comprobar si coinciden.
3. Describir con cuidado todos los pasos necesarios para realizar una vuelta
del bucle.
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 237
En el Problema 4.1, se vio que el lenguaje L = {ci‘bncn| n > 1 } era aceptado por
una autómata linealmente acotado. Esto sugiere que existe una conexión entre
los lenguajes sensibles al contexto y el autómata linealmente acotado.
www.FreeLibros.com
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
S —> (a, qi < a) A | (a, q¡ < a > ), para todo a e X (q¡ es el estado
inicial de M)
A —» (a, a) A I{a, a> ), para todo a e Z
q\ < aba > y- < q\aba > t- < aqiba > (- < abq^a > 1- < abaq^ > 1- < abaq¿\ >
y de la forma
www.FreeLibros.com
MÁQUINAS DE TURING Y LENGUAJES 239
2. Construir una secuencia de producciones de la forma uAv —> uwv (es decir,
a —> (3 donde
www.FreeLibros.com
www.FreeLibros.com
6
Resolubilidad*
www.FreeLibros.com
242 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
* V e r n o ta d e la p á g in a a n te rio r.
www.FreeLibros.com
RESOLUBILIDAD 243
www.FreeLibros.com
244 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
como si hubiera comenzado con la configuración q\\v (donde c¡\ es el estado ini
cial de M). Obsérvese que M ' es una máquina de Turing que al principio tenía la
cinta en blanco. Si obtenemos un algoritmo que determine si una máquina de
Turing arbitraria que comienza con una cinta en blanco para, podremos determi
nar si M ’ para. Pero M ' para si y sólo si la máquina de Turing M original, para
con la cadena w como entrada. Por tanto podríamos obtener una solución para el
problema de parada si existiera un algoritmo general para el problema de la cinta
en blanco. Esto contradice el Teorema 6.1.1 y, por tanto, el problema de la cinta
en blanco es también irresoluble.
La técnica que relaciona el problema de parada con el problema de la cinta
en blanco de forma que nos permite deducir a partir de la irresolubilidad del pro
blema de parada la irresolubilidad del problema de la cinta vacía, se llama re
ducción. Se dice que el problema de parada se reduce al problema de la cinta va
cía porque la resolubilidad del problema de la cinta vacía nos permite deducir
que la resolubilidad del problema de parada (Un problema X se reduce al proble
ma Y si, al obtener la solución de Y, se puede obtener la solución de X.)
6.1.1. Demostrar que si el problema de parada se puede resolver, entonces todo len
guaje recursivamente enumerable es recursivo.
6.1.2. Sea M una máquina de Turing con un alfabeto de entrada Z. Sea w,„ una codifi
cación de M sobre {0, 1}. Sea
6.1.4. El problema de la vacuidad, “es L (M) = 0” para una máquina de Turing arbitra
ria, también es una problema irresoluble. Demostrar que este problema es irre
soluble mediante la reducción del problema de la cinta en blanco al mismo»
6.1.5. Mediante reducciones apropiadas, demostrar que cada uno de los problemas si
guientes es irresoluble:
www.FreeLibros.com
RESOLUBIIJDAD 245
Los problemas irresolubles que hemos visto hasta ahora atañen a las propiedades
de las máquinas de Turing. El hecho de que el problema de parada sea irresolu
ble también tiene consecuencias en otra áreas. En muchos casos, es difícil obte
ner dichas consecuencias a partir del problema de parada. En esta sección vamos
a obtener la irresolubilidad del problema de correspondencia de Post (al que nos
referiremos como PCP).
Un caso del PCP se llama sistema de correspondencia de Post y está com
puesto por tres elementos: un alfabeto X y dos conjuntos A y 5, de cadenas de
Z+, donde ambos tienen el mismo número de cadenas. Supongamos que
A = {u\, U-2, U k ) y 5 = {vj, V2 , v ¿ } . Una solución para este caso (es decir,
una solución para el problema de correspondencia de Post) es una secuencia de
índices /j, ¿2 ,..., in, para los cuales ... u¡n = v;,v,\... v¡„.
Por ejemplo, si E = {a, b}, A = {a, abaaa, ab) y B = {aaa,ab, /;}, la solu
ción a este sistema de correspondencia de Post viene dada mediante í |= 2 .
¡2 = ¿3 = 1, e ¿4 = 3 ya que U2U\U\U?, = abaaaaaab - V2V1 V1 V3 .
Conviene interpretar el sistema de correspondencia de Post como una colec
ción de bloques de la forma
u¡
v¡
a abaaa ab
5 >
acia ab b
i= 1 i =2 i=3
*
Una solución se corresponde con la forma en la que se colocan los bloques
uno al lado del otro, de manera que la cadena formada con las celdas superiores
se corresponda con la cadena formada con las celdas inferiores. Por tanto, la so
lución anterior se representa
www.FreeLibros.com
246 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
abaaa a a ab
ab aaa aaa b
;,= 2 ¿2= 1 <3 = 1 (4= 3
ab baa aba
aba aa baa
/'= I i =2 i=3
ab ab
aba aba
¿i =1 í2= l
donde las cadenas superior e inferior no pueden ser iguales. Por tanto, ii debe ser
3, obteniéndose
ab aba
aba baa
¡i - 1 <2-3
ab aba aba
aba baa baa
í'i = 1 (2= 3 /3= 3
PCP fuera resoluble entonces se podría resolver el problema de parada para las
máquinas de Turing; es decir, el problema de parada para las máquinas de Tu
ring se reduciría al PCP. Primero modificaremos el PCP y demostraremos que si
el PCP fuera resoluble entonces el PCP modificado también lo sería.
En el PCP modificado (PCPM), buscaremos una solución para el sistema de
correspondencia de Post en la cual la secuencia de índices debe comenzar por 1
(es decir, se debe tener que i'i = 1). De esta forma, buscaremos una secuencia de
índices 1, ¿2, ..., in para la cual u\u ¡2 ... u¡n = v\v¡2 ... v¡n. Primero demostraremos
la conexión necesaria entre PCPM y PCP.
Demostración. Sean A = {mi, 112,..., Uk} y B = {vi, V2 , v * } una muestra del PCPM
con el alfabeto X. Supongamos que cada u¡ = a¡la ¡2 . . . a ¡ y cada Vi=b¡]b¡2 ...
b¡ , donde las aes y las bes son símbolos del alfabeto X. Para cada i, sea
yk+ \ = %, zx+1 = $%
Podemos afirmar que esta muestra del PCP tiene una solución si y solo si el
original de PCPM dado por A y B tiene solución. Para probar esto, obsérvese
que, si ¿i, ¿2 ,..., ir proporciona una solución para esta muestra de PCP, entonces
ya que todos los z¡ empiezan por $ y sólo yo empieza por $, debemos considerar
que í'i = 0. Es más, ir debe ser k + 1 puesto que sólo y* + 1 y Zk+\ coinciden en su
último símbolo. Por tanto, si hay una solución para esta m uestra de PCP, debe
estar formada por 0, i2, i%,..., k+ 1. Es decir, debemos tener
yo yk +1
zo ■C/f+ 1
www.FreeLibros.com
248 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
o, de forma equivalente,
MI $
Vi $qiw$
www.FreeLibros.com
RESOLUBILIDAD 249
$
$
y todos los bloques de la forma
a
0
pyi
qS
xp$
Y<?$
PTC$
para toda y e T - {&}.
El cuarto grupo se deriva del conjunto de estados de aceptación de M. Para
cada q e F y para todas o y x pertenecientes a T - {&}, añadimos los bloques
www.FreeLibros.com
250 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Ejemplo 6.2.1
8 {q„ a) a =a <5= b G= b
q\ (qi, b, R) (<?2. a, L) (<?2 , b, L)
q2 (9 3 , a, L) (qu a, R) (<?2, a, R)
Sea w ~ ab. La muestra del PCPM dada por la máquina de Turing y esta
cadena estaría representada por los siguientes bloques:
$
Grupo 1:
i= 1
a b
Grupo 2:
a b
i= 1 i =3 í= 4
qxci
Grupo 3: para 8 (¿7
bq2
i' = 5
aq\b bq\b
para 5 (qh b) = (q2, a, L)
q^aa q2ba
i~ 6 i=7
a<7i$ bq\$
para 8 (7/,, b) = (q2, b, L)
q2ab% q2bb$
i= 9
aq2a bq2a
para 8 (q2, a) = (4 3 , a, L)
q^aa qiba
¡'=10 í = 11
www.FreeLibros.com
RESOLUBILIDAD 251
<72$
para 8 {q2, b) = (q2, a, R)
«<72$
i = 13
aq$> £><73$
<73$ <73$
/ = 18 ¿=19
$<?3« $q¡b
$<73 $<73
¿= 20 i= 21
ff3 $ $
i r
i =22
Esto deja un “resto” de q\ab$ en los v,- que se debe ajustar a los u¡. Eligien
do M5W3M4, compensamos dicho resto e introducimos un nuevo resto de bqib%.
Este resto puede ser cubierto mediante Ú3W12M4, lo que introduce un nuevo resto
baq)%. Si seguimos realizando composiciones y generando restos (realizando en
algún caso un retroceso cuando se realiza un mala elección entre todas las op
ciones disponibles), se obtiene la solución:
www.FreeLibros.com
252 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
«1 $
VI $<?1W$
para empezar una solución (si es que existe alguna). La parte q\w que aparece
entre los $ de vi representa la configuración inicial de M como comienzo de la
computación de w. Entonces, si vv empieza por 0 y si 6 (q 1 , 0 ) = {qu, x, R), cons
truimos el par (u¡, v¡) como
q\Q
vqk
de forma que, para compensar el resto que le falla a la cadena del cuadrado su
perior, debemos construir la siguiente configuración de M en el cuadro inferior.
Entonces el resto se rellena añadiendo los símbolos restantes que faltan de w en
las cadenas superior e inferior. Por tanto, añadiremos todos los pares de la forma
0, $
J
0 / $
www.FreeLibros.com
RESOLUBILIDAD 253
g,
para / = 1 , 2 , •••, k
ca
el bloque
q<5k+ 1
xp
bloques de la forma
0 /
, para i ~ k + 2 ,..., k + m
0 ;
y finalmente el bloque
Lem a 6.2.2. M para sobre la entrada w si y sólo si hay una solución de la muestra deri
vada de PCPM.
♦
Demostración. Supongamos que M para sobre la entrada w. En ese caso hay una se
cuencia de configuraciones de M que comienza con q\\v y termina en un estado
www.FreeLibros.com
254 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
a,- $
Oi $
lo que hace que la cadena de las u¡ sea como $jcj$X2$ ... $ X k - i$x*$ y la cadena
de las V,- como $*i$X2 $ ... $x*_ i $ X k $ Xt. donde x ^ tiene al menos un símbolo me
nos que x ^ Repetimos esto, reduciendo la cadena que se encuentra entre el últi
mo par de $ de la v¿ hasta obtener cadenas de la forma:
u¡: $ x i $X 2$ . . . $ X k $ . . . $
v,-: $ X |$ X 2 $ . . . S x k S x i s S . . . $q$
q$$
$
el cual se puede añadir para obtener cadenas iguales. Por tanto, si M para sobre
la entrada vv, podemos obtener una solución para la muestra derivada del PCPM.
A la inversa, supongamos que M no para sobre la entrada vv. Por lo anterior,
las cadenas de las u¡ y las v, de la muestra derivada del PCPM representan confi
guraciones de M consecutivas. Ya que M nunca pasa a un estado de parada (to
dos los cuales son de aceptación), no se puede añadir ninguno de los pares
(u¡, v;) pertenecientes al cuarto grupo. Por inducción se demuestra que el desa
rrollo de las cadenas u¡ y v¡ siempre tiene un número distinto de signos $ y, por
tanto, esta muestra del PCPM no tiene solución. □
Demostración. Sea M una máquina de Turing arbitraria y vv una cadena arbitraria (su
ponemos que M para sólo cuando acepta una cadena). Si el PCP es resoluble, en-
/
www.FreeLibros.com
RESOLUBILIDAD 255
tonces por el Lema 6.2.1 podemos determinar si tiene solución la muestra del
PCPM derivada de M. Por tanto, por el Lema 6.2.2 se puede determinar si M
para sobre la entrada w. Ya que M era una máquina de Turing arbitraria y w una
cadena arbitraria, existe un algoritmo para resolver una muestra arbitraria del
problema de parada, lo que contradice el Teorema 6.1.1. Por tanto el PCP no es
resoluble. □
aaa baa
aa abaaa
í= 1 i= 2
ab bba aba
aba aa bab
/'= 1 i= 2 i- 3
6.2.3. Para cada uno de los siguientes sistemas de correspondencia de Post, obtener
una solución o demostrar que no existe.
a bb a
aa b bb
i= 1 i =2 (= 3
a aab abaa
aaa b ab
i= 1 (= 2 (= 3
ab ba b ba
(c)
a bab aa ab
(= 1 i=2 i=3 i' = 4
www.FreeLibros.com
256 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
ab baa aba
(d)
aba aa baa
i= 1 í=2 í=3
aa bb abb
(e) aab ba b
í=3
ab aa ab bb
(f)
bb ba abb bab
i= l i =2 ¿= 4
www.FreeLibros.com
RESOLUBILIDAD 257
F
FS=>
i= I
A"
x
=> wE
E
a
I jl
Finalmente, añadir el bloque
=>
S->aASB\aBb
aA aa
aB —» ab
bB -> bb
www.FreeLibros.com
258 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
6.2.9. Demostrar que el PCP sigue siendo irresoluble incluso si los sistemas de corres
pondencia de Post se restringen sobre alfabetos de dos símbolos.
6.2.10. Usar el PCP para demostrar que el problema de la vacuidad para las gramáticas
sensibles al contexto es irresoluble. [El problema de la vacuidad para gramáti
cas sensibles al contexto es, “Para una GSC arbitraria G, ¿L (G) = 0?”]. Indica
ción: Una consecuencia del Problema 5.6 es que, para cualquier autómata li
nealmente acotado M, podemos construir una gramática sensible al contexto
que genere L (M ). Queremos demostrar que PCP es resoluble si el problema de
la vacuidad para gramáticas sensibles al contexto es resoluble, para ello consi
deraremos un ALA que acepte sólo las cadenas y para las cuales
«/, ••• «4 :=Vf | ... v¡=y.
www.FreeLibros.com
RESOLUBIUDAD 259
para un w' e L + y un sufijo a/i:a,ti _, ... a¡2aiv Pero la única forma en que se puede
generar este sufijo es generando el prefijo u¡tui2 ... u\n , u¡n de Ga y el prefijo
v/,v¿2 ... v¡n_]v¡n de Gb; por tanto
y entonces la cadena u¡tu ¡2 ... es una solución del ejemplo del PCP. De lo
que se deduce que dicha instancia del PCP tiene una solución si y sólo si
L (Ga ) o L (G b) * 0.
S ^ > a S B \S S \e
B -> b
www.FreeLibros.com
RESOLUBILIDAD 261
www.FreeLibros.com
262 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
sería sencillo hacer que la pila también se vaciara cuando se hace una acepta
ción. La construcción para el lenguaje que cumple la condición 5 es similar.
Por tanto, el conjunto de las computaciones no válidas es la unión de dos
lenguajes independientes del contexto y un lenguaje regular, y además es un len
guaje independiente del contexto. (Teorema 3.6.3). Es más, podemos construir
una gramática independiente del contexto para este conjunto a partir de los dos
ADPND y la gramática regular.
Entonces, hemos demostrado lo siguiente:
T eorem a 6.3.4. Para una gramática independiente del contexto arbitraria, la pregunta
¿L (G) = Z*? es irresoluble.
www.FreeLibros.com
RESOLUBILIDAD 263
6.3.2. Los lenguajes L (Ga ) y L (GB) tienen una propiedad interesante. Si L (Ga) r>
L (Gb) es regular, entonces es vacía. Demostrar esta propiedad. Para ello utilice
el hecho de que para una gramática independiente del contexto G, el problema
“¿L (G) es regular?” es irresoluble.
6.3.3. Supóngase que no hay ninguna computación válida de M. ¿En qué afecta esto a
L(M)7
6.3.4. Construir expresiones regulares para cada uno de los lenguajes de las condicio
nes 1, 2 y 3, vistos antes del Lema 6.3.3.
6.3.5. Demostrar que L (G\) c L (G?_) es un problema irresoluble para las gramáticas
independientes del contexto G\ y Gz-
6.3.6. Demostrar que es irresoluble que R c L (G) para un lenguaje regular R arbitra
rio y una gramática independiente del contexto G.
6.3.7. Para una gramática G, independiente del contexto, arbitraria y para un lenguaje
R regular arbitrario, la pregunta “¿Está L (G) c RT’ ¿es una pregunta decidible?
[Indicación: L (G) ciR si y sólo si L (G) n R = 0 ¿Qué sabemos sobre el len
guaje L (G) n R í ¿Qué sabemos sobre la resolubilidad del problema de la va
cuidad para L{G) n R l
PROBLEMAS
6.1. En este problema vamos a usar una técnica distinta para llegar a la conclusión
del Teorema 6.3.1, es decir, el problema de la intersección vacía para las gramá
ticas independientes del contexto es irresoluble.
Sea M —(Q, X ,r , í = q\, b, F, 8 ) una máquina de Turing para la cual el sím
bolo $ í F. Recuérdese que una manera de representar configuraciones de una
máquina de Turing consiste en hacerlo mediante las cadenas de la forma
Oia 2 ... OkqOk+ 1 ... o,„ donde los a¡ e T y q e Q. Es decir, una configuración
es una cadena sobre F* QT*. Sean
A- z e T <2F e y l- z está en M}
B- { $z | jy, z e T* QT* e y l- z está en M }
www.FreeLibros.com
7
Introducción a la
complejidad computacional
www.FreeLibros.com
266 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Definición 7.1.1. Sea M una máquina de Turing con k cintas. Supongamos que, sobre
cualquier entrada de longitud n, la cabeza de lectura/escritura de M consulta al
menos S (ri) celdas de cualquiera de las cintas, donde S: N —» N es una función.
Entonces se dice que M tiene una complejidad espacial S (ri) o que es una má
quina de Turing espacialmente acotada por S (ri). También se dice que L (M) es
un lenguaje con complejidad espacial S (ri).
Ejemplo 7.1.1
Consideremos el lenguaje
L= [xyzy!\x,y<= X \ j e I/}
Una máquina de Turing no determinista con dos cintas, que acepta el len
guaje L tiene la entrada >v sobre la cinta 1. Cuando recorre w, averigua (de for
ma no determinista) dónde empieza y, lo copia en la cinta 2. Continúa el recorri
do después de copiar y, ignorando z,, y entonces debe averiguar (de forma no de
terminista) donde empieza yR. Mientras recorre yR, compara los símbolos de la
cinta 1 con los de la cinta 2. Suponiendo que la máquina de Turing comienza
con la cabeza de la cinta 1 situada sobre el primer símbolo de la entrada, obsér
vese que se recorre w en su totalidad, al igual que los b que siguen a u\ Es más,
en la cinta 2 se analizan tanto y como los blancos anteriores y posteriores. Por
tanto, una cota espacial para esta máquina de Turing es
Obsérvese que, cualquier S': N —> N para la cual 5 (ri) < S' (n) también es
una cota espacial.
Ya que una máquina de Turing recorre al menos una celda de cada cinta, la
cota espacial debe ser al menos 1. Para tratar la complejidad espacial, a veces
conviene suponer una máquina de Turing que tenga una única cinta de lectura y
una o más cintas de trabajo. Vamos a modificar la definición de complejidad es
pacial para que signifique que las cabezas de lectura/escritura de las cintas de
trabajo recorran como máximo S (ri) celdas. Debido a esto, no contamos las cel
das recorridas sino que simplemente analizamos la cadena de entrada. Por lo
tanto en algunas circunstancias puede darse el hecho de que la complejidad es
pacial sea menor que la lineal. *
Recuérdese que en la Sección 4.4 simulamos una máquina de Turing de k
cintas mediante una máquina de Turing de una cinta con 2k+ 1 pistas. Luego
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 267
podemos usar la misma simulación para nuestra máquina de Turing con k cintas
de trabajo y una cinta de entrada. Es más, si S (n) es una cota espacial para la
máquina de Turing con k cintas, la simulación no usará más de S (n) celdas de
las 2k + 1 pistas de sus cintas de trabajo, ya que S (n) también es una cota espa
cial para la simulación. Por tanto tenemos el siguiente teorema:
T eorem a 7.1.2. Si una máquina de Turing con k cintas de trabajo y cuya cota espacial
es S (n) acepta el lenguaje L, entonces una máquina de Turing con una cinta de
trabajo y cota espacial S (n) también lo acepta.
T eorem a 7.1.3. Sea L un lenguaje aceptado por una máquina de Turing M con k cintas
de trabajo, cuya cota espacial es S (n). Para todo c > 0, hay una máquina de Tu
ring espacialmente acotada por cS (n) que acepta L.
Lem a 7.1.4. Sea M una máquina de Turing Je k cintas con complejidad espacial S (n),
donde S (n) > log n. Entonces existe una contante c para la cual, si w es una en
trada cualquiera con longitud | w| = n, de modo que:
Para eliminar los bucles (es decir, la secuencia de DI repetidas) de una com
putación de aceptación de M, tenemos el siguiente corolario:
C orolario 7.1.5. Sea M una máquina de Turing de k cintas con complejidad espacial
5 (n), donde S (n) > log n. Entonces existe una constante c para la cual, si M
acepta la entrada w, entonces existe una computación a i i- <X2 i- ... i- cx,„ donde
los o.¡ son distintos y m < c i{n).
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 269
Añadiendo una cinta de trabajo que funcione como una pila para la máquina
de Turing determinista M i, podemos calcular el predicado PRODU
CE (/i, h , m). En cada llamada recursiva, M\ introduce I\, h e T en la pila. To
dos tienen una longitud máxima de S (n). En este caso, para determinar si M
acepta la entrada w, podemos evaluar PRODUCE (/), I/, ni), donde /i es una DI
inicial de M, //-es una DI de aceptación y m ~ c s (n\ [Obsérvese que m puede ser
codificado en modo binario usando como máximo S (n) log c bits o celdas. Lue
go, en cada apilamiento se podrían introducir (3 + log c) S (n) símbolos en la
pila.] Ya que el parámetro m es dividido por dos en cada llamada recursiva, se
hacen como máximo 1 + [log cs *w)1 = 1 + f S (n) log c] llamadas. Por tanto, la
pila necesita un espacio igual a (1 + [S (n) log <?]) ( 3 + 5 (n) log c). Es decir, M\
tiene una cota espacial ci (S (n))2, donde S (n) es la cota espacial de M y c\ es
una constante. Ya que M i es determinista, podemos usar una máquina de Turing
determinista con complejidad espacial o (5 (n ) ) 2 que acepta el mismo lenguaje
que la máquina de Turing no determinista M, y la cual usa un espacio de 5 (n)
para aceptar una cadena.
Obsérvese que lo anterior depende totalmente del valor de S (n). Para la en
trada w de longitud |vv| = n, si sabemos el valor de S (n), podemos calcular
m = cs (li>y determinar las DI I \ , h t í con una longitud apropiada, para determi
nar si M puede aceptar w de forma determinista en un espacio c\ (S (n))2. Si no
sabemos el valor de S (n), no podemos determinar la longitud máxima de una DI
o la longitud máxima de una computación de aceptación.
Definición 7.1.6. Se dice que una función S (n) es totalmente construible* en espacio si
hay una máquina de Turing Ms que tiene una cota espacial 5 (n) y, para toda en
trada de longitud n, Ms usa exactamente las S (n) celdas de su cinta de trabajo.
www.FreeLibros.com
270 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Definición 7.1.8. La familia de los lenguajes aceptados por máquinas de Turing deter
ministas con complejidad espacial S (n) es ESPACIOD (S (n)). La familia de los
lenguajes aceptados por máquinas de Turing no deterministas con complejidad
espacial S (n) es ESPACION (S («)). Estas clases se conocen como clases de
complejidad espacial.
Teorema 7.1.9. Sean Si, 5 2 y 5 funciones de N en N . Supongamos que Si (n) < S2 («)
para todo n, y que c > 0. Entonces
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 271
n-»o® S 2 (n)
Obsérvese que el Teorema 7.1.10 no requiere que Si (n) < S 2 (n) para todo
n. Si, además de los requisitos que necesita el Teorema 7.1.10, también tenemos
que S] (n) < S 2 (n) se cumple para todo n, entonces ESPACIOD (Si («)) c ES-
PACIOD (S2 («))> es decir, se cumple la inclusión propia.
7.1.1. Sea M una máquina de Turing de una cinta, definida mediante las transiciones
que damos más abajo_y en la que #3 es el único estado de aceptación y <71 es el
estado inicial. Supongamos que el alfabeto de la cinta es {a, b, b}. Obsérvese
que L(M) = {a2k + lb\k> ()}. Construir una máquina de Turing M' para la cual
L (M') = L (M), pero de forma que W tenga como símbolos de la cinta codifica
ciones de pares de símbolos de la cinta de M (véase Teorema 7.1.3).
www.FreeLibros.com
272 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
7.1.2. En este problema derivamos la constante c del Lema 7.1.4, haciendo referencia
a las observaciones que preceden al Lema 7.1.4.
(a) Para log n < S («), demostrar que log|r| (n + 2) < (k + 1) S (n) con lo que
(n + 2) < | r l (í+1)S<").
(b) Usar la parte (a) para demostrar que (n + 2) (5 («))* < | r | (2*+
(c) Obtener una constante c para la cual | Q \ (n + 2) ITI * \ s (n))k < cs
7.1.3. ¿A cuál de las clases de complejidad espacial pertenecen los siguientes tipos de
lenguajes? Lenguajes regulares, lenguajes independientes del contexto, lengua
jes sensibles al contexto.
7.1.4. Demostrar que, si una máquina de Turing con cota espacial S (n) > log n acepta
el lenguaje L, entonces existe una máquina de Turing con una cota espacial
S (n) que acepta el lenguaje L y que para sobre todas las cadenas. (Por tanto, los
lenguajes espacialmente acotados son lenguajes recursivos).
Definición 7.2.1. Sea M una máquina de Turing de k cintas. Supongamos que M realiza
como máximo T (n) movimientos sobre toda cadena de longitud n y para una
función T: N —>N . Entonces se dice que M tiene complejidad temporal T (n) o
que es una máquina de Turing con cota temporal T («). Además se dice que
L (M) es un lenguaje temporalmente acotado por T (ri) o con complejidad tem
poral T (n).
Obsérvese que, para que una máquina de Turing lea su entrada, debe reali
zar al menos n + 1 movimientos. Por tanto, T (n) > n + 1 para cualquier cota
temporal T (n).
Ejemplo 7.2.1
«
Consideremos el lenguaje L = {xcx!\x e X '}. Para reconocer el lenguaje L
con una máquina de Turing de una cinta, podemos recorrer la entrada de atrás
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 273
hacia adelante comparando los símbolos del comienzo con los símbolos del fi
nal hasta que encontremos la c central. Cada recorrido completo a través de la
entrada requiere 2 1 movimientos, donde t es la longitud actual de la cadena de
entrada “no comparada”. En cada recorrido completo, t se reduce en 1. Esto
continúa hasta que t = 1 (la c está en el centro). Por tanto, tenemos que
T{n) = n2 + n - 2
www.FreeLibros.com
274 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
(aquí, el estado inicial es q\, y <74 es el único estado final), Para construir una
máquina de Turing M', que una las dos cintas de celdas de M en una sola celda,
necesitamos un alfabeto
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 275
= (n + 2 ) + — + 8 ^ ^ + 7<
m m
^ 2 T{n) l T in )
+ T (n) — + 1
d dm m
d dm m
\
www.FreeLibros.com
276 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Teorema 7.2.2. Sea k > 1. Supongamos que inf„ _><*>~ Si la máquina de Turing
de k cintas con complejidad temporal T («), acepta el lenguaje L, entonces, para
c > 0, la máquina de Turing de k cintas con complejidad temporal cT (n) también
acepta L.
Obsérvese que si L es aceptado por una máquina de Turing de una cinta con
cota temporal T (/?), entonces también es aceptado por una máquina de Turing de
k cintas con complejidad temporal T (n) para k> 1. Por tanto, obtenemos el si
guiente corolario:
Corolario 7.2.3. Sea inf„ _> Si una máquina de Turing que tiene complejidad
temporal T (n) acepta L, entonces, para todo c > 0, una máquina de Turing con
complejidad temporal cT (n) acepta L.
Teorema 7.2.4. Si L es aceptado por una máquina de Turing de k cintas con compleji
dad temporal T (tí) y si inf„ _> = 00, entonces L es aceptado por una máqui
na de Turing de una cinta que tiene complejidad temporal (T («))2.
Demostración. Si una máquina de Turing de una cinta con complejidad temporal T («),
acepta el lenguaje L , entonces, puesto que T («) < (T (n ))2 para todo n, L también
es aceptado por una máquina de Turing de una cinta con complejidad ( T (n))2.
Supongamos que L se acepta mediante una máquina de Turing con k > 1 cintas y
cota temporal T (n). Consideramos una simulación de una máquina de Turing de
k cintas por medio de una máquina de Turing de una cinta, como vimos en la
Sección 4.4. Después de t movimientos, los marcadores de cabeza pueden estar
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 277
Definición 7.2.5. La familia de los lenguajes aceptados por máquinas de Turing deter
ministas con complejidad temporal T (ri) es TIEMPOD (T (ri)). La familia de los
lenguajes que aceptan las máquinas de Turing no deterministas con complejidad
temporal T (ri) es TIEMPON (T (ri)). Dichas clases se llaman clases de compleji
dad temporal.
T eorem a 7.2.6.
1. Si Ti (ri) < T2 (ri), entonces TIEMPOD (Ti (n)) c TIEMPOD (T2 («)).
2. Si T\ (ri) < T2 (ri), entonces TIEMPON (Ti («)) c TIEMPON (Tz (ri)).
3. TIEMPOD (T (ri)) c TIEMPON (T (ri)).
4. Si inf„ _> co = <x>, entonces TIEMPOD (T (ri)) - TIEMPOD (cT (ri))
para todo c > 0 .
Las partes 1 y 2 del Teorema 7.2.6 dicen que todo lenguaje con complejidad
temporal Ti (ri) también tiene complejidad temporal Ti (ri) para T2 (n) “mayor”
que Ti (ri). Es lógico preguntarse cuánto más grande debe ser T-¿ (n), ya que hay
lenguajes con complejidad temporal T2 (ri) que no tienen complejidad temporal
Ti (ri). La parte 4 del Teorema 7.2.6 dice que si Ti (ri) satisface inf„ _*«,
entonces T2 (n) debe ser mayor que una constante multiplicada por Ti (ri). El
Teorema 7.2.8 el cual presentaremos sin realizar su demostración, nos propor
ciona las condiciones suficientes para que existan lenguajes que pertenezcan a
TIEMPOD (T2 («)) que no estén en TIEMPOD (Ti (n)). El Teorema 7.2.8 de
pende de la siguiente definición, la cual es análoga a la Definición 7.1.6.
www.FreeLibros.com
278 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Definición 7.2.7. Una función T (n) es totalmente contruible en tiempo si existe una
m áquina de Turing acotada temporalmente mediante T (n) que tenga exactamen
te una duración de T (n) sobre todas las cadenas de longitud n.
i n f 7i ( n ) l og( 7i PQ) _ 0
«-*«> Tz (n)
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 279
hasta llegar a T (n) movimientos. Sea r la longitud de una DI. Suponiendo que
generamos las DI una tras otra sobre la cinta, realizaremos como máximo 3r mo
vimientos para generar y comprobar cada DI. En cada etapa hay como máximo
DI siguientes. Por lo tanto, cada etapa requiere como máximo 3?r/( "f mo
vimientos. En esta búsqueda hay como máximo T (n) etapas, de modo que dicha
búsqueda requiere 3rT (n) c 1 (n) movimientos. La longitud de una DI es como
máximo r = 1 + k (T (n) + 2); por tanto, dada una constante d elegida de forma
apropiada, la búsqueda requiere d 1 (n) movimientos como máximo. Veamos el
siguiente teorema:
www.FreeLibros.com
280 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
Definición 7.2.12. La clase T se compone de todos los lenguajes que acepta una m á
quina de Turing determinista que tiene una cota temporal polinómica. La clase
5\¿!P se compone de todos los lenguajes que aceptan máquinas de Turing no de
terministas que tengan una cota temporal polinómica.
* iT = ( J TIEMPON (nk)
n>i
Finalmente, puesto que TIEMPOD (nk) c TIEMPON (nk) para todo k, obte
nemos que T c £A¿5P. Desgraciadamente, esto queda un poco lejos de los conoci
mientos que tenemos. Uno de los problemas más importantes que todavía no ha
resuelto la ciencia de la computación es la cuestión de la igualdad de 5P y ü iT .
Responder afirmativamente implica tener que demostrar que todo lenguaje de
‘H jP también es de T. Esto requeriría encontrar alguna forma de transformar una
máquina de Turing no determinista con cota temporal polinómica en una máqui
na de Turing determinista con cota temporal polinómica (los polinomios no tie
nen por qué ser del mismo grado). El Teorema 7.2.10 dice que podemos realizar
la transformación de una máquina de Turing no determinista a una determinista
e incrementamos la cota temporal en una cantidad exponencial. Esto no quiere
decir que la transformación que necesitamos sea imposible, sólo que no sabemos
cómo realizarla.
Por otro lado, demostrar que T requiere que encontremos un lenguaje
que esté en pero no en T. Si L es dicho lenguaje, debemos demostrar qué no
hay ninguna máquina de Turing con cota temporal polinómica que acepte L. De
todas formas, hay lenguajes de9 ¿ T que no sabemos si están en T o no lo están.
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 281
7.2.1. Demostrar que, si una máquina de Turing de k cintas con cota temporal
T (n) = en para k > 1 y una constante c acepta L, entonces, para todo e > 0, hay
una máquina de Turing con cota temporal (1 + e) n que acepta L.
7.2.2. ¿Es cierto que TIEMPOD (2r ) c TIEMPOD (2r +")? ¿Por qué?
a. Si L 2 e T entonces L\ e íP.
b. Si ¿2 e 9¿T entonces L\ e $¿T.
Definición 7.3.3. Para toda clase C de lenguajes, un lenguaje L se dice que es C-difícil
(o difícil para la clase C ) si, para todo L' e C, L' <p L. Es decir, todos los lengua
jes se reducen a L en tiempo polinómico.
En particular L es í\¿!P-difícil si para todo lenguaje L' e 9¿T, L' <,, L.
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 283
C = [ x l V X2, X ] V X 2 V X 3, X l V X 2 V X 3}
Dada una cláusula codificada y una asignación de valores de verdad para las
variables, podemos evaluar la cláusula en tiempo polinómico. Por tanto, dada
una asignación de valores de verdad podemos determinar, en tiempo polinómi
co, si se satisface un conjunto codificado de cláusulas. Por tanto Lsat está en 9{,T
puesto que una máquina de Turing no determinista puede determinar si w e Lsat,
buscando primero una asignación de valores de verdad y después evaluando las
cláusulas en tiempo polinómico. Así, tendremos el siguiente lema:
*. V e r n o ta de la p ág in a an terio r.
www.FreeLibros.com
284 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
286 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
H¡j v Q is v Siji v H¡ + 1j + d
variables. Ya que las cláusulas pueden contener una variable o su negación, hay
al menos c (T (n) + 1 ) 2 variables distintas y sus negaciones para una constante c
elegida apropiadamente. Por tanto, el número máximo de literales que puede ha
ber en una cláusula es c (T (n) + l) 2. De lo que se deduce que el tamaño de Ew es
como máximo T {n)r c (T (n) + l)2, lo cual estará acotado por algún polinómico
en T (n), llamado T(ny La codificación de cada variable requiere un espacio que
estará acotado por el logaritmo del número de variables*, ya que codificamos los
índices de las variables en binario. Sin embargo, esto requiere que las variables
tengan un único índice y, por lo tanto, se deben volver a indexar antes de codifi
carlas. Esto se realiza en tiempo polinómico en la longitud de Ew, lo que a su vez
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 287
Este corolario nos muestra una técnica para obtener otros lenguajes que
sean ^ in co m p leto s. Dado un lenguaje L de 9{_P, si podemos reducir a L, en
tiempo polinómico, un lenguaje que sea incompleto, entonces L también es
J^n-completo. Cuando nos encontramos con un lenguaje que se sospecha que es
SY/jP-completo, podemos aplicar fácilmente este corolario y demostrar que lo es.
Otras veces, L puede ser similar a un lenguaje L, que hemos demostrado que es
íV^n-completo. A veces la similitud permite que la demostración de que L' es
5\£íP-completo pueda ser adaptada para demostrar lo mismo con respecto a L.
7.3.1. Hemos tratado las cláusulas codificadas como cadenas sobre el alfabeto
‘v ’, *&’, ‘0’, ‘1’}. Dada una*asignación de valores de verdad, ¿se
podría codificar de forma que pudiera ser analizada por una máquina de Turing
que pudiera evaluar la cláusula codificada?
www.FreeLibros.com
288 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
7.3.2. Describir cómo una máquina de Turing puede evaluar un conjunto de cláusulas
en tiempo polinómico.
7.3.3. Describir una técnica para volver a indexar los literales de en tiempo polinó
mico en el tamaño de Ew.
7.3.4. Demostrar que, si T («) es un polinómico en n, entonces la siguiente expresión
también lo es:
ak T(n)k + ak. \ T(n )k ~ 1 + ... +ai T{n) + ao
PROBLEMAS
7.1. Hemos mostrado muchos lenguajes que son 3\£íP-co'mpletos. En este problema
vamos a estudiar un lenguaje derivado de un problema llamado 3SAT. 3SAT es
un problema de satisfactibilidad como SAT, excepto porque las cláusulas impli
cadas en el mismo están formadas por tres literales (en SAT no se restringió el
número de literales).
Obviamente, una máquina de Turing que acepte Lsat, se puede adaptar para
que acepte L3sM. La modificación que se necesita consiste en una “submáquina”
que comprueba que la muestra codificada está formada por cláusulas que con
tienen exactamente tres literales. El resto de la máquina Lsat no se tiene por qué
cambiar. Por tanto, e 5\£5?.
Para realizar la reducción en tiempo polinómico de Lsat a se necesita
tomar cadenas que potencialmente pertenecen a LiM y hacer que parezcan cade
nas de L3saf. En vez de tratar este problema a nivel de lenguaje, lo vamos a tratar
a nivel de cláusula. Es decir, cogeremos una muestra de SAT y la transformare
mos en una muestra de 3SAT.
Supongamos que tenemos un conjunto de cláusulas C: es decir, tenemos
una muestra de SAT. Si todas las cláusulas están formadas por tres literales,
quedará probado. Si todas las cláusulas no están formadas por tres literales, de
bemos convertir C en C', de forma que todas las cláusulas de C' estén formadas
por tres literales, por lo tanto C es satisfactible sólo si C lo es y, por tanto, cual
quier asignación de valores de verdad que satisfaga C , también satisfará C. Su
pongamos que c es una cláusula de C que no contiene tres literales. Podemos
considerar tres casos. La cláusula c puede contener uno, dos, o más de tres lite
rales. Supongamos que c contiene dos literales, entonces c = *i v jr2. Podemos
construir dos cláusulas ci y c2 con tres literales a partir de c y con la propiedad
de que una asignación de valores de verdad que sea satisfactible para el conjun
to {ci, c2) induce una asignación de valores de verdad para las variables de c, y
viceversa. Sea a una nueva variable booleana (la cual no aparece en ninguna de
las cláusulas de C), Obsérvese que cj = .Y| v j 2 v a*y C2 = x¡ vjc2v a son las
dos cláusulas que se querían. t
1. Supongamos que c es una cláusula que está formada por un único literal.
Demostrar cómo se construye un conjunto D de cláusulas que tengan la
www.FreeLibros.com
INTRODUCCIÓN A LA COMPLEJIDAD COMPUTACIONAL 289
www.FreeLibros.com
www.FreeLibros.com
Referencias y bibliografía
El material para realizar este libro proviene de muchas fuentes, al igual que la
forma en la que se presenta. En este pequeño comentario vamos a mencionar
ciertos temas que provienen de fuentes particularmente importantes. En la bibli
ografía que aparece a continuación, se enumeran muchas de las fuentes que el
autor usó para preparar este texto. Sin embargo, no se pretende que este comen
tario y la bibliografía sean particularmente exhaustivos o completos.
El Problema 1.8 se debe a Salomaa [11]. El Lema 2.8.2 es una modificación
de un teorema de Arden [1], Este lema se usa para desarrollar el Lema 2.8.3, el
cual se basa en un trabajo realizado por Brzozowski [2], Éste también proporcio
na una técnica elegante para derivar un autómata finito a partir de una expresión
regular. El Problema 2.4 procede del Harrison [4], La Sección 4.3 debe sus orí
genes a Lewis y Papadimitriou [7], Su libro trata de la construcción de máquinas
de Turing, más de lo que nosotros lo hemos hecho.
Los libros mencionados anteriormente, así como los libros restantes, se usa
ron para gran parte del desarrollo y la presentación. Los excelentes libros de Le
wis y Papadimitriou [7], Harrison [4] y Hopcroft y Ullman [5] son clásicos en
esta materia. Los otros tres son apropiados para ser estudiados después de este
libro, como es Wood [13]. El primero de los libros de Hopcroft y Ullman [5] es
un compendio sobre lenguajes formales, teoría de autómatas y complejidad
computacional, que se desarrollan aún más en (6 ]. Los libros de Linz [8 ], Carroll
y Long [3], Rayward-Smith [10], Martin [9] y Sucjkamp [12] son introducciones
sobre este tema y son similares a este libro. Los cinco son una excelente refer
encia durante la lectura de este libro.
www.FreeLibros.com
292 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
REFERENCIAS
www.FreeLibros.com
Indice analítico
A B
www.FreeLibros.com
294 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
ÍNDICE ANALÍTICO 295
Conjunción, 2 D
Conjunto
De Morgan, leyes de, 4, 5
cardinalidad, 22, 23
para conjuntos, 1 0
' complemento, 9
Decidir un lenguaje, 210
de cadenas aceptadas, 78
Derecha, derivación por la, 121
de significados, 4
de valores de verdad, 4 Derecha, producción regular por la,
directo, 72 144
disjunto, 8 Derecha, producciones recursivas
elemento de, 6 por la, 163
enumerable, 25 Derecha, gramática regular por la,
equivalente, 7 109,222
familia indexada, 7 Derivación
finalmente periódico, 1 0 0 árbol, 117
finito, 23 por la derecha, 1 2 1
igualdad, 7 por la izquierda, 1 2 1
inductivo, 19 Descripción instantánea (DI), 147,267
infinito, 23 Determinista, autómata de pila, 170
intersección, 8 Determinista, Autómata finito, 53
leyes de De Morgan para, 10 definición, 56
no numerable, 26 equivalente, 60
nulo, 7 equivalente a AFND, 6 6
numerable, 25 estados redundantes, 94
potencia, 7 mínimo, 95
producto cartesiano, 1 0 Determinista independiente del
unión de, 8 contexto, lenguaje, 170
universal, 9 DI, 147, 267
vacío, 7 Diagonalización, 26
Construible, función Difícil, 282
totalmente en espacio, 269 Directo (de un AFD), conjunto, 72
totalmente en tiempo, 278 Disjunto, conjunto, 8
Contraejemplo, 5 Distinguible, estados, 95
Cook, teorema de, 287 Disyunción, 2
Correspondencia uno-a-uno, 16 Dominio de una relación, 12
Cuantificación Dos pilas, autómata de pila con, 172
existencial, 5 Du, Ding-Zhu, xii
universal, 5
CYK, algoritmo, 140 E
Chomsky, jerarquía de, 233
Chomsky, Forma normal de, 130 £-transiciones, 70
Chomsky, Noam, 233 Elemento, 6
www.FreeLibros.com
296 TEORIA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
ÍNDICE ANALÍTICO 297
www.FreeLibros.com
298 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
www.FreeLibros.com
ÍNDICE ANALÍTICO 299
www.FreeLibros.com
ÍNDICE ANALÍTICO 301
www.FreeLibros.com