Professional Documents
Culture Documents
+
es el conjunto de todas las palabras nitas construidas con los simbolos
de . esto es el conjunto
+
es igual al conjunto de todos las cadenas nitas
de simbolos de .
Advertencia. El conjunto
+
contiene palabras de todas las longitudes
nitas incluyendo una unica palabra de longitud cero, la palabra vacia, a la
que denotaremos con el simbolo c.
Denicin 1 Un -lenguaje es un conjunto 1 _
+
.
En lo que sigue, (cuando el contexto lo permita), evitaremos usar el
termino -lenguaje y a cambio usaremos simplemente el termino lenguaje.
Ejemplo 2 Sea 1a| el lenguaje de los -palindromos, esto es el conjunto
de todas las cadenas nitas de simbolos de que se leen igual de izquierda
a derecha que de derecha a izquierda.
viii 1. Problemas y lenguajes
Dada r = r
1
r
2
...r
n
una palabra en el alfabeto (esto es r
1
r
2
...r
n
+
),
el simbolo r denotara el reverso de r. es decir la palabra r
n
r
n1
...r
1
. Note
que el lenguaje de los palindromos es igual a
r
+
: r = r
Pregunta. Es 1a| un lenguaje computable?
Es claro que una respuesta a la pregunta anterior implica denir antes,
de manera precisa, el signicado de la expresion: lenguaje computable. In-
tuitivamente un lenguaje es computable si y solo si existe un procedimiento
mecanico que permite reconocer los elementos del lenguaje.
Denicin 3 1 _
+
es decidible (o computable) si y solo si existe un
algoritmo tal que dado r
+
. el algoritmo acepta r si y solo si
r 1.
La denicion anterior no es muy diferente a la denicion intuitiva de
lenguaje computable, y al igual que esta, nos obliga a aclarar primero el
signicado de algunos de los terminos utilizados, en particular el signicado
del termino algoritmo.
Pregunta (La pregunta central de la teoria de la computacion). Que
es un algoritmo?
Respuesta. Un algoritmo es una maquina computadora.
Muy probablemente la respuesta que acabamos de dar a la pregunta
central de la teoria de la computacion es un respuesta que deja insatisfecho
a mas de un lector. Los lectores mas condecendientes aceptaran que esta
es una buena respuesta si podemos aclarar (de una vez por todas) que es
una maquina computadora. Bueno, de alguna manera, este es el objetivo
central del presente libro.
1.2 Modelos de computacion
Uno de los objetivos de este libro es estudiar algunos de los muchos modelos
de computacion que han sido propuestos como respuestas parciales a la
pregunta: que es una maquina computadora? La denicion y el analisis
de modelos concretos los pospondremos hasta los capitulos subsiguientes.
En esta breve seccion tan solo intentaremos acotar el posible signicado
de la expresion: modelo de computacion. Para empezar podemos decir
que, jando el alfabeto , un modelo de computacion es un dispositivo que
procesa elementos de
+
y que posee las siguientes caracterisiticas
1. Puede leer el input, esto es dado r . una maquina computadora
al procesar r tiene la habilidad de leer cada uno de los caracteres de
r.
1.2 Modelos de computacion ix
2. Aunque podria almacenar una cantidad ilimitada de informacion, en
cada instante de la computacion la maquina computadora tan solo
puede usar una cantidad nita y acotada de informacion.
3. Las operaciones que la maquina ejecuta en un instante dado estan
completamente determinadas por: los caracteres de r, el input, que
la maquina se encuentra leyendo en ese instante y por el fragmento
de la informacion almacenada que la maquina se encuentra leyendo
en ese instante.
Para dotar a un dispositivo de computo de estas tres habilidades podemos
imaginar que la maquina cuenta con:
1. Una cabeza lectora que lee a lo mas un caracter en cada instante de
la computacion.
2. Una memoria, representada por: un conjunto nito de estados, que
pueden ser usados para almacenar una cantidad nita de informacion
(cantidad esta que es proporcional al tamao del conjunto de esta-
dos); y posiblemente un dispositivo externo de memoria que podria
almacenar una cantidad ilimitada de informacion, pero de la cual solo
es posible usar una cantidad acotada en cada instante de la computa-
cion.
3. Una tabla nita de transiciones o tabla de mando, la cual determina,
en cada instante de la computacion, la operacion que la maquina ha
de realizar. Tal decision ha de tomarse teniendo en cuenta (unica y
exclusivamente) el caracter que lee la cabeza lectora en ese instante y
el fragmento de la informacion, almacenada en el dispositivo externo,
que la maquina usa en ese instante. Ademas, las operaciones que la
maquina puede realizar se limitan a: cambiar de estado, reemplazar
a lo mas un caracter del input y escribir (o borrar) una cantidad
acotada de caracteres en el dispositivo externo de memoria (si es el
caso que la maquina posee uno).
Podemos imaginar una maquina computadora como un dispositivo com-
puesto por: un numero nito de cintas semi-innitas, una cabeza lectora (o
lecto-escritora) por cada una de las cintas, un dispositivo interno de memo-
ria y una tabla de mando. Cada cinta semi-innita esta compuesta por una
coleccion enumerable y bien ordenada de celdas que podemos identicar,
o etiquetar, con los numeros naturales. Cada una de las celdas, en cada
instante de la computacion, puede o estar ocupada por un caracter o estar
vacia. supondremos que el alfabeto de la maquina contiene un simbolo
especial, digamos , para indicar celdas vacias (o, lo que es lo mismo, es-
pacios en blanco). Supondremos que al inicio de la computacion el input
r se encuentra escrito en el extremo izquierdo de una de las cintas de la
maquina, esto es si r = r
1
...r
n
. supondremos entonces que r ocupa las
x 1. Problemas y lenguajes
primeras :-celdas de una de sus cintas, a la que llamaremos cinta de en-
trada. Por otro lado, supondremos que las celdas a la derecha de la :-esima,
en la celda de entrada, se encuentran ocupadas por espacios en blanco, (esto
es por el caracter ). Cada cinta cuenta con una cabeza lecto(escritora)
que en algunos casos se podra mover en las dos direcciones (de izquierda a
derecha y de derecha a izquierda) y que en otros casos solo se podra mover
de izquierda a derecha. Cada cabeza lectora puede leer el contenido de
la celda sobre la que se halla ubicada, si la cabeza es lecto-escritora po-
dra, adicionalmente, reemplazar dicho caracter por algotro cualquiera de
los caracteres del alfabeto de la maquina. Una transicion de la maquina
consiste en:
1. Leer los caracteres de las celdas sobre las que se hallan las cabezas
lectoras.
2. Reemplazar cada uno de estos caracteres, por un caracter diferente o
por el mismo (i.e. no realizar reemplazo alguno).
3. Mover cada una de las cabezas lectoras a alguna de las celdas con-
tiguas a la celda sobre la que actualmente se encuentra. Dado i N
las celdas contiguas a la celda i-esima son la i 1-esima, la i-esima y
la i + 1-esima.
4. Cambiar de estado.
Que transicion realiza la maquina dependera de la conguracion en la
que se encuentre la maquina, donde una conguracion esta constituida por
El estado interno de la maquina. La maquina cuenta con un con-
junto de estados, su dispositivo interno de memoria, el cual le permite
codicar informacion referente a: que acciones(transiciones) acaba de
realizar y que acciones pretende realizar.
Los caracteres que estan siendo leidos en ese instante.
Dado que el alfabeto de la maquina es nito, el conjunto de estados es
nito y el numero de cintas es nito, tenemos que el numero de las posibles
conguraciones es nito.
La maquina cuenta, adicionalmente, con una tabla nita de mando
que especica para cada conguracion de la maquina, cual es la tran-
sicion que esta debe realizar.
Lo anterior esta muy lejos de ser una denicion de maquina computa-
dora. Aun asi lo anterior nos permite desde ya decir algunas cosas no
evidentes acerca de maquinas computadoras. Es posible argumentar, a
partir de la discusion precedente, que el numero de las maquinas computa-
doras es enumerable, y de ello podemos concluir que existen lenguajes no
computables.
1.2 Modelos de computacion xi
Teorema 4 Dado un alfabeto no vacio, existe 1 _
+
tal que 1 no es
decidible.
Proof. Note simplemente que el cardinal del conjunto de todos los -
lenguajes es igual a 2
I0
. Recuerde que
0
2
I0
. por lo que existen mas
lenguajes a ser decididos que maquinas que puedan decidirlos. Tenemos
entonces que existe una cantidad no enumerable de lenguajes no decidibles.
Dado que existen lenguajes no decidibles, es posible que 1a| sea uno de
ellos. Es claro que existen procedimentos, a los que informalmente podemos
llamar algoritmos, que pueden ser usados para reconocer el lenguaje 1a|.
No es dicil disear un programa que pueda ser usado para reconocer palin-
dromos (ejercicio: disee un tal programa). Toda nocion formal de com-
putabilidad debe capturar de manera adecuada la nocion intuitiva de com-
putabilidad, y en consecuencia todo lenguaje intuitivamente computable
debe ser computable si se considera una nocion formal de computabilidad
que quepa considerar adecuada. En los capitulos siguientes introducire-
mos diferentes modelosde computacion, o lo que es lo mismo diferentes
nociones de computabilidad, y estudiaremos el lenguje 1a| a la luz de estas
deniciones formales.
xii 1. Problemas y lenguajes
This is page xiii
Printer: Opaque this
2
Automatas regulares
En este capitulo estudiaremos la clase de los automatas regulares. Los
automatas regulares son, en cierto sentido, las maquinas computadoras
mas elementales que podamos imaginar. Es por ello, entre otras cosas,
que su poder de computo es muy limitado. Un automata regular es un
dispositivo de computo que: carece de un dispositivo externo de memoria,
cuenta con una cabeza de solo lectura la cual, ademas, solo puede moverse
en una direccion.
2.1 Automatas nitos y lenguajes regulares
Advertencia. A partir de este punto, en lo que queda del libro, supon-
dremos jado un alfabeto . Podemos suponer, como es costumbre en
teoria de la computacion, que es igual a 0. 1 .
Un automata regular es un cuadrupla (Q. c
0
. 1. c) . donde:
1. Q es un conjunto nito, el conjunto de estados del automata .
2. c
0
Q. es un elemento distinguido de Q. que sera llamado el estado
inicial del automata .
3. 1 _ Q es el conjunto de estado nales o estados de aceptacion del
automata .
4. c. la funcion de transicion, es una funcion de Q en Q.
xiv 2. Automatas regulares
Dado un alfabeto y dado un -automata regular supondremos que
posee una cinta semiinnita constituida por una cantidad enumerable de
celdas, supondremos ademas que la cinta se extiende de izquierda a derecha
empezando en una celda inicial. Cada celda de tiene la capcidad de
albergar un unico caracter del conjunto ' . donde es un caracter
especial que denota espacio en blanco o, lo que es lo mismo, celda vacia. Al
comienzo de la computacion el input r = r
1
r
2
...r
n
se encuentra ubicado
en el extremo izquierdo de la cinta ocupando los primeros : caracteres. Al
comienzo de la computacion la cabeza lectora de la maquina se encuentra
ubicada sobre la primera celda leyendo el caracter r
1
y el estado de la
maquina es el estado interno inicial c
0
. Al comenzar la computacion la
cabeza lectora de la maquina se dezplaza a la derecha, de celda en celda
leyendo de a un caracter. La computacion termina cuando la maquina
encuentra la primera celda ocupada por un caracter . esto es cuando la
cabeza lectora llega al nal del input. El caracter sera usado para denotar
el espacio en blanco y para indicar que la computacion debe terminar. Al
terminar la computacion la maquina se encuentra en un estado interno
c Q. Si c 1. la maquina acepta el input, en caso contrario lo rechaza.
Denicin 5 1. 1() = r
+
: acepta r . Dado . diremos
que 1() es el lenguaje reconocido por el automata .
2. Dado 1 _
+
. diremos que 1 es un lenguaje regular si y solo si existe
, un automata regular, tal que 1 = 1() .
Comentario 6 La denicion de automata regular implica que el tiempo de
computo empleado por un tal automata al procesar un input r es igual a [r[
(el simbolo [r[ denota la longitud del input r), donde el iempo de computo
de al procesar r es simplemente el numero de transiciones realizados por
la maquina durante la computacion. Tenemos entonces que todo automata
regular reconoce el lenguaje regular 1() en tiempo real. Reconocer un
lenguaje no trivial usando una maquina secuencial (es decir, una maquina
que no realiza mas de una transicion de manera simultanea) requiere, como
minimo, tiempo real. Lo anterior implica que los automatas regulares son
maquinas secuenciales optimas, cuando de reconocer lenguajes regulares se
trata, el problema es que los lenguajes computables mas interesantes y mas
importantes no son regulares.
Sea = 0. 1 . Dada r
+
. el simbolo |r|
0
denotara el numero
de caracteres de r que son iguales a 0. reciprocamente |r|
1
denotara el
numero de unos.
Ejemplo 7 Sea 1 = r
+
: |r|
0
= 1 (mod2) y |r|
1
= 1 (mod2) . El
lenguaje 1 es un lenguaje regular. Sea = (Q. c
0
. 1. c) el automata
regular denido por
1. Q =
c
10
00
. c
10
01
. c
11
00
c
11
01
.
2.2 El lema de bombeo para lenguajes regulares xv
2. c
0
= c
10
00
.
3. 1 =
c
11
01
0. c
10
00
= c
10
01
. c
0. c
10
01
= c
10
00
. c
0. c
11
00
= c
11
01
c
0. c
11
01
= c
11
00
. c
1. c
10
00
= c
11
00
. c
1. c
10
01
= c
11
01
c
1. c
11
00
= c
10
00
. c
1. c
11
01
= c
10
01
.
Es facil convencerse de que 1 = 1() .
Note que, en el ejemplo anterior, el lenguaje 1 es regular esencialmente
porque la informacion relevante relativa a los fragmentos iniciales de una
instancia de 1 puede ser codicada usando un numero acotado de bits,
especicamente dos: un bit que codica la paridad del numero de unos
leidos y un segundo bit que codica la paridad del numero de ceros leidos
(los bits a la derecha de los subindices y superindices que hemos usado
como distintivos de los elementos de Q). El teorema de Myhill-Nerode
(que estudiaremos mas adelante), indica que un lenguaje 1 es regular si y
solo si la informacion relevante, referente a los segmentos iniciales de las
instancias de 1. puede ser codicada usando un numero acotado de bits (o
equivalentemente de estados, note que los estados son el unico dispositivo
de memoria con que cuenta un automata regular). En el caso de lenguajes
regulares generales, la informacion relevante relativa al fragmento inicial,
que del input la maquina ha leido, es la etiqueta (o numero) de la clase
de equivalencia a la que pertenece este fragmento. El teorema de Myhill-
Nerode arma precisamente que 1 es regular si y solo si el numero de estas
clases de equivalencia es nito (si y solo si es posible decribir la etiqueta de
cada clase usando una cantidad acotada de bits).
2.2 El lema de bombeo para lenguajes regulares
El lema de bombeo es una herramienta poderosa que puede ser usada para
probar no regularidad.
Teorema 8 (lema de bombeo para lenguajes regulares)
Dado 1 un lenguaje regular, existe 1 N tal que si r 1 y [r[ _ 1.
existen entonces n. . n
+
para las cuales se satisface lo siguiente
1. r = nn.
2. [[ 0 y [n[ _ 1
3. Para todo : N se tiene que n
n
n 1.
xvi 2. Automatas regulares
Proof. Sea = (Q. c
0
. 1. c) un automata regular que reconoce el lenguaje
1. Al automata podemos asociarle un digrafo etiquetado G[] el cual
esta denido por
\ (G[]) = Q.
Dados c. j \ (G[]) y dado a . existe una arista de c a j con
etiqueta a si y solo si c ((a. c)) = j.
Note que una computacion de es simplemente un camino nito en
G[] con origen en c
0
. Note tambien que todo camino nito con origen
en c
0
es una computacion de . y que las computaciones aceptantes estan
en correspondencia biyectiva con los caminos de este tipo que tienen su
vertice nal dentro del conjunto 1 \ (G[]) .
Armamos que el 1 en el enunciado del teorema es igual a [Q[ + 1.
Dado que el grafo G[] tiene tamao [Q[ . todo camino de longitud mayor
o igual que [Q[ + 1 debe pasar al menos dos veces por un mismo vertice,
digamos j Podemos partir un tal camino en tres fragmentos a saber.
1. Fragmento inicial, que va de c
0
hasta la primera visita al vertice j.
2. Fragmento intermedio, el bucle que va de la primera visita a j hasta
la segunda visita a j.
3. Fragmento nal, desde la segunda visita al vertice j hasta el vertice
nal.
Dada r 1. si [r[ _ [Q[ + 1 el camino determinado por r. al que
denotaremos `
r
, puede partirse en tres fragmentos, el inicio, el bucle y el
nal. Estos tres fragmentos corresponden a fragmentos de r. digamos n.
y n. Dado : N, el camino determinado por la palabra n
n
n tiene la
siguiente estructura.
1. El inicio es identico al inicio del camino `
r
.
2. El fragmento intermedio corresponde a recorrer : veces el fragmento
intermedio de `
r
(recuerde que este fragmento intermedio es un bucle,
y por lo tanto es posible recorrer este bucle tantas veces como sea
necesario).
3. El fragmento nal es identico al fragmento nal de r (o mejor, del
camino determinado por r)
Ahora, dado que r 1 el vertice nal de `
r
pertenece a 1. Note que el
vertice nal del camino `
uu
n
u
es identico al vertice nal del camino `
r
. por
lo que la computacion de con input n
n
n es tambien una computacion
aceptante y esto implica que n
n
n 1. Note nalmente que es posible
tomar n y de tal forma que [n[ _ 1. esto es asi dado que todo fragmento
2.3 Automatas no deterministicos xvii
inicial, del camino `
r
. que tenga una longitud mayor o igual que [Q[ + 1
debe contener un bucle
A continuacion probaremos que 1a| no es regular.
Corolario 9 (Primera cota inferior para 1)
No existe un automata regular que pueda reconocer el lenguaje 1a|.
Proof. Suponga que 1a| es regular y sea 1 como en el enunciado del lema
de bombeo. Considere r = 1
1+1
01
1+1
. El lema de bombeo arma que
existen palabras n. . y n tales que r = nn. [n[ _ 1 y tales que dado
i _ 2 la palabra n
I
n 1a|. Note que la desigualdad [n[ _ 1 implica
que esta totalmente contenido en el fragmento izquierdo de r constituido
por 1 + 1 unos. Tenemos entonces que n
I
n = 1
1+|u|I|u|
01
1
que no es
un palindromo dado que [[ _ 1
Del corolario anterior hemos dicho que es una cota inferior para 1a|, dado
que este corolario establece que los recursos computacionales que denen
la clase de los automatas regulares no son sucientes para reconocer el
lenguaje 1a|. para ello se requiere algo mas, se necesita mayor poder de
computo.
No es de extraar que el lenguaje 1a| no pueda ser reconocido por un
automata regular. Note que, en la denicion de automata regular, hemos
impuesto demasiadas limitaciones al poder de computo de este tipo de
dispositivos, algunas de las mas prominentes limitaciones son las siguientes:
La cabeza lectora solo puede moverse en una direccion, esto es de
izquierda a derecha.
La maquina no tiene un dispositivo de memoria externo.
La maquina no tiene funciones de escritura
La maquina no puede marcar (o transformar) fragmentos o caracteres
del input.
En lo que sigue estudiaremos modelos que podemos concebir como obtenidos
a partir de nuestro modelo basico (la clase de los automatas regulares) elim-
inando una o varias de estas (y otras) limitaciones.
2.3 Automatas no deterministicos
En esta seccion estudiaremo un segundo modelo de computacion, obtenido
a partir del modelo basico, adicionando a este una habilidad: transiciones
no deterministicas.
Un automata regular no deterministico es un automata = (Q. c
0
. 1. c)
para el cual la relacion de transicion c no necesariamente es funcional, esto
es esta constituido por un conjunto de estados Q. un estado inicial c
0
, un
xviii 2. Automatas regulares
conjunto de estados aceptantes 1 y una relacion de transicion c _ QQ.
Es discutible que el no-determinismo sea una habilidad computacional y que
las maquinas no deterministicas sean mas potentes que las deterministicas
(para el caso de maquinas de Turing de tiempo polinomial la pregunta: el
no-determinismo incrementa el poder de computo? No es otra cosa que la
famosa, y casi mistica, pregunta: es 1 igual a 1?). Existen al menos
dos maneras de pensar el nodeterminismo:
Una maquina no deterministica es una maquina capaz de realizar
adivinanzas afortunadas.
Una maquina no deterministica es una maquina capaz de realizar en
paralelo un gran numero de computaciones.
Es claro que desde cualquiera de las dos perpectivas anteriores el no-
determinismo aparece como una habilidad adicional (un recurso computa-
cional) que puede (y debe) incrementar el poder de nuestras maquinas.
Sea = (Q. c
0
. 1. c) un automata no deterministico.
Denicin 10 Dado r = r
1
...r
n
un input de . una computacion de
con input r es una secuencia c
0
c
1
...c
n
de elementos de Q tal que para todo
i _ : se tiene que (r
I
. c
I1
. c
I
) c.
Una computacion es entonces una secuencia nita y ordenada de con-
guraciones que adicionalemente satisface la siguiente condicion: todo par
de conguraciones consecutivas estan conectadas por una transicion de la
maquina.
La nocion de conguracion depende del modelo de computacion. Intu-
itivamente, una conguracion es una descripcion completa del estado de
la computacion en un instante dado. En el caso de los automatas regu-
lares es suciente especicar el estado (estado interno, elemento de Q) en
el que se encuentra la maquina para describir completamente el estado de
la computacion. Esto es asi dado que en el instante t de la computacion
la cabeza lectora de la maquina se encuentra sobre la t-esima celda de su
cinta (leyendo el t-esimo caracter) y el contenido de la cinta en este in-
stante es identico al contenido de la cinta en el instante 0. Esto implica
que el unico parametro que nosotros podriamos desconocer es precisamente
el estado interno de la maquina, y es este parametro (y es precisamente lo
desconocido) lo que la conguracion describe y debe describir.
Denicin 11 Dado un automata regular no deterministico y dado
r
+
. diremos que acepta r si y solo si existe una computacion de
con input r que termina en un estado de aceptacion.
En esta seccion probaremos que los automatas regulares no deterministi-
cos y los automatas regulares deterministicos tienen exactamente el mismo
poder de computo.
2.4 Automatas de doble via: equivalencias xix
Teorema 12 Todo automata regular no deterministico puede ser simulado
por un automata regular.
Proof. Sea 1 un lenguaje reconocible mediante un automata regular no
deterministico y sea = (Q. c
0
. 1. c) un tal automata que reconoce 1.
Considere el automata regular
det
=
Q
det
. c
det
0
. 1
det
. c
det
denido por:
1. Q
det
= { (Q) .
2. c
det
0
= c
0
.
3. 1
det
= Q : 1 = ? .
4. La funcion c
det
es denida por
c
det
((a. )) = c Q : j (c ((a. j)) = c)
Es facil vericar que 1() = 1
det
.
El siguiente corolario es una consecuencia inmediata de los dos teoremas
anteriores
Corolario 13 (Segunda cota inferior para 1a|)
No existe un automata regular no deterministico que pueda reconocer el
lenguaje 1a|.
2.4 Automatas de doble via: equivalencias
En esta seccion introduciremos un clase de maquinas aparentemente mas
poderosas que los automatas regulares, a esta clase de maquinas las llamare-
mos automatas de doble via (2way-automata). Los automatas de doble via
son automatas regulares provistos de una cabeza lectora que puede moverse
en las dos direcciones. Es de esperar que esta habilidad adicional conera
mayor poder de computo a estas maquinas, y es de esperar que tal poder
adicional sea suciente para reconocer el lenguaje 1a|. Intuitivamente, si
la cabeza lectora de la maquina puede moverse de izquierda a derecha y de
derecha a izquierda, puede entonces moverse varias veces a lo largo de la
cinta en las dos direcciones y vericar (o, reciprocamente, vericar que no es
el caso) que para todo i _ [r[ . el caracter i-esimo y el caracter [r[ i-esimo
coinciden. Sorprendentemente este no es el caso. El teorema principal de
esta seccion arma que los automatas de doble via tienen exactamente el
mismo poder de computo que los automatas regulares (y en consecuencia
los automatas de doble via son incapaces de reconocer el lenguaje 1a|).
Denicin 14 Un automata de doble via es una quintupla
= (Q. c
0
. 1. . c)
xx 2. Automatas regulares
tal que Q es un conjunto nito de estados, c
0
Q es el estado inicial,
1 _ Q y c es una funcion de Q en Q. .
Dado a y c Q. si la maquina se encuentra leyendo el caracter a, en
el estado c y c (a. c) = (. j) . entonces la cabeza de la maquina se desplaza
una posicion a la derecha y el estado interno de la maquina cambia de c a j.
Por el contrario si c (a. c) = (. j) . la cabeza de la maquina se mueve una
posicion a la izquierda. Dado que la cabeza de la maquina podria llegar
al extremo derecho de la maquina y devolverse a la izquierda, nada nos
garantiza que la computacion de la maquina terminara en algun momento,
es por ello que en la denicion de automata de doble via hemos agregado el
parametro . La idea es que si el estado interno de la maquina pertenece
a la maquina para.
2.4.1 El teorema de Myhill-Nerode
El teorema de Myhill-Nerode puede ser entendido como una caracterizacion
algebraica de los lenguajes regulares. Caracterizaciones de este tipo siempre
son utiles en Matematicas. Como lo vermos mas adelante, el teorema de
Myhill-Nerode puede ser usado para probar algunos hechos importantes
referentes a los lenguajes regulares.
Denicin 15 Dado 1
+
. podemos denir una relacion de equivalencia
sobre
+
asociada a 1. La relacion 1
J
_
+
+
se dene por
r1
J
n si y solo si \n(rn 1 = nn 1)
Teorema 16 (Myhill-Nerode)
1 es regular si y solo si
1
L
es nito.
Proof. Sea 1
+
tal que la relacion 1
J
es de indice nito, (es decir el
conjunto
1
L
1
L
.
c
0
= [c]
1
L
.
1 =
[r]
1
L
: r 1
.
La funcion c : Q Q esta denida por
c
a. [r]
1
L
= [ra]
1
L
Es claro que es un automata regular, adicionalmente es facil probar
que 1() = 1.
2.4 Automatas de doble via: equivalencias xxi
Veamos ahora que si 1 es un lenguaje regular entonces la relacion 1
J
es de indice nito. Sea un automata regular que reconoce 1. Dada
r
+
. podemos denir una funcion
'
r
: Q Q de la siguiente manera:
'
r
(c) es igual al estado nal al que accede , al procesar el input r.
empezando en el estado c
Es facil probar que si
'
r
=
'
u
entonces r1
J
n. Tenemos entonces que
1
L
_ [Q[
|O|
.
2.4.2 Prueba de la equivalencia
En esta subseccion probaremos que la clase de los lenguajes regulares coin-
cide con la clase de los lenguajes aceptados por automatas de doble via, es
decir probaremos que todo automata de doble via puede ser simulado por
un automata regular.
Dado un automata de doble via denimos una relacion de equivalencia
=
'
_
+
+
de la manera siguiente:
r =
'
n si y solo si \t
+
( acepta rt si y solo si acepta nt)
Teorema 17 (Rabin-Scott-Sheperdson)
Dado . un automata de doble via, existe un automata regular tal
que 1() = 1
.
Proof. Lo que nosotros probaremos es que dado = (Q. c
0
. 1. . c) un
automata de doble via, el lenguaje aceptado por . al que denotaremos
con el simbolo 1() . satisface las condiciones impuestas en el enunciado
del teorema de Myhill-Nerode.
Dada r
+
, denimos una funcion
r
: Q Q ' 0 de la siguiente
manera:
Si c = c
0
. se dene
r
(c) como igual al estado al que accede .
si iniciamos la computacion con r como input, con la cabeza lectora
ubicada sobre el caracter nal de r. Si al imponer estas condiciones
iniciales el automata para con la cabeza lectora ubicada en una
posicion diferente al extremo izquierdo de r. o si no para del todo
se dene
r
(c) = 0.
Si c = c
0
. denimos de manera similar
r
(c) . la unica diferencia es
que en este caso asumimos que en el instante inicial la cabeza esta
ubicada en el extremo izquierdo de r.
Armacion. Dadas r. n
+
. se tiene que
r
=
u
implica r =
J(')
n.
Note que si : = [Q[ . la armacion anterior implica entonces que la
relacion de equivalencia =
J(')
esta constituida por a lo mas (: + 1)
n
clases.
En este punto podemos invocar el teorema de Myhill-Nerode para armar
que 1() es regular.
xxii 2. Automatas regulares
Corolario 18 (tercera cota inferior para 1a|)
Ningun automata de doble via puede reconocer el lenguaje 1a|.
El corolario anterior indica que, para reconocer el lenguaje 1a|. no es su-
ciente con adicionarle a nuestros automatas basicos la habilidad de mover
su cabeza lectora en las dos direcciones. Cuales son los recursos computa-
cionales necesarios para reconocer el lenguaje 1a|?
2.5 Ejercicios capitulo 2
1. (Trabajo de lectura) Investigue la nocion de automata regular con
transiciones en vacio.
2. Sea 1 = 1
n
01
n
: : N . use el lema de bombeo para probar que 1
no es regular.
3. Sea Reg el conjunto de todos los lenguajes regulares. Pruebe que Reg
es cerrado bajo uniones, intersecciones y complementos.
4. Dado 1 un lenguaje, se dene 1
+
como el lenguaje
n
1
...n
n
: : N y n
1
. .... n
n
1
Pruebe que si 1 es regular, entonces 1
+
tambien es regular.
5. Disee un algoritmo que resuelva el siguiente problema
El problema de la vacuidad
Input: , donde es un automata regular.
Problema: Decida si 1() es diferente de vacio.
6. Disee un algoritmo que resuelva el siguiente problema
El problema de la equivalencia
Input: (. A), donde y A son automatas regulares.
Problema: Decida si 1() = 1(A) .
7. Disee un algoritmo que resuelva el siguiente problema
El problema de la nitud
Input: , donde es un automata regular.
Problema: Decida si 1() es nito.
This is page xxiii
Printer: Opaque this
3
Automatas de pila
En este capitulo introduciremos un segundo modelo de computacion: los
automatas de pila. Los automatas de pila se diferencian de los automatas
regulares en que los primeros poseen un dispositivo externo de memoria (la
pila). Es de esperar que este dispositivo externo de memoria incremente
el poder de computo. Es plausible entonces que los automatas de pila, a
diferencia de los automatas regulares, sean capaces de reconocer el lenguaje
1a|.
3.1 Automatas de pila
Un automata de pila es una quintupla = (Q. . c
0
. 1. c) tal que
1. Q es un conjunto nito, el conjunto de estados de .
2. es un conjunto nito, el alfabeto de la pila.
3. c
0
Q es el estado inicial de .
4. 1 _ Q es el conjunto de estados de aceptacion.
5. La funcion de transicion c es una funcion de (
+
Q) en
+
Q
que satisface las siguientes condiciones. Dados a. / , n. n
+
y
c. j Q;
(a) Si c (a. n. c) = (n. j) . se tiene entonces que [[n[ [n[[ 0. 1
xxiv 3. Automatas de pila
(b) Si c (a. n. c) = (n. j) . se tiene entonces que o n = n o n @ n o
n @ n. (el simbolo n @ n denota que n es un fragmento inicial
de n).
(c) Dados r
1,
r
2
' c, se tiene que
c (a. n/. c) = (nr
1
r
2
. j) = c (a. n/. c) = (nr
1
r
2
. j)
Es decir, si r es el contenido de la pila, la manera en que r afecta
la computacion del automata esta completamente determinada
por el ultimo caracter de dicha palabra.
Un automata de pila es como un automata regular al que se le ha adi-
cionado un dispositivo externo de memoria, la pila. En cada transicion
del automata de pila este puede: o agregar un caracter a la derecha de la
palabra contenida en la pila, o borrar el ultimo caracter de esta palabra,
o dejar invariante el contenido de la pila. Lo que el automata escriba en
la pila puede ser usado en la computacion, aunque en cada instante de la
computacion el automata solo tenga acceso al ultimo caracter del contenido
de la pila. La nocion de conguracion para automatas de pila es un poco
mas compleja que la nocion de conguracion para automatas regulares.
Recuerde que una conguracion es una descripcion completa del estado de
la maquina en cada instante de la computacion. En consecuencia una tal
descripcion debe declarar, como minimo, lo que del estado de la maquina
es desconocido para el usuario. Dado que el automata de pila no puede es-
cribir, borrar caracteres o marcar caracteres en la cinta de entrada, en todo
instante de la computacion el contenido de la cinta es identico al contenido
de la cinta en el instante cero. Esto implica que no necesitamos incluir
en nuestra nocion de conguracion informacion referente al contenido de
la cinta. Por otro lado, dado que en cada transicion la cabeza lectora se
mueve una posicion a la derecha, en el instante t la cabeza lectora ha de
estar ubicada sobre la celda i-esima de la cinta de entrada. Tenemos en-
tonces que lo unico que no conocemos de entrada, respecto al estado de la
maquina, es su estado interno y el contenido de la pila.
Denicin 19 Dado = (Q. . c
0
. 1. c) un automata de pila, una con-
guracion de es una tripla (n. c. i)
+
QN.
Dado r = r
1
...r
n
+
. la computacion de con input r es una secuen-
cia ordenada y nita de conguraciones (c. c
0
. 1) . (n
1
. j
1
. 2) .... (n
n
. j
n
. : + 1)
que satisface la siguiente condicion: para todo i _ : se tiene que
c (r
I
. n
I1
. j
I1
) = (n
I
. j
I
)
Denicin 20 Dado = (Q. . c
0
. 1. c) un automata de pila, dado r =
r
1
...r
n
+
y dada
(c. c
0
. 1) . (n
1
. j
1
. 1) .... (n
n
. j
n
. : + 1)
3.1 Automatas de pila xxv
la computacion de con input r. diremos que acepta r si y solo si
n
n
= c y j
n
1.
Denicin 21 Dadas ..
+
, dada r
+
y dados c. j Q el simbolo
(.. c)
'
r
(. j) indica que si inicializaramos el automata con r como
input, c como estado interno y . como contenido de la pila, al terminar de
leer r el automata estaria en el estado j y con como contenido de la
pila.
Teorema 22 Los automatas de pila son incapaces de reconocer El lenguaje
1a|.
Proof. Suponga que = (. . Q. 1. c
0
. c) es un automata de pila que
reconoce el lenguaje 1a|. Suponga ademas que 1 = j
1
. .... j
y que
todos los estados en 1 son accesibles. Dado que el conjunto
+
es innito,
existen r. n
+
y existe i. , _ tales que:
1. r = n.
2. (c. c
0
)
'
rr
(c. j
I
) .
3. (c. c
0
)
'
uu
(c. j
I
)
4. (c. j
I
)
'
uu
(c. j
,
) .
5. rrnn 1a|.
Dado que rrrr y nnnn son palindromos, se tiene que j
I
. j
,
1. Note
que:
(c. c
0
)
'
rruu
(c. c
2
)
Y esto implica que el automata acepta la palabra rrnn. pero dado
que rrnn 1a|. podemos concluir que no reconoce el lenguaje 1a|.
Aunque los automatas de pila (deterministicos) son incapaces de recono-
cer 1a|. es facil probar que los automatas de pila son estrictamente mas
potentes que los automatas regulares. Note primero que todo automata
regular es un automata de pila que no usa la pila. Por otro lado es facil
vericar que el lenguaje 1a|
+
= 1
n
01
n
: : N puede ser reconocido por
un automata de pila, por otro lado es facil vericar (usando el lema de
bombeo) que el lenguaje 1a|
+
no es regular
Ejercicio 23 1. Pruebe que 1a|
+
no es regular.
2. Pruebe que 1a|
+
puede ser reconocido por un automata de pila.
xxvi 3. Automatas de pila
3.2 Automatas de pila no deterministicos y
lenguajes libres de contexto
En esta seccion estudiaremos los automatas de pila no deterministicos. A
diferencia de lo que sucede en el caso regular, el no-determinismo incre-
menta estrictamente el poder de computo de los automatas de pila. Como
veremos mas adelante el lenguaje 1a| puede ser reconocido por un au-
tomata de pila no deterministico, recuerde que 1a| no puede ser reconocido
por un automata de pila deterministico.
Un automata de pila no deterministico es una quintupla = (Q. . c
0
. 1. c)
tal que
1. Q es un conjunto nito, el conjunto de estados de .
2. es un conjunto nito, el alfabeto de la pila.
3. c
0
Q es el estado inicial de .
4. 1 _ Q es el conjunto de estados de aceptacion.
5. La relacion de transicion c es un subconjunto de (
+
Q)
(
+
Q) que satisface las siguientes condiciones. Dados a ,
n. n.
+
y c. j Q
(a) Si (a. n. c. n. j) c se tiene entonces que [[n[ [n[[ 0. 1
(b) Si (a. n. c. n. j) c se tiene entonces que o n = n o n @ n o
n @ n.
(c) Dados r
1
. r
2
' c, se tiene que
(a. n/. c. nr
1
r
2
. j) = (a. n/. c. nr
1
r
2
. j) c
Es decir, si r es el contenido de la pila, la manera en que r afecta
la computacion del automata esta completamente determinada
por el ultimo caracter de dicha palabra.
Las nociones de conguracion, computacion y aceptacion se denen de
manera similar a como se denieron en el caso deterministico.
Ejercicio 24 Dana de manera precisa las nociones de conguracion, com-
putacion y aceptacion para automatas de pila no deterministicos.
Denicin 25 Dado 1
+
diremos que 1 es libre de contexto si y solo
si existe un automata de pila no deterministico que reconoce 1.
Proposicin 26 1a| es libre de contexto.
Proof. Considere el automata de pila = (Q. . c
0
. 1. c) denido por:
3.2 Automatas de pila no deterministicos y lenguajes libres de contexto xxvii
1. Q = c
t
. c
b
. c
:
2. = .
3. c
0
= c
t
.
4. 1 = c
b
5. c es la funcion de
+
Q en
+
Q denida por
(a) Suponga que r = na, en este caso se tiene que c (a. r. c
t
) =
(ra. c
t
) . (n. c
b
) .
(b) Suponga que r = n/ con / a . en este caso se tiene que
c (a. r. c
t
) = (ra. c
t
) . (n. c
:
) .
(c) Suponga que r = na, en este caso se tiene que c (a. r. c
b
) =
(n. c
b
) .
(d) Suponga que r = n/ con / a . en este caso se tiene que
c (a. r. c
b
) = (n. c
:
) .
(e) Suponga que r = na, en este caso se tiene que para todo /
vale la ecuacion c (/. r. c
:
) = (n. c
:
) .
(f) Suponga que r = c. en este caso se tiene que c (/. c. c
:
) =
(c. c
:
) .
Es facil vericar que el automata reconoce el lenguaje 1a|
Que el lenguaje 1a| sea libre de contexto no debe hacernos pensar que
todo lenguaje es libre de contexto, recuerde que existen lenguajes no com-
putables y que los lenguajes libres de contexto son computables. Tampoco
debemos pensar que todo lenguje computable es libre de contexto. Es posi-
ble establecer un lema de bombeo para lenguajes libres de contexto, el cual
enuciaremos sin prueba a continuacion (la prueba se deja como trabajo de
lectura para el lector).
Lema 27 (lema de bombeo para lenguajes libres de contexto)
Dado 1 un lenguaje libre de contexto existe 1 N tal que si r 1 y [r[ _
1, entonces la palabra r puede escribirse como nnrn. satisfaciendose que
1. [r[ _ 1.
2. [nr[ _ 1.
3. n
I
nr
I
n 1.
El lema de bombeo, (al igual que el lema de bombeo para lenguajes
regulares), nos permite probar de ciertos lenguajes,que estos no son libres
de contexto. Veamos un ejemplo.
Sea el lenguaje 1
a
I
/
,
c
|
d
l
: i = 0 o , = / = |
no es libre de contexto.
xxx 3. Automatas de pila
This is page xxxi
Printer: Opaque this
4
Maquinas de Turing
En este capitulo introduciremos y estudiaremos el non plus ultra de los
modelos de computacion: el modelo de maquina de Turing.
Advertencia. A partir de este momento el simbolo log (:) denotara la
parte entera del logaritmo en base dos de :.
4.1 Maquinas de Turing con una cinta
Para empezar introduciremos el modelo de maquinas de Turing de una sola
cinta. Podemos pensar en una maquina de Turing de una sola cinta (para
abreviar, a este tipo de maquinas las llamaremos simplemente maquinas
deTuring) como en un automata regular dotado con una cabeza que puede
moverse en las dos direcciones y que ademas puede escribir en la cinta de
entrada. Dado que una maquina de Turing puede escribir en la cinta de
entrada, una tal maquina puede usar la cinta de entrada como dispositivo
externo de memoria. Las maquinas de Turing son maquinas que combinan
las habilidades de los automatas de pila y de los automatas de doble via.
Es de esperar que esta combinacion de habilidades de como resultado un
tipo de automata mas poderoso.
Denicin 29 Una maquina de Turing es una sextupla =(Q. . c
0
. 1. c. )
tal que:
1. Q es un conjunto nito, el conjunto de estados de la maquina.
xxxii 4. Maquinas de Turing
2. es un conjunto nito, el alfabeto de la maquina que satisface '
_ .
3. c
0
Q es el estado inicial de la maquina.
4. 1 Q es el conjunto de estados nales de la maquina.
5. La funcion de transicion c es una funcion de Q en Q
. . .
6. 1 Q y si el estado interno de la maquina pertenece a la
maquina para.
Dados a. / ; c. j Q y / . . , si c (a. c) = (/. j. /), cada
vez que la maquina se encuentre en el estado c leyendo el caracter a. la
maquina borrara a. escribira a cambio el caracter / (reemplazara a por /),
pasara del estado c al estado j y se movera a la derecha, a la izquierda o
permanecera en su lugar dependiendo de quien sea / (indica movimiento
a la derecha, indica movimiento a la izquierda y indica que la cabeza
de la maquina permanece sobre la misma celda, i.e. no se mueve).
Ejemplo 30 Considere el lenguaje denido por
1
n
: : es primo
Recuerde que en el capitulo 3 probamos, usando el lema de bombeo para
lenguajes libres de contexto, que no puede se reconocido por un automata
de pila no deterministico. No es facil, pero es posible, disear una maquina
de Turing que reconozca el lenguaje .
Del ejempplo anterior tenemos que existen lenguajes que no son libres
de contexto pero que pueden ser reconocidos por maquinas de Turing.
Denicin 31 Diremos que 1 _
+
es Turing-computable si y solo si
existe una maquina de Turing que reconoce 1.
Denicin 32 Una conguracion de = (Q. . c
0
. 1. c. ) es una tripla
(n. c. i) tal que
1. n
+
(es el contenido de la cinta)
2. c Q (es el estado interno de la maquina).
3. i _ [n[ (es la posicion de la cabeza lectora).
4.1 Maquinas de Turing con una cinta xxxiii
4.1.1 La tesis de Church y la jerarquia de Chomsky
Hasta el momento hemos estudiado esencialmente tres modelos de com-
putacion: automatas regulares, automatas de pila y maquinas de Turing.
Considere los siguientes conjuntos
Co:j = 1
+
: 1 es computable
Reg = 1
+
: 1 es regular
1C = 1
+
: 1 es libre de contexto
TC = 1
+
: 1 es Turing-computable
Aunque el primero de estos conjuntos no esta denido de manera formal
podemos aceptar su existencia y conformarnos por ahora con una denicion
informal: un lenguje 1 es computable si y solo si existe un procedimiento
mecanico nitista (una maquina discreta) capaz de decidir 1.
Da los conjuntos antes denidos sabemos que
Reg $ 1C $ TC _ Co:j
La tesis de Church arma que Co:j = TC. La tesis de church no es una
armacion matematica suceptible de prueba, dado que uno de los terminos
involucrados en la tesis (el termino Co:j) no posee una denicion formal.
La tesis de Church puede ser entendida de diversas maneras:
Como una denicion formal (aunque posiblemente inadecuada de la
nocion de computabilidad).
Como una armacion semiotica la cual arma que la nocion intu-
itiva de computabilidad es capturada completamente por un simbolo
matematico: Turing-computabilidad.
Como una armacion pragmatica que nos permite evitar las inmensas
dicultades involucradas en el diseo de una maquina de Turing que
resuelva un problema concreto no trivial: la tesis de Church arma
que si usted es capaz de exhibir un procedimiento, que quepa llamar
mecanico y nitista, que resuelve el problema 1. usted ha probado
que existe una maquina de Turing que resuelve 1.
En lo que queda del texto usaremos convenientemente la perspectiva
pragmatica.
Existe fuerte evidencia a favor de la tesis de Church, tal evidencia se
reduce esencialmente a los siguientes hechos:
1. No se conoce un problema que sea calculable en algun sentido y que
no sea Turing-calculable.
2. De toda nocion formal de computabilidad propuesta hasta la fecha
se ha podido probar que esta embebida en la nocion de Turing-
computabilidad.
xxxiv 4. Maquinas de Turing
Existen muchos otras clases de lenguajes computables (ademas de los tres
estudiados hasta el momento) que son importantes desde el punto de vista
teorico. Una tal clase es la clase de los lenguajes sensitivos al contexto,
los cuales pueden ser caracterizados a partir de la nocion de automata
linealmente acotado.
Denicin 33 Un automata linealmente acotado es una septupla
(Q. . c
0
. 1. c. . 1)
tal que
1. Q es un conjunto nito, el conjunto de estados de la maquina.
2. es un conjunto nito, el alfabeto de la maquina que satisface '
_ .
3. c
0
Q es el estado inicial de la maquina.
4. 1 Q es el conjunto de estados nales de la maquina.
5. La funcion de transicion c es una funcion de Q en Q
. . .
6. 1 Q y si el estado interno de la maquina pertenece a la
maquina para.
7. 1 es una funcion lienal tal que, cuando la maquina ' procesa un
input r de tamao :. ella solo puede usar las celdas ocupadas por los
caracteres de r y 1 (:) celdas adicionales localizadas a la derecha del
ultimo caracter de r.
Tenemos entonces que un automata linealmente acotado es una maquina
de Turing de una sola cinta a la que se le impone una condicion adi-
cional, referente esta a la cantidad de espacio de trabajo disponible para la
maquina.
Denicin 34 Dado 1
+
diremos que 1 es un lenguaje sensitivo al
contexto si y solo si existe un automata linealmente acotado tal que
reconoce 1.
Sea oC = 1
+
: 1 es sensitivo al contexto .
Teorema 35 oC $ TC.
Del teorema anterior (y aceptando la tesis de Church) tenemos que
Reg $ 1C $ oC $ TC = Co:j
Esta jerarquia de lenguajes computables (de lenguajes formales) se le
conoce como la Jerarquia de Chomsky.
4.1 Maquinas de Turing con una cinta xxxv
4.1.2 Turing computabilidad de los lenguajes libres de
contexto
En esta breve subseccion probaremos que todo automata de pila puede ser
simulado por una maquina de Turing, esto implica en particular que todo
lenguaje libre de contexto es Turing-computable.
Sea = (Q. . c
0
. 1. c) un automata de pila deterministico. Construire-
mos una maquina de Turing T () = (Q
+
.
+
. c
0
. 1. c
+
. ) capaz de simular
el automata '. La maquina ' esta dada por:
1. Q
+
= Q'
c
o
: c Q y a '
c : c Q .
2.
+
= ' (a. 1) : a ' # .
3. La funcion c
+
esta denida por:
(a) Para todo a
+
# y para todo c Q se tiene que c
+
(a. c) =
((a. 1) .
c
o
. ) .
(b) Para todo a. /
+
y para todo c Q se tiene que c
+
(a.
c
b
) =
(a.
c
b
. ) .
(c) Para todo a
+
y para todo c Q. si $ denota que la celda
actual no contiene caracteres y si c (/. na. c) = (n.
1
.
2
. j), se
tiene que c
+
($.
c
b
) = (.
2
.
j . ) .
(d) Para todo a y para todo c Q se tiene que c
+
(a.
c ) =
(a.
c . ) .
(e) Para todo a y para todo c Q se tiene que c
+
((a. 1) .
c ) =
(a. c. ) .
(f) Para todo c Q. c
+
($. c) = /a|t. (esto es, la maquina termina
la computacion en este punto).
(g) Para todo c Q y para todo a se tiene que c
+
($.
c
o
) =
($.
c
o
. ) .
(h) Para todo c Q. c
+
($.
c ) = ($.
c . ) .
Dado r = r
1
...r
n
un input de . supondremos que la maquina T ()
es inicializada en el estado c
0
. con el input r
1
r
2
...r
n
# escrito en el extremo
izquierdo de la cinta. El simbolo # sera usado para indicar el nal del input
y el comienzo de la pila, la maquina T () usara las celdas a la derecha
del simbolo # para simular la pila de . Una transicion
(na. c. i)
'
(n.
1
.
2
. j. i + 1)
sera simulada por la siguiente secuencia de transiciones
(r#na. c. i) (r
1
...r
I1
(r
I
. 1) r
I+1
...r
n
#na.
c
ri
. i + 1) ...
xxxvi 4. Maquinas de Turing
(r
1
...r
I1
(r
I
. 1) r
I+1
...r
n
#na.
c
ri
. : + 1 +[n[)
(r
1
...r
I1
(r
I
. 1) r
I+1
...r
n
#n.
1
.
2
.
j . i)
(r
1
...r
I1
r
I
r
I+1
...r
n
#n.
1
.
2
. j. i + 1)
donde .
1
.
2
' c y c 1. 0. 1 . El valor de c esta determinado
por la siguiente regla
Si .
1
= a y .
2
= c. entonces c = 1.
Si .
1
. .
2
= c. entonces c = 1.
Si .
1
= a y .
2
= c. entonces c = 0.
Note que si es un automata deterministico, la simulacion de la com-
putacion del automata en el input r consta de a lo mas 2:
2
transiciones.
Con lo anterior hemos probado el teorema que enunciamos a continuacion.
Teorema 36 Si es un automata de pila deterministico, la maquina
T () realiza a lo mas 2:
2
transiciones al simular la computacion del
automata en el input r.
El caso de automatas de pila no deterministicos es tecnicamente mas
complicado, dado que tenemos que arreglarnoslas para simular el no-determinismo.
Aun asi es posible probar el siguiente teorema
Teorema 37 (Earley)
Dado un automata de pila no deterministico, existe una maquina de
Turing T () y existe C N tales que la maquina T () es capaz de
simular el automata , ademas se tiene que la maquina T () realiza a
lo mas C [r[
3
transiciones al simular la computacion del automata en
el input r.
4.2 Tiempo de computo: analisis de algoritmos
Los practicantes de la algoritmia saben que
Para dar por resuelto un problema
no basta con conocer un algoritmo
que resuelva el problema
Esto es asi dado que no todo algoritmo puede ser usado en la practica.
algunos algoritmos requieren recursos computacionales de los cuales, en
4.2 Tiempo de computo: analisis de algoritmos xxxvii
la practica, no es posible disponer. Usualmente los algoritmos malos lo
son o porque requieren demasiada memoria o porque requieren tiempos de
computo astronomicos cuando se procesan inputs grandes.
Dado un algoritmo, es necesario analizar el algoritmo y determinar desde
el analisis teorico si este es suceptible de ser usado en la practica. El primer
aspecto que debe analizarse de un algoritmo es su tiempo de computo. El
tiempo de computo mide la velocidad del algoritmo. A cada algoritmo es
posible asociarle una funcion, la funcion tiempo de computo, la cual mide
la manera como el tiempo de computo escala respecto al tamao de los
inputs. La tesis de Church justica el que basemos nuestro analisis de
algoritmos en la nocion de maquina de Turing.
Denicin 38 Dada una maquina de Turing, la funcion tiempo de
computo de es la funcion T
'
: N N' denida por:
1. Dado r
+
un input de se dene T
'
(r) como el numero de
transiciones que realiza la maquina al procesar el input r. Si la
maquina no para, es decir si el numero de transiciones es innito,
denimos T
'
(r) = .
2. Dado : N se dene T
'
(:) = max
r:|r|=n
T
'
(r) .
Dados dos algoritmos (o, lo que es lo mismo, dos maquinas de Turing)
y A que resuelven el mismo problema 1. es importante poder decidir
desde la teoria cual de los dos algoritmos es el mas eciente. Para ello
podemos intentar comparar el tiempo de computo de los dos algoritmos.
Esto nos obliga a denir una nocion de orden apropiada para el conjunto
N
N
. Esta nocion de orden debe tener un caracter asintotico, dado que los
inputs grandes son los inputs para los cuales es importante que el algoritmo
se comporte de manera eciente. En cierto sentido los inputs pequeos
son pan comido, y todo algoritmo puede dar cuenta de ellos de manera
apropiada (los inputs pequeos se pueden resolver a mano).
Denicin 39 (notacion asintotica)
1. Dadas 1. o N
N
. se tiene que 1 O(o) si y solo si existen C. 1 N
tales que para todo : _ C se satisface la desigualdad 1 (:) _ 1o (:) .
2. Dadas 1. o N
N
. se tiene que 1 (o) si y solo si o O(1) .
La nocion de orden que suele usarse para comparar el tiempo de computo
de dos algoritmos esta dada por
_ si y solo si T
'
O(T
'
)
xxxviii 4. Maquinas de Turing
4.3 Lenguajes no computables
En el capitulo 1 presentamos un argumento informal que garantizaba la
existencia de problemas no computables. En aquel momento era imposible
presentar un argumento formal, dado que no contabamos con una nocion
formal de computabilidad. A estas alturas, contando como lo hacemos con
la nocion de Turing-computabilidad, podriamos formalizar el argumento.
No vamos a hacerlo dado que, aunque el argumento garantiza que existe
una innidad no enumerable de problemas no computables, el argumento
no nos permite exhibir un problema concreto no computable. En esta
seccion deniremos un problema concreto (el problema de la parada) del
cual mostraremos que es no Turing-computable (y entonces no computable
si la tesis de Church es cierta).
Denicin 40 El problema de la parada es el problema denido por
Input: (. r) donde es una maquina de Turing y r es un input
de .
Problema: Decida si la maquina para al procesar el input r. esto
es decida si T
'
(r) .
Teorema 41 El problema de la parada no es computable.
Proof. Suponga que A es una maquina de Turing que resuelve el problema
de la parada. Esto quiere decir que dada una maquina de Turing, si a A
se le presenta como input el par
....
. r
, (donde
....
es una codicacion
adecuada de la maquina ). entonces sucede lo siguiente
Si para al procesar el input r. la maquina A imprime 1.
Si no para al procesar el input r. la maquina A imprime 0.
Podemos disear una maquina de Turing, llamemosla A
+
. tal que
Si A
....
.
....
= 1. entonces la maquina A
+
al procesar el
input
....
entra en un bucle innito.
Si A
....
.
....
= 0. entonces A
+
....
= 0.
Podemos preguntarnos que pasa si a la maquina A le presentamos el
input
....
A
+
.
....
A
+
. Note que:
4.4 Maquinas universales xxxix
Si A
+
....
A
+
= 0 = A
....
A
+
.
....
A
+
. Entonces la maquina A
+
no para al procesar el input
....
A
+
. pero esto es absurdo, dado que
la maquina A
+
si para al procesar el input
....
A
+
y al nal de esta
computacion imprime 0.
Si A
....
A
+
.
....
A
+
= 1. entonces la maquina A
+
si para al procesar
el input
....
A
+
. pero esto es absurdo dado que en este caso la maquina
A
+
, de acuerdo a su diseo, entra en un bucle innito.
Es claro entonces que hemos llegado a una contradiccion insalvable, y
deber ser claro para el lector que la causa de esta contradiccion fue suponer
que existe una maquina A que supuestamanente resuelve el problema de la
parada Podemos entonces concluir que no existe una maquina de Turing
que resuelva el problema de la parada, (i.e. el problema de la parada no
es Turing-computable, y si aceptamos la tesis de Church el problema de la
parada no es computable).
4.4 Maquinas universales
Las maquinas que hemos introducido hasta el momento tienen la caracter-
istica de ser maquinas de un solo proposito, cada una de las maquinas y
cada uno de los automatas que hemos introducido y estudiado sirven, en
principio, para resolver un unico problema. Esto no se corresponde a la
intuicion que tenemos de maquinas computadoras las cuales son maquinas
multiproposito, es decir maquinas que pueden ser programadas para re-
solver una gran variedad de problemas.
Uno de los resultados fundamentales de la teoria de maquinas de Turing
arma que existe una maquina de Turing |, que llamaremos universal, que
puede ser usada para simular cualquier otra maquina de Turing, y entonces
(de acuerdo a la tesis de Church) | es una maquina que puede ser usada
para reconocer cualquier lenguaje computable, (o, lo que es lo mismo, para
resolver cualquier problema computacionalmente soluble).
Fijemos un alfabeto . Diremos que |
la
cual es -universal.
Proof. En la prueba de este teorema usaremos la version pragmatica de
la tesis de Church, lo cual nos permitira evitar los engorrosos detalles in-
volucrados en la construccion explicita de |
; es un excelente
ejercicio para el lector intentar desarrollar una tal construcion.
Sea = ' y sea Tnri:o el -lenguaje denido por
Tnri:o =
....
r : es una -maquina de Turing, r
+
y acepta r
(el codigo de
....
).
2. Dada r una instancia de 1. construya
....
r.
3. Use la maquina |
en el input
....
r.
Note que |
acepta
....
r si y solo si acepta r si y solo si r
1. Tenemos entonces que la maquina |
de
+
en
+
tal que 1 es decidible si y solo si c
(1) .
la imagen de 1, es decidible.
Teorema 44 Existe una maquina de Turing | la cual es universal.
Proof. Para empezar jaremos un alfabeto (por ejemplo = 0. 1).
Sea 1 un lenguaje decidible en un alfabeto arbitrario y sea |
una
maquina de Turing -universal. Mostraremos que es posible usar |
para
decidir el lenguaje 1. Considere el siguiente procedimiento:
Dada r una instancia de 1
1. Calcule c
(r) .
2. Use |
para decidir si c
(r) c
(1) .
Note que r 1 si y solo si c
(r) c
(1) si y solo si |
acepta
c
(r) .
Tenemos entonces que la maquina |
(r) .
2. Disear una maquina que decida c
(1) .
3. Construir
....
el codigo de .
El lector debe notar que
1. La maquina se disea una unica vez, es decir hecho el diseo de
al momento de decidir si r pertenece a 1. no es necesario repetir
el trabajo de diseo para decidir de otra palabra n si ella pertenece
o no a 1.
2. El calculo de
....
se realiza una unica vez.
3. El calculo de c
....
es la implementacion de en un lenguaje de programacion
prejado.
c
:
2
.
3. Disee explicitamente una maquina de Turing universal.
4. Si fracaso con el desarrollo del ejercicio anterior, intente lo siguiente:
disee una maquina que sea capaz de simular toda maquina de
Turing con a lo mas dos estados y con alfabeto interno 0. 1. .
5. Si fracaso con el ejercicio anterior intente algo aun mas facil: disee
una maquina de Turing capaz de simular a todo automata de pila.
6. (trabajo de lectura) Investigue la nocion de reduccion entre lenguajes
combinatorios y sus aplicaciones en la teoria de la computabilidad(no-
computabilidad).
1
Note que el calculo de
!
(x) es inevitable en muchos casos, dado que a un
computador no le podemos introducir cualquier objeto como input de un programa, por
ejemplo si x es un grafo, como input del programa que estemos usando introduciremos
m(x) ; la matriz de adyacencia de x; o I (x) la matriz de incidencia o cualquier otro
codigo combinatorio-computacional del grafo x:
4.5 Ejercicios capitulo 4 xliii
7. Decida si el siguiente problema es o no computable, en caso de serlo
disee un algoritmo que lo resuelva, en caso de no serlo pruebe que
el problema no es computable.
El problema de la vacuidad
Input: , donde es un automata de pila.
Problema: Decida si 1() es diferente de vacio.
8. Decida si el siguiente problema es o no computable, en caso de serlo
disee un algoritmo que lo resuelva, en caso de no serlo pruebe que
el problema no es computable.
El problema de la equivalencia
Input: (. A), donde y A son automatas de pila.
Problema: Decida si 1() = 1(A) .
9. Decida si el siguiente problema es o no computable, en caso de serlo
disee un algoritmo que lo resuelva, en caso de no serlo pruebe que
el problema no es computable.
El problema de la nitud
Input: , donde es un automata de pila.
Problema: Decida si 1() es nito.
xliv 4. Maquinas de Turing
This is page xlv
Printer: Opaque this
5
Una introduccion a la complejidad
computacional
Este capitulo pretende ser una breve introduccion a la Teoria de la com-
plejidad computacional. La complejidad computacional (o la Teoria de la
complejidad computacional) intenta dar respuestas al siguiente tipo de pre-
gunta: dado 1 un lenguaje computable, cuales son los recursos computa-
cionales requeridos para resolver el problema 1? La complejidad computa-
cional parte del hecho de que todo problema tiene un grado de dicultad
intrinseco, que le es propio, y que por lo tanto toda solucion computa-
cional de un problema algoritmico requiere una cantidad minima de recur-
sos computacionales. El concepto de recurso computacional es un concepto
informal y multifacetico. Recursos computacionales pueden ser: tiempo de
computo, espacio de memoria, habilidades del hardware, recursos aleatorios
(bits aleatorios). A lo largo del libro hemos analizado, en cierto sentido, la
complejidad computacional (esto es: la dicultad intrinseca) del problema
1a|. Hemos establecido cotas inferiores tales como:
1. No es posible resolver 1a| usando automatas regulares (una cabeza
lectora unidireccional).
2. No es posible resolver 1a| usando automatas de pila deterministicos
(cabeza lectora unidireccional + dispositivo externo de memoria).
3. No es posible resolver 1a| usando automatas de doble via (una cabeza
bidireccional).
Reciprocamente, hemos establecido cotas superiores tales como:
xlvi 5. Una introduccion a la complejidad computacional
Es posible resolver 1a| usando un automata de pila no determinis-
tico (cabeza lectora unidireccional + dispositivo externo de memoria+no-
determinismo).
Este tipo de resultados, cotas inferiores y cotas superiores, es el tipo
de resultados que la complejidad computacional intenta establecer cada
vez que se analiza un problema computable. Una cota superior es simple-
mente un algoritmo que resuelve el problema. Dado 1 un problema y dado
un algoritmo, si resuelve 1 entonces los recursos usados por son
sucientes para resolver 1. Establecer una cota superior consiste precisa-
mente en probar que cierta cantidad de recursos (usados inteligentemente),
son sucientes para resolver 1.
el establecimiento de cotas inferiores (tal cantidad de recursos es insu-
ciente, por lo tanto algo mas es necesario), presupone un analisis teorico
tanto del problema como de las potencialidades de los recursos en cuestion.
Algunas cotas inferiores puden opbtenerse por dos caminos diferentes
Como corolarios de resultados generales concernientes al modelo de
computacion (o conjunto de modelos con acceso a cierta cantidad de
recursos) tales como: el lema de bombeo para automatas regulares,
la simulabilidad mediante automatas regulares de los automatas reg-
ulares no deterministicos y de los automatas de doble via.
Via argumentos combinatorias ad hoc, tales como: el argumento de
secuencias de cruce que usaremos en este capitulo para probar que
1a| requiere tiempo cuadratico cuando se consideran maquinas de
Turing de una cinta (45); el argumento combinatorio elemental usado
al probar que 1a| requiere no-determinismo cuando se consideran
automatas de pila.
En este capitulo presentaremos algunas cotas inferiores y algunas cotas
superiores referentes al lenguaje 1a|. y referentes a diferentes modelos de
maquina de Turing.
5.1 Una cota inferior para Pal: secuencias de cruce
En esta seccion probaremos una cota inferior para 1a|. especicamente pro-
baremos que toda maquina de Turing de una sola cinta capaz de reconocer
el lenguaje 1a| tiene un tiempo de computo por lo menos cuadratico. La
prueba es un argumento combinatoria elemental que se basa en la nocion
de secuencia de cruce, nocion que ha sido utilizada con exito para obtener
otras cotas inferiores (vea [2], [11]).
Teorema 45 (Teorema de Hennie)
1a| requiere tiempo
:
2
r1
2|r|
r : r
+
Dado r1
2|r|
r
+
y dado i _ 4 [r[ . denimos C
'
I
(r) . la i-esima se-
cuencia de cruce (crossing sequence) asociada a r y a de la siguiente
manera: C
'
I
(r) es la secuencia ordenada de estados a los que accede
cada vez que, procesando el input r1
2|r|
r. cruza la linea que separa la celda
i-esima y la celda i + 1-esima. Dado r
+
. denimos C
'
(r) como
C
'
I
(r) : [r[ _ i _ 3 [r[
C
'
I
(r)
y dado : N el simbolo t
n
denotara la cantidad max
r
n t
r
.
Armacion. t
n
(:) .
Note que la armacion anterior implica que el tiempo de computo de
es
:
2
I=0
[Q
'
[
I
=
[Q
'
[
|+1
1
[Q
'
[ 1
Recuerde que dado : N, y dados r. n
n
se tiene que C
'
(r)
C
'
(n) = ?. Dado que existen 2
n
palabras en
n
se tiene que
[Q
'
[
|n+1
1
[Q
'
[ 1
_ 2
n
Esta ultima desigualdad implica que t
n
(:) . dado que Q
'
es una
cantidad constante que no depende de :.
xlviii 5. Una introduccion a la complejidad computacional
El ejercicio 2 del capitulo 4 pedia vericar que existe una maquina de
Turing de una sola cinta capaz de reconocer el lenguaje 1a| en tiempo
O
:
2
y
Q
t
=
c
o ,I,t,
t
:
a (
+
)
|
; i 0. 1. .... / y
c 1. 0. 1
|
.
2.
+
= ' (a. i) : a
+
y i 1. .... / .
l 5. Una introduccion a la complejidad computacional
A la funcion c no la deniremos explicitamente, (por resultar increible-
mente engorroso), a cambio ilustraremos como la maquina
+
simula una
transicion de .
Considere una transicion tipica de , como por ejemplo
c
1
. n
1
1
...n
1
1
...n
|u1|
1
. j
1
. .... n
1
|
...n
k
|
...n
|u
k
|
|
. j
|
c
2
. n
1
1
....
1
1
...n
|u1|
1
. j
1
+c
1
. .... n
1
|
....
k
|
...n
|u
k
|
|
. j
|
+c
|
donde c
1
. .... c
|
1. 0. 1 . (supondremos sin perdida de generalidad
que 1 j
1
... j
|
[n
1
[; [n
1
[ = ... = [n
|
[ y c
1
. .... c
|
= 1). Para
simular una tal transicion de usamos la siguiente secuencia de
+
-
transiciones
c
1
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .... (n
k
|
. /) ...n
|u1|
1
...n
|u1|
|
. j
1
/ + 1
(c
1
)
u
p
1
1
...,1,l
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .... (n
k
|
. /) ...n
|u1|
1
...n
|u1|
|
. j
1
/ + 2
...
(c
1
)
u
p
1
1
u
p
2
2
...,2,l
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .... (n
k
|
. /) ...n
|u1|
1
...n
|u1|
|
. j
2
/ + 2
...
(c
1
)
u
p
1
1
u
p
2
2
...u
p
k
k
,|,l
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .... (n
k
|
. /) ...n
|u1|
1
...n
|u1|
|
. j
|
/
(c
2
)
:
p
1
1
:
p
2
2
...:
p
k
k
,|,t,
t
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .....
k
|
...n
|u1|
1
...n
|u1|
|
. j
|
/ +c
|
1
...
(c
2
)
:
p
1
1
:
p
2
2
...:
p
k
k
,|,t,
t
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .....
k
|
...n
|u1|
1
...n
|u1|
|
. j
|
/ +c
|
/
...
( (c
2
)
:
p
1
1
:
p
2
2
...:
p
k
k
,|1,t,
t
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .....
k
|
...
k
+1
|
. /
..
..n
|u1|
1
...n
|u1|
|
. j
|
/ +c
|
/)
( (c
2
)
:
p
1
1
:
p
2
2
...:
p
k
k
,|1,t,
t
. n
1
1
n
1
2
...n
1
|
... (n
1
1
. 1) .....
k
|
...
k
+1
|
. /
..
..n
|u1|
1
...n
|u1|
|
. j
|
/ +c
|
/ 1) ...
( (c
2
)
:
p
1
1
:
p
2
2
...:
p
k
k
,1,t,
t
. n
1
1
n
1
2
...n
1
|
....
1
1
...
n
1+1
1
. 1
....
k
|
..
..
k
+1
|
. /
...n
|u1|
1
...n
|u1|
|
. j
1
/ +/ + 1)
c
2
. n
1
1
n
1
2
...n
1
|
....
1
1
...
n
1+1
1
. 1
....
k
|
...
k
+1
|
. /
...n
|u1|
1
...n
|u1|
|
. j
1
/ +/ + 1
T
'
(:)
2
+: + 4
2
.
Proof. Suponga que = (Q. . c
0
. 1. c. ) es una maquina bidimensional
que decide 1. Probaremos que existe una maquina
1
con 2 cintas uni-
dimensionales que reconoce 1. La primera cinta sera usada para simular
la cinta bidimensional de ' mientras que la segunda cinta se usara como
contador. El primer problema que debemos resolver es el siguiente: como
recorrer, de manera lineal, el reticulo N N? Para resolver este primer
problema podemos usar la bien conocida biyeccion de Cantor entre el con-
liv 5. Una introduccion a la complejidad computacional
junto N y el conjunto N N, la cual se ilustra a continuacion
(0. 3)
| `
(0. 2) (1. 2)
` `
(0. 1) (1. 1) (2. 1)
| ` ` `
(0. 0) (1. 0) (2. 0) (3. 0)
Usaremos la curva de Cantor para simular el desplazamiento de una
cabeza lectora sobre una cinta bidimensional usando una cinta unidimen-
sional. Note que dada (i. ,) . una celda cualquiera de la cinta bidimensional
de , se satisface lo siguiente:
1. Si i. , = 0 e i + , es un numero par, la curva de Cantor visita (i. ,)
viniendo de la celda (i + 1. , 1) y llendo a la celda (i 1. , + 1) .
2. Si i. , = 0 e i +, es un numero impar, la curva de Cantor visita (i. ,)
viniendo de la celda (i 1. , + 1) y llendo a la celda (i + 1. , 1) .
3. Si i = 0 es un numero par, la curva de Cantor visita (i. 0) viniendo
de la celda (i 1. 0) y llendo a la celda (i 1. 1) .
4. Si i = 0 es un numero impar, la curva de Cantor visita (i. 0) viniendo
de la celda (i 1. 1) y llendo a la celda (i + 1. 0) .
5. Si , = 0 es un numero par, la curva de Cantor visita (0. ,) viniendo
de la celda (1. , 1) y llendo a la celda (0. , + 1) .
6. Si , = 0 es un numero impar, la curva de Cantor visita (0. ,) viniendo
de la celda (0. , 1) y llendo a la celda (1. , 1)
Para poder simular la dinamica de la cabeza de usando una cinta
unidimensional debemos usar un alfabeto enriquecido. Lo ideal seria que
el caracter ubicado en una celda unidimensional i especicara a que celda
bidimensional corresponde la celda i. esto es que el caracter ubicado en la
celda i especicara el valor de ( (i) . (donde el simbolo ( denota la biyeccion
de Cantor). Desafortunadamente esto es imposible dado que esto impli-
caria usar un alfabeto innito. Nosotros nos contentaremos con mucho
menos, usaremos un alfabeto tal que, dada i una celda unidimensional,
el caracter ubicado en i en cualquier instante de la computacion especi-
ca la direccion asumida por la curva de Cantor al visitar la celda ( (i) .
Sea '
+
= (Q
+
.
+
. c
0
. 1. c
+
. ) la maquina con 4 cintas unidimensionales
denida por:
Q
+
= Q' c
+
: c Q ' c
++
: c Q ' c
+++
: c Q
5.3 Maquinas multidimensionales lv
+
= |. . `. ` ' 1 .
A la funcion c
+
no la deniremos explicitamente, a cambio mostraremos
como la maquina
1
simula una transicion de la maquina . Consider-
aremos uno de 20 casos posibles. Considere la transicion
c.
a
0n
a
In
a
nn
.
.
.
.
.
.
.
.
.
a
0,
a
I,
a
n,
.
.
.
.
.
.
.
.
.
a
00
a
I0
a
n0
. (i. ,)
j.
a
0n
a
In
a
nn
.
.
.
.
.
.
.
.
.
a
0,
/
I,
a
n,
.
.
.
.
.
.
.
.
.
a
00
a
I0
a
n0
. (i. , + 1)
c. (a
00
. |) (a
01
. `) (a
10
. ) ... (a
I,
. `) ... (a
nn
. `) . (
1
(i. ,) . c. 0
j
+
. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(i 1. , + 1) . 1. 1
j
+
. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(i 2. , + 2) . 11. 2
j
+
. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(i i. , +i) . 1
I
. i
j
++
. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(0. , +i + 1) . 1
I
. i
j
+++
. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(1. , +i) . 1
I1
. i 1
j
+++
. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(i. , + 1) . c. 0
j. (a
00
. |) (a
01
. `) (a
10
. ) ... (/
I,
. `) ... (a
nn
. `) . (
1
(i. , + 1) . c. 0
T
'
(:)
2
+: + 4
2
5.3.1 Una cota inferior
En esta seccion probaremos que toda maquina de Turing con una unica
cinta bidimensional que acepte 1a| tiene un tiempo de computo
n
2
log(n)
.
El argumento es una adaptacion del argumento via secuencias de cruce
usado en el caso unidimensional. Dada una maquina bidimensional
que acepta 1a|. asumiremos que el input esta ubicado en la primera la,
escrito de izquierda a derecha y con su primer caracter ubicado en el origen.
Lo primero que debemos hacer para adaptar el argumento es adaptar la
nocion de secuencia de cruce al caso bidimensional. Suponga que es
una maquina de Turing bidimensional que acepta 1a|, suponga que r es
un input de de longitud : y suponga que i _ :. La secuencia de cruce
C
'
I
(r) es una secuencia de parejas ordenadas, donde cada pareja esta
constituida por un estado de y por un numero natural. Cada pareja en
la secuencia C
'
I
(r) contiene informacion acerca de el estado en que estaba
la maquina al cruzar la linea que separa las columnas i-esima e i +1-esima,
ademas de la columna usada al realizar este cruce. Adicionalmente pedimos
que exista una correspondencia entre la secuencia ordenada de parejas de
C
'
I
(r) y la secuencia ordenada de ocasiones en que la cabeza lectora cruzo
tal linea.
En lo que sigue jaremos una maquina bidimensional que acepta 1a|.
Los dos lemas a continuacion son la version bidimensional de los dos hechos
claves usados en la prueba del teorema de Hennie (45).
5.3 Maquinas multidimensionales lvii
Lema 54 Suponga que acepta n y rn. suponga ademas que [r[ = i,
[n[ = , y que C
'
I
(rn) = C
'
,
(n) Tenemos entonces que acepta la
palabra r.
Dada r
+
el simbolo n(r) denotara el palindromo r0
|r|
r. Dado
: _ 1. el simbolo 1
n
denotara el conjunto n(r) : [r[ = : .
Lema 55 Dadas r = n dos palabras de longitud :. y dados i. , :. .... 2:
se tiene que C
'
I
(r) = C
'
,
(n) .
De los lemas anteriores es facil obtener la prueba del siguiente teorema
Teorema 56 Si es una maquina bidimensional que acepta 1a|. el tiempo
de computo de es
n
2
log(n)
.
Proof. El numero de posibles secuencias de cruce de longitud | y que
corresponden a computaciones de de duracion acotada por :
2
esta aco-
tado superiormente por
[Q[ :
2
l
. donde [Q[ es el numero de estados de la
maquina . Dado que 1
n
tiene exactamente 2
n
elementos que determi-
nan :2
n
secuencias de cruce distintas dos a dos, se tiene que si | es una
cota en la longitud de las secuencias de cruce determinadas por elementos
de 1
n
. entonces
[Q[ :
2
l
_ 2
n
; y esto implica que
| _ log
|O|n
2 2
n
=
:
2 log (:) + log ([Q[)
De ello se tiene que existe n
n
1
n
tal que n
n
determina : secuencias
de cruce de longitud
n
log(n)
n
2
log(n)
n
2
log(n)
n
2
log(n)
.
A continuacion presentaremos un algoritmo bidimensional (esto es, una
maquina de Turing bidimensional) que resuelve el problema 1a| en tiempo
O
n
2
log(n)
.
La idea del algoritmo es la siguiente. Supondremos que el vocabulario es
0. 1 . Dado r una instancia de 1a|. partimos a r en bloques de longitud n.
Interpretamos cada bloque como un numero en el intervalo 0. .... 2
u
1 .
Dado un bloque a la izquierda de r. si el contenido del bloque es el
numero :. marcamos la la :-esima. Revisamos el bloque a la derecha
de r que corresponde al bloque . llamemos
+
a este bloque. Leemos
el contenido de
+
de derecha a izquierda y lo interpretamos como un
numero, digamos :. Marcamos la columna :. si marcamos dos veces la
misma columna, los bloques y
+
son apropiados el uno para el otro.
Realizamos este trabajo para cada uno de los bloques que constituyen el
input r. Note que para comparar dos bloques es suciente recorrer la
primera la de la cinta 2 veces. Esto implica que el numero de veces que
debemos recorrer el input es O
n
u
n
2
log(n)
.
lx 5. Una introduccion a la complejidad computacional
Ejercicio 59 Pruebe que el tiempo de computo del algoritmo es O
n
2
log(n)
.
5.4 Otros modelos: la tesis de Church fuerte
El lector debe notar que todos los modelos de computacion introducidos
hasta el momento poseen la siguiente caracteristica: todos pueden ser sim-
ulados en tiempo polinomial por maquinas de Turing de una sola cinta
unidimensional. Es importante anotar que esta caracteristica no es una
mera casualidad y quer los modelos presentados en este libro no fueron
escogidos convenientemente para que se presentara este fenomeno. Este es
un fenomeno muy general: de casi cualquier tipo de maquina se ha logrado
mostrar que pueden ser simuladas en tiempo polinomial por maquinas de
Turing de una sola cinta. Lo anterior motiva y justica el enunciado de la
siguiente version fuerte de la tesis de Church.
Hipotesis 60 (Tesis de Church fuerte)
Todo modelo de computacion puede ser simulado en tiempo polinomial
usando maquinas de Turing de una sola cinta.
En esta, la ultima seccion del capitulo estudiaremos dos modelos de com-
putacion que podrian ser contraejemplos a la tesis anterior, ellos son: las
Maquinas de Turing probabilisticas y las Maquinas cuanticas
5.4.1 Maquinas de Turing probabilisticas
Una maquina de Turing probabilistica es una maquina de Turing de una
sola cinta equipada con un generador de bits aleatorios.
Denicin 61 Una maquina de Truing probabilistica es una sextupla
=(Q. c
0
. . 1. . . c) tal que
1. c
0
Q es el estado inicial de la maquina.
2. es el alfabeto de la maquina, del cual supondremos que ' _ .
3. _ 1 Q. donde es el conjunto de los estados de aceptacion y
1 es el conjunto de los estados nales.
4. c es una funcion de Q 0. 1 en Q . . .
Dada una maquina de Turing probabilistica, supondremos que en
toda computacion y antes de cada transicion la maquina genera un bit
aleatorio a 0. 1 . Generado el bit a la maquina lee el caracter escrito en
la celda que esta siendo escaneada, y entonces decide: que estado asdumir,
que caracter escribir y en que direccion moverse. Supondremos ademas
que cada maquina determina una distribucion de probabilidad en el
5.4 Otros modelos: la tesis de Church fuerte lxi
conjunto 0. 1 . esto es para cada maquina de Turing probabilistica
existe j [0. 1] tal que el generador de bits aleatorios de genera, en
cada transicion, un 1 con probabilidad j y un 0 con probabilidad 1 j.
Una maquina de Turing probabilistica es una maquina de Turing no de-
terministica. Esto implica que dado un input r. la maquina puede realizar
muchos computos distintos con el input r dependiendo de la secuencias de
bits aleatorios generados durante la computacion.
Dado
+
una secuencia legal para es una secuencia o 0. 1
+
para
la cual existe una computacion de con input . cuyo tiempo de computo
es [o[ . y tal que la secuencia de bits generados durante esta computacion es
precisamente la secuencia o. Sea () =
o 0. 1
+
: o es legal para
.
Una maquina es buena si y solo si para todo input
c.(u)
Pr [o] = 1
Intuitivamente una maquina es buena si y solo si para todo input .
la maquina para al procesar con probabilidad 1. Por otro lado diremos
que es una maquina standard si y solo si antes de terminar la computa-
cion la maquina debe: llegar al extremo derecho del contenido de la cinta,
recorrer la cinta de derecha a izquierda sin cambiar de estado, llegar al ex-
tremo izquierdo y entonces si parar. Dada una maquina probabilistica
supondremos que es buena y standard.
Denicin 62 1. Dado
+
se dene
() = Pr
c.(u)
[la o-computacion de con input es aceptante]
2. Diremos que reconoce 1 con error - si y solo si para todo
+
se tiene que
Si 1 entonces () _ 1 -.
Si 1 entonces () _ -.
3. Dado
+
se dene T
'
() =
c.(u)
Pr [o] [o[
4. Dado : N se dene T
'
(:) = max
u:|u|=n
T
'
()
.
Comentario 63 Dado que las maquinas probabilisticas son no determinis-
ticas, dada una tal maquina y dado un input de , tiene mas sentido
hablar del tiempo de computo esperado de con input que del tiempo
de computo con input . Note que en el item 3 de la denicion ante-
rior hemos denido T
'
() como el valor esperado de la variable aleatoria
tiempo de computo. Es natural que en el contexto de las maquinas prob-
abilisticas denamos las cantidades de interes como valores esperados de
lxii 5. Una introduccion a la complejidad computacional
variables aleatorias adecuadas y no como cantidades deterministicas, i.e.
como cantidades asociadas a variables deterministicas.
El objetivo de esta seccion es establecer las siguientes cotas
(cota superior) Existe una maquina de Turing probabilistica que
reconoce 1a| con error
1
5
y tal que T
'
(:) O
:log
2
(:)
.
(cota inferior) Si es una maquina de Turing probabilistica que
reconoce el lenguaje 1a| con error -
0.
1
2
:log
2
(:)
con error
1
5
. Los algoritmos prob-
abilisticos tiene una larga historia dentro de la teoria de la computacion,
ellos presentan desventajas respecto a los algoritmos clasicos(deterministas)
dado que pueden cometer errores, pero poseen tambien una gran ventaja:
suelen ser mas ecientes. Existe una larga lista de algoritmos probabilis-
ticos que son mas ecientes que todos los algoritmos clasicos conocidos
(obviamente, que resuelven el mismo problema). Una pequeisima lista
parcial es la siguiente:
1. El algoritmo de Schwartz-Zippel (consulte la referencia [8]) para de-
terminar si un polinomio en varias variables es no nulo sobre un campo
nito dado.
2. El algoritmo de Freivalds para multiplicar matrices [3].
3. El algoritmo de Freivalds para reconocer 1a| [3]
Es importante anotar que todo algoritmo probabilistico puede ser con-
vertido en un algoritmo clasico, aunque ello puede implicar un alto costo:
el tiempo de computo del algoritmo clasico podria ser exponencial en el
tiempo de computo del algoritmo probabilistico.
empezemos recordando dos desigualdades fundamentales de la teoria de
la probabilidad, a saber: La desigualdad de Markov y La desigualdad de
Chebyshev.
5.4 Otros modelos: la tesis de Church fuerte lxiii
Teorema 64 (desigualdad de Markov)
Si A es una variable aletoria positiva y 1 [A] es su valor esperado, se
tiene que para todo a R
+
Pr [A _ a] _
1 [A]
a
Teorema 65 (desigualdad de Chebyshev)
Dada A una varible aleatoria, si 1 [A] es su valor esperado y o
2
es su
desviacion standard, se tiene que para todo a R
+
Pr [[A 1 [A][ _ a] _
o
2
a
2
Sea r = r
1
...r
n
una palabra de longitud :. si r no es palindromo existe
i _ : tal que r
I
= r
nI
. Note que, Pr
,<n
[r
,
= r
n,
] _
2
n
. Suponga ahora
que escogemos a numeros en el intervalo 1. .... : . Cual es la probabilidad
de escoger, entre esos a numeros, al menos un numero i tal que r
I
= r
nI
?
Es claro que si existe mas de un i para el cual r
I
= r
nI
. la probabilidad
es mayor. Supongamos que [i _ : : r
I
= r
nI
[ = 2. El valor esperado,
del numero de escogencias aleatorias realizadas, antes de escoger a i o a
: i es log (:) . Supongamos entonces que escogemos a log (:) numeros
entre 1 y :. digamos ,
1
. .... ,
o log(n)
cual es la probabilidad de que i o :i
pertenezcan al conjunto
,
1
. .... ,
o log(n)
i
,
1
. .... ,
o log(n)
y ,
,
1
. .... ,
o log(n)
=
Pr [A _ a log (:)] _
1
a
Por lo que
Pr
i
,
1
. .... ,
o log(n)
o ,
,
1
. .... ,
o log(n)
_
a 1
a
Suponga ahora que nosotros recorremos la palabra r y a cada posicion la
marcamos con probabilidad
b log(n)
n
(con probabilidad 1
b log(n)
n
no mar-
camos la posicion). Sea 1 la variable aleatoria: numero de posiciones mar-
cadas al nalizar el recorrido. Cual es el valor esperado de 1 ? Cual es
la desviacion standard de 1 ? cual es la probabilidad de que el numero de
posiciones marcadas pertenezca al intervalo (/ c) log (:) . .... (/ +c) log (:)?
1. 1 [1 ] =
I<n
b log(n)
n
= / log (:) .
2. o
2
Y
= 1
1
2
1 [1 ]
2
= :
b log(n)
n
b log(n)
n
=
:
nb log(n)b
2
log
2
(n)
n
2
= / log (:)
b
2
log
2
(n)
n
lxiv 5. Una introduccion a la complejidad computacional
3. La desigualdad de Chebyshev nos dice que
Pr [1 (/ c) log (:) . .... (/ +c) log (:)] _
Pr [[1 1 [1 ][ _ c log (:)] _
/ log (:)
b
2
log
2
(n)
n
c
2
log
2
(:)
_
/
c
2
De todo lo anterior tenemos que: si recorremos la palabra r, y marcamos
cada posicion con probabilidad
10 log(n)
n
. con probabilidad al menos
10
25
el
numero de posiciones marcadas pertenecera al intervalo
(5) log (:) . .... (15) log (:)
y esto a su vez implica que la probabilidad de que la posicion i sea una de las
posiciones marcadas es al menos
4
5
. Considere el siguiente procedimiento
Con input r = r
1
...r
n
1. Para cada , 1. .... :, decida si marca o no la posicion ,. Para ello
arroje una moneda tal que Pr [cara] =
10 log(n)
n
. Si sale cara marque
la posicion, en caso contrario no la marque.
2. Sea i
1
. .... i
|
el conjunto de las posiciones marcadas. Para todo
, _ / decida si r
Ij
= r
nIj
. Si este es el caso acepte r. en caso
contrario, esto es si existe , _ / tal que r
Ij
= r
nIj
rechaze r.
Note que
1. Si r 1a| el procedimiento acepta r con probabilidad 1.
2. Si r 1a|. el procedimiento rechaza r con probabilidad
4
5
3. El valor esperado del numero de posiciones marcadas es 10 log (:) .
Intuitivamente, el procedimento anterior toma un input r. el cual es una
palabra de longitud :. probabilisticamente transforma r en una palabra
corta, llamemosla . (de longitud 10 log (:)) y entonces decide si . 1a|.
Dado que el tiempo de computo de un algoritmo que reconoce 1a|. al
procesar el input r. depende de [r[ . el transformar el input r en una palabra
corta . puede reducir el tiempo de computo de manera signicativa. El
problema es: como implementar el algoritmo anterior en una maquina de
Turing de una sola cinta?
Considere el siguiente problema
Problema 66 (Calculo del caracter dual)
Input: r. donde r es una palabra en el vocabulario ' 1 tal
que existe un unico i _ [r[ para el cual r
I
1.
5.4 Otros modelos: la tesis de Church fuerte lxv
Problema: Decida si
1
(r
I
) = r
nI
. donde para todo a se tiene
que
1
(a. 1) = a.
Note que si podemos resolver el problema anterior en tiempo O
:log
2
(:)
usando una maquina de una sola cinta, podemos entonces disear una
maquina de Turing probabilistica que decide 1a| y tal que para todo
: _ 1 se tiene que T
'
(:) O
:log
2
(:)
:log
2
(:)
.
2. Si r 1a| la maquina acepta r con probabilidad 1.
3. Si r 1a|. la maquina rechaza r con probabilidad
4
5
Ejercicio 69 Verique lo anterior.
La cota inferior
En esta seccion probaremos la cota inferior, el argumento en la prueba es
una adaptacion al contexto probabilista del argumento via secuencias de
cruce.
Sea una maquina probabilistica y sea un input de .
lxvi 5. Una introduccion a la complejidad computacional
Denicin 70 Dado o () . el simbolo o [. o. ,] denotara la secuencia
ordenada de los estados asumidos por al cruzar la linea que separa las
celdas i-esima e i + 1-esima, mientras realiza la computacion determinada
por y por o.
Dada o [. o. ,] una secuencia de cruce el simbolo [o [. o. ,][ denotara su
longitud, la longitud esperada(promedio) de las secuencias de cruce deter-
minadas por se dene naturalmente como
| (. ,) =
c.(u)
Pr [o] [o [. o. ,][
Lema 71 Para todo se tiene que T
'
() _
,<|u|
| (. ,).
Proof. Dada o () se tiene que [o[ _
,<|u|
[o [. o. ,][ . De ello se
tiene que
T
'
() =
c.(u)
Pr [o] [o[ _
c.(u)
Pr [o]
,<|u|
[o [. o. ,][
,<|u|
c.(u)
Pr [o] [o [. o. ,][
=
,<|u|
| (. ,)
Suponga que en algun momento del computo la maquina esta en el
estado c. con la cabeza lectora pasando en ese instante de la celda , a la
celda , +1. y que el contenido de la cinta de la celda , +1 en adelante es la
palabra n seguida de espacios en blanco. Dados .
+
y j Q se dene
o (c. n. j. .) como la probabilidad de que, cuando la cabeza de la maquina
cruce nuevamente la linea que separa las celdas ,-esima y , +1-esima (esta
vez pasando de la celda , + 1 a la celda ,), se encuentre en el estado j
y con el contenido de la cinta, de la celda , + 1 en adelante, siendo igual a
la palabra . seguida de espacios en blanco.
Denicin 72 Dado / _ 1 y dado n
+
la /-esima signatura izquierda
de n es la tupla
G
|
(n. :
1
. t
1
. .... :
|
. t
|
) : :
1
. t
1
. .... :
|
Q1 y t
|
1
,
donde
G
|
(n. :
1
. t
1
. .... :
|
. t
|
) =
:1,...,:
k
o (:
1
. n. t
1
. .
1
) o (:
2
. .
1
. t
2
. .
2
) ...o (:
|
. .
|1
. t
|
. .
|
)
Comentario 73 Dado que 0 _
,:
o (c. n. j. .) _ 1 se sigue que
0 _ G
|
(n. :
1
. t
1
. .... :
|
. t
|
) _ 1
5.4 Otros modelos: la tesis de Church fuerte lxvii
Supongamos ahora que la cabeza de la maquina esta pasando de la celda
, + 1 a la celda ,. con la maquina en el estado c y con el contendio de la
cinta, a la izquierda de la celda , +1. siendo igual a la palabra n. Se dene
/(c. n. j. .) como la probabilidad de que cuando la cabeza de la maquina
pase nuevamente sobre la linea separando las celdas ,-esima y , + 1-esima
(llendo esta vez de , a , + 1) lo haga estando en el estado j y con el
contenido de la cinta, a la izquierda de la celda , + 1. siendo igual a ..
Sea /
0
(n. j. .) la probabilidad de que si visita desde la derecha el
extremo izquierdo de n. estando en el estado c
0
. cruce por primera vez el
extremo derecho de r, digamos la linea que separa la celda : y la celda
: + 1. estando en el estado j y con el contenido de la cinta, a la izquierda
de : + 1. siendo igual a ..
Denicin 74 Dado / _ 1 y dado n
+
la /-esima signatura derecha de
n es la tupla
H
|
(n. :
1
. t
1
. .... t
|1
. :
|
) : :
1
. t
1
. .... t
|1
. :
|
Q1
, donde
H
|
(n. :
1
. t
1
. .... t
|1
. :
|
) =
:1,...,:
k
/
0
(n. :
1
. .
1
) /(t
1
. .
1
. :
2
. .
2
) .../(t
|1
. .
|1
. :
|
. .
|
)
Es facil vericar que
0 H
|
(n. :
1
. t
1
. .... :
|
. t
|
) 1
Para nalizar deniremos la nocion de patron
Denicin 75 Dado / _ 1 y dado n
+
el /-esimo patron de n es la tu-
pla
1
|
G
I
(n. :
1
. t
1
. ...:
|
. t
|
)| : 1 _ i _ / y :
1
. t
1
. ...:
I
. t
I1
Q1 y t
|
1
,
donde 1
|
es igual a (r)
|
3
y r = [Q[ 1.
Lema 76 El numero de distintos /-patrones es a lo mas exp
4/
3
r
2|
ln(r)
.
Proof. Dado que 0 _ G
I
(n. :
1
. t
1
. ...:
I
. t
I
. :
|
) _ 1. las entradas de un /-
patron son numeros enteros en el intervalo 0. .... 1
|
. Por otro lado cada
/-patron es un vector con
I<|
2 (r 1)
2I1
entradas. Tenemos entonces
que el numero de /-patrones esta acotado por
(1
|
+ 1)
P
ik
2(:1)
2i1
_
r
|
3
+ 1
2:
2k
_ exp
4/
3
r
2|
ln(r)
s1,|1,...s
k
,|
k
1
H
|
(r. :
1
. t
1
. ...:
|
) G
|
(n. :
1
. t
1
. ...:
|
. t
|
)
Lema 77 Dadas r. n. n
+
y dados d. : _ 1 se tiene que: si | (rn. [r[) _
d y las palabras n y n tienen el mismo :d-patron, entonces
(rn) _
1 r
J
2
(rn) :
1
2r
(n
3
J
3
J
2
nJ)
Proof. Dado que | (rn. [r[) _ d. la probabilidad de que la secuencia de
cruce de , con input rn. y en la posicion [r[ . tenga longitud mayor que
:d esta acotada superiormente por
1
n
. Sea 1
.
el conjunto de secuencias
de cruce de longitud acotada por :d y tales que el ultimo estado de la
secuencia pertenece a . Denimos 1
1
de manera analoga como el con-
junto de las secuencias de cruce de longitud a lo mas :d para las cuales el
ultimo estado de la secuencia pertenece a 1 . Dado que la maquina es
standard se tiene que
G(rn. [r[ . 1
.
) +G(rn. [r[ . 1
.
) _ 1
1
:
Y dado que G(rn. [r[ . 1
.
) _ 1 (rn) se tiene que
G(rn. [r[ . 1
.
) _ (rn)
1
:
[cc.1]
Por otro lado, el lema anterior implica que
G(rn. [r[ . 1
.
) G(rn. [r[ . 1
.
) =
c1
A
H
|c|
(r. o)
G
|c|
(n. o) G
|c|
(n. o)
[cc. 2]
donde H
|c|
(r. o) denota la signatura derecha de r determinada por o y
G
|c|
(.. o) denota la signatura izquierda de . determinada por o.
Tenemos entonces que
G(rn. [r[ . 1
.
) G(rn. [r[ . 1
.
) =
c1
A
:c
jj
(u,c)
r
d
2
I
md
H
|c|
(r. o)
G
|c|
(n. o) G
|c|
(n. o)
c1
A
:c
jj
(u,c)`
r
d
2
I
md
H
|c|
(r. o)
G
|c|
(n. o) G
|c|
(n. o)
c1
A
:c
jj
(u,c)`
r
d
2
I
md
H
|c|
(r. o)
1
1
nJ
_
c1
A
:c
jj
(u,c)`
r
d
2
I
md
H
|c|
(r. o)
1
r
J
2
G
|c|
(n. o) _ G(rn. [r[ . 1
.
)
1
r
J
2
De la ecuacion 2 tenemos que
G(rn. [r[ . 1
.
) G(rn. [r[ . 1
.
) _
2r
(n
3
J
3
J
2
nJ)
r
J
2
G(rn. [r[ . 1
.
) G(rn. [r[ . 1
.
) _
1 r
J
2
G(rn. [r[ . 1
.
) 2r
(n
3
J
3
J
2
nJ)
Finalmente de la desigualdad anterior y de la desigualdad 1 tenemos que
(rn) _ G(rn. [r[ . 1
.
) _
1 r
J
2
(rn)
1
:
2r
(n
3
J
3
J
2
nJ)
Corolario 78 Dadas r. n. n
+
y dado d _ 10. si | (rn. [r[) d,
(rn) _
9
10
y las palabras n y n tiene el mismo 2d-patron, entonces
(rn) _
1
5
.
Lema 79 Ya estamos listos para enunciar y probar el teorema central de
esta subseccion.
Teorema 80 Si es una maquina de Turing probabilistica que reconoce
el lenguaje 1a| con error -
0.
1
2
32d
3
r
4J
ln(r)
.
(prueba de la armacion) Dada 1
n
podemos escribir como
+
++
con [
+
[ = ,. Dado n 1
n
. si = n se tiene que
+
n
++
1a|. Si
la armacion fuera falsa tendriamos que [1
n,,
(d)[ exp
32d
3
r
4J
ln(r)
y
entonces, como consecuencia del lema 76, tendriamos que existen = n dos
palabras en 1
n
tales que n
++
y
++
tienen el mismo 2d-patron. El corolario
anterior implica que (
+
n
++
) _
1
5
contradiciendo el que
+
n
++
1a| y el
que supuestamente reconoce 1a| con error
1
10
1
5
.
Sea d =
log n
10
|. dado : sucientemente grande se tiene que
[1
n
1
n,,
(d)[ _ 2
n
exp
32d
3
r
4J
ln(r)
_
2
n
2
=
[1
n
[
2
Tenemos entonces que para todo 2: + 1 _ , _ 3: + 1
uJn
| (. ,) _
d [1
n
[
2
Por lo que
max
uJn
T
'
()
_
1
[1
n
[
uJn
T
'
() _
1
[1
n
[
uJn
2n+1<,<3n+1
| (. ,) =
1
[1
n
[
2n+1<,<3n+1
uJn
| (. ,)
Y esto implica que
max
uJn
T
'
()
_
1
[1
n
[
2n+1<,<3n+1
d [1
n
[
2
=
d (: + 1)
2
(:log (:))
5.4.2 Maquinas cuanticas
Las maquinas cuanticas son el analogo cuantico de las maquinas de Turing.
Mientras las maquinas de Turing pueden ser consideradas dispositivos cla-
sicos de computo (en el sentido de que su mecanismo esta controlado por
las leyes de la mecanica clasica), las maquinas cuanticas solo pueden ser
consideradas como dispositivos cuanticos de computo, dado que las leyes
que controlan su mecanismo son las leyes de la mecanica cuantica. En
5.5 Ejercicios capitulo 5 lxxi
particular las maquinas cuanticas explotan la posibilidad de superponer
informacion en un estado cuantico, y esto les permite a estas maquinas
realizar una gran cantidad (una cantidad exponencial) de computaciones
simultaneamente en paralelo. Esta habilidad de las maquinas cuanticas ha
permitido desarrollar algoritmos cuanticos (algoritmos que solo pueden ser
efectivamente implementados en maquinas cuanticas) que resuelven proble-
mas aparentemente diciles en tiempo polinomial. El ejemplo mas famoso
es el algoritmo cuantico de Shor [9], el cual permite encontrar la descom-
posicion prima de un entero : en tiempo O
[:[
16