Documente Academic
Documente Profesional
Documente Cultură
Fragmento del cap. 3 Turing Computability de Computability and Logic, 4ta. ed., escrito por
George S. Boolos, John P. Burgess, Richard Jeffrey. Cambridge et al., Cambridge University Press,
2002, pp. 23-26. Traduccin al espaol de Esteban Perini y Florencia Ragone
Una funcin es efectivamente computable si existen determinadas reglas explcitas por las
cuales se pueda en principio computar su valor para cualquier argumento dado. Esta nocin
ser explicada ms a fondo abajo, sin embargo, incluso despus de una explicacin extensa,
permanece como una nocin intuitiva. En este captulo nos dedicaremos al anlisis de la
computabilidad introduciendo una nocin rigurosamente definida de una funcin Turingcomputable. Resultar evidente desde la definicin que las funciones Turing-computables son
efectivamente computables. La hiptesis de que, a la inversa, toda funcin efectivamente
computable es Turing-computable se conoce como la Tesis de Turing. Esta tesis no es evidente,
ni puede ser rigurosamente probada (pues la nocin de computabilidad efectiva es intuitiva y
no es una nocin rigurosamente definida), sin embargo, una gran cantidad de evidencia se ha
acumulado en su favor. Una pequea parte de aquella evidencia ser presentada en este
captulo y extendida en los captulos siguientes. Primero introduciremos la nocin de mquina
de Turing, daremos ejemplos y despus presentaremos la definicin oficial de lo que significa
para una funcin ser computable por una mquina de Turing o ser Turing-computable.
Un ser suprahumano, como Zeus del captulo anterior, podra quizs escribir la tabla entera de
valores para una funcin unaria en los enteros positivos escribiendo cada entrada al doble de
velocidad que la anterior, pero para un ser humano es imposible en principio completar un
proceso infinito de esta naturaleza. Afortunadamente, para los fines humanos generalmente no
necesitamos la tabla entera de valores de una funcin f, sino slo los valores de a uno por vez,
por as decir: dado un argumento n, necesitamos el valor f(n). Si es posible generar el valor f(n)
de la funcin f para el argumento n, cuando tal valor se necesita, entonces aquello es casi tan
bueno como tener toda la tabla completa de valores escrita de antemano.
Una funcin f de enteros positivos a enteros positivos se llama efectivamente computable si
puede darse una lista de instrucciones que en principio hagan posible determinar el valor f(n)
para cualquier argumento n. (Esta nocin se extiende de un modo evidente a funciones binarias
y n-arias). Las instrucciones deben ser completamente determinadas y explcitas. Deberan
decirle a uno qu hacer en cada paso, y no que uno pregunte a otra persona qu hacer o que
resuelva por uno mismo qu hacer: las instrucciones no deberan requerir fuentes externas de
1
informacin ni inventiva al ser ejecutadas, de modo que uno podra esperar automatizar el
proceso de aplicacin de reglas, y que sea llevado a cabo por un dispositivo mecnico.
Permanece el hecho de que no ser factible en la prctica para ningn ser humano ni para
ningn dispositivo mecnico llevar realmente a cabo el cmputo para todos los valores de n sino
slo para un nmero finito de ellos: tericamente podra ser completada en una cantidad finita
de tiempo, si nos mantuviramos sanos, o si la mquina permaneciera en correcto
funcionamiento durante ese tiempo; pero en la prctica, moriremos o la mquina colapsar
mucho antes de que el proceso se complete. (Tambin existe una preocupacin por encontrar
suficiente espacio para almacenar los resultados intermedios del cmputo, e incluso, una
preocupacin por encontrar suficiente materia para utilizar en la escritura de aquellos
resultados: slo hay una cantidad finita de papel en el mundo, de modo que se debera escribir
ms y ms pequeo sin lmite; para conseguir poner en papel un nmero infinito de smbolos
finalmente se estara tratando de escribir sobre molculas, tomos, electrones.) Pero el
presente estudio ignorar estas limitaciones prcticas, y trabajar con una nocin idealizada de
computabilidad que va ms all de lo que las personas o las mquinas reales pueden estar
seguras de hacer. Nuestra meta final ser probar que algunas funciones no son computables,
incluso aunque las limitaciones prcticas de tiempo, velocidad y cantidad de material pudieran
ser superadas, y para este propsito el requerimiento esencial es que nuestra nocin de
computabilidad no sea demasiado estrecha.
Hasta ahora hemos estado girando en torno de un punto importante. Cuando nos es dado como
argumento un nmero n o un par de nmeros (n,m), lo que directamente nos es dado es un
numeral para n o un par ordenado de numerales para m y n1. Igualmente, si el valor de la
funcin que tratamos de computar es un nmero, con lo que nuestros cmputos de hecho
terminan es con un numeral para ese nmero. Ahora bien, en el curso de la historia humana se
ha desarrollado una gran cantidad de sistemas de numeracin, desde la notacin con palotes en
la cual el nmero n es representado por una secuencia de n barras, hasta la notacin indoarbiga o decimal de uso cotidiano hoy, pasando por sistemas como los numerales romanos, en
los cuales grupos de barras de 5, 10, 50, 100, en adelante, se abrevian con smbolos especiales.
Hace diferencia en una definicin de computabilidad cul de estos sistemas adoptamos?
Ciertamente los cmputos pueden, en la prctica, ser ms difciles con algunas notaciones que
con otras. Por ejemplo, multiplicar nmeros expresados en numerales decimales (expresando el
producto en la misma forma) es ms fcil en la prctica que multiplicar nmeros dados en algo
como numerales romanos. Supngase que nos son dados dos nmeros, expresados en
numerales romanos, digamos XXXIX y XLVIII, y se nos pide obtener el producto, tambin en
numerales romanos. Probablemente para la mayora de nosotros el modo ms fcil de hacerlo
sera traducir primero de romano a indo-arbigo -las reglas para hacer esto son, o al menos
eran, enseadas en la escuela primaria, y en cualquier caso pueden buscarse en obras de
1
N. de los T.: A continuacin para referirnos a los signos de los nmeros emplearemos la palabra numeral,
mientras que nmeros se reserva para aquello que los signos denotan.
En la parte inferior del automvil hay un dispositivo que puede leer lo que est escrito entre las
vigas, y borrar o imprimir una barra. La mquina est diseada de modo que en cada etapa del
cmputo se encuentra en uno de un nmero finito de estados internos q 1qm. El hecho de estar
en un estado u otro podra ser cuestin de tener tal diente de cierta rueda dentada ms alto, o
de tener el voltaje en cierta terminal dentro de la mquina a tal nivel de los m diferentes
niveles, o cosas por el estilo: no estamos interesados en la mecnica o electrnica del asunto.
Quizs la forma ms simple de imaginar el asunto es un poco toscamente: dentro de la caja hay
un hombre pequeo que realiza toda la lectura, y escritura, el borrado y el movimiento. (La caja
no tiene fondo, el pobre debe caminar entre las vigas empujando la caja.) Este operador dentro
de la mquina tiene una lista de instrucciones escritas en un papel, y se encuentra en el estado
qi cuando est llevando a cabo la instruccin nmero i.
Cada una de las instrucciones tiene forma condicional: dice qu hacer dependiendo de si el
smbolo que est siendo examinado (el smbolo en el cuadrado examinado) est en blanco o
tiene una barra, S0, o S1. Hay cinco cosas que pueden hacerse, a saber:
(1) Borrar: escribir S0 en lugar de lo que haya en el cuadrado examinado.
(2) Imprimir: escribir S1 en lugar de lo que haya en el cuadrado examinado.
(3) Moverse un cuadrado hacia la derecha.
(4) Moverse un cuadrado hacia la izquierda.
(5) Parar el cmputo.
[En caso de que el cuadrado ya est en blanco, (1) equivale a no hacer nada; en caso de que el
cuadrado ya tenga una barra en l, (2) equivale a no hacer nada]. Entonces dependiendo de qu
instruccin se est llevando a cabo (= en qu estado se encuentra la mquina o su operador) y
de qu smbolo se est examinando, la mquina o su operador realizarn uno u otro de estos
cinco actos manifiestos. Salvo que el cmputo sea parado (acto manifiesto nmero (5)), la
mquina o su operador deben realizar tambin un acto oculto en el interior de la caja, a saber,
el acto de determinar cul ser la siguiente instruccin (el siguiente estado). De este modo el
estado presente y el presente smbolo examinado determinan qu acto manifiesto ser
realizado, y cul ser el siguiente estado.
El problema global de instrucciones puede ser especificado de varias maneras, por ejemplo, por
medio de una tabla de mquina, o un diagrama de flujo (tambin llamado grfico de flujo), o
por un conjunto de cudruplos. Para el caso de una mquina que escribe tres smbolos S1 en
una cinta en blanco y luego para, examinando el que est ms a la izquierda, las tres formas de
descripcin estn ilustradas en la figura 3-2.