Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoría de La Computación. Lenguajes, Autómatas, Gramáticas. Rodrigo de Castro. 2004
Teoría de La Computación. Lenguajes, Autómatas, Gramáticas. Rodrigo de Castro. 2004
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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. Aceptaci
on 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 aceptacion 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. Simulaci
on de aut
omatas por medio de maquinas de Turing
6.6.1. Simulaci
on de automatas . . . . . . . . . . . . . . .
6.6.2. Simulaci
on 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 maquinas 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
matematicos de la teora de la computacion. 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 est
a escrito tanto para estudiantes de matematicas 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 matematico o una
presentaci
on m
as intuitiva y pr
actica. 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 pr
acticos; hay que resaltar mas 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 b
asicas y la notacion de la teora intuitiva de conjuntos,
grafos, inducci
on 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 elaboraci
on 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 preparaci
on de la presente version tuve la suerte de
contar con la colaboraci
on del estudiante de matematicas 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
cooperaci
on desinteresada.
Introduccion
Qu
e es la Teora de la Computaci
on?
La Teora de la Computaci
on 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 teorico se inicio varias decadas antes
de la aparici
on de los primeros computadores reales y contin
ua creciendo,
a medida que que la computaci
on incrementa su sofisticacion.
Entre los muchos t
opicos que conforman la teora de la computacion,
solo 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 logico norteamericano Alonzo Church (19031995) y del matematico britanico 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 computacion. Como todos han resultados ser equivalentes entre s, ha ganado
3
INTRODUCCION
aceptaci
on universal la tesis de Church-Turing: no hay modelo de computacion m
as general ni poderoso que la maquina de Turing.
En los a
nos 40 y 50 del siglo XX se adelantaron investigaciones sobre
maquinas de Turing con capacidad restringida, surgiendo as la nocion de
m
aquina de estado finito o aut
omata finito (automata es sinonimo de
maquina de c
omputo autom
atico). 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 computacion, surgio con los estudios del
ling
uista norteamericano Noam Chomsky1 . Chomsky introdujo en 1956 la
nocion de gram
atica generativa con el proposito de describir los lenguajes
naturales como el espa
nol, el ingles, el frances, etc. Chomsky clasifico 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
relacion entre aut
omatas y gram
aticas: 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 gram
aticas (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 computacion se
ha centrado en el estudio de aut
omatas y gramaticas. Estas notas de clase
reflejan esa tradici
on.
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 puntuacion 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 notacion 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 {}.
La mayor parte de la teora de la computacion se hace con referencia a un alfabeto fijo (pero arbitrario).
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.
Caso n, m 1. |wn+m | = | ww
w$ | = (n + m)|w|. Por otro
! "#
n+m veces
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:
R
u =
,
si u = ,
an a2 a1 , si u = a1 a2 an .
De la definici
on se observa claramente que la reflexion de la reflexion de
una cadena es la misma cadena, es decir,
(uR )R = u,
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 concatenacion con respecto a la union,
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
Bi = (A Bi ),
iI
'&
iI
iI
Bi A =
&
iI
(Bi A).
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 concatenacion de cadenas.
4. Caso particular de la propiedad general, demostrada a continuacion.
&
&
5. Demostraci
on de la igualdad A
Bi = (A Bi ):
iI
&
Bi x = u v, con u A & v iI Bi
x = u v, con u A & v Bj , para alg
un j I
x A
un j I
& Bj , para alg
x iI (A Bi ).
'& (
&
La igualdad
Bi A = (Bi A) se demuestra de forma similar.
xA
&
iI
iI
iI
iI
Ejercicios de la secci
on 1.9
14
1.10.
Potencias de un lenguaje
1.11.
A =
Ai = A0 A1 A2 An
i0
Seg
un la definici
on 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 descripcion de A :
(Descripci
on 2)
Ai = A1 A2 An
i1
=
=
15
5. A+ A+ A+ .
* ++
6. A = A .
* +
7. A+ = A .
* ++
8. A+ = A+ .
A A = A (A0 A1 A2 )
= A1 A2 A3
= A+ .
16
5. La demostraci
on de esta propiedad es similar a la de la propiedad 2,
pero con la restricci
on m, n 1. En general, no se tiene la igualdad A+
A+ = A+ ; m
as adelante se mostrara un contraejemplo.
*
6.
++
* +1
+2
+3
= A (A (A
= A A A
= A .
* + + * + +0 * + +1 * + +2
A
= A
A
A
7.
= {} A+ A+ A+
= A (conjuntos contenidos en A+ )
= A .
8.
A+
++
* +1 * +2 * +3
= 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
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 union, concatenacion 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
(union),
(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. {a} {b} {b} .
1.14.
19
Expresiones regulares
Con el prop
osito de simplificar la descripcion de los lenguajes regulares se
definen las llamadas expresiones regulares.
La siguiente es la definici
on recursiva de las expresiones regulares
sobre un alfabeto dado.
1. Expresiones regulares b
asicas:
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 concatenacion de los lenguajes representados por
R y S; (R S) representa su union, y (R) representa la clausura
de Kleene del lenguaje representado por R. Los parentesis ( y ) son
smbolos de agrupaci
on y se pueden omitir si no hay peligro de ambig
uedad.
Para una expresi
on regular R cualquiera se utiliza en ocasiones la siguiente
notacion:
L(R) := lenguaje representado por R.
Utilizando esta notaci
on y la definicion recursiva de expresion 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 seccion 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 expresion 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 computacion.
Historicamente, su estudio se origino con la llamada maquina de Turing,
que fue propuesta en 1936 por el matematico britanico 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 maquinas de Turing con capacidad
restringida, lo que dio lugar a la nocion 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
q
"
de control
"
La funci
on de transici
on indica el estado al cual pasa el control finito,
dependiendo del smbolo escaneado y de su estado actual. As, (q, s) = q
significa que, en presencia del smbolo s, la unidad de control pasa del
estado q al estado q y se desplaza hacia la derecha. Esta accion constituye
un paso computacional:
(q, s) = q
2.1. AUTOMATAS
FINITOS DETERMINISTAS (AFD)
27
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 aceptacion.
Funci
on de transici
on :
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.
#
q0
q0
u
$!
b
q0
q1
q1
"
q2
v = aababa.
#
q0
q0
q0
v
$!
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 funci
on de transicion (q, a) siempre esta definida. Es
decir, la funci
on de transici
on 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
La transici
on = (q, s) = p se representa en la forma
s
q
p
Dicho grafo se denomina diagrama de transiciones del aut
omata y
es muy u
til para hacer el seguimiento completo del procesamiento de una
cadena de entrada. Una cadena u es aceptada si existe una trayectoria
etiquetada con los smbolos de u, que comienza en el estado q0 y termina
en un estado de aceptaci
on.
ci
on anterior.
Ejemplo
= {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptacion.
Funci
on de transici
on :
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 .
Ejemplo
a
b
q1
b
a
Version simplificada:
Ejemplo
> q0
a
q1
q2
b
a
Version 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
transici
on (q, a) puede consistir en mas 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 aceptacion.
5.
: Q (Q)
(q, s) / (q, s) = {qi1 , qi2 , . . . , qik }
donde
34
CAPITULO 2. AUTOMATAS
FINITOS
u
$!
s
"
q
La noci
on de diagrama de transiciones para un AFN se define de manera
analoga 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 aceptacion 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 c
omputos que terminan en estados de aceptacion.
Seg
un la definici
on de lenguaje aceptado, u L(M ).
Computo de rechazo:
q0
Computo de aceptaci
on:
q0
Otro c
omputo de aceptaci
on:
q0
u
$!
b
q1
q2
u
$!
b
q3
q3
u
$!
b
q1
q2
"
q2
"
q3
"
q1
36
CAPITULO 2. AUTOMATAS
FINITOS
Computo abortado:
u
$!
q0
"
q0
Ejemplo
En el u
ltimo ejemplo de la seccion 2.3 se dise
no el siguiente
que terminan en b:
a
> q0
q1
a
Un AFN que acepta el mismo lenguaje y que es, tal vez, mas facil de
concebir, es el siguiente:
a
b
> q0
q1
b
Este aut
omata se asemeja a la expresion 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 solo 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 seccion 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 mostrar
a 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
afirmaci
on 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 demostracion se dara en detalle mas 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 aceptacion 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
La tabla de la funci
on de transicion de M se extiende para completar la
funcion del nuevo AFN:
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 funci
on de transici
on, 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 transicion : Q Q se extiende a una funcion . : Q Q por medio
de la siguiente definici
on recursiva:
(q, ) = q, q Q,
. a) = (q, a), q Q, a ,
(q,
.
. w), a), q Q, a , w .
(q, wa) = ((q,
. 0 , w) es el
Seg
un esta definici
on, para una cadena de entrada w , (q
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:
. 0 , w) F }.
L(M ) = {w : (q
. w) se noNotaci
on. Sin peligro de ambig
uedad, la funcion extendida (q,
tara 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) :=
qS
(q, a).
42
CAPITULO 2. AUTOMATAS
FINITOS
. : Q (Q), de manera
Luego se extiende a una funcion
similar a como se hace para los AFD. Recursivamente,
. ) = {q}, q Q,
(q,
.
(q, a) = (q, a), q Q, a ,
)
(q,
. wa) = ((q,
. w), a) =
(p, a), q Q, a , w .
!
p(q,w)
. 0 , w) es el
Seg
un esta definici
on, para una cadena de entrada w , (q
conjunto de los posibles estados en los que terminan los computos completos
de w. Si el c
omputo se aborta durante el procesamiento de w, se tendra
. 0 , w) = . Usando la funci
. el lenguaje aceptado por M
(q
on extendida ,
se puede describir de la siguiente forma:
. 0 , w) contiene un estado de aceptacion}.
L(M ) = {w : (q
. w) se
Notaci
on. Sin peligro de ambig
uedad, la funcion extendida (q,
notara 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 demostrara 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 inducci
on) que ({q0 }, w) = (q0 , w), y que a .
({q0 }, wa) = (({q0 }, w), a)
= (({q0 }, w), a)
(definicion de la extension de )
(hipotesis de induccion)
(definicion de la extension de )
= (q0 , wa)
(definicion de la extension 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).
La transici
on (q, ) = {pi1 , . . . , pin }, llamada transici
on , transici
on
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 mas 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 expresion 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 c
omputos 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 mostrar
a que el modelo AFN- es computacionalmente
equivalente al modelo AFN. O dicho mas graficamente, 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
afirmaci
on 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 . Notese que, en general,
[q] = (q, ). Por definici
on, q [q]. La -clausura de un conjunto de
estados {q1 , . . . , qk } se define por:
[{q1 , . . . , qk }] := [q1 ] [qk ].
Ademas, [] := . 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
>
b
>
>
>
53
54
CAPITULO 2. AUTOMATAS
FINITOS
>
>
a
Automata que acepta a(b a ):
b
>
55
>
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 inducci
on 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
A B =
An 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 soluci
on 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 ; mas 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 aceptacion 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 inc
ognitas 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 A2 b(a ba) .
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
(11)
(13)
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:
%
w se puede descomponer como w = uvx, con |uv| n, v = ,
(B)
y para todo i 0 se tiene uv i x L.
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 grafica, w se puede descomponer como
w = uvx, donde |uv| n, v = .
#
!
w
$!
q0
"#
u
$!
"#
v
"
$!
"#
x
> 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 contradiccion: 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
Demostrar
que
el
lenguaje
L
=
a
:
i
0
no es regular. L
Ejemplo
est
a formado por cadenas de aes cuya longitud es un cuadrado
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 conclusion, 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
Hemos visto que un lenguaje finito es regular y que la union finita de lenguajes regulares es regular. Pero una union infinita de
lenguajes regulares no necesariamente es regular; considerese, por
ejemplo,
)
L = {an bn : n 1} =
{ai bi }.
i1
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.
Las propiedades de clausura permiten concluir, razonando por contradiccion, que ciertos lenguajes no son regulares. Esto se ilustra en los siguientes
ejemplos en los que se usa el hecho de que los lenguajes L = {ai bi : i 0}
y L = {ai bi : i 1} no son regulares.
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 present
o 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 construccion 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 eliminacion 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
7
8
h1 (L) = {0, 1}n 2{0, 1}n : n 1 .
Ejemplo
75
Ejercicios de la secci
on 3.5
Por medio de un razonamiento similar al del ejemplo de esta seccion, demostrar que los siguientes lenguajes sobre = {0, 1} no son regulares:
L = {ww : w }. Ayuda: intersectar primero L con 0 10 1.
L = {wwR : w }. Ayuda: intersectar primero L con 0 110 .
3.6.
Algoritmos de decisi
on
La noci
on de algoritmo que consideraremos en esta seccion 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 decisi
on
NO
M no satisface P
76
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 nocion completamente diferente,
aunque relacionada, la de gram
atica generativa, que es un mecanismo para
generar cadenas a partir de un smbolo inicial.
Los aut
omatas procesan cadenas
Las gram
aticas generan cadenas
4.1.
Gram
aticas generativas
Las gram
aticas generativas fueron introducidas por Noam Chomsky en 1956
como un modelo para la descripcion de los lenguajes naturales (espa
nol,
ingles, etc). Chomsky clasific
o las gramaticas en cuatro tipos: 0, 1, 2 y 3.
Las gram
aticas de tipo 2, tambien llamadas gramaticas independientes del
contexto, se comenzaron a usar en la decada de los sesenta para presentar
la sintaxis de lenguajes de programacion y para el dise
no de analizadores
sintacticos en compiladores. En este curso u
nicamente tendremos oportunidad de estudiar gram
aticas de tipos 2 y 3. El estudiante puede pasar
directamente a la secci
on 4.2; el resto de la presente seccion es material
(opcional) de referencia.
Una gram
atica generativa es una cuadrupla, G = (V, , S, P ) formada
81
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 cuadrupla,
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
La denominaci
on independiente del contexto proviene del hecho de
cada producci
on o regla de re-escritura A w se aplica a la variable A
independientemente de los caracteres que la rodean, es decir, independientemente del contexto en el que aparece A.
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
La gram
atica G = (V, , S, P ) dada por:
V = {S, A}
= {a, b}
P = {S aS, S bA, S , A bA, A b, A }
se puede presentar como
9
S aS | bA |
A bA | b |
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 gram
atica
9
S aS | aA
A bA | b
S AB
A aA | a
B bB | b
Ejemplo
La gram
atica
S 1A | 0
A 0A | 1A |
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 |
Una gram
atica equivalente es
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 gram
aticas equivalentes son:
7
= {a, b}.
Ejemplo
S AAS |
Aa|b
Solucion.
S abS | baS | .
Ejemplo
genera el lenguaje de todas las cadenas de parentesis anidados y equilibrados; es decir, cadenas como (()), ()()(), (())((())).
acil ver que G genera cadenas de parentesis anidados y equiSolucion. Es f
librados ya que cada aplicaci
on de la produccion S (S)S da lugar a un
par de parentesis equilibrados.
Para establecer la direcci
on recproca demostraremos por induccion sobre n la siguiente afirmaci
on: 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 gram
atica S SS | (S) | tambien genera el
lenguaje de todas las cadenas de parentesis anidados y equilibrados.
Encontrar una gram
atica 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 est
a etiquetada con el smbolo inicial S.
2. Cada nodo interior est
a etiquetado con un no terminal.
3. Cada hoja est
a etiquetada con terminal o con .
4. Si en la derivaci
on se utiliza la produccion A s1 s2 sk , donde
atica:
Ejemplo Sea G la gram
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 derivacion
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 gram
atica:
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 produccion a
la variable que est
a 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.
5
6
Consid
e
rese
el
alfabeto
=
0,
1,
+,
,
(,
)
. La siguiente
Ejemplo
gram
atica Gsp para generar n
umeros naturales, sumas y productos, 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
En la gram
atica Gsp la ambig
uedad se puede eliminar introduciendo parentesis:
S (S + S) | (S S) | (S) | 0S | 1S | 0 | 1
Aunque la introducci
on de parentesis elimina la ambig
uedad, las expresiones generadas tienen un excesivo n
umero de parentesis lo que dificulta el
analisis sint
actico (en un compilador, por ejemplo). Lo mas corriente en
estos casos es utilizar gram
aticas ambiguas como Gsp siempre y cuando se
establezca un orden de precedencia para los operadores. Lo usual es establecer que tenga una mayor orden de precedencia que +, es decir, por
convenci
on act
ua antes que +. Por ejemplo, la expresion 1 1 + 0 se interpreta como (1 1) + 0 y la expresion 10 + 11 110 + 1 se interpreta como
10 + (11 110) + 1.
Ejemplo
La siguiente gram
atica es ambigua:
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 seccion 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 demostracion
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
dgitosdecimalexp
dgitosdgitos | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
.dgitos |
Edgitos | E+dgitos | E-dgitos |
4.5. GRAMATICAS
PARA LENGUAJES DE PROGRAMACION
95
Esta gram
atica genera expresiones como 47.236, 321.25E+35, 0.8E9 y
0.8E+9. Las partes decimal y exponencial son opcionales debido a las
producciones decimal y exp , pero no se generan expresiones
como .325, E125, 42.5E ni 0.1E+.
programaci
on, es decir, cadenas cuyo primer smbolo es una le-
Ejemplo
Gram
atica para generar los identificadores en lenguajes de
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
letralsds
letralsds | dgitolsds |
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
Con la gram
atica del primer ejemplo de esta seccion hacer derivaciones y
arboles de derivaci
on para las cadenas 235.101E+25 y 0.01E-12.
Encontrar una GIC, con una sola variable, para generar los identificadores, es decir, el lenguaje del segundo ejemplo de esta seccion.
Una gram
atica similar a la siguiente se usa en muchos lenguajes de
programaci
on para generar expresiones aritmeticas formadas por sumas y productos de n
umeros en binario:
expresi
on
termino
factor
n
umero
termino | expresi
on+termino
factor | termino*factor
n
umero | (expresi
on)
1n
umero | 0n
umero | 0 | 1
96
4.6.
Gram
aticas para lenguajes naturales !
SujetoVerboCompl. Directo |
SujetoVerboCompl. DirectoCompl. Circunst. |
SujetoVerboCompl. IndirectoCompl. Circunst.
Sujeto
Compl. Directo
Prepos.ArtculoSustant. |
Prepos.ArtculoSustant.Prepos.ArtculoSustant. |
Prepos.ArtculoSustant.Prepos.Sustant.Adjetivo
Adjetivo
Prepos.
Artculo
Adverbio
Verbo
Los lenguajes naturales son casi siempre ambiguos porque existen muchas
reglas de producci
on, lo que da lugar a m
ultiples arboles de derivacion para
ciertas oraciones.
Ejemplo
La oraci
on
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 Verbo
Juan
Compl.Indirecto
Compl. Circunst.
una
persona
con
un telescopio
Oraci
on
Sujeto
Verbo
Compl. Directo
Juan
mira
una
Ejercicios de la secci
on 4.6
persona
con
un
telescopio
Usando la gram
atica exhibida en la presente seccion, mostrar que las siguientes oraciones del idioma espa
nol son ambiguas. En cada caso hacer los
arboles de derivaci
on.
Mara escucha la conversaci
on tras la puerta.
Pedro ve la televisi
on en la mesa.
Manuel observa a la chica con vestido rojo.
Ana so
n
o con un gato en pijama.
98
4.7.
Gram
aticas regulares
4.7.1 Definici
on. Una GIC se llama regular si sus producciones son de
la forma
9
A aB, a , B V.
A .
Los siguientes teoremas establecen la conexion entre los lenguajes regulares
y las gram
aticas 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
9
q ap si y solo si (q, a) = p.
q si y solo 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 produccion 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
vacion 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 inducci
on, (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 solo si
S =G w,
secci
on 2.3, acepta las cadenas que terminan en b:
Ejemplo
> q0
b
q1
a
M induce la gram
atica regular
9
G:
q0 aq0 | bq1
q1 bq1 | aq0 |
S A1A1A
A 0A |
Esta gram
atica no es regular, pero por medio del AFD
100
0
>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
9
B (A, a) para cada produccion 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
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:
5
6
TERM := A V : producci
on A w, w
REPETIR:
5
6
TERM := TERM A V : producci
on 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
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
S a | AB
A aA |
Aplicaci
on de los algoritmos en el orden (I):
Variables terminables de G: TERM= {S, A}.
9
Sa
G1 :
A aA |
Variables alcanzables de G1 : ALC= {S}.
5
G2 :
Sa
Se tiene que L(G2 ) = {a}.
Aplicaci
on de los algoritmos en el orden (II):
Variables alcanzables de G: ALC={S, A, B}.
9
S a | AB
G3 :
A aA |
Variables terminables de G3 : TERM={S, A}.
9
Sa
G4 :
A aA |
Se observa que en G4 , A no es alcanzable. Ademas, G2 = G4 .
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 gram
atica 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
5
6
ANUL := ANUL A V : prod. A w, w (ANUL)
HASTA:
No se a
naden nuevas variables a ANUL
4.9.3 Teorema. Dada una GIC G, se puede construir una GIC G equivalente a G sin producciones , excepto (posiblemente) S .
Demostraci
on. Una vez que haya sido determinado el conjunto ANUL de
variables anulables, por medio del algoritmo 4.9.2, las producciones de
se pueden eliminar (excepto S ) a
nadiendo nuevas producciones que
simulen el efecto de las producciones eliminadas. Mas concretamente, por
cada producci
on A u de G se a
naden las producciones de la forma A v
obtenidas suprimiendo de la cadena u una, dos o mas variables anulables
presentes, de todas las formas posibles. La gramatica G as obtenida es
equivalente a la gram
atica original G.
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:
5
UNIT(A):= UNIT(A) X V : una produccion Y X
6
con Y UNIT(A)
HASTA:
No se a
naden nuevas variables UNIT(A)
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 gram
atica 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 gram
atica 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 proposito 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 gram
atica G tiene una variable mas que G, la
Ejemplo
G:
S ASB | BB
A aA | a
B bBS |
un se indic
o en la demostracion del Teorema 4.11.2, la gramatiSolucion. Seg
ca pedida G es
S S
S ASB | BB
G :
A aA | a
B bBS |
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 |
Para la gram
atica del ejercicio encontrar una GIC equivalente en
FNC, de tal manera que su variable inicial no sea recursiva.
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 }
Inmediato.
122
gram
atica (que est
a 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
a en FNC):
est
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
dr
asticamente:
S 14 producciones
Z1 15 producciones | 15 producciones
15 producciones
La gram
atica original tena 8 producciones; la nueva gramatica en
FNG tiene un total de 139 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
Encontrar una gram
atica en FNG equivalente a la siguiente GIC:
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 mas 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 demostracion rigurosa del caso general se
hace por inducci
on 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 afirmaci
on 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
mas larga en el
arbol de una derivacion S = z tiene mas 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
"#
$ !
"#
$ !
"#
$ !
"#
x
$ !
"#
y
vAx = vwx tiene k+2 nodos o menos, por la parte (1) del Corolario 4.13.2,
podemos concluir que |vwx| 2k = n. Ademas:
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 contradiccion. 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
simultaneamente (para que aparezcan los tres terminales simultaneamente,
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
union, la concatenaci
on, la estrella de Kleene y todas las operaciones booleanas. Los LIC poseen propiedades de clausura mucho mas 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 } .
Esquem
aticamente, G tiene el siguiente aspecto:
S S1 | S2
S1
..
..
.
.
S2
..
..
.
.
producciones de G1
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 } .
Esquem
aticamente, G es la gram
atica:
S S1 S2
S1
..
..
.
.
S2
..
..
.
.
producciones de G1
producciones de G2
Claramente, L(G) = L1 L2 .
Para generar L1 se define G como
*
+
G = V1 {S}, , S, P1 {S S1 S, S } .
Esquem
aticamente, G es la gram
atica:
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
9
S1 bA
A aA | a
y L2 con
S2 aS2 a | bB
B bB |
La siguiente gram
atica 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 intersecci
on 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
gram
atica G = V, , S, P {S SS, S } genera a L ?
(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}.
PARA GIC
4.15. ALGORITMOS DE DECISION
4.15.
135
Algoritmos de decisi
on para GIC
En esta secci
on consideraremos problemas de decision para GIC, similares
a los problemas para aut
omatas presentados en la seccion 3.6. Dada una
propiedad P, referente a gram
aticas 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 decision mas 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 solo 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 seccion 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 derivacion) 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 derivacion 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
A1
A2
B1
B2
a1
a3
A2
A1
a1
a2
B1
B2
a2
a3
PARA GIC
4.15. ALGORITMOS DE DECISION
137
Entrada:
Gram
atica 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 gram
atica G, es G ambigua?
2. Dada una gram
atica G, genera G todas las cadenas de terminales?, es decir, L(G) = ?
3. Dadas dos gram
aticas 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 gram
atica
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 aceptacion, = 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 funci
on de transici
on del automata:
: Q ( ) (Q ).
143
144
CAPITULO 5. AUTOMATAS
CON PILA
s
..
.
q
La transici
on
(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
u
$!
"
..
.
$!
$!
..
.
"
"#
..
.
$!
"
..
.
q
(q, a, s) = (q , )
u
$!
"
#
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 simultaneamente definidos
(de lo contrario el aut
omata tendra una opcion no-determinista). Las
transiciones espont
aneas 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 utiliz
o la transicion (q, a, s) = (q , ).
La notaci
on
(q, u, ) (p, v, )
146
CAPITULO 5. AUTOMATAS
CON PILA
La definici
on de la funci
on de transicion requiere que haya por
lo menos un smbolo en la pila. No hay computos con pila vaca.
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 funci
on de transici
on est
a 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 aceptacion; 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 ).
[computo abortado]
Ejemplo
Dise
nar un AFPD que acepte el lenguaje
5
6
L = wcwR : w {a, b} .
5.2. AUTOMATAS
CON PILA NO-DETERMINISTAS (AFPN)
149
y la funci
on de transici
on est
a dada por:
(q0 , a, z0 ) = (q0 , Az0 ),
(q0 , b, z0 ) = (q0 , Bz0 ),
(q0 , c, z0 ) = (q2 , z0 )
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 funci
on de transici
on est
a 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
L(M ) := {w : existe un c
omputo (q0 , w, z0 ) (p, , ), p F }.
O sea, una cadena w es aceptada si existe por lo menos un procesamiento
de w desde la configuraci
on inicial hasta una configuracion de aceptacion.
La cadena que queda en la pila puede ser cualquier cadena de .
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 seccion 5.1 se construyo 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 continuara acumulando smbolos en la
pila y no llegar
a a un estado de aceptacion. Si la cadena de entrada tiene la
forma deseada, entre todos los c
omputos posibles estara aquel en el que el
automata adivina correctamente cuando 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 funci
on de transici
on est
a 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 seccion 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 est
a definido
como M = (Q, q0 , F, , , z0 , ) donde
= {a, b, c},
= {z0 , A},
Q = {q0 , q1 , q2 , q3 , q4 },
F = {q4 },
y la funci
on de transici
on 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 analogo 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 seccion 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 derivacion 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 funci
on de transicion se define de la siguiente
manera:
1. (q0 , , z0 ) = {(q1 , Sz0 )}. Transicion mediante la cual M coloca el
smbolo inicial de la gram
atica, 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 produccion 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 derivacion se usa la produccion
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 aceptacion q2 cuando
detecta el marcador de fondo z0 .
El automata M est
a dise
nado de tal forma que si S = w es una derivacion
a izquierda en la gram
atica G, entonces existe un procesamiento
158
CAPITULO 5. AUTOMATAS
CON PILA
Ejemplo
Sea G la gram
atica:
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 funci
on de transici
on 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 derivacion a
izquierda:
S = aAbS = aabS = aabbBa = aabbba.
El automata M simula esta derivacion 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
La siguiente gram
atica genera los palndromos de longitud par,
S aSa | bSb | .
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 gram
aticas 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 gram
atica G las variables (aparte de la variable inicial S) ser
an 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 produccion [qXp] a.
2. Si (p, ) (q, , X), se a
nade la produccion [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 produccion S [q0 z0 p].
La gram
atica 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 produccion
[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. !
por inducci
on sobre el n
umero de pasos del computo (q, w, X) (p, , ).
Cuando hay un s
olo paso, el c
omputo es de la forma (q, a, X) (p, , )
o de la forma (q, , X) (p, , ). Si (q, a, X) (p, , ), entonces (p, )
(q, a, X); as que [qXp] a es una produccion de G, y se obtendra la
derivaci
on [qXp] = a. Si (q, , X) (p, , ), entonces (p, ) (q, , X);
as que [qXp] es una produccion de G y se obtendra [qXp] = .
n
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)
(ri1 , wi , Yi ) (ri , , ),
+
162
CAPITULO 5. AUTOMATAS
CON PILA
(5.3)
por inducci
on sobre el n
umero de pasos en la derivacion [qXp] = w.
Este razonamiento inductivo es similar al usado para probar la implicacion
recproca 5.1, y se deja como ejercicio para el estudiante interesado. Si en
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 ]. Ademas, 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 maquina 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 aceptacion, = 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 funci
on de transici
on de la maquina:
: 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 maquina 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 dem
as celdas o casillas de la cinta contienen el
smbolo blanco b.
Descripci
on o configuraci
on instant
anea. Es una expresion 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 instant
anea a1 a2 ai1 qai an indica que la unidad de control de M est
a 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 descripcion instantanea a otra, por
medio de una transici
on 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 utiliz
o la transicion (q2 , b) = (q1 , c, ).
La notaci
on
u1 qu2 v1 pv2
significa que M puede pasar de la descripcion instantanea u1 qu2 a la descripcion instant
anea v1 pv2 en cero, uno o mas 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 c
omputo termina porque en determinado momento no hay transici
on definida.
2. El c
omputo no termina; esto es lo que se denomina un bucle infinito
o un ciclo infinito. Esta situacion se representa con la notacion
u1 qu2
la cual indica que el c
omputo que se inicia en la descripcion instant
anea 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; ademas,
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 c
omputo que se inicia en la configuracion 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 est
andares. Notese que las transiciones estacionarias
se asemejan a las transiciones en automatas, excepto por el hecho de que
las maquinas 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 funci
on de transici
on est
a 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
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
b b a1 ak1 ak
bwb
bwb
bwb
bwb
abb bb
abb bb
bb bba
bb bba
bwb b
bwb w b
176
CAPITULO 6. MAQUINAS
DE TURING
blancos:
Entrada:
Salida:
b bwb
b w bwb
Salida:
Ejercicios de la secci
on 6.2
bubvb
bvbub
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 est
andar, pero no hay estados de aceptacion. 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 division de n por
de numeraci
on unitario (n se escribe como una secuencia de n unos).
Solucion. Los posibles residuos de division por 3 son 0, 1 y 2, por lo cual
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 funci
on Turing-computable se puede extender facilmente a
funciones de varios argumentos. Concretamente, una funci
on 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
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 seccion.
La funci
on de paridad de los n
umeros naturales (n 1):
9
1, si n es par,
h(n) =
0, si n es impar.
h(n) = 2n, para todo n
umero natural n 1.
Para n, m 1,
f (n, m) =
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 proyeccion 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 seccion para dise
nar una
MT que genere todas las cadenas de {a, b, c} en orden lexicografico.
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 seccion para dise
nar una MT que
6.5.
Hemos visto c
omo las m
aquinas de Turing se pueden utilizar para aceptar
lenguajes (en lo cual se asemejan a los automatas de captulos anteriores),
para generar lenguajes y para calcular funciones de uno o de varios argumentos. En esta secci
on veremos que, a pesar de su simplicidad, el modelo
estandar de m
aquina de Turing es suficientemente flexible como para simular acciones computacionales m
as complejas, entre las que se encuentran el
uso de m
ultiples cintas y el no-determinismo.
6.5.1.
Estado de aceptaci
on u
nico
181
6.5.2.
M
aquina de Turing con cinta dividida en pistas
..
.
a1
a2
..
.
Pista 1
Pista 2
..
.
ak
..
.
Pista k
q
La funci
on de transici
on 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 simultaneamente
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 afirmaci
on, 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
Simulaci
on. A pesar de que el modelo multi-cinta parece, a primera vista,
mas poderoso que el modelo est
andar, resulta que una MT con m
ultiples
cintas se puede simular con una MT multi-pista. A continuacion bosquejaremos el procedimiento de simulacion.
Una MT con k cintas se simula con una MT que act
ua sobre una u
nica
cinta dividida en 2k + 1 pistas. Cada cinta de la maquina multi-cinta da
lugar a dos pistas en la m
aquina simuladora: la primera simula la cinta
propiamente dicha y la segunda tiene todas sus celdas en blanco, excepto
una, marcada con un smbolo especial X, que indica la posicion actual del
visor de la m
aquina original en dicha cinta. La pista adicional de la maquina
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 =
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.
5
6
!(i) L = ww : w {0, 1} .
!(ii) L = {ai : i es un cuadrado perfecto}.
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
maquina 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.
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 transici
on 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 adici
on 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 maquina de Turing. Un automata con
dos pilas es esencialmente un AFPD, tal como se definio en el captulo 5,
con la adici
on 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
mas: un smbolo auxiliar, $, llamado marcador final de entrada, que se
escribe al final de cada entrada y le sirve al automata para saber cuando
ha consumido completamente la cadena de entrada. El smbolo $ no forma
parte del alfabeto de entrada .
Una transici
on 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 seccion 4.13, este lenguaje no es LIC
y, por lo tanto, no puede ser aceptado por un automata con una sola pila.
Ejemplo
191
6.7. AUTOMATAS
CON DOS PILAS (AF2P) !
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 b
asica de la simulaci
on es hacer que, en cada momento, la primera
1ra. pila
$!
"
2da. pila
$!
"
q
Inicialmente, M copia la cadena de entrada w en la primera pila y luego
la traslada de esta a la segunda pila (el marcador final de entrada $ le
permite al aut
omata saber cu
ando ha terminado de copiar toda la entrada
en la primera pila). Al terminar esta operacion, la primera pila queda vaca,
excepto por el marcador de fondo z0 , y la segunda pila contiene toda la
cadena de entrada. La unidad de control de M esta escaneando el tope
192
CAPITULO 6. MAQUINAS
DE TURING
(q, a) = (p, b, )
193
(q, a) = (p, b, )
Ejercicios de la secci
on 6.7
Mostrar c
omo se puede simular un AF2P con una MT multi-cintas.
Dise
nar aut
omatas con dos pilas que acepten los siguientes lenguajes:
(i) L = {ai bj ci dj : i, j 1}.
(ii) L = {a2i b3i : i 1}.
(iii) El lenguaje de las cadenas sobre el alfabeto {0, 1} que tienen el
doble n
umero de ceros que de unos.
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 seccion 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 )
(transicion de M1 ),
2 (q2 , s2 ) = (p2 , r2 , D2 )
(transicion 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 implementacion 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 computacion 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
transici
on de una MT no es otra cosa que un conjunto de instrucciones.
Se establece as una conexi
on intuitiva directa entre maquinas 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 formulaci
on 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 matematico susceptible de demostracion, 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 maquina 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 adici
on de recursos computacionales a las maquinas 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 maquina de Turing radica no solo
en que permite estudiar lo que puede hacer sino tambien lo que no puede
hacer una m
aquina de c
omputo, 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
..
.
Codificacion
1
11
111
..
.
11
1$
! "#
sm
m veces
..
.
11
! "# 1$
..
.
sp
p veces
Codificacion
1
11
..
.
11
1$
! "#
n veces
Y ENUMERACION
DE MAQUINAS
7.1. CODIFICACION
DE TURING
203
Ejemplo
204
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
Sup
ongase 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. Sup
ongase 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 c
odigo de cbd.
Escribir las codificaciones de las siguientes MT: M7 , M14 , M65 , M150
y M255 . Cu
al es el lenguaje aceptado por tales maquinas?
206
7.2.
M
aquina de Turing universal
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
Como la funci
on de transici
on de una MT no es mas que una lista de instrucciones, podemos concebir una MT como un programa computacional y
la maquina de Turing universal resulta ser un mecanismo en el que podemos ejecutar todos los programas. En otros terminos, la maquina de Turing
universal es una m
aquina de Turing programable.
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
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 contradiccion
(basados en lemas de bombeo). Aqu tambien razonaremos por contradiccion, aunque el lenguaje definido es completamente artificial y la contradiccion se obtiene por medio de un argumento diagonal de interaccion entre
las enumeraciones w1 , w2 , w3 , . . . (entradas) y M1 , M2 , M3 , . . . (maquinas
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 contradiccion.
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 c
omputos 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
Con una entrada w , la maquina M procede as: enumera sistematicamente las cadenas w1 , w2 , w3 , . . . hasta que encuentra un k tal que
w = wk . Luego simula (o invoca) a M con entrada Mk 0wk , decidiendo
si Mk acepta o no a wk . Por lo tanto, M acepta el lenguaje Ld , o sea,
L(M ) = Ld . Esto significa, en particular, que Ld es RE lo cual contradice
el Teorema 7.4.1.
El siguiente teorema sirve como fuente de ejemplos de lenguajes no RE.
7.5.2 Teorema. Si L es un lenguaje RE no recursivo, L no es RE.
Demostraci
on. Razonamiento por contradiccion: por el Teorema 6.8.2, si
L fuera RE, L sera recursivo.
Como aplicaci
on de este resultado podemos concluir que el complemento
del lenguaje universal, Lu , no es RE. La siguiente grafica muestra la relacion
entre los lenguajes recursivos, los lenguajes RE y los no RE:
#
RE
$!
"
no RE
recursivos
$Lu
$Lu
RE pero no recursivos
$Ld
214
( ).
Regulares
LIC
Recursivos
Recursivamente Enumerables
Todos los lenguajes
Maquinas 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 (seccion 6.9), identificamos algoritmos con
maquinas de Turing y, por lo tanto, decir que el problema P es indecidible
equivale a afirmar que el lenguaje
L = {M : M es el c
odigo 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 contradiccion.
Para ser m
as precisos, sup
ongase 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 contradiccion 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
grafica ilustra este procedimiento; el algoritmo A, que aparece representado por el rect
angulo 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 decision son indecidibles:
(i) Problema de la impresion: dada M = (Q, q0 , F, , , b, ) una
MT cualquiera y un smbolo s , imprimira M alguna vez
el smbolo s sobre la cinta si M inicia su funcionamiento con
219
Bibliografa
222
BIBLIOGRAFIA