Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TComputacion Rodrigo de Castro
TComputacion Rodrigo de Castro
Lenguajes, automatas,
gramaticas
Ph.D. en Matematicas
University of Illinois, U.S.A.
Departamento de Matematicas
Universidad Nacional de Colombia, Bogota
Teora de la Computacion
Lenguajes, aut
omatas, gramaticas
c
Indice general
Pr
ologo
Introducci
on. Qu
e es la Teora de la Computaci
on?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. Aut
omatas finitos
2.1. Aut
omatas finitos deterministas (AFD) . . . . . . . .
2.2. Diagrama de transiciones de un automata . . . . . . .
2.3. Dise
no de aut
omatas . . . . . . . . . . . . . . . . . . .
2.4. Aut
omatas finitos no-deterministas (AFN) . . . . . . .
2.5. Equivalencia computacional entre los AFD y los AFN
2.6. Aut
omatas con transiciones (AFN-) . . . . . . . .
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
7
8
8
9
9
10
11
12
14
14
17
18
19
.
.
.
.
.
.
25
25
28
29
33
38
43
iv
INDICE GENERAL
4.3. Arbol
de una derivaci
on . . . . . . . . . . .
4.4. Gramaticas ambiguas . . . . . . . . . . . .
4.5. Gramaticas para lenguajes de programaci
on
4.6. Gramaticas para lenguajes naturales . . .
4.7. Gramaticas regulares . . . . . . . . . . . . .
4.8. Eliminaci
on de las variables in
utiles . . . .
4.9. Eliminaci
on de las producciones . . . . .
4.10. Eliminaci
on de las producciones unitarias .
4.11. Forma Normal de Chomsky (FNC) . . . . .
4.12. Forma Normal de Greibach (FNG)
. . .
4.13. Lema de bombeo para LIC . . . . . . . . .
4.14. Propiedades de clausura de los LIC . . . . .
4.15. Algoritmos de decisi
on para GIC . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
contexto
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
5. Aut
omatas con pila
5.1. Aut
omatas con Pila Deterministas (AFPD) .
5.2. Aut
omatas con pila no-deterministas (AFPN)
5.3. Aceptacion por pila vaca . . . . . . . . . . .
5.4. Aut
omatas con pila y LIC. Parte I. . . . . . .
5.5. Aut
omatas con pila y LIC. Parte II.
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
49
52
55
57
58
.
.
.
.
.
.
.
.
.
.
.
.
63
63
67
69
72
74
75
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
81
81
82
88
91
94
96
98
102
107
110
113
120
125
130
135
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
143
143
149
154
157
160
INDICE GENERAL
6. M
aquinas de Turing
6.1. M
aquinas de Turing como aceptadoras de lenguajes . . . . .
6.2. Subrutinas o macros . . . . . . . . . . . . . . . . . . . . . .
6.3. M
aquinas de Turing como calculadoras de funciones . . . .
6.4. M
aquinas de Turing como generadoras de lenguajes . . . . .
6.5. Variaciones del modelo estandar de MT . . . . . . . . . . .
6.5.1. Estado de aceptaci
on u
nico . . . . . . . . . . . . . .
6.5.2. M
aquina de Turing con cinta dividida en pistas . . .
6.5.3. M
aquina de Turing con m
ultiples cintas . . . . . . .
6.5.4. M
aquinas de Turing no-deterministas (MTN) . . . .
6.6. Simulacion de aut
omatas por medio de m
aquinas de Turing
6.6.1. Simulacion de automatas . . . . . . . . . . . . . . .
6.6.2. Simulacion de automatas con pila . . . . . . . . . . .
6.7. Aut
omatas con dos pilas (AF2P) . . . . . . . . . . . . . .
6.8. Propiedades de clausura . . . . . . . . . . . . . . . . . . . .
6.9. MT, computadores, algoritmos y la tesis de Church-Turing
6.9.1. M
aquinas de Turing y algoritmos . . . . . . . . . . .
6.9.2. M
aquinas de Turing y computadores . . . . . . . . .
167
167
174
176
179
180
180
181
181
183
186
186
186
188
193
198
198
199
7. Problemas indecidibles
7.1. Codificaci
on y enumeraci
on de m
aquinas de Turing
7.2. M
aquina de Turing universal . . . . . . . . . . . .
7.3. Algoritmos de aceptaci
on para lenguajes RE . . . .
7.4. Lenguajes que no son RE . . . . . . . . . . . . . .
7.5. Lenguajes RE no recursivos . . . . . . . . . . . . .
7.6. Problemas indecidibles o irresolubles . . . . . . . .
201
201
206
209
211
212
215
Bibliografa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
221
vi
INDICE GENERAL
Prologo
Este libro contiene lo mnimo que los estudiantes de las carreras de ingeniera de sistemas y de matem
aticas deberan saber sobre los fundamentos
matem
aticos de la teora de la computaci
on. Esta basado en el material
de clase utilizado por el autor durante los u
ltimos a
nos en la Universidad
Nacional de Colombia, sede de Bogota.
A estudiantes y profesores
El libro esta escrito tanto para estudiantes de matem
aticas quienes, es
de suponer, tienen m
as experiencia con razonamientos abstractos y demostraciones como para estudiantes de ingeniera. Es el profesor quien debe
establecer el tono del curso, enfatizando ya sea el rigor matem
atico o una
presentaci
on m
as intuitiva y practica. Los resultados estan presentados en
forma de teoremas, corolarios y lemas, con sus respectivas demostraciones;
estas pueden omitirse, si as lo estima el profesor. En los cursos dirigidos
a estudiantes de ingeniera de sistemas, el enfasis debe residir tanto por
parte del profesor como por parte del estudiante en los ejemplos y ejercicios practicos; hay que resaltar m
as el significado de los enunciados que
sus demostraciones formales. El libro contiene gran cantidad de ejemplos y
problemas resueltos, con aplicaciones o ilustraciones directas de la teora.
Como prerrequisito, es imprescindible que el estudiante haya tomado al
menos un curso de matem
aticas discretas en el que se haya familiarizado
con las nociones basicas y la notaci
on de la teora intuitiva de conjuntos,
grafos, induccion matem
atica y l
ogica elemental. La experiencia previa en
programaci
on es muy u
til pero, de ninguna manera, necesaria.
El material se presenta en secciones relativamente cortas, lo que permite
alguna flexibilidad en la selecci
on de los topicos del curso. As, si el tiempo
1
PROLOGO
Agradecimientos
Durante la elaboracion de estas notas he recibido por parte de estudiantes
atentos muchas observaciones u
tiles que han ayudado a mejorar sustancialmente la presentaci
on. Quiero expresarles mis agradecimientos a todos
ellos, demasiado numerosos para mencionarlos individualmente.
La primera versi
on del curso virtual fue realizada con la ayuda del estudiante de posgrado Adolfo Reyes, a quien expreso mi gratitud y reconocimiento. Para la preparacion de la presente versi
on tuve la suerte de
contar con la colaboracion del estudiante de matem
aticas Camilo Cubides,
con quien estoy muy agradecido por la calidad y seriedad de su trabajo.
Finalmente, quiero agradecer a Gustavo Rubiano, Director de las oficina
de publicaciones de la Facultad de Ciencias, por su continuo apoyo y su
cooperacion desinteresada.
Introduccion
Qu
e es la Teora de la Computaci
on?
La Teora de la Computacion estudia modelos abstractos de los dispositivos
concretos que conocemos como computadores, y analiza lo que se puede y no
se puede hacer con ellos. Este estudio te
orico se inicio varias decadas antes
de la aparicion de los primeros computadores reales y contin
ua creciendo,
a medida que que la computaci
on incrementa su sofisticacion.
Entre los muchos topicos que conforman la teora de la computaci
on,
s
olo tendremos la oportunidad de tratar someramente los dos siguientes:
Modelos de computaci
on. Las investigaciones en este campo comenzaron en la decada de los 30 del siglo XX con el trabajo del l
ogico norteamericano Alonzo Church (19031995) y del matem
atico brit
anico Alan Turing
(19121954). Church introdujo el formalismo conocido como calculo- y
enuncio la tesis hoy conocida como tesis de Church de que las funciones efectivamente computables, es decir, computables por cualquier metodo
computacional concebible, son exactamente las funciones -computables.
En contraste con el enfoque m
as abstracto de Church, Turing (quien fue
alumno doctoral de Church en la universidad de Princeton) propuso un
modelo concreto de m
aquina computadora, hoy conocida como la m
aquina
de Turing, capaz de simular las acciones de cualquier otro dispositivo fsico
de computaci
on secuencial.
Curiosamente, las propuestas de Church y Turing se publicaron exactamente en el mismo a
no: 1936. Los dos formalismos resultaron ser equivalentes y, desde entonces, se han propuesto muchos otros modelos de computaci
on. Como todos han resultados ser equivalentes entre s, ha ganado
3
INTRODUCCION
aceptaci
on universal la tesis de Church-Turing: no hay modelo de computaci
on m
as general ni poderoso que la m
aquina de Turing.
En los a
nos 40 y 50 del siglo XX se adelantaron investigaciones sobre
m
aquinas de Turing con capacidad restringida, surgiendo as la nocion de
m
aquina de estado finito o aut
omata finito (aut
omata es sinonimo de
maquina de computo automatico). Los automatas han resultado ser modelos muy u
tiles para el dise
no de diversos tipos de software y hardware.
Lenguajes y gram
aticas formales. Una lnea investigativa, aparentemente alejada de los modelos de computaci
on, surgio con los estudios del
ling
uista norteamericano Noam Chomsky1 . Chomsky introdujo en 1956 la
noci
on de gram
atica generativa con el prop
osito de describir los lenguajes
naturales como el espa
nol, el ingles, el frances, etc. Chomsky clasific
o las
gramaticas en cuatro tipos, dependiendo de la forma de sus producciones,
que son las reglas que utiliza una gramatica para generar palabras o cadenas de smbolos. Pocos a
nos despues se establecio que hay una estrecha
relaci
on entre aut
omatas y gramaticas: los lenguajes de la llamada jerarqua
de Chomsky corresponden a los lenguajes que pueden ser reconocidos por
tipos especiales de aut
omatas.
La interacci
on entre los aut
omatas (mecanismos para procesar cadenas de smbolos) y las gramaticas (mecanismos para generar cadenas de
smbolos) es una fuente de resultados profundos y significativos. Desde la
aparicion de los influyentes textos de Hopcroft y Ullman ([HU1], 1969) y
([HU2], 1979), un curso semestral basico de teora de la computaci
on se
ha centrado en el estudio de aut
omatas y gramaticas. Estas notas de clase
reflejan esa tradicion.
1
En el a
no 2002, la Universidad Nacional de Colombia otorg
o el doctorado Honoris
Causa a Noam Chomsky.
Captulo
1.1.
Alfabetos y cadenas
Ejemplo
Observese que aba = aab. El orden de los smbolos en una cadena es significativo ya que las cadenas se definen como sucesiones, es decir, conjuntos
secuencialmente ordenados.
Ejemplo
Ejemplo
programaci
on (como Pascal o C) es el conjunto de caracte-
Ejemplo
res ASCII (o un subconjunto de el) que incluye, por lo general, las letras
may
usculas y min
usculas, los smbolos de puntuaci
on y los smbolos matematicos disponibles en los teclados estandares.
El conjunto de todas las cadenas sobre un alfabeto , incluyendo la
cadena vaca, se denota por .
Ejemplo
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.
En la siguiente tabla aparece la notaci
on corrientemente utilizada en la
teora de la computaci
on. De ser necesario, se emplean subndices.
Notaci
on usada en la teora de la computaci
on
denotan alfabetos.
a, b, c, d, e,. . .
u, v, w, x, y, z, . . .
, , , . . .
DE CADENAS
1.2. CONCATENACION
Hay que distinguir entre los siguientes cuatro objetos, que son
todos diferentes entre s: , , {} y {}.
1.2.
Concatenaci
on de cadenas
1.3.
1.4.
0, si u = ,
n, si u = a1 a2 an .
Ejemplo
Ejemplo
|aba| = 3, |baaa| = 4.
mos nunca en este libro!); la presentamos aqu para enfatizar los conceptos
involucrados e ilustrar los razonamientos estrictos.
Solucion.
lado,
|wn | + |wm | = | ww w | + | ww w | = n|w| + m|w|.
n veces
m veces
1.5.
Reflexi
on o inversa de una cadena
La reflexi
on o inversa de una cadena u se denota uR y se define
descriptivamente as:
uR =
,
si u = ,
an a2 a1 , si u = a1 a2 an .
para u .
Ejercicios de la secci
on 1.5
1.6.
Ejemplo
10
1.7.
Prefijos de u :
Sufijos de u :
b
bc
bcb
bcba
bcbaa
bcbaad
bcbaadb
b
db
adb
aadb
baadb
cbaadb
bcbaadb
Lenguajes
lenguaje vaco.
lenguaje de todas las cadenas sobre .
B
A
especificados.
Ejemplos
11
1.8.
Union
Interseccion
Diferencia
Complemento
Estas operaciones entre lenguajes se llaman operaciones conjuntistas o booleanas para distinguirlas de las operaciones ling
usticas (concatenacion, potencia, inverso, clausura) que son extensiones a los lenguajes de las operaciones entre cadenas.
12
1.9.
Concatenaci
on de lenguajes
La concatenaci
on de dos lenguajes A y B sobre , notada A B o simplemente AB se define como
AB = {uv : u A, v B}.
En general, AB = BA.
Ejemplo
Ejemplo
Propiedades de la concatenaci
on de lenguajes. Sean A, B, C lengua
jes sobre , es decir A, B, C . Entonces
1. A = A = .
2. A {} = {} A = A.
3. Propiedad Asociativa,
A (B C) = (A B) C.
4. Distributividad de la concatenaci
on con respecto a la uni
on,
A (B C) = A B A C.
(B C) A = B A C A.
5. Propiedad distributiva generalizada. Si {Bi }iI es una familia cualquiera de lenguajes sobre , entonces
A
(A Bi ),
Bi =
iI
iI
Bi A =
iI
(Bi A).
iI
DE LENGUAJES
1.9. CONCATENACION
13
Demostraci
on.
1. A = {uv : u A, v } = .
2. A {} = {uv : u A, v {}} = {u : u A} = A.
3. Se sigue de la asociatividad de la concatenaci
on de cadenas.
4. Caso particular de la propiedad general, demostrada a continuaci
on.
5. Demostraci
on de la igualdad A
xA
iI
Bi
iI
iI
x = u v, con u A & v iI Bi
x = u v, con u A & v Bj , para alg
un j I
x A Bj , para alg
un j I
x iI (A Bi ).
Bi A =
La igualdad
(A Bi ):
Bi =
iI
Ejercicios de la secci
on 1.9
14
1.10.
Potencias de un lenguaje
1.11.
Ai = A0 A1 A2 An
A =
i0
Seg
un la definicion de las potencias de una lenguaje, A consta de todas
las concatenaciones de cadenas de A consigo mismas, de todas las formas
posibles. Tenemos as una u
til descripci
on de A :
(Descripci
on 2)
A+ =
i1
=
=
15
= A , para todo n 1.
4. A
= A .
5. A+ A+ A+ .
6. A
= A .
7. A+
= A .
8. A+
= A+ .
A A = A (A0 A1 A2 )
= A1 A2 A3
= A+ .
4.
= A
= {} A A A
= A .
16
5. La demostraci
on de esta propiedad es similar a la de la propiedad 2,
pero con la restriccion m, n 1. En general, no se tiene la igualdad A+
A+ = A+ ; m
as adelante se mostrara un contraejemplo.
A
6.
= A
(A
(A
= A A A
= A .
A+
7.
= A+
A+
+
1
+
A+
= {} A A A
= A (conjuntos contenidos en A+ )
= A .
A+
8.
= A+
A+
A+
= A (conjuntos contenidos en A+ )
= A+ .
9. Seg
un la Descripci
on 2, el lenguaje (AB) esta formado por las concatenaciones de cadenas de A consigo mismas, las concatenaciones de cadenas
de B consigo mismas y las concatenaciones de cadenas de A con cadenas de
B, de todas las formas posibles y en cualquier orden. Si se usa tambien la
Descripci
on 2, se observa que eso mismo se obtiene al efectuar (A B ) .
Seg
un las definiciones dadas, tiene dos significados:
= conjunto de las cadenas sobre el alfabeto .
= conjunto de todas las concatenaciones de cadenas de .
No hay conflicto de notaciones porque las dos definiciones anteriores de dan lugar al mismo conjunto.
O INVERSO DE UN LENGUAJE
1.12. REFLEXION
1.12.
17
Reflexi
on o inverso de un lenguaje
= A.
5. (A )R = AR .
R
6. (A+ ) = AR
Demostraci
on. Demostraremos las propiedades 1 y 5; las demas se dejan
como ejercicio para el estudiante.
1.
x (A B)R x = uR ,
donde u A B
x = uR ,
donde u = vw, v A, w B
R
x = (vw) ,
donde v A, w B
x = wR v R ,
donde v A, w B
x B A .
5.
x (A )R x = uR , donde u A
x = (u1 u2 un )R , donde los ui A, n 0
R
R
x = uR
n u2 u1 , donde los ui A, n 0
x (AR ) .
Ejercicios de la secci
on 1.12
18
1.13.
Lenguajes regulares
Los lenguajes regulares sobre un alfabeto dado son todos los lenguajes
que se pueden formar a partir de los lenguajes basicos , {}, {a}, a ,
por medio de las operaciones de uni
on, concatenaci
on y estrella de Kleene.
A continuaci
on presentamos una definicion recursiva de los lenguajes
regulares. Sea un alfabeto.
1. , {} y {a}, para cada a , son lenguajes regulares sobre . Estos
son los denominados lenguajes regulares basicos.
2. Si A y B son lenguajes regulares sobre , tambien lo son
AB
AB
A
(uni
on),
(concatenacion),
(estrella de Kleene).
Ejemplos Sea = {a, b}. Los siguientes son lenguajes regulares sobre
:
1. El lenguaje A de todas las cadenas que tienen exactamente una a:
A = {b} {a} {b} .
2. El lenguaje B de todas las cadenas que comienzan con b:
B = {b} {a, b} .
3. El lenguaje C de todas las cadenas que contienen la cadena ba:
C = {a, b} {ba} {a, b} .
4. ({a} {b} ) {a}.
5.
1.14.
19
Expresiones regulares
Con el prop
osito de simplificar la descripci
on de los lenguajes regulares se
definen las llamadas expresiones regulares.
La siguiente es la definicion recursiva de las expresiones regulares
sobre un alfabeto dado.
1. Expresiones regulares basicas:
es una expresi
on regular que representa al lenguaje .
es una expresi
on regular que representa al lenguaje {}.
a es una expresi
on regular que representa al lenguaje {a}, a .
2. Si R y S son expresiones regulares sobre , tambien lo son:
(R)(S)
(R S)
(R)
(R)(S) representa la concatenaci
on de los lenguajes representados por
R y S; (R S) representa su uni
on, y (R) representa la clausura
de Kleene del lenguaje representado por R. Los parentesis ( y ) son
smbolos de agrupacion y se pueden omitir si no hay peligro de ambig
uedad.
Para una expresi
on regular R cualquiera se utiliza en ocasiones la siguiente
notaci
on:
L(R) := lenguaje representado por R.
Utilizando esta notaci
on y la definicion recursiva de expresi
on regular podemos escribir las siguientes igualdades en las que R y S son expresiones
regulares arbitrarias:
L() = .
L() = {}.
L(a) = {a}, a .
L(RS) = L(R)L(S).
L(R S) = L(R) L(S).
L(R ) = L(R) .
Ejemplo
20
es una expresi
on regular que representa al lenguaje
({a} {b} ) {a} {bc} .
Ejemplo
es una expresi
on regular que representa al lenguaje
({} {a}) ({a} {b}) {ba} .
ci
on 1.13 con expresiones regulares:
Ejemplos
La representaci
on de lenguajes regulares por medio de expresiones
regulares no es u
nica. Es posible que haya varias expresiones regulares diferentes para el mismo lenguaje. Por ejemplo, b(a b)
y b(b a) representan el mismo lenguaje.
Otro ejemplo: las dos expresiones regulares (a b) y (a b ) representan el mismo lenguaje por la propiedad 9 de la secci
on 1.11.
Ejemplos
b(a b) a.
21
Ejemplos
1 01 01 .
Ejemplo
consecutivos.
Solucion. La condici
on de que no haya dos ceros consecutivos implica que
todo cero debe estar seguido necesariamente de un uno, excepto un cero al
final de la cadena. Por lo tanto, las cadenas de este lenguaje se obtienen
concatenado unos con bloques 01, de todas las formas posibles. Hay que
tener en cuenta, adem
as, que la cadena puede terminar ya sea en 1 o en 0.
A partir de este an
alisis, llegamos a la expresi
on regular
(1 01) (1 01) 0.
Usando la propiedad distributiva, obtenemos otra expresi
on para este lenguaje: (1 01) ( 0).
Ejemplo
dena bc.
22
Ejercicios de la secci
on 1.14
23
(ii) Lenguaje de todas las cadenas que tienen a lo sumo dos ceros
consecutivos.
(iii) Lenguaje de todas las cadenas cuyo quinto smbolo, de izquierda
a derecha, es un 1.
(iv) Lenguaje de todas las cadenas de longitud par 2 formadas
por ceros y unos alternados.
(v) Lenguaje de todas las cadenas cuya longitud es 4.
(vi) Lenguaje de todas las cadenas de longitud impar que tienen
unos u
nicamente en las posiciones impares.
(vii) Lenguaje de todas las cadenas cuya longitud es un m
ultiplo de
tres.
(viii) Lenguaje de todas las cadenas que no contienen tres ceros consecutivos.
(ix) Lenguaje de todas las cadenas que no contienen cuatro ceros
consecutivos.
!(x) Lenguaje de todas las cadenas que no contienen la subcadena
101.
Captulo
Automatas finitos
Los aut
omatas son m
aquinas abstractas con capacidad de computaci
on.
Historicamente, su estudio se origin
o con la llamada maquina de Turing,
que fue propuesta en 1936 por el matem
atico brit
anico Alan Turing (1912
1954) con el prop
osito de precisar las caractersticas y las limitaciones de
un dispositivo de computaci
on mecanica. En los a
nos 40 y 50 del siglo XX
se adelantaron investigaciones sobre m
aquinas de Turing con capacidad
restringida, lo que dio lugar a la noci
on de automata finito.
2.1.
Aut
omatas finitos deterministas (AFD)
Los aut
omatas finitos son m
aquinas abstractas que procesan cadenas de
entrada, las cuales son aceptadas o rechazadas:
Aut
omata
M
si
(u es aceptada)
Cadena de
entrada u
no
(u es rechazada)
El automata act
ua leyendo los smbolos escritos sobre una
infinita, dividida en celdas o casillas, sobre la cual se escribe
de entrada u, un smbolo por casilla. El automata posee una
control (tambien llamada cabeza lectora, control finito o
25
26
CAPITULO 2. AUTOMATAS
FINITOS
Unidad
de control
2.1. AUTOMATAS
FINITOS DETERMINISTAS (AFD)
27
Puesto que la funcion esta definida para toda combinacion estadosmbolo, una cadena de entrada cualquiera es procesada completamente,
hasta que la unidad de control encuentra la primera casilla vaca.
La unidad de control de un automata siempre se desplaza hacia la derecha; no puede retornar ni escribir smbolos sobre la cinta.
componentes:
Ejemplo
Consideremos el aut
omata definido por los siguientes cinco
= {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptaci
on.
Funcion de transicion :
q0 q0 q1
q1 q1 q2
q2 q1 q1
(q0 , a) = q0
(q0 , b) = q1
(q1 , a) = q1
(q1 , b) = q2
(q2 , a) = q1
(q2 , b) = q1 .
u = aabab.
u
a
q0
q0
q0
q1
q1
q2
v = aababa.
v
a
q0
q0
q0
q1
q1
q2
q1
28
CAPITULO 2. AUTOMATAS
FINITOS
q0
Como q0 es un estado de aceptaci
on, la cadena es aceptada.
En general se tiene lo siguiente: la cadena vaca es aceptada por un
automata M si y solamente si el estado inicial q0 de M tambien es un estado
de aceptaci
on.
Los aut
omatas finitos descritos anteriormente se denominan aut
omatas
finitos deterministas (AFD) ya que para cada estado q y para cada
smbolo a , la funcion de transicion (q, a) siempre esta definida. Es
decir, la funcion de transicion determina completa y unvocamente la
accion que el aut
omata realiza cuando la unidad de control se encuentra en
un estado q leyendo un smbolo s sobre la cinta.
Dado un aut
omata M , el lenguaje aceptado o reconocido por M se
denota L(M ) y se define por
L(M ) := {u : M termina el procesamiento de la cadena
de entrada u en un estado q F }.
2.2.
Un aut
omata finito se puede representar por medio de un grafo dirigido y
etiquetado. Recuerdese que un grafo es un conjunto de vertices o nodos
unidos por arcos o conectores; si los arcos tienen tanto direccion como
etiquetas, el grafo se denomina grafo dirigido y etiquetado o digrafo
etiquetado.
El digrafo etiquetado de un automata se obtiene siguiendo las siguientes
convenciones:
Los vertices o nodos son los estados del automata.
El estado q se representa por: q
El estado inicial q0 se representa por: >q0
Un estado final q se representa por: q
29
DE AUTOMATAS
2.3. DISENO
ci
on anterior.
Ejemplo
= {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptaci
on.
Funcion de transicion :
q0 q0 q1
q1 q1 q2
q2 q1 q1
(q0 , a) = q0
(q0 , b) = q1
(q1 , a) = q1
(q1 , b) = q2
(q2 , a) = q1
(q2 , b) = q1
> q0
a
q1
a, b
b
q2
2.3.
Dise
no de aut
omatas
Para aut
omatas deterministas se adopta la siguiente convencion adicional
con respecto a los diagramas de transiciones: se supone que los arcos no
30
CAPITULO 2. AUTOMATAS
FINITOS
2.
Dado un aut
omata M determinar el lenguaje aceptado por M .
M
as adelante se demostrar
a, en toda su generalidad, que estos problemas
siempre tienen solucion. Consideremos inicialmente problemas del primer
tipo.
Ejemplo
a
b
q1
b
a
Versi
on simplificada:
Ejemplo
> q0
a
q1
q2
b
a
Versi
on simplificada:
> q0
q1
Ejemplo
DE AUTOMATAS
2.3. DISENO
> q0
31
q1
q2
n
umero par de smbolos (cadenas de longitud par). AFD M
Ejemplo
q1
0, 1
un n
umero par de ceros. AFD M tal que L(M ) = L:
Ejemplo
> q0
1
q1
Ejemplo
> q0
b
q1
Ejercicios de la secci
on 2.3
Dise
nar aut
omatas finitos deterministas que acepten los siguientes
lenguajes:
(i) = {0, 1}. L = lenguaje de las cadenas sobre de longitud
impar.
(ii) = {0, 1}. L = lenguaje de las cadenas sobre que contienen
un n
umero impar de unos.
32
CAPITULO 2. AUTOMATAS
FINITOS
> q0
q1
q2
q3
q4
(ii)
1
> q0
q1
q2
q3
0
2.4. AUTOMATAS
FINITOS NO-DETERMINISTAS (AFN)
33
(iii)
q1
0
1
0
> q0
q2
q3
1
(iv)
b
> q0
q1
a
q2
2.4.
Aut
omatas finitos no-deterministas (AFN)
Los aut
omatas finitos no-deterministas (AFN) se asemejan a los AFD,
excepto por el hecho de que para cada estado q Q y cada a , la
transicion (q, a) puede consistir en m
as de un estado o puede no estar
definida. Concretamente, un AFN esta definido por M = (, Q, q0 , F, )
donde:
1. es el alfabeto de cinta.
2. Q es un conjunto (finito) de estados internos.
3. q0 Q es el estado inicial.
4. = F Q es el conjunto de estados finales o estados de aceptaci
on.
5.
: Q (Q)
(q, s) (q, s) = {qi1 , qi2 , . . . , qik }
donde
34
CAPITULO 2. AUTOMATAS
FINITOS
q
La noci
on de diagrama de transiciones para un AFN se define de manera
an
aloga al caso AFD, pero puede suceder que desde un mismo nodo (estado)
salgan dos o m
as arcos con la misma etiqueta:
q
s
q
Un AFN M puede procesar una cadena de entrada u de varias maneras. Sobre el diagrama de transiciones del automata, esto significa que
pueden existir varias trayectorias, desde el estado q0 , etiquetadas con los
smbolos de u.
La siguiente es la noci
on de aceptaci
on para automatas no-deterministas:
L(M ) = lenguaje aceptado o reconocido por M
= {u : existe por lo menos un computo completo
de u que termina en un estado q F }
35
2.4. AUTOMATAS
FINITOS NO-DETERMINISTAS (AFN)
Es decir, para que una cadena u sea aceptada, debe existir alg
un computo en el que u sea procesada completamente y que finalice estando M en
un estado de aceptaci
on.
Ejemplo
a
> q0
q1
b
q2
a
q3
q0
{q0 , q1 , q3 }
q1
{q1 }
{q2 }
q2
{q1 , q2 }
q3
{q3 }
b
Para la cadena de entrada u = abb, existen computos que conducen al rechazo, computos abortados y computos que terminan en estados de aceptaci
on.
Seg
un la definicion de lenguaje aceptado, u L(M ).
u
Computo de rechazo:
q0
q1
q2
q2
u
Computo de aceptaci
on:
q0
q3
q3
q3
u
Otro computo de aceptaci
on:
q0
q1
q2
q1
36
CAPITULO 2. AUTOMATAS
FINITOS
u
Computo abortado:
q0
q0
Ejemplo
En el u
ltimo ejemplo de la secci
on 2.3 se dise
no el siguiente
que terminan en b:
a
> q0
q1
a
> q0
q1
b
Este aut
omata se asemeja a la expresi
on regular (a b) b.
Ejemplo
b
q1
a
q2
Ejemplo
2.4. AUTOMATAS
FINITOS NO-DETERMINISTAS (AFN)
37
0
> q0
0
q1
0
q2
q3
1
Otro AFN que acepta el mismo lenguaje y que tiene s
olo tres estados es el
siguiente:
0
1
q1
q2
> q0
1
0
Ejercicios de la secci
on 2.4
Dise
nar aut
omatas AFD o AFN que acepten los siguientes lenguajes:
= {a, b}. L = ab+ a .
= {a, b}. L = a(a ab) .
= {a, b, c}. L = a b c .
= {0, 1, 2}. L = lenguaje de las cadenas sobre que comienzan
con 0 y terminan con 2.
= {0, 1}. Lenguaje de las cadenas de longitud par 2 formadas
por ceros y unos alternados.
= {0, 1}. Lenguaje de las cadenas que tienen a lo sumo dos ceros
consecutivos.
= {0, 1}. Lenguaje de las cadenas de longitud impar que tienen
unos u
nicamente en las posiciones impares.
= {a, b, c}. L = lenguaje de las cadenas sobre que contienen la
cadena bc.
= {a, b, c}. L = lenguaje de las cadenas sobre que no contienen
la cadena bc. En el u
ltimo ejemplo de la secci
on 1.14 se presentaron
dos expresiones regulares para L. Nota: se puede construir un AFD
con s
olo dos estados para aceptar este lenguaje!
38
2.5.
CAPITULO 2. AUTOMATAS
FINITOS
En esta secci
on se mostrara que los modelos AFD y AFN son computacionalmente equivalentes. En primer lugar, es facil ver que un AFD M =
(, Q, q0 , F, ) puede ser considerado como un AFN M = (, Q, q0 , F, )
definiendo (q, a) = {(q, a)} para cada q Q y cada a . Para la
afirmacion recproca tenemos el siguiente teorema.
2.5.1 Teorema. Dado un AFN M = (, Q, q0 , F, ) se puede construir
un AFD M equivalente a M , es decir, tal que L(M ) = L(M ).
Este teorema, cuya demostraci
on se dar
a en detalle m
as adelante, establece que el no-determinismo se puede eliminar. Dicho de otra manera,
los automatas deterministas y los no-deterministas aceptan los mismos lenguajes. La idea de la demostraci
on consiste en considerar cada conjunto de
estados {p1 , . . . , pj }, que aparezca en la tabla de la funcion del automata
no-determinista, como un u
nico estado del nuevo automata determinista.
La tabla de se completa hasta que no aparezcan nuevas combinaciones de
estados. Los estados de aceptaci
on del nuevo automata son los conjuntos
de estados en los que aparece por lo menos un estado de aceptaci
on del
automata original. El siguiente ejemplo ilustra el procedimiento.
Ejemplo
a
> q0
a
b
q1
a
q2
q0
{q1 , q2 }
q1
{q1 }
q2
{q2 }
q0
{q1 , q2 }
q1
{q1 }
q2
{q2 }
{q1 , q2 }
{q2 }
{q1 }
39
a
> {q0 }
{q1 , q2 }
{q2 }
{q1 }
b
Los estados de aceptaci
on son aquellos en los que aparezcan q1 o q2 , que
son los estados de aceptaci
on del automata original.
Para mayor simplicidad, podemos cambiar los nombres de los estados
del nuevo aut
omata:
a
a
> p0
p1
a
p2
b
p3
Ejemplo
40
CAPITULO 2. AUTOMATAS
FINITOS
> q0
q1
q2
1
0
q0
{q1 }
q1
{q0 , q2 }
q2
{q0 }
{q0 , q2 }
{q0 , q1 }
{q0 , q1 }
{q1 }
{q0 , q2 }
{q1 }
{q2 }
0
0
{q0 , q2 }
{q0 , q1 }
41
0
> p0
p1
0
0
p2
p3
Para la demostraci
on del Teorema 2.5.1, conviene extender la definicion de
la funcion de transicion, tanto de los automatas deterministas como de los
no-deterministas.
2.5.2 Definici
on. Sea M = (, Q, q0 , F, ) un AFD. La funcion de transici
on : Q Q se extiende a una funcion : Q Q por medio
de la siguiente definicion recursiva:
(q, ) = q, q Q,
(q, a) = (q, a), q Q, a ,
Seg
un esta definicion, para una cadena de entrada w , (q0 , w) es el
estado en el que el aut
omata termina el procesamiento de w. Por lo tanto,
podemos describir el lenguaje aceptado por M de la siguiente forma:
L(M ) = {w : (q0 , w) F }.
Notaci
on. Sin peligro de ambig
uedad, la funcion extendida (q, w) se notar
a simplemente (q, w).
2.5.3 Definici
on. Sea M = (, Q, q0 , F, ) un AFN. La funcion de transicion : Q (Q) se extiende inicialmente a conjuntos de estados.
Para a y S F se define
(S, a) :=
(q, a).
qS
42
CAPITULO 2. AUTOMATAS
FINITOS
(q, ) = {q}, q Q,
p(q,w)
Seg
un esta definicion, para una cadena de entrada w , (q0 , w) es el
conjunto de los posibles estados en los que terminan los computos completos
de w. Si el computo se aborta durante el procesamiento de w, se tendra
(q0 , w) = . Usando la funcion extendida , el lenguaje aceptado por M
se puede describir de la siguiente forma:
L(M ) = {w : (q0 , w) contiene un estado de aceptaci
on}.
Notaci
on. Sin peligro de ambig
uedad, la funcion extendida (q, w) se
notar
a simplemente (q, w).
Demostraci
on del Teorema 2.5.1:
Dado el AFN M = (, Q, q0 , F, ), construimos el AFD M as:
M = (, (Q), {q0 }, F , )
donde
: (Q) (Q)
(S, a) (S, a) := (S, a).
F = {S (Q) : S F = }.
Se demostrar
a que L(M ) = L(M ) probando que, para toda cadena w ,
({q0 }, w) = (q0 , w). Esta igualdad se demostrar
a por induccion sobre w.
Para w = , claramente se tiene ({q0 }, ) = (q0 , ) = {q0 }. Para w = a,
a , se tiene
({q0 }, a) = ({q0 }, a) = (q0 , a).
Supongase (hip
otesis de induccion) que ({q0 }, w) = (q0 , w), y que a .
({q0 }, wa) = (({q0 }, w), a)
= (({q0 }, w), a)
(definicion de la extensi
on de )
(hip
otesis de induccion)
(definicion de la extensi
on de )
= (q0 , wa)
(definicion de la extensi
on de ).
2.6. AUTOMATAS
CON TRANSICIONES (AFN-)
Ejercicios de la secci
on 2.5
43
Dise
nar AFD equivalentes a los siguientes AFN:
b
> q0
q1
b
q2
q3
a
0
> q0
q1
1
q2
0
q3
1
2.6.
Aut
omatas con transiciones (AFN-)
Un aut
omata finito con transiciones (AFN-) es un automata nodeterminista M = (, Q, q0 , F, ) en el que la funcion de transicion esta definida como:
: Q ( {}) (Q).
on , transici
on
La transicion (q, ) = {pi1 , . . . , pin }, llamada transici
nula o transici
on espont
anea, tiene el siguiente significado computacional: estando en el estado q, el aut
omata puede cambiar a uno cualquiera de
los estados pi1 , . . . , pin , independientemente del smbolo ledo y sin mover
la unidad de control. Dicho de otra manera, las transiciones permiten
al automata cambiar internamente de estado sin procesar o consumir el
smbolo ledo sobre la cinta.
En el diagrama del aut
omata, las transiciones dan lugar a arcos con
etiquetas . Una cadena de entrada w es aceptada por un AFN- si existe por lo menos una trayectoria, desde el estado q0 , cuyas etiquetas son
exactamente los smbolos de w, intercalados con cero, uno o m
as s.
44
CAPITULO 2. AUTOMATAS
FINITOS
En los aut
omatas AFN-, al igual que en los AFN, puede haber m
ultiples
computos para una misma cadena de entrada, as como computos abortados.
Ejemplo
M:
a
q1
q2
q3
q4
> q0
q0
q1
q1
q2
q0
q3
q3
q4
q4
q1
q4
2.6. AUTOMATAS
CON TRANSICIONES (AFN-)
45
Ejemplo
> q0
q1
c
q2
c
AFN- que acepta a L:
a
> q0
q1
c
q2
Este aut
omata se asemeja a la expresi
on regular a b c : las concatenaciones
han sido reemplazadas por transiciones .
tienen un n
umero par de aes o un n
umero par de bes.
Ejemplo
> q0
b
q1
a
AFD que acepta el lenguaje de las cadenas con un n
umero par de bes:
a
> q0
a
q1
b
AFN- que acepta el lenguaje de las cadenas con un n
umero par de aes o
un n
umero par de bes:
46
CAPITULO 2. AUTOMATAS
FINITOS
q1
b
q2
a
> q0
b
q3
a
q4
b
A diferencia de los AFD y los AFN, en los AFN- pueden existir computos
infinitos, es decir computos que nunca terminan. Esto puede suceder si
el automata ingresa a un estado desde el cual haya varias transiciones
encadenadas que retornen al mismo estado, como por ejemplo:
Ejercicios de la secci
on 2.6
Dise
nar AFN- que acepten los siguientes lenguajes:
(ab b) ab , sobre = {a, b}.
a(a c) b+ , sobre = {a, b, c}.
ab ba b(ab ba) , sobre = {a, b}.
ab ba b(ab ba) , sobre = {a, b}.
(0 010) 0 (01 10) , sobre = {0, 1}.
0+ 1(010) (01 10) 1+ , sobre = {0, 1}.
= {a, b}. L = lenguaje de todas las cadenas sobre que tienen un
n
umero par de aes y un n
umero par de bes.
2.7.
47
En esta secci
on se mostrara que el modelo AFN- es computacionalmente
equivalente al modelo AFN. O dicho m
as gr
aficamente, las transiciones
se pueden eliminar, a
nadiendo transiciones que las simulen, sin alterar el
lenguaje aceptado.
En primer lugar, un AFN M = (, Q, q0 , F, ) puede ser considerado
como un AFN- en el que, simplemente, hay cero transiciones . Para la
afirmacion recproca tenemos el siguiente teorema.
2.7.1 Teorema. Dado un AFN- M = (, Q, q0 , F, ), se puede construir
un AFN M equivalente a M , es decir, tal que L(M ) = L(M ).
Bosquejo de la demostraci
on. Para construir M a partir de M se requiere
la noci
on de -clausura de un estado. Para un estado q Q, la clausura de q, notada [q], es el conjunto de estados de M a los que se
puede llegar desde q por 0, 1 o m
as transiciones . N
otese que, en general,
[q] = (q, ). Por definicion, q [q]. La -clausura de un conjunto de
estados {q1 , . . . , qk } se define por:
[{q1 , . . . , qk }] := [q1 ] [qk ].
Adem
as, [] := . Sea M = (, Q, q0 , F , ) donde
: Q
(q, a)
(Q)
(q, a) := ([q], a) .
Ejemplo
48
CAPITULO 2. AUTOMATAS
FINITOS
> q0
q1
q2
=
=
=
=
=
=
=
=
=
> q0
a
q1
a, b
Ejercicios de la secci
on 2.7
q2
b, c
> q0
a,
q1
b
q2
q3
49
> q0
q1
b
q2
q3
b
2.8.
AFN-
Lenguajes regulares
T. de Kleene I
50
CAPITULO 2. AUTOMATAS
FINITOS
Expresion regular R
Procedimiento
AFN-
algortmico
Demostraci
on. Puesto que la definicion de las expresiones regulares se hace
recursivamente, la demostraci
on se lleva a cabo razonando por induccion sobre R. Para las expresiones regulares basicas, podemos construir facilmente
automatas que acepten los lenguajes representados. As, el automata
> q0
q1
> q0
q1
M2
..
.
>
..
.
51
M1
..
.
>
M2
..
.
Aut
omata que acepta RS. Los automatas M1 y M2 se conectan en
serie y los estados finales del nuevo automata son u
nicamente los
estados finales de M2 :
M1
>
..
.
..
.
M2
..
.
Aut
omata que acepta R . Los estados finales del nuevo automata son
los estados finales de M1 junto con el estado inicial.
52
CAPITULO 2. AUTOMATAS
FINITOS
M1
..
.
>
2.9.
>
Ejemplo
a
>
Aut
omata que acepta ba:
b
>
Aut
omata que acepta ab ba:
>
Aut
omata que acepta (ab ba) :
>
53
54
CAPITULO 2. AUTOMATAS
FINITOS
Aut
omata que acepta a (ab ba) :
>
Aut
omata que acepta b a :
b
>
a
Aut
omata que acepta a(b a ):
b
>
55
Aut
omata que acepta a (ab ba) a(b a ):
>
Ejercicios de la secci
on 2.9
Dise
nar aut
omatas AFN- que acepten los siguientes lenguajes sobre el
alfabeto = {a, b, c}:
a (b ab ab a)c (a b)(a ac) .
c a(a ba) (abc) c (a cb c).
(ac) a(a ab a) (abc) (cba) (c ab ba ca) (ca cb) .
2.10.
Lema de Arden
56
CAPITULO 2. AUTOMATAS
FINITOS
Demostraci
on. Si X es una solucion de X = AX B, entonces B
AX B = X. Tambien se tiene AX X; a partir de esta contenencia y
usando induccion sobre n, se puede demostrar que An X X para todo
n N. Por lo tanto
An B An X X
para todo n N. As que
An B =
A B =
n0
An B X.
n0
Ejemplo
Ejemplo
La ecuaci
on X = aX b ab tiene solucion u
nica X = a b ab.
La ecuaci
on X = a2 X b+ X ab se puede escribir en la forma
solucion u
nica X = (a2 b+ ) ab.
Ejemplo
La ecuaci
on X = ab2 X aX a b b a se puede escribir como
tiene solucion u
nica X = (ab2 a) (a b b a).
Ejercicios de la secci
on 2.10
57
2.11.
En esta secci
on demostraremos que para todo AFN M = (, Q, q0 , F, )
existe una expresi
on regular R tal que L(M ) = R.
Un aut
omata tiene un u
nico estado inicial pero cambiando dicho estado surgen nuevos aut
omatas. Para cada qi Q, sea Mi el automata
que coincide con M pero con estado inicial qi ; m
as precisamente, Mi =
(, Q, qi , F, ). Al lenguaje aceptado por Mi lo denotaremos Ai ; es decir,
L(Mi ) = Ai . En particular, A0 = L(M ). Puesto que los estados de aceptaci
on no se han alterado, se tiene que
Ai = {w : (qi , w) F = }.
Cada Ai se puede escribir como
si qi F,
si qi F.
..
58
CAPITULO 2. AUTOMATAS
FINITOS
2.12.
A continuaci
on ilustraremos el procedimiento de la secci
on 2.11 para encontrar L(M ) a partir de un AFN M = (, Q, q0 , F, ) dado.
Ejemplo
> q0
q1
a
q2
b
(1)
(2)
(3)
La ecuaci
on (3) se puede escribir como
(4)
A2 = (a b)A2 .
A2 = (a b) = (a b) .
59
A1 = a(a b) .
A0 = (a b)A0 a2 (a b) .
el siguiente AFN M :
Ejemplo
a
> q0
q1
b
q2
q3
q4
a
a
El sistema de ecuaciones asociado con el automata M es:
(1) A0 = aA1
(2) A1 = aA2
(3) A2 = bA2 bA3
El sistema original de cinco ecuaciones y cinco incognitas se reduce al sistema de tres ecuaciones y tres incognitas formado por (1), (2) y (8).
La ecuaci
on (8) se puede escribir como
60
(9)
CAPITULO 2. AUTOMATAS
FINITOS
A2 =
b b(a ba) ba
b(a ba) b .
b(a ba) b
Ejemplo
y un n
umero par de bes. El siguiente automata acepta el lenguaje L:
a
> q0
q1
a
a
q2
q3
a
Este aut
omata da lugar al siguiente sistema de ecuaciones:
(2) A = aA bA
1
0
3
(3) A2 = aA3 bA0
(4) A = aA bA
3
2
1
A2 = a2 A2 abA1 bA0 .
A1 = aA0 baA2 b2 A1 .
61
A1 = ba(a2 ) ab b2
A0 = b(a2 ) b
62
CAPITULO 2. AUTOMATAS
FINITOS
Ejercicios de la secci
on 2.12
a
> q0
q1
q2
q3
b
(ii)
b
> q0
b
q1
a
q2
a
q3
q4
b
Captulo
3.1.
Lema de bombeo
El llamado lema de bombeo (pumping lemma, en ingles) es una propiedad de los lenguajes regulares que es muy u
til para demostrar que ciertos
lenguajes no son regulares.
3.1.1. Lema de bombeo. Para todo lenguaje regular L (sobre un alfabeto
dado ) existe una constante n N, llamada constante de bombeo para L,
tal que toda cadena w L, con |w| n, satisface la siguiente propiedad:
(B)
Demostraci
on. Por el Teorema de Kleene y por los teoremas de equivalencia
de los modelos AFD, AFN y AFN-, existe un AFD M tal que L(M ) = L.
63
64
Sea
n = # de estados de M.
Si w L y |w| n, entonces durante el procesamiento completo de w, hay
por lo menos un estado que se repite. Sea q el primer estado que se repite.
Tal como se muestra en la siguiente gr
afica, w se puede descomponer como
w = uvx, donde |uv| n, v = .
w
q0
N
otese que tanto u como x pueden ser la cadena vaca , pero v = .
Adem
as, la cadena v se puede bombear, en el sentido de que uv i x es
aceptada por M para todo i 0. En el diagrama de estados, se puede
visualizar esta propiedad de bombeo de v:
v
u
> q0
x
p
Uso del lema de bombeo. El lema de bombeo se puede usar para concluir
que un cierto lenguaje dado L no es regular, recurriendo a un razonamiento
por contradicci
on (o reducci
on al absurdo). El razonamiento utilizado tiene
la siguiente forma:
1. Si L fuera regular, existira una constante de bombeo n para L.
2. Se escoge una cadena adecuada w L y se aplica la propiedad (B)
del lema de bombeo, descomponiendo w como
w = uvx,
v = ,
|uv| n.
65
{ai bi : i 0} no es regular.
Ejemplo
para alg
un r 0,
para alg
un s 1.
Entonces,
x = an(r+s) bn = anrs bn .
Por el lema de bombeo, uv i x L para todo i 0. En particular, si i = 0,
ux L. Pero ux = ar anrs bn = ans bn . Como n s = n, la cadena
ux
/ L lo cual es una contradicci
on. Se concluye entonces que L no puede
ser regular.
Tomando i = 2 tambien se llega a una contradicci
on: por un lado, uv 2 x
L, pero
uv 2 x = ar as as anrs bn = ar+2s+nrs bn = an+s bn .
Como s 1, an+s bn no esta en L.
El argumento anterior tambien sirve para demostrar que el lenguaje
L = {ai bi : i 1} no es regular.
Ejemplo
para alg
un r 0,
para alg
un s 1.
Entonces,
x = an(r+s) ban = anrs ban .
66
Ejemplo
perfecto.
Solucion. Si L fuera regular, existira una constante de bombeo n para L.
2
Sea w = an L. Entonces w se puede descomponer como w = uvx, con
|v| 1, |uv| n. Por el lema de bombeo, uv 2 x L, pero por otro lado,
n2 < n2 + |v| = |uvx| + |v| = |uv 2 x| n2 + |uv| n2 + n < (n + 1)2 .
Esto quiere decir que el n
umero de smbolos de la cadena uv 2 x no es un
cuadrado perfecto y, por consiguiente, uv 2 x L. En conclusi
on, L no es
regular.
Ejercicios de la secci
on 3.1
3.2.
67
Propiedades de clausura
(uni
on)
(concatenacion)
(estrella de Kleene)
(clausura positiva)
(complemento)
(interseccion)
(diferencia)
(diferencia simetrica)
68
Recuerdese que un
algebra booleana de conjuntos es una familia A
Un sublenguaje (subconjunto) de un lenguaje regular no es necesariamente regular, es decir, la familia de los lenguajes regulares
no es cerrada para subconjuntos. Dicho de otra forma, un lenguaje regular puede contener sublenguajes no-regulares. Por ejemplo,
L = {an bn : n 1} es un sublenguaje del lenguaje regular a b ,
pero L mismo no es regular.
Ejemplo
Ejemplo
Ejercicios de la secci
on 3.2
3.3. PROPIEDADES DE CLAUSURA PARA AUTOMATAS
69
3.3.
L1 L2 .
L1 L2 .
L .
L+ .
(5)
(6)
(7)
(8)
L = L.
L1 L2 .
L1 L2 .
L1 L2 .
Demostraci
on. La construcci
on de automatas para L1 L2 , L1 L2 , L y L+
se presento en la demostraci
on de la parte I del Teorema de Kleene. En el
70
numeral (5) del Teorema 3.2.1 se vio como se puede construir un AFD M
que acepte L a partir de un AFD M que acepte L.
Los procedimientos de construcci
on de (1), (2), (3), (4) y (5) se pueden
combinar para obtener aut
omatas que acepten los lenguajes L1 L2 , L1 L2
y L1 L2 .
Para dise
nar un aut
omata que acepte L1 L2 , seg
un el argumento del
Teorema 3.3.1, hay que usar la igualdad L1 L2 = L1 L2 y los procedimientos para uni
on, complemento, eliminacion de transiciones y eliminaci
on del no-determinismo. El siguiente teorema muestra que existe una
construcci
on m
as sencilla para el caso L1 L2 .
3.3.2 Teorema. Sean M1 = (, Q1 , q1 , F1 , 1 ) y M2 = (, Q2 , q2 , F2 , 2 )
dos AFD. Entonces el AFD
M = (, Q1 Q2 , (q1 , q2 ), F1 F2 , )
donde
: (Q1 Q2 ) Q1 Q2
((qi , qj ), a) = (1 (qi , a), 2 (qj , a))
((q1 , q2 ), w) F1 F2
(1 (q1 , w), 2 (q2 , w)) F1 F2
(q1 , w) F1 & (q2 , w) F2
w L(M1 ) & w L(M2 )
w L(M1 ) L(M2 ).
Ejemplo
un n
umero par de aes y un n
umero par de bes.
AFD M1 que acepta las cadenas con un n
umero par de aes:
b
> q1
b
q3
3.3. PROPIEDADES DE CLAUSURA PARA AUTOMATAS
71
> q2
q4
b
(q1 , q4 )
b
b
(q3 , q2 )
(q3 , q4 )
b
Ejercicios de la secci
on 3.3
Utilizar el Teorema 3.3.2 para construir AFD que acepten los siguientes los siguientes lenguajes sobre el alfabeto {a, b, c}:
(i) El lenguaje L de todas las cadenas que tienen longitud par y
terminan en a.
72
3.4.
Homomorfismos
Ejemplo
3.4. HOMOMORFISMOS
73
Ejemplo
Ejemplo
Ejercicios de la secci
on 3.4
74
3.5.
fuera, tambi
en lo sera h1 (L) donde h es el homomorfismo
h(0) = h(1) = 0, h(2) = 1. Pero
Ejemplo
75
Ejercicios de la secci
on 3.5
3.6.
Algoritmos de decisi
on
La noci
on de algoritmo que consideraremos en esta secci
on es la corriente:
Un algoritmo es un procedimiento sistematico, claro y preciso,
que termina en un n
umero finito de pasos para cualquier entrada
dada.
Dada una propiedad P, referente a automatas sobre un alfabeto , un
problema de decisi
on para P consiste en buscar un algoritmo, aplicable
a un aut
omata arbitrario M , que responda SI o NO a la pregunta: satisface
M la propiedad P? El siguiente diagrama ilustra la situacion.
SI M satisface P
Aut
omata M
Algoritmo
de decision
NO
M no satisface P
76
Dado un aut
omata (AFD o AFN o AFN-) M y
una cadena w , acepta M la cadena w?
3.6. ALGORITMOS DE DECISION
77
INICIALIZAR:
ALC := {q0 }, donde q0 es el estado inicial de M .
REPETIR:
Para cada q ALC buscar los arcos que salen de q y
a
nadir a ALC los estados p para los cuales haya un
arco de q a p con cualquier etiqueta (puede ser ).
HASTA:
No se a
naden nuevos estados a ALC.
78
Ejercicios de la secci
on 3.6
3.6. ALGORITMOS DE DECISION
79
Captulo
Lenguajes y gramaticas
independientes del contexto
Como se ha visto, los aut
omatas son dispositivos que procesan cadenas
de entrada. En captulos posteriores consideraremos modelos de automatas
con mayor poder computacional que el de los modelos AFD, AFN y AFN-.
En el presente captulo estudiaremos una noci
on completamente diferente,
aunque relacionada, la de gramatica generativa, que es un mecanismo para
generar cadenas a partir de un smbolo inicial.
Los aut
omatas procesan cadenas
Las gramaticas generan cadenas
4.1.
Gram
aticas generativas
82
4.2.
Gram
aticas independientes del contexto
Una gram
atica independiente del contexto (GIC), tambien llamada
gram
atica no-contextual o gram
atica de tipo 2, es una cu
adrupla,
G = (V, , S, P ) formada por:
1. Un alfabeto V cuyos elementos se llaman variables o smbolos noterminales.
4.2. GRAMATICAS
INDEPENDIENTES DEL CONTEXTO
83
uAv = uwv
o uAv =G uwv.
84
Ejemplo
Se tiene S = y
S = aS = a aS = a a.
Por consiguiente, L(G) = a .
De manera m
as simple, podemos presentar una gramatica GIC listando
sus producciones y separando con el smbolo | las producciones de una
misma variable. Se supone siempre que las letras may
usculas representan
variables y las letras min
usculas representan smbolos terminales. As la
gramatica del ejemplo anterior se presenta simplemente como:
S aS | .
Ejemplo
V = {S, A}
= {a, b}
P = {S aS, S bA, S , A bA, A b, A }
se puede presentar como
S aS | bA |
A bA | b |
Se tiene S = . Todas las demas derivaciones en G comienzan ya sea con
la producci
on S aS o con S bA. Por lo tanto, tenemos
S = aS = a aS = a a.
S = bA = b bA = b b.
S = aS = a aS = a abA = a ab bA = a ab b.
Por consiguiente L(G) = a b .
4.2. GRAMATICAS
INDEPENDIENTES DEL CONTEXTO
85
AB
S AB |
S aS | A
A aA |
A aA | a |
A bA |
B bB |
B bB | b |
Ejemplo
La gramatica
S aS | aA
A bA | b
S AB
A aA | a
B bB | b
Ejemplo
La gramatica
S 1A | 0
A 0A | 1A |
genera el lenguaje de los n
umeros naturales en numeraci
on binaria. N
otese
que la u
nica cadena que comienza con 0, generable con esta gramatica, es
la cadena 0.
Ejemplo Encontrar una GIC que genere el lenguaje 0 10 10 sobre
= {0, 1}, es decir, el lenguaje de todas las cadenas con exactamente dos unos.
Solucion.
G:
S A1A1A
A 0A |
S 0S | 1A
A 0A | 1B
B 0B |
86
Ejemplo
Solucion.
S aSb | .
Ejemplo
Solucion.
S aSa | bSb | a | b | .
Ejemplo
Solucion.
S aSa | bSb | aSb | bSa |
Dos gramaticas equivalentes son:
S AAS |
Aa|b
= {a, b}.
Ejemplo
Solucion.
S abS | baS | .
Ejemplo
genera el lenguaje de todas las cadenas de parentesis anidados y equilibrados; es decir, cadenas como (()), ()()(), (())((())).
Solucion. Es facil ver que G genera cadenas de parentesis anidados y equilibrados ya que cada aplicacion de la producci
on S (S)S da lugar a un
par de parentesis equilibrados.
Para establecer la direccion recproca demostraremos por induccion sobre n la siguiente afirmacion: Toda cadena con 2n parentesis anidados y
equilibrados se puede generar en G.
2
n = 1:
n = 2:
4.2. GRAMATICAS
INDEPENDIENTES DEL CONTEXTO
87
Ejercicios de la secci
on 4.2
Encontrar GIC que generen los siguientes lenguajes sobre = {a, b}:
(i) El lenguaje de las cadenas que tienen un n
umero par de bes.
(ii) El lenguaje de las cadenas que comienzan con b y terminan con
ba.
(iii) a b a.
(iv) a b b a.
(v) (ab b a) .
(vi) {ai b2i : i 0}.
(vii) {abi abi : i 1}.
Encontrar GIC que generen los siguientes lenguajes sobre = {a, b, c, d}:
(i) {ai bj cj di : i, j 1}.
(ii) {ai bi cj dj : i, j 1}.
(iii) {ai bj cj di : i, j 1} {ai bi cj dj : i, j 1}.
(iv) {ai bj ci+j : i 0, j 1}.
Demostrar que la gramatica S SS | (S) | tambien genera el
lenguaje de todas las cadenas de parentesis anidados y equilibrados.
Encontrar una gramatica que genere el lenguaje de todas las cadenas
de parentesis circulares y/o angulares, anidados y equilibrados. Es decir cadenas como ([()]), ([])[()], [()([[()()]])], etc. Cadenas
como ([)]
o [([)]] tienen parentesis equilibrados pero no anidados
y, por lo tanto, no pertenecen a este lenguaje.
! Sea = {0, 1}. Encontrar una GIC que genere el lenguaje de las
cadenas que tienen igual n
umero de ceros que de unos.
88
4.3.
Arbol
de una derivaci
on
Un
arbol con raz es un tipo muy particular de grafo no-dirigido; esta formado por un conjunto de vertices o nodos conectados entre s por arcos o
aristas, con la siguiente propiedad: existe un nodo especial, llamado la raz
del arbol, tal que hay una u
nica trayectoria entre cualquier nodo y la raz.
De esta manera, la raz se ramifica en nodos, llamados descendientes
inmediatos, cada uno de los cuales puede tener, a su vez, descendientes
inmediatos, y as sucesivamente.
La propiedad que caracteriza a un arbol garantiza que un nodo puede
tener 0, 1, o m
as descendientes inmediatos pero un u
nico antecesor inmediato. El u
nico nodo que no tiene antecesores es la raz. Los nodos que tienen
descendientes, excepto la raz, se denominan nodos interiores. Los nodos
que no tienen descendientes se llaman hojas del arbol. En la terminologa
usualmente utilizada, los descendientes de un nodo tambien se denominan
hijos y los antecesores padres o ancestros. El n
umero de vertices (y por
lo tanto, el n
umero de arcos) de un arbol puede ser infinito.
Ejemplo
Algunos
arboles con raz:
89
4.3. ARBOL
DE UNA DERIVACION
El
arbol de una derivaci
on S = w, w , en una GIC es un arbol
con raz que se forma de la siguiente manera:
1. La raz esta etiquetada con el smbolo inicial S.
2. Cada nodo interior esta etiquetado con un no terminal.
3. Cada hoja esta etiquetada con terminal o con .
4. Si en la derivaci
on se utiliza la producci
on A s1 s2 sk , donde
El arbol de la derivaci
on
S AB | AaB
A aA | a
B bBa | b
A
a
b
El anterior es tambien el
arbol de la derivaci
on
S = AB = aB = abBa = abba.
90
Esto muestra que dos derivaciones diferentes pueden tener el mismo arbol
de derivaci
on ya que en el
arbol aparecen las producciones utilizadas pero
no el orden en que han sido aplicadas.
Ejemplo
Sea G la gramatica:
S BAa
A bBC | a
B bB | b |
C aB | aa
El arbol de la derivaci
on
B
b
a
C
B
b
Ejercicios de la secci
on 4.3
G:
S aS | AaB
A aA | a
B bBbB | b
4.4. GRAMATICAS
AMBIGUAS
91
S ABC | BaC | aB
A Aa | a
G:
B BAB | bab
C cC |
4.4.
Gram
aticas ambiguas
La noci
on de ambig
uedad se puede presentar en terminos de arboles sintacticos o en terminos de ciertas derivaciones estandares: las llamadas derivaciones a izquierda.
4.4.1 Definici
on. Una derivaci
on se llama derivaci
on a izquierda (o
derivaci
on m
as a la izquierda) si en cada paso se aplica una producci
on a
la variable que esta m
as a la izquierda.
Una derivaci
on cualquiera se puede transformar siempre en una u
nica
derivaci
on a izquierda aplicando, en cada paso, producciones a la variable
que este m
as a la izquierda.
4.4.2 Definici
on. Una GIC G es ambigua si existe una cadena w
para la cual hay dos derivaciones a izquierda diferentes. Equivalentemente,
una GIC G es ambigua si existe una cadena w con dos arboles de
derivaci
on diferentes.
gram
atica Gsp para generar n
umeros naturales, sumas y pro-
Ejemplo
Considerese el alfabeto =
0, 1, +, , (, ) . La siguiente
ductos, en numeraci
on binaria, es ambigua:
S S + S | S S | (S) | 0S | 1S | 0 | 1
La cadena 1 + 1 0 tiene dos derivaciones a izquierda diferentes:
S = S + S = 1 + S = 1 + S S = 1 + 1 S = 1 + 1 0.
S = S S = S + S S = 1 + S S = 1 + 1 S = 1 + 1 0.
Los arboles de derivaci
on correspondientes a las anteriores derivaciones son:
92
+
S
Ejemplo
G:
S aSA |
A bA |
93
4.4. GRAMATICAS
AMBIGUAS
A
S
a
a
A
a
A
b
S AB |
G :
A aA | a
B bB |
a + b
No existe ning
un algoritmo que permita determinar si una GIC
dada es o no ambigua. Con la terminologa de la secci
on 3.6, esto
quiere decir que el problema de la ambig
uedad para GIC es in
decidible. Este
no es un resultado trivial; para su demostraci
on
remitimos al estudiante a la referencia [HMU].
94
Ejercicios de la secci
on 4.4
S AaSbB |
G1 :
A aA | a
B bB |
S ASB | AB
G2 :
A aA | a
B bB |
4.5.
Gram
aticas para lenguajes de programaci
on
Ejemplo
A continuaci
on se exhibe una gramatica para generar los n
ume-
de programaci
on. Las variables aparecen encerradas entre parentesis
y
real es la variable inicial de la gramatica. El alfabeto de terminales es
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, -, E}. En el contexto de los lenguajes de programaci
on los terminales se denominan tambien componentes l
exicos,
lexemas o tokens.
real
dgitos
decimal
exp
4.5. GRAMATICAS
PARA LENGUAJES DE PROGRAMACION
95
programaci
on, es decir, cadenas cuyo primer smbolo es una le-
Ejemplo
tra que va seguida de letras y/o dgitos. Las variables aparecen encerradas
entre parentesis
e identificador es la variable inicial de la gramatica. La variable lsds representa letras o dgitos. Los terminales en esta
gramatica son las letras, min
usculas o may
usculas, y los dgitos.
identificador
lsds
letra
dgito
letra lsds
letra lsds | dgito lsds |
a | b | c| | x | y | z | A | B | C | | Y | Z
0|1|2|3|4|5|6|7|8|9
Ejercicios de la secci
on 4.5
termino | expresi
on + termino
factor | termino * factor
n
umero | ( expresi
on )
1 n
umero | 0 n
umero | 0 | 1
96
4.6.
Gram
aticas para lenguajes naturales
Oraci
on
Compl. Directo
Adjetivo
Prepos.
Artculo
Adverbio
Verbo
escribiste | escribieron |
Los lenguajes naturales son casi siempre ambiguos porque existen muchas
reglas de producci
on, lo que da lugar a m
ultiples arboles de derivaci
on para
ciertas oraciones.
Ejemplo
La oracion
Juan mira a una persona con un telescopio
97
4.6. GRAMATICAS
PARA LENGUAJES NATURALES
es ambigua. La ambig
uedad surge porque las producciones permiten dos
arboles de derivaci
on:
Oraci
on
Sujeto
Juan
Verbo
Compl.Indirecto
Compl. Circunst.
una
persona
con
un telescopio
Oraci
on
Sujeto
Verbo
Juan
mira
Compl. Directo
Prepos.
Art.
Sustant.
Prepos.
Art.
Sustant.
una
persona
con
un
telescopio
Ejercicios de la secci
on 4.6
98
4.7.
Gram
aticas regulares
4.7.1 Definici
on. Una GIC se llama regular si sus producciones son de
la forma
A aB, a , B V.
A .
Los siguientes teoremas establecen la conexi
on entre los lenguajes regulares
y las gramaticas regulares.
4.7.2 Teorema. Dado un AFD M = (Q, , q0 , F, ), existe una GIC regular G = (V, , S, P ) tal que L(M ) = L(G).
Demostraci
on. Sea V = Q y S = q0 . Las producciones de G estan dadas
por
q ap si y s
olo si (q, a) = p.
q si y s
olo si q F.
Demostraremos primero que para toda w , w = y para todo p, q Q
se tiene
(1)
Si (q, w) = p
entonces
q = wp.
La demostraci
on de (1) se hace por induccion sobre w. Si w = a y (q, a) =
p, entonces q ap es una producci
on de G y obviamente se concluye
q = ap. Para el paso inductivo, sea (q, wa) = p . Entonces
p = (q, wa) = ((q, w), a) = (p, a)
q = wp = wap
que era lo que se quera demostrar.
A continuaci
on demostraremos el recproco de (1): para toda w ,
w = y para todo p, q Q se tiene
(2)
Si q = wp entonces
(q, w) = p.
La demostraci
on de (2) se hace por induccion sobre la longitud de la deri
vaci
on q = wp, es decir, por el n
umero de pasos o derivaciones directas
99
4.7. GRAMATICAS
REGULARES
q = w p = w ap = wp.
Por hip
otesis de induccion, (q, w ) = p y por consiguiente
(q, w) = (q, w a) = ((q, w ), a) = (p , a) = p,
que era lo que se quera demostrar.
Como consecuencia de (1) y (2) se puede ahora demostrar que
(3)
(q0 , w) F
si y s
olo si
S =G w,
secci
on 2.3, acepta las cadenas que terminan en b:
Ejemplo
> q0
b
q1
a
M induce la gramatica regular
G:
q0 aq0 | bq1
q1 bq1 | aq0 |
S A1A1A
A 0A |
Esta gramatica no es regular, pero por medio del AFD
100
>S
0
A
0
B
S 0S | 1A
A 0A | 1B
B 0B |
Demostraci
on. Se construye M = (Q, , q0 , F, ) haciendo Q = V , q0 = S
y
B (A, a) para cada producci
on A aB.
AF
si A .
Usando razonamientos similares a los del Teorema 4.7.2, se puede demostrar
que
A =G wB
si y s
olo si
w , B V,
4.7. GRAMATICAS
REGULARES
101
a1 A1
a2 A2
..
.
An1 an B
De esta manera se puede construir una gramatica regular equivalente a
G.
Ejercicios de la secci
on 4.7
102
4.8.
Eliminaci
on de las variables in
utiles
TERMi
i1
4.8. ELIMINACION
103
INICIALIZAR:
TERM := A V : produccion A w, w
REPETIR:
TERM := TERM A V : produccion A w, w ( TERM)
HASTA:
No se a
naden nuevas variables a TERM
Ejemplo
Solucion.
S ACD | bBd | ab
A aB | aA | C
B aDS | aB
G:
C aCS | CB | CC
D bD | ba
E AB | aDb
104
ALCi
i1
Ejemplo
G:
Solucion.
S aS | AaB | ACS
A aS | AaB | AC
B bB | DB | BB
C aDa | ABD | ab
D aD | DD | ab
E F F | aa
F aE | EF
ALC1 = {S}.
ALC2 = {S} {A, B, C} = {S, A, B, C}.
ALC3 = {S, A, B, C} {D} = {S, A, B, C, D}.
ALC4 = {S, A, B, C, D} { } = {S, A, B, C, D}
ALC = {S, A, B, C, D}.
Conjunto de variables no alcanzables: {E, F }.
Dada una GIC G, los dos algoritmos anteriores (algoritmo 4.8.2 y algoritmo 4.8.3) se pueden llevar a cabo en dos ordenes diferentes:
Algoritmo
(I) G
Eliminar variables
no-terminables
Algoritmo
G1
Eliminar variables
no-alcanzables
G2
4.8. ELIMINACION
Algoritmo
(II) G
105
Algoritmo
Eliminar variables
Eliminar variables
G3
G4
no-alcanzables
no-terminables
Ejemplo
G:
Aplicaci
on de los algoritmos en el orden (I):
Variables terminables de G: TERM= {S, A}.
Sa
A aA |
G1 :
Sa
S a | AB
A aA |
Sa
A aA |
106
Ejemplo
G:
S SBS | BC | Bb
A AA | aA
B aBCa | b
C aC | ACC | abb
D aAB | ab
E aS | bAA
F aDb | aF
= {B, C, D}.
= {B, C, D} {S, F }.
= {B, C, D, S, F } {E} = {B, C, D, S, F, E}.
= {B, C, D, S, F, E} { }.
La u
nica variable no-terminable de G es A. Por lo tanto, G es equivalente
a la siguiente gramatica G1 :
S SBS | BC | Bb
B aBCa | b
C aC | abb
G1 :
D ab
E aS
F aDb | aF
Variables alcanzables de G1 :
ALC1 = {S}.
ALC2 = {S} {B, C}.
ALC3 = {S, B, C} { }.
DE LAS PRODUCCIONES
4.9. ELIMINACION
107
S SBS | BC | Bb
G2 :
B aBCa | b
C aC | abb
Ejercicios de la secci
on 4.8
S SS | SBB | CCE
A aE | bE
B bB | Db
G:
C aC | bB
D aDb | ab |
E aA | bB
S EA | SaBb | aEb
A DaD | bD
B bB | Ab |
G:
C aC | bBC
D aEb | ab
E aA | bB |
F Fb | Fa | a
4.9.
Eliminaci
on de las producciones
4.9.1. Definiciones.
(i) Una producci
on de la forma A se llama producci
on .
108
ANUL :=
i1
Ejemplo
G:
S AB | ACA | ab
A aAa | B | CD
B bB | bA
C cC |
D aDc | CC | ABb
DE LAS PRODUCCIONES
4.9. ELIMINACION
109
= {C}.
= {C} {D} = {C, D}.
= {C, D} {A} = {C, D, A}.
= {C, D, A} {S} = {C, D, A, S}.
= {C, D, A, S} { } = {C, D, A, S}.
G :
S AB | ACA | ab | B | CA | AA | AC | A | C |
A aAa | B | CD | aa | C | D
B bB | bA | b
C cC | c
D aDc | CC | ABb | ac | C | Bb
Ejercicios de la secci
on 4.9
G:
S BCB
A aA | ab
B bBa | A | DC
C aCb | D | b
D aB |
G:
S EA | SaBb | aEb
A DaD | bD | BEB
B bB | Ab |
D aEb | ab
E aA | bB |
110
4.10.
Eliminaci
on de las producciones unitarias
4.10.1. Definiciones.
(i) Una producci
on de la forma A B donde A y B son variables, se
llama producci
on unitaria.
(ii) El conjunto unitario de una variable A (tambien llamado conjunto
cadena de A) se define de la siguiente manera:
111
4.10.3 Teorema. Dada una GIC G, se puede construir una GIC G equivalente a G sin producciones unitarias.
nadienDemostraci
on. Las producciones unitarias de G se pueden eliminar a
do para cada variable A de G las producciones (no unitarias) de las variables
contenidas en el conjunto unitario UNIT(A). La gramatica G as obtenida
es equivalente a la gramatica original G.
Ejemplo
S AS | AA | BA |
A aA | a
G:
B bB | bC | C
C aA | bA | B | ab
S AS | AA | BA |
A aA | a
G :
B bB | bC | aA | bA | ab
C aA | bA | ab | bB | bC
Ejemplo
S ACA | CA | AA | A | C |
A aAa | aa | B | C
G:
B cC | D | C
C bC
D aA |
112
S ACA | CA | AA | | aAa | aa | bC | cC | aA
A aAa | aa | cC | bC | aA |
G
B cC | bC | aA |
C bC
D aA |
Ejercicios de la secci
on 4.10
S Ba | A |
G:
A Aa | a
B bB | S
S BBa | A | B | ab |
A Aa | B | D | aC
G:
B bB | aA | b
C ABb | A | aB
D cC | c
S ACA | ab | B | CA | A | C |
A aAa | B | CD | aa | D
G:
B bB | bA | b
C cC | c
D ABb | ac | C | Bb
4.11.
113
y binarias.
Ejemplo
Simular la producci
on A abBaC con producciones simples
A Ta Tb BTa C
Ta a
Tb b
114
A T a T1
T 1 T b T2
T BT
2
3
T
C
3
a
a
a
T b
b
y binarias.
Ejemplo
Simular la producci
on A BAaCbb con producciones simples
A BATa CTb Tb
Ta a
Tb b
A BT1
T1 AT2
T 2 T a T3
T3 CT4
T 4 T b Tb
Ta a
Tb b
En los siguientes ejemplos se ilustra el procedimiento completo para convertir una gramatica dada a la Forma Normal de Chomsky (FNC).
gram
atica:
Ejemplo
G:
S AB | aBC | SBS
A aA | C
B bbB | b
C cC |
115
S AB | aBC | SBS | B | aB
A aA | C | a
G1 :
B bbB | b
C cC | c
A continuaci
on encontramos los conjuntos unitarios de todas las variables:
UNIT(S) = {S, B}.
UNIT(A) = {A, C}.
UNIT(B) = {B}.
UNIT(C) = {C}.
A aA | a | cC | c
G2 :
B bbB | b
C cC | c
Luego introducimos las variables nuevas Ta , Tb y Tc , y las producciones
Ta a, Tb b y Tc c con el prop
osito de que todas las producciones
sean unitarias o de la forma A w, donde |w| 2.
S AB | Ta BC | SBS | Ta B | Tb Tb B | b
A T a A | a | Tc C | c
B Tb Tb B | b
G3 :
C Tc C | c
Ta a
Tb b
Tc c
116
G4 :
S AB | Ta T1 | ST2 | Ta B | Tb T3 | b
A Ta A | TC C | a | c
B Tb T 3 | b
C Tc C | c
T BC
1
T2 BS
T3 Tb B
Ta a
Tb b
T c
c
gram
atica:
Ejemplo
G:
S aS | aA | D
A aAa | aAD |
B aB | BC
C aBb | CC |
D aB | bA | aa | A
S aS | aA | D
A aAa | aAD |
G1 :
C CC |
D bA | aa | A
El conjunto de las variables alcanzables de G1 es ALC = {S, A, D}. Eliminando la variable no-alcanzable C obtenemos:
G2 :
S aS | aA | D
A aAa | aAD |
D bA | aa | A
117
El conjunto de variables anulables de G2 es ANUL = {A, D, S}. Eliminando las producciones obtenemos:
S aS | aA | D | a |
G3 :
A aAa | aAD | aa | aA | aD | a
D bA | aa | A | b
A continuaci
on encontramos los conjuntos unitarios de todas las variables:
UNIT(S) = {S, D, A}.
UNIT(A) = {A}.
UNIT(D) = {D, A}.
Al eliminar las producciones unitarias obtenemos la gramatica equivalente
G4 :
S aS | aA | a | | aAa | aAD | aa | aD | bA | b
G4 :
A aAa | aAD | aa | aA | aD | a
D bA | aa | b | aAa | aAD | aa | aA | aD | a
Finalmente, simulamos las producciones de G4 con producciones unitarias
y binarias:
S Ta S | Ta A | Ta T1 | Ta T 2 | Ta Ta | Ta D | Tb A | a | b |
A Ta T1 | Ta T 2 | Ta Ta | Ta A | Ta D | a
D Tb A | Ta Ta | b | Ta T 1 | Ta T2 | T a Ta | Ta A | T a D | a
G5 :
T1 ATa
T2 AD
Ta a
Tb b
118
Demostraci
on. La nueva gramatica G tiene una variable m
as que G, la
Ejemplo
G:
S ASB | BB
A aA | a
B bBS |
un se indic
o en la demostraci
on del Teorema 4.11.2, la gramatiSolucion. Seg
ca pedida G es
S S
S ASB | BB
G :
A aA | a
B bBS |
N
otese que S sigue siendo recursiva pero ya no es la variable inicial de la
gramatica.
Ejemplo
recursiva.
Solucion. Comenzamos transformando G en G , como se hizo en el ejemplo anterior. En G todas las variable son u
tiles y ANUL = {B, S, S }.
Eliminando las producciones obtenemos:
S S |
S ASB | BB | AB | AS | A
G1 :
A aA | a
B bBS | bS | bB | b
Los conjuntos unitarios son: UNIT(S ) = {S , S}, UNIT(S) = {S, A},
UNIT(A) = {A}, UNIT(B) = {B}. Eliminando las producciones unita-
119
S ASB | BB | AB | AS | aA | a |
S ASB | BB | AB | AS | aA | a
G2 :
A aA | a
B bBS | bS | bB | b
S AT1 | BB | AB | AS | Ta A | a |
S AT1 | BB | AB | AS | Ta A | a
A Ta A | a
B T T | T S | T B | b
b 2
b
b
G3 :
Ta a
Tb b
T1 SB
T BS
2
Ejercicios de la secci
on 4.11
S ABC | BaC | aB
A Aa | a
G:
B BAB | bab
C cC | c
S aASb | BAb
A Aa | a |
G:
B BAB | bAb
C cCS |
120
4.12.
w (V ) .
121
Demostraci
on. Se puede observar que, tanto con las producciones originales como las nuevas, A genera el lenguaje
{1 , 2 , . . . , m } {1 , 2 , . . . , n }
4.12.3 Lema. En una GIC cualquiera, una producci
on A uBv se puede
reemplazar (simular) por
A uw1 v | uw2 v | | uwn v
siendo B w1 | w2 | | wn todas las producciones de B.
Demostraci
on.
Inmediato.
122
gram
atica (que esta en FNC):
Ejemplo
G:
S AA | a
A AA | b
S AA | a
A b | bZ
Z A | AZ
Paso 3:
S bA | bZA | a
A b | bZ
Z A | AZ
Paso 4:
S bA | bZA | a
A b | bZ
Z b | bZ | BZZ
gram
atica (que
esta en FNC):
Ejemplo
S AB | BC
A AB | a
B AA | CB | a
C a | b
S AB | BC
B AA | CB | a
A AB | a
C a | b
Paso 2:
123
S AB | BC
B AA | CB | a
A a | aZ
Ca|b
Z B | BZ
Paso 3:
B aA | aZA | aB | bB | a
A a | aZ
Ca|b
Z B | BZ
Paso 4:
B aA | aZA | aB | bB | a
A a | aZ
Ca|b
gram
atica:
Ejemplo
S AB
A AB | CB | a
B AB | b
C AC | c
124
Paso 2:
S AB
A CB | a | CBZ1 | aZ1
B CBB | aB | CBZ1 B | aZ1 B | b
Z1 B | BZ1
S AB
A CB | a | CBZ1 | aZ1
B CBB | aB | CBZ B | aZ B | b
1
1
Z1 B | BZ1
Z BC | BZ C | BCZ | BZ CZ
2
1
2
1
2
Paso 3:
S 14 producciones
B aB | aZ B | b | 6 producciones | 6 producciones
1
C aC | aZ1 C | c | aCZ2 | aZ1 CZ2 | cZ2
Z1 B | BZ1
Z BC | BZ C | BCZ | BZ CZ
2
1
2
1
2
Paso 4: El n
umero de producciones de la nueva gramatica se incrementa
drasticamente:
S 14 producciones
Z1 15 producciones | 15 producciones
15 producciones
Ejercicios de la secci
on 4.12
125
S CA | AC | a
A BA | AB | b
B AA | a | b
C AC | CC | a
S BB | BC | b
A AC | CA | a
B BB | a
C BC | CA | a
S SC | AA | a
A CA | AB | a
B AC | b
C CA | AS | b
Nota: hay que eliminar primero la recursividad de la variable S.
4.13.
126
Demostraci
on. La siguiente tabla muestra las relaciones obtenidas entre
k = n
umero de nodos de la trayectoria m
as larga de S = w y la longitud
de w, en los casos k = 2, k = 3, k = 4 y k = 5. En la tabla se muestran los
casos extremos, es decir, los
arboles con el mayor n
umero posible de nodos.
k2
Se observa que |w| 2 . Una demostraci
on rigurosa del caso general se
hace por induccion sobre k.
k = n
umero de nodos de
Arbol
de derivaci
on
Longitud de w
k=2
S
|w| 2 = 21 = 2k2
k=3
S
|w| 4 = 22 = 2k2
k=4
k=5
|w| 8 = 23 = 2k2
127
en un
arbol de derivaci
on de S = w tiene m
as de k + 2 nodos.
Demostraci
on.
(1) Se sigue inmediatamente del Teorema 4.13.1.
(2) Es la afirmacion contra-recproca de la parte (1).
4.13.3. Lema de bombeo para LIC. Dado un LIC L, existe una constante n (llamada constante de bombeo de L) tal que toda z L con |z| > n
se puede descomponer en la forma z = uvwxy donde:
(1) |vwx| n.
(2) uv i wxi y L para todo i 0.
(3) v =
o x = .
Demostraci
on. Sea G = (V, , S, P ) una gramatica en FNC, con variable
inicial no recursiva, tal que L(G) = L. Tal gramatica existe por los Teoremas 4.11.1 y 4.11.2. Sea k = |V | = n
umero de variables de G y n = 2k . Sea
k
z L con |z| > n = 2 . Por la parte (2) del Corolario 4.13.2, la trayectoria
m
as larga en el
arbol de una derivaci
on S = z tiene m
as de k + 2 nodos.
Consideremos los u
ltimos k + 2 nodos de tal trayectoria (siguiendo el orden
que va desde la raz S hasta las hojas del arbol). El u
ltimo nodo de esa
trayectoria es un terminal a y los restantes k + 1 nodos son variables.
Como hay s
olo k variables en la gramatica, entonces hay por lo menos una
variable A = S repetida en la trayectoria. Por lo tanto, existen cadenas
u, v, w, x, y tales que
S = uAy,
A = vAx,
A = w.
As que
128
vAx = vwx tiene k+2 nodos o menos, por la parte (1) del Corolario 4.13.2,
podemos concluir que |vwx| 2k = n. Adem
as:
para todo i 0.
Finalmente, la derivaci
on A = vAx se puede escribir como
A = BC = vAx
utilizando una producci
on de la forma A BC como primer paso. Se
129
{a, b, c} no es un LIC.
Solucion. Argumento por contradicci
on. Si L fuera LIC, por el lema de
bombeo, existira una constante de bombeo n. Sea z = an bn cn ; se tiene que
z L y |z| > n. Por lo tanto, z se puede descomponer como z = an bn cn =
uvwxy con las propiedades (1), (2) y (3) del lema de bombeo. Puesto que
|vwx| n, en la cadena vwx no pueden aparecer los tres terminales a, b y c
simult
aneamente (para que aparezcan los tres terminales simult
aneamente,
una subcadena de an bn cn debe tener longitud n+2). Como v = o x = ,
se distinguen dos casos:
Ejemplo
no es un LIC.
Ejemplo
130
Ejercicios de la secci
on 4.13
4.14.
En la secci
on 3.2 se vio que los lenguajes regulares son cerrados bajo la
uni
on, la concatenaci
on, la estrella de Kleene y todas las operaciones booleanas. Los LIC poseen propiedades de clausura mucho m
as restringidas:
son cerrados para las operaciones regulares (Teorema 4.14.1) pero, en general, no son cerrados para interseccion, complementos ni diferencias (Teorema 4.14.2).
4.14.1 Teorema. La colecci
on de los lenguajes independientes del contexto
es cerrada para las operaciones regulares (uni
on, concatenaci
on y estrella
de Kleene). Es decir, dadas GIC G1 = (V1 , , S1 , P1 ) y G2 = (V2 , , S2 , P2 )
tales que L(G1 ) = L1 y L(G2 ) = L2 , se pueden construir GIC que generen
los lenguajes L1 L2 , L1 L2 y L1 , respectivamente.
131
Demostraci
on. Si perdida de generalidad, podemos suponer que G1 y G2
no tienen variables en com
un (en caso contrario, simplemente cambiamos
los nombres de las variables). Para construir una GIC G que genere L1 L2
introducimos una variable nueva S, la variable inicial de G, junto con las
producciones S S1 y S S2 . Las producciones de G1 y G2 se mantienen.
Concretamente,
G = V1 V2 {S}, , S, P1 P2 {S S1 , S S2 } .
Esquematicamente, G tiene el siguiente aspecto:
S S1 | S2
S1
..
..
.
.
producciones de G1
S2
..
..
.
.
producciones de G2
Claramente, L(G) = L1 L2 .
Una GIC G que genere L1 L2 se construye similarmente, a
nadiendo la
producci
on S S1 S2 . Es decir,
G = V1 V2 {S}, , S, P1 P2 {S S1 S2 } .
Esquematicamente, G es la gramatica:
S S1 S2
S1
..
..
.
.
producciones de G1
S2
..
..
.
.
producciones de G2
Claramente, L(G) = L1 L2 .
Para generar L1 se define G como
G = V1 {S}, , S, P1 {S S1 S, S } .
Esquematicamente, G es la gramatica:
S S1 S |
S1
..
..
.
.
producciones de G1
132
Ejemplo
{ai bj ai : i 0, j 1}.
Solucion. El lenguaje L1 se puede generar con la gramatica
S1 bA
A aA | a
y L2 con
S2 aS2 a | bB
B bB |
La siguiente gramatica genera L2 :
S3 S2 S3 |
S2 aS2 a | bB
B bB |
S S1 S3
S1 bA
A aA | a
S3 S2 S3 |
S2 aS2 a | bB
B bB | .
(1) La interseccion de dos LIC puede ser un lenguaje que no es LIC. Considerense, como ejemplo, los lenguajes
L1 = {ai bi cj : i, j 0},
L2 = {ai bj cj : i, j 0}.
133
Tanto L1 como L2 son LIC porque son generados por las gramaticas
G1 y G2 , respectivamente:
S AB
S AB
G1 :
G2 :
A aAb |
A aA |
B cB |
B bBc |
Ejemplo
134
Ejercicios de la secci
on 4.14
(i) Mostrar que los dos lenguajes siguientes, sobre = {a, b, c, d},
son LIC:
L1 = {ai bi cj dj : i, j 1},
L2 = {ai bj cj dk : i, j, k 1}.
(ii) Demostrar que L1 L2 no es un LIC.
Utilizar homomorfismos para concluir que los siguientes lenguajes sobre el alfabeto {0, 1} no son LIC:
(i) L = {u : |u| es un n
umero primo}.
(ii) L = {u : |u| es un cuadrado perfecto}.
Demostrar que los LIC son cerrados para la operacion de reflexi
on.
Concretamente, demostrar que si L es un LIC, tambien lo es el lenguaje LR = {wR : w L}.
PARA GIC
4.15. ALGORITMOS DE DECISION
4.15.
135
Algoritmos de decisi
on para GIC
En esta secci
on consideraremos problemas de decisi
on para GIC, similares
a los problemas para aut
omatas presentados en la secci
on 3.6. Dada una
propiedad P, referente a gramaticas independientes del contexto, un problema de decisi
on para P consiste en buscar un algoritmo, aplicable a una
GIC arbitraria G, que responda SI o NO a la pregunta: satisface G la
propiedad P? Los algoritmos vistos en el presente captulo (para encontrar
las variables terminables, las alcanzables, las anulables, etc) son frecuentemente u
tiles en el dise
no de algoritmos de decisi
on m
as complejos.
Problema 1 (Problema de la vacuidad). Dada una gram
atica G =
(V, , S, P ), es L(G) = ?
Algoritmo de decisi
on: ejecutar el algoritmo para determinar el conjunto
TERM de variables terminables. L(G) = si y s
olo si S TERM.
Problema 2 (Problema de la pertenencia). Dada una GIC G =
(V, , S, P ) y una cadena w , se tiene w L(G)?
Para resolver este problema primero convertimos G a la forma FNC, con
variable inicial no recursiva, siguiendo el procedimiento de la secci
on 4.11.
A partir de una GIC G en FNC podemos dise
nar un algoritmo bastante
ineficiente para decidir si w L(G): se encuentran todas las posibles derivaciones a izquierda (o los
arboles de derivaci
on) que generen cadenas de
longitud n = |w|. M
as especficamente, las cadenas de longitud 1 se pueden
derivar u
nicamente con producciones de la forma S a. Las cadenas de
longitud 2 s
olo tienen
arboles de derivaci
on de la forma:
S
A1
A2
a1
a2
S = A1 A2 = B1 B1 A2 = a1 a2 a3 ,
o
S = A1 A2 = a1 A2 = a1 B1 B2 = a1 a2 a3 .
Los arboles de estas derivaciones son:
136
S
A2
A1
B1
B2
a1
a3
A2
A1
a1
a2
B1
B2
a2
a3
PARA GIC
4.15. ALGORITMOS DE DECISION
137
Entrada:
Gramatica G en FNC y cadena de n terminales w = a1 a2 an .
Inicializar:
j = 1. Para cada i, 1 i n,
Xij = Xi1 := conjunto de variables A tales que A ai
es una producci
on de G.
Repetir:
j := j + 1. Para cada i, 1 i n j + 1,
Xij := conjunto de variables A tales que A BC es
una producci
on de G, con B Xik y C Xi+k,jk ,
considerando todos los k tales que 1 k < j 1.
Hasta: j = n.
Salida: w L(G) si y solo si S X1n .
Ejemplo
G:
S BA | AC
A CC | b
B AB | a
C BA | a
j=2
j=3
j=4
{S, C}
i=1
{A}
{B}
i=2
{A}
{B, S}
{S, C}
i=3
{B, C}
{S, C}
i=1
{A}
138
A continuaci
on se indica de manera detallada como se obtuvo la tabla
anterior, columna por columna:
j = 1.
j = 2.
j = 3.
j = 4.
j=1
j=2
j=3
j=4
j=5
{S, B, C}
i=1
{A}
{B, S}
i=2
{B, C}
{A}
{A}
{S, B, C}
i=3
{B, C}
{S, C}
{A}
i=4
{A}
{B, S}
i=5
{B, C}
139
PARA GIC
4.15. ALGORITMOS DE DECISION
j=1
j=2
j=3
j=4
i=1
{B, C}
{A}
{B}
i=2
{B, C}
i=3
{B}
i=4
{B, C}
140
Hay muchos problemas referentes a gramaticas que son indecidibles, es decir, problemas para los cuales no existen algoritmos de
decisi
on. Aunque no tenemos las herramientas para demostrarlo,
los siguientes problemas son indecidibles:
1. Dada una gramatica G, es G ambigua?
2. Dada una gramatica G, genera G todas las cadenas de terminales?, es decir, L(G) = ?
3. Dadas dos gramaticas G1 y G2 , generan G1 y G2 el mismo
lenguaje?, es decir, L(G1 ) = L(G2 )?
Ejercicios de la secci
on 4.15
PARA GIC
4.15. ALGORITMOS DE DECISION
141
Sea G la gramatica
G:
S BA | AB
A CA | a
B BB | b
C BA | c
w = bca.
w = acbc.
(iii)
(iv)
w = cabb.
w = bbbaa.
Captulo
5.1.
Aut
omatas con Pila Deterministas (AFPD)
Un Aut
omata Finito con Pila Determinista (AFPD) es una 7-upla,
M = (Q, q0 , F, , , z0 , ), con los siguientes componentes:
1. Q es el conjunto (finito) de estados internos de la unidad de control.
2. q0 Q es el estado inicial.
3. F es el conjunto de estados finales o de aceptaci
on, = F Q.
4. es el alfabeto de entrada, tambien llamado alfabeto de cinta.
5. es el alfabeto de pila.
6. z0 es el marcador de fondo, tambien llamado smbolo inicial de
pila (z0 no pertenece al alfabeto de entrada ).
7. es la funcion de transicion del automata:
: Q ( ) (Q ).
143
144
CAPITULO 5. AUTOMATAS
CON PILA
s
..
.
q
La transicion
(q, a, s) = (q , )
representa un paso computacional: la unidad de control pasa al estado q
y se mueve a la derecha; adem
as, borra el smbolo s que esta en el tope de
la pila, escribe la cadena (cadena que pertenece a ) y pasa a escanear
el nuevo tope de la pila. La gr
afica que aparece en la parte superior de la
pagina siguiente ilustra un paso computacional. Recalcamos que en cada
momento, el aut
omata s
olo tiene acceso al smbolo que esta en el tope de
la pila; adem
as, el contenido de la pila siempre se lee desde arriba (el tope)
hacia abajo. Por estas dos razones la pila se dibuja verticalmente.
Casos especiales de transiciones:
1. (q, a, s) = (q , s). En este caso, el contenido de la pila no se altera.
2. (q, a, s) = (q , ). El smbolo s en el tope de la pila se borra y la
unidad de control pasa a escanear el nuevo tope de la pila, que es el
smbolo colocado inmediatamente debajo de s.
145
5.1. AUTOMATAS
CON PILA DETERMINISTAS (AFPD)
..
.
Un paso
computacional
..
.
..
.
..
.
..
.
q
(q, a, s) = (q , )
a
q
3. (q, , s) = (q , ). Esta
es una transicion o transicion espontanea:
el smbolo sobre la cinta de entrada no se procesa y la unidad de
control no se mueve a la derecha, pero el tope s de la pila es reemplazado por la cadena . Para garantizar el determinismo, (q, a, s)
y (q, , s), con a , no pueden estar simult
aneamente definidos
(de lo contrario el aut
omata tendra una opci
on no-determinista). Las
transiciones espontaneas en un AFPD permiten que el automata cambie el contenido de la pila sin procesar (o consumir) smbolos sobre
la cinta de entrada.
Configuraci
on o descripci
on instant
anea. Es una tripla (q, au, s) que
representa lo siguiente: el aut
omata esta en el estado q, au es la parte no
procesada de la cadena de entrada y la unidad de control esta escaneando el
smbolo a. La cadena s es el contenido total de la pila; siendo s el smbolo
colocado en el tope.
La notaci
on (q, au, s) para configuraciones instantaneas es muy comoda: para representar el paso computacional de la figura que aparece arriba
escribimos simplemente
(q, au, s) (q , u, ).
Aqu el aut
omata utilizo la transicion (q, a, s) = (q , ).
La notaci
on
(q, u, ) (p, v, )
146
CAPITULO 5. AUTOMATAS
CON PILA
No se debe confundir la tripla que aparece en la funcion de transicion (q, a, s) con la tripla (q, u, ) que representa una configuraci
on instantanea.
5.1. AUTOMATAS
CON PILA DETERMINISTAS (AFPD)
147
Dise
nar un AFPD que acepte el lenguaje L = {ai bi : i 1},
Solucion. La idea es copiar las aes en la pila y borrar luego una a por cada b
que sea leda sobre la cinta. Una cadena sera aceptada si es procesada completamente y en la pila s
olo queda el marcador de fondo z0 . Concretamente,
M = (Q, q0 , F, , , z0 , ), donde
= {a, b},
= {z0 , A, B},
Q = {q0 , q1 , q2 },
F = {q2 },
y la funcion de transicion esta dada por:
(q0 , a, z0 ) = (q0 , Az0 ),
(q0 , a, A) = (q0 , AA),
(q0 , b, A) = (q1 , ),
(q1 , b, A) = (q1 , ),
(q1 , , z0 ) = (q2 , z0 ).
Podemos ilustrar el procesamiento de varias cadenas de entrada. Sea, inicialmente, u = aaabbb.
(q0 , aaabbb, z0 ) (q0 , aabbb, Az0 ) (q0 , abbb, AAz0 ) (q0 , bbb, AAAz0 )
(q1 , bb, AAz0 ) (q1 , b, Az0 ) (q1 , , z0 ) (q2 , , z0 ).
148
CAPITULO 5. AUTOMATAS
CON PILA
La u
ltima es una configuraci
on de aceptaci
on; por lo tanto la cadena
u = aaabbb es aceptada.
Para la cadena de entrada v = aabbb, se obtiene el siguiente procesamiento:
(q0 , aabbb, z0 ) (q0 , abbb, Az0 ) (q0 , bbb, AAz0 ) (q1 , bb, Az0 )
(q1 , b, z0 ) (q2 , b, z0 ).
[c
omputo abortado]
Ejemplo
Dise
nar un AFPD que acepte el lenguaje
L = wcwR : w {a, b} .
5.2. AUTOMATAS
CON PILA NO-DETERMINISTAS (AFPN)
149
Ejercicios de la secci
on 5.1
Dise
nar AFPD que acepten los siguientes lenguajes sobre = {a, b}:
(i) L = {ai b2i : i 1}.
(ii) L = {a2i bi : i 1}.
Dise
nar AFPD que acepten los siguientes lenguajes sobre = {0, 1}:
(i) L = {0i 1j 0i : i, j 1}.
(ii) L = {1i 0j 1i+j : i, j 1}.
5.2.
Aut
omatas con pila no-deterministas (AFPN)
Un Aut
omata Finito con Pila No-Determinista (AFPN) consta de
los mismos siete par
ametros de un AFPD, M = (Q, q0 , F, , , z0 , ), pero
la funcion de transicion esta definida como:
: Q ( ) f (Q ),
donde f (Q ) es el conjunto de subconjuntos finitos de Q . Para
q Q, a {} y s , (q, a, s) es de la forma
(q, a, s) = {(p1 , 1 ), (p2 , 2 ), . . . , (pk , k )}.
150
CAPITULO 5. AUTOMATAS
CON PILA
Ejemplo
Dise
nar un AFPN que acepte el lenguaje {ai bi : i 0}, sobre
el alfabeto = {a, b}.
(para aceptar ),
5.2. AUTOMATAS
CON PILA NO-DETERMINISTAS (AFPN)
Ejemplo
151
Dise
nar un AFPN que acepte el lenguaje de las cadenas sobre
Ejemplo
Dise
nar un AFPN que acepte el lenguaje L = {wwR : w },
152
CAPITULO 5. AUTOMATAS
CON PILA
Solucion. En el u
ltimo ejemplo de la secci
on 5.1 se construy
o un AFPD
que acepta el lenguaje {wcwR : w {a, b} }. El lenguaje L del presente
ejemplo es similar, excepto que ya no aparece el separador c entre w y wR .
El no-determinismo se puede usar para permitirle al automata la opcion de
adivinar cu
al es la mitad de la cadena de entrada. Si acierta, procedera a
comparar el resto de la cadena de entrada con los smbolos acumulados en
la pila. Si no acierta, el aut
omata continuar
a acumulando smbolos en la
pila y no llegar
a a un estado de aceptaci
on. Si la cadena de entrada tiene la
forma deseada, entre todos los computos posibles estara aquel en el que el
automata adivina correctamente cu
ando ha llegado a la mitad de la cadena.
M se define como M = (Q, q0 , F, , , z0 , ) donde
= {a, b},
= {z0 , A, B},
Q = {q0 , q1 , q2 },
F = {q2 },
y la funcion de transicion esta dada por:
(q0 , a, z0 ) = {(q0 , Az0 )},
(q0 , b, z0 ) = {(q0 , Bz0 )},
(q0 , , z0 ) = {(q2 , z0 )}
(para aceptar ),
5.2. AUTOMATAS
CON PILA NO-DETERMINISTAS (AFPN)
153
Ejercicios de la secci
on 5.2
Dise
nar APFN que acepten los siguientes lenguajes:
(i) L = {0i 1j : i, j 0, i = j}, sobre = {0, 1}.
(ii) L = {ai bj : i j 0}.
!(iii) L = {a2i b3i : i 0}, sobre = {a, b}.
!(iv) L = {0i 1j : 0 i j 2i}, sobre = {0, 1}.
Como se demostr
o en la secci
on 4.13, el lenguaje L = {ai bi ci : i 0}
no es LIC y, por consiguiente, no puede ser aceptado por ning
un
aut
omata con pila. No obstante, podramos concebir el siguiente plan
para aceptar a L: acumular en la pila dos Aes por cada a leda en
la cinta, borrar luego una A por cada b leda y, finalmente, borrar
una A por cada c. Si la cadena de entrada es de la forma ai bi ci , se
llegar
a al marcador de fondo z0 en el preciso momento en el que se
consume completamente la entrada. Concretamente, M esta definido
como M = (Q, q0 , F, , , z0 , ) donde
= {a, b, c},
= {z0 , A},
Q = {q0 , q1 , q2 , q3 , q4 },
F = {q4 },
y la funcion de transicion esta dada por:
(q0 , , z0 ) = {(q4 , z0 )}
(para aceptar ),
154
CAPITULO 5. AUTOMATAS
CON PILA
5.3.
Aceptaci
on por pila vaca
155
(q0 , w, z0 ) (q, , )
donde q F y . Entonces en M se puede efectuar el siguiente
computo:
156
CAPITULO 5. AUTOMATAS
CON PILA
(q0 , w, z0 ) (q, , )
donde q Q. Entonces en M se puede efectuar el siguiente computo:
Ejercicios de la secci
on 5.3
5.4. AUTOMATAS
CON PILA Y LIC. PARTE I.
5.4.
157
Aut
omatas con pila y LIC. Parte I.
Los lenguajes aceptados por los AFPN son exactamente los lenguajes inde
pendientes del contexto. Este
es un resultado an
alogo al Teorema de Kleene
para lenguajes regulares, aunque en el caso de los automatas con pila, los
modelos deterministas no son computacionalmente equivalentes a los nodeterministas. En la presente secci
on consideraremos la primera parte de
la correspondencia entre AFPN y LIC.
5.4.1 Teorema. Dada una GIC G, existe un AFPN M tal que L(G) =
L(M ).
Bosquejo de la demostraci
on. Para una gramatica G = (, V, S, P ) dada, se
construye un AFPN que utiliza la pila para simular la derivaci
on de cadenas
realizada por G. M requiere solamente tres estados, independientemente del
n
umero de variables y producciones de G. Especficamente, el automata M
se define como M = (Q, q0 , F, , , z0 , ), donde Q = {q0 , q1 , q2 }, F = {q2 }
y = V {z0 }. La funcion de transicion se define de la siguiente
manera:
1. (q0 , , z0 ) = {(q1 , Sz0 )}. Transicion mediante la cual M coloca el
smbolo inicial de la gramatica, S, en el tope de la pila al iniciar el
procesamiento de una cadena de entrada.
2. Para cada variable A V ,
(q1 , , A) = {(q1 , u) : A u es una producci
on de la gramatica G}.
Mediante estas transiciones, M utiliza la pila para simular las derivaciones: si el tope de la pila es A y en la derivaci
on se usa la producci
on
A u, el tope de la pila A es substituido por u.
3. Para cada smbolo terminal a , (q1 , a, a) = {(q1 , )}. Mediante estas transiciones, M borra los terminales del tope de la pila al
consumirlos sobre la cinta de entrada.
4. (q1 , , z0 ) = {(q2 , z0 )}. M ingresa al estado de aceptaci
on q2 cuando
detecta el marcador de fondo z0 .
158
CAPITULO 5. AUTOMATAS
CON PILA
Ejemplo
Sea G la gramatica:
S aAbS | bBa |
G : A aA | a
B bB | b
Seg
un la construcci
on del Teorema 5.4.1, el automata M esta dado por
M = (Q, q0 , F, , , z0 , ) donde
Q = {q0 , q1 , q2 },
F = {q2 },
= {a, b, S, A, B, z0 },
y la funcion de transicion es:
(q0 , , z0 ) = {(q1 , Sz0 )},
(q1 , , S) = {(q1 , aAbS), (q1 , bBa), (q1 , )},
(q1 , , A) = {(q1 , aA), (q1 , a)},
(q1 , , B) = {(q1 , bB), (q1 , b)},
(q1 , a, a) = {(q1 , )},
(q1 , b, b) = {(q1 , )},
(q1 , , z0 ) = {(q2 , z0 )}.
Podemos ilustrar la correspondencia entre derivaciones en G y procesamientos en M con la cadena aabbba, la cual tiene la siguiente derivaci
on a
izquierda:
S = aAbS = aabS = aabbBa = aabbba.
El automata M simula esta derivaci
on de la cadena aabbba as:
(q0 , aabbba, z0 ) (q1 , aabbba, Sz0 ) (q1 , aabbba, aAbSz0 )
(q1 , abbba, AbSz0 ) (q1 , abbba, abSz0 )
(q1 , bbba, bSz0 ) (q1 , bba, Sz0 ) (q1 , bba, bBaz0 )
(q1 , ba, Baz0 ) (q1 , ba, baz0 ) (q1 , a, az0 )
(q1 , , z0 ) (q2 , , z0 ).
5.4. AUTOMATAS
CON PILA Y LIC. PARTE I.
159
Ejemplo
Ejercicios de la secci
on 5.4
G:
S Aba | AB |
A aAS | a
B bBA | .
160
CAPITULO 5. AUTOMATAS
CON PILA
5.5.
Aut
omatas con pila y LIC. Parte II.
En la presente secci
on consideraremos la segunda parte de la correspondencia entre AFPN y LIC. Demostraremos que para todo AFPN que acepta por
pila vaca existe una GIC que genera el lenguaje aceptado por el automata.
Las gramaticas obtenidas son, en general, bastante complejas, con un gran
n
umero de variables y de producciones. Hay que advertir tambien que el
procedimiento puede dar lugar a muchas variables in
utiles (no-terminables
o no alcanzables).
5.5.1 Teorema. Dado un AFPN M = (Q, q0 , , , z0 , ) que acepta por
pila vaca, existe una GIC G = (, V, S, P ) tal que L(G) = N (M ).
Demostraci
on. En la gramatica G las variables (aparte de la variable inicial S) seran tripletas de la forma [qXp] donde q, p Q y X . Las
producciones de G se definen de la siguiente manera:
1. Si (p, ) (q, a, X), se a
nade la producci
on [qXp] a.
2. Si (p, ) (q, , X), se a
nade la producci
on [qXp] .
3. Si (r, Y1 Y2 Yk ) (q, a, X), donde a puede ser un smbolo del
alfabeto
o a = y k 1, se a
naden todas las producciones de la
forma
[qXrk ] a[rY1 r1 ][r1 Y2 r2 ] [rk1 Yk rk ]
para todas las secuencias posibles r1 , r2 , . . . , rk1 de estados de Q.
4. Para todo p Q se a
nade la producci
on S [q0 z0 p].
La gramatica G as definida pretende simular con derivaciones a izquierda
los computos de M ; el significado intuitivo de la variable [qXp] es: al extraer X del tope de la pila, se pasa del estado q al estado p. La producci
on
[qXrk ] a[rY1 r1 ][r1 Y2 r2 ] [rk1 Yk rk ]
del numeral 3 indica las posibles maneras en las que M puede extraer la
cadena Y1 Y2 Yk de la pila, una vez se haya sustituido el tope de la pila
X por dicha cadena, pasando del estado q al estado r y consumiendo el
smbolo a.
Demostraremos primero la inclusion N (M ) L(G). Para todo q, p Q,
X y w , se demostrar
a la implicacion
(5.1)
161
5.5. AUTOMATAS
CON PILA Y LIC. PARTE II.
Para el razonamiento inductivo, supongase que (q, w, X) (p, , ) donde n > 1. Considerando el primer paso de este computo de n pasos, podemos
escribir:
(5.2)
donde a
o a = . Cuando a , w = ax para alguna cadena x ;
cuando a = , x = w. En el primer paso de 5.2 se ha aplicado la transicion
(r0 , Y1 Y2 Yk ) (q, a, X) de M . Por la definicion de la gramatica G,
[qXrk ] a[r0 Y1 r1 ][r1 Y2 r2 ] [rk1 Yk rk ]
es una producci
on, para todas las secuencias posibles r1 , r2 , . . . , rk1 de
estados de Q.
Seg
un 5.2, desde la configuraci
on instantanea (r0 , x, Y1 Y2 Yk ) el automata llega hasta la configuraci
on (p, , ), consumiendo completamente
la cadena x y vaciando la pila. La cadena x se puede escribir entonces
como x = w1 w2 wk , siendo wi la cadena consumida por el automata
para extraer el smbolo Yi del tope de la pila. En consecuencia, existe una
secuencia de estados r1 , r2 ,. . . , rk1 , rk = p tales que
+
(ri1 , wi , Yi ) (ri , , ),
+
162
CAPITULO 5. AUTOMATAS
CON PILA
M , siendo w = , se tendr
a (q0 , w, z0 ) (p, , ), y usando 5.1 se con+
cluir
a que S = [q0 z0 p] = w. Si w = es aceptada por M , necesariamente (q0 , , z0 ) (p, , ) para alg
un estado p. Esto significa que
(q0 , , z0 ) (p, , ), y se tendr
a S = [q0 z0 p] = . Esto demuestra que
N (M ) L(G).
Para establecer L(G) N (M ) se demuestra la implicacion
+
(5.3)
Ejemplo
5.5. AUTOMATAS
CON PILA Y LIC. PARTE II.
163
A continuaci
on se presentan las producciones de G.
Producci
on obtenida de (q0 , , z0 ) = {(q1 , )}:
[q0 z0 q1 ] .
Producci
on obtenida de (q0 , a, B) = {(q0 , )}:
[q0 Bq0 ] a.
Producci
on obtenida de (q0 , b, A) = {(q0 , )}:
[q0 Aq0 ] b.
Producciones obtenidas de (q0 , a, z0 ) = {(q0 , Az0 )}:
[q0 z0 q0 ] a[q0 Aq0 ][q0 z0 q0 ] | a[q0 Aq1 ][q1 z0 q0 ]
[q0 z0 q1 ] a[q0 Aq0 ][q0 z0 q1 ] | a[q0 Aq1 ][q1 z0 q1 ].
Producciones obtenidas de (q0 , b, z0 ) = {(q0 , Bz0 )}:
[q0 z0 q0 ] b[q0 Bq0 ][q0 z0 q0 ] | b[q0 Bq1 ][q1 z0 q0 ]
[q0 z0 q1 ] b[q0 Bq0 ][q0 z0 q1 ] | b[q0 Bq1 ][q1 z0 q1 ].
Producciones obtenidas de (q0 , a, A) = {(q0 , AA)}:
[q0 Aq0 ] a[q0 Aq0 ][q0 Aq0 ] | a[q0 Aq1 ][q1 Aq0 ]
[q0 Aq1 ] a[q0 Aq0 ][q0 Aq1 ] | a[q0 Aq1 ][q1 Aq1 ].
Producciones obtenidas de (q0 , b, B) = {(q0 , BB)}:
[q0 Bq0 ] b[q0 Bq0 ][q0 Bq0 ] | b[q0 Bq1 ][q1 Bq0 ]
[q0 Bq1 ] b[q0 Bq0 ][q0 Bq1 ] | b[q0 Bq1 ][q1 Bq1 ].
Finalmente, las producciones de la variable inicial S son:
S [q0 z0 q0 ] | [q0 z0 q1 ].
Al examinar las producciones se puede observar que todas las variables de la
forma [q1 Xq], con X y q Q, son in
utiles ya que no tienen producciones. Con la terminologa ya conocida, dichas variables son no-terminables
y, por consiguiente, las producciones en las que aparecen se pueden eliminar. Otra variable no terminable es [q0 z0 q0 ]. Adem
as, las variables [q0 Aq1 ]
y [q0 Bq1 ] son inalcanzables, as que se pueden eliminar, junto con todas
164
CAPITULO 5. AUTOMATAS
CON PILA
SC
C aDC | bEC |
G:
D aDD | b
E bEE | a
Puesto que la u
nica producci
on de S es S C, las variables S y C se pueden
identificar, dando lugar a la siguiente gramatica simplificada equivalente:
S aDS | bES |
D aDD | b
E bEE | a
5.5. AUTOMATAS
CON PILA Y LIC. PARTE II.
Ejercicios de la secci
on 5.5
165
Captulo
Maquinas de Turing
En este captulo se presenta la M
aquina de Turing (MT) que es el modelo
de automata con m
axima capacidad computacional: la unidad de control
puede desplazarse a izquierda o a derecha y sobre-escribir smbolos en la
cinta de entrada. Argumentaremos que la m
aquina de Turing tiene la misma
potencia o capacidad de los computadores reales.
6.1.
M
aquinas de Turing como aceptadoras de
lenguajes
Una m
aquina de Turing (MT), M = (Q, q0 , F, , , b, ), consta de siete
componentes:
1. Q es el conjunto (finito) de estados internos de la unidad de control.
2. q0 Q es el estado inicial.
3. F es el conjunto de estados finales o de aceptaci
on, = F Q.
4. es el alfabeto de entrada.
5. es el alfabeto de cinta, que incluye a , es decir, .
6. b es el smbolo blanco (el smbolo b no puede hacer parte del
alfabeto de entrada ).
7. es la funcion de transicion de la m
aquina:
: Q Q {, }
167
168
CAPITULO 6. MAQUINAS
DE TURING
es una funci
on parcial, es decir, puede no estar definida en algunos
elementos del dominio. La flecha denota desplazamiento a izquierda
mientras que denota desplazamiento a la derecha. La transicion
(q, a) = (p, b, D)
significa: estando en el estado q, escaneando el smbolo a, la unidad
de control borra a, escribe b y se mueve en el estado p, ya sea a la
izquierda (si el desplazamiento D es ) o a la derecha (si D es ).
Una m
aquina de Turing M procesa cadenas de entrada w colocadas
sobre una cinta infinita en ambas direcciones. Para procesar una cadena de
entrada w, la unidad de control de M esta en el estado inicial q0 escaneando
el primer smbolo de w. Las demas celdas o casillas de la cinta contienen el
smbolo blanco b.
Descripci
on o configuraci
on instant
anea. Es una expresi
on de la forma
a1 a2 ai1 qai an
donde los smbolos a1 , . . . , an pertenecen al alfabeto de cinta y q Q.
Esta expresi
on representa el estatus actual del computo:
a1
a2
ai1
ai
an
Es decir, la descripci
on instantanea a1 a2 ai1 qai an indica que la unidad de control de M esta en el estado q escaneando el smbolo ai . Se supone
que todas las casillas, a la izquierda a1 y a la derecha de an , contienen el
smbolo blanco, b.
Ejemplos concretos de descripciones instantaneas son:
aabq2 baaa
q5 ababba
abbbaabq0 bba
6.1. MAQUINAS
DE TURING COMO ACEPTADORAS DE LENGUAJES
169
La configuraci
on o descripci
on instantanea inicial, o simplemente confi
guraci
on inicial, es q0 w, donde w es la cadena de entrada. Esta
se coloca
en cualquier parte de la cinta de entrada.
Paso computacional. El paso de una descripci
on instantanea a otra, por
medio de una transicion definida por , se denomina un paso computacional
y se denota por
u1 qu2 v1 pv2 .
Aqu u1 , u2 , v1 , v2 y p, q Q. Un ejemplo concreto es
abbaq2 ba abbq1 aca
en la cual la m
aquina utilizo la transicion (q2 , b) = (q1 , c, ).
La notaci
on
u1 qu2 v1 pv2
significa que M puede pasar de la descripci
on instantanea u1 qu2 a la descripci
on instantanea v1 pv2 en cero, uno o m
as pasos computacionales.
C
omputos especiales. Durante el computo o procesamiento de una cadena de entrada hay dos situaciones especiales que se pueden presentar:
1. El computo termina porque en determinado momento no hay transici
on definida.
2. El computo no termina; esto es lo que se denomina un bucle infinito
o un ciclo infinito. Esta situacion se representa con la notaci
on
u1 qu2
la cual indica que el computo que se inicia en la descripcion instantanea u1 qu2 no se detiene nunca.
Un detalle para tener en cuenta es que las transiciones con smbolo b,
(q, b) = (p, s, D), no son las mismas transiciones usadas para automatas en captulos anteriores. Una transicion en un automata tiene lugar
independientemente del smbolo ledo y la unidad de control permanece
estacionaria, mientras que una transicion (q, b) = (p, s, D) en una MT requiere que el smbolo blanco b este escrito en la casilla escaneada; adem
as,
la unidad de control sobre-escribe el blanco y realiza un desplazamiento D.
Lenguaje aceptado por una MT. Una cadena de entrada w es aceptada
por una MT M si el computo que se inicia en la configuraci
on inicial q0 w
170
CAPITULO 6. MAQUINAS
DE TURING
a|b
q
6.1. MAQUINAS
DE TURING COMO ACEPTADORAS DE LENGUAJES
171
La directriz de no-desplazamiento tambien se puede simular con un movimiento a la izquierda seguido de un retorno a la derecha. En cualquier
caso, concluimos que las MT en las que hay transiciones estacionarias,
(q, a) = (p, b, ), aparte de las transiciones normales, aceptan los mismos
lenguajes que las MT estandares. N
otese que las transiciones estacionarias
se asemejan a las transiciones en automatas, excepto por el hecho de que
las m
aquinas de Turing tienen la capacidad de sobre-escribir los smbolos
escaneados.
n
umero par de ceros, sobre el alfabeto {0, 1}.
Ejemplo
1|1
0|0
> q0
1|1
q1
0|0
b|b
q2
Ejemplo
172
CAPITULO 6. MAQUINAS
DE TURING
como se demostr
o en la secci
on 4.13; es decir, L no puede ser aceptado por
ning
un aut
omata con pila.
Sea M la MT con par
ametros
= {a, b, c},
= {a, b, c, X, Y, Z, b},
Q = {q0 , q1 , q2 , q3 , q4 , q5 },
F = {q5 },
y cuya funcion de transicion esta representada por el siguiente diagrama:
Y |Y
Z|Z
q4
b|b
q5
b|
Y |Y
a|a
b|b
a|a
b|b
Y |Y
Z|Z
b|Y
> q0
a|X
q1
Y |Y
Z|Z
c|Z
q2
q3
X|X
6.1. MAQUINAS
DE TURING COMO ACEPTADORAS DE LENGUAJES
173
XaaY bq3 bZc q3 XaaY bZc Xq0 aaY bZc XXaq1 Y bZc
XXaY q1 bZc XXaY Y q2 Zc XXaY Zq2 c XXaY q3 ZZ
XXXY Y q1 ZZ (c
omputo abortado).
Por otro lado, la cadena abbbcc, que tampoco esta en L, se procesara as:
Ejercicios de la secci
on 6.1
Seg
un los ejercicios de la secci
on 4.13, los siguientes lenguajes no son LIC.
Dise
nar MT que los acepten, escribiendo explcitamente la idea utilizada en
el dise
no. Presentar cada MT por medio de un diagrama de transiciones.
L = {ai bi cj : j i}.
L = {0i 12i 0i : i 0}.
L = {ai bj ck : 1 i j k}.
L = {ai bj ci dj : i, j 0}.
L = {ai bi ci di : i 0}.
174
6.2.
CAPITULO 6. MAQUINAS
DE TURING
Subrutinas o macros
Ejemplo
b a1 ak1 ak b
Salida:
a1 a2 ak b b
a|b
> q0
b|b
c|b
qa
qb
qc
b|a
b|b
q1
b|c
A continuaci
on definimos algunos otras subrutinas u
tiles; se solicita al estudiante dise
nar MT que los implementen.
175
ba1 a2 ak b
Salida:
b b a1 ak1 ak
bwb
Salida:
bwb
bwb
Salida:
bwb
abb bb
Salida:
abb bb
bb bba
Salida:
bb bba
bwb b
Salida:
bwb w b
176
CAPITULO 6. MAQUINAS
DE TURING
blancos:
Entrada:
b bwb
Salida:
b w bwb
bubvb
bvbub
Salida:
Ejercicios de la secci
on 6.2
Dise
nar MT que implementen las subrutinas TD, BI, BD, NBI, NBD,
COPD, COPI e INT cuando el alfabeto de entrada es {a, b}.
Dise
nar MT que implementen las subrutinas TD, BI, BD, NBI, NBD,
COPD, COPI e INT cuando el alfabeto de entrada es {0, 1, 2}.
Sea = {a, b}. Dise
nar MT para las siguientes subrutinas:
(i) TI2 . Traslada la cadena de entrada 2 casillas a la izquierda.
(ii) TD2 . Traslada la cadena de entrada 2 casillas a la derecha.
(iii) TIk . Traslada la cadena de entrada k casillas a la izquierda (k
es un entero fijo 1).
(iv) TDk . Traslada la cadena de entrada k casillas a la derecha (k es
un entero fijo 1).
6.3.
M
aquinas de Turing como calculadoras de
funciones
Como las m
aquinas de Turing tienen la capacidad de transformar las cadenas de entrada, borrando o sobre-escribiendo smbolos, se pueden utilizar como mecanismos para calcular funciones. Formalmente, una MT
M = (Q, q0 , qf , , , b, ) calcula o computa una funci
on h :
q0 w qf v,
Si existe una MT que calcule la funcion h, se dice que h es Turingcalculable o Turing-computable. El modelo de MT aqu utilizado coincide con el estandar, pero no hay estados de aceptaci
on. El estado qf , llamado
6.3. MAQUINAS
DE TURING COMO CALCULADORAS DE FUNCIONES
177
3, para cualquier n
umero natural n 1 escrito en el sistema
Ejemplo
Dise
nar una MT M que calcule el residuo de divisi
on de n por
de numeraci
on unitario (n se escribe como una secuencia de n unos).
on por 3 son 0, 1 y 2, por lo cual
Solucion. Los posibles residuos de divisi
bastan 3 estados, aparte de qf , para calcular esta funcion. M recorre de
izquierda a derecha la secuencia de entrada borrando los unos y pasando
alternadamente por los estados q0 (que representa el residuo 0), q1 (residuo
1) y q2 (residuo 2). El siguiente es el diagrama de transiciones de M :
1 | b
1 | b
> q0
1 | b
q1
q2
b | 1
b | 0
qf
b | 2
La noci
on de funcion Turing-computable se puede extender facilmente a
funciones de varios argumentos. Concretamente, una funcion h de k argumentos es Turing-computable si para toda k-upla (w1 , w2 , . . . , wk ) se tiene
q0 w1 bw2 b bwk b qf v,
178
CAPITULO 6. MAQUINAS
DE TURING
N
otese que para escribir la entrada en la cinta, los k argumentos w1 ,
w2 ,. . . , wk se separan entre s con el smbolo blanco b. Igual que antes,
no se permiten transiciones desde el estado final qf . Esta definicion abarca
tanto los casos de las funciones totales (definidas para toda entrada) como
los de las funciones parciales (indefinidas para algunas entradas).
de numeraci
on unitario. Esta
es una funcion de dos argumen-
Ejemplo
Dise
nar una MT M que calcule la funcion suma, en el sistema
tos, h(n, m) = n + m, donde n, m 1. Con entrada 1n b1m , M debe producir como salida 1n+m . Las secuencias de unos, 1n y 1m , representan los
n
umeros naturales n y m, respectivamente.
Solucion. M va a transformar 1n b1m en 1n+m trasladando la cadena 1m una
casilla hacia la izquierda. El separador b se sobre-escribe por 1 y el u
ltimo
1 de 1m se sobre-escribe por el smbolo b. El diagrama de transiciones de
la MT que implementa esta idea es:
b | 1
> q0
1 | 1
b | b
q1
q2
q3
1 | 1
qf
1 | 1
Ejercicios de la secci
on 6.3
b | b
1 | b
Dise
nar MT que calculen las siguientes funciones; hacer diagramas de transiciones para las m
aquinas obtenidas. Las entradas numericas se dan en el
sistema de numeraci
on unitario, como en los ejemplos de esta secci
on.
La funcion de paridad de los n
umeros naturales (n 1):
h(n) =
1,
0,
si n es par,
si n es impar.
1,
0,
si n m,
si n < m.
Para n, m 1, h(n, m) = m
ax(n, m).
Para i, j, k 1, h(i, j, k) = j. Esta funcion se llama segunda proyecci
on. Observaci
on: en general, la i-esima proyecci
on sobre k variables,
h(n1 , . . . , ni , . . . , nk ) = ni , es Turing-computable.
6.4. MAQUINAS
DE TURING COMO GENERADORAS DE LENGUAJES
6.4.
179
M
aquinas de Turing como generadoras de
lenguajes
Ejemplo
b|a
> q0
q1
b|a
orden lexicogr
afico (las cadenas se ordenan por longitud y las
Ejemplo
q3
b|b
b|0
0|0
0|1
> q0
q2
1|1
b|b
q1
0|0
1|1
b|b
1|0
180
CAPITULO 6. MAQUINAS
DE TURING
Ejercicios de la secci
on 6.4
Dise
nar MT que generen los siguientes lenguajes:
(i) L = {ai bi : i 1}.
(ii) L = {ai cbi : i 1}.
(iii) L = {ai : i es divisible por 3, i 1}.
Modificar la MT del u
ltimo ejemplo de esta secci
on para dise
nar una
MT que genere todas las cadenas de {a, b, c} en orden lexicogr
afico.
Ayuda: no se necesitan m
as estados.
Sea un alfabeto de n smbolos, = {a1 , a2 , . . . , an }. Modificar
la MT del u
ltimo ejemplo de esta secci
on para dise
nar una MT que
6.5.
6.5.1.
Estado de aceptaci
on u
nico
Las m
aquinas de Turing dise
nadas como aceptadoras de lenguajes se pueden convertir, sin alterar el lenguaje aceptado, en m
aquinas con un u
nico
estado de aceptaci
on. Esto se puede hacer porque en la definicion del modelo estandar se ha exigido que una MT siempre se detenga cuando la unidad
de control ingresa en un estado de aceptaci
on. Por consiguiente, al dise
nar
una MT s
olo es necesario un estado de aceptaci
on. De manera concreta, si
una MT tiene varios estados de aceptaci
on, podemos modificarla cambiando cada transicion de la forma (q, a) = (p, b, D), donde a, b y p es un
estado de aceptaci
on original, por la transicion (q, a) = (qf , b, D), en la
que qf es el u
nico estado de aceptaci
on de la nueva m
aquina.
De esta manera, se puede considerar que toda MT tiene un u
nico estado
inicial y un u
nico estado de aceptaci
on. Este es un hecho importante para
la codificaci
on binaria de m
aquinas de Turing (secci
on 7.1).
181
6.5.2.
M
aquina de Turing con cinta dividida en pistas
..
.
a1
a2
..
.
Pista 1
Pista 2
..
.
ak
..
.
Pista k
q
La funcion de transicion adquiere la siguiente forma:
(q, (a1 , a2 , a3 , . . . , ak )) = (p, (b1 , b2 , b3 , . . . , bk ), D)
donde los ai y los bi son smbolos del alfabeto de cinta y D es , o .
En un paso computacional, la unidad de control cambia simult
aneamente
el contenido de las k pistas de la celda escaneada y realiza luego uno de los
desplazamientos ,
o .
Simulaci
on. Las m
aquinas de Turing que act
uan sobre una cinta dividida
en k pistas aceptan los mismos lenguajes que las MT estandares. Para
concluir tal afirmacion, basta considerar el modelo multi-pistas como una
MT normal en la que el alfabeto de cinta esta formado por el conjunto de
k-uplas (s1 , s2 , . . . , sk ), donde los si . Es decir, el nuevo alfabeto de cinta
es el producto cartesiano k = (k veces).
Ejemplo
en el ejemplo de la secci
on 6.1 para aceptar el lenguaje L = {ai bi ci : i 1}
utiliza implcitamente la idea de marcadores: reemplazar las as por Xs,
las bes por Y s y las ces por Zs no es otra cosa que colocar las marcas X,
Y y Z en las posiciones deseadas. Estas marcas se pueden colocar en una
pista diferente, sin necesidad de sobre-escribir los smbolos de la cadena de
entrada.
6.5.3.
M
aquina de Turing con m
ultiples cintas
182
CAPITULO 6. MAQUINAS
DE TURING
a1
a2
Cinta 1
Cinta 2
..
.
..
.
ak
Cinta k
6.5. VARIACIONES DEL MODELO ESTANDAR
DE MT
183
{ai bi ci : i 0}.
Ejemplo
Dise
nar una MT con dos cintas que acepte el lenguaje L =
as facil de dise
nar que la MT est
andar
Solucion. Una MT con dos cintas es m
presentada en el segundo ejemplo de la secci
on 6.1. La idea es copiar en la
segunda cinta una X por cada a leda y, al aparecer las bes, avanzar hacia la
derecha en la primera cinta y hacia la izquierda en la segunda. Al aparecer
las ces se avanza hacia la derecha en ambas cintas. Si la cadena de entrada
tiene la forma ai bi ci , se detectara simult
aneamente el smbolo en blanco b
en ambas cintas.
La funcion de transicion requerida para implementar esta idea es:
(q0 , (a, b)) = (q1 , (a, ), (X, )),
(q1 , (a, b)) = (q1 , (a, ), (X, )),
(q1 , (b, b)) = (q2 , (b, ), (b, )),
(q2 , (b, X)) = (q2 , (b, ), (X, )),
(q2 , (c, b)) = (q3 , (c, ), (b, )),
(q3 , (c, X)) = (q3 , (c, ), (X, )),
(q3 , (b, b)) = (q4 , (b, ), (b, )),
(q0 , (b, b)) = (q4 , (b, ), (b, )).
Se han utilizado cuatro estados; q4 es el u
nico estado de aceptaci
on.
6.5.4.
M
aquinas de Turing no-deterministas (MTN)
184
CAPITULO 6. MAQUINAS
DE TURING
ndice
6.5. VARIACIONES DEL MODELO ESTANDAR
DE MT
Ejemplo
185
b|b
> q0
0|0
1|1
q1
0|b
1|b
b|b
Ejercicios de la secci
on 6.5
Dise
nar m
aquinas de Turing multi-pistas que acepten los siguientes
lenguajes. Escribir explcitamente la idea utilizada en el dise
no.
(i) L = {ai bi ci : i 0}.
(ii) L = {ai b2i ai : i 0}.
Dise
nar m
aquinas de Turing multi-cintas que acepten los siguientes
lenguajes (que no son LIC, seg
un los ejercicios y de la secci
on 4.13). Escribir explcitamente la idea utilizada en el dise
no.
!(i) L = ww : w {0, 1} .
!(ii) L = {ai : i es un cuadrado perfecto}.
Sea = {s1 , . . . , sm } un alfabeto cualquiera. Dise
nar una m
aquina
186
6.6.
CAPITULO 6. MAQUINAS
DE TURING
Simulaci
on de aut
omatas por medio de
m
aquinas de Turing
6.6.1.
Simulaci
on de aut
omatas
Un aut
omata (modelo AFD, AFN o AFN-) se puede simular con una
m
aquina de Turing: primero se convierte en un AFD M = (Q, q0 , F, , )
equivalente, usando las tecnicas del Captulo 2. Luego se construye una MT
M tal que L(M ) = L(M ) a
nadiendo un nuevo estado qf , que sera el u
nico
estado de aceptaci
on de M , y transiciones desde los estados de F hasta
qf , en presencia del smbolo blanco b. Es decir, M = (Q , q0 , F , , , b, )
donde
Q = Q {qf },
qf es un estado nuevo,
= {b},
F = {qf },
(q, s) = ((q, s), s, ),
(q, b) = (qf , b, ),
para q Q, s ,
para todo q F.
N
otese que la MT M as construida se detiene con cualquier entrada w.
Puesto que los lenguajes regulares son precisamente los aceptados por los
AFD, hemos establecido el siguiente teorema.
6.6.1 Teorema. Todo lenguaje regular es recursivo.
6.6.2.
Simulaci
on de aut
omatas con pila
DE AUTOMATAS
6.6. SIMULACION
POR MEDIO DE MAQUINAS
DE TURING
187
M = (Q , q0 , F , , , b, ) por medio de
Q = Q {qf },
= {b},
F = {qf }.
La MT M coloca inicialmente el smbolo inicial de pila sobre la cinta 2:
(q0 , (s, b)) = (q0 , (s, z0 ), (, )),
para cualquier s .
Una transicion de la forma (q, a, s) = (p, ) se simula con varias transiciones: se trata de lograr que M sobre-escriba el smbolo s en la cinta 2,
que representa el tope de la pila, por la cadena . Por ejemplo, la transicion
(q, a, s) = (p, a1 a2 a3 ) se simula a
nadiendo un estado auxiliar qe junto con
las transiciones
(q, (a, s)) = (qe , (a, ), (a3 , )),
(qe , (a, b)) = (qe , (a, ), (a2 , )),
(qe , (a, b)) = (p, (a, ), (a1 , )).
Para no alterar el lenguaje aceptado, cada transicion de este tipo requiere
la adicion de un estado especial qe diferente. Una transicion del automata
M , (q, , s) = (p, ), se simula de manera similar: la posicion de la unidad de control y el contenido de la primera cinta no cambian durante el
procedimiento.
Finalmente, se debe a
nadir la transicion
(q, (b, s)) = (qf , (b, s), (, )),
188
CAPITULO 6. MAQUINAS
DE TURING
Demostraci
on. Sabemos que un LIC L dado se puede generar con una
GIC G en FNC en la que la variable inicial no sea recursiva. En G no
hay transiciones , excepto posiblemente S . A partir de G podemos
construir un AFPN M tal que L(G) = L(M ) = L usando el procedimiento
del Teorema 5.4.1, y luego una MT M que simule a M , en la forma indicada
en la presente secci
on. Se puede observar que M y M siempre se detienen
al procesar una cadena de entrada cualquiera: no ingresan nunca en bucles
infinitos debido al tipo restringido de las transiciones que surgen de la
gramatica G.
Ejercicios de la secci
on 6.6
> q0
q1
q2
6.7.
Aut
omatas con dos pilas (AF2P)
En esta secci
on mostraremos que el modelo de automata con dos pilas
(AF2P) es tambien equivalente a la m
aquina de Turing. Un automata con
dos pilas es esencialmente un AFPD, tal como se definio en el captulo 5,
con la adicion de una pila m
as. Las pilas tienen la misma restriccion que
antes: el aut
omata s
olo tiene acceso al smbolo que esta en el tope de cada
pila. Un paso computacional depende del estado actual de la unidad de
control, del smbolo escaneado en la cinta y de los dos topes de pila, como
se muestra en la siguiente gr
afica:
189
6.7. AUTOMATAS
CON DOS PILAS (AF2P)
..
.
..
.
s2
s1
..
.
..
.
q
Podramos tambien definir aut
omatas con k pilas, k 1, pero tal modelo
no aumenta la capacidad computacional que se consigue con dos pilas. Para
limitarnos al modelo determinista debemos dotar al automata de una faceta
m
as: un smbolo auxiliar, $, llamado marcador final de entrada, que se
escribe al final de cada entrada y le sirve al automata para saber cu
ando
ha consumido completamente la cadena de entrada. El smbolo $ no forma
parte del alfabeto de entrada .
Una transicion en un AF2P tiene la forma
(q, a, s1 , s2 ) = (q , 1 , 2 ),
la cual tiene el siguiente significado: en presencia del smbolo a en la cinta
de entrada, la unidad de control pasa del estado q al estado q y se mueve
a la derecha. Adem
as, borra el smbolo s1 que esta en el tope de la primera
pila y lo sobre-escribe por la cadena 1 , y borra el smbolo s2 que esta en el
tope de la segunda pila y lo sobre-escribe por 2 . La unidad de control pasa
a escanear los nuevos topes de cada pila. Las cadenas 1 y 2 pertenecen a
, siendo el alfabeto de pila.
Tambien se permiten transiciones o transiciones espontaneas,
(q, , s1 , s2 ) = (q , 1 , 2 ).
190
CAPITULO 6. MAQUINAS
DE TURING
Dise
nar un AF2P que acepte el lenguaje L = {0i 12i 0i : i 0}.
Seg
un el ejercicio de la secci
on 4.13, este lenguaje no es LIC
y, por lo tanto, no puede ser aceptado por un automata con una sola pila.
Ejemplo
6.7. AUTOMATAS
CON DOS PILAS (AF2P)
191
las transiciones
(q1 , 0, 0, z0 ) = (q2 , , z0 ),
(q2 , 0, 0, z0 ) = (q2 , , z0 ).
Al encontrar $ en la cinta de entrada y z0 en el fondo de cada pila, se ingresa
al estado de aceptaci
on q3 :
(q2 , $, z0 , z0 ) = (q3 , z0 , z0 ).
Hay que a
nadir tambien la transicion (q0 , $, z0 , z0 ) = (q3 , z0 , z0 ) para aceptar la cadena vaca.
El siguiente teorema establece que una MT estandar se puede simular
con un AF2P.
6.7.1 Teorema. Dada una m
aquina de Turing M , se puede construir un
aut
omata con dos pilas M que acepte el mismo lenguaje que M .
Demostraci
on. Sea M una MT estandar dada, con funcion de transicion .
La idea basica de la simulacion es hacer que, en cada momento, la primera
pila de M contenga la parte ubicada a la izquierda de la unidad de control
de M , y la segunda pila contenga la parte ubicada encima y a la derecha.
La siguiente gr
afica muestra la cinta de M y las dos pilas de la simulacion.
En cada momento las pilas contienen solo un n
umero finito de casillas no
vacas.
tope tope
1ra. pila
2da. pila
192
CAPITULO 6. MAQUINAS
DE TURING
(q, a) = (p, b, )
193
(q, a) = (p, b, )
Ejercicios de la secci
on 6.7
6.8.
En esta secci
on presentaremos algunas propiedades de clausura de los lenguajes recursivos y de los RE; en los ejercicios del final de la secci
on aparecen otras propiedades similares.
6.8.1 Teorema.
es recursivo.
2. La uni
on de dos lenguajes recursivos es recursivo.
3. La uni
on de dos lenguajes RE es RE.
Demostraci
on.
194
CAPITULO 6. MAQUINAS
DE TURING
195
qe y qf , definidos m
as adelante, los estados de M son parejas de la
forma (p, q), donde p es un estado de M1 y q un estado de M2 . Cada
par de transiciones
1 (q1 , s1 ) = (p1 , r1 , D1 )
(transici
on de M1 ),
2 (q2 , s2 ) = (p2 , r2 , D2 )
(transici
on de M2 ),
196
CAPITULO 6. MAQUINAS
DE TURING
197
Ejercicios de la secci
on 6.8
198
CAPITULO 6. MAQUINAS
DE TURING
6.9.
M
aquinas de Turing, computadores,
algoritmos y la tesis de Church-Turing
Si bien la m
aquina de Turing antecedio en varias decadas a la implementaci
on fsica de los computadores actuales, ha resultado ser un modelo muy
conveniente para representar lo computable (lo que es capaz de hacer
cualquier dispositivo fsico de computaci
on secuencial).
6.9.1.
M
aquinas de Turing y algoritmos
Seg
un nuestra experiencia en las secciones anteriores, dise
nar una MT es
muy similar a escribir un programa computacional ya que la funcion de
transicion de una MT no es otra cosa que un conjunto de instrucciones.
Se establece as una conexi
on intuitiva directa entre m
aquinas de Turing y
algoritmos. La declaraci
on conocida como tesis de Church-Turing afirma
que dicha conexi
on es en realidad una equivalencia.
6.9.1. Tesis de Church-Turing. Todo algoritmo puede ser descrito por
medio de una m
aquina de Turing.
En su formulacion m
as amplia, la tesis de Church-Turing abarca tanto
los algoritmos que producen una salida para cada entrada como aquellos
que no terminan (ingresan en bucles infinitos) para algunas entradas.
Para apreciar su significado y su alcance, hay que enfatizar que la Tesis
de Church-Turing no es un enunciado matem
atico susceptible de demostraci
on, ya que involucra la noci
on intuitiva de algoritmo. En otras palabras,
la tesis no se puede demostrar. Se podra refutar, no obstante, exhibiendo
un procedimiento efectivo, que todo el mundo acepte que es un verdadero
algoritmo y que no pueda ser descrito por una m
aquina de Turing. Pero
tal refutaci
on no se ha producido hasta la fecha; de hecho, la experiencia
acumulada durante decadas de investigacion ha corroborado una y otra vez
la tesis de Church-Turing.
Hay dos hechos m
as que contribuyen a apoyar la tesis:
1. La adicion de recursos computacionales a las m
aquinas de Turing
(m
ultiples pistas o cintas, no determinismo, etc) no incrementa el
poder computacional del modelo basico. Esto es un indicativo de que
la m
aquina de Turing, no s
olo es extremadamente flexible, sino que
representa el lmite de lo que un dispositivo de computaci
on secuencial
puede hacer.
199
6.9.2.
M
aquinas de Turing y computadores
Captulo
Problemas indecidibles
La importancia de un modelo simple pero capaz de emular cualquier dispositivo de computaci
on como lo es la m
aquina de Turing radica no s
olo
en que permite estudiar lo que puede hacer sino tambien lo que no puede
hacer una m
aquina de computo, aun si dispone de recursos inagotables, como tiempo y espacio de almacenamiento ilimitados (es decir, cinta infinita
y tiempo de ejecuci
on indefinido). En este captulo estudiaremos problemas
que ninguna m
aquina de Turing puede resolver.
7.1.
Codificaci
on y enumeraci
on de m
aquinas
de Turing
202
Smbolo
s1 (smbolo b)
s2
s3
..
.
Codificaci
on
1
11
111
..
.
11 1
sm
m veces
..
.
11 1
..
.
sp
p veces
Codificaci
on
1
11
..
.
11 1
n veces
Y ENUMERACION
DE MAQUINAS
7.1. CODIFICACION
DE TURING
203
Ejemplo
204
El mecanismo de enumeraci
on presentado en esta secci
on permite
tambien concluir que el conjunto de todas las m
aquinas de Turing
(sobre un alfabeto dado ) es infinito enumerable.
Y ENUMERACION
DE MAQUINAS
7.1. CODIFICACION
DE TURING
Ejercicios de la secci
on 7.1
205
b|b
> q1
q3
b|b
q4
a|a
b|b
q2
(i)
010110111011010011101110111101110100111101110
111101110100111101101111101101001111010110101110
(ii)
sigue
sigue
13 012 014 012 010014 013 01013 010015 013 01013 0100
15 01012 01013 00101012 01013
Supongase que el alfabeto de entrada es = {a, b, c, d} y que los
smbolos a, b, c y d se codifican como 11, 111, 1111 y 11111, respectivamente. Supongase tambien que se establece el orden a < b < c < d
para los smbolos de .
(i) Codificar las cadenas dacb, cddab y badbcc.
(ii) Escribir explcitamente las cadenas binarias w6 , w15 , w22 y w25 .
(iii) Que puesto ocupa el codigo de la cadena cbd en el orden w1 ,
w2 , w3 , . . .? En otros terminos, encontrar el ndice i tal que wi
es el codigo de cbd.
Escribir las codificaciones de las siguientes MT: M7 , M14 , M65 , M150
y M255 . Cual es el lenguaje aceptado por tales m
aquinas?
206
7.2.
M
aquina de Turing universal
La m
aquina de Turing universal Mu simula el comportamiento de todas
las MT (sobre un alfabeto de entrada dado). Mu procesa pares (M, w),
siendo M la codificaci
on de una MT determinada y w la codificaci
on de
Cinta 1
Codigo de una MT M
Cinta 2
Codigo de una entrada w
Cinta 3
Codigo del estado actual de M
7.2. MAQUINA
DE TURING UNIVERSAL
207
208
Mu
prog
ram
a
M
PARA LENGUAJES RE
7.3. ALGORITMOS DE ACEPTACION
7.3.
209
Algoritmos de aceptaci
on para lenguajes RE
la m
aquina de Turing universal Mu y concluir que Lu es RE
Ejemplo
El argumento que se us
o en la secci
on anterior para construir
Ejemplo
210
Ejercicios de la secci
on 7.3
7.4.
211
En esta secci
on exhibiremos un lenguaje que no es RE, o sea, un lenguaje
que no puede ser reconocido por ninguna MT. Recordemos que para concluir que el lenguaje L = {ai bi : i 0} no es regular y que el lenguaje
L = {ai bi ci : i 0} no es LIC utilizamos razonamientos por contradicci
on
(basados en lemas de bombeo). Aqu tambien razonaremos por contradicci
on, aunque el lenguaje definido es completamente artificial y la contradicci
on se obtiene por medio de un argumento diagonal de interacci
on entre
las enumeraciones w1 , w2 , w3 , . . . (entradas) y M1 , M2 , M3 , . . . (m
aquinas
de Turing).
7.4.1 Teorema. El lenguaje
L = {wi : wi no es aceptada por Mi }
no es RE, es decir, no es aceptado por ninguna MT.
Demostraci
on. Razonamos suponiendo que L s es RE para llegar a una
contradicci
on. Si L fuera RE sera aceptado por una MT Mk , con respecto
a la enumeraci
on de m
aquinas de Turing ya descrita. Es decir, L = L(Mk )
para alg
un k. Se tendra entonces
wk L = wk no es aceptada por Mk = wk
/ L(Mk ) = L.
wk
/ L = wk
/ L(Mk ) = wk es aceptada por Mk = wk L.
Por lo tanto, wk L wk
/ L, lo cual es una contradicci
on.
El lenguaje L del Teorema 7.4.1 se denomina lenguaje de diagonalizaci
on y se denota con Ld :
Ld = {wi : wi no es aceptada por Mi }.
A lo largo de este captulo encontraremos otros lenguajes que no son RE.
212
w1 w2 w3 w4
0
0
1
0
1
0
0
0
0
1
1
0
..
.
7.5.
Lenguajes RE no recursivos
A continuaci
on mostraremos que existen lenguajes RE que no son recursivos, lo cual quiere decir que la contenencia
Lenguajes recursivos
Lenguajes RE
es estricta o propia (no hay igualdad). Esto implica que existen lenguajes
que pueden ser aceptados por MT especficas pero en cualquier MT que
los acepte habr
a computos que nunca terminan (obviamente, los computos de las cadenas aceptadas siempre terminan). De este hecho extraemos
la siguiente importante conclusi
on: los c
omputos interminables, o bucles
infinitos, no se pueden eliminar de la teora de la computaci
on.
El primer ejemplo de un lenguaje RE no-recursivo es el lenguaje universal Lu presentado en la secci
on 7.2.
213
RE
no RE
recursivos
Lu
Lu
RE pero no recursivos
Ld
214
LIC
Recursivos
RE
( ).
Regulares
LIC
Recursivos
Recursivamente Enumerables
Todos los lenguajes
M
aquinas aceptadoras
Regulares
Aut
omatas finitos (AFD AFN AFN-)
LIC
Aut
omatas con pila no-deterministas (AFPN)
RE
M
aquinas de Turing (MT)
Recursivos
M
aquinas de Turing que se detienen con toda entrada
7.6.
215
SI P se satisface
Entrada o
Instancia
Algoritmo
de decisi
on A
NO
P no se satisface
Seg
un la tesis de Church-Turing (secci
on 6.9), identificamos algoritmos con
m
aquinas de Turing y, por lo tanto, decir que el problema P es indecidible
equivale a afirmar que el lenguaje
L = {M : M es el codigo de una MT que satisface P}
no es recursivo.
216
T
ecnica de reducci
on de problemas
Conociendo que ciertos problemas son indecidibles, se puede concluir que
otros problemas de decisi
on tambien lo son si se razona por contradicci
on.
Para ser m
as precisos, supongase que ya se sabe que un cierto problema
P1 es indecidible (como el problema universal, por ejemplo). Podramos
concluir que un problema dado P2 es indecidible razonando as: si P2 fuera
decidible tambien lo sera P1 . Esta contradicci
on mostrara que el problema
P2 no puede ser decidible. Cuando se emplea este razonamiento, se dice que
el problema P1 se reduce al problema P2 .
Para utilizar esta tecnica de reduccion, es necesario dise
nar un algoritmo
A (o una m
aquina de Turing) que sea capaz de convertir una entrada cualquiera u del problema P1 en entradas para el problema P2 de tal manera
que, al aplicar la supuesta MT M que resuelve el problema P2 , se llegue
a una decisi
on, SI o NO, del problema P1 para la entrada u. La siguiente
gr
afica ilustra este procedimiento; el algoritmo A, que aparece representado por el rectangulo a trozos, es la parte esencial del procedimiento de
reducci
on.
SI
Entrada
u de P1
Entrada
de P2
M
Decisi
on para P2
Decisi
on para P1
con entrada w
NO
Ejemplo
217
M 0w
M 0w
Decisi
on del problema
de la parada
Decisi
on del problema
universal
NO
Ejemplo
218
Decisi
on del problema
de la cinta en
blanco
Decisi
on del problema
de la parada
NO
Ejercicios de la secci
on 7.6
Mediante la tecnica de reduccion de problemas mostrar que los siguientes problemas de decisi
on son indecidibles:
(i) Problema de la impresion: dada M = (Q, q0 , F, , , b, ) una
MT cualquiera y un smbolo s , imprimir
a M alguna vez
el smbolo s sobre la cinta si M inicia su funcionamiento con
219
Bibliografa
222
BIBLIOGRAFIA