Вы находитесь на странице: 1из 154

Teora de Aut omatas,

Lenguajes Formales y
Gramaticas
David Castro Esteban
Copyright c _20032004 David Castro Esteban. Permission is granted to copy,
distribute and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.2 or any later version published by the
Free Software Foundation; with no Invariant Sections, no Front-Cover Texts,
and no Back-Cover Texts. A copy of the license is included in the section
entitled GNU Free Documentation License.
This is as near, I take it,
as a nite mind can ever come
to perceiving everything that
is happening everywhere in the
universe.
The Doors of Perception
Aldous Huxley

Indice general
Introducci on 1
1. Aut omatas nitos 3
1.1. Aut omatas nitos deterministas . . . . . . . . . . . . . . . . . 3
1.2. Aut omatas nitos no deterministas . . . . . . . . . . . . . . . 5
1.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Gramaticas regulares 15
2.1. Expresiones y gram aticas regulares . . . . . . . . . . . . . . . 15
2.2. Aut omatas nitos y gram aticas regulares . . . . . . . . . . . . 18
2.3. Aut omatas nitos y expresiones regulares . . . . . . . . . . . . 19
2.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3. Propiedades de los lenguajes regulares 25
3.1. Lenguajes no regulares . . . . . . . . . . . . . . . . . . . . . . 25
3.2. Propiedades de clausura . . . . . . . . . . . . . . . . . . . . . 27
3.3. Propiedades de decisi on . . . . . . . . . . . . . . . . . . . . . 30
3.4. Equivalencia y minimizaci on . . . . . . . . . . . . . . . . . . . 32
3.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4. Aut omatas a pila 41
4.1. Aut omatas a pila . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2. Aut omatas a pila deterministas . . . . . . . . . . . . . . . . . 44
4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5. Gramaticas independientes del contexto 47
5.1. Gram aticas independientes del contexto . . . . . . . . . . . . . 47
5.2.

Arboles de derivaci on . . . . . . . . . . . . . . . . . . . . . . . 50
5.3. Aut omatas a pila y gram aticas independientes del contexto . . 54
5.4. Ambiguedad en gram aticas y lenguajes . . . . . . . . . . . . . 57
5.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
i
ii

INDICE GENERAL
6. Maquinas de Turing 59
6.1. M aquinas de Turing . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2. M aquinas de Turing no deterministas y con m ultiples cintas . 67
6.3. Introducci on a la Tera de la Complejidad . . . . . . . . . . . 70
6.3.1. Tiempo y espacio . . . . . . . . . . . . . . . . . . . . . 70
6.3.2. Resultados b asicos . . . . . . . . . . . . . . . . . . . . 72
6.3.3. La conjetura de Cook . . . . . . . . . . . . . . . . . . . 75
6.4. La Tesis de ChurchTuring . . . . . . . . . . . . . . . . . . . . 75
6.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7. Gramaticas sensibles al contexto y generales 79
7.1. Gram aticas no restringidas o generales . . . . . . . . . . . . . 80
7.1.1. Deniciones b asicas . . . . . . . . . . . . . . . . . . . . 80
7.1.2. Gram aticas generales y m aquinas de Turing . . . . . . 81
7.2. Gram aticas sensibles al contexto . . . . . . . . . . . . . . . . . 85
7.2.1. Gram aticas sensibles al contexto y aut omatas lineal-
mente acotados . . . . . . . . . . . . . . . . . . . . . . 85
7.2.2. Gram aticas sensibles al contexto y lenguajes recursivos 87
7.3. La jerarqua de Chomsky . . . . . . . . . . . . . . . . . . . . . 90
7.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8. Computabilidad 93
8.1. Propiedades b asicas . . . . . . . . . . . . . . . . . . . . . . . . 94
8.2. Lenguajes no recursivamente enumerables . . . . . . . . . . . 96
8.2.1. Codicaci on de m aquinas de Turing . . . . . . . . . . . 97
8.2.2. El lenguaje diagonal . . . . . . . . . . . . . . . . . . . 98
8.3. Lenguajes no recursivos . . . . . . . . . . . . . . . . . . . . . 99
8.3.1. La m aquina de Turing universal . . . . . . . . . . . . . 99
8.3.2. No recursividad del lenguaje universal . . . . . . . . . 101
8.4. Reducciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.5. Teorema de Rice y propiedades de los lenguajes recursivamente
enumerables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
9. Funciones recursivas parciales 111
9.1. Funciones computables . . . . . . . . . . . . . . . . . . . . . . 111
9.2. M aquinas de Turing y funciones . . . . . . . . . . . . . . . . . 117
9.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
A. M
1
2
uinas RAM 123
A.1. M
1
2
uinas RAM . . . . . . . . . . . . . . . . . . . . . . . . . 123

INDICE GENERAL iii


B. Problema de la correspondencia de Post 131
B.1. El problema de la correspondencia de Post . . . . . . . . . . . 131
B.1.1. Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . 131
B.1.2. Indecibilidad . . . . . . . . . . . . . . . . . . . . . . . 133
B.1.3. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . 136
C. GNU Free Documentation License 137
Bibliografa 142

Indice alfabetico 144


iv

INDICE GENERAL
Introducci on
Estas notas pretenden servir de gua en una asignatura sobre Teora de
Aut omatas. En el caso particular de la Universidad de Alcal a, asignaturas:
Aut omatas, lenguajes formales y gram aticas I y II de la Ingeniera en
Inform atica o Teora de Aut omatas y Lenguajes Formales de la Ingeniera
Tecnica en Inform atica de Sistemas pueden articularse entorno a los mismos.
No pretende, en medida alguna, suplantar los excelentes textos existentes
acerca de los temas aqu tratados.
Lo que sigue es un breve resumen de los contenidos de los mismos.
Captulo 1.- Aut omatas nitos deterministas, aut omatas nitos no de-
terministas y con transiciones vacas, equivalencias entre los distintos
tipos de aut omatas nitos.
Captulo 2.- Gram aticas regulares, expresiones regulares, equivalencia
entre aut omatas nitos y gram aticas o expresiones regulares, lenguajes
regulares.
Captulo 3.- Lema de bombeo (lenguajes regulares), propiedades de
clausura, propiedades de decisi on, equivalencia y minimizaci on de au-
t omatas nitos.
Captulo 4.- Aut omatas a pila, aut omatas a pila deterministas.
Captulo 5.- Gram aticas independientes del contexto, arboles de de-
rivaci on, ambiguedad en gram aticas y lenguajes, equivalencia entre
aut omatas a pila y gram aticas independientes del contexto.
Captulo ??.- Formas normales para gram aticas independientes del
contexto, Lema de bombeo (lenguajes independientes del contexto),
existencia de lenguajes no independientes del contexto, propiedades de
clausura y decisi on de los lenguajes independientes del contexto.
Captulo 6.- M aquinas de Turing, introducci on a la Teora de la Com-
plejidad (Conjetura de Cook), Tesis de Church-Turing.
1
2 INTRODUCCI

ON
Captulo 8.- Lenguaje recursivo y recursivamente enumerables, m aqui-
na de Turing universal y ejemplos de lenguajes no recursivos y no recur-
sivamente enumerables. Problemas indecidibles, Reducciones, Propie-
dades de los lenguajes recursivamente enumerables (Teorema de Rice).
Captulo 7.- Gram aticas generales y sensibles al contexto. Aut oma-
tas linealmente acotados. Equivalencia con m aquinas de Turing de las
gram aticas generales. Equivalencia con lenguajes sensibles al contex-
to de los aut omatas linealmente acotados. Teorema de la Jerarqua de
Chomsky.
Captulo 9.- Funciones recursivas primitivas, recursivas y recursivas
parciales. Equivalencia con m aquinas de Turing.
A parte de los t opicos anteriores, los presentes apuntes incluyen diversos
Apendices que complementan a los Captulos anteriores:
Apendice ?? Introducci on al -Calculus.
Apendice ?? Introducci on a las Redes Neuronales.
Apendice A M aquinas RAM.
Apendice B Problema de la correspondencia de Post.
El objetivo de dichos apendices es completar algunos aspectos tratados
en las notas y explorar otras modelizaciones del concepto de algoritmo.
Alcal a de Henares, 20 de enero de 2005.
David Castro Esteban
Captulo 1
Aut omatas nitos
En este Captulo se presenta el modelo de aut omata nito, discutiendose,
con cierta profundidad, algunos aspectos del mismo. M as concretamente:
en la Secci on 1.1 se dene el concepto de aut omata nito determinista, en
la Secci on 1.2 se introducen los aut omatas nitos no deterministas y los
aut omatas nitos con transiciones vacas.
La referencia b asica a lo largo del presente Captulo es [8]. En ella se abor-
da el tema de manera intuitiva y clara. El lector interesado en una referencia
m as tecnica puede acudir a la edici on anterior, i.e. [7], o a la monografa [10].
1.1. Aut omatas nitos deterministas
Intuitivamente, un aut omata es un dispositivo te orico capaz de proce-
sar una secuencia nita de smbolos de un alfabeto, cambiando su estado,
si procede. De entre los posibles estados que puede alcanzar el aut omata,
se distinguen los aceptadores que indican el reconocimiento, por parte del
aut omata, de la secuencia tratada.
La denici on formal es la siguiente:
Denici on 1 (Aut omata nito determinista, AFD) Un aut omata -
nito determinista es una tupla D = (K, , , q
0
, F) donde:
K es un conjunto (nito) de estados,
es una alfabeto (nito),
: K K es la funci on de transici on,
q
0
K es el estado inicial, y
3
4 CAP

ITULO 1. AUT

OMATAS FINITOS
F K es el conjunto de los estados aceptadores.
Obviamente, la denici on anterior es est atica, no determina el funciona-
miento del aut omata sino que indica los elementos que lo conforman. Para
dotar de dinamismo a la noci on extendamos, en primer lugar, la denici on
de la funci on al dominio K

.
Denici on 2 (Funci on de transici on extendida, AFD) Dado un aut o-
mata nito determinista D = (K, , , q
0
, F), se dene la extensi on de al
dominio K

(denotada por

) de manera inductiva en la longitud de las
cadenas:
dado q K, denimos

(q, ) := q,
dados q K,

y , denimos

(q, ) := (

(q, ), ).
La denici on anterior no es m as que la formalizaci on del funcionamiento
de un aut omata: dada una cadena
1

n
, el aut omata lee cada uno de los
smbolos de entrada, de izquierda a derecha, y cambia su estado, si procede,
en funci on del estado y el smbolo leido. Las cadenas en que, tras procesarlas,
el aut omata se encuentra en un estado aceptador conforman el lenguaje del
aut omata. Formalmente:
Denici on 3 (Lenguaje aceptado por un AFD) Dado un aut omata -
nito determinista D = (K, , , q
0
, F), se dene el lenguaje aceptado por el
aut omata, denotado L(D), como:
L(D) :=

:

(q
0
, ) F.
Tpicamente, para describir un aut omata basta detallar cada uno de sus
elementos. En concreto, la funci on de transici on suele representarse me-
diante una tabla, llamada de transiciones, que indica para cada par estado
smbolo el estado indicado por .
Ejemplo 4 Considerar, por ejemplo, el aut omata A = (K, , , q
0
, F), donde
K := q
0
, q
1
, q
2
, := 0, 1, F := q
1
y la funci on de transici on se
describe mediante la tabla de transiciones:
0 1
q
0
q
2
q
0
q
1
q
1
q
1
q
2
q
2
q
1
1.2. AUT

OMATAS FINITOS NO DETERMINISTAS 5


La echa indica el estado inicial mientras que el asterisco, indica el estado
nal.
N otese que el estado inicial suele indicarse mediante una echa mientras
que, los estados nales, se indican con un asterisco.
Notar por ultimo que el lenguaje aceptado por el aut omata anterior es el
conjunto de cadenas sobre el alfabeto 0, 1 que contienen la secuencia 01.
Una representaci on alternativa de los aut omatas es la dada por los dia-
gramas de transici on. En ella, se representa el aut omata mediante un grafo
orientado sujeto a las siguientes consideraciones:
cada nodo del grafo tiene asociado de manera unvoca un estado del
aut omata,
dos nodos, digamos p y q, est an unidos mediante un arco dirigido de
p a q si y s olo si, existe un smbolo del alfabeto, digamos , tal
que (p, ) = q; dicho arco se etiqueta con el smbolo ; si existen
diversos de tales smbolos, digamos
1
, . . . ,
n
, el arco se etiqueta
con
1
, . . . ,
n
,
los nodos correspondientes a estados aceptadores (nalizadores) se re-
presentan mediante una doble circunferencia con el n de distinguirlos
de los restantes, y
al nodo correspondiente al estado inicial llega una echa sin origen
concreto.
Ejemplo 5 La representaci on, va diagrama de transici on, del aut omata -
nito determinista del Ejemplo 4 es como sigue:
q
0
q
2
q
1
0 1
0, 1
0 1
1.2. Aut omatas nitos no deterministas
En la Secci on anterior se han tratado los aut omatas nitos deterministas.
En dichos aut omatas el cambio de estado esta jado de manera unvoca por
6 CAP

ITULO 1. AUT

OMATAS FINITOS
el estado en el que se encuentran y el car acter que estan procesando. En
la presente Secci on eliminaremos dicha restricci on deniendo los aut omatas
nitos no deterministas. Si bien es cierto que cabe esperar un aumento en
el poder computacional del dispositivo (reconocimiento de un mayor n umero
de lenguajes), se ver a que no es as.
La denici on formal de aut omata nito no determinista es como sigue:
Denici on 6 (Aut omata nito no determinista, AFN) Un aut oma-
ta nito no determinista es una tupla N = (Q, , , q
0
, F) donde:
K es un conjunto (nito) de estados,
es una alfabeto (nito),
: K T(K) es la funci on de transici on,
1
q
0
K es el estado inicial, y
F K es el conjunto de los estados aceptadores.
Al igual que en el caso de los aut omatas nitos deterministas, con el n
de detallar su funcionamiento debemos exterder el dominio de la funci on de
transici on a K

.
Denici on 7 (Funci on de transici on extendida, AFN) Dado un aut o-
mata nito no determinista N = (K, , , q
0
, F), se dene la extensi on de
al dominio K

(denotada por

) de manera inductiva en la longitud de
las cadenas:
dado q K, denimos

(q, ) := q,
dados q K,

y , denimos

(q, ) :=

(q,)
(p, ).
2
En cuanto al lenguaje aceptado por un aut omata nito no determinista,
se dene como sigue.
1
P(K) denota el conjunto de todos los subconjuntos de K, esto es, las partes de K.
2
Notamos que, dados q K y , (q, ) es un conjunto y por ende,

(q, ) para la
cadena

.
1.2. AUT

OMATAS FINITOS NO DETERMINISTAS 7


Denici on 8 (Lenguaje aceptado por un AFN) Dado un aut omata -
nito no determinista N = (K, , , q
0
, F) se dene el lenguaje aceptado por
el aut omata, denotado L(N), como:
L(N) :=

:

(q
0
, ) F ,= .
Retomendo el Ejemplo 4, veamos un aut omata nito no determinista que
reconoce el mismo lenguaje:
Ejemplo 9 Considerar el aut omata N = (K, , , q
0
, F), donde el conjunto
de estados es K := q
0
, q
1
, q
2
, el alfabeto := 0, 1, el conjunto de estados
aceptadores es F := q
1
y la funci on de transici on se describe mediante
la tabla de transiciones:
0 1
q
0
q
0
, q
2
q
0

q
1
q
1
q
1

q
2
q
1

La representaci on mediante diagrama de transici on es como sigue:


q
0
q
2
q
1
0 1
0, 1 0, 1
Obviamente, el lenguaje aceptado es el mismo que en el Ejemplo 4.
El ejemplo anterior ilustra el hecho de que todo lenguaje aceptado por
una aut omata nito determinista es aceptado por una aut omata nito no de-
terminista. De hecho, todo aut omata nito determinista D = (K, , , q
0
, F)
puede interpretarse como un aut omata nito no determinista, digamos N =
(K

, ,

, q

0
, F

), sin m as que denir K

:= K, q

0
:= q
0
, F

:= F y

: K

T(K)
(q, ) (q, ).
El recproco tambien se verica, si bien es cierto que su demostraci on resulta
m as complicada.
8 CAP

ITULO 1. AUT

OMATAS FINITOS
Teorema 10 (Equivalencia entre AFD y AFN) Todo lenguaje L

aceptado por un aut omata nito no determinista es aceptado por un aut omata
nito determinista.
Demostraci on . Sea L

un lenguaje aceptado por un aut omata nito no


determinista N = (K, , , q
0
, F). En lo que sigue, detallaremos la construc-
ci on de un aut omata nito determinista D = (K

, ,

, q

0
, F

) que acepte L
(simule a N).
Denimos:
el conjunto de estados de D como K

:= T(K),
el conjunto de estados aceptadores mediante:
F

:= q K

: q K ,= ,
la funci on de transici on

como

(q, ) := (q a) =
pq
(p, ), y
el estado inicial como q

0
:= q
0
.
Queda demostrar que el aut omata D = (K

, ,

, q

0
, F

) acepta el mismo
lenguaje que N. Para ello, demostraremos que se satisface para toda cadena
w

la siguiente igualdad:

(q

0
, w) =

(q
0
, w)
El caso base resulta trivial puesto que w = , q

0
= q
0
. Supongamos probado
el resultado para todas las cadenas de longitud n y veamos que se verica
para las palabras de longitud n + 1.
Dado w

un palabra de longitud n y un elemento del alfabeto, se


verica

(q

0
, w) :=

(q

0
, w), ) =

(q
0
, w), ).
por lo que, de acuerdo a la denici on de

, se sigue

(q
0
, w), ) =

(q
0
,w)

(q, )
Queremos insistir en el hecho de que la demostraci on anterior es cons-
tructiva, i.e. describe un algoritmo que construye, a partir de un aut omata
nito no determinista, un aut omata nito determinista cuyo lenguaje es el
mismo.
1.2. AUT

OMATAS FINITOS NO DETERMINISTAS 9


TODO 1 Ejemplo 11 (Conversi on de AFN a AFD)
Siguiendo con el proceso de generalizaci on, en lo que sigue desarrollaremos
el concepto de aut omata nito con transiciones vacas. Sin entrar en detalles
tecnicos, puede decirse que dichos aut omatas a naden, al potencial de los
no deterministas, la posibilidad de cambiar de estado sin procesar smbolo
alguno. La denici on formal es como sigue:
Denici on 12 (Aut omata nito con transiciones , AFN) Un au-
t omata nito con transiciones es una tupla E = (K, , , q
0
, F) donde:
K es un conjunto (nito) de estados,
es una alfabeto (nito),
: K ( ) T(K) es la funci on de transici on,
q
0
K es el estado inicial, y
F K es el conjunto de los estados aceptadores.
Antes de denir el lenguaje aceptado por un aut omata nito no determi-
nista con trasiciones vacas, debemos introducir el concepto de clausura con
respecto a . La justicaci on de la necesidad de dicha noci on se encuentra en
el hecho de que, al admitir transiciones vacas, el aut omata puede cambiar
de estado sin procesar car acter alguno. Por lo tanto, para precisar como
evoluciona el aut omata, hay que formalizar de alguna manera este tipo de
transiciones.
Denici on 13 (Clausura respecto de ) Dado un aut omata nito no de-
terminista con transiciones vacas E = (K, , , q
0
, F), se dene la clausura
de un estado q K con respecto de de manera recursiva
q Cl

(q),
para todo p Cl

(q) y todo r Q tales que r (p, ) se verica


r Cl

.
En general, dado un conjunto Q K, se dene la clausura de Q con respecto
a transiciones vacas de manera an aloga.
Intuitivamente, la clausura con respecto a de un estado es el conjunto
de estados a los que puede llegar el aut omata sin procesar smbolo alguno.
Teniendo en cuenta esta noci on, se dene la funci on de transici on extendida
de la siguiente manera:
10 CAP

ITULO 1. AUT

OMATAS FINITOS
Denici on 14 (Funci on de transici on extendida, AFN) Dado un
aut omata nito no determinista con transiciones vacas E = (K, , , q
0
, F),
se dene la extensi on de al dominio K

(denotada por

) de manera
inductiva en la longitud de las cadenas:
dado q K, denimos

(q, ) := Cl

(q),
dados q K,

y , sea
P :=

(q,)
(p, ).
Denimos

(q, ) :=

pP
Cl

(p).
En cuanto al lenguaje aceptado por un aut omata nito no determinista
con transiciones vacas, la denici on formal es como sigue.
Denici on 15 (Lenguaje aceptado por un AFN) Dado un aut oma-
ta nito no determinista con transiciones vacas E = (K, , , q
0
, F), se de-
ne el lenguaje aceptado por el aut omata, denotado L(E), como:
L(E) :=

:

(q
0
, ) F ,= .
Veamos un ejemplo sencillo de aut omata no determinista con transiciones
vacas.
Ejemplo 16 Sea V = (K, , , F, q
0
) es aut omata nito no determinista con
transiciones vacas descrito por el siguiente diagrama de transici on:
q
0
q
2
q
3
1
0, 1
q
1
0
q
5
q
6
0
q
4
1

1.2. AUT

OMATAS FINITOS NO DETERMINISTAS 11


El lenguaje que acepta este aut omata es el de las cadenas que contienen
la secuencia 01. En este caso, por ejemplo, Cl

(q
0
) = q
0
, q
1
mientras que
Cl

(q
1
) = q
1
.
Obviamente, un aut omata determinista puede interpretarse como un au-
t omata no determinista con transiciones vacas sin m as que interpretarlo
como un aut omata no determinista sin transiciones vacas (basta denir
(q, ) = ). El siguiente resultado demuestra el reciproco.
Teorema 17 (Equivalencia entre AFD y AFN) Todo lenguaje L

aceptado por un aut omata nito no determinista es aceptado por un


aut omata nito determinista.
Demostraci on . La demostraci on de este resultado es similar al de la equi-
valencia entre aut omatas deterministas y no deterministas.
Supongamos dado un aut omata con transiciones vacas E = (K, , , q
0
, F).
Construyamos un aut omata nito determinista A = (K

, ,

, q
0
, F) que
acepte el mismo lenguaje. Para ello denimos
K

:= P K : Cl

(P) = P, i.e. Q

es el conjunto de subconjunto de
K cerrados bajo clausura con respecto a .
q

0
:= Cl

(q
0
),
F

:= P K

: P F ,= , y
dado P K

y , sea
S :=

pP
(p, ).
Denimos

(P, ) :=

sS
Cl

(s).
Veamos que el aut omata nito determinista as construido acepta exacta-
mente las mismas cadenas que E. Para ello, demostremos por inducci on (en
la longitud de las cadenas) que

(q
0
, ) =

(q

0
, ).
En primer lugar veamos el caso base, i.e. = . Por denici on de

tenemos

(q

0
, ) = q

0
= Cl

(q
0
) =

(q
0
, ).
12 CAP

ITULO 1. AUT

OMATAS FINITOS
Suponiendo cierta la armaci on para cadenas de longitud n N, sea

una cadena de longitud n y sea un smbolo del alfabeto. Por hip otesis
tenemos
S =

(q
0
, ) =

(q

0
, ).
Ahora bien,

(q
0
, ) se dene como

(q
0
, ) :=

sS
Cl

(s)
por lo que coincide con

por la denici on de esta.


TODO 2 Ejemplo 18 (Conversi on AFN-E a AFD)
Al igual que en el caso del Teorema de equivalencia entre AFD y AFN,
la demostraci on del resultado anterior es constructiva puesto que, de un al-
goritmo de construcci on de un aut omata nito determinista a partir de un
aut omata nito no determinista con transiciones vacas.
1.3. Ejercicios
Ejercicio 1 Construir aut omatas nitos deterministas que acepten los si-
guientes lenguajes:
1. El lenguaje de las cadenas con tres ceros consecutivos.
2. El lenguaje de las cadenas con la secuencia 011 como subcadena.
3. El conjunto de las cadenas terminadas en 00.
Ejercicio 2 Construir aut omatas nitos deterministas que acepten los si-
guientes lenguajes:
1. El lenguaje de las cadenas cuyo decimo car acter sea 1.
2. El lenguaje de las cadenas que empiecen o terminen con 01.
3. El conjunto de las cadenas con un n umero par de ceros.
4. El conjunto de las cadenas cuyo n umero de ceros sea divisibles por 2 y
el de unos divisible por 3.
Ejercicio 3 Construir aut omatas nitos no deterministas que acepten los
siguientes lenguajes:
1.3. EJERCICIOS 13
1. El lenguaje de las cadenas sobre el alfabeto binario cuyo ultimo smbolo
coincida con el primero.
2. El lenguaje de las cadenas sobre el alfabeto binario cuyo ultimo smbolo
no aparezca con anterioridad.
Ejercicio 4 Construir aut omatas nitos no deterministas que reconozcan los
siguientes conjuntos de cadenas:
1. abc, abb y aacd (sup ongase = a, b, c, d).
2. 0101, 101 y 011 (sup ongase = 0, 1).
3. ab, bc y ca (sup ongase = a, b, c).
Convertir cada uno de ellos en un aut omata nito determinista.
Ejercicio 5 Convertir en un aut omata nito determinista el siguiente aut o-
mata no determinista.
q
0
q
1
q
2
0, 1
0
1
0
Ejercicio 6 Convertir en un aut omata nito determinista el siguiente aut o-
mata con transiciones vacas.
A B
C D
0
0
0, 1
0, 1
1
1

Ejercicio 7 Convertir en un aut omata nito determinista el siguiente aut o-
mata con transiciones vacas.
14 CAP

ITULO 1. AUT

OMATAS FINITOS
A B
C D
0, 1
0

0, 1
0, 1
1

Problema 8 Sean A
1
y A
2
dos aut omatas nitos deterministas, y sean L
1
y L
2
sus respectivos lenguajes. Demostrar las siguientes armaciones:
1. Existe un aut omata A que tiene por lenguaje L
1
L
2
.
2. Existe un aut omata A que tiene por lenguaje L
1
L
2
.
3. Existe un aut omata A que tiene por lenguaje L
c
1
.
4. Existe un aut omata A que tiene por lenguaje L
1
L
2
.
Concluir que las mismas armaciones se tienen en el caso de los aut oma-
tas nitos no deterministas y de los aut omatas nitos no deterministas con
transiciones vacas.
Problema 9 Dado A = (K, , , q
0
, F) un aut omata nito determinista, lla-
maremos conguraci on del aut omata a todo par (q, w) K

; en particu-
lar, llamaremos conguraci on inicial para la entrada w

al par (q
0
, w).
Dados p, q K, w

y , diremos que la conguraci on (q, w) da


lugar a la conguraci on (p, w), en un paso de computaci on, si se verica
(q, ) = p; en ese caso, lo denotaremos mediante (q, w) (p, w). Demos-
trar que A acepta una cadena w

si y s olo si (q
0
, w) da lugar, en un
n umero nito de pasos de computaci on, a una conguraci on del tipo (f, )
(con f F).
Captulo 2
Gramaticas regulares
En este Captulo se presentan las nociones de gram aticas y expresiones
regulares. Hecho esto, se muetran sus relaciones con los aut omatas nitos:
se demuestra que esencialmente son nociones equivalentes tanto en cuanto
permiten describir los mismos objetos, a saber: los lenguajes regulares.
2.1. Expresiones y gramaticas regulares
A lo largo de est a Secci on damos las deniciones de expresi on y gram ati-
ca regular, as como diversos ejemplos. Coloquialmente hablando, tanto las
expresiones regulares como las gram aticas son distintas formas de especicar
los lenguajes regulares (como se ver a en Secciones subsiguientes).
La denici on formal de expresi on regular es como sigue:
Denici on 19 (Expresi on regular) Dado un alfabeto nito , se dene
un expresi on regular, va inducci on estructural, de la siguiente manera:
(Base) , y (con ) son expresiones regulares cuyos lenguajes
asociados son , y respectivamente.
(Inducci on) Distinguimos los siguientes casos:
Dada una expresi on regular E, (E) es un expresi on regular cuyo
lenguaje es precisamente L(E) (el lenguaje asociado a E).
Dada un expresi on regular E, E

es un expresi on regular cuyo


lenguaje es L(E)

(la cl ausura de L(E) con respecto a la concate-


naci on).
Dadas dos expresiones regulares E
1
y E
2
, E
1
+E
2
es un expresi on
regular cuyo lenguaje es L(E
1
) L(E
2
) (la uni on de los lenguajes
asociados a E
1
y E
2
).
15
16 CAP

ITULO 2. GRAM

ATICAS REGULARES
Dadas dos expresiones regulares E
1
y E
2
, E
1
E
2
es una expresi on
regular cuyo lenguaje asociado es L(E
1
)L(E
2
) (la concatenaci on
de los lenguajes de E
1
y E
2
).
Ejemplo 20 Un ejemplo sencillo de expresi on regular es, por ejemplo, el
siguiente:
(0 + 1)

01(0 + 1)

.
Dicha expresi on describe el conjunto de las cadenas de ceros y unos que
continen la subcadena 01. Para verlo, basta observar que (0 + 1)

describe
cualquier cadena de ceros y unos.
En cuanto a la denici on de gram atica regular, es como sigue.
Denici on 21 (Gramatica regular (lineal a derecha)) Una gram ati-
ca regular (lineal a derecha) es una tupla G = (V, T, P, S) donde
V es un conjunto nito de smbolos llamados variables o smbolos no
terminales,
T es un conjunto nito de smbolos, llamados terminales, satisfaciendo
T V = ,
P V (T

V T) es un conjunto nito de elementos, llamados


producciones, de manera tal que si (p, q) P se denotar a mediante la
expresi on p q; p recibe el nombre de cabeza y q el de cuerpo de la
producci on, y
S V es el smbolo inicial.
La denici on anterior, tal y como se ver a en los ejercicios, puede darse en
terminos de gram aticas lineales a izquirda. Afortunadamente, dicha elecci on
no tiene relevancia alguna puesto que son equivalentes.
Un ejemplo sencillo de gram atica es el siguiente:
Ejemplo 22 Continuando con el Ejemplo 20, la gram atica que describe el
lenguaje asociado a (0 + 1)

01(0 + 1)

viene dada por las producciones si-


guientes:
S 0S
S 1S
S 01S

0S

2.1. EXPRESIONES Y GRAM

ATICAS REGULARES 17
S

1S

, y
S

