Sei sulla pagina 1di 4

THE INTRINSIC COMPUTATIONAL DIFFICULTY OF FUNCTIONS

¿es más difícil multiplicar que sumar? y segundo, ¿por qué?

Admito que he formulado la primera de estas preguntas de forma bastante flexible;


sin embargo, creo que la respuesta debería ser: sí, es la segunda, que pide una
justificación de esta respuesta que proporciona el desafío.

La dificultad no se deriva del hecho de que la primera pregunta ha sido formulada


de manera imprecisa. Parece que no hay ningún problema sustancial al demostrar
que usar los algoritmos estándar es en general más difícil en el sentido de que se
necesita más tomo o más papel de borrador para multiplicar dos números
decimales que sumarlos. Pero esto no responde a la pregunta, que se refiere a la
dificultad computacional de estas dos operaciones, sin referencia a métodos
computacionales específicos; en otras palabras, con propiedades intrínsecas a las
funciones mismas y no con propiedades de algoritmos relacionados particulares.
Por lo tanto, para completar el argumento, tendría que mostrar que no existe un
algoritmo para la multiplicación computacionalmente tan simple como el de la
suma, y esto demuestra algo como un obstáculo. Por supuesto, como he
implicado, siento que este debe ser el caso y que la multiplicación es en este
sentido absoluto más difícil que la suma, pero me veo obligado a admitir que en la
actualidad mis razones para sentirlo son de un carácter esencialmente extra
matemático.

Las preguntas de este tipo pertenecen a un campo que creo que bien podríamos
llamar análisis meta numérico. el nombre parece apropiado no solo porque sugiere
el tema, es decir, la metodología de computación, sino también porque la relación
del campo con la computación es muy análoga a la de la matemática matemática.
En metamatemática, encontramos problemas relacionados con sistemas de
prueba específicos; la existencia de pruebas que tienen una determinada forma, o
la adecuación de un sistema en un contexto dado. También encontramos
problemas relacionados con la posibilidad de compra, independientemente de
cualquier sistema de prueba en particular; La indecidibilidad de las teorías
matemáticas. Por lo tanto, en el análisis meta numérico encontramos problemas
relacionados con sistemas computacionales específicos o categorías de máquinas
informáticas, así como problemas como los mencionados anteriormente que,
aunque están relacionados con la computación, son independientes de cualquier
método de computación en particular. Es este último segmento del análisis meta
numérico el que me gustaría mirar más de cerca.

Permítanme comenzar declarando dos de los muy pocos resultados que caen
directamente dentro de esta área. Ambos se extraen del trabajo de Ritchie sobre
funciones predecibles de computación, el primero es una generalización casi
inmediata de una parte de ese trabajo, el segundo es una lectura incompleta de
otra parte. Estos relacionan, quizás no de la manera más feliz, la complejidad
computacional de una función con su ubicación en la jerarquía de Grzegorczyk.
Recordemos que esta jerarquía se compone de una secuencia de clases.

cada uno adecuadamente contenido en el siguiente, y teniendo como unión la


clase de todas las funciones recursivas primitivas. S2 puede caracterizarse como
la clase más pequeña que contiene las funciones de sucesión y multiplicación, y
cerrarse bajo las operaciones de transformación explícita, composición y recursión
limitada.

Las clases s3 (que es la clase familiar de las funciones elementales de Kalmar) y


s4 tienen caracterizaciones similares, con exponenciación y la función xxxx
respectivamente, reemplazando la multiplicación en la caracterización de s2.

Las clases superiores se pueden caracterizar inductivamente de la misma manera.

Con cada máquina de Turing de cinta única Z que calcula una función de una
variable, podemos asociar dos funciones bz y tz. Suponiendo alguna codificación
estándar de números naturales, podríamos considerar que la notación decimal es
específica, definimos bz (n), donde n es un número natural, como el número de
pasos (excitaciones de instrucciones) en el cálculo en Z que comienza con n
codificado en su cinta y defina tz (n) como el número de cuadrados de cinta
distintos escaneados durante el curso de este cálculo. Restringiendo la atención a
las funciones de una variable, tenemos lo siguiente.

Teorema. Para cada k> 3, las siguientes cinco afirmaciones son equivalentes:

1)

2. existe una máquina de Turing Z que calcula f y tal que

3. existe una máquina de Turing Z que calcula f y una función tal que, para todos

Este teorema tiene una generalización inmediata a las funciones de varias


variables. A partir de él podemos inferir que (en efecto, pero no con mucha
precisión) si una función es más fácil de calcular que otra, en el sentido muy fuerte
de que para cualquier valor del argumento, el cálculo se puede hacer en menos
pasos o con menos cinta, entonces esa función no se encuentra más alta que la
otra en la jerarquía de Grzegorczyk. Sin embargo, no podemos concluir lo
contrario: que si una función es más baja que otra, es necesariamente más simple
de calcular. De hecho, parece que una función en la parte inferior de la jerarquía
puede ser en promedio más difícil de calcular que una superior, aunque, por
supuesto, no puede ser más difícil para todos los valores del argumento.

Se necesita una palabra de por qué he incluido un teorema que involucra a las
máquinas de Turing en una discusión que, según dije, iba a ser sobre aspectos de
cómputo independientes del método. El hecho es que el teorema sigue siendo
correcto, incluso si se consideran clases mucho más amplias de máquinas
informáticas. En particular, es válido para máquinas Turing con más de una cinta o
con cintas multidimensionales, siempre que las celdas de esta última estén
dispuestas de manera razonablemente ordenada. También se mantiene si el
conjunto de instrucciones posibles se amplía para incluir, el borrado de una cinta
completa o el restablecimiento de un cabezal de escaneo a su posición inicial
(aunque dudo que tales operaciones se consideren pasos ya que no parece que
puedan ser ejecutadas en una cantidad limitada de tiempo).

La razón de tal aplicabilidad general se puede encontrar en el examen de la


prueba de este teorema. Allí encontramos que el hecho de que estamos tratando
con una clase particular de máquinas de Turing es bastante incidental: lo que
cuenta es la forma de su aritmetización. La geometría y las operaciones básicas
de una máquina de Turing son del tipo que admite una aritmetización en la que las
funciones que describen el curso paso a paso de un cálculo en ella son de una
naturaleza muy simple, en particular, bien dentro de la clase s2. Esto es todo lo
que necesitaba para obtener el teorema anterior (así como el que sigue). Ahora la
clase s2 es tan rica en funciones que es casi inconcebible para mí que puedan
existir computadoras reales que no tengan modelos matemáticos cuya
aritmetización pueda llevarse a cabo de tal manera que estas funciones asociadas
caigan dentro de ella. Por lo tanto, sospecho que este teorema sí dice algo acerca
de las propiedades computacionales absolutas de las funciones, por lo que encaja
correctamente en la discusión.

Las cinco equivalencias del teorema anterior no son válidas para k <3. Ritchie ha
obtenido una jerarquía que descompone el rango entre s2 y s3 en clases de
funciones de diversos grados de dificultad computacional; sin embargo, en lugar
de pasar a esto, me gustaría pasar ahora al problema de clasificar las funciones
dentro de s2, donde se encuentran muchas de las funciones que se encuentran
con mayor frecuencia en el trabajo computacional, la suma y la multiplicación en
particular. Primero, con respecto a s2 en sí, tenemos lo siguiente.
Teorema. una función f pertenece a s2 si y solo si existe una máquina Z de Turing
que calcula fy las constantes c1 y c2 de modo que tz (n) <c1 l (n) + c2, para todo
n.

Aquí l (n) es la longitud de n, es decir, el número de dígitos en su representación


decimal. Las máquinas que computan de la manera descrita son equivalentes a
las que Myhill ha denominado autómatas lineales. Dado que simplemente escribir
n requiere l (n) cuadrados de cinta, debemos tener c1> 1. De hecho, si
consideramos máquinas con alfabetos arbitrariamente grandes, entonces C1 solo
debe ser lo suficientemente grande como para permitir la escritura de la respuesta
en el cinta; si f (n) = n2 podemos tomar c1 = 2; si f (n) <n para todo n podemos
tomar c1 = 1. En otras palabras, si tenemos suficiente espacio para escribir el
valor más grande y el argumento de una función en s2, entonces tenemos
suficiente espacio para llevar a cabo el Cálculo completo. En consecuencia, la
función no es una herramienta adecuada para hacer distinciones finas sobre la
dificultad computacional de las funciones dentro de s2. Intentamos redefinir lo que
entendemos por la cantidad de cinta usada durante un cómputo distinguiendo
entre aquellos lugares usados para escribir entrada y salida y los usados en el
cómputo real. Pero la artificialidad de una distinción ad hoc tan perspicaces parece
alejarse de nuestro objetivo de obtener un análisis natural independiente del
método o tipo de maquina usada en la computación.

Este puede ser un buen punto para mencionar que, aunque hasta ahora he estado
comparando tácitamente dificultad computacional con los requisitos de tiempo y
almacenamiento, no quiero comprometerme con ninguna de estas medidas.
Puede resultar que algunas medidas relacionadas con la noción física del trabajo
conduzcan al análisis mas satisfactorio

Potrebbero piacerti anche