.
M as compactamente,
S 0S[1S[01S

0S[1S[.
Cabe destacar que en la denici on de expresi on regular hemos denido,
de paso, el lenguaje asociado a la misma. Sin embargo, en la denici on de
gram atica no hemos dado un tal lenguaje. Para asociar un lenguaje a una
gram atica debemos, en primera instancia, denir el concepto de derivaci on.
Denici on 23 (Derivaci on) Dada una gram atica regular G = (V, T, P, S)
y una cadena v, con T

y v V , diremos que (T

V T

) deriva
de v, si existe una producci on v P. Si es el caso, lo indicaremos
mediante la notaci on v
G
; en general, si una cierta cadena (T

V
T

) deriva de (T

V T

) tras un n umero nito de derivaciones, lo


notaremos mediante

G
.
Subyacente a la noci on de derivaci on se encuentra el concepto de lenguaje
asociado a una gram atica regular en los siguientes terminos:
Denici on 24 (Lenguajes de una gramatica regular) Dada una gra-
m atica regular G = (V, T, P, S), se dena el lenguaje de G como el conjunto
de las cadenas de T

derivables en un n umero nito de pasos a partir de S,


i.e.
L(G) = w T

: S

G
w.
Continuando con el Ejemplo 22.
Ejemplo 25 La gram atica denida en el Ejemplo 22 da el lenguaje de las
cadenas de ceros y unos que contienen la subcadena 01.
Ejemplo 26 (0 + 1)

01(0 + 1)

es una expresi on regular cuyo lenguaje es,


precisamente, el lenguaje de las cadenas de ceros y unos que contienen la
subcadena 01.
18 CAP

ITULO 2. GRAM

ATICAS REGULARES
2.2. Aut omatas nitos y gramaticas regula-
res
A lo largo de esta Secci on demostraremos que los lenguajes descritos va
gram aticas regulares coinciden con los lenguajes aceptados por aut omatas
nitos. Para ello, veamos de entrada que, dado un aut omata, existe una
gram atica regular que describe el lenguaje aceptado por este.
Teorema 27 Sea A un aut omata nito. Entonces, existe una gram atica re-
gular G tal que L(G) = L(A).
Demostraci on . Supongamos de entrada que el aut omata A = (K, , , q
0
, F)
no tiene a q
0
por estado aceptador. Construimos la gram atica G tal que
L(G) = L(A) como sigue: el conjunto de variables de G coincide con Q (el
conjunto de estados de A), el conjunto de car acteres terminales de G es y
su smbolo inicial es q
0
. Las producciones de G se denen como sigue: dada
una variable q Q, q p (con p Q F y ) es una producci on si
(q, ) = p; dada una variable q

Q, q (con ) es una producci on


si (q, ) F.
Queda claro que una cierta cadena w

se deriva del smbolo inicial de G


si y s olo si es aceptado por el aut omata. Por lo tanto, L(G) = L(A).
En el caso de que el estado inicial de A sea tambien un estado aceptador,
basta introducir un nuevo smbolo inicial en la gram atica, digamos S, y las
producciones S q
0
y S .
TODO 3 Ejemplo 28 (Conversi on de AFD a G)
Recprocamente, veamos que dada una gram atica regular, existe un au-
t omata que acepta el lenguaje dado por esta.
Teorema 29 Sea G una gram atica regular. Entonces, existe un aut omata
nito (no determinista) A tal que L(A) = L(G).
Demostraci on . Supongamos dada una gram atica regular G = (V, T, P, S)
(lineal a derecha). Construimos el aut omata A = (K, T, , q
0
, F) como sigue:
el conjunto de estado viene dado por las expresiones de la forma [v],
donde v es una subcadena del cuerpo de alguna producci on,
el alfabeto del aut omata coincide con el conjunto de caracteres termi-
nales de G,
2.3. AUT

OMATAS FINITOS Y EXPRESIONES REGULARES 19


la funci on de transici on se dene mediante las reglas siguientes: dado
un estado [p], con p una variable de G, y un smbolo t T, se dene
([p], t) = [q] : p q P.
Dados t T y p T

V deniendo un estado [p], se dene


([tp], t) = [p]
Es f acil ver, por inducci on en la longitud de las cadenas, que L(A) = L(G).
TODO 4 Ejemplo 30 (Conversi on de G a AFD)
En resumen, hemos visto que tanto los aut omatas como las gram aticas
regulares denen los mismos lenguajes: los lenguajes regulares. Ambos cons-
tituyen una representaci on nita de objetos potencialmente innitos (tanto
las gramaticas como los aut omatas son objetos nitos, descritos de manera
nita, mientras que los lenguajes regulares est an formados, potencialmente,
por un n umero innito de cadenas).
2.3. Aut omatas nitos y expresiones regula-
res
Para concluir el Captulo, veamos en esta ultima Secci on que las expresio-
nes regulares describen, al igual que los aut omatas o las gram aticas regulares,
a los lenguajes regulares. Para ello, veamos en primer lugar que el lenguaje
descrito por una expresi on regular es aceptado por un aut omata nito.
Teorema 31 (Equivalencia entre aut omatas nitos y e.r.) Sea un
alfabeto nito y E una expresi on regular sobre dicho alfabeto. Entonces,
existe un aut omata nito (no determinista con transiciones vaci as) A =
(K, , , q
0
, F) tal que L(A) = L(E).
Demostraci on . La demostraci on es por inducci on estructural en la expre-
si on regular; como subproducto, se describe un algoritmo que transforma
expresi ones regulares en aut omatas nitos (no deterministas con transiciones
vaci as para m as precisos)
(Caso Base) Supongamos, de entrada, que la exprexi on regular es alguna de
las siguientes: , o (con . Consideramos los siguientes aut omatas:
20 CAP

ITULO 2. GRAM

ATICAS REGULARES

Est a claro que el primer aut omata acepta el lenguaje de la e.r. , el segundo
aut omata acepta el lenguaje de la e.r. ) y, por ultimo, el tercer aut omata
acepta el lenguaje la expresi on regular .
(Paso inductivo).- Supongamos ahora que E = E
1
E
2
o E = E
1
+E
2
, donde
E
1
y E
2
son dos exprexiones regulares con A
1
y A
2
como aut omatas nitos
asociados (i.e. se satisface que L(E
1
) = L(A
1
) y L(E
2
) = L(A
2
)). N otese
que la existencia de dichos aut omatas se sigue por hip otesis de inducci on.
Consideramos, dependiendo del caso, los siguientes aut omatas:

A
1
A
2
A
2
A
2

Queda claro que el lenguaje del primer aut omata es, precisamente, L(E
1
)
L(E
2
) (i.e. el lenguaje de la expresi on E
1
+E
2
), mientras que el lenguaje del
segundo es L(E
1
) L(E
2
) (i.e. el lenguaje de E
1
E
2
).
Gracias a la construcci on anterior, podemos construir inductivamente, dada
una expresi on cualquiera E, un aut omata nito A tal que L(A) = L(E). Con
lo que queda probado el resultado.
2.3. AUT

OMATAS FINITOS Y EXPRESIONES REGULARES 21


TODO 5 Ejemplo 32 (Conversi on de AFD a ER)
Veamos por ultimo que todo lenguaje regular est a descrito por una ex-
presi on regular; m as concretamente, veamos que todo aut omata acepta un
lenguaje descrito por una expresi on regular.
Teorema 33 Sea A = (K, , , q
0
, F) un aut omata nito sobre un alfabeto
. Entonces, existe una expresi on regular sobre el mismo alfabeto , digamos
E, tal que L(E)=L(A).
Demostraci on . En lo que sigue, y para simplicar, supondremos que el
aut omata A es un aut omata nito determinista. Si no es el caso, basta
convertirlo en determinista mediante los algoritmos vistos con anterioridad.
Adem as, supondremos que el conjunto de estados es de la forma 1, . . . , n
(basta renombrarlos si no es as); en particular, asumimos que el n umero de
estados de A es n.
Construimos una familia de expresiones regulares R
k
ij
, con 1 k n y 1
i, j k, cuyo interpretaci on es la siguiente: R
k
ij
es la expresi on regular que
describe las cadenas sobre que hacen que el aut omata pase del estado i al
estado j atravesando, unicamente, nodos etiquetados con naturales menores
o iguales a k. La construcci on de dichas expresiones regulares es inductiva en
k y se detalla a continuaci on.
En primer lugar, supongamos que k = 0 (caso base). Entonces, R
0
ij
denota el
conjunto de las cadenas que hacen transicionar al aut omata A del estado i
al estado j sin pasar por estado alguno (todos los estados est an etiquetados
con un natural mayor que cero). Por lo tanto, caben dos posibilidades:
existe una transici on del nodo i al nodo j o, equivalentemente, exis-
te un camino (arco) en el diagrama de transici on de A que va de i
a j; suponiendo que dicho camino est a etiquetado con los smbolos

1
, . . . ,
l
, denimos R
0
ij
=
1
+. . . +
l
,
no existe una tal transici on; en este caso, denimos R
0
ij
= .
Supongamos construidas las expresiones regulares R
k
ij
para 1 k n. Cons-
truyamos la expresiones regulares R
n+1
ij
, con 1 i, j n +1. Dados i, j, con
1 i, j n + 1, supongamos que existe una caden que hace transicionar
al aut omata del estado i al j atravesando estados etiquetados con naturales
menores o iguales que n + 1. Distinguimos los siguientes casos:
si existe la cadena en cuesti on no hace transicionar al aut omata A por
el estado n + 1 (la cadena da un camino del nodo i al nodo j que no
22 CAP

ITULO 2. GRAM

ATICAS REGULARES
atraviesa nodos etiquetados con naturales mayores que n en el diagrama
de transiciones), dicha cadena est a comtemplada en la expresi on regular
R
n
ij
,
si no es el caso, esto es, la cadena hace transicionar al aut omata por el
estado n, partimos dicha cadena en fragmentos de la siguiente manera:
el primer fragmento hace transicionar al aut omata del estado i al
n + 1 sin pasar por n + 1 como estado intermedio,
el ultimo fragmento hace transicionar al aut omata del estado n+1
al estado j sin pasar por n + 1 como estado intermedio, y
los fragmentos intermedios son tales que hacen pasar al aut oma-
ta del estado n + 1 al estado n + 1 sin que este sea uno de los
intermedios.
Queda claro que el primer fragmento est a descrito mediante la e.r.
R
n
i(n+1)
, el ultimo est a descrito por la e.r. R
n
(n+1)j
y los fragmentos in-
termediarios est an descritos por la e.r. R
n
(n+1)(n+1
. En particular, dicha
cadena pertenece al lenguaje de la e.r. R
n
i(n+1)
(R
n
(n+1)(n+1
)

R
n
(n+1)j
.
Por lo tanto y en cualquier caso, dicha cadena queda descrita por la expresi on
regular
R
n
ij
+R
n
i(n+1)
(R
n
(n+1)(n+1
)

R
n
(n+1)j
.
De la discusi on anterior se sigue que la expresi on regular que da el lenguaje
del aut omata es la dada por la suma de las expresiones regulares de la forma
R
n
1k
donde 1 suponemos es el estado inicial y k es un estado nal.
TODO 6 Ejemplo 34 (Conversi on de ...)
2.4. Ejercicios
Ejercicio 10 Escribir expresiones regulares para los siguientes lenguajes:
El conjunto de cadenas sobre a, b, c que contengan por lo menos una
a y una b.
El conjunto de cadenas de ceros y unos cuyo decimo smbolo empezando
por la izquierda sea un uno.
El conjunto de cadenas que contengan a lo sumo un par de unos con-
secutivos.
2.4. EJERCICIOS 23
Ejercicio 11 Describir informalmente los lenguajes denidos mediante las
expresiones regulares (1 +)(00

1)

, (0

000(0 + 1)

, y (0 + 10)

.
Ejercicio 12 Escribir una expresi on regular que describa el lenguaje de las
cadenas que no contengan 101 como subcadena.
Ejercicio 13 Construir los aut omata nitos mnimos que reconoce las cade-
nas indicadas por las expresiones regulares (01)
+
y (01)
+
(10)
+
.
Ejercicio 14 Convertir las expresiones regulares 01

, (0+1)01, 00(0+1)

, y
(0 +1)

1(0 +1) en aut omatas nitos no determistas con transiciones vacas.


Ejercicio 15 Dado el aut omata
q
1
q
2
q
3
0
0
1
1
0
1
Obtener R
(k)
ij
para 1 i, j 3 y 0 k 3.
Problema 16 Las gram aticas lineales a izquierda se denen de manera a-
n aloga a las gram aticas lineales a derecha. Demostrar que son equivalentes,
i.e. denen los mismos lenguajes.
24 CAP

ITULO 2. GRAM

ATICAS REGULARES
Captulo 3
Propiedades de los lenguajes
regulares
Tal y como indica el ttulo, a lo largo del presente Captulo estudiaremos
diversas propiedades de los lenguajes regulares.
De entrada, veremos que no todos los lenguajes son regulares (viendo para
ello el Lema de Bombeo). Hecho esto, pasaremos a estudiar las propiedades
de clausura y de decisi on de los mismos.
3.1. Lenguajes no regulares
A lo largo de esta Secci on demostraremos la existencia de lenguajes no
regulares. Para ello, demostraremos en primer lugar el Lema de Bombeo.
Dicho Lema se demuestra gracias al conocido Principio de las cajas: si en n
cajas se encuentran distribuidos n+1 objetos, existe una caja en la que hay,
al menos, dos objetos de la colecci on.
Antes de entrar en los detalles te oricos veamos una ejemplo sencillo de
lenguaje no regular.
Ejemplo 35 Considerese el lenguaje L := 0
n
1
n
: n N denido sobre el
alfabeto 0, 1. Intuitivamente se puede llegar a la conclusi on de que dicho
lenguaje no es regular puesto que un aut omata nito que lo reconozca debe
ser capaz de contar el n umero de ceros para compararlo con el n umero de
unos. Sin embargo, dado que los aut omatas tienen una capacidad de almace-
namiento limitada por el n umero de estado, no pueden almacenar n umeros
arbitrariamente grandes. Por lo tanto, no puede existir un tal aut omata, i.e.
L no es regular
Una prueba formal de la no regularidad del lenguaje del Ejemplo anterior
requiere la utilizaci on del Lema de Bombeo.
25
26 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


Lema 36 (Lema de Bombeo) Sea L un lenguaje regular. Entonces, existe
una constante n (dependiente de L) tal que para toda cadena

de
longitud mayor o igual que n existen cadenas
1
,
2
,
3

tales que:

1
,= ,
[
1

2
[ n, y
para todo k N, la cadena
1

k
2

3
pertenece a L.
Demostraci on . Supongamos dado un lenguaje regular L y consideremos un
aut omata nito, digamos A = (Q, , , q
0
, F), i.e. L = L(A). Supongamos
adem as que el conjunto de estados consta de n N elementos, i.e. #Q = n.
Dada una cadena =
1

m

, con m n, denimos p
i
, para 0
i m, como el estado en el que se encuentra el aut omata tras procesar la
cadena
1

i
, i.e. p
i
=

(q
0
,
1

i
)
1
.
Obviamente, existen 0 j < k n tales que p
j
= p
k
. Deniendo
1
:=

1

j
,
2
:=
j+1

k
, y
3
:=
k+1

m
, se sigue el resultado.
Teniendo en cuenta lo anterior, estamos en disposici on de demostrar la
no regularidad del lenguaje del Ejemplo 35.
Ejemplo 37 Supongamos, razonando por reducci on al absurdo, que el len-
guaje del Ejemplo 35 es regular. Si as fuera, por el Lema de Bombeo, existira
un natural n N tal que para toda cadena de longitud como poco n, digamos

existen cadenas
1
,
2
,
3

tales que
1.
1
,= ,
2. [
1

2
[ n, y
3. para todo k N, la cadena
1

k
2

3
pertenece a L.
En particular, consideramos la cadena de L denida por = 0
n
1
n
. Por lo
anterior, existen
1
,
2
,
3
vericando 1, 2 y 3. Tomando k = 0, se sigue
que
1

3
pertenece a L, lo cual es absurdo puesto que su n umero de ceros es
forzosamente menor que el de unos (
2
tiene longitud mayor o igual a uno,
i.e. consta de como poco un cero).
En resumen, hemos llegado a una contradicci on en nuestro razonamiento.
Dicha contradicci on viene de suponer que L es un lenguaje regular.
TODO 7 Veamos otro ejemplo sencillo de lenguaje no regular.
Ejemplo 38 Consideremos el lenguaje de las palabras cuya longitud es un
n umeor primo.
1
N otese que p
0
= q
0
.
3.2. PROPIEDADES DE CLAUSURA 27
3.2. Propiedades de clausura
A lo largo de esta Secci on estudiaremos lo que se ha dado en llamar las
propiedades de clausura de los lenguajes regulares, i.e. su comportamien-
to frente a uniones, intersecciones, diferencias, transformaciones, clausuras,
concatenaciones,...
Comenzaremos tratando las propiedades de clausura de operaciones tpi-
camente conjuntistas.
Teorema 39 Las siguientes armaciones son ciertas.
1. La uni on de dos lenguajes regulares es regular.
2. El complementario de un lenguaje regular es regular.
3. La intersecci on de dos lenguajes reuglares es regular.
4. La diferencia de dos lenguajes regulares es regular.
Demostraci on . 1. Sean L, L

dos lenguajes regulares y sean E


L
y
E
L
las expresiones regulares que dan dichos lenguajes. La expresi on regular
E
L
+E
L
) determina, precisamente, el lenguaje L L

y, por lo tanto, dicho


lenguaje es regular.
2. Sea L un lenguaje regular determinado por un aut omata nito determinista
A. Construimos un aut omata A

igual a A con la salvedad de que sus estados


aceptadores son los estados de rechazo de A. El aut omata A

, as construido,
acepta cualquier cadena que A rechaze, i.e. determina el lenguaje L
c
. Por lo
tanto, el complementario de L es un lenguaje regular.
3. Dados dos lenguaje regulares L, L

, se tiene, gracias a las Leyes de


Morgan:
L L

= (L
c
L
c
)
c
.
Puesto que, tal y como se ha demostrado en 1. y 2., la uni on y el comple-
mentario de lenguajes regulares es regular, se sigue que la intersecci on es
regular.
4. Sean L, L

dos lenguajes regulares. Puesto que se verica:


L L

= L L
c
,
se sigue, gracias a 1. y 3., que la diferencia de lenguajes regulares es regular.
Veamos a continuaci on las propiedades de clausura de los lenguajes regu-
lares frente a diversas transformaciones comenzando por la reexi on. Dicha
transformaci on se dene, en el caso de cadenas de la siguiente manera.
28 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


Denici on 40 (Reexi on de una cadena) Dada una cadena cualquiera
=
1

n

sobre el alfabeto , se dene la reexi on de la cadena ,


denotada por
R
, como

R
:=
n

1
.
En cuanto al caso de lenguajes, la denici on precisa es como sigue.
Denici on 41 (Reexi on de un lenguaje) Dado un lenguaje L

, se
dene la reesi on del lenguaje L, denotada por L
R
, como
L
R
:=
R
: L.
Teniendo en cuenta las deniciones anteriores se tiene el siguiente resul-
tado.
Teorema 42 Sea L un lenguaje regular. Entonces, L
R
es un lenguaje
regular.
Demostraci on . Para demostrar el enunciado haremos uso de la relaci on
existente entre lenguajes regulares y expresiones regulares.
Supongamos en primer lugar que el lenguaje regular L es descrito por una
expresi on regular E. Procediendo por inducci on estructural, distinguimos los
siguientes casos:
(Caso Base) Si E = , E = o E = , para alg un , deniendo
E
R
como E se tiene
L(E
R
) = L(E)
R
= L.
(Paso inductivo) Consideremos las restantes alternativas:
Supongamos que E = E
1
+E
2
, para ciertas expresiones regulares
E
1
y E
2
. Deniendo E
R
= E
R
1
+E
R
2
tenemos que
L(E
R
) = L(E
R
1
+E
R
2
) = L(E
R
1
) L(E
R
2
)
= L(E
1
)
R
L(E
2
)
R
= L(E
1
+E
2
)
R
= L(E).
Con respecto al caso E = E
1
E
2
, deniendo E
R
= E
R
2
E
R
1
tenemos
L(E
R
) = L(E
2
2
E
R
1
) = L(E
R
2
)L(E
R
1
) = L(E
2
)
R
L(E
1
)
R
= (L(E
1
)L(E
2
))
R
= L(E
1
E
2
)
R
= L(E)
R
.
Finalmente, el caso E = E

1
se sigue del anterior.
3.2. PROPIEDADES DE CLAUSURA 29
La demostraci on del Teorema anterior es constructiva: da un algoritmo
recursivo para la construcci on de la expresi on regular asociada a la reesi on
de un lenguaje tomando como entrada una expresi on regular para el mismo.
Veamos un ejemplo sencillo que ilustre tal extremo.
Ejemplo 43 Consideremos la expresi on regular E = (0 + 1)

01 que deter-
mina el lenguaje de las cadenas de ceros y unos terminadas en 01. Dicha
expresi on es el resultado de la concatenaci on de tres expresiones regulares:
(0 + 1)

, 0 y 1. Por lo tanto, su reexi on coincide con la concatenaci on,


en orden inverso, de la reexi on de dichas expresiones regulares, a saber:
10(0 + 1)

.
Otra transformaci on usual, dentro del presente contexto, es la del cambio
en la codicaci on de las cadenas. Para formalizar dicho cambio introducimos
el concepto de homomorsmo.
Denici on 44 (Homomorsmo) Dados dos alfabetos nitos y , lla-
maremos homomorsmo a toda aplicaci on h :

. Toda aplicaci on como


la anterior induce, de manera natural una aplicaci on h :

denida
mediante
h(
1

n
) := h(
1
) h(
n
).
Dado un lenguaje cualquiera L , llamaremos homomorsmo de L (con
respecto a h) al lenguaje h(L) denido por
h(L) = :

Lt.q. h(

) = .
Una vez formalizado el concepto, veamos c omo se comporta el concepto
de regularidad frente al mismo.
Teorema 45 Sea L

un lenguaje regular y h : un homomorsmo


entre los alfabetos (nitos) y Gamma. Entonces, el homomorsmo del
lenguaje L (con respecto a h) es un lenguaje regular.
Demostraci on . Supongamos que el lenguaje L viene dado mediante una ex-
presi on regular sobre el alfabeto , digamos E. Construyamos, por inducci on
estructural, una nueva expresi on, digamos E
h
, que determine h(L).
(Caso Base) Supongamos de entrada que E = , E = o E =
(con ). Entonces, denimos E
h
mediante E
h
:= , E
h
:=
o E
h
:= h() de pendiendo del caso. Est a claro que, en este caso,
h(L(E)) = L(E
h
).
30 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


(Paso Inductivo) Distinguimos los siguientes casos:
si E = E
1
+E
2
, denimos E
h
:= E
h
1
+E
h
2
.
si E = E
1
E
2
, denimos E
h
:= E
h
1
E
h
2
y, nalmente,
si E = E

1
, denimos E
h
:= (E
h
)

. Resulta f acil de ver que en los


tres casos anteriores se tiene que h(L(E)) = L(E
h
).
En resumen, el homomorsmo de un lenguaje regular es regular.
Otra transformaci on usual es la del homomorsmo inverso.
Denici on 46 (Homomorsmo inverso) Sean y dos alfabetos ni-
tos, h : un homomorsmo y L

un lenguaje regular. Se dene el


homomorsmo inverso de L (con respecto a h), denotado h
1
(L), como:
h
1
(L) :=

: h() L.
Al igual que en casos anteriores, la regularidad se conserva. M as concre-
tamente,
Teorema 47 Sean y dos alfabetos nitos, h : un homomorsmo
y L

un lenguaje regular. El homomorsmo inverso de L es un lenguaje


regular.
Demostraci on . Supongamos dado un aut omata A = (K, , , q
0
, F) que
determina el lenguaje L, i.e. L(A) = L. Construyamos un aut omata A

=
(K, ,

, q
0
, F) (comparte con A el conjunto de estados, el estado inicial y
los estados aceptadores) deniendo la funci on de transici on de A

mediante

(q, ) :=

(q, h()),
donde

denota, como es usual, la funci on de transici on extendida de A.
As denido A

, queda claro que el lenguaje que acepta es precisamente


h
1
(L).
3.3. Propiedades de decisi on
A lo largo de esta secci on estudiaremos algunas propiedades decidibles
de los lenguajes regulares, i.e. cuestiones que se pueden resolver de manera
algortmica.
3.3. PROPIEDADES DE DECISI

ON 31
Tpicamente, un lenguaje regular est a constituido por un n umero innito
de cadenas por lo que, dado nuestro interes en tratar cuestiones de manera
algortmica, debemos representarlo de manera m as suscinta que la enumera-
ci on de todas y cada una de sus cadenas. Para ello, podemos suponer que el
lenguaje est a descrito mediante un aut omata nito o una expresi on regular.
Esta independencia de la representaci on se sigue del siguiente teorema:
Teorema 48 Existen algoritmos que llevan a cabo las siguientes tareas:
1. Dada una expresi on regular E, construir un aut omata nito A (deter-
minista, no determinista o no determinista con transiciones vacas) tal
que L(A) = L(E).
2. Dado un aut omata nito A (determinista, no determinista o no deter-
minista con transiciones vacas), construir una expresi on regular E tal
que L(E) = L(A).
Demostraci on . La demostraci on del apartado 1. puede encontrarse en la
del Teorema 31, mientras que la prueba de 2. puede verse en la demostraci on
del Teorema 33.
Una vez claricado lo tocante a la representaci on de lenguajes regulares,
el primer problema que uno se plantea es el siguiente:
Cuesti on 49 Dado un lenguaje regular (bien mediante un aut omata nito,
una expresi on regular o una gram atica regular), es L no vaco?
Si el lenguaje viene dado mediante un aut omata nito, dicha pregunta se
puede interpretar en terminos de accesibilidad de grafos de la siguiente mane-
ra: existe un camino del estado inicial a un estado aceptador? As enunciada,
la pregunta tiene f acil respuesta algortmica:
el estado inicial es accesible desde el estado inicial, y
si el estado p es accesible desde el estado inicial y existe un arco de p
a q, entonces el estado q es accesible desde el estado inicial.
Lo anterior resume la construcci on inductiva del conjunto de estados ac-
cesibles desde el estado inicial, en el momento en que dicho conjunto contenga
un estado aceptador, concluimos que el lenguaje no es vaco. Si dicho conjun-
to no se puede ampliar y no contiene ning un estado aceptador, concluimos
que el lenguaje L es vaco.
En el caso de lenguajes dados mediante expresiones regulares podemos
proceder, por inducci on estructural, de la manera siguiente:
32 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


(Caso Base) Si la expresi on regular es dene el lenguaje vaco; si es
del tipo o ( ), entonces el lenguaje no dene vaco.
(Paso Inductivo) Si la expresi on regular no es de los tipos anteriores,
distinguimos los siguientes casos:
Si es de la forma E
1
+ E
2
, el lenguaje es vaco si y s olo si los
lenguajes de E
1
y E
2
lo son,
Si es del tipo E
1
E
2
, el lenguaje es vaco si y s olo si el lenguaje de
E
1
o el de E
2
lo son.
Finalmente, si la expresi on regular es del tipo E

, el lenguaje no
es vaco.
Si el lenguaje viene dado por una gram atica regular, basta transformarla
en un aut omata, gracias al algoritmo visto en el Captulo anterior, y deter-
minar si este decide el lenguaje vaco o no.
En cualquier caso, tenemos el siguiente teorema:
Teorema 50 Existe un algoritmo que dado un lenguaje regular L, descrito
mediante un aut omata nito o una expresi on regular, decide si es o no vaco.
Otra cuesti on importante es la siguiente:
Cuesti on 51 Dado un lenguaje regular (descrito mediante un aut omata -
nito, una expresi on regular o una gram atica regular) y una cadena sobre el
mismo alfabeto, pertenece la cadena al lenguaje?
Puesto que las tres representaciones son equivalentes (existen algoritmos
que pasan de unas a otras), supongamos simplemente que el lenguaje viene
dado por un aut omata nito determinista. Para concluir si la cadena perte-
nece o no al lenguaje, bastar a con simular el aut omata. En resumen, tenemos
el teorema:
Teorema 52 Existe un algoritmo que dado un lenguaje regular L y una
cadena sobre el mismo alfabeto decide si la cadena pertenece o no al lenguaje.
3.4. Equivalencia y minimizaci on
Comenzamos esta Secci on estudiando suscintamente la noci on de relaci on
de equivalencia, de utilidad en lo que sigue.
3.4. EQUIVALENCIA Y MINIMIZACI

ON 33
Denici on 53 (Relaci on de equivalencia) Sea X un conjunto. Una re-
laci on X X se dice de equivalencia, si satisface las siguientes propie-
dades:
[Reexiva] para todo x X, x x,
[Simetrica] para todos x, y X, x y implica y x, y
[Transitiva] para todos x, y, z X, x y y y z implica x z.
Dada una relaci on X X y un elemento x X, se dene la clase
de x, denotada mediante [x]

, como el conjunto de todos los elementos de X


relacionados con x, i.e.
[x] := y X : x y.
Adem as, dados dos elementos x, y X no relacionados mediante R, se veri-
ca:
[x] [y] = .
La demostraci on de este hecho se sigue la propiedad transitiva. Veamos su de-
mostraci on en detalle. Por reducci on al absurdo, sean x, y X dos elementos
no relacionados tales que
[x] [y] ,= .
y sea z [x] [y]. Puesto que x z y z y se sigue x y, lo c ual es
absurdo. Por lo que se tiene la armaci on.
Gracias a este hecho, podemos dar una partici on del conjunto X en clases
de equivalencia.
En lo que sigue, emplearemos el concepto de relaci on de equivalencia en la
minimizaci on y equivalencia de aut omatas. Para ello, introducimos la noci on
de equivalencia de estados.
Denici on 54 (Estados equivalentes) Sea A = (Q, , , q
0
, F) un aut o-
mata nito determinista y sean p, q Q dos estados del mismo. Diremos que
los estados p y q son equivalentes, denotado por p q, si para toda cadena
w

se verica que

(p, w) es de aceptaci on si y s olo si

(q, w) es de
aceptaci on. En caso contrario, diremos que los estados son distinguibles.
Teorema 55 La relaci on estados equivalentes es una relaci on de equivalen-
cia.
Demostraci on . Las tres propiedades se siguen directamente de la denici on,
omitiremos su prueba.
Adem as de ser una relaci on de equivalencia en el conjunto de estados del
aut omata, se pueden determinar las clases de equivalencia.
34 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


Teorema 56 Existe un algoritmo que tomando como entrada un aut omata
nito determinista, calcula los pares de estados distinguibles y por ende, los
pares de estados equivalentes.
Demostraci on . El algoritmo que lleva a cabo la tarea anunciada procede
como sigue:
(Caso Base) Si p Q es un estado de aceptaci on y q A no lo es, se
marca el par (p, q) como par de estados distinguibles. Dichos estado se
distinguen mediante la cadena .
(Paso Inductivo) Sean p, q Q dos estados tales que para alg un
se tiene (p, ) = s y (q, ) = r. Si el par (r, s) esta marcado como
distinguible, se marca el par (p, q) como distinguible. Obviamente, una
cadena que distingue p y q es aw, donde w

es una cadena que


distingue a r y s.
El algoritmo anterior marca todos los pares de estados distinguibles. Para
demostrarlo, supongamos que no es as, i.e. que existe un par de estado
p, q Q distinguibles que no han sido marcados por el algoritmo.
Los estados p y q no pueden ser distinguidos mediante la cadena , puesto
que si as fuera hubieran sido marcados en la primera etapa del algoritmo
(uno sera aceptador mientras que el otro no).
Sea w = w
1
. . . w
n

+
la cadena m as corta que distingue a p y q, los estados
(p, w
1
) y (q, w
1
) son distinguidos por la cadena w
2
. . . w
n
. Continuando con
la argumentaci on, llegamos a la conclusi on de que unos ciertos estados r Q
y s Q son distinguibles por la cadena vaca y por tanto conforman un par
marcado en la primera etapa del algoritmo. Por lo tanto, el par conformado
por p y q hubiera sido marcado durante la ejecuci on de la segunda etapa.
Veamos un ejemplo concreto.
Ejemplo 57 Sea A el aut omata nito dado por el siguiente diagrama de
transici on:
3.4. EQUIVALENCIA Y MINIMIZACI

ON 35
C D
E
1
1
0
0
1
0
En este caso, el algoritmo comienza marcando lo pares formados por es-
tados aceptadores y no aceptadores, i.e.:
(C, E), (D, E).
Por concisi on eliminamos las repeticiones del tipo (E, D) o (E, C). Tras esta
primera fase, el algoritmo pasa a la fase inductiva. Sin embargo, en esta fase
no marca nuevos pares puesto que el par (D, C) es indistinguible.
Una primera aplicaci on del algoritmo detallado en el Teorema 58 resulta
ser la existencia de un algoritmo que decide la igualdad de dos lenguajes
dados mediante aut omatas nitos.
Teorema 58 Existe un algoritmo que decide si dos aut omatas nitos acep-
tan el mismo lenguaje.
Demostraci on . Supongamos dados dos aut omatas nitos
A = (Q
A
,
A
,
A
, q
A
0
, F
A
) y B = (Q
B
,
B
,
B
, q
B
0
, F
B
)
tales que sus conjuntos de estados sean disjuntos. Consideramos un nuevo
aut omata cuyo conjunto de estados viene dado por la uni on de los conjuntos
Q
A
y Q
B
. El resto de los elementos del nuevo aut omata se denen de manera
acorde a esta elecci on.
Cabe notar que el aut omata as denido, tiene dos estados iniciales; sin em-
bargo esto no afecta a lo que sigue.
El algoritmo emplea el algoritmo de marcado del Teorema 58 para detectar si
los estados iniciales son equivalentes o no. Si as es, ambos aut omatas denen
el mismo lenguaje, en caso contrario no.
36 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


El Teorema anterior puede ser demostrado haciendo uso de los algoritmos
vistos en la Secci on 3.3. Para ello, basta observar que dos lenguajes L
1
y L
2
coinciden si y s olo si L
1
L
2
y L
2
L
1
o equivalentemente, si L
1
l
2
= y
L
2
L
1
= . Por lo tanto, se reduce el problema de la igualdad de lenguajes
al de vacuidad.
Ejemplo 59 Consideremos el aut omata del Ejemplo 57 y el dado por el
diagrama de transici on siguiente:
A B
1
0
1 0
Empleando el algoritmo de marcado del Teorema 56 se tiene que son distin-
guibles los pares de estados (y sus simetricos):
(B, A), (E, A), (C, B), (D, B), (E, C), (E, D)
Por lo tanto, el par (A, C) es un par de estados equivalentes, por lo que ambos
aut omatas denen el mismo lenguaje.
Otra aplicaci on del algoritmo de marcado es la minimizaci on del n umero
de estados de un aut omata.
Teorema 60 Existe un algoritmo que tomando como entrada un aut omata
nito determinista, produce un aut omata equivalente con el menor n umero
posible de estados.
Demostraci on . Supongamos dado un aut omata A = (Q, , , q
0
, F). El
algoritmo elimina de entrada aquellos estados que no son accesibles desde el
estado inicial. Para ello puede emplear el algoritmo visto en la Secci on 3.3.
Despues, construye un nuevo aut omata B = (Q

, ,

, q

0
, F

) de la siguiente
manera:
Q

es el conjunto de clases de equivalencia de Q con respecto a


(equivalencia de estados),
q

0
es la clase de equivalencia de q
0
, i.e. q

0
:= [q
0
]

,
3.4. EQUIVALENCIA Y MINIMIZACI

ON 37
F

es el conjunto de clases de equivalencia de los elementos de F, y

se dene de la siguiente manera: dado y q Q

, se dene

(q, ) = [(q, )]

. La funci on de transici on esta bien denida pues-


to que, si p [q]

y [(q, )]

,= [(p, )]

, los estados p y q seran


distinguibles.
El algoritmo, para construir un tal aut omata, hace uso del algoritmo de
marcado del Teorema 58 con el n de determinar las clases de equivalencia.
Veamos que el aut omata B as construido tiene el menor n umero de estados
posibles. Por reducci on al absurdo supongamos que no es as y sea C un
aut omata con un n umero menor de estados. Como denen el mismo lenguaje,
i.e. son aut omatas aquivalentes, los estados iniciales son equivalentes. Como
ninguno de los dos aut omatas posee estados aislados del inicial, cada estado
de B va a ser equivalente a alguno de C. Puesto que C tiene menos estados
que B, hay dos estados de B equivalentes entre si, lo cual resulta absurdo.
Un sencillo ejemplo de la construcci on dada en el Teorema anterior es el
siguiente.
Ejemplo 61 Es f acil ver que el aut omata del Ejemplo 59 se obtiene a partir
del aut omata del Ejemplo 57 aplicando el algoritmo del Teorema anterior.
Otro ejemplo, esta m as complicado es el siguiente:
Ejemplo 62 Considerese el siguiente aut omata:
A
E
B
F G
C D
H
0 1
0
1 1
0
1
1
0
0
1
0
1
0
1
0
El mnimo aut omata que acepta el lenguaje del anterior es:
38 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


A, E
G
B, H
C
D, F
1
1
0
1
0
1
0
1
0
0
3.5. Ejercicios
Ejercicio 17 El conjunto de los parentesis balanceados se dene como el de
las cadenas de parentesis que pueden aparecer en una expresi on aritmetica
bien formada. Demostrar que dicho lenguaje no es regula.
Ejercicio 18 Dado un lenguaje regular L, demostrar que los siguientes len-
guajes, construidos a partir de L, no son regulares:
ww
R
: w L, y
ww : w L.
Ejercicio 19 Demostrar que el conjunto de las cadenas sobre un cierto al-
fabeto cuya longitud es un cuadrado perfecto no es un lenguaje regular.
Ejercicio 20 Demostrar que el conjunto de las cadenas sobre un cierto al-
fabeto cuya longitud es un n umero primo no es un lenguaje regular.
Ejercicio 21 Demostrar que el lenguaje reconocido por un aut omata es in-
nito si y s olo si existe una cadena en su lenguaje satisfaciendo n < [w[ < 2n,
donde n es el n umero de estados del aut omata.
Ejercicio 22 Demostrar que el lenguaje de un aut omata es no vaco si y
s olo si el aut omata admite una palabra de longitud n, donde n es el n umero
de estados del aut omata.
3.5. EJERCICIOS 39
Ejercicio 23 Desarrollar algoritmos que decidan las siguientes cuestiones:
Decidir si un lenguaje regular es innito.
Decidir si un lenguaje es vaco.
Decidir si un lenguaje es el total.
Decidir, dados dos lenguajes y una cadena, si dicha cadena pertenece a
la intersecci on de ambos lenguajes.
Decidir, dados dos lenguajes, si uno este contenido en el otro.
Ejercicio 24 P

ATATA
Ejercicio 25 Decidir si son equivalentes los siguientes aut omatas:
q
0
q
1
q
2
q
3
0 1
1
0
1
0
0, 1
q
4
q
5
q
6
0
0
1
1
40 CAP

ITULO 3. PROPIEDADES DE LOS LENGUAJES REGULARES


Captulo 4
Aut omatas a pila
Hasta el momento hemos tratado los aut omatas nitos. Dichos aut omatas
pueden intrepertarse como m aquinas abstractas que carecen de estructura
de datos (s olo pueden almacenar informaci on en un conjunto nito dado
de estados). Hemos visto el potencial computacional de dichas m aquinas y
como pueden representarse los lenguajes que aceptan mediante gram aticas o
expresiones regulares.
A lo largo del presente Captulo, eliminaremos esta restricci on y conside-
raremos aut omatas dotados de la estructura de datos m as sencilla que uno
puede considerar: una pila. Dichos aut omatas a pila ser an tambien el centro
de los dos siguientes temas.
4.1. Aut omatas a pila
Tal y como se dijo con anterioridad, los aut omatas a pila son aut omatas
nitos que cuentan con una pila. Por ello, en cada paso de computaci on de los
mismos, son capaces de operar en la pila se acuerdo a las operaciones usuales
de las mismas: obtener el contenido de la pila, apilar uno o m as caracteres y
desapilar un car acter. Su denici on formal es como sigue.
Denici on 63 (Aut omata a pila) Un aut omata a pila es una tupla P =
(K, , , , q
0
, Z, F) donde:
1. K es un conjunto nito de estados,
2. y son dos alfabetos nitos llamados de entrada y de pila (respec.),
3. : K ( ) T(K)

es una aplicaci on llamada de


transici on,
41
42 CAP

ITULO 4. AUT

OMATAS A PILA
4. q
0
K es el estado inicial, Z es el smbolo inicial de la pila, y
5. F es el conjunto de estados aceptadores.
El lector puede observar las similitudes existentes entre la denici on de
aut omata a pila y la de aut omata nito.
A la hora de denir el funcionamiento de un aut omata a pila, la aproxi-
maci on m as sencilla es la siguiente: primero se dene el concepto de con-
guraci on (estado en el que se encuentra el aut omata a pila en un momento
concreto) y luego se dene como el aut omata pasa de una conguraci on a
otra (paso de computaci on).
La denici on formal de conguraci on es la siguiente:
Denici on 64 (Conguraci on de un aut omata a pila) Dado un aut o-
mata a pila P = (K, , , , q
0
, Z, F), llamaremos conguraci on del aut omata
P a toda tupla (q, w, ) K

. En particular, llamaremos congu-


raci on inicial para un cadena dada w

a la tupla (q
0
, w, Z).
Mientras que la de paso de computaci on es como sigue:
Denici on 65 (Paso de computaci on en un aut omata a pila) Supon-
gamos dados un aut omata a pila P = (K, , , , q
0
, Z, F), un smbolo del
alfabeto de entrada y un smbolo del alfabeto de pila tales que
(q, , ) = (Q, ) para ciertos Q T(K) y

. Para todo p Q,
w

, diremos que la conguraci on (q, w, ) da lugar, en


un paso de computaci on, a la conguraci on (p, w, ) y lo denotaremos por
(q, w, )
P
(p, w, ). En general, emplearemos la notaci on

P
para in-
dicar que una conguraci on se sigue de otra en un n umero nito de pasos
(quiz as nulo).
Teniendo presentes las deniciones anteriores podemos denir el lenguaje
aceptado por un aut omata a pila de diversas maneras: por estado nal o
por pila vaca. La primera de ellas guarda estrecha relaci on con la manera
en que se denen los lenguajes regulares, se consider an las cadenas que, tras
procesarse, dejan al aut omata en un estado aceptador.
Denici on 66 (Lenguaje aceptado por estado nal) Dado un aut oma-
ta a pila P = (K, , , , q
0
, Z, F), se dene el lenguaje aceptado por P por
estado nal como el conjunto de las cadenas w

tales que partiendo de


la conguraci on inicial para w, el aut omata alcanza en un n umero nito de
pasos una conguraci on aceptadora, i.e.
L(P) = w

: (q
0
, w, Z)

P
(f, , ) F

.
4.1. AUT

OMATAS A PILA 43
En la otra alternativa, aceptaci on por pila vaca, se exige que el aut oma-
ta vace su pila (adem as de haber procesado su entrada) para aceptar una
cadena.
Denici on 67 (Lenguaje aceptado por pila vaca) Dado un aut omata
a pila P = (K, , , , q
0
, Z, F), se dene el lenguaje aceptado por P por
pila vaca como el conjunto de las cadenas w

tales que partiendo de


la conguraci on inicial para w, el aut omata alcanza en un n umero nito de
pasos una conguraci on con cadena y pila vacas, i.e.
L(P) = w

: (q
0
, w, Z)

P
(f, , ) K .
TODO 8 Dar un ejemplo de aut omata a pila que acepte un lenguaje por
pila vaca y otro que acepte el mismo lenguaje por estado nal.
Aunque distintas, ambas deniciones nos llevan al mismo tipo de len-
guajes, como muestra el siguiente Teorema; su interes reside la existencia de
lenguajes para los cuales es m as sencillo dise nar un aut omata que acepte de
una manera concreta.
Teorema 68 Dado un lenguaje aceptado por un aut omata P por estado -
nal, existe un aut omata P

que acepta L por pila vaca. Recprocamente, si


L es aceptado por un aut omata por pila vaca, existe un aut omata P

que
acepta L por estado nal.
Demostraci on . Supongamos dado un lenguaje L

aceptado por un
aut omnata a pila P = (K, , , , q
0
, Z, F) por estado nal. La construcci on
de un aut omata P

que acepta L por pila vaca es como sigue: P

coincide
con P con las siguientes salvedades:
el smbolo inicial de pila viene dado por un nuevo smbolo X,
el conjunto de estado coincide con el de P salvo por la inclusi on de dos
nuevos estados: un nuevo estado inicial p
0
y un nuevo estado denotado
p
F
encargado de vaciar la pila.
la funci on de transici on es igual que en el aut omata a pila salvo por
la inclusi on de diversas transiciones: la primera est a denida mediante
(p
0
, , X) = (q
0
, ZX) y se encarag de apilar el smbolo inicial de pila
del aut omata P, mientras que las restantes son de la forma (f, , ) =
(p
F
, ), donde f F y .
44 CAP

ITULO 4. AUT

OMATAS A PILA
Gr acamente, representamos a continuaci on dicho aut omata:
p
0 q
0
p
F
, /
, X/ZX
, /
Recprocamente, supongamos que el lenguaje L es aceptado por un aut omata
a pila por pila vaca. La construcci on del aut omata P

es como sigue: al igual


que en el caso anterior, el nuevo aut omata es esencialmente igual a P con las
siguientes salvedades:
el smbolo inicial de pila viene dado por un nuevo smbolo Z,
se a naden dos nuevos estados p
0
(estado inicial) y p
F
(estado nal),
se consideran, adem as de las transiciones de originales P, las siguientes:
una transici on inicial denida mediante (p
0
, , X) = (q
0
, ZX) y unas
transiciones encargadas de aceptar denidas por (q, , Z) = (p
F
, X).
En lneas generales, el diagrama de transiciones de P

tiene la pinta:
p
0 q
0
p
F
, X/X
, X/ZX
TODO 9 Dar un ejemplo de la conversi on.
4.2. Aut omatas a pila deterministas
Aparte de los aut omatas a pila denidos en la Secci on anterior, resultan
interesantes los aut omatas a pila deterministas. Hacemos hincapie en que
aqu determinismo hace alusi on a la inexistencia de diversas opciones para
una misma situaci on. La denici on formal es la siguiente:
4.3. EJERCICIOS 45
Denici on 69 (Aut omata a pila determinista) Dado un aut omata a pi-
la P = (K, , , q
0
, Z, F), diremos que es determinista si verica:
1. (q, , ) = (Q,

) verica #Q 1 para todo q K, y .


2. Si (q, , ) = (Q,

) con Q ,= , entonces (q, , ) = (,

).
Puesto que los aut omatas a pila deterministas son, en particular, aut oma-
tas a pila, las deniciones de conguraci on y de paso de computaci on se
aplican sin m as. Por lo tanto, podemos denir el lenguaje aceptado por un
aut omata a pila por estado nal o por pila vaca.
La relaci on de los aut omatas a pila con los aut omatas nitos viene expre-
sada en el siguiente Teorema.
Teorema 70 Dado un lenguaje regular L

, exite un aut omata a pila


deterministas que acepta L por estado nal.
Demostraci on . La demostraci on resulta sencillo y se deja como ejercicio al
lector.
Para nalizar, notemos que existen lenguajes aceptador por aut omatas a
pila que no son aceptados por aut omatas a pila deterministas.
TODO 10 Dar un ejemplo de lenguaje aceptado por un aut omata a pila que
no sea aceptado por un aut omata a pila determinista.
4.3. Ejercicios
Ejercicio 26 Demostrar que si P es un aut omata a pila, existe P

con un
unico estado que acepta el mismo lenguaje.
Ejercicio 27 Dado un aut omata P que no acepta , construir un aut omata
equivalente que acepte .
Ejercicio 28 Construir aut omatas a pila que acepten los siguientes lengua-
jes
1. L = ww
R

2. a
i
b
j
c
k
[i = j o j = k
Ejercicio 29 Se dice que un aut omata a pila es restringido si la altura de
la pila aumenta a lo m as en uno. Demostrar que todo auomata a pila tiene
uno restringido equivalente.
46 CAP

ITULO 4. AUT

OMATAS A PILA
Captulo 5
Gramaticas independientes del
contexto
Al igual que los aut omatas nitos tienen asociadas las gram aticas regula-
res, los aut omatas a pila tienen asociadas las que se conocen como gram aticas
independientes del contexto.
A lo largo del presente Captulo introduciremos dichas gram aticas y de-
tallaremos su relaci on con los aut omatas a pila.
5.1. Gramaticas independientes del contexto
Comencemos con un ejemplo.
Ejemplo 71 (Palndromos) Dado un alfabeto , con # 2, un paln-
dromo sobre es una cadena w tal que w = w
R
. El lenguaje de los
palndromos, denido como el conjunto de los mismos, i.e.
L
pal
:= w

: w = w
R
,
no es un leguaje regular. Para demostrar esta armaci on procederemos por
reducci on al absurdo. Asumamos que L
pal
es regular. Por el Lema de Bombeo
se tiene que existe un natural n N tal que para toda cadena w L
pal
,
con [w[ n, se tiene que existen cadenas x, y, z

satisfaciendo las
condiciones 1., 2. y 3. del enunciado del Lema de Bombeo. En particular,
dada la cadena
n

n
L
pal
, donde , son dos smbolos distintos,
existen cadenas x, y, z

satisfaciendo 1., 2. y 3.. Por lo que, en particular,


se sigue que la cadena xz L
pal
o equivalentemente,
m

n
L
pal
, con
m N satisfaciendo m < n
1
. Lo c ual es absurdo puesto que
m

n
no es un
palndromo.
1
Observese que y = , por lo que |y| 1, y que |xy| n.
47
48 CAP

ITULO 5. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO


Del hecho de que L
pal
no sea un lenguaje regular se sigue que no puede
ser descrito mediante una expresi on regular. Ahora bien, esto no implica que
no pueda ser descrito de manera alguna.
Supongamos, en lo que resta de ejemplo, que = 0, 1 y consideremos
las siguientes reglas de reescritura:
Q ,
Q 0,
Q 1,
Q 0Q0, y
Q 1Q1.
Tomando como punto de partida P y empleando las reglas de escritura an-
teriores, podemos generar cadenas de

de manera tal que aquellas que no


contengan a P son palndromos.
En resumen, L
pal
puede describirse mediante un conjunto nito de reglas.
En lo que sigue precisaremos el concepto de gram atica, de lo que el ejem-
plo anterior no es m as que un caso particular.
Denici on 72 (Gramatica independiente del contexto) Una gra-
m atica independiente del contexto es una tupla G = (V, T, P, S) donde
V es un conjunto nito de smbolos llamados variables o smbolos no
terminales,
T es un conjunto nito de smbolos llamados terminales,
P V (V T)

es un conjunto nito de elementos, llamados pro-


ducciones, de manera tal que si (p, q) P se denotar a mediante la
expresi on p q; p recibe el nombre de cabeza y q el de cuerpo, y
S V es el smbolo inicial.
En el Ejemplo 71, empleabamos una gram atica para construir las palabras
del lenguaje de los palndromos. Para ello, aplicabamos las producciones (o
reglas de substituci on) al smbolo inicial P y, de entre las cadenas generadas,
aquellas que no contuvieran al smbolo P eran palndromos.
Veamos, en primera instancia, como se dene el proceso de substituci on
para gram aticas independientes del contexto cualesquiera.
5.1. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO 49


Denici on 73 (Derivaci on) Dada una gram atica independiente del con-
texto G = (V, T, P, S), una cadena A, con , (V T)

y A V , si
existe una producci on A P, diremos que deriva, en un paso, de
A; si as es, se denota mediante la expresi on A
G
(o equivalen-
temente A si esta claro la gram atica empleada). En general, si
una cadena w (V T)

deriva en una o m as pasos de (V T)

, lo de-
notaremos mediante la expresi on

G
w (

w si esta claro la gram atica


empleada).
Observamos que en la denici on de derivaci on no se especica ni la vari-
able a substituir ni la producci on a emplear. Es, en cierto sentido, no deter-
minista.
Si en una derivaci on, se substituye la variable que aparece m as a la iz-
quierda, se dice que es una derivaci on a la izquierda. Si por el contrario se
substituye la variable m as a la derecha, se dice que la derivaci on es a la de-
recha. En general, las cadenas derivables a partir del smbolo inicial pueden
obtenerse bien mediante derivaciones cualesquiera, bien mediante derivacio-
nes a izquierda o bien mediante derivaciones a derecha.
Las cadenas que aparecen como resultado de derivaciones del smbolo
inicial suelen recibir el nombre de formas sentenciales.
Una vez formalizado el proceso de derivaci on (substituci on), podemos
denir el lenguaje descrito por una gram atica independiente del contexto.
Denici on 74 (Lenguaje independiente del contexto) Dada una gra-
m atica independiente del contexto G = (V, T, P, S), se dene el lenguaje de
G como el conjunto de cadenas de smbolos terminales derivables, en uno o
m as pasos, de S, i.e.
L(G) := w T

: S

G
w.
Para decidir si una cadena pertenece puede derivarse o no a partir de otra
dada, basta determinar si existe una sucesi on de derivaciones que comenzando
con la ultima lleven a la primera. Este proceso se conoce con el nombre de
inferencia recursiva.
Ejemplo 71 (Palndromos, continuaci on) Retomando el ejemplo de los
palndromos, y considerando la gram atica G = (V, T, P, S), donde V := Q,
T := 0, 1, S := Q y P es el conjunto de las producciones all descritas,
tenemos por ejemplo la siguiente secuencia de derivaciones:
P
G
1P1
G
10P01
G
10101.
Puesto que 10101 est a compuesta exclusivamente por car acteres terminales,
pertenece al lenguaje de los palndromos.
50 CAP

ITULO 5. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO


5.2.

Arboles de derivaci on
Una secuencia de derivaciones puede representarse mediante un arbol.
Formalmente.
Denici on 75 (

Arbol de derivaci on) Dada una gram atica independiente


del contexto G = (V, T, P, S), se dene un arbol de derivaci on para G como
uno que verica las siguientes condiciones:
cada nodo interior est a etiquetado con una variable de V ,
cada hoja est a etiquetada con una variable, un car acter terminal o ,
si un nodo est a etiquetado con una variable A y sus hijos est an eti-
quetados con X
1
, . . . , X
n
(respetando el orden de aparici on), entonces
A X
1
X
n
es una producci on de P.
El resultado de un arbol de derivaci on es la concatenaci on de las etiquetas
de las hojas de izquierda a derecha. Veamos un ejemplo tanto de arbol de
derivaci on como de resultado del mismo.
Ejemplo 71 (Palndromos, continuaci on) La derivaci on
P
G
1P1
G
10P01
G
10101.
puede representarse mediante el siguiente arbol de derivaci on:
P
1 P 1
0 P 0
1
1 0 1 0 1
5.2.

ARBOLES DE DERIVACI

ON 51
N otese que la cadena obtenida concatenando, de izquierda a derecha, las
hojas del arbol es, precisamente, 10101.
Obviamente, los arboles que centrar an nuestra atenci on son aquellos cuya
raz est a etiquetada con la variable inicial y cuyas hojas est an etiquetadas
con car acteres terminales, i.e. representan cadenas del lenguaje.
Veamos a continuaci on que los arboles de derivaci on y las secuencias de
derivaciones son, esencialemnte los mismos objetos, i.e. son equivalentes.
Teorema 76 Dada una gram atica independiente del contexto, digamos G =
(V, T, P, S), una variable A V y una cadena w T

tal que A

w.
Entonces, existe un arbol de derivaci on cuya raz est a etiquetada con A y
cuyo resultado es w.
Demostraci on . La demostraci on se lleva a cabo por inducci on en el n umero
de derivaciones.
Supongamos que w se puede inferir en un unico paso de derivaci on a partir de
A, i.e. que A w es una producci on. Si w = w
1
w
m
, donde w
1
, . . . , w
m

(V T), construimos el siguiente arbol de derivaci on
A
w
1
w
2
w
m1
w
m
En el caso de que w = , el arbol que se construye es el siguiente:
A

Por inducci on, supongamos que para toda cadena derivable de A en a lo


m as n pasos, tiene asociada un arbol de derivaci on. Sea w una cadena que
derivable a partir de A en n + 1 pasos. Supongamos adem as que la primera
derivaci on es de la forma A X
1
X
m
, donde X
1
, . . . , X
m
(V T)

.
Para cada i N, con 1 i m, distinguimos los siguientes casos:
52 CAP

ITULO 5. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO


Si X
i
= , asociamos a X
i
el arbol T
i
denido como

Si X
i
= w, con w T, construimos el arbol de derivaci on
w
Finalmente, si X
i
V , considerando las derivaciones que afectan a X
i
,
obtenemos una cadena subcadena de w, digamos w
i
(V T)

, y una
secuencia de a lo m as n derivaciones X
i
w
i
. Por hip otesis inductiva,
existe un arbol de derivaci on, digamos T
i
, cuya raz est a etiquetada con
X
i
y cuyo resultado es, precisamente, w
i
.
En resumen, para cada X
i
, con i N y 1 i m, tenemos un arb ol de
derivaci on asociado T
i
. Denimos entonces el arbol
X
i
T
1
T
2
T
m1
T
m
La demostraci on concluye observando que el resultado de dicho arbol es la
concatenaci on de los smbolos w
1
, . . . , w
m
(sean del alfabeto terminal o va-
riables), i.e. w = w
1
w
m
.
5.2.

ARBOLES DE DERIVACI

ON 53
Teorema 77 Dado un arbol de derivaci on de una gram atica G = (V, T, P, S)
cuya raz est a etiquetada mediante A V y cuyo resultado es w (V T)

,
existe una secuencia de derivaciones tales que A

w.
Demostraci on . La demostraci on se llevar a a cabo por inducci on en la pro-
fundidad
2
del arbol.
Supongamos que el arbol tiene profundidad nula. Por lo tanto, el arbol es de
la forma:
A
X
1
X
2
X
m1
X
m
donde X
1
, . . . , X
m
(V T)

. Gracias a la denici on de arbol de derivaci on


se sigue que A X
1
X
m
es una producci on, por lo que A X
1
X
m
es una derivaci on admisible.
Supongamos que el resultado es cierto para cualquier arbol de derivaci on de
profundidad n y demostremoslo para los arboles de profundidad n + 1.
Sea A la raz de un arbol de profundidad n+1, y sean X
1
, . . . , X
k
(V T)
las etiquetas de sus hijos. Si X
i
es, para alg un i N con 1 i k, un
car acter terminal, denimos w
i
:= X
i
. En caso contrario, se sigue que X
i
es
una variable raz de un arbol de profundidad a lo m as n. Por hip otesis, existe
una derivaci on que tiene como resultado el resultado del arbol cuya raz es
X
i
, i.e. X
i

w
i
. En cualquier caso, el resultado del arbol con raz A es
exactamente w = w
1
w
k
, por lo que A X
1
X
k

w
1
w
k
.
Nota 78 Una atenta lectura de la demostraci on anterior revela que el tipo de
derivaciones que aparecen son precisamente las derivaciones m as a la izquier-
da. Esto es, dado un arbol de derivaci on podemos construir una derivaci on
m as a la izquierda con igual resultado.
2
Usualmente se dene la profundidad de un arbol, o m as generalmente de un grafo
dirigido acclico, como el m aximo n umero de nodos intermedios que atraviesa un camino
de la raz a las hojas.
54 CAP

ITULO 5. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO


5.3. Aut omatas a pila y gramaticas indepen-
dientes del contexto
Una vez introducido el concepto de gram atica independiente del contexto,
a lo largo de la presente secci on detallaremos su relaci on con la noci on de
aut omata a pila.
Veamos, de entrada, que el lenguaje determinado por una gram atica in-
dependiente del contexto cualquiera es aceptado por una aut omata a pila que
acepta por pila vaca.
Teorema 79 Dada una gram atica independiente del contexto G = (V, T, P, S),
existe un aut omata a pila N = (K, , , , q
0
, Z
0
) que acepta por pila vaca
tal que L(G) = L(N).
Demostraci on . Supongamos dada la gram atica G y construyamos un tal
aut omata N de la siguiente manera:
K est a formado por un unico estado q (que por lo tanto es tambien
estado inicial),
el alfabeto de entrada coincide con el conjunto de smbolos terminales,
mientras que el alfabeto de pila es la uni on de los conjuntos de smbolos
terminales y no terminales, i.e.
= T y = V T,
el smbolo inicial de pila vendr a dado por el smbolo inicial de la
gram atica, y
la funci on de transici on se dene como sigue:
(q, , A) = (q, ) : A P,
cuando A se corresponde con una variable de la gram atica G, y
(q, a, a) = (q, )
en el caso de que a sea un car acter terminal de G.
Con el n de demostrar que L(N) L(G), veamos en primer lugar que
si en una secuencia de pasos el aut omata extrae una variable de la pila
consumiendo una cierta cadena, i.e.
(q, , A)

(q, , ),
5.3. AUT

OMATAS APILAYGRAM

ATICAS INDEPENDIENTES DEL CONTEXTO55


donde A V y T

, podemos asociar a dicha secuencia una derivaci on


en la gram atica.
Para ello procedemos por inducci on en la longitud de la secuencia de pasos
de computaci on:
(Caso Base) Supongamos, de entrada, que el aut omata extrae una cierta
variable A de la pila en un unico paso. Por lo tanto, siendo (q, , A) =
(q, ) se sigue que = y que A P.
(Paso Inductivo) Si el aut omata extrae una cierta variable A en n pasos
de computaci on, puesto que A est a en la cima de la pila, el primero
de ellos debe ser el correspondiente a una transici on asociada a una
producci on de la forma A Y
1
Y
k
(con Y
i
para 1 i k).
Sea w
i

, con 1 i k, la cadena consumida por el aut omata


para extraer de la pila el smbolo Y
i
. Si Y
i
T, para alg un 1 i k,
forzosamente tenemos que Y
i
= w
i
. Si por el contrario Y
i
V , para
cierto 1 i k, se sigue por hip otesis de inducci on que Y
i

w
i
,
puesto que en ese caso tendramos
(q, w
i
, Y
i
)

(q, , ).
En cualquier caso tenemos que A Y
1
Y
k

w
1
w
k
.
Recprocamente, veamos que L(G) L(N). Probemos para ello que, dada
una cadena T

derivable a partir de una cierta variable X, existe una


secuencia de pasos de computaci on que termina aceptando si en la pila se
encontraba (exclusivamente) la variable X, i.e.
(q, , X)

(q, , ).
Por inducci on en el n umero de derivaciones a la izquierda necesarias para
obtener a partir del smbolo inicial S.
(Caso Base) Supongamos que una cadena se deriva en una
sola derivaci on a partir de cierta variable A, i.e. A . Puesto que
pertenece a

, tenemos la siguiente secuencia de pasos de computaci on


asociada:
(q, , S) (q, , )

(q, , ),
i.e. L(N).
Supongamos que se deriva a partir de una variable Aen n derivaciones
m as a la izquierda, digamos
A
1
. . .
n
= .
56 CAP

ITULO 5. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO


Puesto que hay m as de una derivaci on, la cadena obtenida tr as la pri-
mera derivaci on forzosamente contiene al menos una variable. Por cons-
trucci on del aut omata, los car acteres terminales que aparecen a la iz-
quierda de las variables son procesados a la vez que los caracteres de
la entrada mediante las transiciones del segundo tipo. En cuanto a las
variable, cada vez que aparece una, puesto que se obtiene, a partir de
ella, un fragmento de en a lo m as n 1 derivaciones, se sigue por
hip otesis inductiva que existe una secuencia de paso de computaci on
que eliminan de la pila tanto la variable en cuesti on como la subcadena
de asociada.
Por lo tanto, dada L(G), existe una secuencia de pasos de computaci on
que vacan la pila, i.e. L(N).
TODO 11 Completar la demostraci on anterior y dar un ejemplo.
El recproco tambien es cierto, tal y como muestra el siguiente Teorema.
Teorema 80 Dado un aut omata a pila N = (K, , , , q
0
) que acepte por
pila vaca, existe una gram atica independiente del contexto G = (V, T, P, S)
tal que L(G) = L(N).
Demostraci on . Construimos G = (V, T, P, S) como sigue:
el conjunto de variables se dene
V = [pXq] : pq K, X S,
donde S es el smbolo inicial,
las producciones
S [q
0
Z
0
p]
para todo p K. Si (q, a, X) contiene (r, Y
1
Y
r
) para alg un a
y k 0, para toda lista [r
1
, . . . , r
k
] consideramos la producci on
[qXr
k
] [rY
1
r
1
] [r
k1
Y
k
r
k
]
pertenece a P.
5.4. AMBIGUEDAD EN GRAM

ATICAS Y LENGUAJES 57
5.4. Ambiguedad en gramaticas y lenguajes
En la Secci on anterior se ha visto que todo arbol de derivaci on tiene
asociado una derivaci on (m as a la izquierda). Sin embargo, en general no
podemos concluir si dicha asociaci on es unica, i.e. existen gram aticas para
las que cadenas del lenguaje que generan pueden tener diversos arboles de
derivaci on. Formalmente.
Denici on 81 Dada una gram atica independiente del contexto, diremos que
G es ambigua si existe una cadena en L(G), el lenguaje generado por la
gram atica, tal que admite dos arboles de derivaci on. En caso contrario dire-
mos que no es ambigua.
Ejemplo 82 El lenguaje de las expresiones aritmeticas es ambiguo
Un lenguaje generado por una gram atica ambigua puede ser generado por
otra gram atica de manera tal que esta ultima no sea ambigua. Sin embargo,
si toda gram atica que genere un cierto lenguaje es ambiguo se dice que este
es inherentemente ambiguo.
Adem as, la ambiguedad de las gram aticas es indecidible.
Los lenguajes empleados en la programaci on de computadores son no
ambiguos.
5.5. Ejercicios
Ejercicio 30 Dise nar gram aticas libres de contexto para los lenguajes si-
guientes:
0
n
: n N,
0
n
1
n
: n N,
0
n
1
2n
: n N, y
0
i
1
j
: i, j N.
Ejercicio 31 Dada la gram atica
S A1B,
A 0A[,
B 0B[1B[,
dobtener las derivaciones m as a la derecha y m as a la izquierda de 00101,
1001 y 00011.
58 CAP

ITULO 5. GRAM

ATICAS INDEPENDIENTES DEL CONTEXTO


Ejercicio 32 Demostrar que todo lenguaje regular es independiente del con-
texto.
Ejercicio 33 Se dice que una gram atica es lineal por la derecha si toda pro-
ducci on tiene a lo m as una variable y esta est a situada en el extremo derecho.
Demostrar que toda gram atica lineal por la derecha genera un lenguaje regu-
lar y recprocamente, que todo lenguaje regular est a dado por una gram atica
lineal por la derecha.
Ejercicio 34 Demostrar que el lenguaje de las expresiones regulares no es
regular. Demostrar que dicho lenguaje es independiente del contexto.
Captulo 6
Maquinas de Turing
En este Captulo se presenta el modelo de m aquinas de Turing, discu-
tiendose, con cierta profundidad, algunos aspectos del mismo. M as concreta-
mente, en la Secci on 6.1 se dene el concepto de m aquina de Turing. Tambien
se introducen las nociones de lenguaje recursivo, recursivamente enumerables
y enumerable. En la Secci on 6.2 se presentan dos generalizaciones del con-
cepto de m aquinas de Turing: m aquinas con m ultiples cintas y m aquinas no
deterministas. En ambos casos se mostrar a su equivalencia (computacional)
con el modelo determinista de una unica cinta. En la Secci on 6.3 se da una
breve introducci on a la Teora de la Complejidad (tanto en tiempo como en
espacio). Tambien se introduce el concepto de clases de complejidad y se
discute la Conjetura de Cook. En la Secci on A.1 se introducen las M aquinas
RAM y se muestra su equivalencia con las m aquinas de Turing. Finalmente,
en la Secci on 6.4 se discute la Tesis de ChurchTuring.
La referencia fundamental a lo largo del presente Captulo ser a [12].
6.1. Maquinas de Turing
En esta Secci on se introduce la noci on de m aquina de Turing, debida a
Alan Turing
1
(vease [15]), como modelizaci on te orica de un proceso de com-
putaci on. Tambien se discutir an las posibles interpretaciones de las compu-
taciones llevadas a cabo por una m aquina de Turing: decisi on, computaci on
y enumeraci on.
Intuitivamente, una m aquina de Turing es un dispositivo computacional
que consta de una unidad de control (con un n umero nito de estados) y una
unidad de lectura/escritura que se desplaza sobre una cinta, acotada por la
izquierda, en la que se almacenan caracteres de un alfabeto nito. La unidad
1
Los lectores interesados en la vida y la obra de A. Turing pueden consultar [6].
59
60 CAP

ITULO 6. M

AQUINAS DE TURING
de lectura/escritura se desplaza a lo largo de la cinta alterando, si procede,
el contenido de las celdas. Mientras que la unidad de control puede cambiar
su estado en funci on de lo ledo por la de lectura/escritura. La m aquina
termina su computaci on si llega a un estado de parada. Su denici on formal
es la siguiente.
Denici on 83 (Maquina de Turing) Una m aquina de Turing es una cua-
drupla M = (K, , , s) tal que:
1. K es un conjunto nito de estados, suponemos que el estado inicial s
pertenece a K,
2. es un conjunto nito de smbolos llamado alfabeto tal que K =
y contiene los smbolos especiales . y , llamados blanco y comienzo
de cinta respectivamente,
3. es una funci on, llamada de transici on, denida del conjunto K
en (K h, si, no) , , tal que para todo p, q K
satisfaciendo (q, ) = (p, , D), se tiene = y D =.
Obviamente, la noci on de m aquina de Turing es est atica (no detalla como
se llevan a cabo las computaciones). Para dotarla de dinamismo debemos
introducir, de entrada, el concepto de conguraci on.
Denici on 84 (Conguraci on) Sea M = (K, , , s) una m aquina de Tu-
ring. Llamaremos conguraci on a toda tupla (q, v, w), donde q K y v, w

. En particular, dada una cadena x

, a la tupla (s, , x) se la lla-


mar a conguraci on inicial.
Fijada la noci on de conguraci on de una m aquina de Turing, la transici on
entre distintas conguraciones (paso de computaci on) se dene como sigue.
Denici on 85 (Paso de computaci on) Sea M = (K, , , s) una m aqui-
na de Turing y sean dos conguraciones (q, v, w), (q

, v

, w

) K

tales
(q, v, w) = (q, v
1
. . . , v
r
, w
1
. . . w
s
), y
(q

, v

, w

) = (q

, v

1
. . . v

r
, w

1
. . . w

s
).
Diremos que (q, v, w) da lugar a (q

, v

, w

) en un paso, y lo denotaremos por


(q, v, w)
M
(q

, v

, w

), si suponiendo que (q, v


r
) = (p, , D), se verica que
q

= p y
si D =, r

= r + 1, s

= s 1, v

i
= v
i
para 1 i < r

, v

r
= ,
w

k
= w
k+1
para 1 k s

,
6.1. M

AQUINAS DE TURING 61
si D = , r

= r, s

= s, v

i
= v
i
para 1 i < r

, v

r
= , w

k
= w
k
para 1 k s

, y
si D =, r

= r 1, s

= s + 1, v

i
= v
i
para 1 i r

, w
1
= ,
w

k
= w
k1
para 1 < k s

.
M as generalmente, diremos que (q, v, w) da lugar a (q

, v

, w

), y lo denota-
remos por (q, v, w)

M
(q

, v

, w

), si existe una secuencia nita de congura-


ciones (q
1
, v
1
, w
1
), . . . , (q
k
, v
k
, w
k
), para alg un k N, tal que
(q, v, w)
M
(q
1
, v
1
, w
1
)
M
. . .
M
(q
k
, v
k
, w
k
)
M
(q

, v

, w

).
En particular, dada una m aquina M y una entrada w

, llamaremos
conguraci on inicial a la tupla (s, , x).
Una vez formalizada la parte din amica de las m aquinas de Turing, debe-
mos interpretar los resultados que producen. Tres interpretaciones resultan
de interes: el reconocimiento de cadenas, el c alculo de funciones y la enume-
raci on de conjuntos.
Denici on 86 (Aceptaci on/rechazo de cadenas) Sea M = (K, , , s)
una m aquina de Turing y x

una cadena sobre el alfabeto . Diremos que


la m aquina de Turing para, si alcanza alguno de los estados si, no, h,
esto es si (s, , x)

M
(q, v, w), donde q si, no, h y v, w

. Si el
estado nal es si, diremos que la m aquina de Turing acepta x. Si el estado
nal es no, diremos que la m aquina de Turing rechaza la cadena x.
Obviamente, tiene sentido hablar de los conjuntos reconocidos por la
m aquina de Turing. Bien es cierto que cabe hacer una distinci on impor-
tante: una m aquina de Turing puede aceptar un conjunto de cadenas y, bien
rechazar las restante o bien permanecer computando indenidamente. Esta
distinci on hace necesario introducir dos conceptos fundamentales: los lengua-
jes recursivos y los lenguajes recursivamente enumerables.
Denici on 87 (Lenguajes recursivos) Dados un lenguaje L

y una
m aquina de Turing M = (K, , , s), diremos que la m aquina de Turing M
decide L si
1. para todo x L, entonces M(x) = si, y
2. para todo x / L, entonces M(x) = no.
En este caso, diremos que L es un lenguaje recursivo.
62 CAP

ITULO 6. M

AQUINAS DE TURING
En el caso anterior, la m aquina de Turing siempre llega a una estado de
parada, aceptando o rechazando las cadenas sobre un cierto alfabeto . En
general, esta situaci on no ocurre.
Denici on 88 (Lenguajes recursivamente enumerables) Dado un len-
guaje L

un lenguaje y una m aquina de Turing M = (K, , , s), diremos


que la m aquina de Turing M acepta L si
1. para todo x L, entonces M(x) = si, y
2. para todo x / L, entonces M(x) = (computa indenidamente).
En este caso, se dice que L es un lenguaje recursivamente enumerable.
El siguiente ejemplo muestra una m aquina de Turing capaz de reconocer
el lenguaje de los palndromos. Aunque resulta un ejemplo sencillo, muestra
la potencia de las m aquinas de Turing frente a los aut omatas nitos
2
.
Ejemplo 89 (Palndromos) Consideramos M = (K, , , s) la m aquina
de Turing, donde:
:= 0, 1, , . es el alfabeto,
K := s, q
0
, q
1
, q

0
, q

1
, q es el conjunto de estados, siendo s es el estado
inicial, y
la funci on de transici on est a denida mediante la tabla
p K (p, ) p K (p, )
s 0 (q
0
, , ) q

0
0 (q, ., )
s 1 (q
1
, , ) q

0
1 (no, 1, )
s (s, , ) q

0
(si, , )
s . (si, ., ) q

1
0 (no, 0, )
q
0
0 (q
0
, 0, ) q

1
1 (q, ., )
q
0
1 (q
0
, 1, ) q

1
(si, , )
q
0
. (q

0
, ., ) q 0 (q, 0, )
q
1
0 (q
1
, 0, ) q 1 (q, 1, )
q
1
1 (q
1
, 1, ) q (s, , )
q
1
. (q

1
, ., )
2
La relaci on entre ambos tipos de dispositivos abstractos de computaci on se diluci-
dar a en los ejercicios del presente captulo
6.1. M

AQUINAS DE TURING 63
Resulta sencillo observar que la m aquina de Turing anterior acepta los
palndromos sobre el alfabeto 0, 1 y rechaza las restantes cadenas. En par-
ticular, el lenguaje de los palndromos es recursivo.
Adem as, es f acil ver que, para una entrada de longitud n, el n umero de
movimientos que realiza la m aquina est a acotado por (n+1)n en el caso peor.
En cuanto al c alculo de funciones mediante m aquinas de Turing, su for-
malizaci on se lleva a cabo en los terminos siguientes:
Denici on 90 (Calculo de funciones) Sea M = (K, , , s) una m aqui-
na de Turing y x, y

dos cadenas sobre el alfabeto . Diremos que la


m aquina de Turing calcula y a partir de x si
(s, , x)

M
(h, , y).
Dada una funci on f : D

, diremos que la m aquina de Turing M


calcula f si se verica:
1. D := x M : (s, , x)

M
(h, , y) para alg un y

, y
2. f(x) = y si y s olo si (s, , x)

M
(h, , y).
Un ejemplo sencillo de esta situaci on es el c alculo del sucesor de un n ume-
ro expresado en binario.
Ejemplo 91 (Sucesor) Consideramos M = (K, , , s) denida como si-
gue:
:= 0, 1, , . es el alfabeto,
K := s, si, no, h.q es el conjunto de estados, siendo s es el estado
inicial, y
la funci on de transici on est a denida mediante la tabla
p K (p, )
s 0 (q, 1, )
s 1 (s, 1, )
s . (h, 1, )
s (s, , )
q 0 (q, 0, )
q 1 (q, 1, )
q . (h, ., )
64 CAP

ITULO 6. M

AQUINAS DE TURING
Resulta sencillo observar que la m aquina de Turing anterior calcula el
sucesor de un n umero escrito en binario (suponemos los dgitos escritos en
orden inverso).
El n umero de pasos que realiza la m aquina, para una entrada de longitud
n, est a acotado por n + 1.
Por ultimo, notar que la funci on de transici on puede darse mediante gra-
fos, al igual que en el caso de los aut omatas. La unica salvedad al respecto,
viene dada por la necesidad de indicar la direcci on en la que se desplaza
la unidad de lectura. A continuaci on mostramos el grafo de la m aquina de
Turing anterior.
s
q
h
/
1/0
0/0
1/1
0/1
./1, ./.
Otro ejemplo sencillo es el c alculo del predecesor de un n umero.
Ejemplo 92 (Predecesor) Consideramos M = (K, , , s) denida como
sigue:
:= 0, 1, , . es el alfabeto,
K := s, si, no, h, q es el conjunto de estados, siendo s es el estado
inicial, y
la funci on de transici on est a denida mediante la tabla
p K (p, )
s 0 (s, 1, )
s 1 (q, 0, )
s . (no, 1, )
s (s, , )
q 0 (q, 0, )
q 1 (q, 1, )
q . (h, ., )
6.1. M

AQUINAS DE TURING 65
Resulta sencillo observar que la m aquina de Turing anterior calcula el
predecesor de un n umero escrito en binario siempre que este no sea nulo. Si
el n umero en cuesti on es cero, la m aquina para en el estado no

.
El n umero de pasos que realiza la m aquina, para una entrada de longitud
n, est a acotado por n + 1.
Finalmente, podemos interpretar la computaci on llevada a cabo por una
m aquina de Turing como la enumeraci on de cierto lenguaje, esto es, un sub-
conjunto de

.
Denici on 93 (Lenguaje Enumerable) Sea M = (K, , , s) una m a-
quina de Turing y L

un lenguaje. Diremos que el lenguaje L es enume-


rable si la m aquina de Turing M escribe en su cinta, de manera exhaustiva,
las cadenas de L separ andolas entre si mediante una marca.
Postponemos un ejemplo de m aquina de Turing del tipo anterior a n de
no complicar, m as de lo necesario, el discurso.
Visto lo visto, queda claro que describir completamente una m aquina de
Turing, indicando el alfabeto, el conjunto de estados y la funci on de transi-
ci on, es una tarea ardua e ingrata. Sin embargo, puede facilitarse teniendo en
cuenta una serie de tecnicas de programaci on. A continuaci on, desgranamos
algunas de ellas a lo largo de diversos ejemplos.
El siguiente ejemplo ilustra como emplear los estados de una m aquina,
que a un constituyendo un conjunto nito, pueden emplearse para almace-
nar informaci on sin m as que escribir el estado como un par en el que una
componente gestiona el control y la otra almacena la informaci on.
Ejemplo 94 (B usqueda de caracteres) Sea M = (K, , , s) la m aquina
de Turing denida como sigue:
:=
1
, . . . ,
n
, , . es el alfabeto,
K := s, si, no, hq

: , . es el conjunto de estados,
siendo s el estado inicial, y
la funci on de transici on est a denida mediante la tabla
p K (p, )
s ( , .) (q

, , )
s (s, , )
s . (no, ., )
q

( , .) ( , .) (q

, , )
q

( , .) (si, , )
q

( , .) . (no, ., )
66 CAP

ITULO 6. M

AQUINAS DE TURING
Resulta sencillo ver que la anterior m aquina de Turing acepta las cadenas
en las que el primer car acter de la entrada aparece al menos dos veces. Para
ello almacena en el estado el primer car acter sin m as que saltar a un estado
del tipo q

con , ..
Otro problema frecuente es la gesti on de la cinta. A continuaci on mostra-
mos como se puede generar espacios en blanco o eliminar caracteres.
Ejemplo 95 (Inserci on) Sea M = (K, , , s) la m aquina de Turing de-
nida como sigue:
:=
1
, . . . ,
n
, , . es el alfabeto,
K := s, si, no, hq

: , . es el conjunto de estados,
siendo s es el estado inicial, y
la funci on de transici on est a denida mediante la tabla
p K (p, )
s ( , .) (q

, ., )
s . (h, ., )
q

( , .) ( , .) (q

, , )
q

( , .) . (h, , )
Resulta claro que M lleva a cabo la tarea anunciada.
Ejemplo 96 (Eliminaci on) Sea M = (K, , , s) la m aquina de Turing
denida como sigue:
:=
1
, . . . ,
n
, , . es el alfabeto,
K := s, si, no, hq

: , . es el conjunto de estados,
siendo s es el estado inicial, y
la funci on de transici on est a denida mediante la tabla
p K (p, )
s ( .) (s, , )
s . (q

, ., )
q

( ) ( , .) (q

, , )
q

( ) (h, , )
Resulta claro que M lleva a cabo la tarea anunciada.
6.2. M

AQUINAS DE TURINGNODETERMINISTAS YCONM

ULTIPLES CINTAS67
6.2. Maquinas de Turing no deterministas y
con m ultiples cintas
En esta Secci on discutiremos dos generalizaciones de las m aquinas de
Turing: las m aquinas con varias multiples cintas y las no deterministas. Si
bien su denici on es m as general, veremos que el poder computacional de las
mismas no aumenta.
Comencemos por las m aquinas de Turing con multiples cintas.
Denici on 97 (Maquina de Turing con k cintas) Una m aquina de Tu-
ring con k cintas es una tupla M = (K, , , s) satisfaciendo:
1. K es un conjunto nito de estados, suponemos que el estado inicial s
pertenece a K,
2. es un conjunto nito de smbolos llamado alfabeto tal que K =
y contiene los smbolos especiales . y , llamados blanco y comienzo
de cinta respectivamente,
3. es una funci on, llamada de transici on, denida del conjunto K
k
en (K h, si, no) ( , , )
k
tal que para todo p, q
K,
1
, . . . ,
k
,

1
, . . . ,

k
y D
1
, . . . , D
k
, , tales que
(q,
1
, . . . ,
k
) = (p, (
1
, D
1
), . . . , (
k
, D
k
)), entonces para todo i N,
con 1 i k, tal que
i
= se verica que

i
= y D
i
=.
La denici on de conguraci on y paso de computaci on se denen de forma
an aloga al caso de las m aquinas de Turing cl asicas.
En ocasiones, de entre las cintas de una m aquina de Turing se distinguen
dos: la cinta de entrada y la de salida. La cinta de entrada se considera s olo
de lectura mientras que, la cinta de salida se considera s olo de escritura.
Finalmente, notar que la denici on de aceptaci on o rechazo en el caso de
m aquinas de Turing con m ultiples cintas es similar al de las m aquinas de
Turing cl asicas.
El siguiente ejemplo muestra como se simplica el reconocimiento del
lenguaje de los palndromos mediante una m aquina de Turing con dos cintas.
Ejemplo 98 (Palndromos (y II)) Consideramos M = (K, , , s) la m a-
quina de Turing, denida como sigue:
:= 0, 1, , . es el alfabeto,
K := s, q, q

es el conjunto de estados, s es el estado inicial, y


68 CAP

ITULO 6. M

AQUINAS DE TURING
la funci on de transici on est a denida mediante la tabla
p K
1

2
(p,
1
,
2
)
s 0 . (s, 0, , 0, )
s 1 . (s, 1, , 1, )
s (s, , , , )
s . . (q, ., , ., )
q 0 . (q, 0, , ., )
q 1 . (q, 1, , ., )
q . (q

, , , ., )
q

0 0 (q

, 0, , 0, )
q

1 1 (q

, 1, , 1, )
q

0 1 (no, 0, , 1, )
q

1 0 (no, 1, , 0, )
q

. (si, ., , , )
El n umero de movimientos que lleva a cabo la m aquina en una entrada de
tama no n est a acotado por 3n.
Vista la noci on de m aquinas de Turing con varias cintas, podemos dar,
de manera sencialla, un ejemplo de m aquina que enumera un lenguaje.
Ejemplo 99 (Enumeraci on de los n umeros naturales) Consideramos
la m aquina de Turing M = (K, , , s) denida como sigue:
:= 0, 1, , . es el alfabeto,
K := s, s

, r, c, c

es el conjunto de estados, s es el estado inicial, y


la funci on de transici on est a denida mediante la tabla
p K
1

2
(p,
1
,
2
)
s (s, , , , )
s (s

, 0, , 0, )
s

(r, #, , , )
r (r, , , , )
r (c, , , , )
c 0 (c

, 1, , 1, )
c 1 (c, 0, , 0, )
c . (s

, 1, , 1, )
c

0 (c

, 0, , 0, )
c

1 (c

, 1, , 1, )
c

. (s

, , , ., )
6.2. M

AQUINAS DE TURINGNODETERMINISTAS YCONM

ULTIPLES CINTAS69
La funci on de los estados es la siguiente: s se encarga de inicializar un
contador a cero (primer natural) y de escribirlo en la cinta de salida. s

se
encarga de escribir la marca de separaci on entre naturales. c y c

se encargan
de incrementar el contador copiando el nuevo natural en la cinta de salida.
Finalmente, r se encarga de llevar el cursor al comienzo de la segunda cinta
para incrementar posteriormente, empleando c y c

, el contador.
Proposici on 100 Todo lenguaje aceptado (respec. decidido) por una m aqui-
na de Turing con k cintas es aceptado (respec. decidido) por una m aquina de
Turing.
Posponemos la demostraci on de esta Proposici on a la Secci on 6.3, donde
se considerar an, adem as, aspectos relativos a la Teora de la Complejidad.
Veamos, por ultimo, las m aquinas de Turing no deterministas.
Denici on 101 (Maquina de Turing no determinista) Una m aqui-
na de Turing no determinista es una cuadrupla M = (K, , , s) tal que:
1. K es un conjunto nito de estados tal que s K,
2. es un conjunto nito de smbolos llamado alfabeto tal que K =
y contiene los smbolos especiales . y , llamados blanco y comienzo
de cinta respectivamente,
3. (K ) ((K h, si, no) , , ) es una rela-
ci on tal que para todo para todo q K, si
((q, ), (p, , D)) ,
se tiene que =, = y D =.
Tanto la noci on de conguraci on como la de computaci on de una m aquina
de Turing no determinista coinciden con las de una m aquina determinista. En
cuanto a la aceptaci on o el rechazo de entradas, estas son aceptadas si alguna
de las secuencias de pasos de computaci on llevan a un estado aceptador
(si), y son rechazada en caso contrario, esto es, ninguna de las secuencias
de computaci on llevan a un estado aceptador (no).
Ejemplo 102 (Palndromos (y III)) Sea M = (K, , , s) la m aquina de
Turing denida como sigue:
:= 0, 1, , . es el alfabeto,
K := s, q, q

es el conjunto de estados, s es el estado inicial, y


70 CAP

ITULO 6. M

AQUINAS DE TURING
la funci on de transici on est a denida mediante la tabla
p K
1

2
(p,
1
,
2
)
s 0 . (s, 0, , 0, )
s 1 . (s, 1, , 1, )
s 0 . (s

, 0, , ., )
s 1 . (s

, 1, , ., )
s 0 . (q, 0, , ., )
s 1 . (q, 1, , ., )
s (s, , , , )
s . . (si, ., , ., )
q

0 0 (q

, 0, , 0, )
q

1 1 (q

, 1, , 1, )
q

0 1 (no, 0, , 1, )
q

1 0 (no, 1, , 0, )
q

. (si, ., , , )
Observese que, tanto el n umero de movimientos como el espacio consumido
son menores que en el caso determinista.
Al igual que en casos anteriores, tenemos la equivalencia (en terminos de
aceptaci on o decisi on de lenguajes) con las m aquinas de Turing.
Proposici on 103 Todo lenguaje aceptado por una m aquina de Turing no
determinista es aceptado por una m aquina de Turing (determinista).
Postponemos la demostraci on de la Proposici on anterior a la Seccion 6.3.
6.3. Introducci on a la Tera de la Compleji-
dad
A lo largo de esta Secci on damos una breve introducci on a la Teora de
la Complejidad. Es precisamente en este modelo, de entre los que veremos a
lo largo del curso, donde m as di afano resulta este concepto.
6.3.1. Tiempo y espacio
Existen diversas medidas de complejidad aunque, en lo que sigue, s olo
consideraremos la complejidad en espacio y en tiempo.
Con respecto a la complejidad en tiempo, la denici on es la que sigue:
6.3. INTRODUCCI

ON A LA TER

IA DE LA COMPLEJIDAD 71
Denici on 104 (Complejidad en tiempo) Sea T : N N una funci on
y M = (K, , , s) una m aquina de Turing con k cintas. Diremos que la
m aquina de Turing opera en tiempo T(n) si, para cada entrada de talla n, la
m aquina de Turing realiza, en el peor caso, T(n) movimientos.
Dada una funci on T : N N denida sobre los naturales, denotaremos
por TIME(T(n)) el conjunto de los lenguajes decididos por m aquinas de
Turing deterministas en tiempo acotado por T(n), esto es
TIME(T(n)) := L

: L es decidido en tiempo T(n).


En lo que sigue, TIME(T(n)) recibe el nombre de clase de complejidad.
Si las m aquina de Turing son no deterministas, el conjunto de lenguajes
decididos por m aquinas de Turing no deterministas en tiempo acotado por
T(n), se denota mediante NTIME(T(n)).
De entre las clases de complejidad, dos resultan extremadamente popu-
lares: P y NP. Su denici on es la siguiente
3
:
P :=

kN
TIME(n
k
), y
NP :=

kN
NTIME(n
k
).
Estas dos clases de complejidad han dado lugar a una de las conjeturas
m as famosas de la inform atica te orica: la conjetura de Cook (vease [4]). Dicha
conjetura se enuncia como sigue:
Conjetura 105 (Cook) P ,= NP
Tras este enunciado sencillo, se esconde una cuesti on tremendamente com-
plicada. Tal es as, que el mecenas estadounidense Landon T. Clay, a traves
de su Clay Mathematics Institute, lo ha incluido en su celebrada lista de siete
problemas. Su resoluci on est a premiada con un mill on de dolares.
4
Las implicaciones pr acticas de dicha conjetura son tremendas. Por ejem-
plo, si fuera falsa (P = NP), sera sencillo construir una m aquina de Turing
que rompiera el sistema de cifrado RSA empleado en transacciones bancarias
o militares.
En lo tocante al espacio, la denici on es como sigue:
3
Postponemos la justicaci on de las mismas a la siguiente Secci on.
4
Los interesados pueden visitar la p agina web http://www.claymath.org/.
72 CAP

ITULO 6. M

AQUINAS DE TURING
Denici on 106 (Complejidad en espacio) Sea S : N N una funci on
y M = (K, , , s) una m aquina de Turing con k cintas (k > 2). Diremos
que la m aquina de Turing M opera en espacio acotado por S(n) si para
cada entrada de talla n la m aquina de Turing emplea, en el peor caso, S(n)
celdas. Asumimos t acitamente que de entre las cintas de M, una de ellas
est a destinada a la entrada (s olo lectura) y otra a la salida (s olo escritura),
por lo que no se contabilizan las celdas de la entrada en el c omputo de S(n).
Al igual que en el caso del tiempo, denotaremos por SPACE(T(n)) el
conjunto de los lenguajes decididos por una m aquina de Turing operando en
espacio S(n), en el peor caso, y por NSPACE(S(n)) su contrapartida no
determinista.
6.3.2. Resultados basicos
En esta Subsecci on demostramos cuatro resultados b asicos: el Lema de
aceleraci on lineal, el de compresi on de cinta, el de reducci on del n umero de
cintas y el de eliminaci on de indeterminismo.
Teorema 107 (Aceleraci on lineal) Sea L un lenguaje aceptado por una
m aquina de Turing en tiempo acotado por f(n), i.e. L TIME(f(n)). En-
tonces, para toda R tal que > 0, L es aceptado por una m aquina de
Turing en tiempo acotado por f(n) +n+2, i.e. L TIME(f(n) +n +2).
Demostraci on . Sea M = (K, , , s) una m aquina de Turing, con una unica
cinta, que acepte el lenguaje L en tiempo acotado por T(n). En lo que sigue,
construiremos una m aquina de Turing M

que acepta L en tiempo acotado


por f(n) +n + 2.
La idea de fondo es ampliar el alfabeto para codicar una mayor cantidad
de informaci on en un n umero menor de cintas y por tanto, necesitar menos
movimientos para tratar la misma informaci on. Para ello, consideramos el
alfabeto

:=
k
, donde k N es un n umero a determinar que depende
de .
La m aquina M

tiene dos cintas: en la primera se encuentra la entrada codi-


cada mediante el alfabeto , mientras que en la segunda se simular a a M
adecuadamente. De entrada, M

copia la cadena de entrada de su primera


cinta a la segunda, codic andola en terminos del alfabeto

, i.e. compri-
miendola. Hecho esto, simula los movimientos de M hasta que esta pare.
La simulaci on de los movimientos se lleva a cabo en bloques de k pasos
de la siguiente manera: supongamos que la unidad de control de M

lee un
cierto car acter = (
1
, . . . ,
k
). La m aquina M

lee los contenidos de las


6.3. INTRODUCCI

ON A LA TER

IA DE LA COMPLEJIDAD 73
celdas situadas a izquierda y derecha de (3 pasos de M

). Puesto que
en k pasos de M no abandonamos la regi on conformada por dichas celdas,
podemos comprimir los k movimientos que M en a los m as tres pasos de
M

(actualizando el contenido de y de las celdas adyacentes). Si en alg un


momento M llega a un estado de parada, M

para de manera acorde.


La posici on exacta, dentro de la secuencia , en la que se encuentra la unidad
de lectura/escritura de M puede almacenarse en el estado al igual que el
estado en el que se encuentra M.
Obviamente, el n umero de pasos de M

, en el peor caso, es de

6f(n)
k

.
Por lo tanto, tomando
k :=

6f(n)

se sigue el resultado.
La contrapartida, en lo referente al espacio, del anterior Lema es la si-
guiente:
Teorema 108 (Compresi on de cinta) Sea L un lenguaje aceptado por
una m aquina de Turing en espacio acotado por f(n), i.e. L SPACE(f(n)),
y sea R, con > 0. Entonces, L es aceptado por una m aquina de Turing
en espacio acotado por f(n), i.e. L SPACE(f(n)).
Demostraci on . La demostraci on de este Lema se sigue de la del anterior.
Ambos Lemas consideran unicamente el caso de m aquinas de Turing de-
terministas. Sin embargo, sigue siendo v alidos en el caso de m aquinas no
deterministas.
Otro resultado interesante es el siguiente Lema que demuestra que todo
lenguaje aceptado por una m aquina con varias cintas es aceptado por una
m aquina con una unica cinta.
Lema 109 (Reducci on de cintas) Sea L un lenguaje aceptado por una
m aquina de Turing con k cintas en tiempo acotado por T(n). Entonces, L
es un lenguaje aceptado por una m aquina de Turing con una unica cinta en
tiempo acotado por O(T(n)
2
)
5
.
5
Observese en la demostraci on que el espacio empleado no se ve alterado
74 CAP

ITULO 6. M

AQUINAS DE TURING
Demostraci on . Sea M = (K, , , s) una m aquina de Turing con k cintas
que acepta L en tiempo acotado por T(n). En lo que sigue, describiremos
una m aquina de Turing M

con una unica cinta que acepte el lenguaje L.


La idea es codicar el contenido de las k cintas de M en la unica cinta de M

sin m as que escribir su contenido uno a continuaci on del otro. Para ello, de-
nimos el alfabeto de M

como

:= :

, vartriangleright

.
Los smbolos subrayados se emplear an para indicar la posici on de las unida-
des de lectura/escritura, mientras que

se emplear an para indicar el


comienzo y el n de cada cinta.
Inicialmente, M

debe preparar el contenido de su cinta para llevar a cabo la


simulaci on de M. Para ello, inserta smbolos los smbolo

de manera
adecuada. Para simular un movimiento de M, la m aquina M

debe leer toda


su cinta buscando caracteres subrayados, i.e. los caracteres asociados a las
unidades de lectura/escritura de M). Dichos caracteres son almacenados en
los estados de M. La informaci on del estado de M tambien se almacena en los
estados de M

. Una vez recopilados los k caracteres subrayados, la m aquina


M

actualiza el contenido de su cinta de acuerdo a la funci on de transici on


de M, dicha funci on puede codicarse igualmente mediante los estado de
M

. Queda claro que si alguna de las unidades de lectura/escritura de M


sobreescriben alg un car acter, lo unico que tiene que hacer M

es actualizar
el car acter subrayado conveniente, mientras que si se desplaza dicha unidad,
lo unico que debe hacer M

es subrayar el correspondiente car acter.


Puesto que la m aquina M funciona en tiempo acotado por T(n), a lo sumo
escribe T(n) caracteres en cada una de sus cintas, i.e. kT(n) en total. Por
lo tanto, M

tiene que dar del orden de kT(N) pasos de computaci on para


simular un unico movimiento de M. De lo que se sigue que el n umero de
pasos que da M

para simular M es del orden de T(n)


2
.
Finalmente, el siguiente resultado muestra que cualquier computaci on
llevada a cabo por una m aquina no determinista puede simularse en una
determinista.
Lema 110 (Eliminaci on indeterminismo) Sea L un lenguaje aceptado
por una m aquina de Turing no determinista en tiempo acotado por T(n) y
sea c el grado de indeterminismo de M
6
. Entonces, L es aceptado por una
m aquina de Turing determinista en tiempo acotado por O(c
T
(n)).
Demostraci on . Sea M = (K, , , s) una m aquina de Turing no determi-
nista que decide L. Veamos como simular M mediante una m aquina deter-
minista M

con tres cintas. La funcionalidad de las cintas es la siguiente:


6
Se dene el grado de indeterminismo de una m aquina de Turing como el m aximo de
las posibles elecciones que podemos hacer de acuerdo a la relaci on
6.4. LA TESIS DE CHURCHTURING 75
En la primera cinta simplemente se almacena la entrada de la m aquina
M.
En la segunda cinta, M

enumera secuencias nitas de enteros acotados


por r (vease el Ejercicio 38), dichos secuencias de n umeros se corres-
ponden con las posibles elecciones que tenemos de acuerdo a la relaci on
. N otese que no todas se corresponden con secuencias admisibles de
computaciones puesto que no siempre tenemos r elecciones
Por ultimo, en la tercera cinta se lleva a cabo la simulaci on de M
de acuerdo a las elecciones dadas por la ultima secuencia de n umeros
generada en la segunda cinta.
El funcionamiento de M

resulta ya claro. En primer lugar copia la entrada


a la tercera cinta. Hecho esto, repite el siguiente proceso hasta nalizar la
simulaci on: genera en la segunda cinta una secuencia de elecciones y simula
en la tercera cinta dichos pasos hasta la nalizaci on de la secuencia de pasos
de computaci on asociados. La m aquina M

acepta si alguna de las secuencias


lleva a un estado aceptador en la simulaci on.
6.3.3. La conjetura de Cook
6.4. La Tesis de ChurchTuring
Aunque uno disponga de una noci on intuitiva de lo que es un algoritmo,
su denici on precisa exige rigor matem atico. En concreto, podemos asimilar
la noci on de algoritmo con la de m aquina de Turing. Notamos que dicha
identicaci on no debe resultar sorprendente pues, en la Secci on precedente,
hemos visto que las m aquinas RAM son equivalentes a las m aquinas de Tu-
ring y lo que uno puede llevar a cabo sobre una m aquina RAM es un buen
candidato para ser un algoritmo. Sin embargo, dicha asimilaci on encierra una
cierta arbitrariedad (quiz as existen otros modelos de computaci on te oricos u
otros modelos de computadoras a un por imaginar que sean capaces de llevar
acabo una mayor cantidad de tareas). Afortunadamente, todos los modelos
de computaci on estudiados hasta la fecha han resultado equivalentes al de
las m aquinas de Turing y todos los ordenadores concebidos por el hombre
equivalentes a estas. Dicha coincidencia se conoce como la Tesis de Church,
o ChurchTuring. Dicha tesis, que postula que cualquier modelo de compu-
taci on es equivalente a los anteriores, se encuentra sustentada en el hecho de
que, hasta la fecha, as ha sido.
76 CAP

ITULO 6. M

AQUINAS DE TURING
La formulaci on matem atica de la Tesis de ChurchTuring postula que
la noci on de funci on computable (algoritmo) puede identicarse con la de
funci on recursiva (m aquina de Turing). Obviamente, tal extremo no puede
demostrarse aunque, tal y como hemos dicho, se sustenta en que as ha sido
hasta la fecha.
A lo largo del curso veremos distintos modelos: las funciones recursivas
introducidas por S.C. Kleene (vease [9]), el calculus de A. Church ([3])
o los trabajos de E. Post (vease [13]). Para cada uno de ellos veremos su
equivalencia con la noci on de m aquina de Turing sustentando de esta manera
la tesis de Church.
6.5. Ejercicios
Ejercicio 35 Demostrar que todo lenguaje L

nito es recursivo, re-


cursivamente enumerable y enumerable.
Ejercicio 36 Demostrar las siguientes armaciones:
1. Todo aut omata nito (determinista, no determinista o no determinis-
ta con transiciones vacas) puede simularse mediante una m aquina de
Turing.
2. Todo aut omata a pila puede simularse mediante una m aquina de Turing
con una unica cinta.
3. Toda m aquina de Turing puede simularse mediante un aut omata con,
unicamente, dos pilas.
Ejercicio 37 Describir m aquinas de Turing que lleven a cabo las siguientes
tareas:
Dados dos n umeros naturales m, n N, calcula su suma m+n.
Dados dos n umeros enteros m, n N, decide si m n.
Dados dos n umeros naturales m, n N, calcula su resta mn siempre
y cuando m n. En caso contrario, i.e. m < n, la m aquina rechaza la
entrada.
Dados dos n umeros naturales m, n N, calcula su producto m n.
Dados dos n umeros naturales m, n N, calcula el cociente y el resto
de dividir m por n siempre y cuando m ,= 0. En caso contrario, i.e. si
m = 0, la m aquina rechaza la entrada.
6.5. EJERCICIOS 77
En cualquiera de los casos anteriores se supondr a que los numeros vienen
dados mediante su codicaci on binaria y est an escritos de izquierda a derecha,
i.e. las unidades en primer lugar, luego las decenas,... y as sucesivamente.
Ejercicio 38 Demostrar las siguientes armaciones:
1. Dado un natural k N no nulo, el conjunto N
k
es enumerable.
2. El lenguaje
nN
N
n
es enumerable
3. Dado un natural k N no nulo y un alfabeto nito , el conjunto (

)
k
es enumerable.
Ejercicio 39 Demostrar que el lenguaje de los subconjuntos nitos de cade-
nas sobre un alfabeto nito es enumerable.
Ejercicio 40 Demostrar que para todo lenguaje enumerable innito existe
una m aquina de Turing M tal que calcula una biyecci on : N L, i.e.
tomando como entrada un n umero natural produce como salida una cadena
de L de manera biyectiva.
Ejercicio 41 Sea L

un lenguaje. Demostrar la equivalencia de las


siguientes armaciones:
L es recursivamente enumerable,
L es enumerable, y

L
es computable, donde
L
es la funci on caracterstica de L.
Ejercicio 42 Analizar, tanto en tiempo como en espacio la complejidad de
las m aquinas desarrolladas en los ejercicios anteriores.
Ejercicio 43 Describir m aquinas RAM que lleven a cabo las tareas propues-
tas en el Ejercicio 37.
78 CAP

ITULO 6. M

AQUINAS DE TURING
Captulo 7
Gramaticas sensibles al
contexto y generales
A lo largo de esta Captulo trataremos las gram aticas generales y las
sensibles al contexto. Las primeras describen los lenguajes aceptables va
m aquinas de Turing mientras que las segundas describen los lenguajes re-
conocidos por los aut omatas linealmente acotados (m aquinas de Turing no
deterministas con espacio linealmente acotado por la longitud de la entrada),
llamados sensibles al contexto.
M as precisamente, tras una breve introducci on de las deniciones b asi-
cas (Secci on 7.1), mostramos que todo lenguaje recursivamente enumerable
est a descrito por una gram atica general y recprocamente, que toda gram ati-
ca general describe un lenguaje recursivamente enumerable. Por lo tanto,
las propiedades de las gram aticas generales se siguen de las de los lenguajes
recursivamente enumerable. Hecho esto, centramos nuestra atenci on en las
gram aticas sensibles al contexto (Secci on 7.2), demostrando los siguientes
hechos: toda gram atica sensible al contexto describe un lenguaje reconoci-
ble mediante un aut omata linealmente acotado (y por ende, recursivo), todo
aut omata linealmente acotado acepta un lenguaje describible mediante una
gram atica al contexto y, nalmente, que existen lenguajes recursivos que no
son sensible al contexto.
Finalizamos el Captulo con el Teorema de Jerarqua de N. Chomsky que
detalla la jerarqua de los lenguajes (o de las gram aticas si se preere).
La principal referencia a lo largo del presente Captulo ser a [10], obra en la
que hace hincapie tanto en las gram aticas como en los lenguajes, contrastando
con la aproximaci on por nosotros seguida, hasta el momento, que incide en
las m aquinas.
79
80 GR

AMATICAS
7.1. Gramaticas no restringidas o generales
7.1.1. Deniciones basicas
Comencemos, sin m as pre ambulos, dando la denici on de gram atica ge-
neral (comparar con las deniciones de las gram aticas regulares o indepen-
dientes del contexto).
Denici on 111 (Gramatica general o no restringida) Un gram atica es
una tupla G = (N, T, P, S) donde
N es un conjunto nito llamado alfabeto de caracteres no terminales,
T es un conjunto nito, llamado de caracteres terminales, cuya inter-
secci on con el de no terminales es vaca, i.e. N T = ,
P (N T)
+
(N T)

es una relaci on nita, a los elementos


(u, v) P se les conoce como producciones y se les denota mediante
u v, y
S N es el smbolo de inicio.
Siguiendo con el paralelismo existente con el caso de las gram aticas re-
gulares o independientes del contexto, podemos denir la derivaci on en los
siguientes terminos.
Denici on 112 (Derivaci on directa) Sea G = (N, T, P, S) una gram ati-
ca general, x, y (N T)

dos cadenas y p = (u v) P una producci on.


Se dice que xvy deriva directamente de xuy de acuerdo a p y se denota me-
diante
xuy xvy [p].
Nota 113 Las notaciones
n
(para n 0),

,
+
hacen alusi on la apli-
caci on de n derivaciones directas, un n umero indeterminado de ellas (quiz as
nulo) y un n umero indeterminado de ellas (al menos una) respectivamente.
Teniedo en cuenta el concepto de derivaci on, podemos denir el lenguaje
generado por una gram atica general de la siguiente manera.
Denici on 114 (Lenguaje generado por una gramatica) Sea G = (N, T, P, S)
una gram atica general. Se dene el lenguaje generado por G como el conjunto
de todas las cadenas w T

que se derivan del car acter inicial S, i.e.


L(G) = w T

: S

w.
Obviamente, cualquier gram atica vista hasta la fecha es, en particular,
una gram atica general.
7.1. GRAM

ATICAS NO RESTRINGIDAS O GENERALES 81


7.1.2. Gramaticas generales y maquinas de Turing
A lo largo de la presente Secci on mostraremos que los lenguajes acepta-
dos por m aquinas de Turing son, precisamente, los descritos por gram aticas
generales. Para ello, demostramos en primer lugar que, dada una gram atica
general existe una m aquina que acepta el lenguaje por ella descrito.
Teorema 115 Sea G = (N, T, P, S) una gram atica general. Entonces, existe
una m aquina de Turing M = (K, , , s) tal que L(G) = L(M).
Demostraci on . Supongamos dada un gram atica G = (N, T, P, S) y cons-
truyamos una m aquina de Turing M = (K, , , s) que acepte el lenguaje
L(G).
Hacemos notar que w T

es una cadena del lenguaje L(G) si y s olo si


S

w esto es, si podemos obtenerla por derivaci on del car acter inicial
S. Por lo tanto, para construir una m aquina que acepte el lenguaje L(G)
basta generar de manera ordenada las distintas cadenas del lenguaje L(G) y
compararlas con w. Los detalles se dan a continuaci on.
Denamos de entrada el alfabeto sobre el que trabaja la m aquina de Turing
M como la uni on conjuntista tanto de los caracteres terminales y los no
terminales como un conjunto de caracteres especiales propios a la operativa
de la m aquina de Turing , ., ; , , i.e.
= N T , ., ; .
Adem as y para simplicar la exposici on supondremos que la m aquina de
Turing tiene 4 cintas. La utilidad de las mismas es como sigue:
En la primera cinta se almacena la entrada de la m aquina de Turing,
i.e. la cadena w.
En la segunda cinta se almacenan las producciones de la gram atica, i.e.
se almacena una codicaci on de las mismas mediante los caracteres de
(emplearemos el car acter especial para representar las producciones
de forma natural y el car acter # para separar las descripciones de las
mismas).
La tercera cinta almacenar a todas las cadenas que se derivan del ca-
r acter inicial S tras un cierto n umero de pasos. Dichas cadenas estar an
separadas mediante el car acter de separaci on ;. Adem as, las cadenas
obtenidas en n (n N) derivaciones se separaran de las obtenidas en
n + 1 derivaciones mediante la marca ##.
82 GR

AMATICAS
La cuarta cinta est a destinada a obtener las cadenas obtenidas en n
derivaciones a partir de las cadenas obtenidas en n 1 derivaciones
almacenadas en la tercera cinta y de las producciones almacenadas en
la segunda.
En una primera instancia, la m aquina escribe en la segunda cinta la codi-
caci on de las producciones de la gram atica. De ello se encargan un conjunto
nito de estados en los que se encuentra almacenada dicha informaci on. He-
cho esto, escribe en la tercera cinta el car acter de inicio S (interpretado como
la cadena que se obtiene tras ninguna derivaci on) seguido de los correspon-
dientes ##. Tras esta iniciaci on, la m aquina genera de manera ordenada
todas las derivaciones y comprueba si entre ellas se encuentra la cadena w.
La generaci on de las derivaciones se lleva a cabo de manera iterativa. Con el
n de describir el proceso, supongamos que la m aquina ha construido todas
las cadena que se generan en n derivaciones a partir del car acter inicial S,
que estas est an almacenadas en la tercera cinta y que los ultimos caracteres
de dicha cinta son ##. La m aquina itera como sigue:
Sit ua la unidad de control de la tercera cinta tras el anterior ##, de
esta forma la unidad de control queda al comienzo de las cadenas obte-
nidas en n derivaciones. Borra el contenido de la cuarta cinta sin m as
que sobrescribir caracteres . (blancos) y sit ua la unidad de control de
la segunda cinta (en la que se almacenan las producciones) al comienzo
de la misma.
Recorre la segunda cinta considerando una a una las distintas produc-
ciones. Para cada producci on u v P, recorre las cadenas obtenidas
en n iteraciones buscando la subcadena u. Cada vez que encuentra di-
cha subcadena, escribe en la cuarta cinta el resultado de aplicar dicha
producci on a la cadena en cuesti on.
Comprueba si alguna de las cadenas coincide con w. Si es el caso ter-
mina su ejecuci on aceptando w. En caso contrario, copia el contenido
de la cuarta cinta al nal de la tercera y vuelve a iterar.
Obviamente, la m aquina de Turing para si y s olo si w L(G), por lo que
acepta dicho lenguaje.
Finalmente, para concluir la Secci on, demostramos el siguiente Teorema
que muestra que todo lenguaje aceptado por una m aquina de Turing puede
describirse mediane una gram atica general; demostrando con ello lo anuncia-
do al comienzo de la Secci on.
7.1. GRAM

ATICAS NO RESTRINGIDAS O GENERALES 83


Teorema 116 Sea M = (K, , , s) una m aquina de Turing. Entonces, exis-
te una gram atica general G = (N, T, P, S) tal que L(M) = L(G).
Demostraci on . Supongamos dada una m aquina de Turing M = (K, , , s),
construyamos G = (N, T, P, S) una gram atica general que tenga por lenguaje
el aceptado por M.
Denimos, en primer lugar:
el conjunto de los caracteres terminales como
T := ,
el conjunto de los caracteres no terminales como
N :=

) : ,

K S, A,
donde S y A son nuevos smbolos.
En cuanto al conjunto de las producciones P, lo deniremos de manera que
cada subconjunto de producciones se encargue de simular una parte de la
m aquina de Turing.
(Inicializaci on) Con el n de simular la m aquina de Turing M me-
diante la gram atica general G, consideramos de entrada las siguientes
producciones:
P := P S S..), S A..), A s,
Para cada consideramos las siguientes producciones:
P := P A A).
Tras aplicar una n umero nito de veces las producciones hasta aqu con-
sideradas, obtenemos cadenas de la forma:

1
) . . .
m

m
)..)
(n)
,
donde
1
, . . . ,
m
y ..)
(n)
denota la cadena formada por n ..).
Por lo tanto, dichas producciones se encargan de generar la entrada
de la m aquina de Turing M as como los blancos necesarios para el
funcionamiento de la misma.
84 GR

AMATICAS
(Simulaci on de movimiento de tipo ) Supongamos que (, q) =
(

, q

, ) con q

/ si, no, h. Para simular un paso de la m aqui-


na de Turing mediante un conjunto de producciones de G, consideramos
P := P q) q

)
donde (puede ser un car acter blanco .).
(Simulaci on de movimiento de tipo ) Supongamos que (, q) =
(

, q

, ) con q

/ si, no, h, entonces


P := P q)

)q

donde (puede ser un car acter blanco .).


(Simulaci on de movimiento de tipo ) Supongamos que (, q) =
(

, q

, ) con q

/ si, no, h, entonces


P := P )q) q

)
donde , , .
(Finalizaci on) Para cada estado de la forma f si, no, h y
cada par ) consideramos
P := P )f ff, f) ff, f .
Obviamente, as denido, el conjunto de producciones de la gram atica G es
nito. Veamos que L(G) coincide con L(M). Para ello supongamos dado una
entrada de la m aquina M, digamos
1
, . . . ,
m

, aceptado por la m aquina


de Turing. En este caso, la computaci on se lleva a cabo en un n umero nito
de pasos y por ende, en un conjunto nito de celdas adicionales, digamos n.
Puesto que la cadena
)
1

1
) . . .
m

m
)..)
(n)
se deriva directamente de S. Aplicando las producciones correspondientes a
las computaciones llegamos, tras un n umero nito de pasos y m as de m+n
caracteres, a un estado aceptador. Por lo tanto, aplicando las producciones
de nalizaci on queda que la cadena
1
. . .
m
se deriva directamente de S.
En caso contrario, si la cadena
1
. . .
m
no puede aceptarse en espacio a lo
m as m +n, obtendramos una cadena con caracteres no terminales.
Resumiendo, la gram atica anterior genera el mismo lenguaje que la m aquina
de Turing M.
7.2. GRAM

ATICAS SENSIBLES AL CONTEXTO 85


7.2. Gramaticas sensibles al contexto
A lo largo de la presente Secci on consideraremos las gram aticas sensibles
al contexto. Dichas gram aticas, tipo particular de las generales, describen
lenguajes aceptado por aut omatas linealmente acotados (m aquinas de Turing
no deterministas tales que el espacio que emplean es lineal en el tama no de
la entrada). Nuestro objetivo ser a mostrar que denen una clase intermedia
de lenguajes, situada entre los independientes del contexto y los recursivos.
7.2.1. Gramaticas sensibles al contexto y aut omatas
linealmente acotados
Comenzamos esta Subsecci on deniendo el concepto de gram atica sensible
al contexto.
Denici on 117 (Gramatica sensible al contexto) Una gram atica gene-
ral G = (N, T, P, S) se dice sensible al contexto si para toda producci on
u v P se verica que [u[ [v[ (donde [ [ denota la longitud de una
cadena).
Al igual que en ocasiones anteriores, podemos asociar a toda gram atica
sensible al contexto un lenguaje, llamado independiente del contexto.
Denici on 118 (Lenguaje independiente del contexto)
1
Un lenguaje
L T

se dice sensible al contexto si existe una gram atica sensible al contexto


G tal que L = L(G).
Las m aquinas encargadas de reconocer tales lenguajes, tal y como se apun-
taba en la introducci on, son los aut omatas linealmente acotados; denidos a
continuaci on.
Denici on 119 (Aut omata linealmente acotado) Un aut omata lineal-
mente acotado es una tupla M = (K, , , s) tal que:
1. K es un conjunto nito de estados tal que s K,
2. es un conjunto nito de smbolos llamado alfabeto tal que K =
y contiene los smbolos especiales , y (llamados blanco, comienzo
y n de cinta respectivamente).
1
Recordamos que un lenguaje L T

se dice independiente del contexto si existe una


gram atica independiente del contexto G tal que L = L(G)
86 GR

AMATICAS
3. (K)((Kh, si, no), , ) es una relaci on,
llamada de transici on, tal que
para todo p, q K tales que (q, , p, , D) , entonces = y
D =, y
para todo p, q K y tales que (q, , p, , D) , entonces
= y D , .
Teniendo en cuenta las nociones de conguraci on de una m aquina de
Turing y paso de computaci on, podemos denir la din amica de los aut omatas
linealmente acotados (basta observar que son un tipo particular de m aquinas
de Turing). Teniendo en cuenta estas, podemos denir el lenguaje aceptado
por una aut omata linealmente acotado en los siguientes terminos.
Denici on 120 (Lenguaje aceptado por un aut omata l. a.) Un len-
guaje L

es aceptado por un aut omata M, si es reconocido por dicho


aut omata, i.e. si M acepta las cadenas de L y rechaza las restantes.
Dichos lenguajes coinciden con los lenguajes sensibles al contexto previa-
mente denidos. Para mostrar tal extremo, veamos en primer lugar que todo
lenguaje generado por una gram atica sensible al contexto es decidido por un
aut omata linealmente acotado.
Teorema 121 Para toda gram atica sensible al contexto G existe una aut oma-
ta linealmente acotado M tal que L(G) = L(M).
Demostraci on . Sea G = (N, T, P, S) una gram atica sensible al contex-
to, construiremos un aut omata linealmente acotado con tres pistas tal que
L(G) = L(M).
Sea p el n umero de producciones de P y supongamos que toda cadena de T

con longitud a lo m as p es aceptada o rechazada de manera autom atica, i.e.


que las cadenas aceptadas o rechazadas se codican de alguna manera en los
estados de M. Por lo tanto, podemos suponer que la entrada de M es una
cadena de longitud mayor que p.
Inicialmente las pistas del aut omata linealmente acotado contienen la siguien-
te informaci on:
la primera pista contiene la cadena de entrada w T

(suponemos que
la longitud de w es mayor que p),
la segunda cinta contiene una codicaci on de las producciones de P,
para basta ampliar el alfabeto , y por ultimo
7.2. GRAM

ATICAS SENSIBLES AL CONTEXTO 87


la tercera cinta contiene el car acter S.
A partir de esta conguraci on inicial el aut omata repite los siguientes cuatro
pasos hasta que naliza su ejecuci on:
selecciona de manera no determinista una posici on, digamos i, de la
cadena de la tercera pista,
selecciona de manera no determinista una producci on a aplicar de entre
las codicadas en la segunda pista, digamos u v P
si [w[ [x[ + ([v[ [u[) y u es una subcadena de x con comienzo en el
car acter i, entonces M deriva de x aplicando la producci on u v. En
caso contrario, rechaza w y para su ejecuci on.
Si la tercera pista contiene w acepta, en caso contrario repite el presente
proceso.
Resulta claro que el aut omata anterior acepta el lenguaje generado por la
gram atica G.
En cuanto al recproco del anterior Teorema, basta observar que la de-
mostraci on del Teorema 116 se aplica en el caso concreto de los aut omatas
linealmente acotados. M as precisamente, se tiene el siguiente resultado.
Teorema 122 Para todo aut omata linealmente acotado M existe una gra-
m atica sensible al contexto G tal que L(M) = L(G).
Demostraci on . Supongamos dado un aut omata linealmente acotado M =
(K, , , s). Para construir una gram atica G = (N, T, P, S) sensible al con-
texto que tenga por lenguaje el aceptado por M se procede como en la de-
mostraci on del Teorema 116 con la salvedad de que tanto los estados como
la marca de n de cinta debe codicarse sobre el conjunto de smbolos no
terminales puesto que la gram atica debe ser sensible al contexto.
Por lo tanto, se tiene la equivalencia entre aut omatas linealmente acotados
y gram aticas sensibles al contexto.
7.2.2. Gramaticas sensibles al contexto y lenguajes re-
cursivos
Para concluir la Secci on, resta demostrar que los lenguajes sensibles al
contexto conforman una clase situada entre los recursivos y los independientes
88 GR

AMATICAS
del contexto. Resulta obvio que todo lenguaje independiente del contexto es
sensible al contexto (basta observar las deniciones de las correspondientes
gram aticas). Por lo tanto, a lo largo de esta Subsecci on nos centraremos en
demostrar el contenido estricto de los sensibles al contexto en los recursivos.
Como primer paso, veamos que todo lenguaje sensible al contexto es re-
cursivo.
Proposici on 123 Todo lenguaje sensible al contexto es recursivo.
Demostraci on . Para demostrar la armaci on tenemos que demostrar que
dado un lenguaje sensible al contexto, existe una m aquina de Turing que lo
decide.
Sea pues L un lenguaje sensible al contexto, i.e. generado por una gram atica
sensible al contexto G = (N, T, P, S). Construyamos una m aquina de Turing
no determinista con tres cintas que lo decida.
La utilidad de las cintas de la m aquina de Turing es la siguiente:
La primera cinta almacena la entrada w T

. Puesto que la gram atica


es sensible al contexto, podemos suponer directamente que la longitud
de la cadena de entrada es como poco 1 (en caso contrario la entrada
sera la cadena vaca que no pertenece al lenguaje generado por una
gram atica sensible al contexto).
La segunda contiene una codicaci on de las producciones de P. Al
igual que en el Teorema 121, basta aumentar el alfabeto sobre el que
trabaja la m aquina de Turing.
La tercera cinta contiene, inicialmente, el car acter S.
Tomando como punto de partida las conguraci on anterior, la m aquina opera
de la siguiente manera:
Supongamos que el contenido de la tercera pista viene dado por la
cadena x. La m aquina selecciona, de manera no determinista, una
posici on, digamos i, de la cadena de la tercera pista.
Selecciona de manera no determinista una producci on almacenada en
la segunda cinta, digamos p : u v P.
Si la cadena x satisface x = yuy

y la subcadena u comienza en la
posici on i, escribe en la tercera cinta, suponiendo que el contenido de
la tercera cinta es de la forma wuw

., wvw

.
7.2. GRAM

ATICAS SENSIBLES AL CONTEXTO 89


Si la tercera cinta contiene wvw

y [wvw

[ [w[ la m aquina para re-


chazando la entrada.
Finalmente, veamos que el contenido es estricto, i.e. que existe un lenguaje
recursivo que no es sensible al contexto.
Proposici on 124 Existe un lenguaje recursivo que no es sensible al contex-
to.
Demostraci on . Sea ^ = A
0
, A
1
, . . . un subconjunto numerable innito.
En lo que sigue, supondremos que toda gram atica G = (N, T, P, S) satisface
N ^ y S = A
0
(esto no supone restricci on alguna pues basta renombrar
los elementos de N). Mediante un argumento similar al de la enumeraci on
de las m aquinas de Turing, podemos enumerar las gram aticas sensibles al
contexto, digamos
G
1
, G
2
, G
3
, . . .
y las cadenas sobre el alfabeto 0, 1, digamos
x
1
, x
2
, x
3
, . . . .
Notamos que a cada gram atica G
i
podemos asociarla una m aquina de Turing
que decide el lenguaje L(G
i
).
Consideramos el lenguaje
L
G
:= x
i
: x
i
L(G
i
) y
y su complementario L
c
G
. En lo que resta de demostraci on veremos que L
c
G
es recursivo pero no sensible al contexto.
Sea M la m aquina de Turing M que tomando como entrada w

procede
de la siguiente manera
Genera de manera ordenada los elementos de la sucesi on x
1
, x
2
, . . . hasta
encontrar el i N tal que w = x
i
.
A partir de dicho i, genera el c odigo de la m aquina de Turing asociada
a la gram atica sensible al contexto G
i
, digamos M
i
.
Simula a la m aquina M
i
en la entrada w, aceptando si esta rechaza y
viceversa.
90 GR

AMATICAS
Obviamente, la m aquina de Turing anterior acepta el lenguaje L
c
G
, por lo que
este es recursivo. Gracias al argumento diagonal de Cantor podemos concluir
que L
c
G
no es sensible al contexto lo que concluye la demostraci on.
De los enunciados anteriores se sigue el siguiente resultado.
Teorema 125 La familia de los lenguajes recursivos contiene estrictamente
a la familia de los lenguajes sensibles al contexto.
Demostraci on . Obvia a partir de los resultados anteriores.
7.3. La jerarqua de Chomsky
Para concluir el Captulo, damos el que se conoce como Teorema de la
Jerarqua de Chomsky. Dicho Teorema establece las relaciones de contenido
entre los diversos tipos de lenguajes que se han introducido a lo largo de
los presentes apuntes. La demostraci on del mismo se sigue de los distintos
contenidos que hemos ido viendo.
Teorema 126 (La jerarqua de Chomsky) Se tienen las siguientes ar-
maciones:
1. La familia de los lenguajes regulares est a estrictamente contenida en la
familia de los lenguajes independientes del contexto.
2. La familia de los lenguajes independientes del contexto (que no contie-
nen la palabra vaca) esta estrictamente contenida en la familia de los
lenguajes sensibles al contexto.
3. La familia de los lenguajes sensibles al contexto esta estrictamente con-
tenida en la familia de los lenguajes recursivamente enumerables.
7.4. Ejercicios
Ejercicio 44 Para cada uno de los siguientes lenguajes dar una gram atica
general que los genere:
a
(i)b
(i)
: i 0,
a
(i)b
(2i)
: i 0,
a
(i)b
(i)
c
(i)
: i 0,
7.4. EJERCICIOS 91
a
(i)b
(i
2
)
: i 0, y
a
(i)b
(2
i
)
: i 0.
Ejercicio 45 Sean G
1
= (N, T, P
1
, S) y G
2
= (N, T, P
2
, S) gram aticas ge-
nerales. Demostrar las siguientes armaciones:
Concatenaci on: Existe una gram atica general G tal que
L(G) = L(G
1
)L(G
2
), i.e. tal que el lenguaje que genera se obtiene
mediante concatenaci on de cadenas de L(G
1
) con cadenas de L(G
2
).
Intersecci on: Existe una gram atica general G tal que el lenguaje que
genera es L(G
1
) L(G
2
).
Uni on: Existe una gram atica general G tal que el lenguaje que genera
es L(G
1
) L(G
2
).
Ejercicio 46 (Formal normal de Kuroda) Una gram atica general
G = (N, T, P, S) se dice en forma normal de Kuroda si toda producci on
p P es de alguno de los siguientes tipos
AB DC, donde A, B, C, D N,
A BC, donde A, B, C N,
A a, donde A N y a T, y por ultimo
A , donde A N y denota la palabra vaca.
Demostrar que para toda gram atica general G existe una gram atica G

en
forma normal de Kuroda tal que L(G) = L(G

).
Ejercicio 47 (Formal normal de Pentonnen) Una gram atica general
G = (N, T, P, S) se dice en forma normal de Pentonnen si toda producci on
p P es de alguno de los siguientes tipos
AB AC, donde A, B, C N,
A BC, donde A, B, C N,
A a, donde A N y a T, y por ultimo
A , donde A N y denota la palabra vaca.
Demostrar que para toda gram atica general G existe una gram atica G

en
forma normal de Pentonnen tal que L(G) = L(G

).
Ejercicio 48 Sea G = (N, T, P, S) una gram atica general dada por su for-
ma normal de Pentonnen y sea w L(G). Cu al es el n umero mnimo de
derivaciones directas necesarias para derivar w de S.?
92 GR

AMATICAS
Captulo 8
Computabilidad
El objetivo fundamental del presente Captulo es mostrar los limites de
los actuales computadores. Teniendo en cuenta la equivalencia entre m aqui-
nas RAM (computadores) y m aquinas de Turing, dicha cuesti on se reduce a
estudiar los limites computacionales de las m aquinas de Turing, i.e. a estudiar
las propiedades de los lenguajes recursivos y los recursivamente enumerables.
El esquema general que seguiremos es el siguiente:
En la Secci on 8.1 estudiaremos algunas propiedades de los lenguajes, tanto
recursivos como recursivamente enumerables, frente a operaciones conjuntis-
tas (uni on, intersecci on, complementario,...).
1
.
En la Secci on 8.2 se construye un lenguaje que no es recursivamente
enumerable: el lenguaje diagonal. La no recursividad enumerables de dicho
lenguaje implica la existencia de lenguajes que no son aceptados por m aquina
de Turing alguna. En terminos coloquiales: existen problemas que no admiten
soluci on algortmica. Esencialmente el problema reside en la existencia de m as
lenguajes (problemas) que m aquinas de Turing (algoritmos).
En la Secci on 8.3 se construye un lenguaje recursivamente enumerable no
recursivo: el lenguaje universal. Para ello, se detalla la construcci on de una
m aquina de Turing capaz de simular a cualquier otra: la m aquina de Turing
universal. Dicha m aquina, acepta un lenguaje recursivamente enumerable pe-
ro no recursivo: el lenguaje universal. El problema de fondo es que la m aquina
de Turing universal no puede determinar si la simulaci on que esta llevando
a cabo concluir a o no. Como conclusi on de la no recursividad del lenguaje
universal se sigue que dentro de los lenguajes aceptados por m aquinas de
Turing podemos discernir dos categoras: los recursivos y los recursivamen-
te enumerables (pero no recursivos). En terminos coloquiales: dentro de los
1
Dichas operaciones se ver a complementadas, en los ejercicios, con algunas m as propias
de lenguajes como la concatenaci on.
93
94 CAP

ITULO 8. COMPUTABILIDAD
problemas resolubles algortmicamente, podemos distinguir aquellos que ad-
miten exclusivamente una respuesta parcial (recursivamente enumerables) y
aquellos que admiten una respuesta total (recursivos).
Continuando con el estudio de la recursividad y la recursividad enume-
rable, en la Secci on 8 estudiaremos el Teorema de Rice. El objetivo de dicho
teorema es mostrar que, las propiedades no triviales de los lenguajes no pue-
den determinarse algortmicamente.
En la Secci on B.1 presentamos el problema de la correspondencia de Post
como un nuevo ejemplo de lenguaje no recursivo. El interes de dicho pro-
blema, a parte del hist orico, est a en que permite demostrar f acilmente la
intratabilidad de problemas relacionados con gram aticas, como por ejemplo:
la ambiguedad gram aticas independientes del contexto.
El enfoque seguido es el de las obras [7] o [8]. Se invita a la lectura de
dichos textos para informaci on complementaria, ejemplos y ejercicios.
8.1. Propiedades basicas
Comencemos esta Secci on estudiando el comportamiento de los lengua-
jes recursivos con respecto a operaciones conjuntistas b asicas como la uni on,
intersecci on y complemento.
Teorema 127 El complementario, la uni on nita y la intersecci on nita de
lenguajes recursivos es lenguajes recursiva.
Demostraci on . Veamos de entrada que el complementario de un lenguaje
recursivo, digamos L

, es un lenguaje recursivo.
Sea M una m aquina determinista, con una cinta
2
, que decida L. Construya-
mos una m aquina N que decida L
c
. Para ello, simplemente modicaremos la
funci on de transici on de M de manera que N acepte cuando esta rechaza y
viceversa. Est a claro que N, as construida, acepta w

s y s olo si w / L,
i.e. si w L
c
.
La demostraci on relativa a la intersecci on se demuestra por inducci on en el
n umero de lenguajes a intersecar. Supongamos dados dos lenguajes recursivos
L
1
, L
2

y sean M
1
y M
2
dos m aquinas que los decidan. Construyamos
una m aquina M, con dos cintas, que decida L
1
L
2
. De entrada, M copia su
entrada en la segunda cinta. Hecho esto, simula de manera simult anea a M
1
en la primera cinta y a M
2
en la segunda. Si las dos simulaciones terminan
2
En vista del Lema de eliminaci on de indeterminismo y del Lema de reducci on de
cintas, podemos hacer tal suposici on sin restricci on de generalidad.
8.1. PROPIEDADES B

ASICAS 95
aceptando, M acepta; en caso contrario, M rechaza. Obviamente M

decide
L
1
L
2
.
Supongamos probada la armaci on para familias de k lenguajes recursivos,
veamos que es cierta para familias de k +1 elementos. Sean L
1
, . . . , L
k+1
una
familia de tales lenguajes. La armaci on se sigue de la asociatividad de la
intersecci on de conjuntos, i.e. observando
L
1
. . . L
k+1
= L
1
(L
2
. . . L
k+1
),
y de que (L
2
. . . L
k+1
) es un lenguaje recursivo al ser intersecci on de k
lenguajes (hip otesis inductiva).
En cuanto a la uni on, basta observar que, aplicando las leyes de Morgan, se
tiene
L
1
. . . L
k+1
= (L
c
1
L
c
2
. . . L
c
k+1
)
c
.
En lo tocante a la uni on e intersecci on nita de lenguajes recursivamente
enumerables, la situaci on es completamente an aloga a la del caso recursivo y
se recoge en el siguiente Teorema.
Teorema 128 La uni on e intersecci on nita de lenguajes recursivamente
enumerables es recursivamente enumerable.
Demostraci on . Veamos en primer lugar que la intersecci on de una familia -
nita de lenguajes recursivamente enumerables es recursivamente enumerables.
Para ello, al igual que en el caso de los lenguajes recursivos, procederemos
por inducci on. Supongamos dados dos lenguajes recursivamente enumera-
ble L
1
, L
2

y sean M
1
y M
2
las respectivas m aquinas que los aceptan.
Construimos M igual que en el caso de los lenguajes recursivos. Obviamante,
w

es aceptada por M si y s olo si ambas simulaciones paran aceptando.


Por lo tanto, el lenguaje aceptado por M resulta ser L
1
L
2
. El caso general
se sigue igual que en el caso de intersecciones de lenguajes recursivos.
En cuanto a la uni on, procedemos igualmente por inducci on. Supongamos
dados dos lenguajes recursivamente enumerables L
1
, L
2

y sean M
1
y
M
2
las respectivas m aquinas que los acepten. Construimos una m aquina M,
con dos cintas, de la siguiente manera: de entrada, M copia su entrada de
la primera cinta a la segunda; hecho esto, comienza a simula en paralelo a
M
1
sobre la primera cinta y M
2
sobre la segunda. M acepta en el momento
en que alguna de las dos simulaciones acepte
3
. Queda claro por tanto que M
3
N otese que en caso contrario, M permanece computando indenidamente.
96 CAP

ITULO 8. COMPUTABILIDAD
acepta L
1
L
2
. El caso general se sigue igual que los anteriores: observando
la asociatividad de la uni on y aplicando la hip otesis inductiva.
Desafortunadamente el complementario de un lenguaje recursivamente
enumerable no es necesariamente recursivamente enumerable. De hecho, se
tiene el siguiente resultado.
Teorema 129 Un lenguaje tal que el y su complementario son recursiva-
mente enumerables es recursivo.
Demostraci on . Sea L

un lenguaje recursivamente enumerable tal


que su complementario tambien es recursivamente enumerable. Sean M
1
y
M
2
las m aquinas que reconocen L y L
c
respectivamente. Construimos una
m aquina M, con dos cintas, como sigue: de entrada, M copia su entrada de
la primera a la segunda cinta; hecho esto, simula en paralelo la m aquina M
1
en la primera cinta y M
2
en la segunda. Si la simulaci on de la m aquina M
1
acepta, M acepta la entrada. Si por el contrario acepta la simulaci on de M
2
,
M rechaza la entrada
4
. Por lo tanto, M decide L, i.e. L es recursivo.
Dado que, tal como veremos en la Secci on 8.3, existen lenguajes recursi-
vamente enumerables que no son recursivos, deducimos que existen lenguajes
recursivamente enumerables cuyo complementario no es recursivamente enu-
merable.
8.2. Lenguajes no recursivamente enumera-
bles
El objetivo de esta Secci on es demostrar la existencia de lenguajes que no
son recursivamente enumerables. La interpretaci on de este hecho, en terminos
m as mundanos, es la existencia de m as problemas (lenguajes) que algoritmos
(m aquinas de Turing). En consecuencia, existen lenguajes que no son recono-
cibles mediante m aquinas de Turing, i.e. no admiten ni siquiera una respues-
ta parcial al problema del reconocimiento de los mismos. Equivalentemente,
existen problemas para los que no hay algoritmos.
4
Observese que ambas m aquinas (M
1
y M
2
) no pueden aceptar la misma entrada pues
aceptan lenguajes complementarios.
8.2. LENGUAJES NO RECURSIVAMENTE ENUMERABLES 97
8.2.1. Codicaci on de maquinas de Turing
De acuerdo a los Ejercicios 38 y 40, podemos asignar a cada cadena
w

un n umero natural
5
. El objetivo de esta Subsecci on es demostrar un
resultado similar para el caso de m aquinas de Turing, i.e. podemos asignar a
cada natural una m aquina de Turing (de manera unica).
Para representar de tal manera una m aquina de Turing debemos, en pri-
mera instancia, codicar sobre alfabeto la descripci on de los elementos b asi-
cos de la misma: funci on de transici on, estado inicial,... En lo que sigue,
supondremos que las m aquinas est an denidas sobre un cierto alfabeto nito
.
Codicaremos las m aquinas de Turing sobre el alfabeto mediante ca-
denas en sobre el alfabeto
:= , ), q, [, , , .
T acitamente asumimos que , ), , [, , , / puesto que, si no es el caso,
podemos emplear smbolos alternativos.
Supongamos dada una m aquina de Turing M = (K, , , q
1
) tal que
K = q
1
, . . . , q
n
y
=
1
, . . . ,
m
.
Codicaremos cada q
i
, con 1 i n, mediante la cadena q
i
(tantas repe-
ticiones del smbolo q como indique el subndice). Observese que el estado
inicial se corresponde con la cadena q (basta renombrar los estados para que
as sea).
En lo relativo a la funci on de transici on, debemos codicar informaciones
del tipo:
(q
i
,
j
) = (q
k
,
l
, d),
donde q
i
, q
k
K,
j
,
l
y d , , . Dicha informaci on se codi-
car a, simplemente, mediante la cadena:
q
i
[
j
[q
k
[
l
[d)

.
Por lo tanto, para codicar , basta concatenar las codicaciones asociadas
a cada uno de los posibles pares (q
i
,
j
), donde 1 i n y 1 j m, i.e
se codica mediante la cadena

11
[ . . . [
n1
[ . . . [
1m
[ . . . [
nm
),
5
A un es m as, se sigue que existe una m aquina de Turing que lleva a cabo dicha asig-
naci on
98 CAP

ITULO 8. COMPUTABILIDAD
donde cada
ij
, con 1 i n y 1 j m, codica la informaci on relativa
a (q
i
,
j
).
Obviamente, asuminedo esta codicaci on, se sigue el siguiente resultado:
Teorema 130 Existe una m aquina de Turing que decide si una cadena sobre
dene una m aquina de Turing o no, i.e. el lenguaje
M) : M es una m aquina de Turing
es recursivamente enumerable (de hecho recursivo).
Por lo tanto, aplicando el Ejercicio 40, se sigue que existe una m aquina de
Turing que numera el conjunto de las descripciones de m aquinas de Turing,
i.e. que tomando como entrada un n umero natural, produce como salida la
descripci on de una m aquina de Turing (de manera biyectiva).
En resumen, jado un alfabeto , podemos hablar de la iesima cadena
sobre el alfabeto o de la iesima m aquina de Turing y por ende, identicar
(o codicarlas si se preere) cada una de ellas con un natural.
8.2.2. El lenguaje diagonal
En esta Subsecci on presentamos el lenguaje diagonal, primer ejemplo de
lenguaje no recursivamente enumerable que veremos. La interpretaci on de
la no recursividad enumerable de L
d
es clara: no existe un algoritmo capaz
de reconocer L
d
(siquiera de manera parcial), i.e. existen problemas que no
admiten soluci on algortmica.
La denici on precisade tal lenguaje es la siguiente:
Denici on 131 (El lenguaje diagonal) Sea un alfabeto nito, asumien-
do la enumeraci on de cadenas y m aquinas de Turing de la Subsecci on ante-
rior, denimos el lenguaje diagonal como
L
d
:= w
i

: w
i
/ L(M
i
).
La demostraci on formal de la no recursividad enumerable de L
d
puede
verse en el siguiente Teorema.
Teorema 132 El lenguaje diagonal L
d
no es recursivamente enumerable.
Demostraci on . Por reducci on al absurdo, supongamos que el lenguaje L
d
es recursivamente enumerable. Por lo tanto, existe una m aquina de Turing
M tal que acepta el lenguaje L
d
. Puesto que M es una m aquina sobre el
alfabeto , de acuerdo a la Subsecci on anterior, existe un n umero natural
i N tal que M es la iesima m aquina de Turing. Considerando la iesima
cadena sobre el alfabeto , w
i

, caben dos posibilidades:


8.3. LENGUAJES NO RECURSIVOS 99
Si w
i
L
d
, se sigue, por la denici on de L
d
, que w
i
/ L(M
i
). Puesto
que L
d
= L(M
i
), llegamos a una contradicci on.
Si w
i
/ L
d
, se tiene, de nuevo por la denici on de L
d
, que w
i
L(M
i
).
Al ser L
d
= L(M
i
), llegamos de nuevo a un absurdo.
Por lo tanto, en ambos casos llegamos a una contradicci on y por ende, L
d
no
puede ser recursivamente enumerable.
En resumen, el lenguaje diagonal no es un lenguaje no recursivamente
enumerable, i.e. no admite respuesta algortmica. En lo que sigue veremos
otros ejemplos de problemas no recursivamente enumerables.
8.3. Lenguajes no recursivos
En la Secci on anterior nuestro objetivo fue demostrar la existencia de
lenguajes no recursivamente enumerables. En esta Secci on, mostraremos que
existen lenguajes recursivamente enumerables que no son recursivos, i.e. pro-
blemas qtales que cualquier algoritmo que para ellos se construya, s olo podr a dar
respuesta en una parte de las entradas, en las otras permanecer a computando
indenidamente.
8.3.1. La maquina de Turing universal
En esta Secci on construimos la conocida como m aquina universal de Tu-
ring. Grosso modo, esta toma como entrada la descripci on de una m aquina
y de una entrada, simula el comportamiento de esta sobre dicha entrada. La
existencia de una tal m aquina universal garantiza (varios a nos antes de la
construcci on de los primeros computadores) la existencia (al menos te orica)
de dispositivos capaces de ejecutar cualquier algoritmo, toscamente hablando
demuestra la existencia de los computadores.
Para construir la m aquina de Turing, necesitaremos la codicaci on de
m aquinas de Turing introducida en la Secci on anterior. Adem as, simularemos
m aquinas de Turing deterministas con una unica cinta; esto no supone una
restricci on de generalidad puesto que toda m aquina no determinista o con
varias cintas es equivalente a una determinista con una unica cinta (veanse
los Lemas 109 y 110). Los detalles se recogen en el siguiente enunciado.
Teorema 133 (Existencia de la Maquina Universal) Existe una m aqui-
na de Turing M
u
, sobre el alfabeto
:= ,
100 CAP

ITULO 8. COMPUTABILIDAD
6
, tal que tomando como entrada la descripci on de una m aquina de Turing M
y una cadena w

, simula a M en la entrada w, aceptando si M acepta


a w.
Demostraci on . Denimos M
u
como una m aquina de Turing sobre con
tres cintas. La utilidad de las cintas es la siguiente:
En la primera cinta M
u
almacena su entrada, digamos M, w).
En la segunda se almacena una representaci on de la cinta de M y de la
posici on de la unidad de lectura de M. Los caracteres subrayados de
se emplean para indicar la posici on de la unidad de lectura/escritura
de M, mientras que se usa para simular el smbolo de inicio de cinta
de M.
Finalmente, en la tercera cinta se almacena el estado en el que se en-
cuentra M de acuerdo a la siguiente codicaci on: se almacenan tantos
caracteres q como correspondan al estado de M.
M
u
funciona como sigue:
De entrada, M
u
escribe en la segunda cinta la cadena w.
Posteriormente, repite el siguiente proceso:
lee el car acter en la segunda cinta el car acter subrayado (que indica
la posici on de la unidad de lectura/escritura de M),
lee el estado en el que se encontrara M, i.e. el contenido de la
tercera cinta,
con esta informaci on, busca (en la primera cinta) el movimiento a
realizar y lo lleva a cabo.
Si la simulaci on de M para, la m aquina M
u
para aceptando.
Notamos que el lenguaje aceptado por la m aquina de Turing universal
puede denirse explcita de la siguiente manera:
Denici on 134 (El lenguaje universal) Sea un alfabeto nito, deni-
mos el lenguaje universal (sobre ) como el conjunto de los pares descripci on
de m aquina de Turing y entrada tales que dicha m aquina para en una tal en-
trada, i.e.
L
u
:= M, w) : M(w) = si

.
6
es el alfabeto introducido en la Secci on anterior.
8.3. LENGUAJES NO RECURSIVOS 101
En la siguiente Subsecci on omstraremos la no recursividad de este len-
guaje.
En resumen, existe una m aquina de Turing capaz de simular a cualquier
otra m aquina de Turing. En particular, dada una cadena sobre un alfabeto,
la m aquina de Turing Universal puede determinar si la m aquina parar a en
una tal cadena.
8.3.2. No recursividad del lenguaje universal
El objetivo fundemantel de esta Subsecci on es, tal y como se anunci o,
mostrar la no recursividad del lenguaje universal, i.e. demostrar que no existe
un algoritmo que decida dicho lenguaje.
Teorema 135 El lenguaje universal L
u
no es recursivo.
Demostraci on . Sea w

una cadena cualquiera, podemos construir una


m aquina de Turing que tomando como entrada w devuelva como salida el
natural i N que le corresponde. Empleando la m aquina que enumera las
m aquinas de Turing, podemos producir, apartir de i, obtener una descrip-
ci on de M
i
. En resumen, existe una m aquina de Turing N que tomando como
entrada una cadena w

, produce la cadena sobre el alfabeto (introdu-


cido en la Secci on anterior) M, w), donde M es la descripci on de la iesima
cadena (w en esta caso).
Si la cadena w pertenece al lenguaje diagonal, i.e. w L
d
, se sigue que
N(w) = M, w) L
c
u
, puesto que la m aquina M no para en la entrada w,
i.e. w / L(M).
Si por el contrario tenemos w / L
d
, se sigue que N(w) = M, w) L
u
,
puesto que en ese caso M para en la entrada w, i.e. w L(M).
Si L
u
fuera recursivo, L
c
u
sera recursivamente enumerable, i.e. existira una
m aquina de Turing que aceptara L
c
u
. Componiendo la acci on de N con una
tal m aquina de Turing, tendramos que L
d
es recursivamente enumerable,
lo cual es absurdo. Por lo tanto, L
c
u
no es recursivamente enumerable y por
ende, L
u
no es recursivo.
Tal y comom se ver a en lo que sigue, L
u
no es el unico lenguaje recur-
sivamente enumerable no recursivo. Sin embargo, constituye un importante
ejemplo y servir a para demostrar la no recursividad de otros lenguajes. Es
por ello un prototipo de esta categora de lenguajes.
102 CAP

ITULO 8. COMPUTABILIDAD
8.4. Reducciones
En la demostraci on del Teorema 135, se demostr o la no recursividad de L
u
a partir de una reducci on de L
d
a L
c
u
. La tecnica all empleada no es particular
y est a Secci on est a destinada a generalizarla. Comencemos deniendo lo que
se entiende por reducci on.
Denici on 136 (Reducci on) Sean L
1
, L
2

dos lenguajes denidos so-


bre un cierto alfabeto . Diremos que L
1
es reducible a L
2
(o se reduce a L
2
)
si existe una m aquina de Turing que transforma cadenas de L
1
en cadenas
de L
2
y cadenas de L
c
1
en cadenas de L
c
2
.
Ejemplo 137 (Reducci on de L
u
a L
ne
) Sean L
u
, L
ne

los lenguajes
L
u
:= M, w) : M acepta w
L
ne
:= M) : L(M) ,= .
Veamos com reducir el lenguaje L
u
al lenguaje L
ne
. Para ello, dado una
cadena M, w), codicando una m aquina de Turing M y una cierta cadena
w

, denimos la m aquina de Turing M

de la siguiente manera:
Dada una cadena x

, la m aquina M

procede como sigue: de entrada


simula a M en la entrada w, si M acepta w, M

acepta x.
Obviamente se tiene que
L(M

) =

si M no acepta w

si M acepta w
Luego la transformaci on que a cada M, w) asocia la m aquina M

as cons-
truida es un reducci on de L
u
a L
ne
.
Teniendo en cuenta lo anterior, estamos en condiciones de generalizar la
tecnica empleada en la demostraci on del Teorema 135.
Teorema 138 Sean L
1
, L
2

dos lenguajes sobre tales que exista una


reducci on de L
1
a L
2
. Entonces,
1. si L
1
no es decidible (no es recursivo), L
2
no es decidible, y
2. si L
1
no es recursivamente enumerable, L
2
no es recursivamente enu-
merable.
8.5. TEOREMA DE RICE 103
Demostraci on . Sea M la m aquina de Turing que da la reducci on del len-
guaje L
1
al lenguaje L
2
.
Supongamos que L
1
no es decidible, i.e. recursivo. Si L
2
fuera decidible,
existira una m aquina M
2
que lo decidira, digamos M
2
. Entonces, la compo-
sici on de la reducci on dada por M con la m aquina de Turing M
2
, decidira
el lenguaje L
1
. Por lo tanto, L
2
no es decidible.
An alogamente, supongamos que L
1
no es recursivamente enumerable. Si L
2
fuera recursivamente enumerable, existira una m aquina M
2
que le aceptara,
digamos M
2
. Entonces, la composici on de la reducci on dada por M con la
m aquina de Turing M
2
aceptara el lenguaje L
1
. Por lo tanto, L
2
no es re-
cursivamente enumerable.
Siguiendo con el ejemplo anterior.
Ejemplo 139 (Reducci on de L
u
a L
ne
, continuaci on) Siguiendo con
el Ejemplo 137, basta aplicar el Teorema precedente para concluir que L
ne
no
es recursivo (puesto que L
u
no es recursivo).
8.5. Teorema de Rice y propiedades de los len-
guajes recursivamente enumerables
En lo que sigue, denotaremos por L al conjunto de todos los lenguajes
recursivamente enumerables, i.e.
L := L

: M t.q. M acepta L.
Interesandonos en los subconjuntos de L, introducimos el concepto de
propiedad de los lenguajes recursivamente enumerable.
Denici on 140 (Propiedad) Llamaremos propiedad de los lenguajes re-
cursivamente enumerables a todo subconjunto P L. Adem as, diremos que
una propiedad P es trivial si es el subconjunto vaco o el total, i.e. si P =
o P = L.
Ejemplos de propiedades del lenguajes recursivamente enumerables son:
ser recursivo, ser independiente del contexto,...
Puesto que a cada lenguaje recursivamente enumerable podemos asociarle
la descripci on de una m aquina de Turing que lo acepte, podemos las propie-
dades como lenguajes. M as concretamente.
104 CAP

ITULO 8. COMPUTABILIDAD
Denici on 141 (Lenguaje asociado a una propiedad) Dada un propie-
dad P, denimos el lenguaje asociado a la propiedad P, denotado por L
P
,
como el conjunto de las descripciones de m aquinas de Turing que aceptan
lenguajes de P, i.e.
L
P
:= M : L(M) P
Desafortunadamente, dichos lenguajes (salvo para propiedades triviales)
no son recursivos, tal y como demuestra el siguiente Teorema.
Teorema 142 (Teorema de Rice) Toda propiedad no trivial de los len-
guajes recursivamente enumerables es indecidible (equivalentemente, toda pro-
piedad de los lenguajes recursivamente enumerables decidible es trivial).
Demostraci on . Supongamos que / P (si no es as, basta tomar su com-
plementario P
c
). Puesto que P es no trivial, existe un lenguaje L P. Sea
M
L
la m aquina de Turing que acepta L.
Supongamos que L
P
es decidible. Entonces existe una m aquina M
P
que de-
cide L
P
. En lo que sigue construiremos una reducci on del lenguaje universal
L
u
a L
P
empleando M
L
.
Dada M, w), la codicaci on de una m aquina de Turing M y de una cadena
w

, construimos la m aquina M

como sigue: para una cierta entrada


x , la m aquina M

simula a M para la entrada w. Si M acepta w, M

simula M
L
en la entrada x, aceptando si esta lo hace.
Obviamente se tiene lo siguiente:
L(M

) =

L si M acepta w
si M no acepta w
Por lo tanto, si M, w) L
u
se sigue que M

L
P
. En caso contrario, si
M, w) / L
u
, se verica que M

/ L
P
(basta observar que / P).
Aplicando el Apartado 2 del Teorema 138 se sigue que L
P
no es recursivo,
i.e. decidible.
La situaci on, en el caso de las propiedades recursivamente enumerables,
resulta m as compleja y ser a estudiada a continuaci on. M as concretamente
veremos que una propiedad P es recursivamente enumerable (i.e. L
P
es re-
cursivamente enumerable) si y s olo satisface las siguientes condiciones:
R1 Si L P y L

L, para alg un lenguaje recursivamente enumerable L

,
entonces L

P.
R2 Si L es un lenguaje innito de P, existe un subconjunto nito de L en
P, y
8.5. TEOREMA DE RICE 105
R3 El conjunto de los lenguajes nitos de P es enumerable, i.e. existe una
m aquina de Turing que enumera el conjunto de los lenguajes nitos de
P.
Para ello, demostraremos previamente una serie de lemas tecnicos.
Lema 143 Si P no satisface R1, entonces L
P
no es recursivamente enu-
merable.
Demostraci on . Para demostrar el Lema reduciremos el lenguajes L
c
u
al
lenguaje L
P
(n otese que el lenguaje L
c
u
no es recursivamente enumerable y
el resultado se seguira del Teorema 138).
Por hip otesis, existen lenguajes recursivamente enumerables L
1
L
2

tales que L
2
P y L
1
/ P (emplearemos L
1
y L
2
en la construcci on de la
reducci on).
La reducci on toma como entrada un par M, w), describiendo una m aquina
de Turing y una entrada, y produce como salida la descripci on de una cierta
m aquina de Turing M

. La m aquina M

funciona como sigue: en una entrada


x

, realiza en paralelo las siguientes tareas:


1. Simula a la m aquina M
1
en la entrada x.
2. Simula a la m aquina M en la entrada w, y si dicha simulaci on termina,
a M
2
en la entrada x.
La m aquina M

, as construida, satisface que


L(M

) =

L
2
si M acepta w,
L
1
si M no acepta w,
Por lo tanto, L(M

) pertenece a L
P
si y s olo si M no acepta w. Aplicando el
Teorema 138 se concluye el resultado.
Lema 144 Si existe un lenguaje innito L P tal que todo subconjunto
innito no pertenece a P, i.e. no satisface R2, entonces L
P
no es recursiva-
mente enumerable.
Demostraci on . Al igual que en la demostraci on del Lema anterior, reduci-
remos el lenguajes L
c
u
al lenguaje L
P
.
Por hip otesis, existe un lenguaje innito L
1
P tal que cualquier subcon-
junto innito no pertenece a P (emplearemos L
1
en la construcci on de la
reducci on). En lo que sigue, sea

M una m aquina de Turing que acepte L.
106 CAP

ITULO 8. COMPUTABILIDAD
La reducci on toma como entrada un par M, w), describiendo una m aquina
de Turing y una entrada, y produce como salida la descripci on de una cierta
m aquina de Turing M

. La m aquina M

, dada una entrada x

, comienza
simulando a la m aquina

M en x. Si el resultado de la simulaci on es positivo,
i.e.

M acepta x, simula a M en la entrada w durante [x[ movimientos. Si M
no acepta a w tras [x[ movimientos, M

acepta la entrada x.
Si M acepta w tras exactamente j movimientos, tenemos que
L(M

) = x L : [x[ < j,
por lo que L(M

) / P. Por el contrario, si M no acepta w, se verica que


L(M

) = L P. Aplicando el Teorema 138 se sigue el resultado.


Lema 145 Si L
P
es recursivamente enumerable, entonces el conjunto de los
lenguajes nitos de P es enumerable, i.e. satisface R3.
Demostraci on . Obviamente existe una m aquina de Turing que enumera el
conjunto el conjunto de los pares ordenados (i, j), con i, j N, i.e. N N.
Suponiendo que =
1
, . . . ,
m
, podemos codicar cada
i
mediante la
cadena 10
(i)
. Por lo que podemos codicar los subconjuntos nitos de

mediante cadenas de ceros y unos, empleando la cadena 11 como separador


entre palabras. Dado un n umero i N codicando un subconjunto nito,
podemos escribir una m aquina de Turing que acepta el lenguaje nito por el
codicado.
Por hip otesis, L
P
es recursivamente enumerable. Por lo tanto, existe una
m aquina M que enumera las cadenas de L
P
. Para demostrar el Lema, em-
plearemos M en la construcci on de una m aquina que enumere los lenguajes
nitos de P.
La m aquina que enumera los lenguajes nitos de P repite los siguiente pasos:
1. Genera un par ordenado (i, j) N N,
2. Si el natural i codica un lenguaje nito, construye la codicaci on de
la m aquina que reconoce el lenguaje determinado por i, digamos M
i
.
3. Simula el comportamiento de M durante j pasos, si dicha simulaci on
produce el c odigo de la m aquina M
i
, este se escribe en la cinta corres-
pondiente seguido de un car acter de separaci on.
4. En cualquier caso, se repite el proceso anterior.
8.5. TEOREMA DE RICE 107
Obviamente, la m aquina anterior enumera los lenguajes nitos de L
P
con lo
que concluye la demostraci on del resultado.
Tras esta serie de Lemas estamos en disposici on de demostrar el siguiente
Teorema.
Teorema 146 L
P
es recursivamente enumerable si y s olo si
1. Si L P y L

L, para alg un lenguaje recursivo L

, entonces L

P.
2. Si L es un lenguaje innito de P, existe un subconjunto nito de L en
P, y
3. El conjunto de los lenguajes nitos de P es enumerable, i.e. existe una
m aquina de Turing que enumera el conjunto de los lenguajes nitos de
P.
Demostraci on . Tras los Lemas anteriores resta probar que, si se verican
las condiciones anteriores, entonces L
P
es recursivamente enumerable. Para
ello, construiremos explcitamente la m aquina que lo acepta. Dicha m aquina
lleva a cabo las siguientes etapas:
1. Genera un par (i, j) N N.
2. Simula durante i pasos a la m aquina enumeradora de los lenguajes
nitos de P, la existencia de dicha m aquina se ha visto en el Lema 145.
3. Si tras i, se ha generado un subconjunto nito completo, se simula la
m aquina M durante j pasos en cada una de las cadenas del subconjunto
nito. Si no se ha generado un subconjunto nito completo se vuelve
al primer paso.
4. Si la m aquina M acepta en j pasos todas las cadenas del subconjunto
nito, se acepta M. En caso contrario se vuelve al primer paso.
Veamos que el lenguaje aceptado por la anterior m aquina de Turing es preci-
samente L
P
. Supongamos que L P y que M es una m aquina de Turing que
acepta L. Entonces, gracias a la condici on 2, exista un lenguaje nito L

P
tal que L

L. Si i es el n umero de pasos que le lleva a la m aquina enume-


radora de lenguajes nitos completar la escritura de L

, y j es el n umero de
pasos que le lleva a la m aquina M aceptar las cadenas de L

, concluimos que
la m aquina anterior aceptar a M tras generar el par (i, j).
Recprocamente, supongamos que la anterior acepta una cierta m aquina M
a partir de un par (i, j). Por lo tanto, existe un lenguaje nito L

de L(M),
108 CAP

ITULO 8. COMPUTABILIDAD
generado tras a lo m as i pasos de la m aquina enumeradora de lenguajes
nitos, cuyas cadenas son aceptadas por M en, a lo m as, j pasos. Por lo
tanto, L

P y L

L(M). De lo que se sigue, gracias a la Hip otesis 1, que


M L
P
.
En resumen, ll Teorema de Rice implica que son indecidibles todos los pro-
blemas no triviales relacionados con los lenguajes aceptados por una m aquina
de Turing, como por ejemplo:
Decidir si el lenguaje aceptado por una m aquina es el vaco o no.
Decidir si el lenguaje aceptado por una m aquina es nito o no.
Decidir si el lenguaje aceptado por una m aquina es recursivo, indepen-
diente el contexto,...
Obviamente lo anterior no implica que cualquier cuesti on sobre m aqui-
nas de Turing es indecidible. Por ejemplo, es decidible si una m aquina efec-
tuar a un desplazamiento a la derecha o no.
8.6. Ejercicios
Ejercicio 49 Dada una cadena w = w
1
. . . w
n

, se dene w
R

como
w
R
= w
n
. . . w
1
.
Dado un lenguaje L

, se dene L
R
como
L
R
:= w

: v

tal que v
R
= w.
Demostrar que dado un lenguaje recursivamente enumerable L

, L
R
es
recursivamente enumerable.
Ejercicio 50 Sean y dos alfabetos nitos, y sea h :

un homo-
morsmo. Dada una cadena cualquiera w = w
1
. . . w
n

, se dene h(w)
mediante la expresi on:
h(w) := h(w
1
) . . . h(w
n
).
Obviamente, dado un lenguaje L

, se dene h(L) como


h(L) := w

: v

tal que h(v) = w.


Demostrar que, siendo L un lenguaje recursivamente enumerable, h(L) es re-
cursivamente enumerable. Recprocamente, dado un lenguaje recursivamente
enumerableL

, demostrar que h
1
(L

) es recursivamente enumerable.
8.6. EJERCICIOS 109
Ejercicio 51 Sean L
1
, . . .
n
una familia nita de lenguajes recursivamente
enumerables satisfaciendo:
dados i ,= j, con 1 i, j n, se tiene L
i
L
j
= , y

n
i=1
L
i
=

.
Demostrar que todo L
i
, para 1 i n, es recursivo.
Ejercicio 52 Demostrar que la uni on enumerable de lenguajes recursiva-
mente enumerables es recursivamente enumerable. Demostrar que esto no
ocurre si la uni on no es enumerable.
Ejercicio 53 Construir un ejemplo que muestre que la intersecci on innita
de lenguajes recursivamente enumerables no tiene por que ser recursivamente
enumerable.
Ejercicio 54 Demostrar que las siguientes propiedades de lenguajes recur-
sivamente enumerables son recursivamente enumerables:
L ,= .
Fijada una cadena w

, w L.
Fijado un natural k N, L contiene al menos k cadenas.
L L
u
,= .
Ejercicio 55 Demostrar que las siguientes propiedades de lenguajes recur-
sivamente enumerables no son recursivamente enumerables:
L = .
Existe un w

tal que L = w.
Fijado un natural k N, L contiene exactamente k cadenas.
L L
u
,= .
Ejercicio 56 Sea L el lenguaje formado por cadenas de la forma (M, M

, k),
donde M y M

son c odigos de maquinas de Turing y k es un entero, tales que


L(M)L(M

) tiene al menos k cadenas. Demostrar que L es recursivamente


enumerables pero no es recursivo.
Ejercicio 57 Demostrar que son decidibles los siguientes conjuntos:
110 CAP

ITULO 8. COMPUTABILIDAD
El conjunto de las descripciones de m aquinas de Turing que, tomando
como entrada la cadena vaca, escriben un smbolo no blanco en alg un
momento.
El conjunto de c odigos de una m aquina de Turing que nunca desplazan
su unidad de control a la izquierda.
El conjunto de pares (M, w) tales que la m aquina de Turing, al tomar
como entrada w, nunca lee una casilla de la cinta m as de una vez.
Ejercicio 58 Demostrar que no son recursivamente enumerables los siguien-
tes conjuntos:
(M, w) tales que M(w) =,
(M
1
, M
2
) tales que L
1
L
2
= , y
(M
1
, M
2
, M
3
) tales que L
1
= L
2
L
3
.
Ejercicio 59 Indicar si son recursivos, recursivamente enumerables o no
recursivamente enumerables los siguientes conjuntos:
M : M para en cualquier entrada, y
M : M no para en ninguna entrada.
Captulo 9
Funciones recursivas parciales
El objetivo fundamental del presente Captulo es determinar las funciones
computables mediante m aquinas de Turing.
Para ello, veremos de entrada algunos tipos sencillos de funciones que
pueden computarse empleando m aquinas de Turing (funciones iniciales) y
con posterioridad, veremos como pueden combinarse para obtener funciones
m as complejas. De esta manera, determinamos ciertas clases de funciones
computables mediante m aquinas de Turing (funciones recursivas primitivas,
funciones recursivas y funciones recursivas parciales). Hecho esto, mostrare-
mos que cualquier funci on computable mediante una m aquina de Turing cae
en alguna de estas clases.
El lector interesado en el tema puede consultar [1, Captulo 4], [11] o [2]
para un tratamiento m as detallado del asunto.
9.1. Funciones computables
A lo largo de esta Secci on veremos algunas funciones computables b asi-
cas y como estas pueden combinarse (efectivamente) para obtener nuevas
funciones.
En lo que sigue, nos centraremos exclusivamente en funciones denidas
sobre los naturales. Los motivos para ello son por un lado hist oricos: se
remontan a los trabajos de S.C. Kleene (vease [9] por ejemplo), en los que
deni o la noci on de algoritmo va funciones recursivas parciales denidas
sobre los naturales, y pr acticos: al suponer las funciones denidas sobre los
naturales logramos independencia del alfabeto de trabajo (cualquier cadena
sobre un alfabeto nito puede codicarse mediante n umeros naturales y por
ende, cualquier funci on).
Con el n de incidir en el hecho de que las m aquinas de Turing computan
111
112 CAP

ITULO 9. FUNCIONES RECURSIVAS PARCIALES


funciones, en ocasiones consideraremos m aquinas de Turing con dos cintas
especiales: la cinta de entrada y la cinta de salida (si esta existe, i.e. si la
funci on est a denida para la entrada).
Tambien asumiremos que las m aquinas trabajan sobre el alfabeto binario,
i.e. representaremos los n umeros naturales en el alfabeto 0, 1. Caracteres
auxiliares como parentesis u otros se asumir an directamente.
Una ultima observaci on: si bien las funciones que aparecer an apueden ser
parciales, no prestaremos especial a su dominio de denici on y considerare-
mos estas haya donde esten denidas.
Comencemos, sin m as dilaci on, el estudio de las funciones computables
mediante m aquinas de Turing. M as concretamente, veamos que funciones
sencillas como la funci on constante e igual a cero, la funci on sucesor o las
funciones proyecci on son computables.
Lema 147 (Computabilidad de funciones iniciales) Las siguientes fun-
ciones son computables:
La funci on constante e igual a cero, i.e.
0 : N N
n 0.
La funci on sucesor, i.e.
s : N N
n n + 1.
Las funciones proyecci on, i.e. dados m, k N, con n k 1,

m
k
: N
m
N
(n
1
, . . . , n
m
) n
k
.
Demostraci on . Obviamente, la funci on constante cero es computada por
una m aquina de Turing que ignora su entrada y escribe 0 en la cinta de
salida.
La funci on sucesor es computada por una m aquina de Turing que incrementa
en uno su entrada. Los detalles pueden consultarse en el Captulo 6.
En lo tocante a las funciones proyecci on, basta considerar la m aquina de
Turing que recorre su entrada hasta dar con la iesima componente de la
misma y copia esta en la cinta de salida. Para ello, s olo debe llevar la cuenta
las componentes ledas en una cinta auxiliar.
9.1. FUNCIONES COMPUTABLES 113
En lo que sigue, las funciones citadas en el anterior Lema son las que
emplearemos como piezas b asicas en la construcci on de funciones m as com-
plejas. Para ello, combinaremos efectivamente dichas funciones bien por com-
posici on, por recursi on o por recursi on.
Veamos por ello, en primer lugar, que la composici on de funciones com-
putables es computable.
Lema 148 (Computabilidad de la composici on de funciones) Sean g
1
, . . . , g
m
, h
funciones computables. Entonces, la composici on, denida como
f(x) = h(g
1
(x), . . . , g
m
(x)),
es computable.
Demostraci on . Supongamos dado un conjunto nito de funciones recursi-
vas g
1
, . . . , g
m
, h computables mediante ciertas m aquinas de Turing, digamos
M
g
1
. . . , M
gm
, M
h
. En lo que sigue, construiremos una m aquina de Turing M
f
que computa la funci on recursiva
f(x) = h(g
1
(x), . . . , g
m
(x)).
Para ello, consideramos una m aquina de Turing con m + 3 cintas, donde la
utilidad de las mismas es la siguiente:
la primera cinta es la de entrada y la ultima es la de salida,
las cintas intermedias (de trabajo) son las cintas asociadas a M
g
1
, . . . , M
gm
, M
h
.
El funcionamiento de M
f
es como sigue: primeramente copia la entrada x a
las m primeras cintas de trabajo y simula sobre las mismas a M
g
1
, . . . , M
gm
.
Si las m simulaciones terminan, podemos suponer que en las cintas de trabajo
aparecen exclusivamente las casdenas g
1
(x), . . . , g
m
(x). Entonces, M
f
escribe
en la m + 1esima cinta de trabajo la cadena (g
1
(x), . . . , g
m
(x)) y simula en
la misma a la m aquina M
h
. Si dicha simulaci on termina, suponiendo que el
contenido de la m + 1esima cinta es h(g
1
(x), . . . , g
m
(x)), M
f
copia dicho
contenido en la cinta de salida y para.
A parte de la composici on, podemos recurrir, tal y como se dijo, a la
recursi on para construir nuevas funciones, como muestra el siguiente Lema.
Lema 149 (Computabilidad de la recursi on primitiva de funciones)
Sean g, h funciones computables. Entonces, la recursi on primitiva, denida
mediante
f(x, 0) = g(x)
f(x, y + 1) = h(x, y, f(x, y)),
es computable.
114 CAP

ITULO 9. FUNCIONES RECURSIVAS PARCIALES


Demostraci on . Supongamos que las funciones f y g son computables me-
diante sendas m aquinas de Turing, digamos M
g
y M
h
. La m aquina de Turing
que computa f, denotada M
f
, es como sigue:
M
f
consta de cuatro cintas: la primera es de entrada, la segunda y la
cuarta se encargar an de simular las cintas de M
g
y M
h
, y la cuarta es
la cinta de salida de M
f
.
El alfabeto sobre el que trabaja M
f
es el de M
g
y M
h
(o su uni on si es
necesario) junto con el smbolo especial . El uso de dicho smbolo es el
siguiente: puesto que debemos calcular una funci on de modo recursivo,
indicar a el comienzo de la cinta en las simulaciones de M
g
y M
h
,
protegiendo de esta manera los datos de las computaciones en curso.
En lo tocante al funcionamiento, M
f
procede de la siguiente manera:
Inicializaci on.- Al comienzo, M
f
tiene en su primera cinta la en-
trada, digamos (x, y). Si y es igual a 0, simplemente copia x en
su segunda cinta y simula a M
g
. Si la simulaci on de M
g
termina,
M
f
copia el contenido de su segunda cinta a la cuarta (la cinta de
salida de M
f
) y para.
Iteraci on.- Si por el contrario se tiene que y ,= 0, M
f
lleva a
cabo el siguiente proceso: escribe al nal de la segunda y tercera
cinta el smbolo para proteger el contenido actual de las cintas y
escribe en la segunda cinta, tras dicho smbolo, la cadena (x, y1).
Hecho esto, pasa de nuevo a un estado inicial con el n de calcular
f(x, y 1) (se llama recursivamente) empleando la segunda cinta
como cinta de entrada y la tercera como cinta de trabajo (a lo
largo de dicho proceso, desempe na el papel de marca de inicio
de cinta). Si dicho proceso termina, en la tercera cinta de M
f
, tras
, podemos suponer que tenemos f(x, y 1). Finalmente, escribe
en la segunda cinta la cadena (x, y, f(x, y1), borra la informaci on
restante (tras los smbolos ) y simula M
h
empleando la segunda
cinta como cinta de entrada y la tercera como cinta de trabajo. Si
dicha simulaci on concluye, podemos suponer que el contenido de
la tercera cinta, tras el , es h(x, y, f(x, y)). M
f
distingue entonces
dos posibilidades:
Si a lo largo de las cintas s olo hay un , M
f
copia h(x, y, f(x, y))
a la cuarta cinta y para su ejecuci on.
Si no es este el caso ( M
f
est a en medio de una llamada re-
cursiva), elimina los ultimos smbolos y devuelve el control
a un estado jado (punto de retorno).
9.1. FUNCIONES COMPUTABLES 115
Una ultima forma de construir nuevas funciones, a partir de otras dadas,
es la recursi on. El siguiente Lema recoge los detalles a ella relativos.
Lema 150 (Computabilidad de la Recursi on de funciones) Sea g una
funci on computable. Entonces, la recursion, denida mediante
f(x) = y(g(x, y) = 0) := mny N : g(x, y) = 0,
es computable.
Demostraci on . Sea M
g
la m aquina que computa la funci on g. Construimos
una m aquina de Turing M
f
que eval ua f como sigue:
Supondremos que M
f
cuenta con cuatro cintas: la primera es la de entrada,
la segunda simula la cinta de M
g
, la tercera cinta es la cinta de trabajo de
M
f
y nalmente, la cuarta cinta es la de salida.
El funcionamiento de la m aquina M
f
es como sigue:
Inicializaci on.- De entrada, M
f
inicializa a cero un contador en su
tercera cinta.
Iteraci on.- M
f
copia en la segunda cinta la cadena (x, k), donde k es
el valor del contador de la tercera cinta y x es la entrada, y simula a
M
g
. Si el resultado de la simulaci on es 0, escribe k en la cinta de salida
y para. Si el resultado de la simulaci on es distinto de cero, incrementa
en uno el contenido de la tercera cinta y repite el proceso. Hacemos
notar que las simulaciones de M
g
pueden no terminar, quedando f no
denida en la entrada x.
Teniendo en cuenta lo anterior, funciones iniciales y operadores de cons-
trucci on, introducimos diversas clases de funciones atendiendo a los operado-
res empleados. La primera de ella es la de las funciones recursivas primitivas.
Denici on 151 (Funciones recursivas primitivas) La clase de las fun-
ciones recursivas primitivas es la menor clase de funciones que contienen las
funciones iniciales y es cerrada bajo composici on recursi on primitiva.
Una buena parte de las funciones usuales son recursivas primitivas. Vea-
mos algunos ejemplos.
116 CAP

ITULO 9. FUNCIONES RECURSIVAS PARCIALES


Ejemplo 152 (Suma) La funci on suma suma : N N N se dene en
los siguientes terminos:
suma(n, 0) = n
suma(n, m+ 1) = o(n +m)
= o T
3
3
(n, m, suma(n, m)).
Puesto que suma se dene por composici on y recursi on primitiva, se sigue
que es una funci on recursiva primitiva.
Ejemplo 153 (Multiplicaci on) A partir de suma, podemos denir la fun-
ci on mult de la siguiente manera:
mult(n, 0) = K
1
0
(n)
mult(n, m+ 1) = suma(n, mult(n, m))
= o T
3
3
(n, m, mult(n, m)).
Tanto las funciones iniciales (funci on constante cero, sucesor y proyecci on)
como los operadores de construcci on (composici on y recursi on primitiva) res-
ponden a funciones y procesos usuales y pueden considerarse como compu-
tables. Sin embargo, el siguiente Ejemplo da una funci on total computable
que no es recursiva primitiva.
Ejemplo 154 (Ackermann) La funci on A : N
2
N denida por las ecua-
ciones
A(0, y) = y + 1,
A(x + 1, 0) = A(x, 1), y
A(x + 1, y + 1) = A(x, A(x + 1, y)),
no recursiva primitiva.
Por lo tanto, resulta usual considerar las que se conocen como funciones
recursivas (totales).
Denici on 155 (Funci on recursiva) La clase de las funciones recursivas
es la menor clase de funciones que contiene a las funciones iniciales y es
cerrada bajo composici on, recursi on primitiva y recursi on restringida (de-
nida globalmente).
9.2. M

AQUINAS DE TURING Y FUNCIONES 117


En la Denici on anterior falta precisar el concepto recursi on restringi-
da: se dice que una funci on total se obtiene mediante recursi on restringida
a partir de otra total dada si la primera est a denida para cualquier valor.
Cabe insistir en que la funciones recursivas son totales (est an denidas
para todo natural o para toda tupla de naturales). Puesto que las m aquinas de
Turing pueden computar funciones parciales (denidas en un subconjunto),
es frecuente introducir las funciones recursivas parciales.
Denici on 156 (Funciones recursivas parciales) La clase de las fun-
ciones recursivas primitivas es la menor clase de funciones que contiene a
las funciones iniciales y es cerrada bajo composici on, composici on primitiva
y recursi on (no restringida).
Insistimos, la diferencia con las funciones recursivas est a en que las par-
ciales no son necesariamente extensibles a funciones totales.
Finalmente, teniendo en cuenta los lemas anteriores, se sigue el siguiente
resultado.
Teorema 157 Las siguentes clases de funciones son computables va m aqui-
nas de Turing:
1. las funciones recursivas primitivas,
2. las funciones recursivas (totales), y
3. las funciones recursivas parciales.
Un ultimo apunte, las m aquinas que computan funciones recursivas pri-
mitivas o recursivas (totales) siempre terminan su ejecuci on, no siendo este
el caso en las funciones recursives parciales.
9.2. Maquinas de Turing y funciones
Si bien a lo largo de la Secci on anterior mostramos que toda funci on
recursiva parcial es computable va m aquinas de Turing, en esta Secci on
mostraremos el recproco: toda m aquina de Turing computa una funci on
recursiva parcial. Veamos el mismo sin m as dilaci on.
Teorema 158 Todo funci on evaluada por una m aquina de Turing es una
funci on parcial recursiva.
118 CAP

ITULO 9. FUNCIONES RECURSIVAS PARCIALES


Demostraci on . Sea M = (K, , , q
1
) una m aquina de Turing que eval ua
una cierta funci on f : D N N, donde D es el dominio de denici on de
f, esto es
D := x

: M(x) =.
Debemos demostrar la recursividad parcial de la funci on f.
De entrada codicamos los estados K = q
1
, . . . , q
r
mediante los enteros
1, . . . , r y los smbolos de =
0
, . . . ,
s1
mediante 0, 1, . . . , s 1 (supo-
nemos que
0
= .). Teniendo en cuenta estas codicaciones, denimos las
siguientes funciones:
mov(q, ) :=

2 si (q, ) = (q

, ) para alg un q

K y

,
1 si (q, ) = (q

, ) para alg un q

K y

,
0 en cualquier otro caso.
simb(q, ) :=

si (q, ) = (q

, d) con q

K y d , , ,
en caso contrario.
estado(q, ) :=

q si (q, ) = (q

, ) para alg un q

K y

,
1 si (q, ) = (q

, ) para alg un q

K y

,
0 en cualquier otro caso.
Las funciones anteriores toman un conjunto nito de valores. Adem as, los
conjuntos en los que toma un cierto valor (constante) son conjuntos recursi-
vos que vienen dados por igualdades. Por lo tanto, las funciones anteriores
son funciones recursivas primitivas. Dichas funciones codican la funci on de
transici on de la m aquina de Turing M:
mov(q, ) indica el desplazamiento que lleva a cabo la unidad de control
de M en funci on del estado q en el que se encuentra y el car acter que
est a leyendo.
simb(q, ) da el smbolo que escribe la m aquina de Turing M cuando
se encuentra en el estado q y est a leyendo el car acter .
estado(q, ) indica el estado al que pasa la m aquina M cuando se en-
cuentra en el estado q y est a leyendo el car acter .
Con el n de codicar en terminos similares un paso de computaci on, de-
bemos codicar las conguraciones instant aneas de la m aquina de Turing
(q, u, v) K

mediante naturales. Para ello, a cada (q, u, v)


K

le asociamos la tupla (q, w, n) N


3
construida del modo si-
guiente:
q N es el natural que codica el estado q K,
9.2. M

AQUINAS DE TURING Y FUNCIONES 119


w N es la codicaci on de la cadena uv, esto es si uv =
0
, . . . ,
t
,
donde
i
para 0 i t, denimos
w :=
t

i=0

i
s
ti
,
donde s es el n umero de elementos de y
i
0, . . . , s 1, para
0 i t, denota la codicaci on del smbolo
i
.
n := [u[ es la posici on de la unidad de control en la cinta.
Codicando de esta manera la conguraci on instant anea de la m aquina de
Turing M, podemos denir las siguientes funciones
simbact(w, q, n) := coc(w, b
n1
) mult(b, coc(w, b
n
)),
cabezasig(w, q, n) := n eq((mov(p, simbact(w, q, n), 1))
+ eq(mov(p, simbact(w, q, n)), 2)),
estadosig(w, q, n) = estado(p, simbact(w, q, n)+mult(k, ,cabezasig(w, q, n)),
cintasig(w, q, n) := (w mult(b
n
, siymact(w, q, n)
+ mult(b
n
, simb(p, simbact(w, q, n))), y
paso(w, q, n) = (cintasig(w, q, n), estadosig(w, q, n), cabezasig(w, q, n)).
Las funciones llevan a cabo las siguientes tareas:
simbact(w, q, n) toma la codicaci on mediante naturales de una con-
guraci on y devuelve el car acter que esta leyendo la unidad de control.
cabezasig(w, q, n) toma la codicaci on de la conguraci on actual y de-
vuelve la codicaci on del movimiento a realizar por la m aquina de
Turing, i.e. 2 si se debe desplazar a la derecha, 1 si es a la izquierda.
estadosig(w, q, n) devuelve la codicaci on del estado al que pasa la
m aquina de Turing una vez llevado a cabo el paso de computaci on.
cintasig(w, q, n) devuelve un entero que codica la cinta de la m aquina
de Turing una vez escrito el car acter pertinente.
paso(w, q, n) simula un paso de computaci on calculando una nueva con-
guraci on a partir de una dada.
120 CAP

ITULO 9. FUNCIONES RECURSIVAS PARCIALES


Todas las funciones anteriores se construyen empleando recursividad primi-
tiva , por lo que son recursivas. En todas ellas, un valor 0 indica que se ha
producido alg un error en la ejecuci on de la m aquina de Turing.
Finalmente denimos las funciones:
ejec encargada de simular la ejecuci on de un cierto n umero de pasos
de M mediante:
ejec(w, q, n, 0) = (w, p, n) y
ejec(w, q, n, t + 1) = paso(ejec(w, q, n, t)).
momentoparada que indica el n umero de pasos que necesita M para
llegar a un estado de parada en una entrada w y se dene mediante la
expresi on
momentoparada(w) = t[
3
2
(ejec(w, 1, 1, t)) = 0]
f la funci on que eval ua M mediante
f(w) =
3
1
(ejec(w, 1, 1, momentoparada(w)))
Obviamente, f es un funci on recursiva parcial lo que demuestra el resultado.
Por lo tanto, a resultas del Teorema anterior y de los demostrados en la
Secci on anterior, podemos concluir que las unicas funciones computables (va
m aquinas de Turing) son las recursivas parciales.
9.3. Ejercicios
Ejercicio 60 Sea f : N
n+1
N una funci onn recursiva. Demostrar que las
siguientes funciones son recursivas:
1.

yz
f(x, y),
2.

y<z
f(x, y),
3.

yz
f(x, y), y
4.

y<z
f(x, y),
9.3. EJERCICIOS 121
Deducir que si f es recursiva parcial entonces, las funciones anteriores
son recursivas parciales.
Ejercicio 61 Sean P
1
, . . . , p
n
predicados recursivos. Demostrar que los si-
guientes predicados son recursivos:
P
1
. . . P
n
,
P
1
. . . P
n
,, y
P
i
para 1 i n.
Ejercicio 62 Dada P un predicado recursivo, demostrar que son recursivos:
(y z)P(x, z)), y

yz
P(x, y) =


y
P(

X, y) si (y z)P(x, y)
0 en caso contrario
.
Ejercicio 63 (Funci on de Ackermman) Demostrar que la funci on A :
N
2
N denida por las ecuaciones
A(0, y) = y + 1,
A(x + 1, 0) = A(x, 1), y
A(x + 1, y + 1) = A(x, A(x + 1, y)),
es computable (recursiva) y total pero no recursiva primitiva.
Ejercicio 64 (S
m
n
Teorema) Sea g : D N
n+m
N una funci on par-
cial recursiva. Demostrar que existe una funci on total S
m
n
(x
1
, . . . , x
n
) tal que
f
S
m
n
(x
1
,...,xn)
(y
1
, . . . , y
m
) = g(x
1
, . . . , x
n
, y
1
, . . . , y
m
).
Ejercicio 65 (Teorema del punto jo) Sea : N N una funci on total
recursiva y sea f : N N una funci on que a cada entero le hace correspon-
der una codicaci on mediante un entero de la iesima m aquina de Turing.
Demostrar que existe un i
0
tal que f(i
0
)(x) = f
(i
0
)
(x).
122 CAP

ITULO 9. FUNCIONES RECURSIVAS PARCIALES


Apendice A
M
1
2
uinas RAM
A.1. M
1
2
uinas RAM
El objetivo de esta Secci
1
2
es el de introducir el modelo de computaci
1
2
de las m
1
2
uinas de Turing.
Denici on 159 Una m
1
2
uina RAM es una dispositivo computacional que
consta de los siguientes elementos:
1. Una estructura de datos conformada por los siguientes elementos: una
sucesi
1
2
de registros de trabajo (r
i
)
iN
(al registro r
0
le llamaremos
acumulador) y una sucesi
1
2
nita de registros de entrada (i
1
, . . . , i
n
).
2. Un programa RAM dado como una sucesi
1
2
nita de instrucciones
= (
1
, . . . ,
m
), donde cada
i
, con 1 i n, es una instrucci
1
2
de alguno de los tipos descritos en las Tablas 1, 2 y 3.
3. Un registro especial llamado contador de programa.
Donde los registros de trabajo, los registros de entrada y el contador de pro-
grama almacenan nmeros enteros.
De acuerdo a la denici
1
2
, un programa RAM es una sucesi
1
2
nita de
instrucciones de algunos de los tipos descritos en las Tablas 1, 2 y 3. Tal y
como reejan la mismas, podemos clasicar los tipos de instrucciones que
admite una m
1
2
uina RAM en tres categor
1
2
s: instrucciones de acceso a los
registros, aritm
1
2
icas y de control de ujo.
Las primeras, recogidas en la Tabla 1, se encargan del trasiego de datos
entre los registros de trabajo y los de entrada, as
1
2
como de la carga de
constantes en los mismos. Cabe destacar que las m
1
2
uinas RAM admiten
tres tipos de direccionamiento:
123
124 AP

ENDICE A. M

I
1
2
UINAS RAM
1. Inmediato (denotado por = j). En este caso no se produce acceso ni
a los registros de trabajo ni a los de entrada, simplemente se carga
el valor j prejado por el programa en el acumulador (n
1
2
ese que la
nica instrucci
1
2
que admite direccionamiento inmediato, dentro de la
categor
1
2
, es LOAD).
2. Directo (denotado por j)
1
. Las instrucciones que utilizan este tipo de
direccionamiento acceden a los registros por medio de un
1
2
dice j. Si
la instrucci
1
2
es del tipo READ se carga en el acumulador el contenido
del registro de entrada j
1
2
imo, si es del tipo LOAD, se carga en el
acumulador el contenido del registro de trabajo j
1
2
imo y si es del
STORE, se almacena en el registro de trabajo j
1
2
imo el contenido del
acumulador.
3. Indirecto (denotado por j)
2
. En este caso se accede a los registros
utilizando como
1
2
dice el contenido del registro r
j
. Obviamente, un
direccionamiento del estilo jproducir
1
2
un error en la ejecuci
1
2
de la m
1
2
uina RAM, que puede asimilarse a la ejecuci
1
2
de una ins-
trucci
1
2
HALT (descrita m
1
2
adelante). Las instrucciones que hacen
empleo de este direccionamiento son de los tres tipos (READ, STORE y
LOAD). En el primer caso se carga el registro de entrada r
j

1
2
imo en
el acumulador, en
1
2
segundo se almacena el contenido del acumula-
dor en el registro de trabajo r
j

1
2
imo y en
1
2
tercero, se carga el
contenido del registro de trabajo r
j

1
2
imo en el acumulador.
Las instrucciones de car
1
2
ter aritm
1
2
ico, recogidas en la Tabla 2, pueden
ser de tres tipos:
1. ADD (suma): se encarga de sumar al acumulador cierto operando (di-
cho operando responde a alguno de los m
1
2
odos de direccionamiento
anteriormente explicados).
2. SUB (resta): substrae al acumulador un cierto operando (de acuerdo a
los mismos m
1
2
odos de direccionamiento anteriores), y por ltimo
1
Tomando prestada la sintaxis del lenguaje de programaci
1
2
C, este tipo de direccio-
namiento ser
1
2
el empleado en el acceso a vectores (arrays). Considerar como ejemplo
la expresi
1
2
a := b[j], donde a es una variable, b[] es un vector (array) y j es un

1
2
dice
2
En el lenguaje C, este tipo de direccionamiento vendr
1
2
dado por los punteros, pu-
di
1
2
dose asimilar el operador al el operador de desreferenciaci
1
2
* del lenguaje C.
Considerar como ejemplo la expresi
1
2
a := *b[j], donde a es una variable, b[] es un
vector (array) de punteros y j es un
1
2
dice que indica el puntero desreferenciar
A.1. M

I
1
2
UINAS RAM 125
Instrucci
1
2
Operando Sem
1
2
tica
READ j r
0
:= i
j
READ j r
0
:= i
r
j
STORE j r
j
:= r
0
STORE j r
r
j
:= r
0
LOAD = j r
0
:= j
LOAD j r
0
:= r
j
LOAD j r
0
:= r
r
j
Tabla 1 Instrucciones de acceso a los registros
3. HALF: cuyo objetivo es almacenar en el acumulador el cociente de divi-
dir a este por dos. La importancia de esta instrucci
1
2
reside en que nos
permite hacer un desplazamiento a la derecha del acumulador (calcular
el cociente de dividir por dos se puede interpretar como un desplaza-
miento a la derecha en la representaci
1
2
binaria en el que se desprecia
el ltimo bit, correspondiente al guarismo de las unidades), de manera
econ
1
2
ica.
Instrucci
1
2
Operando Sem
1
2
tica
ADD = j r
0
= r
0
+j
ADD j r
0
= r
0
+r
j
ADD j r
0
= r
0
+r
r
j
SUB = j r
0
= r
0
j
SUB j r
0
= r
0
r
j
SUB j r
0
= r
0
r
r
j
HALF r
0
:=
r
0
2
|
Tabla 2 Instrucciones aritm
1
2
icas
Las instrucciones encargadas del control del ujo del programa se recogen
en la Tabla 3. Podemos distinguir, grosso modo, dos tipos: saltos incondicio-
nales (JUMP) o condicionales (JPOS, JZERO o JNEG). Estos ltimos atienden a la
condici
1
2
de positividad, negatividad o nulidad del acumulador para llevarse
a cabo.
Cabe destacar que el potencial de las m
1
2
uinas RAM queda inaltera-
do si, por ejemplo, se suprimen las instrucciones SUB, HALF, JUMP, JPOS,
JNEG, puesto que sus tareas se pueden llevar a cabo mediante combinaciones
de las restantes. Su inclusi
1
2
atiende tanto a motivos de claridad como de
126 AP

ENDICE A. M

I
1
2
UINAS RAM
Instrucci
1
2
Operando Sem
1
2
tica
JUMP j := j
JPOS j si r
0
> 0 entonces := j
JZERO j si r
0
= 0 entonces := j
JNEG j si r
0
< 0 entonces := j
HALT := 0
Tabla 3 Instrucciones de control de ujo
acercamiento a la sintaxis de los lenguajes de ensamblador de los modernos
microprocesadores.
Para completar la descripci
1
2
de una m
1
2
uina RAM, resta describir
c
1
2
o evoluciona, o se ejecuta, un programa. Para ello recurriremos, al igual
que en el caso de las m
1
2
uinas de Turing, al concepto de conguraci
1
2
.
Denici on 160 Dado un programa RAM := (
1
, . . . ,
m
) (cada
i
, con
1 i m, es una instrucci
1
2
de uno de los tipos descritos en las Tablas
1, 2 y 3) y una sucesi
1
2
nita de registros de entrada I := (i
1
, . . . , i
n
),
llamaremos conguraci
1
2
de la m
1
2
uina RAM a todo par ordenado (, R),
donde es un entero que indica la instrucci
1
2
a ejecutar y R es una sucesi
1
2
nita que indica el contenido de los registros de trabajo que en algn momento
han sido utilizados.
Obviamente, a la luz de las instrucciones que admite un m
1
2
uina RAM,
los registros de entrada no se modican a lo largo de la ejecuci
1
2
del pro-
grama RAM, por lo que resultar
1
2
superuo que
1
2
tos se reejaran en la
conguraci
1
2
de la m
1
2
uina.
Como conguraci
1
2
inicial tomamos la dada por el par (1, ) puesto que,
ad initium, la instrucci
1
2
a ejecutar es la primera y los registros de trabajo no
han sido inicializados con valor alguno. La transici
1
2
de una conguraci
1
2
a otra se lleva a cabo de acuerdo con la sem
1
2
tica presentada en las Tablas
1, 2 y 3. Obviamente, si la instrucci
1
2
ejecutada es del tipo READ, STORE,
LOAD, ADD, SUB o HALF, el contador de programa se incrementa en 1 si no,
este se actualiza de acuerdo a lo indicado por la instrucci
1
2
.
Un ejemplo sencillo de m
1
2
uina RAM se da a continuaci
1
2
.
Ejemplo 161 (Multiplicaci
1
2
) El programa RAM descrito en la Tabla 4
lleva a cabo la multiplicaci
1
2
de dos nmero enteros, almacenados en i
1
e i
2
,
empleando el algoritmo de multiplicaci
1
2
binario. El resultado lo almacena
en el acumulador, i.e. en el registro r
0
.
A.1. M

I
1
2
UINAS RAM 127
Etiqueta Instrucci
1
2
Comentario
1 READ 1 [k indicar >
1
2
la iteraci >
1
2
]
2 STORE 1 [r
1
contiene i
1
]
3 STORE 5 [r
5
contiene i
1
2
k
, actualmente i
1
]
4 READ 2
5 STORE 2 [r
2
contiene i
2
]
6 HALF
7 STORE 3 [r
3
contiene i
2
/2
k
]
8 ADD 3
9 SUB 2
10 JZERO 14
11 LOAD 4 [suma r
5
a r
4
s >
1
2
o si
12 ADD 5 el k-- >
1
2
imo bit de i
2
es cero]
13 STORE 4 [r
4
contiene i
1
(i
2
mod 2
k
)]
14 LOAD 5
15 ADD 5
16 STORE 5
17 LOAD 3
18 JZERO 20 [si i
2
/2
k
| = 0 hemos terminado]
19 JUMP 5 [si no se repite]
20 LOAD 4 [el resultado se carga en el acumulador]
21 HALT
Tabla 4 Programa RAM para la multiplicaci
1
2
(algoritmo binario).
Dada la mayor complejidad, resulta presumible que su capacidad sea al
menos equiparable a la de las m
1
2
uinas de Turing. El siguiente Teorema
formaliza este punto.
Teorema 162 Sea L

un lenguaje aceptado por una m


1
2
uina de Tu-
ring en tiempo acotado por f(n). Entonces, existe una programa RAM que
calcula la funci
1
2
caracter
1
2
tica de L en tiempo O(f(n)).
Demostraci on . Sea M = (K, , , s) una m
1
2
uina de Turing que decide el
conjunto L en tiempo O(f(n)). Veamos como construir una m
1
2
uina RAM
que decide el mismo lenguajes en tiempo O(f(n)).
Supongamos que :=
1
,
0
, . . . ,
n
, donde
0
= . y
1
=. Entonces
podemos identicar los elementos de con los nmeros 1, 0, . . . , n.
Con el n de emular a la m
1
2
uina de Turing, el registro r
1
almacenar
1
2
la
posici
1
2
de la unidad de control en la cinta, los registros r
2
y r
3
ser
1
2
128 AP

ENDICE A. M

I
1
2
UINAS RAM
utilizados en las tareas de inicializaci
1
2
del proceso mientras que el resto de
los registros estar
1
2
destinados a simular la cinta de la m
1
2
uina de Turing.
El programa RAM comienza copiando la entrada a los registros r
4
, . . . , r
n+3
.
Para ello, recorre los registros de entrada hasta que encuentra un 0, i.e. un
car
1
2
ter blanco .. La posici
1
2
en la que se encuentra se almacena en el
registro r
2
. El fragmento de programa RAM encargado de llevar a cabo esta
tarea ser
1
2
el siguiente:
Etiqueta Instrucci
1
2
Comentario
1 LOAD =4 [r
3
:= 4]
2 STORE 2
3 LOAD =1 [r
2
= 1]
4 STORE 3
5 READ 2 [r
0
:= i
r
2
]
6 JZERO 15 [si r
0
= 0, i.e. ., terminamos]
7 STORE 3 [r
r
3
:= i
r
2
]
8 LOAD 2 [incrementamos r
2
]
9 ADD =1
10 STORE 2
11 LOAD 3 [incrementamos r
3
]
12 ADD =1
13 STORE 3
14 JUMP 5 [repetimos]
15 . . . [hemos terminado de copiar]
Una vez copiada la entrada a los registro pertinentes, el programa RAM
simula los movimientos de la m
1
2
uina de Turing uno a uno. Para ello, a
cada
j
y q K, con (q,
j
) = (q,
l
, D), les asociamos el siguiente
fragmento de c
1
2
igo:
Etiqueta Instrucci
1
2
Comentario
N
q,
LOAD 1 [leemos el car >
1
2
ter de la cinta]
N
q,
+ 1 SUB j [si es el car >
1
2
ter (suponemos que
N
q,
+ 2 JZERO N
q,
+ 4 la codificaci >
1
2
de es j)]
N
q,
+ 3 JUMP N
q,+1
N
q,
+ 4 LOAD = l [escribimos
l
en la cinta]
N
q,
+ 5 STORE 1
N
q,
+ 6 LOAD 1 [nos desplazamos en la cinta]
N
q,
+ 7 ADD = D
N
q,
+ 8 STORE 1
N
q,
+ 9 JUMP N
p,
1
[comenzamos simulaci >
1
2
del estado p]
A.1. M

I
1
2
UINAS RAM 129
Por ltimo, la aceptaci
1
2
o el rechazo de la entrada pueden simularse me-
diante una secuencia de instrucciones que carguen 1
1
2
0 en el acumulador
(el registro r
0
) seguidas de una instrucci
1
2
HALT.
Puesto que por cada movimiento de la m
1
2
uina de Turing se llevan a cabo
un nmero de instrucciones acotado por una constante (dependiente del nmero
de estados y del nmero de s
1
2
bolos de la m
1
2
uina), se necesitan a lo m
1
2
O(f(n)) pasos de la m
1
2
uina RAM para simularla.
El rec
1
2
roco del anterior resultado es cierto en los siguientes t
1
2
minos:
Teorema 163 Sea g : D N N una funci
1
2
computada por un progra-
ma RAM en tiempo acotado por f(n). Entonces, existe una m
1
2
uina de
Turing con siete cintas que computa g(N) en tiempo acotado por O(f(n)
3
).
Demostraci on . Con el n de demostrar el Teorema, basta describir la
m
1
2
uina de Turing encargada de simular el programa .
La utilidad de cada una de las cintas es la siguiente:
La primera cinta contiene la entrada y nunca se sobrescribe,
La segunda cinta almacena una representaci
1
2
de los registros de tra-
bajo de la m
1
2
uina RAM, i.e. de los rs. Dicha representaci
1
2
consiste
en una serie de cadenas de la forma i : r(i) (representados en binario) y
separadas por ;. Entre ellas admitimos la posibilidad de que existan
caracteres blanco, por lo que para indicar el nal de la cinta, suponemos
que el alfabeto contiene un car
1
2
ter especial . Cada vez que se ac-
tualiza el registro r
i
, la anterior cadena i : r(i) se borra, escribi
1
2
dose
la nueva al nal de la cinta (justo antes del ) insertando caracteres
blancos si es necesario.
La ltima cinta est
1
2
destinada a la salida. Si se alcanza una instrucci
1
2
HALT, se copia el contenido del registro r
0
, i.e. de la segunda componente
del par 0 : r(0), a la ltima cinta y se para.
El resto de las cintas son de trabajo.
Para simular el funcionamiento del programa RAM, la m
1
2
uina de Turing
utiliza un conjunto de estados para cada instrucci
1
2
del programa RAM.
130 AP

ENDICE A. M

I
1
2
UINAS RAM
Apendice B
Problema de la
correspondencia de Post

B.1. El problema de la correspondencia de


Post
En lo que sigue, estudiaremos uno de los problemas indecidibles m as im-
portantes: el Problema de la correspondencia de Post (vease [14], si bien
nuestra aproximaci on esta tomada de [5]). Veremos como se aplica a proble-
mas de decibilidad relativos a gram aticas.
B.1.1. Enunciado
Antes de nada, conviene ja claramente el enunciado del mismo.
Problema 66 (de la correspondencia de Post) Sea un alfabeto nito
y sean
A = (a
1
, . . . , a
k
) y B = (b
1
, . . . , b
k
).
dos listas de cadenas. La instancia (A, B) tiene soluci on si y s olo si existe
una secuencia de naturales i = (i
1
, . . . , i
m
), i
1
, . . . , i
m
N con 1 i
j
k
para 1 j m, tales que
a
i
1
a
im
= b
i
1
b
im
.
Para ilustrar el problema, basta considerar el siguiente ejemplo.
131
132AP

ENDICE B. PROBLEMA DE LA CORRESPONDENCIA DE POST


Ejemplo 164 Consideramos el alfabeto nito = 0, 1 y las listas A =
(1, 100111, 10) y B = (111, 10, 0). La secuencia i = (2, 1, 1, 3) es una soluci on
del problema de la correspondencia de Post.
Con el n de demostrar la indecibilidad del problema de la corresponden-
cia de Post, consideramos, en primera instancia la siguiente modicaci on del
mismo.
Problema 67 (de la correspondencia de Post modicado) Sea un
alfabeto nito y sean
A = (a
1
, . . . , a
k
) y B = (b
1
, . . . , b
k
).
dos listas de cadenas de . La instancia (A, B) tiene soluci on si y s olo si
existe una secuencia de naturales i = (i
2
, . . . , i
m
), i
2
, . . . , i
m
N con 1
i
j
k para 2 j m, tales que
a
1
a
i
2
a
im
= b
1
b
i
2
b
im
.
Lema 165 Si el problema de la correspondencia de Post fuera decidible, el
problema de la correspondencia de Post modicado tambien lo sera.
Demostraci on . Consideremos una instancia del problema de la correspon-
dencia de Post, i.e. un alfabeto nito y dos sucesiones nitas de cadenas
sobre , digamos
A = (a
1
, . . . , a
k
) y B = (b
1
, . . . , b
k
).
Denimos la siguiente instancia del problema de la correspondencia de Post
modicado:
Suponiendo que los smbolos #, $ / dos nuevos smbolos y sea

:=
#, $ un nuevo alfabeto. Sea a

i
la cadena obtenida a partir a
i
insertando
smbolos # tras cada car acter de a
i
. Sea b

i
la cadena obtenida a partir de b

i
insertando el smbolo $ antes de cada car acter de b
i
. Denimos adem as las
siguientes cadenas de caracteres:
a

0
= #a

1
b

0
= b

1
a

k+1
= $ b

k+1
= #$.
Finalmente, denimos las siguientes listas:
A

= (a

0
, a

1
, . . . , a

k+1
) y
B.1. EL PROBLEMA DE LA CORRESPONDENCIA DE POST 133
B

= (b

0
, b

1
, . . . , b

k+1
).
Obviamente, las listas A

y B

conforman una instancia del problema de la


correspondencia de Pots (modicado). Adem as, la instancia dada por A

y
B

tiene soluci on si y s olo si la instancia A y B admite una soluci on.


Para demostrar esta ultima armaci on, supongamos que i
1
, . . . , i
r
N es una
soluci on al problema de correspondencia de Post modicado con listas A y
B. Puesto que a

0
y b

0
son las unicas cadenas que comienzan por el smbolo
# y a

r+1
y b

r+1
son las unicas cadenas que nalizan por $, tenemos que
i
1
= 0 y i
r
= k + 1. Finalmente, puesto que a

0
coincide con a

1
(salvo el
primer car acter), y este esta construido a partir de a
1
y que b

0
coincide con
b

1
(salvo el primer car acter), y este esta construido a partir de b
1
, se sigue
que 1, i
2
, . . . , i
r
es una soluci on para el problema de la correspondencia de
Post modicado.
B.1.2. Indecibilidad
En esta Subsecci on demostramos la indecibilidad del Problema de la Co-
rrespondencia de Post. Gracias al Lema 165, basta demostrar que el Problema
de la Correspondencia de Post Modicado es indecidibles, tal y como arma
el siguiente Teorema.
Teorema 166 El Problema de la Correspondencia de Post Modicado es
indecidible, i.e. no recursivo.
Demostraci on .
1
Construyamos una reducci on de L
u
al problema de corres-
pondencia de Post. Para ello, a partir de un par M, w) debemos construir
un instancia del problema de la correspondencia de Post, i.e. dos lista A, B
sobre un cierto alfabeto.
Suponiendo que M = (K, , , s), denimos

:= #, donde # es
un nuevo smbolo. La idea es construir un par de listas A, B de manera
que si existe soluci on al problema de correspondencia esta sea de la forma
#sw#u
1
q
1
v
1
. . . #u
k
q
k
v
k
, donde
(u
i
, q
i
, v
i
), para 1 i k, es una conguraci on de la m aquina de
Turing v alida (sw representa la conguraci on inicial (q
0
, u
0
, v
0
), donde
q
0
= s, u
0
= y v
0
= w),
(u
0
, q
0
, v
0
), . . . , k(u
i
, q
i
, v
k
) es la secuencia de conguraciones de M en
la entrada w, i.e.
(u
0
, q
0
, v
0
)
M
. . .
M
k(u
i
, q
i
, v
k
), , y
1
Observense las similitudes existentes entre esta demostraci on y la del Teorema 116.
134AP

ENDICE B. PROBLEMA DE LA CORRESPONDENCIA DE POST


q
k
es un estado aceptador, i.e. si, no o h.
Para ello, construimos consideramos las listas A, B de cadenas sobre el alfa-
beto

siguientes:
Grupo 0.- Los primeros elementos de A y B son los siguientes:
Lista A Lista B
# #sw
Simplemente se encargar de inicializar el proceso de simulaci on de la
m aquina de Turing mediante concatenaci on de cadenas.
Grupo 1.- Las siguientes cadenas se encargan de copiar los fragmentos
de las codicaciones de las conguraciones que no se ven afectados por
la computaci on.
Lista A Lista B
para cada
# #
Grupo 2.- Las siguientes cadenas se encargan de simular el movimiento
de la m aquina de Turing, considerando para cada p K, , , ,
q K si, no, h y las cadenas
Lista A Lista B
q p si (q, ) = (p, , )
q p si (p, , ) = (p, , )
q# si (q, .) = (p, , )
q# p# si (q, .) = (p, , )
Grupo 3.- Con el nalizar el proceso de simulaci on (si procede) consi-
deramos, para cada q si, no, h y , , las cadenas
Lista A Lista B
q q
q q
q q
B.1. EL PROBLEMA DE LA CORRESPONDENCIA DE POST 135
y para cada q si, no, h
Lista A Lista B
q## #
En lo que sigue, llamaremos soluci on parcial del problema de la Correspon-
dencia de Post Modicado con listas A y B, a todo par (x, y)

tal
que
x e y son concatenaci on de cadenas correspondientes de las listas A y
B, y
existe una cadena z

, que llamaremos resto, tal que y = xz.


Probemos por inducci on que dada una secuencia v alida de computaciones
(u
0
, q
0
, v
0
)
M
. . .
M
k(u
i
, q
i
, v
k
), , y
donde (u
i
, q
i
, v
i
), para 0 i k, es una conguraci on de la m aquina de
Turing (asumimos que (q
0
, u
0
, v
0
), donde q
0
= s, u
0
= y v
0
= w, representa
la conguraci on inicial para la entrada w), existe una soluci on parcial de la
forma
(x, y) = (#u
0
q
0
v
0
#. . . #u
k1
q
k1
v
k1
#, #u
0
q
0
v
0
#. . . #u
k
q
k
v
k
#).
Notamos que esta es la unica soluci on parcial cuya cadena m as larga tiene
como longitud [y[.
El caso k = 0 es trivial puesto que resulta obligado tomar los primeros
elementos de las listas (Grupo 0), i.e. (#, #sw) (equivalentemente tenemos
la soluci on parcial (#, #u
0
q
0
v
0
)).
Supongamos que la armaci on es cierta para un cierto k N y que q
k
/
si, no, h. El resto del par (x, y) es z = u
k
q
k
v
k
. Los siguiente pares de
cadenas a concatenar deben ser escogidos de manera que las cadenas de la
lista A formen z, por lo que deben ser escogidos entre los Grupos 1 y 2. Por
lo tanto, tras una serie de elecciones, obtenemos una nueva soluci on parcial
de la forma (y, yu
k+1
q
k+1
v
k+1
#) tal que
(q
k
, u
k
, v
k
)
M
(q
k+1
, u
k+1
, v
k+1
).
En el caso q
k
si, no, h, las unicas posibles elecciones de cadenas a
concatenar son de los Grupos 1 y 3. Lo que demuestra la armaci on.
Por lo tanto, la m aquina de Turing M para en la entrada w si y s olo si
existe una soluci on al Problema de la Correspondencia de Post Modicado
136AP

ENDICE B. PROBLEMA DE LA CORRESPONDENCIA DE POST


con listas A y B. Lo que demuestra el resultado, puesto que si el Problema de
la Correspondencia de Post Modicado fuera decidible, existira un algoritmo
capaz de decidir el lenguaje L
u
.
Gracias al Teorema y al Lema 165 se sigue la indecibilidad del Problema
de la correspondencia de Post.
Corolario 167 El programa de la correspondencia de Post es indecidible.
B.1.3. Aplicaciones
Tal y como se apuntaba al comienzo de la Secci on, el principal interes
del Problema de la Correspondencia de Post reside en su aplicaci on a otros
problemas, principalmente relacionados con gram aticas. A continuaci on pre-
sentamos la relativa a la indecibilidad de la ambig uedad de las gram aticas
independientes al contexto.
Teorema 168 Es indecidible cuando una gram atica independiente del con-
texto arbitraria es ambigua.
Demostraci on . Sean
A = (a
1
, . . . , a
m
) and B = (b
1
, . . . , b
m
)
dos listas de cadenas sobre un alfabeto nito y sean c
1
, . . . , c
m
m smbolos
nuevos. Consideramos los lenguajes
L
A
:= a
i
1
a
ir
c
ir
c
i
1
: i
1
, . . . , i
r
N y
L
B
:= b
i
1
b
ir
c
ir
c
i
1
: i
1
, . . . , i
r
N.
Sea G := (S, S
A
, S
B
, c
1
, . . . , c
m
, P, S) la gram atica independiente del
contexto cuyas producciones vienen dadas por
P := S S
A
, S S
B

S
A
a
i
S
A
c
i
: 1 i m
S
A
a
i
c
i
: 1 i m
S
B
b
i
S
B
c
i
: 1 i m
S
B
b
i
c
i
: 1 i m.
Obviamente, L(G) = L
A
L
B
.
Una instancia del problema de correspondencia de Post (A, B) tiene soluci on,
digamos i
1
, . . . , i
r
, si y s olo si se tiene
a
i
1
a
ir
c
ir
c
i
1
= b
i
1
b
ir
c
ir
c
i
1
.
Esto es, si y s olo si G es ambigua.
Apendice C
GNU Free Documentation
License
Version 1.2, November 2002
Copyright c 2000,2001,2002 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The purpose of this License is to make a manual, textbook, or other functional and useful document freein the
sense of freedom: to assure everyone the eective freedom to copy and redistribute it, with or without modifying it, either
commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for
their work, while not being considered responsible for modications made by others.
This License is a kind of copyleft, which means that derivative works of the document must themselves be free in
the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free
documentation: a free program should come with manuals providing the same freedoms that the software does. But this
License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it
is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright
holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license,
unlimited in duration, to use that work under the conditions stated herein. The Document, below, refers to any such
manual or work. Any member of the public is a licensee, and is addressed as
2
ou. You accept the license if you copy,
modify or distribute the work in a way requiring permission under copyright law.
A Modied Version of the Document means any work containing the Document or a portion of it, either copied
verbatim, or with modications and/or translated into another language.
A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively with
the relationship of the publishers or authors of the Document to the Documents overall subject (or to related matters)
and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of
mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position
regarding them.
The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant
Sections, in the notice that says that the Document is released under this License. If a section does not t the above
denition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant
Sections. If the Document does not identify any Invariant Sections then there are none.
The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in
the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and
a Back-Cover Text may be at most 25 words.
A Transparent copy of the Document means a machine-readable copy, represented in a format whose specication
is available to the general public, that is suitable for revising the document straightforwardly with generic text editors
or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and
that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text
137
138 AP

ENDICE C. GNU FREE DOCUMENTATION LICENSE


formatters. A copy made in an otherwise Transparent le format whose markup, or absence of markup, has been arranged
to thwart or discourage subsequent modication by readers is not Transparent. An image format is not Transparent if
used for any substantial amount of text. A copy that is not Transparentis called .Opaque.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format,
LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript
or PDF designed for human modication. Examples of transparent image formats include PNG, XCF and JPG. Opaque
formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for
which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF
produced by some word processors for output purposes only.
The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to hold,
legibly, the material this License requires to appear in the title page. For works in formats which do not have any title
page as such, Title Pagemeans the text near the most prominent appearance of the works title, preceding the beginning
of the body of the text.
A section Entitled XYZ means a named subunit of the Document whose title either is precisely XYZ or contains
XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specic section name
mentioned below, such as .Acknowledgements, Dedications, Endorsements, or History.) To Preserve
the Title of such a section when you modify the Document means that it remains a section Entitled XYZ.
a
ccording to
this denition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the
Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards
disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no eect on the
meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that
this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in
all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures
to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions
in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering
more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies in covers that carry,
clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover.
Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the
full title with all words of the title equally prominent and visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions,
can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to t legibly, you should put the rst ones listed (as many
as t reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a
machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-
network location from which the general network-using public has access to download using public-standard network
protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must
take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent
copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque
copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large
number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modied Version of the Document under the conditions of sections 2 and 3 above,
provided that you release the Modied Version under precisely this License, with the Modied Version lling the role of
the Document, thus licensing distribution and modication of the Modied Version to whoever possesses a copy of it. In
addition, you must do these things in the Modied Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of
previous versions (which should, if there were any, be listed in the History section of the Document). You may
use the same title as a previous version if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modications
in the Modied Version, together with at least ve of the principal authors of the Document (all of its principal
authors, if it has fewer than ve), unless they release you from this requirement.
139
C. State on the Title page the name of the publisher of the Modied Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modications adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modied
Version under the terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Documents
license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled History, Preserve its Title, and add to it an item stating at least the title, year,
new authors, and publisher of the Modied Version as given on the Title Page. If there is no section Entitled
Historyin the Document, create one stating the title, year, authors, and publisher of the Document as given
on its Title Page, then add an item describing the Modied Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the
Document, and likewise the network locations given in the Document for previous versions it was based on.
These may be placed in the Historysection. You may omit a network location for a work that was published at
least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
K. For any section Entitled .Acknowledgements.
o
r Dedications, Preserve the Title of the section, and preserve in
the section all the substance and tone of each of the contributor acknowledgements and/or dedications given
therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled Endorsements. Such a section may not be included in the Modied Version.
N. Do not retitle any existing section to be Entitled Endorsements.
o
r to conict in title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modied Version includes new front-matter sections or appendices that qualify as Secondary Sections and
contain no material copied from the Document, you may at your option designate some or all of these sections as invariant.
To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These titles must be
distinct from any other section titles.
You may add a section Entitled Endorsements, provided it contains nothing but endorsements of your Modied
Version by various partiesfor example, statements of peer review or that the text has been approved by an organization
as the authoritative denition of a standard.
You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover
Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of Front-Cover Text and one of
Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes
a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on
behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher
that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for
publicity for or to assert or imply endorsement of any Modied Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms dened in
section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of all of
the original documents, unmodied, and list them all as Invariant Sections of your combined work in its license notice,
and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be
replaced with a single copy. If there are multiple Invariant Sections with the same name but dierent contents, make the
title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher
of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant
Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled Historyin the various original documents, forming
one section Entitled History; likewise combine any sections Entitled .Acknowledgements, and any sections Entitled
Dedications. You must delete all sections Entitled Endorsements.
140 AP

ENDICE C. GNU FREE DOCUMENTATION LICENSE


6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace
the individual copies of this License in the various documents with a single copy that is included in the collection, provided
that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided
you insert a copy of this License into the extracted document, and follow this License in all other respects regarding
verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on
a volume of a storage or distribution medium, is called an .
a
ggregateif the copyright resulting from the compilation is not
used to limit the legal rights of the compilations users beyond what the individual works permit. When the Document
is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less
than one half of the entire aggregate, the Documents Cover Texts may be placed on covers that bracket the Document
within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must
appear on printed covers that bracket the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modication, so you may distribute translations of the Document under the
terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders,
but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant
Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty
Disclaimers, provided that you also include the original English version of this License and the original versions of those
notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a
notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled .Acknowledgements, Dedications, or History, the requirement (section
4) to Preserve its Title (section 1) will typically require changing the actual title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License.
Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your
rights under this License. However, parties who have received copies, or rights, from you under this License will not have
their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time
to time. Such new versions will be similar in spirit to the present version, but may dier in detail to address new problems
or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document species that a particular
numbered version of this License .
o
r any later version.
a
pplies to it, you have the option of following the terms and
conditions either of that specied version or of any later version that has been published (not as a draft) by the Free
Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever
published (not as a draft) by the Free Software Foundation.
141
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the
following copyright and license notices just after the title page:
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this do-
cument under the terms of the GNU Free Documentation License, Version 1.2 or any later version
published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no
Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation
License.
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the with...Texts.line with this:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and
with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alter-
natives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel
under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
142 AP

ENDICE C. GNU FREE DOCUMENTATION LICENSE


Bibliografa
[1] J.G. Brookshear. Teora de la computaci on. AddisonWesley Iberoame-
ricana, 1993.
[2] C. Calude. Theories of Computational Complexity. NorthHolland,
1988.
[3] A. Church. The calculi of lambdaconversion. Annals of Mathematical
Studies, 6, 1941.
[4] S. A. Cook. The complexity of theorem proving procedures. ACM
Symposium on the Theory of Computation, pages 151158, 1971.
[5] R.W. Floyd. New proofs and old theorems in logic and formal linguistics,
1964.
[6] A. Hodges. Alan Turing: the enigma. Random House, 1992.
[7] J.E. Hopcroft and J.D. Hullman. Introduction to Automata theory, Lan-
guages and Computation. AddisonWesley, 1979.
[8] J.E. Hopcroft and J.D. Motwani, R. Hullman. Introducci on a la teora de
aut omatas, lenguajes y computaci on. AddisonWesley, segunda edition,
2001.
[9] S.C. Kleene. General recursive functions of natural numbers. Mathema-
tische Annalen, 112:727742, 1936.
[10] A. Meduna. Automata and Languages. SpringerVerlag, 2000.
[11] P. Odifredi. Classical Recursion Theory. NorthHolland, 1989.
[12] C.H. Papadimitriou. Computational Complexity. AddisonWesley Ibe-
roamericana, 1994.
[13] E. Post. Finite combinatory processes: Formulation i. J. of Symbolic
Logic, 1:103105, 1936.
143
144 BIBLIOGRAF

IA
[14] E. Post. A variant of recursively unsolvable problem. Bull. AMS, 52:264
268, 1946.
[15] A. Turing. On computable numbers, with an application to entschei-
dungsproblem. Proc. London Math. Society, 42(2):230265, 1936.

Indice alfabetico
arbol de derivaci on, 50
aceptaci on
por una m aquina de Turing, 61
Aut omata
nito
con transiciones , 9
no determinista, 6
aut omata
a pila determinista, 45
linealmente acotado, 85
a pila, 41
nito
determinista, 3
c alculo de funciones
por una m aquina de Turing, 63
clausura, respec. , 9
complejidad
en espacio, 72
en tiempo, 71
conguraci on
de un aut omata a pila, 42
de una m aquina de Turing, 60
conguraci
1
2
de una m
1
2
uina RAM, 126
derivaci on
en una gram atica regular, 17
derivaci on directa
(gram aticas generales), 80
derivaci on
gram atica independiente del con-
texto, 49
equivalencia entre
aut omatas nitos y
expresiones regulares, 19
estados
equivalentes, 33
expresi on regular, 15
forma sentencial, 49
funci on de transici on
AFD, 3
extendida (AFD), 4
extendida (AFN), 6
extendida (AFN), 10
Funciones
recursi on, 115
recursi on restringida, 116
recursivas (totales), 116
recursivas parciales, 117
recursivas primitivas, 115
composici on, 113
iniciales, 112
recursi on primitiva, 113
gram atica
general (o no restringida), 80
sensible al contexto, 85
gram atica
lineal a derecha, 16
regular, 16
independiente de contexto, 48
homomorsmo, 29
inverso, 30
145
146

INDICE ALFAB

ETICO
Lema
de aceleraci on lineal, 72
de compresi on de cinta, 73
de computabilidad de
funciones iniciales, 112
la recursion, 115
la recursi on primitiva, 113
la composici on, 113
de reducci on de cintas, 73
eliminaci on de indeterminismo,
74
lenguaje
asociado a una propiedad, 104
aceptado por AFD, 4
aceptado por AFN, 7
aceptado por AFN, 10
aceptado por un aut omata lineal-
mente acotado, 86
de una gram atica
regular, 17
diagonal, 98
enumerable, 65
generado por una gram atica, 80
independiente del contexto, 49,
85
recursivamente enumerable, 62
recursivo, 61
universal, 100
lenguaje aceptado
por un aut omata a pila
por estado nal, 42
por pila vaca, 43
m aquina de Turing
con k cintas, 67
determinista, 60
no determinista, 69
m
1
2
uina RAM, 123
paso de computaci on, 60
en un aut omata a pila, 42
propiedad
de los lenguajes recursivamente
enumerables, 103
rechazo
por una m aquina de Turing, 61
reducci on, 102
relaci on
de equivalencia, 33
Teorema
Equivalencia entre AFD y AFN,
8
equivalencia entre AFD y AFN
, 11
existencia de la m aquina univer-
sal, 99

Вам также может понравиться